Both C and C++ has had a lot of development since 1999, and C++ has in fact,
in my personal opinion, finally "grown up" to be a better C for the kind of
embedded programming that an OS kernel epitomizes.
And gcc got rewritten in C++ some time back, so they have a vested interest.
(8) 'virtual'. Don't want virtual base classes, though virtual function
tables might make operations tables more efficient.
Operations tables *are* virtual classes. virtual base classes make sense in a
lot of cases, and we de facto use them already.
You end up adding storage for a 'this' pointer for each virtual base class, I
think - and then you may have extra fun if you inherit from two classes that
both inherit the same virtual base class. Abstract base classes that are just
ops tables are probably fine, though.