Compartir a través de


Error del compilador C2429

La "función del lenguaje" requiere la marca del compilador "opción del compilador"

Observaciones

La característica de lenguaje requiere una opción de compilador específica para la compatibilidad.

Example

El error C2429: la característica de lenguaje "nested-namespace-definition" requiere la marca del compilador "/std:c++17" se genera si intenta definir un espacio de nombres compuesto, un espacio de nombres que contiene uno o varios nombres de espacio de nombres anidados de ámbito, a partir de Visual Studio 2015 Update 5. (En La versión 15.3 de Visual Studio 2017, se requiere el modificador /std:c++latest). No se permiten definiciones de espacio de nombres compuestas en C++ antes de C++17. El compilador admite definiciones de espacio de nombres compuestas cuando se especifica la opción del compilador /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;
}