강의와 상관없는 c++ 질문입니다.
안녕하세요
좋은강의 만들어주셔서 감사합니다.
강의와 전혀 상관없지만 질문할 곳이 없어서 여쭤봅니다.
c++ 11에서 나왔다고 하는 Type&& , rvalue 참조가 뭔지 이해를 못하겠습니다.
어떤용도로 왜사용하는지, Type&와 무슨차이가 있는지 알고 싶습니다.
回答 5
0
오른값 참조는 좀 특별한 케이스라서
어셈블리에서 꼭 어떻게 동작한다고 하기 어렵고,
그냥 C++에서 정의하는 move semantics를 만족하기 위해
컴파일러가 수단과 방법을 가리지 않는다(?)
정도로 이해하는 것이 맞을 것 같네요.
물론 어셈블리에서 오른값 참조의 개념도 존재하지 않는 것은 마찬가지이고,
필요하다면 주소값을 넘겨야하는 것은 동일합니다.
그리고 중간 복사를 생략하기 위한 코드를 생성하는 등
더 포괄적인 전략이 들어가야 할 것 같네요.
0
[원본 닉네임으로 복사없이 넘긴다]는
C++ 관점에서 보면 맞는 비유지만,
어차피 어셈블리로 넘어가면 [닉네임을 넘긴다]는 개념은 존재하지 않습니다.
분석하면 결국 포인터와 마찬가지로 주소값을 넘겨서 작동합니다.
0
일반 참조 Type&는 사실상 포인터랑 같은 개념이고,
어떤 객체의 주소를 넘기는 것입니다.
오른값 참조 Type&&는 C++11에서 새로 생긴 개념인데
'복사하지 않고 원본 자체를 넘긴다(?)'고 비유할 수 있습니다.
이걸 쓰는 이유는 그냥 성능 향상 때문에 그런데
자세하게 설명하기에는 너무나도 내용이 방대해
잘 설명된 블로그들을 참조 바랍니다.
https://modoocode.com/189
추가로 Effective Modern C++ 책 초반부터에서도 해당 내용이 나오는데,
어느 회사를 가도 신입 교육은 저 책으로 하니
미리 살펴보면 좋습니다.
TLS 질문드립니다.
0
38
2
SpinLock과 컨텍스트스위칭에 대해 질문 남겨요.
0
45
2
Unity Span
0
71
2
XML, Dll 차이점
0
102
2
Session 질문입니다
0
78
1
Write Read 커서 키워드
0
72
1
더미 클라이언트 수에 따른 OnDisconnect 발생
0
68
2
네트워크 Send 전담 스레드 배치
0
97
2
UnhandledException 으로 서버 터지는 경우
0
84
2
컨텐츠 단, 엔진 단
0
103
1
질문 있습니다
0
76
2
C# 게임서버 3D MMORPG
0
143
2
유니티6 버전
0
96
2
receive하는 부분과 send하는 부분의 차이
0
132
2
커서의 위치의 중요성
0
102
2
C++ 전혀 모르는데 C# 서버
0
168
2
강의에 질문이 있습니다
0
85
2
멀티스레드 이해도 질문
0
94
1
500 vs 500
0
125
3
OnAcceptHandler 액션 함수
0
60
1
이 정도 서버의 객관적인 수준이 궁금합니다.
0
187
2
36. Serialization #3 에서 string (name) 코드 수정 질문
0
81
2
외부 컴퓨터와의 통신 방법이 궁금합니다
0
104
1
스핀락 질문.
0
107
2

