Skip to main content

IAR Embedded Workbench for Arm 10.10.x

Migrating from the DLIB C++ library to the Libc++ C++ library

In this section:

There is no Normal configuration of the Libc++ library. Support for locale, file descriptors, etc, is always included.

The Libc++ library is a C++20 library. In C++20, some functionality that was deprecated in C++14 and C++17 is removed. Examples of removed C++14 features include std::auto_ptr, std::random_shuffle, and std::mem_fun. Examples of removed C++17 features include std::uncaught_exception, functional adapters in the functional header, redundant members of std::allocator and the type traits std::is_literal_type and result_of. For a full listing of features removed in C++17 and C++20, we refer to Changes between C++14 and C++17 and Changes between C++17 and C++20, respectively.

You can define the preprocessor symbols _LIBCPP_ENABLE_CXX17_REMOVED_FEATURES and _LIBCPP_ENABLE_CXX20_REMOVED_FEATURES to enable support for these features when using the Libc++ library. Note that doing so might break newer features.

Note

Some system headers from the DLIB C++14 library are not supported in Libc++, and vice versa, see the descriptions in C++ header files.