-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)
.
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 - Ленг c - источники |
Пример (Программа автоматического доказательства Кода):
Polyspace Code Prover - Ленг c - источники |
Пример (Сервер Средства поиска Ошибки): сервер средства поиска ошибки полипробела - Ленг c - источники |
Пример (Сервер Программы автоматического доказательства Кода):
сервер программы автоматического доказательства полипробела кода - Ленг c - источники |
C standard version (-c-version)
| Source code language (-lang)