1 // Origin: Alexander Schiemann (aschiem@count.math.uni-sb.de)
2 
3 typedef __SIZE_TYPE__ size_t;
4 
5 int i;
6 
7 struct B{};
8 
9 struct A{
10 
newA11   static void* operator new(size_t)
12   {return &i;}
13 
14   inline static void operator delete(void*p);
15 
deleteA16   static void operator delete(void*, const B&){}
17 
18 };
19 
20 
delete(void * p)21 inline void A::operator delete(void*p)
22 {A::operator delete(p,B());}
23 
24 
main()25 int main()
26 {A *ap=new A;
27 delete ap;}
28