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

 
A100:

La advertencia fue emitida sólo porque las prioridades son diferentes en MQL5. No porque ...

Así que los desarrolladores han arreglado sus errores anteriores... no más que eso

¿Tambiénaquí hay un problema de prioridades?

 
fxsaber:

¿Tambiénaquí hay un problema de prioridades?

Son diferentes en MQL5 y en el antiguo MQL4... Pensé que ya lo habías leído
 
A100:
Son diferentes en MQL5 y en el antiguo MQL4... Pensé que ya lo habías leído

Una lista de diferencias, por favor.

 
fxsaber:

Una lista de diferencias, por favor.

¿No puedes hacerlo tú mismo? ¿Pulsa los enlaces anteriores?

MQL5 y nuevo MQL4

Operación

Descripción

Orden de ejecución

&&

Operación lógica AND

De izquierda a derecha

||

Operación lógica OR

De izquierda a derecha


Antiguo MQL4

||

Operación lógica OR

De izquierda a derecha

&&

Operación lógica AND

De izquierda a derecha

Cuanto más alta sea la prioridad de un grupo de operaciones, más alto se colocará en la tabla.

Su ejemplo:

bool a = r && g || b;
 
Ilya Malev:
Sería más conveniente que el compilador ofreciera organizar automáticamente los paréntesis "correctamente", como hace Excel cuando se escribe una fórmula incompleta.

En general, existen lenguajes de programación especiales para los amantes de los corchetes: LISP. He aquí un extracto de un motor de búsqueda: "Este estilo es un poco como el lenguaje LISP. Pero en LISP, el gran número de paréntesis se debe a la falta de priorización de las operaciones".

 
A100:

En general, para los aficionados a los paréntesis hay lenguajes de programación especiales: Simula, LISP. He aquí un extracto de un motor de búsqueda: "Este estilo es un poco como el lenguaje LISP. Pero en LISP, el gran número de paréntesis se debe a la falta de prioridad de las operaciones".

Es bueno que el compilador advierta sobre algo que los desarrolladores cambian repentinamente en la lógica pasada. Si se dieran las mismas advertencias en las llamadas a funciones como ArrayMaximum tras la migración del código desde mql4, me habría ahorrado mucho tiempo y nervios en mi época (intercambiaban libremente parámetros de un solo tipo, por si no lo saben).

 
Ilya Malev:

Es bueno que el compilador le advierta sobre algo que los desarrolladores cambian repentinamente en la lógica pasada.

No me importa. Deja que esos avisos se queden en el antiguo MQL4.

 
En cuanto a que "los programadores normales recuerdan las prioridades de las operaciones de C++ como la tabla de multiplicación", yo personalmente lo he recordado más o menos sólo después de empezar a sobrecargar operadores, y antes de eso no lo he abierto nunca. No todos los codificadores de mql son profesionales, y los desarrolladores del terminal y del lenguaje para comerciantes deben tener esto en cuenta, entre otras cosas.
 
Ilya Malev:

Si se emitieran las mismas advertencias en las llamadas a funciones como ArrayMaximum después de transferir el código desde mql4, me habría ahorrado mucho tiempo y nervios en mi época (intercambiaban libremente los mismos parámetros, por si no lo saben)

Bueno, no se entregan. Esto es lo que hace que la codificación selectiva sea tan mala: crea la ilusión de que el compilador se encargará de todo (así que es todo o nada).

 
Ilya Malev:
No todos los codificadores de mql son profesionales, y los desarrolladores del terminal y del lenguaje para comerciantes deben tener esto en cuenta, entre otras cosas.

¡Exactamente! Nunca he sido un profesional, estas advertencias me han ayudado 100 veces.