forked from nique_372/MQLArticles
1.3 KiB
1.3 KiB
Bug: Internal compiler error con ternario + puntero a funcion
Descripcion
Este bug connsiste en que por lo visto el compilador de MQL5 no puede inferir si cierta funcion "calza" con la firma de un typedef cuando se resuleve un ternario ?:, siendo que termina abrutamente la compilacion del codigo.
Estado
- Build: 6140
- Fecha exacta: 2026-08-31
- Error que reporta el Metaeditor:
Internal compiler error
Reproducibilidad
En Repro.mq5 esta la forma de reproducirlo
Solucion (puede aplicar a esta build o quizas se arregle)
Hacer explicito el cast para lo que "resulte ambiguo" ejemplo para
typedef string(*FormatFunc)(double value, int8_t decimals);
m_func = func_txt == NULL ? DefaultFormat : func_txt;
DefaultFormat es una funcion global que (calza con la firma que pide m_func), pero si lo declaras asi dara ese error la solucion, guiar al compilar osea hacer explicito que si coincide con la firma osea:
m_func = func_txt == NULL ? (FormatFunc)DefaultFormat : func_txt;
Donde se encontro
- Repositorio: https://forge.mql5.io/nique_372/GrapichsByLeo
- Commit exacto (hash):
a34663a1b6ec552e7fa79fa2d7b9fd7e2a877382 - Archivo exacto:
GrapichsByLeo\General\EjeLine\Ejes.mqh - LOC: 361-362
- Link exacto:
https://forge.mql5.io/nique_372/GrapichsByLeo/src/commit/a34663a1b6ec552e7fa79fa2d7b9fd7e2a877382