Características del lenguaje mql5, sutilezas y técnicas - página 150

 
Denis Kirichenko:

Hay uno. Sólo he sacado una entrada del registro. El completo es así:

Entonces no entiendo de dónde viene la última línea.

 
fxsaber:

Entonces no entiendo de dónde viene la última línea.

Tras seleccionar el menú contextual "Editar", el navegador no encuentra el mq5 original en la misma ruta que el ex5.

Porque ex5 se ha movido a la carpeta de scripts desde Proyectos Compartidos, donde vive mq5

Arreglar. Hagamos la misma búsqueda inteligente que en la configuración del probador

 
fxsaber:

Gracias, buena regla. Me convertí en víctima de mi propia incompetencia. Realmente, se necesita alguna norma más para un caso tan evidente.


Tal vez para ambos casos Advertencia inteligente de hacer?

Debe haber un error de compilación aquí.
 
Alexey Navoykov:
Debe haber un error de compilación aquí.
Oh, vamos. ¿En qué se basa? delete no cambia el valor del puntero, por lo que tampoco hay violación de la constancia. Por lo tanto, no tengo ninguna queja al compilador aquí, todo está claro.
 
Vladimir Simakov:
Oh, vamos. ¿En qué se basa? delete no cambia el valor del puntero, por lo que tampoco hay violación de la constancia. Por lo tanto, no tengo ninguna queja sobre el compilador aquí.
Me refiero a la segunda muestra
 
Alexey Navoykov:
Nos referimos al segundo ejemplo
void f( const int i )
{
  static const int j = i;
  
  Print(j);
}

void OnStart()
{
  f(1); // 1
  f(2); // 1
}

La variable estática se inicializa en la primera llamada.
 
fxsaber:

La variable estática se inicializa en la primera llamada.
¿Está seguro? Tendré que probarlo mañana. La documentación dice:Las variables estáticas existen en tiempo de ejecución y se inicializan una vez antes de llamar a la función especializadaOnInit(). Si no se especifican valores iniciales, las variables de clase de memoria estática toman valores iniciales cero.

Si está escribiendo como lo hace, entonces hay un error feroz detrás del escritor de docs.
 
Vladimir Simakov:
...Si como escribes, entonces el escritor del muelle tiene un mal bicho.
El redactor del documento tiene toda la razón. Las variables estáticas no se pueden inicializar con valores locales.
Si esto realmente compila en Mql, entonces este error debe haber ocurrido al arreglar el orden deinicialización de las variables estáticas hace un año.
 
Alexey Navoykov:
El escritor del muelle tiene toda la razón. Las variables estáticas no se pueden inicializar con valores locales.
Si ahora compila en Mql, entonces debe ser un error por haber arreglado la inicialización de variables estáticas hace un año.
O el código fue convertido al estándar C++, y en este caso es un error en los documentos. Ahora, pondré mi cabeza en orden, beberé café y lo revisaré.
 

Los promotores. Se necesita una explicación. ¿Qué creer? ¿Los documentos o la aplicación? Hasta ahora tenemos un comportamiento indefinido.

@fxsaber, no te aconsejo que lo uses antes de las explicaciones oficiales, por si lo cogen y lo arreglan.