template <typename _Type, typename _Comparator=less<typename _Type::value_type> >
class Myclass
// and then comes the rest of my class
我想创建一个带字符串的专用模板(但也可以使用其他比较默认值的比较器) 我尝试了这个,但它没有编译。
template <typename _Comparator=less<typename _Type::value_type> >
class Myclass<string>
我知道下一个示例有效,但它使用我修复的默认比较器。
template <>
class Myclass<string>
答案 0 :(得分:1)
您可以创建另一个默认模板参数:
template<class Comparator = other_functor>
class Myclass<string, Comparator> {
};
答案 1 :(得分:1)
不允许在类模板特化中指定默认模板参数。使用以下语法来实现您的目标:
template <typename Comparator>
class Myclass<string, Comparator>
{
// ...
};
答案 2 :(得分:0)
宣布专业化时删除=less<typename _Type::value_type>
。