lvalue
-
[Rvalue reference] Rvalue Reference(3)개발/C·C++ 2021. 5. 21. 17:53
>> 번역글입니다 >> 의역은 있고 오역이 있을 수 있습니다 >> 출처 http://thbecker.net/articles/rvalue_references/section_03.html X가 어떤 타입이라고 할 때 X&&는 X에 대한 rvalue reference라고 합니다. X&는 lvalue reference입니다. rvalue reference는 lvalue reference인 X&와 비슷하게 동작합니다. 여러 예외 상황과 함께요. 함수 오버로딩 문제에서 가장 중요한 점은 rvalue는 새로운 rvalue reference를 선택하고 lvalue는 lvalue reference를 선택한다는 것입니다. void foo(X& x); // lvalue reference overload void foo(X&..
-
[Rvalue reference] Move Semantics(2)개발/C·C++ 2021. 5. 12. 11:31
>> 번역글입니다 >> 의역은 있고 오역이 있을 수 있습니다 >> 출처 thbecker.net/articles/rvalue_references/section_02.html X가 어떤 리소스에 대한 포인터나 핸들을 갖고 있는 클래스라고 가정하겠습니다. m_pResource라고 합시다. 리소스로 인해서, 객체를 생성하고 복사하고 파괴하는 데에 적지 않은 노력이 듭니다. 동적 할당된 배열에 객체들을 갖고 있는 std::vector가 좋은 예가 될 것 같습니다. 클래스 X의 복사 할당 연산자는 다음과 같을 것입니다. X& X::operator=(X const & rhs) { // [...] // Make a clone of what rhs.m_pResource refers to. // Destruct the r..
-
[Rvalue reference] Introduction(1)개발/C·C++ 2021. 5. 12. 10:29
>> 번역글입니다 >> 의역은 있고 오역이 있을 수 있습니다 >> 출처 thbecker.net/articles/rvalue_references/section_01.html rvalue reference는 C++11 표준에 추가된 특징입니다. rvalue reference를 파악하기 조금 어렵게 만드는 것은, 처음 봤을 때 목적이 무엇이고 어떤 문제를 해결할 수 있는지 명확하게 알 수 없다는 점입니다. 일단 rvalue reference가 무엇인지 설명하겠습니다. 해결할 수 있는 문제부터 시작해, rvalue reference가 이를 어떻게 해결할 수 있는지 보여드리겠습니다. 이 방법이 rvalue reference의 정의가 타당하고 자연스럽게 보이도록 해줄 겁니다. rvalue reference는 최소 ..