Я пытаюсь создать std::unordered_map
, где значение равно 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': нет подходящего конструктора по умолчанию.
Я не совсем понимаю эту ошибку, в чем разница между конструкторами в этих примерах? Можно ли создать карту, где typeid(..)
- это значение вместо ключа?