你会如何专业化std :: greater

时间:2015-03-02 05:40:54

标签: c++ stl

有一个

std::list<MyBaseClass*> objects;

如何(意思是语法)你将专门化std :: greater 对于std :: list

的排序方法
template<> class std::greater<MyBaseClass*> {
public:
     bool operator()(const MyBaseClass*& lhs, const MyBaseClass*& rhs) const
     {
         return lhs->get_index() > rhs->get_index();
     }

产生错误:

  

C2662:'int MyBaseClass :: get_index(void)':无法将'this'指针从'const MyBaseClass'转换为'MyBaseClass&amp;'   转换失去限定符

你能解释一下这个问题吗?

1 个答案:

答案 0 :(得分:4)

eidos::MyBaseClass::get_index()的实施需要标记为&#34; const&#34;。