Ошибка: передача 'const T' в качестве 'этого' аргумента 'bool T :: operator <(T)' отбрасывает квалификаторы

#include <iostream>
#include <vector>
#include <algorithm>
class MyData
    {
    public:
        int m_iData;
        bool operator<(MyData rhs) { return m_iData < rhs.m_iData; }
    };

int main () 
{
    std:: vector <MyData> myvector(2, MyData() );
    myvector[0].m_iData=2; myvector[1].m_iData=4;

    std::sort(myvector.begin(), myvector.end()); 
}

Попытка скомпилировать это дает:

error: passing 'const MyData' as 'this' argument of 'bool MyData::operator<(MyData)'
discards qualifiers
9
задан Matt Munson 23 October 2011 в 22:32
поделиться