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>'

Respuestas a la pregunta(4)

Su respuesta a la pregunta