Когда я впервые скомпилировал свой код C ++ с GCC 4.3 (после успешной компиляции без предупреждений на 4.1, 4.0, 3.4 с параметрами -Wall -Wextra
) я внезапно получил кучу ошибок вида warning: type qualifiers ignored on function return type
.
Рассмотрим 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;
};
Бег 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
Может кто-нибудь сказать мне, что я делаю неправильно, что нарушает стандарт C ++? Я полагаю, что при возврате по значению ведущий const
является излишним, но у меня возникают проблемы с пониманием, почему с ним необходимо создать предупреждение. Есть ли другие места, где я должен был бы остановиться?