기본적으로 그냥 새로운 객체로 (택갈이) 라고 봐야함
걍 한국의 수많은 강좌들이 개씹소리를 존나게 해놔서 소유권이니 어렵게 하지만 본질은 택갈이야
std::move도 그냥 객체를 우측값처럼 취급 강제고, 컴파일러에 이 객체는 이제 빈 객체니까 소유권 이전하라는거임
이동 시멘틱을 쓰는 자체가 복사를 피하기 위해서 존재하기때문에 새 메모리 할당이 없음.
즉 리소스 복제에서만 메모리 할당이 있는거 ㅋㅋ
그래서 이동 시멘틱 개념을 자꾸 메모리로 접근하면 오히려 어렵다
메모리는 그냥 그대로 있고, 메모리를 누가 소유 하고 있는지 문제야 ㅋ
Move연산자 자체로는 소유권 이전이 일어나지않는걸로 아는데 ? 소유권 공유아님?
너 책을 잘못읽었네 ㅋㅋ 소유권 공유라는건 아님. 그냥 이동이지. 물론 move 연산자가 소유권 이전을 해주는 건 맞음
내가 직접 해봤을 때는 소유권 이전이 일어난 객체도 여전히 사용가능했었는데 이를테면 int a = 10 ; int b = move(a) 의 경우 a와 b모두 불러올수있었음
int같은 기본 자료형의 경우에는 택갈이가 일어나지 않음ㅋㅋㅋ 기본 자료형은 이동 연산자가 없잖아 친구야
그럼 너가 말하는 소유권 이전은 정확히 뭐임?
자원에 대한 책임임 그냥ㅋㅋㅋ
리소스 책임을 소유권이라고 말하는거 이 책임은 메모리 뿐만 아닌 많은 객체를 포함하고 있음 메모리는 단순하게 잘못 이해하는거임ㅋㅋㅋ 소유권이란 무엇인가? 리소스의 라이프 사이클에 대한 전반적인 관리 책임임
내가 좀 잘못 알고있었던 게 무브를 연산자라고 생각하고있던거네 ㅇㅇ
내가봤을때 넌 지금 RAII라는 개념을 이해 못함. 이 부분을 이해해라
그럼 내가 지금까지 생각하고있던건 왼값을 오른값 캐스팅하면 메모리공간(리소스)에 직접적으로 접근할 수 있다는 말은 틀림? 클래스의 이동 생성자와 이동할당연산자를 통해 리소스의 소유권을 이전해준다는 건 앎
틀림ㅋㅋㅋ move는 메모리 접근이 아님 자꾸 메모리에 집중 하지마라 ㅋㅋㅋ
리소스를 옮기거나 변경작업은 이동 생성자가 하는거고. 그냥 단순히 컴파일러에 지시 내리는게 move일뿐임. 이게 씨발 한국 모던 C++ 번역하는 새끼들이 메모리 지랄 염병해서 이해를 잘 못하고 있노 ㅋㅋ
아니 뭔데 물리공간에 쓰인 데이터 a를 컴파일러가 b라는 가상메모리주소에 할당했던걸 오른값캐스팅을 통해 a의 물리공간에 접근한다는 내용이 아니었다는 말임? 그러니까 a를 직접적으로 다룬다는 말
왜 자꾸 올드 C++을 생각하냐 모던 C++은 그걸로 감당안되서 변경하기 시작해서 새로운 설계철학으로 한게 모던 C++임ㅋㅋㅋ
그냥 a를 옮길 수 있어요 라는 지시허가일뿐임ㅋㅋ
어렵네ㅔ
기존 개념을 버려라
이 댓글은 게시물 작성자가 삭제하였습니다.
이 댓글은 게시물 작성자가 삭제하였습니다.
이 댓글은 게시물 작성자가 삭제하였습니다.
걍 move 연산자는 기존 복사함수로 대체 가능하지만 그럴 경우 실수도 많아짐 왜냐 복사하고 기존에걸 null로 만들거든 하나의 함수에서 두개의 동작이 수향되니 그 의미에 맞는 move를 만든거임
이건 언어차원에서 생긴 개념이 아니다는거지