www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - C++ operator new

reply BLS <windevguy hotmail.de> writes:
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
Jan 25 2009
parent reply Daniel Keep <daniel.keep.lists gmail.com> writes:
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
Jan 25 2009
parent reply Daniel Keep <daniel.keep.lists gmail.com> writes:
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
Jan 25 2009
parent BLS <windevguy hotmail.de> writes:
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
Jan 25 2009