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++Суффиксы для пользовательских литералов, указывающих время (h, min, s, 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.

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

Похожие темы