Which C++ keywords/features, in your opinion, should one be able to use in kernel code (since we are explicitly talking about using a subset of C++). Also, how do I, as a C contributor, deal with things like someone accidentally overloading my foo(int) function with foo(char), and other such issues? Ie. Who is in charge of enforcing the correct subset of C++ on a project with such a wide range of contributors, since compiling in C++ typically gives you access to *all* of C++, not just the subset you prefer?
Btw, the inheritance model that you tout as a feature (for "simple uses") is arguably one of C++'s *worst* additions to the C language; there is a reason that no one else ever copied it (AFAIK). Where do you draw the line on how much of it to use?