lib: cpp: Relocate subsys/cpp to lib/cpp

This commit moves the files under `subsys/cpp` directory to the
`lib/cpp` directory because the C++ ABI runtime library and the
standard C++ library components are not a "subsystem" (aka. API) in
conventional sense and is better described as a "library."

Classifying the C++ ABI runtime library and the standard C++ library as
"libraries" instead of "subsystems" also better aligns with how the
existing C standard library implementation (`lib/libc`) is handled.

Signed-off-by: Stephanos Ioannidis <stephanos.ioannidis@nordicsemi.no>
This commit is contained in:
Stephanos Ioannidis 2022-12-08 20:54:28 +09:00 committed by Christopher Friedt
commit feaab27c1b
18 changed files with 13 additions and 13 deletions

View file

@ -63,19 +63,19 @@ In order to make use of the C++ exceptions, the
:kconfig:option:`CONFIG_EXCEPTIONS` must be selected in the application
configuration file.
Zephyr C++ Subsystem
********************
Zephyr Minimal C++ Library
**************************
Zephyr C++ subsystem (:file:`subsys/cpp`) provides a minimal subset of the C++
standard library and application binary interface (ABI) functions to enable
basic C++ language support. This includes:
Zephyr minimal C++ library (:file:`lib/cpp/minimal`) provides a minimal subset
of the C++ standard library and application binary interface (ABI) functions to
enable basic C++ language support. This includes:
* ``new`` and ``delete`` operators
* virtual function stub and vtables
* static global initializers for global constructors
The scope of the C++ subsystem is strictly limited to providing the basic C++
language support, and it does not implement any `Standard Template Library
The scope of the minimal C++ library is strictly limited to providing the basic
C++ language support, and it does not implement any `Standard Template Library
(STL)`_ classes and functions. For this reason, it is only suitable for use in
the applications that implement their own (non-standard) class library and do
rely on the Standard Template Library (STL) components.