Я все еще новичок в C ++ и столкнулся с проблемой, когда не могу вставить новый производный класс в карту.
Мой код упрощен следующим образом:
std::map<int, std::unique_ptr<Base_Class> > m;
void func(){
for(int num = 0; num < 100; n++){
m.emplace(num, new Derived_Class() );
}
}
Что дает мне это:
error: no matching function for call to 'std::pair <const int, std::unique_ptr<Base_Class> >::pair(int&, Derived_Class*)
Я безуспешно пытался использовать:
m.emplace(std::pair(num, new Derived_Class()) );
И что дает мне это:
error: no matching function for call to 'std::pair<const int, std::unique_ptr<Base_Class> >::pair(std::pair<int, Derived_Class*>)
Iне могу понять это и был бы признателен за любую помощь.