Move aware
-
2. std::moveModern C++/Move Semantics 2020. 6. 29. 17:33
오른쪽 값(R-value)는 외부에서 구별할 수 있는 identity가 없는 임시 객체로 해당 객체의 자원의 소유권을 포기할 수 있다고 생각할 수 있다. int foo() { return 5; } foo(); // 함수 호출 시 int형 임시 값이 생성되지만 코드 범위를 벗어나는 경우 자동 소멸 std::vector v0 { 1, 2, 3, 4, 5 }; auto v1 = v0; // v1 의 복사 생성자 호출 위와 같이 벡터 v1을 v0를 통해서 초기화하고 생성하는 경우 v1의 v0의 내부 버퍼를 강제적으로 복사하게 된다. std::vector get_vector { return std::vector {1, 2, 3, 4, 5}; } auto v2 = get_vector(); // 함수 호출 시 임시 ..