我有一个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
无法在这里工作?我可以解决它吗?