Errores, fallos, preguntas - página 1965
![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
¡Exactamente! Ahora puedo llamar a f todo tipo de funciones y variables a la vez. Debe haber algo de sentido común en estas ambigüedades, para no provocar errores accidentales. En mi opinión, es lógico embaucar emitiendo una cadena vacía a typename f, en lugar de causar problemas cuando accidentalmente se coge y define otra f.
No te obstines en buscar el sentido común en todas partes, especialmente entre los bichos. Si te escuchas, cualquier error en MQL no es un error en absoluto, sino una característica que ha sido incluida por los sabios desarrolladores ))
Como ya se ha apuntado, si tienes alguna duda, lo primero es comprobarlo en C++, y luego dar una solución.
En cuanto a las ambigüedades, deberían causar un error del compilador y no dar problemas. Todo estaba claro y sin ambigüedades en la muestra A100, así que no entiendo muy bien a qué te refieres. Si necesitas sobrecargar una función, la sobrecargas y arreglas los errores de compilación en las ambigüedades y ya está.
¿Cómo puedo inicializar un miembro estático de una clase de plantilla en MQL?
¿Cómo puedo inicializar un miembro estático de una clase de plantilla en MQL?
¿Cómo puedo inicializar un miembro estático de una clase de plantilla en MQL?
A100:
En general, por supuesto, este método no corresponde a C++, pero funciona en MQL.
Tuve un problema similar con el método fuera de la clase:
Gracias a vosotros se ha encontrado la solución:
Aunque esto también es erróneo, por supuesto, porque significa definir un método de plantilla, no un método de una clase de plantilla. Y si una clase contiene ambos, habrá ambigüedadTuve un problema similar al tomar un método fuera de la clase:
Esto es mucho más conveniente. La única restricción es que no puedes tener otra clase (como en el ejemplo) entre
Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias
Errores, fallos, preguntas
A100, 2016.05.19 23:26
Error de compilación
porque significa definir un método de plantilla en lugar de un método de clase de plantilla. Y si la clase contiene ambos, habrá ambigüedad
No lo hará, todo está pensado antes que nosotros (c). Tienes que repetir la línea de la plantilla dos veces (la de arriba se referirá a la clase - la de abajo al método)
Tío, esto parece un auténtico desastre.
A100:
Es mucho más cómodo así.
Sí, bueno, no tener que poner <T> es una gran comodidad).
Sí, no tener que poner una <T> es una gran comodidad).
Tuve un problema similar al tomar un método fuera de la clase:
erróneo, por supuesto, ya que significa definir un método de la plantilla en lugar de un método de la clase de la plantilla. Y si la clase contiene ambos, habrá ambigüedad.
Me he dado cuenta de que los métodos suelen colocarse fuera de la clase, pero ¿por qué? Miré a través de la SB, por lo que los métodos "pequeños" se definen en una línea a la vez, los métodos "largos" se definen fuera de la clase. No hay comodidad de percepción, porque ALT+G en la definición externa ofrece no uno, sino dos puntos de transición. Y si hay sobrecargas, entonces un múltiplo de dos, respectivamente. Y ALT+M ya muestra todo a la vez.
Tal vez sea una especie de tributo a la claridad de la definición de la interfaz, pero hasta ahora no me he metido en ella.