我正在为类编写一个模板,该模板将一些STL容器(字符串,向量,列表)作为第一个参数,默认情况下第二个参数是operator <。我发现in少了,所以我尝试实现它。问题是我无法获取应该为T的“值类型”的T2(字符串-> char,vector-> T,列表-> T)
template <typename T, typename C = less<T2> > // using T as T2 leads to error in
// conversion from 'char' to 'const char *'
// (for string as T)
class MyClass
{
...
public:
CIndex ( const T& x, const C& comp = C ()) {}
...
}
解决这个问题的方法是什么?成为较少依赖类型T的论点吗?非常感谢您的帮助,我对模板没有太多经验
使用容器的value_type
:
template <typename T, typename C = less<typename T::value_type> >
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句