std::vector아님!!


책에 나와있는 move constructor가 작동되는 경우가

rvalue로 변수를 초기화하거나 예시)

Vector v4 = Vector(10);


함수에서 local variable을 리턴할때 맞나요? 예)

Vector return_move() {
    Vector ret {0, 1};
    return ret;
}


왜 둘다 move constructor가 작동하지 않을까요


move assignment는 잘 됩니다 예)

v1 = Vector(10);

출력 Move assignment: 10


v3 = return_move();

여기서는 아래를 예상햇는데

Move constructor: 10

Move assignment: 10

아래처럼 assignment만 나옵니다ㅜ

Move assignment: 10


move constructor 코드:

Vector(Vector&& v): elem{v.elem}, sz{v.sz}
    {
        v.elem = nullptr;
        v.sz = 0;
        std::cout << "Move constructor: " << sz << '\n';
    }