c++
-
1. 이동 의미론(Move Semantics)Modern C++/Move Semantics 2020. 6. 29. 12:38
1. 이동 의미론 C++11 이후 C++ 의 가장 중요한 변화 중 하나는 복사를 통한 자원의 낭비를 줄이기 위해 객체 자원의 소유권을 이전 할 수 있는 이동 의미론이 추가되었다는 점이다. class Foo { }; 위와 같이 Foo 클래스 정의 시 컴파일러는 자동으로 기본 생성자, 복사 생성자, 할당 연산자, 소멸자를 생성해 주는 데, C++11 이후에 는 여기에 이동 생성자, 이동 할당 연산자가 추가되었다. 또한 STL 라이브러리의 범용 유틸리티나, 컨테이너들에도 이동 생성자나, 이동 할당 연산자가 구현되어 복사로 인한 쓸데 없는 자원의 소비를 줄일 수 있게 되었다. 이동 생성자와 이동 할당 연산자는 아래와 같은 형태로 std::vector의 예를 통해 확인 할 수 있다. std::vector::vec..