根据参数类型实例化重载的类模板

时间:2016-04-13 20:16:19

标签: c++ templates c++11

我有一个Container<T>类,其中包含T类型的元素。 T可能是也可能不是引用类型,我想以不同的方式对待它们(即Container<int>Container<const int &>具有不同的实现方式。我尝试过像

这样的东西
template<typename T, typename = typename std::enable_if<std::is_reference<T>::value>::type>
struct Container {
    ...
};

template<typename T, typename = typename std::enable_if<!std::is_reference<T>::value>::type>
struct Container {
    ...
};

但编译器抱怨重新定义Container。为什么enable_if无法在这里工作?我可以解决它吗?

0 个答案:

没有答案