![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
A los compiladores, una sugerencia.
Por favor, haga la transferencia de estructuras pequeñas por valor, no sólo por referencia. Porque toda la aritmética compleja/racional es terriblemente lenta.
Por favor, explique cómo puede ralentizar el paso por referencia en lugar de la transmisión de valores de la estructura. Lo mejor de todo con un ejemplo.
En cuanto permitimos que se pasen las estructuras por el valor, empieza el verdadero frenazo. Los desarrolladores utilizarán, sin saberlo, el paso de enormes estructuras por la pila en todas partes y sus programas se ralentizarán.
La herencia múltiple es definitivamente mala.
Ы? ¿Cómo se heredan dos interfaces?
Soy partidario de fusionar con los agudos en lugar de con los positivos. Ahí tiene mucho más sentido, dadas las generaciones de experiencia.
Una petición a los compiladores.
Por favor, haga la transferencia de estructuras pequeñas por valor, no sólo por referencia, porque toda la aritmética compleja/racional es terriblemente lenta.
Simplemente establezca un límite (a su discreción - 32 o 64 bytes) después del cual el compilador no pasa la estructura pasada por valor y requiere estrictamente el paso por referencia.
También estaría muy bien poder devolver pequeñas estructuras como resultado de la función.
--
Incluso voto por la sobrecarga del operador. Espero poder hacerlo algún día. Parece que el rumbo de "fusionar con C++" está tomado y apoyado en general.
La sintaxis funcional para las operaciones aritméticas con objetos matemáticos no estándar es muy incómoda, y además ralentiza mucho,
porque no puede ser reemplazado por sustituciones en línea y requiere el gasto de llamadas a funciones.
No. Estructuras sólo por referencia. No hay excepciones. Danos algunas cifras de los frenos para que podamos estimar la magnitud de la catástrofe.
Solíamos tener una opción para devolver estructuras como resultado de una función. Finalmente anulamos esta opción debido a la ambigüedad de la implementación (nuestra depuración interna). Decidimos que como las estructuras se pasan por referencia, pasar la estructura resultante como parámetro.
Es posible sobrecargar los operadores. Pero ahora no.
Desarrolladores: por favor, hagan que OnTimer() funcione en los indicadores que no están unidos al gráfico.
1. no. estructuras sólo por referencia. No hay excepciones. Para los frenos, dé cifras, para que podamos estimar la escala del desastre.
2. Antes teníamos una opción para devolver estructuras como resultado de una función. Finalmente anulamos esta opción debido a la ambigüedad de la implementación (nuestras disputas internas). Decidimos que como las estructuras se pasan por referencia, pasar la estructura resultante como parámetro.
3. La sobrecarga de operadores es posible. Pero ahora no.
1. :) Se cancela Catastrophe, lo he medido y me ha sorprendido mucho, los frenos no están en él (el guión está en el trailer). Pero la sintaxis en muchos casos es más conveniente, cuando se pueden sustituir las expresiones en los parámetros. Sí. Bueno, puedo vivir con esto. Es soportable. Lo principal es que no se ralentiza.
Pero, ¿podemos volver a asignar estructuras? La asignación de estructuras es perfectamente legal, así que permitamos que vuelva también. El programa es mucho más legible cuando la asignación del resultado de la ejecución de la función está sintácticamente unificada:
Y = Func(X); - se ve mucho más claro al leer el código brevemente que Func(X, Y); // debe adivinar que Y es un parámetro de salida.
No, a Straustrup no le gustaría tu solución... no está bien de alguna manera... :)
3. ¡Oh! Eso es bueno. Gracias por eso.
También podemos reasignar estructuras legalmente, así que permitamos que se reasignen también. El programa es mucho más legible cuando la asignación del resultado de una función está sintácticamente unificada:
Te diré un secreto. Sólo hazlo.
Resulta que no la cortaron. Puede devolver estructuras simples. Pero ten en cuenta que en este caso tendrás que añadir 2 copias extra - copiar en la estructura de tempo en la pila y copiar desde la estructura de tempo en la estructura de resultados.
¿Por qué la clase CExpert de la biblioteca estándar se declara así en la documentación?
y en el archivo Expert.mqh vemos esta declaración?
Desarrolladores: por favor, hagan que OnTimer() funcione en los indicadores que no están unidos al gráfico.