Erros, bugs, perguntas - página 1922

 

Erro de compilação.

#define  MACRO( x )      ((x) + 2)
struct A {
        A( int, int ) {}
};
template<typename T>
struct B {
        static A a;
};
template<typename T>
A B::a( MACRO(1), 2 ); //error: '(' - declaration without type
E semmodelo<nome datilografado T> não há problema... qual é a diferença?
 
A100:

Erro de compilação

E semmodelo<nome datilografar T> - ok... qual é a diferença?

São os parênteses extra na macro.

struct A {
        A(int) {}
};

template<typename T>
struct B {
        static A a;
};
template<typename T>
A B::a((0));

Se os remover, compilará.

 
fxsaber:

São os parênteses extra na macro.

Se os remover, compilará.

Se remover o template<typename T>, ele também compilará (mesmo com parênteses)
 
A100:

Os ficheiros .log %AppData%\MetaQuotes\Terminal\...MQL5\Logs\YYYYYYMMDD.log não são actualizados prontamente

A actualização só acontece: depois de reiniciar o terminal ou depois de seleccionar View menu. Se não reiniciar ou clicar em Pré-visualizar, o ficheiro correspondente estará vazio.

Funcionava bem (mesmo o ficheiro YYYYYMMDD.log aberto no MetaEditor era automaticamente actualizado em poucos segundos após a exibição das linhas no separador Especialistas) e nenhuma acção extra não óbvia tinha de ser executada

IMHO, sempre foi assim se o tamanho do registo for pequeno (havia informação algures no fórum sobre o tamanho, em que começa a descarga de cache). Tive sempre de invocar o menu de contexto para rubricar o autoclismo no disco.

 
Stanislav Korotky:

IMHO, este tem sido sempre o caso se o tamanho do registo for pequeno (havia informação algures no fórum sobre o tamanho em que a cache começa a reiniciar). Tive sempre de chamar o menu de contexto para rubricar o autoclismo no disco.

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!?!]

é sobre o separador Especialistas e a pasta MQL5\Logs

 
A100:
Se remover o template<typename T> ele também compilará (mesmo com parênteses)

Bem, é uma frase da categoria "se remover tudo, ele compilará".

Estava a falar sobre as causas do erro exactamente com o modelo. A razão é o comportamento incorrecto do compilador ao analisar uma construção de modelo na situação com parênteses adicionais. Qualquer pessoa que tenha implementado os modelos pode ver imediatamente onde está o problema e por que razão ele ocorre.

 

Olá pessoal, tenho uma tarefa para mostrar dois indicadores iMACD_1 cor, linha de sinal e iMACD_2 numa janela separada, aqui está parte do código:

Fiz indexação

   SetIndexBuffer(0,MACDBuffer_1,INDICATOR_DATA);
   SetIndexBuffer(1,buffer_color_histogram,INDICATOR_COLOR_INDEX);
   SetIndexBuffer(2,Signal_Line,INDICATOR_DATA);
   SetIndexBuffer(3,MACDBuffer_2,INDICATOR_DATA);

Tenho indicações de indicadores

 handle_1=iMACD(name,period,fast_ema_period,slow_ema_period,signal_period,applied_price); 
 handle_2=iMACD(name_,period_,fast_ema_period_,slow_ema_period_,signal_period_,applied_price_);

(E depois maravilhas)))

Teoricamente, deve funcionar para exibir indicadores

      if(CopyBuffer(handle_1,0,0,values_to_copy,MACDBuffer_1)<0)return(0);
      if(CopyBuffer(handle_1,1,0,values_to_copy,Signal_Line)<0) return(0);
      if(CopyBuffer(handle_2,3,0,values_to_copy,MACDBuffer_2)<0) return(0);

Não funciona!

Mas funciona desta forma

      if(CopyBuffer(handle_1,0,0,values_to_copy,MACDBuffer_1)<0)return(0);
      if(CopyBuffer(handle_1,1,0,values_to_copy,Signal_Line)<0) return(0);
      if(CopyBuffer(handle_2,0,0,values_to_copy,MACDBuffer_2)<0) return(0);

Funciona, não consigo perceber qual é o problema com os números de amortecedores indicadores. Obrigado de antemão!!!

 

Erro de compilação.

template<typename T>
struct A {
        static int a1;
        static int a2;
};
template<typename T>
int A::a1;
template<typename T>
int A::a2;
struct B : A<int> {
        void f1() { Print( A<int>::a1 ); } //unresolved static variable 'A<int>::a1'
        void f2() { Print(         a2 ); } //unresolved static variable 'B::a2'
};

E semmodelo<nome tipográfico T> - fino

 
vitrix:

Olá pessoal, tenho uma tarefa para mostrar dois indicadores iMACD_1 cor, linha de sinal e iMACD_2 numa janela separada, aqui está parte do código:

Fiz indexação

Tenho indicações de indicadores

(E depois maravilhas)))

Teoricamente, deve funcionar para exibir indicadores

Não funciona!

Mas funciona desta forma

Funciona, não consigo perceber qual é o problema com os números de amortecedores indicadores. Obrigado de antemão!!!


Da próxima vez, lembre-se de comoinserir o código no correio(o seu correio I corrigido).

Segundo: o indicador iMACD tem apenas dois amortecedores: "0" - LINHA_PRINCIPAL, "1" - LINHA_SINAL. Assim, para obter valores indicadores, o aspecto será o seguinte:

   CopyBuffer(handle_iMACD,MAIN_LINE или SIGNAL_LINE,index - номер буфера с которого начинаем копирование,values_to_copy,buffer)
 
A100:

Erro de compilação.

E semmodelo<nome tipográfico T> - fino

template<typename T>
struct A {
        static int a1;
        static int a2;
};
template<typename T>
int A::a1 = 0;
template<typename T>
int A::a2 = 0;
struct B : A<int> {
        void f1() { Print( A<int>::a1 ); } //unresolved static variable 'A<int>::a1'
        void f2() { Print(         a2 ); } //unresolved static variable 'B::a2'
};