メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Polyspace でサポートされる C++14 言語の要素

次の表には、C++14 以降に導入された C++ 言語の要素と、対応する Polyspace® サポートの部分的なリストを示しています。サポートされていない設定がコードに含まれている場合、Polyspace ではコンパイル エラーがレポートされます。

C++14 標準参照説明サポートあり
C++2014-N3323Implicit conversion from class type in certain contexts such as delete or switch statement.この C++14 機能は、特定のコンテキストにおけるクラス タイプからの暗黙的な変換を可能にします。新しい構文やキーワードは導入されていないため、C++14 に対する Polyspace サポートには影響しません。
C++2014-N3462More SFINAE-friendly std::result_ofはい
C++2014-N3472Binary literals, for instance, 0b100.はい
C++2014-N3545operator() in integral_constant template of constexpr typeはい
C++2014-N3637Relation between std::async and destructor of std::future新しい構文やキーワードは導入されていないため、C++14 に対する Polyspace サポートには影響しません。
C++2014-N3638Automatic deduction of return type for functions where an explicit return type is not specified

はい。

場合によっては、Code Prover でコンパイル エラーが表示されることがあります。

C++2014-N3642Suffixes for user-defined literals indicating time (h, min, s, ms, us, ns) and strings (s)はい
C++2014-N3648Initialization of captured members in lambda functions

はい。

場合によっては、初期化中に、Code Prover は対応するコンストラクターを必要以上の回数呼び出す可能性があります。

C++2014-N3649

Generic (polymorphic) lambda expressions:

  • Using auto type-specifier for parameter and return type

  • Conversion of generic capture-less lambda expressions to pointer-to-function.

はい
C++2014-N3651Variable templatesはい
C++2014-N3652Declarations, conditions and loops in constexpr functions.はい
C++2014-N3653

Initialization of aggregate classes with fewer initializers than members

For instance, this initialization has fewer initializers than members.メンバー c は値 0 で初期化され、d は値 s で初期化されます。

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

はい
C++2014-N3654std::quotedはい
C++2014-N3656std::make_uniqueはい
C++2014-N3658std::integer_sequenceはい
C++2014-N3658std::shared_lock

いいえ。

std::shared_lock の使用はコンパイル エラーになりませんが、その構造は意味的にサポートされていません。

C++2014-N3664Calling new and delete operators in batches.C++14 機能では、new 演算子の連続呼び出しの実装方法が明確化されています。新しい構文やキーワードは導入されていないため、C++14 に対する Polyspace サポートには影響しません。
C++2014-N3668std::exchange部分的にサポート。
C++2014-N3670Using std::get with a data type to get one element in an std::tuple (provided there is only one element of the type in the tuple)はい
C++2014-N3671Overloads for std::equal, std::mismatch and std::is_permutation function templates that accept two separate rangesはい
C++2014-N3733Removal of std::gets from <cstdio>はい
C++2014-N3776Wording change for destructor of std::future新しい構文やキーワードは導入されていないため、C++14 に対する Polyspace サポートには影響しません。
C++2014-N3779std::complex literals representing pure imaginary numbers with suffix i, if or ilはい
C++2014-N3781Use of single quotation mark as digit separator, for instance, 1'000.はい
C++2014-N3786Prohibiting "out of thin air' results in C++14新しい構文やキーワードは導入されていないため、C++14 に対する Polyspace サポートには影響しません。
C++2014-N3910Synchronizing behavior of signal handlers新しい構文やキーワードは導入されていないため、C++14 に対する Polyspace サポートには影響しません。
C++2014-N3924Discouraging use of rand()新しい構文やキーワードは導入されていないため、C++14 に対する Polyspace サポートには影響しません。
C++2014-N3927Lock-free executions新しい構文やキーワードは導入されていないため、C++14 に対する Polyspace サポートには影響しません。

参考

トピック