यह आसान एक कंटेनर संबद्ध iterators प्राप्त करने के लिए दिया जाता है, उदाहरण है से कंटेनर के प्रकार:प्राप्त करें (अपने) सी में इटरेटर प्रकार ++ (एसटीएल)
std::vector<double>::iterator i; //An iterator to a std::vector<double>
अगर यह संभव है मैं सोच रहा था, पुनरावर्तक प्रकार दिया , "संबंधित कंटेनर" के प्रकार को कम करने के लिए (यहां मैं मान रहा हूं कि प्रत्येक कंटेनर के लिए एक और केवल एक (गैर-कॉन्स) इटरेटर है)।
दरअसल, मैं एक टेम्पलेट metafunction कि (प्रत्येक एक कंटेनर के लिए मैन्युअल रूप से इसे विशेषज्ञ के बिना) सभी एसटीएल कंटेनर के साथ काम करता है ऐसा है कि चाहते हैं उदाहरण के लिए:
ContainerOf< std::vector<double>::iterator >::type
std::vector<double>
का मूल्यांकन
क्या यह संभव है? यदि नहीं, तो क्यों?
किसी भी मदद के लिए अग्रिम धन्यवाद!
आप एक इटरेटर के concep बारे में पता लगाने की कोशिश कर रहे ? यानी अगर यह यादृच्छिक पहुंच है? एसटीएल इसके लिए टैग का उपयोग करता है। आमतौर पर यह जानने का कोई कारण नहीं है कि एक इटरेटर कहाँ से आता है। – pmr
क्या आप आगे जानते हैं कि क्या आपके पास 7 एसटीएल कंटेनरों में से एक में इटरेटर है, या आपको "अन्य" खंड की भी आवश्यकता है? – MSalters