Errores, fallos, preguntas - página 2682
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
Error en MT5 (build 2367) Las prioridades de ejecución de las funciones de plantilla en MQL no se corresponden con las de C++ (en línea: https://onlinegdb.com/B172m1PLL).
Parece que, como parte de la corrección de errores, el error de compilación se ha solucionado, pero la prioridad de ejecución de las funciones de plantilla sobrecargadas sigue sin estar alineada con el comportamiento de C++.
Me encontré con un problema curioso. Es imposible pasar un tipo de plantilla con varios tipos-parámetros a una macro, porque el preprocesador no sabe que se trata de una plantilla y considera los parámetros por comas.
Encontré la descripción del problema y su solución para C++ en el SO.
Lo intenté en MQL, pero desafortunadamente no funcionó. El compilador da un error "identificador no declarado" para una variable descrita por el tipo pasado.
Por ahora me las he arreglado con una clase derivada adicional, pero ¿puedo arreglarlo en C++?
Uy. Encontré una solución. Así es como funciona:
#define COMMA() ,
La pregunta está eliminada.Error en MT5 (build 2367) la ubicación de las funciones de plantilla sobrecargadas afecta al resultado de la compilación.
El billete original con el que se realizó el trabajo -https://www.mql5.com/ru/forum/1111/page2655#comment_15119627
C++ en línea(https://onlinegdb.com/BJzbH2DLL).
Defectos en el funcionamiento de la caché de la función/clase de la plantilla:
(arreglado por MT5(build 2368)) ***(arriba) Comportamiento indefinido, creas un objeto complejo envuelto con el tipo interno "C" varias veces y resulta ser un tipo de datos completamente diferente, tal vez "B", tal vez "int", lo que quieras...
(arreglado por MT5(build 2368)) * Error de compilación, error al pasar un puntero de función como argumento de plantilla const ref.
(arreglado por MT5(build 2368)) * Error de compilación, el objeto B<int> puede ser creado después del objeto B<void*>, pero se produce un error de compilación si se hace antes.
Defectos en el trabajo de la función/clase de la plantilla:
(arreglado por MT5(build 2368)) ***(arriba) Error de compilación, error dentro de la función de plantilla, el puntero pasado dentro de laconversión de tipo explícito se comporta como una clase de otra manera.
(arreglado por MT5(build 2368)) **(arriba) Error de compilación, error al intentar acceder a la clase interna de un parámetro de plantilla de una función de plantilla.
(no se ha solucionado con MT5(build 2368)) *** Error de compilación, la principal queja es una advertencia de salida inapropiada - "comportamiento obsoleto, la llamada a métodos ocultos se desactivará en una futura versión del compilador MQL". La implementación actual es disparar a los pájaros con una pluma.
(no se ha solucionado con MT5(build 2368)) ** Error de compilación, el error se refiere al valor de retorno de una función de plantilla cuando el valor de retorno es una clase interna dentro de una clase de plantilla cuyo tipo de parámetro es establecido por el tipo de argumento de la función de plantilla.
(no se ha solucionado con MT5(build 2368)) ** Error de compilación, error de espacio de nombres y alcance en el constructor de la plantilla al llamar a una clase base cuando se utiliza el mismo nombre de clase en la herencia y en la clase interna.
(no se ha solucionado con MT5(build 2368)) * Error de compilación, error en la llamada a una función de plantilla con tipos de argumentos explícitos cuando se llama desde una función sobrecargada no de plantilla.
(no corregido por MT5(build 2368)) Error de compilación, error en la definición de la clase interna - no hay referencia al espacio de nombres global cuando se define una clase base.
(arreglado por MT5(build 2368)) ** Error de compilación, error en la generación del código de la clase de la plantilla cuando se utiliza la clase interna.
(arreglado por MT5(build 2368)) ** Error de compilación, error en la generación del método/clase de la plantilla, el proceso de auto sustitución del parámetro de la plantilla está fuera del ámbito en el código del programa principal.
(arreglado por MT5(build 2368)) * Error de compilación, error con la ausencia de autogeneración de código de clase de plantilla cuando la clase de plantilla actúa como valor de retorno para el método de plantilla.
(arreglado por MT5(build 2368)) * Error de compilación, error al pasar una estructura interna a una función de plantilla, eltipo de datos resultante no puede utilizarse como tipo de datos base para otra estructura interna en la clase de plantilla.
(arreglado por MT5(build 2368)) * Error de compilación, la comprobación de los nombres de tipo de plantilla reutilizados no se realiza cuando se declara una función de plantilla dentro de una clase de plantilla, lo que conduce a un comportamiento inesperado.
(corregido por MT5(build 2368)) Error de compilación, múltiples defectos relacionados con la devolución del objeto "creado en el lugar" cuando el objeto es una clase/estructura de plantilla.
(no se ha solucionado con MT5(build 2368)) *( No es un bug, es una característica) en el constructor de la clase base es imposible realizar un typecast explícito al convertir el puntero a objeto de la clase base en puntero a la clase padre.
Defectos relacionados con la inconsistencia en las prioridades de las llamadas de las funciones sobrecargadas en MQL vs C++:
(arreglado por MT5(build 2368)) **(arriba) Error de compilación, la prioridad de llamada de las funciones de plantilla sobrecargadas depende en realidad del tipo de parámetro de la plantilla, lo que teóricamente no afecta al resultado de la compilación.
(arreglado por MT5(build 2368)) **(arriba) Error de compilación cuando la primera función de plantilla sobrecargada utiliza una clase base de plantilla totalmente especializada y la segunda utiliza una clase base de plantilla no especializada.
(no se ha solucionado con MT5(build 2368)) ** Error de compilación, se produce un error de compilación al generar código para una función de plantilla a pesar de que existe una función de plantilla sobrecargada con una firma adecuada para los parámetros pasados.
(no se ha solucionado con MT5(build 2368)) * Error de compilación, "llamada ambigua a función sobrecargada" cuando se llaman funciones de plantilla sobrecargadas con diferente número de parámetros de plantilla.
(arreglado por MT5(build 2368)) *** Error de compilación cuando se heredan las clases A <= B <= C <= D y se implementan dos funciones de sobrecarga, por ejemplo, una con el parámetro A* y la segunda con el parámetro B*, luego se pasa un objeto C* o D* en dicha función en MQL provoca un error de compilación "llamada ambigua a función sobrecargada".
(arreglado por MT5(build 2368)) ** Tiempo de ejecución, desajuste de prioridades en las llamadas a funciones de plantilla sobrecargadas.
Defectos relacionados con la lentitud en la ejecución de funciones, rendimiento del optimizador de código:
(arreglado por MT5(build 2368)) ** Tiempo de ejecución, gran sobrecarga al añadir un elemento a la vez en un array usando ArrayResize, a pesar de que la memoria para ellos ha sido reservada, por ejemplo, las estructuras son hasta 7 veces más lentas.
Sugerencias:
(nuevo) enlace - sobre la implementación del soporte de intellisense para la funcionalidad del espacio de nombres basado en el trabajo de intellisense para los métodos estáticos en las clases.
link- para permitir que los literales y las variables temporales se pasen como argumentos de funciones const ref.
enlace- almover los archivos del proyecto en la pestaña Proyecto, para los archivos movidos que están abiertos y en las pestañas ME, para actualizar automáticamente su ruta de ubicación.
link- para introducir la funcionalidad de la declaración typedef en MQL.
link- sobre la posibilidad de forzar la generación de constructores de copia y operadores de asignación por defecto.
Todo funcionaba antes, aparentemente algo se rompió como parte de la corrección de otros errores.
Error de compilación de MT5 (compilación 2368) al llamar a la sentencia de asignación mediante la indicación explícita de la clase base. El problema se produce parauna clase de plantilla con parámetro de plantilla como clase base.
Antes funcionaba, aparentemente algo se rompió como parte de la corrección de otros errores.
Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading
Bichos, errores, preguntas
fxsaber, 2020.03.22 10:04
mq5 está bien. mq4 está roto. Puedes tomar TypeToBytes_ExampleScript.mq4 desde aquí. Sólo se compila si se cambia la extensión a mq5.
2368: nada ha cambiado.
A través de un terminal MT5 siempre podía entrar en la cuenta de cualquier broker. Si había algún problema con el primer inicio de sesión, simplemente utilizaba las herramientas del Terminal para buscar el broker adecuado, obteniendo automáticamente los datos de sus servidores de negociación. Después de eso pude iniciar la sesión sin problemas.
Hoy me he enfrentado por primera vez a una situación (corredor nuevo), que nada ayuda. No puedo conectarme. En el registro escribe.
He descargado el terminal nativo del broker - se conecta inmediatamente. Mi terminal de investigación - de ninguna manera. Por primera vez tal.
¿Pueden decirme cómo hacer que un terminal no nativo pueda conectarse a la cuenta de operaciones?
¿Pueden decirme cómo hacer que un terminal no nativo pueda conectarse a una cuenta de operaciones?
En mt4 tuve que copiar el archivo server.ini a otra terminal, para no tener que buscar los servidores de comercio
no sé en mt5