-cpp-version)Укажите стандарт языка C++, следующий в исходном коде
Укажите стандарт языка C++, которому следует исходный код.
Пользовательский интерфейс (только для настольных ПК): в конфигурации проекта этот параметр находится в узле Target & Compiler. Другие параметры, которые необходимо включить, см. в разделе Зависимости.
файл командной строки и параметров: Использовать параметр -cpp-version. См. раздел Сведения о командной строке.
Используйте этот параметр, чтобы программа Polyspace ® разрешала функции определенной версии стандарта языка C++ во время компиляции. Например, при компиляции с использованием флага GCC -std=c++11 или -std=gnu++11, указать cpp11 для этого варианта. Если вы не уверены в языковом стандарте, укажите defined-by-compiler.
Например, предположим, что используется диапазон for петли. Этот тип for цикл определен в стандарте C++ 11, но неизвестен в предыдущих стандартах, таких как C++ 03. Если компиляция Polyspace использует стандарт C++ 03, можно увидеть ошибки компиляции.
Чтобы проверить, допускает ли компилятор функции, специфичные для стандарта, скомпилируйте код с макросами, специфичными для стандарта, с помощью стандартных параметров компилятора. Например, чтобы проверить особенности C++ 11, скомпилируйте этот код. Код содержит ключевое слово, зависящее от C++ 11nullptr. Если макрос __cplusplus не является 201103L (указывая на C++ 11), это ключевое слово используется и вызывает ошибку компиляции.
#if defined(__cplusplus) && __cplusplus >= 201103L
/* C++11 compiler */
#else
void* ptr = nullptr;
#endif
cpp11 для этого варианта.По умолчанию: defined-by-compiler
defined-by-compilerВ анализе используется стандарт, основанный на спецификации для Compiler (-compiler).
См. Стандарт языка C/C + +, используемый в анализе пространства.
cpp03В анализе используется стандарт C++ 03 (ISO ®/IEC 14882:2003).
cpp11В анализе используется стандарт C++ 11 (ISO/IEC 14882:2011).
cpp14В анализе используется стандарт C++ 14 (ISO/IEC 14882:2014).
cpp17В анализе используется стандарт C++ 17 (ISO/IEC 14882:2017).
Эта опция доступна только при установке Source code language (-lang) кому CPP или C-CPP.
При создании проекта или файла параметров из системы построения с помощью polyspace-configure команда или polyspaceConfigure значение этой опции автоматически определяется из системы сборки.
Если система сборки использует различные стандарты для различных файлов, последующий анализ Polyspace может эмулировать систему сборки и использовать различные стандарты для компиляции этих файлов. При открытии такого проекта в интерфейсе пользователя Polyspace значение опции отображается как defined-by-compiler. Однако вместо одного стандарта Polyspace использует несколько стандартов для компиляции файлов. В анализе используется скрытая опция -options-for-sources для связывания различных стандартов с различными файлами.
Параметр: -cpp-version |
Значение: defined-by-compiler | cpp03 | cpp11 | cpp14 | cpp17 |
По умолчанию:
defined-by-compiler |
Пример (поиск ошибок):
polyspace-bug-finder -lang c -sources |
Пример (проверка кода):
polyspace-code-prover -lang c -sources |
Пример (сервер поиска ошибок): polyspace-bug-finder-server -lang c -sources |
Пример (сервер проверки кода):
polyspace-code-prover-server -lang c -sources |