다음을 통해 공유


컴파일러 오류 C2429

'언어 기능'에는 컴파일러 플래그 'compiler option'이 필요합니다.

언어 기능을 지원하려면 특정 컴파일러 옵션이 필요합니다.

오류 C2429: 언어 기능 'nested-namespace-definition'은 Visual Studio 2015 업데이트 5부터 하나 이상의 범위 중첩 네임스페이스 이름이 포함된 네임스페이스인 복합 네임스페이스를 정의하려고 하면 컴파일러 플래그 '/std:c++17'이 생성되어야 합니다. (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;
}