Явная специализация в области вне пространства имен
Данный код не может скомпилироваться в GCC, несмотря на успешную компиляцию в Clang. Согласно стандарту C ([temp.expl.spec]), явные специализации могут быть объявлены в любой области, где может быть определен соответствующий основной шаблон.
Похоже, что такое поведение является ошибкой в GCC. Согласно CWG 727, правило в [temp.expl.spec] относительно явной специализации было изменено, чтобы разрешить такие объявления в любой соответствующей области.
Область явной специализации
Исходный стандарт гласил, что явная специализация должна быть объявлена в пространстве имен, включающем специализированный шаблон. Однако текущий стандарт допускает явную специализацию в любой области, где может быть определен основной шаблон:
Неспособность GCC соблюдать это обновленное правило представляет собой ошибку. Проблема была идентифицирована как ошибка 85282 и в настоящее время отслеживается командой разработчиков GCC.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3