BeOS is interesting partly because of how it limited use of C++. C++ was the only supported API for userland, but the kernel was C.
Found a reference: "Creating a driver on BeOS is done using ANSI C; the C++ language requires certain support which is not available in the BeOS kernel environment." http://testou.free.fr/www.beatjapan.org/mirror/www.be.com/ab...
I remember another newsletter article where one of the devs described techniques for getting C++-like power while remaining within C (heavy use of function pointers in structs, that kind of thing).
Another: http://www.haiku-os.org/legacy-docs/benewsletter/Issue4-51.h...