#ifndef CPP_H #define CPP_H /* cpp - C++ in the kernel ** ** Initial version by Axel Dörfler, axeld@pinc-software.de ** This file may be used under the terms of the OpenBeOS License. */ #include #include // Oh no! C++ in the kernel! Are you nuts? // // - no exceptions // - (almost) no virtuals (well, the Query code now uses them) // - it's basically only the C++ syntax, and type checking // - since one tend to encapsulate everything in classes, it has a slightly // higher memory overhead // - nicer code // - easier to maintain inline void * operator new(size_t size) throw (std::bad_alloc) { // we don't actually throw any exceptions, but we have to // keep the prototype as specified in , or else GCC 3 // won't like us return malloc(size); } inline void * operator new[](size_t size) throw (std::bad_alloc) { return malloc(size); } inline void * operator new(size_t size, const std::nothrow_t &) throw () { return malloc(size); } inline void * operator new[](size_t size, const std::nothrow_t &) throw () { return malloc(size); } inline void operator delete(void *ptr) throw () { free(ptr); } inline void operator delete[](void *ptr) throw () { free(ptr); } // we're using virtuals extern "C" void __pure_virtual(); #endif /* CPP_H */