C++ 14 элементов языка, поддержанных в Polyspace

Эта таблица предоставляет частичный список элементов языка C++, которые были введены начиная с C++ 14 и соответствующая поддержка Polyspace®. Если ваш код содержит неподдерживаемые конструкции, Polyspace сообщает об ошибке компиляции.

C++ 14 станд. касательноОписаниеПоддерживаемый
2014-N3323 C++Неявное преобразование из типа класса в определенных контекстах, таких как delete или switch оператор.Этот C++ 14 функций позволяет неявное преобразование из типа класса в определенных контекстах. Никакой новый синтаксис/ключевое слово не введен и поэтому не влияет на поддержку Polyspace C++ 14.
2014-N3462 C++Более SFINAE-дружественный std::result_ofДа
2014-N3472 C++Бинарные литералы, например, 0b100.Да
2014-N3545 C++operator() в integral_constant шаблон constexpr вводДа
2014-N3637 C++Отношение между std::async и деструктор std::futureНикакой новый синтаксис/ключевое слово не введен и поэтому не влияет на поддержку Polyspace C++ 14.
2014-N3638 C++Автоматический вычет возврата вводит для функций, где явный тип возврата не задан

Да.

В некоторых случаях Программа автоматического доказательства Кода может показать ошибки компиляции.

2014-N3642 C++Суффиксы для пользовательских литералов, указывающих время (hminS, ms, us, ns) и строки (s)Да
2014-N3648 C++Инициализация полученных участников в функциях lambda

Да.

В некоторых случаях, во время инициализации, Программа автоматического доказательства Кода может вызвать соответствующих конструкторов больше числа раз, чем необходимый.

2014-N3649 C++Типовые (полиморфные) лямбда-выражения:
  • Используя auto спецификатор типа для параметра и возвращает тип

  • Преобразование типовых лямбда-выражений получения меньше к указателю на функцию.

Да
2014-N3651 C++Переменные шаблоныДа
2014-N3652 C++Объявления, условия и циклы в constexpr функции.Да
2014-N3653 C++

Инициализация совокупных классов с меньшим количеством инициализаторов, чем участники

Например, эта инициализация имеет меньше инициализаторов, чем участники. Участник c инициализируется со значением 0 и d инициализируется со значением s.

struct S { 
   int a; 
   const char* b;
   int c;
   int d = b[a];};
S ss = { 1, "asdf" };

Да
2014-N3654 C++std::quotedДа
2014-N3656 C++std::make_uniqueДа
2014-N3658 C++std::integer_sequenceДа
2014-N3658 C++std::shared_lock

Нет.

Использование std::shared_lock не вызывает ошибки компиляции, но построение семантически не поддержано.

2014-N3664 C++Вызов new и delete операторы в пакетах.Этот C++ 14 функций разъясняется как последовательные вызовы new оператор реализован. Никакой новый синтаксис/ключевое слово не введен и поэтому не влияет на поддержку Polyspace C++ 14.
2014-N3668 C++std::exchangeЧастично поддерживаемый.
2014-N3670 C++Используя std::get с типом данных, чтобы получить один элемент в std::tuple (если существует только один элемент типа в кортеже),Да
2014-N3671 C++Перегрузки для std::equal, std::mismatch и std::is_permutation шаблоны функций, которые принимают две отдельных области значенийДа
2014-N3733 C++Удаление std::gets от <cstdio>Да
2014-N3776 C++Формулировка изменения для деструктора std::futureНикакой новый синтаксис/ключевое слово не введен и поэтому не влияет на поддержку Polyspace C++ 14.
2014-N3779 C++std::complex литералы, представляющие чистые мнимые числа с суффиксным i, if или ilДа
2014-N3781 C++Использование одной кавычки как диафрагма цифры, например, 1'000.Да
2014-N3786 C++Запрещение "из ничего' приводит к C++ 14Никакой новый синтаксис/ключевое слово не введен и поэтому не влияет на поддержку Polyspace C++ 14.
2014-N3910 C++Синхронизация поведения обработчиков сигналаНикакой новый синтаксис/ключевое слово не введен и поэтому не влияет на поддержку Polyspace C++ 14.
2014-N3924 C++Обескураживающее использование rand()Никакой новый синтаксис/ключевое слово не введен и поэтому не влияет на поддержку Polyspace C++ 14.
2014-N3927 C++Выполнение без блокировокНикакой новый синтаксис/ключевое слово не введен и поэтому не влияет на поддержку Polyspace C++ 14.

Смотрите также

Похожие темы