-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++ 11 nullptr
. Если макрос __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 + +, используемый в анализе Polyspace.
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
function, значение этой опции автоматически определяется из вашей системы сборки.
Если система сборки использует различные стандарты для различных файлов, последующий анализ Polyspace может эмулировать вашу систему сборки и использовать различные стандарты для компиляции этих файлов. Если вы открываете такой проект в пользовательском интерфейсе Polyspace, значение опции показано следующим образом defined-by-compiler
. Однако вместо одного стандарта Polyspace использует несколько стандартов для компиляции файлов. В анализе используется скрытая опция -options-for-sources
для связи различных стандартов с различными файлами.
Параметр: -cpp-version |
Значение: defined-by-compiler | cpp03 | cpp11 | cpp14 | cpp17 |
По умолчанию:
defined-by-compiler |
Пример (Bug Finder):
Polyspace Bug Finder -lang c -sources |
Пример (Code Prover):
Polyspace Code Prover -lang c -sources |
Пример (Bug Finder Server): polyspace-bug-finder-server -lang c -sources |
Пример (Код Prover Server):
Полипространство -code-prover-server -lang c -sources |