-
rvalue reference is a reference개발/C·C++ 2021. 8. 4. 23:09
사실 당연한 소리인데 가끔 잊을 때가 있습니다. rvalue reference는 reference이기 때문에 원본에 영향을 줍니다. 이동 생성자가 다음과 같을 때,
Person(Person&& rhs) noexcept :_data(rhs._data) { cout << "Person(Person&& rhs)->" << _data << endl; rhs._data = -1; }
int main() { Person p1 = Person(1); Person p2 = std::move(p1); cout << p1._data << endl; cout << p2._data << endl; }
이동 생성자에서 rhs의 데이터를 -1로 변경해줍니다. 포인터를 이동하는 경우라면 반드시 nullptr를 넣어줘야 하는 부분입니다.
'개발 > C·C++' 카테고리의 다른 글
비주얼 스튜디오에서 다른 프로젝트의 파일 참조하기 (0) 2021.08.31 [Rvalue reference] Forcing Move Semantics(4) (0) 2021.08.26 생각보다 자주 보이는 생성자 (0) 2021.08.04 [알고리즘] Quick sort (0) 2021.08.03 [자료구조] doubly linked list (0) 2021.08.02