有时我想写两个模板,如:为什么C++不允许模板重载?
template <typename Type1>
class A{
...
};
template <typename Type1, typename Type2>
class A{
...
};
但似乎是不合法的有两个模板共享相同的名称,但有不同的参数。我必须将它命名为A_1
,A_2
。我认为这可能是有用的,如果我可以做到这一点,特别是在执行Functors时。
为什么C++不允许这样做?在某些情况下难以实施还是模棱两可?这将在更高版本的C++上得到支持吗?
出于同样的原因,C++不允许具有相同名称的两个类。 – Jack
使用C++ 11可变参数模板http://en.wikipedia.org/wiki/Variadic_template – higuaro
您可以使用默认模板参数来近似它。 –