厳密な C++ コンパイラ - 文字列リテラルの定数への変更

提供: Appmethod Topics
移動先: 案内検索

より厳密な C++ コンパイラ(Appmethod C++ 2007):インデックス への移動


文字列リテラルは、デフォルトでは 'const char[]' の型と見なされるようになりました。 これは、const 値および型の厳密な制限によるバインドと組み合わさって、以前はコンパイルできたコードでエラー メッセージを出力することがあります。

-Vbs スイッチを有効にすると、文字列リテラルを非 const に戻すことができます。 ただし、そうせずにコードを更新することをお勧めします。

文字列リテラルの型の変更によって、コンパイラがオーバーロードされたメソッドへの呼び出しを解決する方法も変更されることがあります。 次に例を示します。

 void foo(char *);
  void foo(const char *);
  foo("string"); // New Compiler picks foo(const char *)

C++Builder2007 では、上のコードは次のコンパイル エラーになります。

関連項目