At work we write plenty of C++ for kernel modules, but with the caveat that our C++ can rarely include a Linux kernel header directly. We have to write a small shim for every kernel function we consume.
No library runtime features, so no RTTI or exceptions, but we use templates and dynamic dispatch.