"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > `std::ional`이 참조 유형을 지원하지 않는 이유는 무엇입니까?

`std::ional`이 참조 유형을 지원하지 않는 이유는 무엇입니까?

2024년 11월 12일에 게시됨
검색:363

 Why Doesn\'t `std::optional` Support Reference Types?

선택적 참조 유형: std::Optional 및 Alternatives에 없는 이유

표준 라이브러리의 std::Optional 클래스, std로 제공 ::experimental::selective in libc 는 특히 참조 유형에 대한 전문화가 부족합니다. 이는 그러한 전문화가 유익한지 여부에 대한 의문을 제기합니다.

선택적 참조 유형의 장점

선택적 참조 유형은 다음과 같은 장점을 제공할 수 있습니다.

  • 효율성: 참조는 일반적으로 복사보다 효율적이므로 잠재적으로 메모리 사용량과 성능 오버헤드를 줄일 수 있습니다.
  • 표현 간결성: 참조 유형은 명시적인 언래핑 없이 직접 역참조할 수 있으므로 선택적 객체와 관련된 표현식을 단순화합니다.

부재에 대한 근거

이러한 잠재적 이점에도 불구하고 std::Optional은 현재 참조 유형에 대한 전문화가 부족합니다. 그 이유는 표준화 과정에서의 논의에 있다.

위원회 위원들은 선택 참조의 의미에 대해 우려를 표명했다. 그들은 선택적 참조가 이미 파괴되었거나 유효하지 않은 개체를 참조할 수 있기 때문에 개체 수명 및 소유권과 관련된 잠재적인 문제에 대해 걱정했습니다.

대체 옵션

표준: :옵션은 참조 유형을 지원하지 않으며, 표준 라이브러리는 대체 솔루션을 제공합니다:

  • 옵션 값: std::옵션은 값 유형을 전문화하여 값을 나타내는 기능을 제공합니다. 존재할 수도 있고 존재하지 않을 수도 있습니다.
  • std::reference_wrapper: 이 클래스를 사용하면 원본 객체의 참조보다 오래 지속되는 참조를 생성할 수 있습니다. 그러나 std::ional의 "존재할 수도 있는" 의미는 없습니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3