Erreur "passing const xxx as 'this' argument discards qualifiers" en C++ : comment corriger
Bonjour ! Je suis un développeur C++ débutant et j'ai rencontré une erreur que je ne comprends pas. J'essaie d'utiliser std::set pour stocker des objets personnalisés, mais le compilateur affiche une erreur :
error: passing 'const MyClass' as 'this' argument of 'bool MyClass::operator<(const MyClass&)' discards qualifiers [-fpermissive]
Voici mon code :
#include <iostream>
#include <set>
class MyClass {
public:
MyClass(int val) : value(val) {}
bool operator<(const MyClass& other) {
return this->value < other.value;
}
int getValue() const { return value; }
private:
int value;
};
int main() {
std::set<MyClass> mySet;
mySet.insert(MyClass(10));
mySet.insert(MyClass(5));