std::allocator
के construct
और destroy
सदस्य कार्यों के निर्माण के लिए तत्व के प्रकार के पैरामिट्रीकृत हैं:std :: आवंटक :: निर्माण और std :: आवंटक :: तत्व प्रकार पर 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);
...
};
इस के लिए तर्क क्या है? वे value_type*
या pointer
क्यों नहीं लेते हैं? ऐसा लगता है कि allocator<T>
को केवल T
प्रकार की वस्तुओं को बनाने या नष्ट करने के बारे में पता होना चाहिए।