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