Plantillas de C ++ tipo casting con derivados
Estoy tratando de emitir de un genérico a otro, decir:
myClass<MoreAbstract> anItem = myclass<DerivateFromMoreAbstract> anotherObject;
O hacer algo como
aFunction(anotherObject); // myclass<DerivateFromMoreAbstract> anotherObject
donde una firma de función es
aFunction(myClass<MoreAbstract> item);
De hecho, myClass es en realidad una implementación simplificada de shared_ptr que encontré en línea. Me pregunto si hay alguna manera de poder encapsular de un tipo de puntero a otro.
¿Hay alguna manera de hacer tal casting? Si es así, ¿cuál sería la forma correcta de hacerlo?
Si ayuda a alguien, VC ++ me da este error:
Error 1 error C2440: 'type cast' : cannot convert from 'myClass<T>' to 'myClass<T>'