>  기사  >  백엔드 개발  >  `std::ional`에 참조 유형 전문화가 부족한 이유는 무엇입니까?

`std::ional`에 참조 유형 전문화가 부족한 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-27 06:36:29960검색

Why Does `std::optional` Lack Reference Type Specializations?

질문: std::ional에서 참조 유형 전문화의 부재 탐색

표준 C에서 std::ional은 다음을 수행하는 컨테이너를 제공합니다. 값을 보유하거나 값이 없음을 나타냅니다. 그러나 Boost와는 달리 std::ional은 참조 유형에 대한 전문화가 부족하여 사용자에게 '왜?'라는 질문을 남깁니다. 이 기사에서는 이러한 디자인 결정의 이유를 자세히 알아보고 선택적 값에 대한 참조를 처리하기 위해 표준 라이브러리에서 사용할 수 있는 대체 옵션을 살펴봅니다.

답변: 우려 사항 및 향후 전망 해결

선택적 값에 대한 초기 제안(n3406) 동안 위원회 구성원은 선택적 참조에 관해 우려를 제기했습니다. 이후 n3527에서 저자들은 Optional Value의 채택 가능성을 높이기 위해 Optional Reference를 보조 제안으로 분리할 것을 제안했습니다.

C14에서는 Optional Reference가 다른 요인으로 인해 포함되지 않았지만 C14에서는 거부되지 않았습니다. 위원회. 이는 제안이 제출되면 향후 C 표준에 선택적 참조를 통합할 가능성을 열어줍니다.

선택적 값 참조를 위한 대안

std가 없더라도:: 참조 유형에 대한 선택적 전문화를 통해 표준 라이브러리는 선택적 값을 참조하기 위한 대안을 제공합니다:

  • std::reference_wrapper>: 이를 통해 선택적 값에 대한 참조를 생성하여 선택적 값에 대한 변경 사항이 참조에 반영되도록 합니다. 그러나 참조가 상수 참조(즉, std::cref로 초기화됨)인 경우 선택적 값은 불변으로 유지된다는 점에 유의하는 것이 중요합니다.

결론적으로 참조 유형 전문화가 부족합니다. std::Optional은 제안 과정 중 우려로 인해 발생했습니다. 그러나 위원회는 향후 선택적 참조를 고려할 가능성이 있습니다. 또한 표준 라이브러리는 std::reference_wrapper> 임시로 선택적 값을 참조하는 대안으로 사용됩니다.

위 내용은 `std::ional`에 참조 유형 전문화가 부족한 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.