का टाइपपीफ (उपनाम) क्या सी ++ में टेम्पलेट वर्ग का उपनाम बनाने के लिए संभव है (पैरामीटर निर्दिष्ट किए बिना)?जेनेरिक क्लास
typedef std::map myOwnMap;
काम नहीं करता है।
और यदि नहीं, तो क्या कोई अच्छा कारण है?
का टाइपपीफ (उपनाम) क्या सी ++ में टेम्पलेट वर्ग का उपनाम बनाने के लिए संभव है (पैरामीटर निर्दिष्ट किए बिना)?जेनेरिक क्लास
typedef std::map myOwnMap;
काम नहीं करता है।
और यदि नहीं, तो क्या कोई अच्छा कारण है?
में सी ++ 98 और सी ++ 03 typedef
केवल एक पूर्ण प्रकार पर इस्तेमाल किया जा सकता है:
typedef std::map<int,int> IntToIntMap;
सी के साथ ++
है 0x एक नया चमकदार बदलने के लिए वाक्य रचना typedef
:
using IntToIntMap = std::map<int,int>;
जो भी template
अलियासिंग का समर्थन करता है:
template <
typename Key,
typename Value,
typename Comparator = std::less<Key>,
typename Allocator = std::allocator< std::pair<Key,Value> >
>
using myOwnMap = std::map<Key,Value,Comparator,Allocator>;
यहां आपको :)
यह सुविधा सी ++ 0x में पेश की जाएगी, जिसे टेम्पलेट उपनाम कहा जाता है। यह इस तरह दिखेगा:
template<typename Key, typename Value>
using MyMap = std::map<Key, Value>
टेम्पलेट टाइपपीफ सी ++ 03 मानक में समर्थित नहीं हैं। वहाँ कामकाज से जुड़े हैं, तथापि:
template<typename T>
struct MyOwnMap {
typedef std::map<std::string, T> Type;
};
MyOwnMap<int>::Type map;
मैं सबसे अच्छा तुम क्या है 'का उपयोग कर std :: नक्शा कर सकते हैं लगता है,' स्थानीय नेम स्पेस में 'आयात करने के लिए map'। –