Отключить функции C ++ 0x в VC 2010? - PullRequest
10 голосов
/ 21 августа 2010

Есть ли в режиме C ++ 0x в VC ++ 2010 выключатель?Я работаю над проектом, который должен компилироваться на компиляторах, отличных от 0x, и поэтому я хочу компилировать в соответствии с текущим стандартом.(Даже если ни одна из новых функций не используется напрямую, все еще есть тонкости, которые делают C ++ 0x более условным).

Ближайший переключатель, который я нашел, был Configuration Properties -> C/C++ -> Language -> Disable Language Extensions, но это не так.

Ответы [ 2 ]

13 голосов
/ 21 августа 2010

Нет, языковые расширения обычно являются нестандартными дополнениями для конкретного поставщика.

Функции C ++ 0X: прямого способа отключить эти функции нет. Один из обходных путей - не использовать их. Тем не менее, обратите внимание, что по-прежнему будет отмечаться разница в производительности между версиями среды выполнения VC. VC10 реализует семантику перемещения, и стандартная библиотека (например, std::string) щедро использует эти функции.

Разумный компромисс, на мой взгляд, это переключиться обратно на VS2008. Последние версии VS были заведомо ошибочными (пока, по моему опыту) и никогда не работали так, как должны без пакета обновления. VS2008 довольно стабилен сейчас без каких-либо функций C ++ 0x и должен соответствовать вашим требованиям.

3 голосов
/ 04 февраля 2011

Похоже, вы можете использовать набор инструментов vc2008 в VS2010, см .: Совместимость Visual C ++ 2010 с VC 2008

...