मैं अभी भी अपने One-Of-A-Type Container Problem के अच्छे समाधान पर काम कर रहा हूं - और प्रतिबिंब पर मुझे लगता है कि std::map<std::type_info, boost::any>
जैसे कुछ का उपयोग करने में सक्षम होना अच्छा होगा। दुर्भाग्यवश, std::type_info
operator<
को परिभाषित नहीं करता है, और मुझे लगता है कि इसे परिभाषित करने के लिए यह अनुचित होगा।क्या सी ++ 11 std :: type_info के लिए हैशिंग फ़ंक्शन प्रदान करता है?
हालांकि, इसके लिए हैश फ़ंक्शन को परिभाषित करना उचित लगता है, क्योंकि आप std::type_info
ऑब्जेक्ट के सिंगलटन पते को उचित "हैश" के रूप में उपयोग कर सकते हैं। इसलिए, आप std::type_info
को std::unordered_map
में कुंजी के रूप में डाल पाएंगे।
क्या सी ++ 11 ऐसे हैश फ़ंक्शन प्रदान करता है? std::type_info
सिंगलटन के मेमोरी एड्रेस का उपयोग करना एक खराब हैश रणनीति हो?
यह एक सिंगलटन नहीं है, वैसे, लेकिन एक स्थिर आवंटित वस्तु। – GManNickG
@GMan: क्या अंतर है? –
यदि यह सिंगलटन था, तो वास्तव में एक 'type_info' ऑब्जेक्ट होगा। चूंकि प्रोग्राम में कई प्रकार हैं, इसलिए प्रोग्राम में एक से अधिक 'type_info' ऑब्जेक्ट होना चाहिए। –