Errores, fallos, preguntas - página 1919

 

¿Puedes decirme si mql5 puede comentar la salida de error durante la compilación como en php?

 
Anton Ohmat:

¿Puedes decirme si mql5 puede comentar la salida de error durante la compilación como en php?

¿GetLastError()? Si no, ¿qué formato le gustaría ver?
 
Alexey Kozitsyn:
¿GetLastError()? Si no es así, ¿qué formato quiere ver?

bien en php hay @variable = ....

y la salida de error se comenta - conveniente para errores simples en tiempo de compilación (por ejemplo, para inconsistencias de tipo durante la conversión a cadena)

 
Anton Ohmat:

bien, en php hay @variable = ....

y la salida de error se comenta - conveniente para errores simples de compilación (por ejemplo, para inconsistencias de tipo durante la conversión a cadena)

En mql tienes que comprobar el código de error explícitamente (en tiempo de ejecución), mientras que en tiempo de compilación aparecerá una advertencia con un posible error de conversión de tipo.
 
Alexey Kozitsyn:
En mql tienes que comprobar el código de error explícitamente (en tiempo de ejecución), y en tiempo de compilación aparecerá una advertencia, si hay un posible error en la conversión de tipos.
Por lo tanto, quiero desactivar parcialmente la salida de errores en tiempo de compilación.
 
Anton Ohmat:
Así es como quiero desactivar parcialmente la salida selectiva de errores en tiempo de compilación.
No es necesario desactivar nada. No se producirá ningún error si los tipos están correctamente asignados entre sí.
 
Anton Ohmat:
Por lo tanto, quiero desactivar parcialmente la salida de errores en tiempo de compilación.
Para evitar ver los errores y advertencias en tiempo de compilación, basta con arreglarlos en el código. No te engañes, quieres trabajar con dinero.
 

Ambigüedad

struct A {
        int f() { return B::i; } //error: 'i' - protected member access error
};
struct B : A {
protected: //(*) или например private:
        static int i;
};
int B::i;
Al mismo tiempo, sin protección: (*) - compila sin errores

Se espera: el mismo comportamiento con y sin protección: (*) cadena

Opcional: C++ no compila ambos casos

 
A100:

Ambigüedad

Al mismo tiempo, sin la cadena protected: (*) - compila sin errores

Esperado: Mismo comportamiento tanto con como sin protección: (*) cadena

El "predecesor" no necesita ver los campos protegidos/privados.

Si quieres que B::f() se defina en A::f(), tendrás que inventar algo en este caso.
 
A100:

Opcional: C++ no compila ambos casos

Si añade

estructura B;

al principio del código, uno de los dos casos debería compilar. ¿quizás el compilador de mql es tan inteligente que añade él mismo la declaración forward que falta?