uCR is written in and supports C/C++ without the standard libraries. Only the more primitive language support for C++ is included, even though it is written almost entirely in C++. uCR also supports unhosted ANSI C. Where support beyond the minimum required for unhosted C standard exists, uCR follows the ANSI C standard, or the C++ DRAFT. C++ has no unhosted specification, so UCR cannot claim compliance. However, what uCR does provide matches the DRAFT.
The uCR system is designed to include only the portions of the system that you need. This keeps the resulting image small and efficient. It is also intended to not impose a kernel architecture, or to steal resources that a kernel writer would need. That makes uCR suitable for writing proper operating systems, if so desired.