helloxx Hello World in C++

This is C++ version of the “Hello, World” example. It is intended only to verify that the C++ compiler is functional, that basic C++ library support is available, and that class are instantiated correctly.

NuttX configuration prerequisites:

  • CONFIG_HAVE_CXX – Enable C++ Support.

Optional NuttX configuration settings:

  • CONFIG_HAVE_CXXINITIALIZE – Enable support for static constructors (may not be available on all platforms).

NuttX configuration settings specific to this example:

  • CONFIG_NSH_BUILTIN_APPS – Build the helloxx example as a built-in that can be executed from the NSH command line.

Also needed:

  • CONFIG_HAVE_CXX=y

And you may have to tinker with the following to get libxx to compile properly:

  • CCONFIG_ARCH_SIZET_LONG=y or =n.

The argument of the new operators should take a type of size_t. But size_t has an unknown underlying. In the nuttx sys/types.h header file, size_t is typed as uint32_t (which is determined by architecture-specific logic). But the C++ compiler may believe that size_t is of a different type resulting in compilation errors in the operator. Using the underlying integer type Instead of size_t seems to resolve the compilation issues.