編譯器錯誤 C2429
'language feature' 需要編譯器旗標 'compiler option'
語言功能需要特定的編譯程式選項來支援。
錯誤 C2429:語言功能 'nested-namespace-definition' 需要編譯程式 旗標 '/std:c++17' ,如果您嘗試定義 複合命名空間,該命名空間包含一或多個範圍巢狀命名空間名稱,從 Visual Studio 2015 Update 5 開始。 (在 Visual Studio 2017 15.3 版中 /std:c++latest
,需要參數。C++17 之前,C++不允許複合命名空間定義。 指定編譯程式選項時 /std:c++17
,編譯程式支援複合命名空間定義:
// C2429a.cpp
namespace a::b { int i; } // C2429 starting in Visual Studio 2015 Update 3.
// Use /std:c++17 to fix, or do this:
// namespace a { namespace b { int i; }}
int main() {
a::b::i = 2;
}