Вопрос по c++, c++11 – Проверка функций C ++ 11
Как проверить наличие отдельных особенностей языка C ++ 0x / C ++ 11? Я знаю, что у Clang есть хорошая система для этого. А как насчет GCC, Visual Studio или Boost? Я думаю, что один из способов сделать это - определить версию компилятора и связать ее с функциями, представленными в этой версии. Но это громоздко. Кто-то уже сделал это?
буст конфиг поставляется со скриптом для проверки некоторых, но не всех функций C ++ 11.
Он генерирует конфигурационный файл с макросами для каждой функции.
CMake имеетtry_compile
команда, которая позволяет вам проверить, будет ли пример кода скомпилироваться и установить переменную в зависимости от результата компиляции.
В данный момент я только что использовал более часто поддерживаемые функции, такие какauto
типирование.
Вы можете часто использовать Boost для замены отсутствующих функций библиотеки, и это может быть лучшим вариантом на несколько лет, пока обновляются компиляторы и библиотеки и исправляются ошибки.
Список совместимости функций C ++ 11 для GCC находится здесь:http://gcc.gnu.org/projects/cxx0x.html
Обратите внимание на предупреждение:
Important: GCC's support for C++11 is still experimental. Some features were implemented based on early proposals, and no attempt will be made to maintain backward compatibility when they are updated to match the final C++11 standard.