std::allocator
construct
và destroy
chức năng của thành viên này được tham số hoá vào loại nguyên tố này để xây dựng:Tại sao std :: allocator :: xây dựng và std :: allocator :: phá hủy templated trên loại phần tử?
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);
...
};
lý do cho điều này là gì? Tại sao họ không chọn value_type*
hoặc pointer
? Có vẻ như allocator<T>
chỉ nên biết cách xây dựng hoặc phá hủy các đối tượng thuộc loại T
.