Implementing SMP on a UTF-16 OS

Max Truxa unicode at
Thu Aug 13 01:54:21 CDT 2015

On Aug 12, 2015 6:55 PM, "Peter Constable" <petercon at> wrote:
> “In Visual Studio 2015, the C++ compiler and standard library have been updated with enhanced support for C++11 and initial support for certain C++14 features. They also include preliminary support for certain features expected to be in the C++17 standard.”

You are right. I have to admit that my statement was not 100% correct.
Traditionally drivers for Windows are built using C (not C++). Part of
the reason for this is that Microsoft did not officially support C++
in kernel code up to the WDK 8. Nowadays there is the /kernel switch
which enables a subset of C++ which Microsoft considers safe to use in
kernel mode. The most recent C standard fully supported is still C89
though (plus a few C99 features that were added with VS2013). C99
support is *far* from being complete and I don't know of a single C11
feature being implemented.
This means C++11 could be used in a driver but one would need to
"convert" the driver to C++ (or at least those sources that make use
of modern features).

Anyhow, Marcel could certainly declare the mapping in a .cpp (using
extern "C" to ensure interoperability with C code) but that wouldn't
change that surrogate pairs seem to be unsupported for keyboard
drivers. (Like I said I have no experience writing keyboard drivers so
I can't confirm this.)

More information about the Unicode mailing list