Какую версию C ++ я использую? - PullRequest
10 голосов
/ 15 февраля 2012

В настоящее время я использую C ++ в среде Windows.Я использую Visual Studio 2008 с пакетом обновления 1.

Я никогда не думал о версии C ++, пока не узнал о C++11.Существуют разные версии, такие как стандарт ANSI, стандарт C ++ 98 и т. Д.

  1. Как узнать, какую версию C ++ я использую?

  2. Если у меня нет Visual Studio, я знаю, что могу использовать другие компиляторы, такие как TC, для компиляции своего кода C ++.В таком случае, как я могу узнать, какую версию C ++ использует компилятор.

  3. Внесены ли изменения в последовательные версии C ++, касающиеся концепций программирования или только в дизайне языка?

Ответы [ 2 ]

9 голосов
/ 15 февраля 2012

Это не так просто, как проверка версии.

Каждый компилятор, который поддерживает некоторые C ++ 11, поддерживает другое подмножество C ++ 11.Ни один компилятор не объявляет о полном соответствии C ++ 11 по понятным причинам.

Спецификация C ++ 11 требует, чтобы был определен предопределенный макрос __cplusplus со значением 201103L.Однако вы не можете полагаться только на этот макрос.Не в реальном коде.

Вместо этого вы должны полагаться на макросы, специфичные для компилятора, чтобы указать, когда компилятор и какую версию этого компилятора вы используете.Или вы можете использовать Boost.Config , чтобы определить, поддерживаются ли определенные функции.

1 голос
/ 19 августа 2013

Visual Studio 2008? Вы можете забыть C ++ 11. Visual Studio 2010 имеет немного C ++ 11, но он глючит. Visual Studio 2012 имеет лучшую версию C ++ 11 для некоторых функций, но другие отсутствуют. В Visual Studio 2013 появилась новая поддержка шаблонов переменных и других функций. Но VS отстает от других компиляторов, таких как gcc в поддержке C ++ 11. Вы можете скачать бесплатные экспресс-версии для всех этих версий.

...