std::allocator
s‘construct
und destroy
Mitgliederfunktionen parametrisiert sind von der Art des Elements zu konstruieren:Warum sind std :: allocator :: construct und std :: allocator :: destroy auf Elementtyp Templated?
template<class T>
class allocator
{
public:
typedef T value_type;
typedef T* pointer;
template<class U, class... Args>
void construct(U *p, Args&&... args);
template<class U>
void destroy(U *p);
...
};
Was ist der Grund? Warum nehmen sie weder value_type*
noch pointer
? Es scheint wie allocator<T>
sollte nur wissen, wie Objekte des Typs T
zu konstruieren oder zu zerstören.