메타 프로그래밍 영역에서는 상태 저장 메타 프로그래밍으로 알려진 흥미로운 constexpr 카운터 기술이 등장합니다. 이 복잡한 기술은 개발자들 사이에서 감탄과 불안을 불러일으켰습니다. 질문은 계속 남아 있습니다. C 17의 출현으로 적법성이 다시 검토되었습니까?
C 14의 상태 저장 메타 프로그래밍
제공된 코드 조각에서 알 수 있듯이 C 14는 친구 선언, ADL 및 constexpr을 활용하여 호출 전반에 걸쳐 상태를 유지하는 카운터를 만듭니다. 겉보기에 난해해 보이는 특성에도 불구하고 이 기술은 C 14에서 합법적입니다.
The Dark Cloud: CWG Issue 2118
그러나 이 방법은 C 표준에서 정밀 조사를 받았습니다. 특히 활성 이슈 CWG 이슈 2118을 통해 위원회는 이 기술의 모호함을 인식하고 잘못된 형식의 경계 설정을 옹호합니다.
C 17의 Silent Stance
CWG의 우려에도 불구하고 C 17은 이 문제를 명시적으로 다루지 않습니다. 이는 상태 저장 메타프로그래밍이 미래에 변경될 수 있다는 경고가 있음에도 불구하고 C 17에서 여전히 합법적임을 의미합니다.
소급적 의미
금지 메커니즘이 고안된 경우, 상태 저장 메타프로그래밍은 소급하여 형식이 잘못된 것으로 간주될 수 있습니다. 이렇게 하면 질문에 제시된 코드 조각이 유효하지 않게 되어 기존 코드베이스에 잠재적인 위험을 초래할 수 있습니다.
결론
상태 저장 메타프로그래밍의 미래는 여전히 불확실합니다. C 17에서는 여전히 합법적이지만, 이 기술에 대한 CWG의 불편함은 그 날이 얼마 남지 않았음을 암시합니다. 이 기술을 사용하는 개발자는 이러한 잠재적인 주의 사항을 인지하고 C 표준의 향후 업데이트를 모니터링하여 코드 무결성을 확인해야 합니다.
위 내용은 C 17에서 상태 저장 메타 프로그래밍이 합법적입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!