X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fbase.h;h=7926779ebd0ea21508ccc7d339da130cc2200eb7;hb=511c11b8da024363fe2711a5ea9d600326073c8c;hp=e75b4029fe27903f56b03617a57ed264c1f37c0d;hpb=db2a4c2c15bb170464bbff464d7cc79cd098df26;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/base.h b/include/base.h index e75b4029f..7926779eb 100644 --- a/include/base.h +++ b/include/base.h @@ -52,11 +52,12 @@ class CoreExport interfacebase { public: interfacebase() {} + static inline void* operator new(size_t, void* m) { return m; } private: interfacebase(const interfacebase&); void operator=(const interfacebase&); - void* operator new(size_t); - void operator delete(void*); + static void* operator new(size_t); + static void operator delete(void*); }; /** The base class for inspircd classes that support reference counting. @@ -79,8 +80,9 @@ class CoreExport refcountbase refcountbase(); virtual ~refcountbase(); inline unsigned int GetReferenceCount() const { return refcount; } - void* operator new(size_t); - void operator delete(void*); + static inline void* operator new(size_t, void* m) { return m; } + static void* operator new(size_t); + static void operator delete(void*); inline void refcount_inc() const { refcount++; } inline bool refcount_dec() const { refcount--; return !refcount; } private: @@ -137,9 +139,10 @@ class reference inline T& operator*() const { return *value; } inline bool operator<(const reference& other) const { return value < other.value; } inline bool operator>(const reference& other) const { return value > other.value; } + static inline void* operator new(size_t, void* m) { return m; } private: - void* operator new(size_t); - void operator delete(void*); + static void* operator new(size_t); + static void operator delete(void*); }; /** This class can be used on its own to represent an exception, or derived to represent a module-specific exception. @@ -150,14 +153,13 @@ class reference */ class CoreExport CoreException : public std::exception { - protected: + public: /** Holds the error message to be displayed */ const std::string err; /** Source of the exception */ const std::string source; - public: /** Default constructor, just uses the error mesage 'Core threw an exception'. */ CoreException() : err("Core threw an exception"), source("The core") {}