Removing Globals construct() and destroy() ------------------------------------------ 26-Jan-95 by Nathan Myers X3J16/95-0039 Rogue Wave Software WG21/N0639 In Clause 20, a number of apparently unnecessary global functions are declared, including: template inline T* allocate(ptrdiff_t, T*); template inline void deallocate(T* buffer); template inline void construct(T* p, const T2& value); template inline void destroy(T* pointer); template void destroy(FwdIter first, FwdIter last) { while (first != last) destroy(&*first++); } I propose to eliminate all these functions. While they may be useful in implementing STL and collections similar to it, they are not really necessary for the purposes of the Standard Library, in that they do not aid communication between modules, implement semantics that cannnot reproduced by users, or provide substantial functionality. Furthermore, they are mostly subsumed by STL allocator members, which are what STL-conforming collections are expected to use.