Discusión sobre el artículo "Fundamentos de programación en MQL5 - Listas" - página 9

 
C-4:
Quizás por "implementación normal" te refieras a la implementación en plantillas.
¿A qué se refiere? ¿Qué quieres decir con plantillas? ¿Alguna forma especial de pulsar las teclas con los dedos mientras se programa?
 
Integer:
¿Cómo es eso? ¿A qué te refieres con patrones? ¿Alguna retorcida forma especial de pulsar las teclas con los dedos mientras se programa?

Las plantillas, como legado del antiguo método de sustitución de macros en tiempo de compilación, en realidad hace tiempo que perdieron su relevancia para la programación orientada a objetos.

En los lenguajes modernos esas tareas se resuelven con herramientas en tiempo de ejecución, por ejemplo, los genéricos en C#, el reconocimiento dinámico de tipos RTTI y el uso de tipos variantes.
Por supuesto que todavía hay oldboys a los que les gustan las plantillas, pero en mi humilde opinión como programador es señal de que ha llegado el momento de jubilarse.

 
revers45:

Las plantillas, como legado del anticuado método de sustitución de macros en tiempo de compilación, en realidad hace tiempo que perdieron su relevancia en la programación orientada a objetos.

En los lenguajes modernos esas tareas se resuelven con herramientas en tiempo de ejecución, por ejemplo, los genéricos en C#, el reconocimiento dinámico de tipos RTTI y la aplicación de tipos variantes.
Por supuesto, todavía hay oldboys a los que les gustan las plantillas, pero en mi humilde opinión como programador es señal de que ha llegado el momento de jubilarse.

Es divertido leer ) las plantillas hace tiempo que se alejaron de las sustituciones de macros y existen con bastante éxito como paradigma separado.

Los genericos en C# son solo plantillas muy reducidas y en realidad no en tiempo de ejecucion sino de compilacion, debido a lo cual su velocidad es mayor ).

Pero sólo RTTI y tipos variantes sugieren algunos malos pensamientos....

____________________

Ok, todo esto es genial, por supuesto. Pero en MQL5 sólo hay funciones de plantilla, no hay clases (¿habrá?). Por lo tanto, las listas en las plantillas no son realizables con las herramientas actuales.

 
TheXpert:

Curioso de leer ) las plantillas hace tiempo que se alejaron de las sustituciones de macros y existen con bastante éxito como paradigma independiente.

Los genéricos en C# no son más que plantillas muy reducidas, y en general no es el tiempo de ejecución sino el de compilación, debido a lo cual la velocidad de su uso es mayor ).

Pero sólo RTTI y tipos variantes sugieren algunos malos pensamientos....

____________________

Vale, todo esto mola, por supuesto. Pero en MQL5 sólo hay funciones de plantilla, no hay clases (¿las habrá?). Asi que las listas en plantillas no son realizables con las herramientas actuales.

Estás contento porque los paradigmas fósiles son tus cálidos recuerdos del siglo pasado y parecen ser un bagaje exhaustivo de conocimientos.

Pero no hay necesidad de eclipsar los enfoques modernos por esto, porque los MQs asumirán que sus clientes son nostálgicos del Macro Assembler del abuelo y del ANSI C e ignorarán las sugerencias para mejorar MQL5.
.

 
revers45, un poco equivocado, por fin me he dado cuenta de lo que estaba hablando. Existe esa posibilidad de escribir funciones universales para garantizar la sobrecarga. No se escribe una función para cada tipo de argumentos, se escribe una plantilla de función. Los de arriba se han confundido en algo, aquí sólo tenemos plantillas de funciones. Pero la conversación empezó con qué tipo de entendidos, pero se hizo la pregunta sobre las plantillas, así que se hizo el silencio enseguida. Parece que son habladores inteligentes, eso es todo.
[Eliminado]  

Dado que no hay plantillas, se puede hacer en macros, alguien creo que incluso escribió un artículo sobre este tema (macros en lugar de plantillas) + análogo de algoritmos en stl también en macros. Pero imho todo esto debe estar en la biblioteca estándar en las plantillas, es incorrecto de alguna manera para escribir sus propios contenedores (útil sólo para fines educativos), es más fácil de hacer con una matriz.

upd: no hay necesidad de algoritmos en macros, hay plantillas de funciones disponibles. No me gusta virtual insert/... es mejor usar aserciones de comprobación de tipos en modo depuración.

 
Descargado el archivo adjunto muchos lugares tienen errores de compilación como: 'm_head' - member of the constant object cannot be modified CiSingleList.mqh 504 & nbsp; 9
 
Su un buen artículo y creo que fue escrito a cada uno en la comunidad Mql5 porque cada cosa se explica claramente.
 
Debo decir que este artículo da una visión clara sobre OOP Estoy conmovido por cómo después de leer esto he ganado mucho, me tomo un arco
 

Hola,

Intento compilar test_MQL5_List.mq5 , obtengo los siguientes errores :

m_head' - miembro del objeto constante no puede ser modificado CiSingleList.mqh 504 9
'm_tail' - miembro del objeto constante no puede ser modificado CiSingleList.mqh 505 9
'm_size' - miembro del objeto constante no puede ser modificado CiSingleList.mqh 496 9