Errores, fallos, preguntas - página 1923

 
fxsaber:

En la ayuda se indica que: Si no se especifican valores iniciales, las variables de clase de memoria estática toman valores iniciales cero. Y además - sin plantilla está bien

 
A100:

La ayuda dice que: Si no se especifican valores iniciales, las variables de clase de memoria estática toman valores iniciales nulos

En el caso de las plantillas, tengo una idea aproximada de la procedencia de las patas, de ahí que entienda que no es posible añadir simplemente una línea de plantilla en todas las situaciones.

Técnicamente, probablemente sea un error. Aunque creo que el texto citado de la documentación fue escrito mucho antes de la aparición de las plantillas y es algo inexacto.

 
fxsaber:

Aunque creo que el texto citado de la documentación fue escrito mucho antes de que las plantillas estuvieran disponibles y es algo inexacto.

En la documentación hay la entrada contraria:"Un miembro estático dela clase debe ser explícitamente inicializado con el valor requerido". Sólo la plantilla no afecta a esto - por lo que un error debe o no debe ser generado en ambos casos (con y sin plantilla) - aquí radica una contradicción
 
MetaTrader 5 build 1619 started (MetaQuotes Software Corp.)
Microsoft Windows XP (X86 based PC), IE 08.00, Intel Core2 Duo  T7700 @ 2.40 GHz, RAM: 2359 / 3581 Mb, HDD: 17612 / 27784 Mb, GMT+02:00
C:\Program Files\MetaTrader 5

MetaEditor ya no se ejecuta después de la actualización, dando este error


El 1616 funcionó bien, el 1619 no.

En el registro de la terminal tras pulsar F4

2017.07.07 12:00:30.109 Error   MetaEditor not found
2017.07.07 12:39:54.296 Error   MetaEditor not found
 
A100:

No entiendo muy bien el sentido de tu IMHO. Tomar build <= 1596 (32bit) y comprobar (salidas al archivo .log inmediatamente [5-10 segundos] incluso una línea). Lo he comprobado hace un minuto.

[¿Qué caché? ¿Qué siempre? ¡Había algo sobre algo en alguna parte!]

Me refiero a la pestaña Expertos y a la carpeta MQL5\Logs\.

En mi opinión, fue escrito por una delicadeza innata, un sutil indicio de incoherencia en nuestras experiencias. Para mí, 5-10 segundos no es en absoluto inmediato. Y ese retraso no siempre se limita a segundos, según mis observaciones.

[La caché es la caché, siempre lo es hasta ahora, la cuestión del registro retrasado ya se ha discutido en este foro - si es realmente importante para usted - búsquelo].

 
Stanislav Korotky:

Para mí, 5-10 segundos no es en absoluto inmediato. Y este retraso no siempre se limita a segundos, según mis observaciones.

Antes eran 5-10 segundos (tal vez más en algunos casos), y ahora sin el menú Ver - los registros no se actualizan en absoluto (¡!) (ya que el comienzo del día ha pasado varias horas, y el archivo es cero, mientras que la pestaña Expertos tiene nuevas líneas para el día). El registro normal se interrumpe en aras de la mítica aceleración de "un par de nanosegundos" del terminal
 

Error de compilación

struct A {
        A() {}
        int aa;
};
struct B {
        static A a;
};
A B::a;
template<typename T>
struct C {
        static T a;
};
template<typename T>
T C::a;
void OnStart()
{
        B    x1;
        Print( x1.a.aa ); //нормально
        C<A> x2;
        Print( x2.a.aa ); //unresolved static variable 'C<A>::a'
}
Suena como el caso anterior https://www.mql5.com/ru/forum/1111/page1943#comment_5410554 pero aquí no se puede ocultar el error especificando T C::a = 0; // Falta A::A( int )
Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2017.07.06
  • www.mql5.com
Форум алго-трейдеров MQL5
 

Error durante la ejecución

void OnStart()
{
        string text = "1234\0";
        Print(  "1>'",    text, "'" ); //не выводит завершающую кавычку
        printf( "2>'%s'", text );      //нормально
}

Resultado:

1>'1234
2>'1234'

 

Error de compilación

#define  MACRO( x )      Print( x )
void OnStart()
{
        MACRO/**/( 10 ); //error: '' - argument expected for the function-like macro
}
 

Se esperaba lo contrario

class A {};
struct B {
        const A *       a1;   //(1) есть сообщение об ошибке
              A * const a2;   //(2) нет сообщения
};
void OnStart()
{
        B b1;
        B b2;
        b2 = b1; //error: '=' - not allowed for objects with protected members or inheritance
}
  1. Si la estructura B contiene sólo la línea (1) - hay un mensaje de error
  2. Si la estructura B sólo contiene la línea (2) - no hay mensaje de error
  3. Se esperaba lo contrario

Además, no se esperaba ningún error en ambos casos (1. y 2.)

void OnStart()
{
        B b1;
        B b2 = b1; //error: '=' - not allowed for objects with protected members or inheritance
}