Standard C++ library implementation definition
The Standard C++ library in ARM® Compiler 6 is implemented by libc++, with some limitations.
NoteThis topic includes descriptions of [COMMUNITY] features.
Support for C++11
ARM Compiler 6 libc++ libraries support the majority of C++11. The major limitations is that the Thread support library <thread> is not supported.
Support for Atomic
[COMMUNITY] ARM Compiler 6 provides access to the Atomic operations library <atomic> as a [COMMUNITY] feature.
NoteARM Compiler 6 does not provide an implementation of
libatomic. You must either provide an implementation of
libatomicor only use the atomic operation library for types for which the hardware can provide synchronization primitives.
Support for exceptions
The libc++ libraries support the use of C++ exceptions.
-fno-exceptions and libc++
- ARM Compiler 6
does not contain variants of libc++
that are built with
-fno-exceptions. Therefore, exceptions might be thrown from pre-built libc++ objects. If a C++ exception from libc++ propagates into code built with
-fno-exceptions, then the program terminates.
- The parts of libc++
that are implemented in header files might be compiled with
-fno-exceptionsis used libc++ calls the assert macro instead of throwing an exception.
NoteThese assert macros are removed if the macro
Support for multithreading
ARM Compiler 6 does not support multithreading for libc++. The libc++ libraries have not been built with multithreading support. The Thread support library is not supported.
Support for Array Construction and Delete helper functions
ARM Compiler 6 is not compatible with C++ objects from other compilers that use Array Construction and Delete helper functions.