10

Hat C++ 0x-Modus in VC++ 2010 einen Aus-Schalter? Ich arbeite an einem Projekt, das kompiliert werden sollte auf Nicht-0x-Compiler, und daher möchte ich gegen den aktuellen Standard kompilieren. (Selbst wenn keine der neuen Features direkt verwendet werden, gibt es immer noch Feinheiten, die C++ 0x prämissiver machen).Deaktivierung von C++ 0x-Funktionen in VC 2010?

Der nächste Schalter, den ich fand, war Configuration Properties -> C/C++ -> Language -> Disable Language Extensions, aber das ist es nicht.

Antwort

13

Nein, Spracherweiterungen sind in der Regel nicht standardmäßige herstellerspezifische Zusätze.

C++ 0X-Funktionen: Es gibt keine direkte Möglichkeit, diese Funktionen zu deaktivieren. Eine Abhilfe besteht darin, sie nicht zu verwenden. Beachten Sie jedoch, dass die Leistung in den verschiedenen Versionen der VC-Laufzeit weiterhin stark unterschiedlich ist. VC10 implementiert die Bewegungssemantik und die Standardbibliothek (z. B. std::string) nutzt diese Funktionen großzügig.

Ein vernünftiger Kompromiss ist meines Erachtens die Umstellung auf VS2008. Die letzten VS-Versionen waren notorisch fehlerhaft (soweit ich das bisher gesehen habe) und haben nie so funktioniert, wie sie es sollten, ohne ein Service Pack. VS2008 ist jetzt ziemlich stabil, ohne diese C++ 0x-Funktionen und sollte Ihre Rechnung passen.

+5

Sie auch zurück zu mit dem VS2008-Compiler in den VS2010 IDE als auch in den Projekteinstellungen wechseln. – Andy