I seem to be missing something. I'm failing to overload the delete operator for a class.
Code:
template<typename T> class DeleteChecker
{
public:
DeleteChecker();
~DeleteChecker();
DeleteChecker(T* p);
DeleteChecker(DeleteChecker& rRhs);
DeleteChecker& operator = (DeleteChecker& rRhs);
DeleteChecker& operator = (T* rRhs);
T& operator * ();
T* operator -> ();
//void* operator new(size_t size);
static void operator delete(void* /*pToDelete*/);
operator bool() const;
bool operator ! () const;
const T& operator [] (uint32_t Dimension) const;
T& operator [] (uint32_t Dimension);
private:
void Init();
struct DeleteData
{
T* p;
uint32_t refCount;
//uint32_t Dimensions;
//bool
};
DeleteData* m_pData;
};
Code:
int main()
{
struct Test
{
int x, y, z;
};
DeleteChecker<Test> p = new Test;
p->x = 0;
delete p;
}
Error 1 error C2440: 'delete' : cannot convert from 'DeleteChecker<T>' to 'void *' g:\w00t\visual studio 2008\projects\temp\temp.cpp 175
Someone please try to jog my memory :/