#ifndef POINTER_H_INCLUDED
#define POINTER_H_INCLUDED 1

#ifdef __SYMBIAN32__
#include <e32std.h>
#include "symbian_auto_ptr.h"

void memset(void* dest, int value, int len);
void* memmove(void* dest, const void* src, int len);

#else

#include <string.h>
#include <memory>
using std::auto_ptr;

enum TLeave { ELeave };
inline void* operator new (size_t s, TLeave) {
	return new char[s];
}
inline void* operator new[] (size_t s, TLeave) {
	return new char[s];
}

class CBase {
public:
	virtual ~CBase() { }
	void* operator new (size_t s) { void* ret; ret=new char[s]; memset(ret, 0, s); return ret; }
	void* operator new (size_t s, TLeave) { void* ret; ret=new char[s]; memset(ret, 0, s); return ret; }
};

#endif // __SYMBIAN__ 

#endif
