मैं अभी एसटीएल स्रोत कोड पढ़ रहा हूं। हालांकि मैं stl_list.h में जो पढ़ रहा हूं उसमें मांस को समझता हूं, मैं निम्नलिखित स्निपेट को पूरी तरह से समझना चाहता हूं (मुख्य रूप से टेम्पलेट सिंटैक्स से संबंधित, मुझे लगता है)।सी ++ टेम्पलेट सिंटैक्स (एसटीएल लाइब्रेरी स्रोत कोड) के बारे में एक प्रश्न
टेम्पलेट
class _List_base {
...
typedef typename _Alloc::template rebind<_List_node<_Tp> >::other _Node_Alloc_type; //(1).
...
typedef _Alloc allocator_type;
get_allocator() const
{ return allocator_type(*static_cast<
const _Node_Alloc_type*>(&this->_M_impl)); } // (2)
...
};
कोई व्याख्या कर सकते हैं कि हम एक "टेम्पलेट" रेखा (1) में _Alloc निम्नलिखित की ज़रूरत है? (और इस लाइन का पूर्ण स्पष्टीकरण दे रहे हैं?)
क्या कोई यह समझा सकता है कि हम _Node_Alloc_type को _Alloc लाइन (2) में क्यों डाल सकते हैं?
आपको यह स्पष्ट करना चाहिए कि आप जिस एसटीएल को देख रहे हैं उसका विशेष कार्यान्वयन क्या है। जबकि एसटीएल इंटरफेस स्टैंडराइज किया गया है, कार्यान्वयन एक विक्रेता से दूसरे में भिन्न होता है। –