【发布时间】:2021-07-07 09:12:14
【问题描述】:
给定:
namespace ns
{
inline namespace
{
template<typename T>
void f();
}
}
template<typename T>
void ns::f() {}
int main()
{
ns::f<int>();
}
GCC (trunk) 抱怨 ns::f<int> 没有定义。 Clang(主干)对此很好。见:https://godbolt.org/z/n5qMs85q5
这是 GCC 中的一个已知错误吗? Clang 不正确吗?
【问题讨论】:
-
我的解决方法是:namespace { inline namespace local { using namespace ns;模板
void f(); } } 模板 void local::f() {}
标签: c++ c++17 language-lawyer