Коли я вперше скомпілював свій код 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
є зайвим, але у мене виникають проблеми з розумінням, чому з ним потрібно генерувати попередження. Чи є інші місця, де мені слід залишити конкурс?