어느 한 주소를 가리키거나 참조하기만 했지 그 주소를 직접 가져와서 써버린다는 발상은 해보지도 못했으요
동적할당한 걸 포인터 같은 걸로 가리키고 원본에 nullptr을 넣으면 어떨까 하는 생각은 해봤는데
아예 주소를 갖다 박아버리니까 이게 뭔가 싶네
여러모로 활용하기 좋을 거 같긴 한데 껍데기가 남아버려서 주 활용처는 함수 내부나 동적 할당된 것들처럼 수명이 정해진 것들에게만 써야겠으요
코딩 이야기:
move함수 구조가 궁금해서 뜯어봤더니 안에는 using만 박혀 있는 구조체를 발견할 수 있었는데
리턴값이 도저히 이해가 안되는 부분인데 정말 템플릿이 쓰기 시작하면 가독성 안좋아진다는 게 이런 거구나 싶읍니다.
느낌적으론 아무 것도 아닌 &&로 스태틱 캐스팅을 하는 거 같은데 왜 그냥 _Ty를 안박고 remove_reference<_Ty>로 하는지가 궁금한데스
이미 있던 &를 없에고 &&을 붙여야 하기 때문임
그냥 스태틱 캐스트로 타입&&으로 바꾸면 예외가 나올 때가 있는건가..
찾아보니까 저걸 한번 거치면 &이고 &&이고 다 떨어지고 민짜가 되나보네 그 뒤에 &&를 붙여서 이런 구조가 되는 것 같네요 감사합니당
마즘 잘 이해함
정확히는 저거 하나로 l/rvalue reference가 걸러지는게 아니라 l/rvalue reference 각각의 specialization이 있어서 그걸로 타입을 걸러냄
진짜 템플릿이 안되는 게 없구나 TMP도 보고 배울만한 책이 있읍니까?
구글에 진짜 충분히 자료가 많아서 굳이 난 책으로 공부하진 않았음 템플릿을 거의 반강제적으로 써야하는 부분이 많은 대형 프로젝트 보다보면 왜 이렇게 구현했는지 검색하게 되는데 그러다가 깨우치는 거지
T&&랑 auto&&는 perfect forwarding이라고 따로 부름
그건 또 별개구나 감사한데스
이펙티브 모던 C++ 읽어보면 도움이 많이 될 거임 - dc App