일관성 하나도 없어 T f() { T x; return x; } 는 이동인데 T&& f() { T x; return std::move(x); } 는 댕글링 레퍼런스 생성함. 이거 보면 이해하려고 하면 안됨 그냥 외워야지 - dc official App
라이프 사이클을 잘 생각해봐라
그걸 생각해봐도 전혀 납득이 안가는 건 마찬가지 본래 소멸해야할 임시객체 생명 붙잡는 식으로 참조해서 성능 얻어간 게 내가 이해한 rvalue 레퍼런스인데 저건 왜 안되는지 일관성이 없음 - dc App
@나만봐 자다 일나서 이제 답변해주는건데 첫번째는 lvaule를 던져서 복사가 발생하고 두 번째는 소유권 이전인데 소유권 이전하는 대상이 지역 스코프에서만 라이프 사이클이 유효하니까 이전 도중에 뒤져버리는거임
@나만봐 저거 유효하려면 T가 static 키워드로 선언되어야 한다 이기
그냥 소유권만 잘 생각하면 편한데 저런거 어지러움 최적화되면 다똑같은데
처음 배울 때부터 의구심 들어서 gpt 들들 볶다가 아무이유도 없었음을 깨달음.. AI라 틀릴 수도 있는데 cpp가 확실히 좋은 기능은 엄청 좋은데 - dc App
첫번째는 rvalue랑 상관없이 그냥 copy ellison이고 과거에는 rvo였음 두번째는 move라는 이름이 페이크인건데 사실은 그냥 xvalue로 형변환할뿐인데 지역변수의 수명이 다함
고마워요 스피드웨건 - dc App