The _Construct
and _Destroy
functions are not part of the public interface, but are an implementation detail of the particular Standard Library version that you have on your system. Any identifier staring with double underscores or a single underscore and a capital letter, is reserved and not to be called by users.
It's an implementation choice to delegate an allocator's construct()
and destroy()
member functions to these non-member functions. BTW, since C++11, standard containers are no longer allowed to directly call an allocator's construct()
and destroy()
, but have to do so through the std::allocator_traits<Allocator>
type trait.