마지막 사용 지점 탐색
std::move는 이후 값을 읽지 않아도 되는 위치에서만 명확하게 쓴다.
std::move는 이동을 실행하지 않는다. 객체를 rvalue로 취급해 이동 생성자나 이동 대입이 선택될 수 있게 만드는 캐스트다.
std::move는 이후 값을 읽지 않아도 되는 위치에서만 명확하게 쓴다.
vector는 재할당 시 move가 noexcept가 아니면 복사를 선택할 수 있다.
const 객체에 std::move를 걸면 이동 생성자가 아니라 복사가 선택될 가능성이 크다.
std::string name = make_name();
users.push_back(User{std::move(name)
overflow-wrap: break-word;
word-break: keep-all;
});
// name은 이후 새 값을 대입하거나 파괴만 기대한다.