template class Core::PooledObject

Template class for memory-pooled objects.

#include <coremempool.h>

template <class T, class Pool>
class PooledObject
{
public:
    // methods

    static Pool& getPool();
    static T* pool_new();

    template <class T2>
    static T* pool_new(const T2& a);

    template <class T2, class T3>
    static T* pool_new(const T2& a, const T3& b);

    void* operator new (size_t size);
    void operator delete (void* ptr);
    void* operator new (size_t size, void* block);
    void operator delete (void* ptr, void* block);
};

// direct descendants

class Attribute2;
class AttributeQueue2;
class Attributes2;
class AttributeValue2;