Erros, bugs, perguntas - página 1923

 
fxsaber:

A ajuda afirma que: Se não forem especificados valores iniciais, as variáveis da classe de memória estática tomam valores iniciais zero. E além disso - sem modelo está OK

 
A100:

A ajuda diz isso: Se não forem especificados valores iniciais, as variáveis da classe de memória estática tomam valores iniciais zero

No caso dos modelos, tenho uma ideia aproximada de onde vêm as pernas, daí o entendimento de que não é possível adicionar simplesmente uma linha de modelo em todas as situações.

Tecnicamente, é provavelmente um erro. Embora, penso que o texto citado da documentação foi escrito muito antes do aparecimento dos modelos e é algo impreciso.

 
fxsaber:

Embora eu pense que o texto citado da documentação foi escrito muito antes de os modelos estarem disponíveis e é algo impreciso.

Na documentação há a entrada oposta:"Um membro da classeestática deve ser explicitamente inicializado com o valor requerido". Apenas o modelo não afecta isto - pelo que um erro deve ou não deve ser gerado em ambos os casos (com e sem modelo) - aqui reside uma contradição
 
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

O MetaEditor já não funciona após a actualização, dando este erro


1616 funcionou bem, 1619 não funcionou.

No registo terminal depois de premir F4

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

Não compreendo bem o objectivo do seu IMHO. Pegue build <= 1596 (32bit) e verifique (saídas para ficheiro .log imediatamente [5-10 segundos] mesmo uma linha). Verifiquei-o há um minuto atrás.

[que cache? que sempre? havia algo sobre algo em algum lugar!?!]

Estou a falar do separador Especialistas e da pasta MQL5\Logs\Logs\

IMHO foi escrito por uma delicadeza inata - uma sugestão subtil de incoerência nas nossas experiências. Para mim, 5-10 segundos não é, de forma alguma, imediato. E esse atraso nem sempre é limitado a segundos, de acordo com as minhas observações.

[Cache é cache, é sempre até agora, a questão do registo tardio já foi discutida neste fórum - se for realmente importante para si - pesquise-a].

 
Stanislav Korotky:

Para mim, 5-10 segundos não é, de forma alguma, imediato. E este atraso nem sempre é limitado a segundos, de acordo com as minhas observações.

Costumava ser 5-10 segundos (talvez mais em alguns casos), e agora sem o menu Ver - os registos não são de todo actualizados (!) (desde o início do dia passaram várias horas, e o ficheiro é zero, enquanto que o separador Especialistas tem novas linhas para o dia). O abate normal de árvores é perturbado por causa da mítica aceleração do terminal "alguns nanossegundos".
 

Erro de compilação

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'
}
Parece o caso anterior https://www.mql5.com/ru/forum/1111/page1943#comment_5410554 mas não se pode esconder aqui o erro especificando T C::a = 0; // A::A( int ) está em falta
Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2017.07.06
  • www.mql5.com
Форум алго-трейдеров MQL5
 

Erro durante a execução

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

Resultado:

1>'1234
2>'1234'

 

Erro de compilação

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

O oposto era esperado

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. Se a estrutura B contém apenas uma linha (1) - há uma mensagem de erro
  2. Se a estrutura B contém apenas a linha (2) - nenhuma mensagem de erro
  3. O oposto era esperado

Além disso, não se esperava qualquer erro em ambos os casos (1. e 2.)

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