상태 저장 메타 프로그래밍: C의 잘못된 형태의 위협
"constexpr 카운터"로 예시되는 상태 저장 메타 프로그래밍의 수수께끼 같은 개념은 흥미롭고 당황한 C 프로그래머. C 14에서는 허용되는 것처럼 보이지만 C 17에서는 그 상태가 여전히 불확실합니다.
신비한 Constexpr 카운터
게시물에 설명된 대로 constexpr 카운터는 ADL을 활용합니다. 상태 정보를 캡처하고 검색하는 메커니즘입니다. 템플릿 내에서 프렌드 함수를 정의하고 나중에 참조함으로써 메타프로그래밍 상태의 저장이 가능해집니다.
모순과 논쟁
이 기술은 저장에 대한 이전 지침과 직접적으로 모순됩니다. 메타프로그래밍의 상태. 이러한 난해한 구성의 타당성에 대한 의문이 제기됩니다.
CWG의 Active Issue
CWG(C Working Group)는 이 문제를 인식했습니다(CWG Active Issue 2118). 그들은 이러한 기술이 잘못된 형식이어야 한다는 데 만장일치로 동의했지만 이를 금지하는 메커니즘은 아직 결정되지 않았습니다.
C 17에 대한 영향
CWG는 명확하게 선언하지 않았습니다. 상태 저장 메타프로그래밍은 형식이 잘못되었으므로 이러한 금지 사항이 결함 보고서를 통해 소급 적용될 가능성이 높습니다. (DR). 그때까지는 C 14에 따른 합법성과 향후 C 표준에서의 상태가 불확실합니다.
결론
상태 저장 메타프로그래밍은 흥미롭지만 일관성에 대한 잠재적인 위협입니다. C 메타프로그래밍의 신뢰성. CWG의 잘못된 형성 메커니즘에 대한 적극적인 추구는 이러한 고급 기술을 사용할 때 주의가 필요함을 강조합니다. C가 발전함에 따라 프로그래밍 환경에서 상태 저장 메타프로그래밍의 역할을 명확히 하는 이 문제에 대한 해결책을 기대할 수 있습니다.
위 내용은 상태 저장 메타 프로그래밍이 C 일관성에 위협이 됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!