본문 바로가기
프로그래밍 언어/C++

C++ 11 / move함수

by Nighthom 2023. 2. 15.

move함수는 lvalue를 rvalue로 전환시켜주는 함수다. 

A a;
A b(std::move(a));  		// rvalue 생성자(이동 생성자) 호출!
A c = std::move(a);		// 이동 대입 연산자 실행

일반적인 참조로 구현되는 복사 생성자의 경우는 일반적으로 깊은 복사(deep copy)를 수행하는 경우가 많다. 하지만 복사를 빠르게 진행하고 싶은 경우, std::move 함수를 활용해서 lvalue를 rvalue로 전환 후 이동 생성자/이동 대입 연산자를 호출할 수 있다. 

 

 

댓글