В этой таблице представлен частичный список элементов языка C++, которые были введены с C++ 14, и соответствующая поддержка Polyspace ®. Если код содержит неподдерживаемые конструкции, Polyspace сообщает об ошибке компиляции.
| C++ 14 Std Ref | Описание | Поддержанный |
|---|---|---|
| C++ 2014-N3323 | Неявное преобразование из типа класса в определенных контекстах, таких как delete или switch заявление. | Эта функция C++ 14 позволяет неявное преобразование из типа класса в определенных контекстах. Новый синтаксис/ключевое слово не вводится и поэтому не влияет на поддержку Polyspace для C++ 14. |
| C++ 2014-N3462 | Более удобные для SFINAE std::result_of | Да |
| C++ 2014-N3472 | Двоичные литералы, например, 0b100. | Да |
| C++ 2014-N3545 | operator() в integral_constant шаблон constexpr напечатать | Да |
| C++ 2014-N3637 | Связь между std::async и деструктор std::future | Новый синтаксис/ключевое слово не вводится и поэтому не влияет на поддержку Polyspace для C++ 14. |
| C++ 2014-N3638 | Автоматическое вычитание типа возврата для функций, для которых не указан явный тип возврата | Да. В некоторых случаях средство проверки кода может отображать ошибки компиляции. |
| C++ 2014-N3642 | Суффиксы для определяемых пользователем литералов с указанием времени (h, min, s, ms, us, ns) и строки (s) | Да |
| C++ 2014-N3648 | Инициализация захваченных элементов в лямбда-функциях | Да. В некоторых случаях во время инициализации средство проверки кода может вызывать соответствующие конструкторы больше раз, чем необходимо. |
| C++ 2014-N3649 | Общие (полиморфные) лямбда-выражения:
| Да |
| C++ 2014-N3651 | Шаблоны переменных | Да |
| C++ 2014-N3652 | Объявления, условия и циклы в constexpr функции. | Да |
| C++ 2014-N3653 | Инициализация агрегированных классов с меньшим количеством инициализаторов, чем членов Например, эта инициализация имеет меньше инициализаторов, чем членов. Участник struct S {
int a;
const char* b;
int c;
int d = b[a];};
S ss = { 1, "asdf" }; | Да |
| C++ 2014-N3654 | std::quoted | Да |
| C++ 2014-N3656 | std::make_unique | Да |
| C++ 2014-N3658 | std::integer_sequence | Да |
| C++ 2014-N3658 | std::shared_lock | Нет. Использование |
| C++ 2014-N3664 | Запрос new и delete операторы в пакетах. | Эта функция C++ 14 поясняет, как последовательные вызовы new реализуются операторы. Новый синтаксис/ключевое слово не вводится и поэтому не влияет на поддержку Polyspace для C++ 14. |
| C++ 2014-N3668 | std::exchange | Частично поддерживается. |
| C++ 2014-N3670 | Используя std::get с типом данных для получения одного элемента в std::tuple (при условии, что в кортеже имеется только один элемент данного типа) | Да |
| C++ 2014-N3671 | Перегрузки для std::equal, std::mismatch и std::is_permutation шаблоны функций, которые принимают два отдельных диапазона | Да |
| C++ 2014-N3733 | Удаление std::gets от <cstdio> | Да |
| C++ 2014-N3776 | Изменение формулировки для деструктора std::future | Новый синтаксис/ключевое слово не вводится и поэтому не влияет на поддержку Polyspace для C++ 14. |
| C++ 2014-N3779 | std::complex литералы, представляющие чистые мнимые числа с суффиксом i, if или il | Да |
| C++ 2014-N3781 | Использование одинарной кавычки в качестве разделителя цифр, например, 1'000. | Да |
| C++ 2014-N3786 | Запрет «вне воздуха» приводит к C++ 14 | Новый синтаксис/ключевое слово не вводится и поэтому не влияет на поддержку Polyspace для C++ 14. |
| C++ 2014-N3910 | Синхронизирующее поведение обработчиков сигналов | Новый синтаксис/ключевое слово не вводится и поэтому не влияет на поддержку Polyspace для C++ 14. |
| C++ 2014-N3924 | Отказ от использования rand() | Новый синтаксис/ключевое слово не вводится и поэтому не влияет на поддержку Polyspace для C++ 14. |
| C++ 2014-N3927 | Бесконтактные исполнения | Новый синтаксис/ключевое слово не вводится и поэтому не влияет на поддержку Polyspace для C++ 14. |
C++ standard version (-cpp-version)