
O/H Phil Endecott έγραψε:
Achilleas Margaritis wrote:
Is there an STL implementation without this problem? perhaps STLPort? I have to try it myself, but if anyone knows, please tell me.
Here is the discussion that I had on the libstdc++ list when I was trying to understand this issue:
http://gcc.gnu.org/ml/libstdc++/2005-05/msg00294.html
At that time, the Roguewave STL was said to definitely support allocator::pointer, as was the Dinkumware library though there were some caveats about that IIRC.
Since then, Ion has written his Boost.Interprocess containers (which are in boost svn, but not yet in a released version of boost).
At the end of the thread that I link to above, Matt Austern points out some of the difficulties of implementing allocator::pointer. It boils down to this: "nobody has spelled out precisely what requirements my_allocator<T>::pointer must satisfy".
Regards,
Phil.
Thanks for the tip. After reading that discussion, it seems no STL implementation actually uses allocator::pointer 100%. So what is the use of defining a pointer type, if not used anywhere? It's a shame that allocator::pointer is not used, because it would make garbage-collected std containers very easy to do.