아니 분명히 생성자는 Rvalue 잖아?

그것도 순혈이니까 PRvalue 잖아


그런데 


auto instance = Class( args... );


또는, 


auto instance(Class(args));


를 할 경우,

오버로딩 해놓은 무브 생성자가 소환이 안됨

이건 어셈블리로 확인해봐도 분명함







이게 내 메인 함수고,

핑크색 줄을 보면 알겠지만 SeePlusPlus 옵젝트에 SeePlusPlus( args) 꼴 Rvalue를 대입했음

그러면 이론상으로는 무브 복사 연산자가 나와야 되는데,






무브 복사 연산자는 소환된 적이 없음,

아마도 디폴트 생성자도 소환된적이 없음;;;


그런데, 저 생성자 Rvalue 를 PRvalue 에서 std::move 를 통해 Xvalue 로 캐스팅해주면,

정상적으로 무브 복사 대입 연산자가 불려짐









대체 왜 PRvalue 인 생성자는 튕기고,

Xvalue 로 캐스팅해준 생성자는 먹는 거임?


ㅠㅠ 이해가 안됨