我要实现一个非成员函数isHomogenous(三重三重)为模板类定义为:C++模板函数专业化
template <typename T1, typename T2, typename T3>
class Triple
{
public:
Triple()
{ }
Triple(const T1 &a, const T2 &b, const T3 &c) : a(a), b(b), c(c)
{ }
...
的isHomogenous函数应该返回指示布尔值是否所有的三个值的在参数triple中是相同类型的。我曾尝试过:
template <typename T> bool isHomogenous(Triple<T, T, T> triple) {
return true;
}
template <typename T1, typename T2, typename T3> bool isHomogenous(Triple<T1, T2, T3> triple) {
return false;
}
这不起作用,你可以提示我一个解决方案吗?
为什么没有找到解决方案为两种类型,如'的std :: is_same <>'从C++ 11 BinaryTypeTrait在20.9.6.2),然后使用它的两倍(A&B,A&C)? –