[解決済み] gcc の警告: 関数の戻り値の型修飾子について
2023-05-24 11:48:13
質問
初めてGCC 4.3でC++のコードをコンパイルしたとき、(4.1、4.0、3.4で警告を出さずにうまくコンパイルした後、-Wall -Wextra
オプションで4.1、4.0、3.4では警告を出さずにうまくコンパイルできたのに)、突然、次の形式のたくさんのエラーが出ました
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
は余計なものだと思いますが、なぜそれで警告を出す必要があるのか理解に苦しみます。他にconstを省略すべき場所があるのでしょうか?
どのように解決すればよいのでしょうか?
規格に抵触しない そのため、彼らは 警告 であって エラー .
そして、確かにあなたの言うとおり、先頭の
const
は余計なものです。コンパイラは、他の状況では何かを意味するかもしれないが、この状況では何も意味しないコードを追加したために警告を発し、戻り値が結局変更可能であることが判明したときに後で失望しないようにしたいのです。
関連
-
[解決済み] テスト
-
[解決済み】C++でint型に無限大を設定する
-
[解決済み】IntelliSense:オブジェクトに、メンバー関数と互換性のない型修飾子がある
-
[解決済み】fpermissiveフラグは何をするのですか?
-
[解決済み】エラー:不完全な型へのメンバーアクセス:前方宣言の
-
[解決済み】1つ以上の多重定義されたシンボルが見つかる
-
[解決済み】std::cin.getline( ) vs. std::cin
-
[解決済み] 変数サイズのオブジェクトが初期化されないことがある c++
-
[解決済み] スタックアロケーションにより初期化されていない値が作成された
-
[解決済み] 「NSString *' 型のパラメータに 'const NSString *' を送ると修飾子が破棄される」警告
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】 unsigned int vs. size_t
-
[解決済み] テスト
-
[解決済み】C++ クラスヘッダが含まれているときに「不明な型」があるのはなぜですか?重複
-
[解決済み】C++ - 解放されるポインタが割り当てられていないエラー
-
[解決済み】致命的なエラー LNK1169: ゲームプログラミングで1つ以上の多重定義されたシンボルが発見された
-
[解決済み】C++エラーです。"配列は中括弧で囲まれたイニシャライザーで初期化する必要がある"
-
[解決済み】エラー:strcpyがこのスコープで宣言されていない
-
[解決済み] 非静的データメンバの無効な使用
-
[解決済み】CMakeエラー at CMakeLists.txt:30 (project)。CMAKE_C_COMPILER が見つかりませんでした。
-
[解決済み】なぜ、サイズ8の初期化されていない値を使用するのでしょうか?