Как я могу вставить свои собственные объекты класса в ptr_map из boost. Объекты шаблоны, поэтому я не могу использовать какое-то статическое имя на карте. Так что я сделал:Boost any usage
ptr_map<string, any> someMap;
Мой класс наследует подталкивание :: noncopyable.
someMap.insert("Test", new MyClass<SomeTemplate>());
Ошибка: no matching function for call to ‘boost::ptr_map
.
UPD: Я бы предпочел, чтобы сделать некоторые обертки и не использовать повышение :: любой. Итак:
class IWrapper { };
class MyClass : public IWrapper { };
ptr_map<string, IWrapper> someMap;
someMap.insert("Test", new MyClass<SomeTemplate>());
Почему это не будет работать (такая же ошибка)? Я мог передать унаследованный класс в родительский интерфейс. Что не так?
Мои шаблоны. Я обновил образец. Я не могу создать базу для нее (без шаблона). – Ockonal
Хорошо, спасибо. Путь с кем-то должен работать. Но можете ли вы взглянуть на новое обновление кода? Я попытался реализовать твою первую идею. – Ockonal