|
Boost : |
From: Corrado Zoccolo (czoccolo_at_[hidden])
Date: 2007-11-18 05:09:49
Hi again,
I checked, and the code I posted before (here shown with small fixes to the
syntax) doesn't work as I wanted, due to the two phase lookup that always
finds global operator new instead of a possibly redefined one:
> template<typename T>
> struct new_invoker : T {
> static void * alloc() { return operator new(sizeof(T)); } // should look
> up operator new in T scope before global scope
> static void dealloc(void *p) { return operator delete(p); } // should
> look up operator delete in T scope before global scope
> private:
> new_invoker();
> new_invoker(new_invoker const &);
> ~new_invoker();
> };
> // specializations for non-class types omitted
-- __________________________________________________________________________ dott. Corrado Zoccolo mailto:zoccolo_at_[hidden] PhD - Department of Computer Science - University of Pisa, Italy -------------------------------------------------------------------------- The self-confidence of a warrior is not the self-confidence of the average man. The average man seeks certainty in the eyes of the onlooker and calls that self-confidence. The warrior seeks impeccability in his own eyes and calls that humbleness. Tales of Power - C. Castaneda
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk