【发布时间】:2016-09-15 13:13:37
【问题描述】:
我有一个简单的模板,比如
template <typename a, typename b, typename c>
class myclass
{
};
我意识到我可以通过以下两种方式专门化模板:
template <typename a, typename b>
class myclass<a, b, int>
{
};
template <typename a, typename b>
class myclass<a, b, typename int>
{
};
为什么“typename int”和“int”没有区别?
【问题讨论】:
-
你肯定在使用 msvc。
-
“我意识到我可以通过以下两种方式专门化模板:” gcc 和 clang 确实不同意。
-
应该不起作用。 And nope, doesn't work。你的编译器有问题。
-
所以正式的方式应该是“int”而不是“typename int”?