Creo que es un bug, a juzgar por el error: el compilador de ME5 no puede distinguir la descripción de la función de su implementación (mientras que ME4 sí podía distinguirla) y piensa que son dos funciones diferentes con el mismo nombre.
Esto es ambiguo. Se ve terriblemente torcido, podríamos prescindir de él introduciendo otra cabecera.
No, no es así.
En MQL4 esta construcción no provoca errores y todo funciona
lógicamente no debería funcionar, que es lo que dice explícitamente el compilador.
¿Por qué no habría de hacerlo? En 1.mqh se declara la función, en 1.mq5 su implementación, en 2.mq5 se utiliza
Una función es de definición, la otra de importación.
¿Por qué tienes que hacer semejante lío en primer lugar? ¿Incluir una cabecera con una importación de sí misma?
¿Por qué hacer semejante lío? ¿Incluir una cabecera con importaciones propias?
Creo que es un bug, a juzgar por el error: el compilador de ME5 no puede distinguir la descripción de la función de su implementación (mientras que ME4 sí podía distinguirla) y piensa que son dos funciones diferentes con el mismo nombre.