10

VC++ 2010中的C++ 0x模式是否有關閉開關?我正在研究一個應該在非0x編譯器上編譯的項目,因此我想根據當前標準進行編譯。 (即使沒有直接使用這些新功能,仍然存在一些微妙之處,使得C++ 0x更加寬容)。在VC 2010中禁用C++ 0x功能?

我發現最接近的開關是Configuration Properties -> C/C++ -> Language -> Disable Language Extensions但事實並非如此。

回答

13

不,語言擴展通常是非標準供應商特定的添加。

C++ 0X功能:沒有直接的方法來關閉這些功能。一種解決方法是不使用它們。但是,請注意,不同版本的VC運行時的性能仍然存在顯着差異。 VC10實現移動語義,標準庫(例如std::string)慷慨地使用這些功能。

我認爲合理的妥協是切換回VS2008。最近的VS版本出了名的錯誤(迄今爲止,以我的經驗),並且從未像沒有Service Pack那樣工作過。 VS2008現在非常穩定,沒有任何C++ 0x功能,應該適合您的賬單。

+5

你也可以切換回在VS2010 IDE VS2008的編譯器,以及在項目設置。 – Andy 2010-08-21 04:28:33