C 11에서 참조 축소 규칙의 역할
참조 축소 규칙은 C 11에서 완벽한 전달을 가능하게 하는 데 중요한 역할을 합니다. 완벽한 전달을 통해 값, lvalue 참조 또는 rvalue별로 매개변수를 원활하게 받아들이고 전달하는 함수 reference.
참조 축소 규칙
C 11의 참조 축소 규칙은 다음과 같습니다.
참조 축소의 이론적 근거
이 규칙은 매개변수가 전달되는 방식(lvalue, rvalue 또는 rvalue 참조)에 관계없이 다음을 보장합니다. 완벽을 위한 원하는 유형으로 수신 기능에 의해 항상 "표시"됩니다. 전달.
C 11 STL 유틸리티 함수의 활용
std::move() 및 std::forward()와 같은 STL 유틸리티 함수는 참조를 활용합니다. 완벽한 전달을 용이하게 하기 위해 내부적으로 축소됩니다. 예를 들면 다음과 같습니다.
template<class T> void Fwd(T & &v) { Call(std::forward<T>(v)); }
std::forward<> lvalue 참조의 경우 "& &"를 "&"로, rvalue 참조의 경우 "& &"를 "& &"로 축소하여 Call이 해당 매개변수를 적절한 형식으로 받을 수 있도록 합니다.
std와의 관계: :remove_reference
std::remove_reference와 같은 유틸리티를 사용하여 유형 추론에서 참조를 제거할 수 있습니다. (예를 들어, std::remove_reference
위 내용은 C 11 참조 축소 규칙은 어떻게 완벽한 전달을 가능하게 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!