Extended Embedded C++

C/C++ compilers from IAR Systems offer the standard features of ISO/ANSI C as well as an extended implementation of Embedded C++.

IAR Systems' compiler technology and optimized run-time library make C++ a realistic alternative even for 8-bit microcontrollers.

What is Embedded C++?

Embedded C++ is a subset of the C++ programming language which is intended for embedded systems programming. It is defined by an industry consortium, the Embedded C++ Technical Committee.

The fact that performance and portability are particularly important in embedded systems development was considered when defining Embedded C++.

IAR Systems adheres to the 'Embedded C++ Technical Committee Draft, Version WP-AM-0003, 13 October 1999'.

How does Embedded C++ differ from C++?

Embedded C++ offers a subset of C++. It excludes size and/or speed consuming C++ features that are not relevant for embedded systems.

Embedded C++ lacks the following features of C++:
  • Templates
  • Multiple inheritance
  • Exception handling
  • Runtime type information
  • New cast syntax (operators dynamic_cast, static_cast, reinterpret_cast, and const_cast)
  • Namespaces

The exclusion of these language features makes the runtime library significantly more efficient.

The Embedded C++ library also differs from the full C++ library in that:

  • The Standard Template Library (STL) is excluded
  • Streams, strings, and complex numbers are supported without the use of templates
  • Library features which relate to exception handling and runtime type information (headers , and ), are excluded

Recent additions to the ISO/ANSI C++ standard are also excluded from Embedded C++. The reason is that they represent potential portability problems, due to the fact that few development tools support the standard.

Why has IAR Systems extended Embedded C++?

IAR Systems fills the gap between C++ and Embedded C++.

The extended implementation adds C++ features that strengthen the benefits of object-oriented development without carrying an overhead in efficiency or size.

What does Extended Embedded C++ include?

Most importantly, the C/C++ compilers from IAR Systems support C++ templates and include the Standard Template Library (STL) that provides convenient and efficient containers and algorithms.

Our template implementation is even memory-attribute aware, allowing you to write specialized template code for different memory types.

C/C++ compilers from IAR Systems provide the following C++ features:
  • Classes, which are user-defined types that incorporate both data structure and behavior. The essential feature of inheritance allows data structure and behavior to be shared among classes.
  • Polymorphism, which means that an operation can behave differently on different classes, is provided by virtual functions.
  • Overloading of operators and function names, which allows several operators or functions with the same name, provided that there is a sufficient difference in their argument lists
  • Type-safe memory management using operators new and delete
  • Inline functions, which are indicated as particularly suitable for inline expansion
  • C++ templates and the Standard Template Library (STL)
  • Namespaces
  • Mutable specifier
  • New cast syntax (operators static_cast, reinterpret_cast, and const_cast)

The Embedded C/C++ library can be customized to fit the needs of the application, keeping an optimal balance of required functionality and footprint/size.

  Back to IAR Home Page    Back to Testech Home Page   Compiler     RTOS    Emulator/Debugging