비네임스페이스 범위의 명시적 특수화
Clang에서 성공적으로 컴파일되었음에도 불구하고 해당 코드가 GCC에서 컴파일되지 않습니다. C 표준([temp.expl.spec])에 따르면 해당 기본 템플릿이 정의될 수 있는 모든 범위에서 명시적 특수화를 선언할 수 있습니다.
이 동작은 GCC의 버그인 것으로 보입니다. CWG 727에 따르면 명시적 특수화에 관한 [temp.expl.spec]의 규칙은 모든 관련 범위에서 이러한 선언을 허용하도록 수정되었습니다.
명시적 특수화 범위
원래 표준에서는 특수화된 템플릿을 포함하는 네임스페이스에서 명시적인 특수화를 선언해야 한다고 명시했습니다. 그러나 현재 표준은 기본 템플릿을 정의할 수 있는 모든 범위에서 명시적인 특수화를 허용합니다.
GCC가 이 업데이트된 규칙을 준수하지 못한 것은 버그를 구성합니다. 이 문제는 버그 85282로 확인되었으며 현재 GCC 개발팀에서 추적하고 있습니다.
위 내용은 GCC가 네임스페이스가 아닌 범위에서 명시적 특수화를 컴파일하지 못하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!