Modelos C ++ tipo casting com derivadas

Estou tentando transmitir de um genérico para outro, digamos:

myClass<MoreAbstract> anItem = myclass<DerivateFromMoreAbstract> anotherObject;

Ou faça algo como

aFunction(anotherObject); // myclass<DerivateFromMoreAbstract> anotherObject 

onde a assinatura de uma função é

aFunction(myClass<MoreAbstract> item);

Na verdade, o myClass é na verdade uma implementação simplificada do shared_ptr que encontrei online. Eu estou querendo saber se há alguma maneira que eu possa realmente mudar de um tipo de ponteiro para outro sendo encapsulado.

Existe alguma maneira de fazer esse casting? Se sim, qual seria a maneira correta de fazer isso?

Se isso ajudar alguém, o VC ++ me dá esse erro:

Error 1 error C2440: 'type cast' : cannot convert from 'myClass<T>' to 'myClass<T>'

questionAnswers(4)

yourAnswerToTheQuestion