Thread overview
C++ operator new
Jan 25, 2009
BLS
Jan 25, 2009
Daniel Keep
Jan 25, 2009
Daniel Keep
Jan 25, 2009
BLS
January 25, 2009
Hi,

I wonder if this is doable in D ?

class Cpp
	{
public:
	void* operator new(size_t n);
	void* operator new(size_t n, void* p)
		{ return p; }

	}

Just guessing that operator new means this in D
class D
	{
	new(uint n);
	new(uint n,void* p)
		{ return p; }

	}

Am I wrong ?
TIA, Bjoern

January 25, 2009

BLS wrote:
> Hi,
> 
> I wonder if this is doable in D ?
> 
> class Cpp
>     {
> public:
>     void* operator new(size_t n);
>     void* operator new(size_t n, void* p)
>         { return p; }
> 
>     }
> 
> Just guessing that operator new means this in D
> class D
>     {
>     new(uint n);
>     new(uint n,void* p)
>         { return p; }
> 
>     }
> 
> Am I wrong ?
> TIA, Bjoern
> 

http://digitalmars.com/d/1.0/class.html#allocators
January 25, 2009
This might also be of interest, as it has an example of overriding allocation/deallocation to use malloc:

http://digitalmars.com/d/1.0/memory.html#newdelete
January 25, 2009
Daniel Keep wrote:
> This might also be of interest, as it has an example of overriding
> allocation/deallocation to use malloc:
> 
> http://digitalmars.com/d/1.0/memory.html#newdelete

Thanks! It seems that using freelists is preferable. Are there any
drawbacks ? F.I. How to implement a class using freelist + constructor/destructor, if possible at all...

Bjoern