CrossFramework Library

XBase/IAllocator.hpp

説明を見る。
00001 
00006 #if defined(XBASE_INCLUDED_IALLOCATOR_HPP)
00007 #else
00008 #define XBASE_INCLUDED_IALLOCATOR_HPP
00009 
00010 //------------------------------------------------------------
00011 #include <memory>
00012 #include <XBase/BuiltInTypes.hpp>
00013 
00014 //------------------------------------------------------------
00015 namespace XBase {
00017 
00018 
00019     class IAllocator
00020     {
00021     public:
00022         virtual ~IAllocator();
00023         
00025 
00026 
00031         static const pword_t DefaultAlignment = sizeof(pword_t);
00033 
00035 
00036 
00040         static IAllocator& Default();
00041 
00048         static void SetDefault( IAllocator& aAllocator );
00049         
00053         static IAllocator& OperatorNewDelete();
00055         
00057 
00058 
00064         virtual ptr_t alloc( pword_t aSize , pword_t aAlignment = DefaultAlignment )=0;
00065 
00070         virtual void free( ptr_t aPtr )=0;
00072     };
00074 }
00076 
00077 
00078 
00079 extern void* operator new(std::size_t,::XBase::IAllocator&);
00080 extern void* operator new[](std::size_t,::XBase::IAllocator&);
00081 extern void  operator delete(void*, ::XBase::IAllocator&);
00082 extern void  operator delete[](void*, ::XBase::IAllocator&);
00084 
00085 //------------------------------------------------------------
00086 #endif
00087 // EOF
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 マクロ定義