Errores, fallos, preguntas - página 1422

 

Mihail Matkovskij, 2015.11.01 12:55

No puedo actualizar el terminal a la build 902, antes se actualizaba, pero ahora no puedo hacerlo desde hace 3 días. Versión: 4; build: 890; bit rate: 32. ¿Cuál puede ser la razón?

¿Qué es exactamente lo que no funciona? ¿Qué haces y qué consigues? ¿Qué tipo de errores?
 

Error durante la ejecución

class A { public:
        virtual bool    g() { Print( __FUNCTION__ ); return true; }
        virtual bool    f() { return g(); }
};
class B : public A { public:
        virtual bool    g() { Print( __FUNCTION__ ); return true; }
};
void OnStart()
{
        int i = 0;
        for ( B b; b.f(); i++ )
                if ( i++ >= 3 )
                        break;
}                

Resultado: y debería ser:

 
Karputov Vladimir:
¿Qué es exactamente lo que no funciona? ¿Qué haces y qué consigues? ¿Cuáles son los errores?

Como el registro es confidencial, te lo envío por mensaje privado.

 
A100:

Fuga de memoria.


A100, ¡¡¡eres todo un cazabichos!!! Sigue así. Me quito el sombrero :)

 
Stanislav Korotky:
Esto es MT4. Lo he estado probando durante los últimos días. Construye 902/32.

He probado tu ejemplo en MT4/891/32 con diferentes compiladores (build: 1174, 1210)

Cualquiera de las actualizaciones... o retroceder.

 
sigma7i:

A100, ¡¡¡eres todo un cazabichos!!! Sigue así. Me quito el sombrero :)

Así, se puede ver de inmediato quién utiliza realmente las capacidades de la POO y quién es un maestro del razonamiento sobre este tema (hay toda una rama de maestros).

Foro sobre comercio, sistemas de comercio automatizados y prueba de estrategias de comercio

AOP por el amor de Dios....

George Merts, 2015.10.26 19:58

Sólo que no sabes cómo cocinarla.

La POO es muy beneficiosa tanto para la estructuración de los programas como para la capacidad de soportarlos y modificarlos.

Sobre todo porque dices que "usas las clases como contenedores para las funciones" - bueno, pon los datos que trabajan con esas funciones en ese contenedor, y ya lo tienes, POO en acción.


 
A100:

La única forma de eliminar este error es sustituir Optimize=1 en metaeditor.ini por 0

Realmente no necesito deshacerme de él, pero quizás los desarrolladores sí. Al fin y al cabo, estos errores no deberían producirse ni siquiera en la compilación si el compilador funciona bien. Por eso te he dado un ejemplo de código exacto cuando se produce.
 
Ilya Malev:
Por eso he puesto el ejemplo de código exacto cuando aparece.
En la versión 1210/32 no se puede repetir
¿Verdad?
void OnStart()
{
        ENUM_TIMEFRAMES tf=NULL;
        if(tf==NULL)   tf=Period();
}
 
A100:

He probado tu ejemplo en MT4/891/32 con diferentes compiladores (build: 1174, 1210)

Cualquiera de las actualizaciones... o retroceder.

No. El servicio de atención al cliente siempre dice "actualizar a la última versión". (lo cual, por supuesto, debería ser correcto, si tan sólo estuvieran corrigiendo los errores). Detecté el problema en la compilación 900, y luego actualicé a la 902. Aparentemente, el problema surgió debido a la adición de plantillas de clases. Aunque las plantillas estarán "bailando" durante un tiempo, creo que es mejor no utilizarlas.

 
A100:
No hay repetición en la compilación 1210\32
¿Verdad?