> 백엔드 개발 > C++ > `std::move` 이름이 `std::move`인 이유는 무엇입니까?

`std::move` 이름이 `std::move`인 이유는 무엇입니까?

Barbara Streisand
풀어 주다: 2024-11-25 14:50:11
원래의
353명이 탐색했습니다.

Why is `std::move` named `std::move`?

std::move의 이름이 std::move인 ​​이유는 무엇입니까?

std::move(x) 함수는 물리적으로 아무것도 이동하지 않지만 다음과 같은 역할을 합니다. rvalue에 대한 캐스트. 이러한 명명 결정은 코드 가독성을 높이기 위해 이루어졌습니다.

rvalue 참조에 대한 이전 논의에서 캐스팅 이면의 의도를 전달하기 위해, 특히 이동 의미론을 활성화하기 위해 구문 설탕 "move"가 도입되었습니다. 이 이름 지정은 목적에 대한 의문을 제기할 수 있는 좀 더 기술적인 "cast_to_rvalue"를 대체했습니다.

"move"를 사용하면 코드는 오른쪽에서 복사하는 것이 아니라 오른쪽에서 이동하려는 의도를 명시적으로 나타냅니다. 구체적인 구현 세부 사항을 이해할 필요가 없습니다.

std::move의 기본 메커니즘은 xvalue에 대한 캐스트이지만 주요 영향은 컴파일 중에 발생하며 여기에 영향을 미칠 수 있습니다. 이동 할당 연산자의 존재에 따라 적절한 오버로드를 선택합니다. 런타임 시 std::move는 완전히 사라지며 사소하게 이동할 수 있는 객체의 객체 코드에 눈에 띄는 영향을 주지 않습니다.

위 내용은 `std::move` 이름이 `std::move`인 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿