Una de las razones por las que no terminan de gustarme las generics (o templates, como las llaman en C++) es que confunde al programador. Como en este caso.
Si lo que quieres es que un procedimiento, función o variable admita o use objetos que deriven de cierta clase, entonces no debes usar generics, sino herencia. Basta con indicar la clase base y admitirá cualquier objeto cuya clase derive de dicha clase base. No sólo podrás discriminar qué clases usar, sino que además generará ejecutables más ligeros.
|