आप आसपास के काम के रूप में उपयोग करना पसंद करते हैं? कंटेनर ऑब्जेक्ट्स या मैक्रोज़? क्या आपको इसका लायक लगता है?
विहित तरीका इस प्रकार की तरह एक metafunction उपयोग करने के लिए है:
template <typename T>
struct my_string_map {
typedef std::map<std::string, T> type;
};
// Invoke:
my_string_map<int>::type my_str_int_map;
यह भी एसटीएल (allocator::rebind<U>
) में और बूस्ट सहित कई पुस्तकालयों में प्रयोग किया जाता है। हम इसे bioinformatical library में बड़े पैमाने पर उपयोग करते हैं।
यह फूला हुआ है, लेकिन यह 99% समय का सबसे अच्छा विकल्प है। मैक्रोज़ का उपयोग करना कई डाउनसाइड्स के लायक नहीं है।
(संपादित करें:। के रूप में उनकी टिप्पणी में डेनियल ने कहा मैं बूस्ट/एसटीएल सम्मेलनों प्रतिबिंबित करने के लिए कोड में संशोधन किया गया है)
स्रोत
2008-08-25 14:51:01
कुछ समय पहले इस विषय के साथ गॉट डॉट किया गया: http://www.gotw.ca/gotw/079.htm –