cómo puedo insertar mis propios objetos de clase en ptr_map de boost. Los objetos están modelados por lo que no puedo usar un nombre de tipo estático en el mapa. Así que lo hice:Impulse cualquier uso
ptr_map<string, any> someMap;
Mi clase hereda el impulso :: noncopyable.
someMap.insert("Test", new MyClass<SomeTemplate>());
El error es: error: no matching function for call to ‘boost::ptr_map
.
UPD: preferiría hacer algo de envoltura y no uso el impulso :: ninguna. Entonces:
class IWrapper { };
class MyClass : public IWrapper { };
ptr_map<string, IWrapper> someMap;
someMap.insert("Test", new MyClass<SomeTemplate>());
¿Por qué no funciona (el mismo error)? Podría pasar la clase heredada a la interfaz principal. ¿Qué pasa?
Mi clase tiene plantilla. He actualizado la muestra. No puedo hacer una base para eso (sin plantilla). – Ockonal
Bien, gracias. La forma con cualquiera debería funcionar. ¿Pero podrías mirar la nueva actualización del código? Traté de darme cuenta de tu primera idea. – Ockonal