【发布时间】:2018-09-17 07:57:26
【问题描述】:
以下代码在 Clang 中编译,但在 GCC 中不编译:
template<typename T>
struct Widget
{
template<typename U>
void foo(U)
{
}
template<>
void foo(int*)
{
}
};
根据 C++ 标准([temp.expl.spec],第 2 段):
可以在对应的主模板可能存在的任何范围内声明显式特化 定义
这是 GCC 中的错误吗?如果是,我如何在其错误跟踪器中找到它?
这是 GCC 的输出:
prog.cc:13:14: error: explicit specialization in non-namespace scope 'struct Widget<T>'
template<>
^
我正在使用 GCC HEAD 8.0.1,-std=c++2a。
【问题讨论】:
-
您能否编辑您的问题以包含 GCC 的完整输出?
-
@Someprogrammerdude 完成
标签: c++ templates gcc language-lawyer bug-reporting