Error del compilador con el parámetro de la plantilla = void* - página 20

 
pavlick_:

Lámpara de botones a través de g con virtualidad:

ejemplos manidos.

Esto no es un ejemplo de polimorfismo ni de patrón. Es sólo un ejemplo de uso de una variable bool y nada más (aparte de una gruesa capa de huskies).

Las plantillas no pueden sustituir al polimorfismo.

 
Dmitry Fedoseev:

Las plantillas no pueden sustituir al polimorfismo de ninguna manera.

¿Dónde he dicho lo contrario? La cuestión es que el polimorfismo intenta sustituir a las plantillas.

 
pavlick_:

¿Y dónde he dicho yo lo contrario? La cuestión es que el polimorfismo intenta sustituir a las plantillas.

Es más bien que usted está tratando de reemplazar el enfoque normal de la POO con una muleta) Las plantillas son de hecho sólo se necesitan para los datos almacenados y en algunas interfaces como IComparable<T>.

Prácticamente no hay beneficios de rendimiento en ellos. En tu segundo ejemplo, el compilador incrusta todo, porque allí todo es inequívoco.

 
Alexey Navoykov:

Es más bien que usted está tratando de reemplazar el enfoque normal de la POO con una muleta) Las plantillas son de hecho sólo se necesitan para los datos almacenados y en algunas interfaces como IComparable<T>.

Prácticamente no hay beneficios de rendimiento en ellos. En tu segundo ejemplo, el compilador incrusta todo, porque allí todo es inequívoco.

No es mi ejemplo, es un ejemplo clásico de inversión de la dependencia. Y no te metas en su simplicidad, sólo demuestra una idea, si yo escribiera una hoja de código ¿dirías "bueno sí, eso es otra cosa"?

Las plantillas se han convertido en una muleta, sí . . Muy bien, lo llamaré un día.

 
Por cierto, si volvemos a void*, me acabo de dar cuenta de que ni siquiera dynamic_cast funciona (no compila) con él en C++, lo cual es lógico, porque sólo tenemos un puntero impersonal a una zona de memoria. Por eso sólo se puede lanzar explícitamente. Por eso, void* por sí mismo no sirve en C++. En MQL todo es diferente. Pero por razones de compatibilidad debemos evitar usar dynamic_cast y delete con punteros de tipo void*.