제대로 알아둬야지 둬야지 하다가 드디어 제대로 정리해보네.. 이제서야 Value Category 대해선 80% 정도는 잘 설명 할 수 있을 것 같아..
이제 정리 3일차 인데.. 오늘은 끝내고 다시 갠프 하고 싶다.. 책은 대체 어떻게 쓰는거냐..
제대로 알아둬야지 둬야지 하다가 드디어 제대로 정리해보네.. 이제서야 Value Category 대해선 80% 정도는 잘 설명 할 수 있을 것 같아..
이제 정리 3일차 인데.. 오늘은 끝내고 다시 갠프 하고 싶다.. 책은 대체 어떻게 쓰는거냐..
굿~ - dc App
개고수
개인적인 생각으론 쓸데없이 복잡하다고 느껴짐 lvalue가 뭔지만 확실히 알면 98% 이상 해결된다고 봄 move semantics도 rust처럼 항상 move하라는게 아니라 생성자와 같은 특수한 경우에나 필요하다고 보는데 이름에서 오해가 생기는건 아닐까 싶음 물론 초고수가 되려면 다 알아야지
사실 lvalue에도 move semantics 를 적용 해주기 위한 불가피한 선택 이였다고 생각해. C++이 rust 처럼 컴파일러에 소유권 이동이 어떻게 일어나고 있고, 현재 접근하는 객체가 소유권을 가지고 있어서 적법한 접근인지 확인할 방법이 없으니까.. 그렇다고 기존 체계론 lvalue 중에서도 선택적으로 '이동'할 수 있다고 표현할 방법이 없기 때문에, xvalue 라는 새로운 카테고리를 추가해서 그 점을 해결한게 보였음.
사실 진짜 간단하게 보자면 lvalue -> 기존 lvalue 에서도 이동이 불가능한 표현식 xvalue -> 기존 lvalue 에서도 이동이 가능한 표현식 prvalue -> 기존 rvalue glvalue -> 기존 lvalue rvalue -> 기존 rvalue + prvalue 그리고 lvalue 참조는 glvalue 만 바인딩 할 수 있고, rvalue 참조는 rvalue 만 바인딩 할 수 있다. 가 전부인 것 같드라
말한 것 처럼 원래 lvalue가 뭘 의미하는지 알면 진짜 99% 이해 할 수 있는 내용이지 ㅋㅋ
진짜 밸류 시맨틱 개스레기같음 왜 저렇게밖에 못만드는진 이해하는데 토사물 쏟아진 변기같애
왤케 어렵냐;
진짜 거의 완벽하게 이해하는데 나온 배경부터 시작해서, 여기저기 흩어져 있는 정보들 다 찾아서 취합하는게 어렵더라..
어디서 볼 수 있음?
공부하면서 정리하는거라
언젠가 다듬어서 블로그에 쓰던 할 거 같애
화이팅