C 컨테이너에서 불완전한 유형이 금지되는 이유
질문:
왜 C 컨테이너는 표준은 불완전한 유형의 컨테이너를 허용하지 않습니다. 인스턴스화되었나요?
답변:
이와 관련하여 C 표준화 위원회의 결정은 역사적인 이유에서 비롯되었습니다.
초기 테스트 결과 컨테이너의 간단한 예에서도 불완전한 유형이 있는 경우 모든 STL 구현에서 일관되게 작동하지 않았습니다. 이러한 명확성 부족으로 인해 위원회는 STL 컨테이너가 불완전한 유형과 함께 작동하는 정의되지 않은 동작을 선언하고 이러한 금지를 표준 라이브러리의 나머지 부분으로 확대했습니다.
이러한 결정은 기존 라이브러리 구현을 무효화하지 않기 위해 취해졌습니다. 불완전한 유형을 소급하여 지원하지 않습니다.
초기 금지에도 불구하고 위원회의 라이브러리 작업 그룹 의장인 Matt Austern은 향후 C에서 이 제한을 완화할 가능성을 인정했습니다.
금지 사항이 여전히 현재 표준에 있지만 Boost::container는 불완전한 유형을 허용하는 컨테이너의 타당성을 보여주며 원하는 상황에 대한 솔루션을 제공합니다.
위 내용은 C 컨테이너가 불완전한 유형을 보유할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!