Lorsque j'ai compilé mon code C++ avec GCC 4.3 pour la première fois (après avoir compilé avec succès avec pas d'avertissements sur 4.1, 4.0, 3.4 avec l' -Wall -Wextra
options) j'ai soudain eu une série d'erreurs de la forme warning: type qualifiers ignored on function return type
.
Envisager temp.cpp
:
class Something
{
public:
const int getConstThing() const {
return _cMyInt;
}
const int getNonconstThing() const {
return _myInt;
}
const int& getConstReference() const {
return _myInt;
}
int& getNonconstReference() {
return _myInt;
}
void setInt(const int newValue) {
_myInt = newValue;
}
Something() : _cMyInt( 3 ) {
_myInt = 2;
}
private:
const int _cMyInt;
int _myInt;
};
L'exécution g++ temp.cpp -Wextra -c -o blah.o
:
temp.cpp:4: warning: type qualifiers ignored on function return type
temp.cpp:7: warning: type qualifiers ignored on function return type
Quelqu'un peut-il me dire ce que je fais de mal qui viole la norme C++? Je suppose que lors du retour en valeur, le leader de l' const
est superflu, mais je vais avoir du mal à comprendre pourquoi il est nécessaire de générer un message d'avertissement avec elle. Existe-il d'autres endroits où je devrais laisser tomber le const?