example - how to setup visual studio for c++



Visual Studio 2012__cplusplus e C++ 11 (2)

Dipende davvero da cosa ti aspetti che in realtà la macro significhi. 201103L dovrebbe significare "Questo compilatore supporta pienamente tutto il C ++ 11 sia nel compilatore che nella libreria?" Dovrebbe significare "Questo compilatore supporta alcuni sottoinsiemi ragionevoli di C ++ 11?" Dovrebbe significare "Questo compilatore supporta almeno una caratteristica di C ++ 11 in qualche modo, forma o forma?"

Spetta davvero a ciascuna implementazione decidere quando eseguire il bump del numero di versione. Visual Studio è diverso da Clang e GCC, in quanto non ha una modalità di compilazione C ++ 03 separata; fornisce un set specifico di funzionalità, ed è quello che fornisce.

In generale, una singola macro non è uno strumento utile per decidere quando utilizzare alcune funzionalità. Boost.Config è un meccanismo molto più affidabile. Il comitato per gli standard sta studiando i modi per affrontare questo problema nelle versioni future dello standard.

Qualcuno sa perché __cplusplus è definito come 199711L (che è il "vecchio" C ++) nel mio progetto c ++ di Visual Studio 2012? Non dovrebbe indicare 201103L dal momento che VS 2012 ora supporta C ++ 11? Anche se includo intestazioni C ++ 11, è ancora definito in modo errato. Qualche indizio?






c++11