'language feature' にはコンパイラ フラグ ''compiler option' が必要です
注釈
言語機能には、エラー メッセージに表示されるコンパイラ オプションが必要です。
Visual Studioで C++ 言語標準を設定するには:
- プロジェクトの [プロパティ ページ] ダイアログを開きます。
- 構成プロパティ>C/C++>Language を選択します。
-
C++ 言語標準の場合は、エラー メッセージで指定された標準を選択し、[OK] または [適用] を選択します。 たとえば、エラーで
/std:c++17が指定されている場合は、ISO C++17 Standard (/std:c++17) を選択します。
コマンド ライン ビルドの場合は、指定したオプションを cl コマンドに追加します。
Example
次の例では C2429 が生成されます。コンパイラが既定の C++14 言語標準を使用する場合、 言語機能 'nested-namespace-definition' にはコンパイラ フラグ '/std:c++17' が必要 です。 入れ子になった名前空間定義には、C++17 以降が必要です。 エラーを修正するには、 /std:c++17 オプション以降でコンパイルするか、各名前空間を個別に定義します。
// C2429.cpp
namespace a::b { int i; } // C2429 when the compiler uses C++14.
// Use /std:c++17 or later, or define each namespace as follows:
// namespace a { namespace b { int i; }}
int main() {
a::b::i = 2;
}