非命名空间范围中的显式专业化
尽管在 Clang 中编译成功,但给定的代码无法在 GCC 中编译。根据 C 标准 ([temp.expl.spec]),可以在可以定义相应主模板的任何作用域中声明显式特化。
此行为似乎是 GCC 中的一个错误。根据 CWG 727,[temp.expl.spec] 中有关显式专业化的规则已被修改,以允许在任何相关范围内进行此类声明。
显式专业化范围
原始标准规定,应在包含专用模板的命名空间中声明显式专用化。但是,当前标准允许在可以定义主模板的任何范围内进行显式专业化:
GCC 未能遵守此更新规则构成 漏洞。该问题已被确定为 Bug 85282,目前由 GCC 开发团队跟踪。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3