C++14 Language Elements Supported in Polyspace
This table provides a partial list of C++ language elements that have been introduced since C++14 and its corresponding Polyspace® support. If your code contains nonsupported constructions, Polyspace reports a compilation error.
| C++14 Std Ref | Description | Supported | 
|---|---|---|
| C++2014-N3323 | Implicit conversion from class type in certain contexts such as deleteorswitchstatement. | This C++14 feature allows implicit conversion from class type in certain contexts. No new syntax/keyword is introduced and therefore does not affect Polyspace support for C++14. | 
| C++2014-N3462 | More SFINAE-friendly std::result_of | Yes | 
| C++2014-N3472 | Binary literals, for instance, 0b100. | Yes | 
| C++2014-N3545 | operator()inintegral_constanttemplate ofconstexprtype | Yes | 
| C++2014-N3637 | Relation between std::asyncand destructor ofstd::future | No new syntax/keyword is introduced and therefore does not affect Polyspace support for C++14. | 
| C++2014-N3638 | Automatic deduction of return type for functions where an explicit return type is not specified | Yes. In some cases, Code Prover can show compilation errors. | 
| C++2014-N3642 | Suffixes for user-defined literals indicating time
                                ( h,min,s,ms,us,ns)
                            and strings (s) | Yes | 
| C++2014-N3648 | Initialization of captured members in lambda functions | Yes. In some cases, during initialization, Code Prover can call the corresponding constructors more number of times than necessary. | 
| C++2014-N3649 | Generic (polymorphic) lambda expressions: 
 | Yes | 
| C++2014-N3651 | Variable templates | Yes | 
| C++2014-N3652 | Declarations, conditions and loops in constexprfunctions. | Yes | 
| C++2014-N3653 | Initialization of aggregate classes with fewer initializers than members For instance, this initialization has fewer
                                initializers than members. The member  struct S { 
   int a; 
   const char* b;
   int c;
   int d = b[a];};
S ss = { 1, "asdf" }; | Yes | 
| C++2014-N3654 | std::quoted | Yes | 
| C++2014-N3656 | std::make_unique | Yes | 
| C++2014-N3658 | std::integer_sequence | Yes | 
| C++2014-N3658 | std::shared_lock | No. The use of  | 
| C++2014-N3664 | Calling newanddeleteoperators in batches. | This C++14 feature clarifies how successive calls to the newoperator are implemented. No new
                            syntax/keyword is introduced and therefore does not affect Polyspace support for C++14. | 
| C++2014-N3668 | std::exchange | Partially supported. | 
| C++2014-N3670 | Using std::getwith a data type to get one element
                            in anstd::tuple(provided there is only one element
                            of the type in the tuple) | Yes | 
| C++2014-N3671 | Overloads for std::equal,std::mismatchandstd::is_permutationfunction templates that
                            accept two separate ranges | Yes | 
| C++2014-N3733 | Removal of std::getsfrom<cstdio> | Yes | 
| C++2014-N3776 | Wording change for destructor of std::future | No new syntax/keyword is introduced and therefore does not affect Polyspace support for C++14. | 
| C++2014-N3779 | std::complexliterals representing pure imaginary
                            numbers with suffixi,iforil | Yes | 
| C++2014-N3781 | Use of single quotation mark as digit separator, for instance, 1'000. | Yes | 
| C++2014-N3786 | Prohibiting "out of thin air' results in C++14 | No new syntax/keyword is introduced and therefore does not affect Polyspace support for C++14. | 
| C++2014-N3910 | Synchronizing behavior of signal handlers | No new syntax/keyword is introduced and therefore does not affect Polyspace support for C++14. | 
| C++2014-N3924 | Discouraging use of rand() | No new syntax/keyword is introduced and therefore does not affect Polyspace support for C++14. | 
| C++2014-N3927 | Lock-free executions | No new syntax/keyword is introduced and therefore does not affect Polyspace support for C++14. | 
See Also
C++ standard version (-cpp-version)