void *operator new(size_t) throw (bad_alloc);
class B
{
public:
void *operator new(size_t, void *) throw (bad_alloc);
void *operator new(size_t, char *) throw (bad_alloc);
...
};
class D : public B
{
...
};
void f()
{
...
D *pd = new D; // error - no match in B
...
pd = new (pd) D; // calls
// B::operator new(size_t, void *)
...
pd = new (0) D; // error - ambiguous
...
}
/* End of File */