Skip to main content

IAR Embedded Workbench for RX 5.20

Overview—Standard C++

In this section:

The IAR C++ implementation fully complies with the ISO/IEC 14882:2014 C++ (“C++14”) or 14882:2017 C++ (“C++17”) standard, except for source code that depends on atomic or thread-related system headers, or the filesystem header. In IAR user documentation, the ISO/IEC 14882:2017 C++ standard is referred to as Standard C++.

The IAR C/C++ compiler accepts source code written in the C++17 standard or a superset thereof.

  • When using the DLIB C++14 library, those features of C++17 that require library support are not available.

  • When using the Libc++ C++17 library, all features of C++17 are available, unless otherwise noted.

For an overview of the differences between the various versions of the C++ standard, see the Wikipedia articles C++17, C++14, C++11, or C++ (for information about C++98).

Note

There is also a set of C++ Standard Template Library (STL) headers from an older version of the DLIB library (DLIB5). They have fewer features, but can in some cases result in significantly smaller code for map/set and vector. See the documentation in the file rx/doc/HelpDLIB5.html.

Exceptions and RTTI

Exceptions and RTTI are not supported. Thus, the following are not allowed:

  • throw expressions

  • try-catch statements

  • Exception specifications on function definitions

  • The typeid operator

  • The dynamic_cast operator