C에서 전달 참조와 rvalue 참조는 유사한 구문을 공유하는 특별한 관계를 유지합니다. 이러한 유사성은 혼란을 야기하는지, 대체 구문을 고려했는지에 대한 의문을 제기합니다.
범용 참조(전달 참조라고도 함)는 T&& 구문을 사용합니다. rvalue 참조(T&&)와는 lvalue(객체에 대한 참조) 및 rvalue(객체 자체)에 바인딩하는 기능이 다릅니다.
전달 참조 및 rvalue 참조에 대한 구문을 공유하는 것은 템플릿 인수 추론 및 참조 축소 규칙에 대한 원활한 통합에 있습니다. 동일한 구문을 사용하면 컨텍스트에 따라 범용 참조가 lvalue 참조(T&) 또는 rvalue 참조(T&&)로 추론될 수 있습니다.
이 접근 방식을 사용하면 더 복잡한 추가 구문이 필요하지 않습니다. . 예를 들어, T&@가 범용 참조에 사용된 경우 함수 매개변수 유형은 T& 또는 T&&는 컴파일러가 추론한 실제 유형에서 벗어납니다.
표준화 과정에서 범용 참조에 대한 대체 구문이 진지하게 고려되었는지는 확실하지 않습니다. 프로세스. 그러나 일관된 구문은 기존 유형 시스템과 잘 일치하며 일반적으로 참조의 동작을 명확하게 이해할 수 있도록 해줍니다.
요약하면 참조 전달 및 rvalue 참조에 대한 공유 구문을 사용하면 유형 추론 및 참조 축소가 가능합니다. 추가 구문이나 혼란스러운 문법 규칙이 필요하지 않아 원활하게 작업할 수 있습니다.
위 내용은 전달 참조와 Rvalue 참조가 C에서 동일한 구문을 공유하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!