Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Quizás por "implementación normal" te refieras a la implementación en plantillas.
¿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.
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.
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.
.
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.
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