Condividi tramite


Errore del compilatore C2429

'language feature' richiede il flag del compilatore 'compiler option'

La funzionalità del linguaggio richiede un'opzione del compilatore specifica per il supporto.

L'errore C2429: la funzionalità del linguaggio 'nested-namespace-definition' richiede il flag del compilatore '/std:c++17' viene generato se si tenta di definire uno spazio dei nomi composto, uno spazio dei nomi contenente uno o più nomi di spazio dei nomi annidati dall'ambito, a partire da Visual Studio 2015 Update 5. In Visual Studio 2017 versione 15.3 è necessaria l'opzione /std:c++latest . Le definizioni di spazio dei nomi composte non sono consentite in C++ prima di C++17. Il compilatore supporta definizioni di spazio dei nomi composte quando viene specificata l'opzione del /std:c++17 compilatore:

// 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;
}