Errores, fallos, preguntas - página 2653
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Pues bien, el STL no es una solución única. Aquí hay que prestar mucha atención a los detalles.
Confundes lo suave con lo cálido.
No es una cuestión de STL. Lo resolveré yo mismo... (si alguien no lo tiene, no significa que no se pueda hacer en principio)
La forma más fácil de implementar toda la funcionalidad posible con métodos abstractos en una clase base o interfaz, y en los descendientes - ya sea la implementación o =delte.
En este caso, es necesario pasar punteros o referencias del mismo tipo a los métodos de la clase base.
Aunque hay un mal inevitable en la forma de una tabla virtual, pero es mejor arreglar la arquitectura de tal manera que no haya ramificaciones dinámicas_cast costosas en ninguna parte.
El método que sugieres fue implementado anteriormente y también depende del mismo error:https://www.mql5.com/ru/forum/1111/page2648#comment_15015191
El error está en las prioridades de llamada a funciones recargadas cuando se realiza una conversión de tipo implícita para un parámetro de puntero/clase.
En C++ todo está bien, pero en MQL el error de compilación"llamada ambigua a una función sobrecargada"
Una de las variantes de solución se sugiere arriba, pero es grande y no es conveniente, y no tengo ningún deseo de usarlo para una docena de funciones similares.
¿Quizás haya algo más sencillo?
Desarrolladores, por favor avisen, ¿hay algún plan para arreglarel error o es arquitectónicamente imposible?
Dentro de una función de plantilla, un puntero pasado dentro de una conversión de tipo explícita se comporta como una clase, causando un error de compilación en consecuencia:
Tonto, no puede resolver un simple problema. Necesito entender que el comercio está prohibido durante la siguiente configuración de inicio de EA.
Esta comprobación no funciona.
OrderCheck es una pista falsa. Por favor, avisa.
Código ANATOLI KAZHARSKI
Gracias, no me di cuenta del MQL_TRADE_ALLOWED.
Tonto, no puede resolver un simple problema. Necesito entender que la negociación está prohibida durante los siguientes ajustes de inicio del EA.
Esta comprobación no funciona.
OrderCheck es una pista falsa. Por favor, avisa.
Probablemente la razón sea el trabajo de la caché del generador de clases de plantillas.
Bug MT5(build 2340) utiliza el mismo código dos veces: primera pasada - compilación exitosa, segunda pasada - error de compilación.
Aparentemente los problemas están relacionados con la caché del generador de funciones de plantilla.
El error desaparece si para la función de plantilla "void run(const T &ff)" se sustituye la transferencia por referencia por la transferencia por valor"void run(const T ff)".
Bug MT5(build 2340) Error de compilación al intentar acceder a la clase interna de un parámetro de plantilla de una función de plantilla.