मैं std::unordered_map
बनाने की कोशिश कर रहा हूं जहां मान एक std::type_index
है। निम्नलिखित स्निपेट काम करता है:मानचित्र में मूल्य के रूप में std :: type_index का उपयोग करें
std::unordered_map<std::type_index, int> workingMap;
workingMap[typeid(int)] = 1;
workingMap[typeid(char)] = 2;
लेकिन यह एक नहीं चलता है और एक त्रुटि फेंकता है:
std::unordered_map<int, std::type_index> failingMap;
failingMap[1] = typeid(int);
failingMap[2] = typeid(char);
CS2512: 'std::type_index::type_index': no appropriate default constructor available.
मैं पूरी तरह से इस त्रुटि को समझ में नहीं आता, कंस्ट्रक्टर के बीच अंतर क्या है इन उदाहरणों में? क्या यह नक्शा बनाना संभव है जहां typeid(..)
मूल्य कुंजी के बजाय है?
करके 'failingMap [1]' आप एक डिफ़ॉल्ट प्रविष्टि बनाने के अगर यह मानचित्र में नहीं मिला था। उदाहरण के लिए ':: try_emplace' का उपयोग करें – Sopel