C++ Support for Applications
The kernel supports applications written in both C and C++. However, to use C++ in an application you must configure the kernel to include C++ support and the build system must select the correct compiler.
The build system selects the C++ compiler based on the suffix of the files.
Files identified with either a cxx or a cpp suffix are compiled using
the C++ compiler. For example, myCplusplusApp.cpp
is compiled using C++.
The kernel currently provides only a subset of C++ functionality. The following features are not supported:
Dynamic object management with the new and delete operators
RTTI
Static global object destruction
While not an exhaustive list, support for the following functionality is included:
Inheritance
Virtual functions
Virtual tables
Static global object constructors
Exceptions
Static global object constructors are initialized after the drivers are
initialized but before the application main()
function. Therefore,
use of C++ is restricted to application code.
Note
Do not use C++ for kernel, driver, or system initialization code.