Erros, bugs, perguntas - página 1495

 
Karputov Vladimir:
Parar de fazer perguntas em nome de assinantes imaginários (ou fictícios). Se um assinante tem uma pergunta, que a faça ele próprio. Caso contrário, considerá-lo-ei como publicidade do sinal.
O meu sinal não precisa de publicidade há muito tempo. Tento compreender os aspectos técnicos do serviço que utilizo. No entanto, eu sou o primeiro a ser abordado.
 
Artem Prischepa:
O meu sinal já não precisa de publicidade há muito tempo. Tento compreender os aspectos técnicos do serviço que utilizo por mim próprio. No entanto, eu sou o primeiro a ser abordado.
Nesse caso, estudar as perguntas daFAQ sobre o serviço de Sinais(primeiro posto).
 

É um insecto ou a minha má compreensão da língua:

void Func( int & Tmp )
{
  return;
}

void OnStart( void )
{
  int Tmp1, Tmp2;
  
  Func((0 > 1) ? Tmp1 : Tmp2); // '?' - parameter passed as reference, variable expected 
    
  return;
}
 
zaskok3:

Isto é um insecto ou a minha má compreensão da língua:

O resultado de uma expressão ternária é o conteúdo da variável Tmp1 ou variável Tmp2.

E a função Func não deve passar o resultado da expressão, como você fez, mas sim uma referência

 

Como é que lido com este problema?

Após a instalação do Expert Advisor no gráfico que constrói os gráficos RENCO, o terminal fica pendurado permanentemente.

Reiniciar o terminal não ajuda. Eu apaguei o Perito da pasta - não ajudou!

O que fazer?

win7/64 mt4/950

 
Slawa:

O resultado de uma expressão de operação ternária é o conteúdo da variável Tmp1 ou variável Tmp2.

É o conteúdo e não a variável em si? Foi provavelmente aqui que apareceu o meu pobre entendimento. Obrigado!

Tentei a alternativa ternária e não funcionou:

//  Func((0 > 1) ? Tmp1 : Tmp2); // '?' - parameter passed as reference, variable expected
  
  // Так не пашет
  (0 > 1) ? Func(Tmp1) : Func(Tmp2); // 'Func' - expression of 'void' type is illegal
  
  // Так, конечно, работает
  if (0 > 1)
    Func(Tmp1);
  else
    Func(Tmp2);

O Ternary aqui está sem missão.

 
zaskok3:

Exactamente o conteúdo, não a variável em si? Aparentemente, foi aqui que o meu pobre entendimento apareceu. Obrigado!

Experimentei a alternativa ternária, não funcionou:

Ternário aqui sem missão, no entanto.

O resultado de uma operação ternária é ou o resultado da primeira expressão ou o resultado da segunda expressão, dependendo do resultado da expressão condicional.

O resultado deve ser atribuído algures (ou ser um membro de outra expressão) porque é valor

Isto é mais ou menos o mesmo que simplesmente escrever

int a=1;
int b=2;

a + b;
 

Slawa:

O resultado deve ser atribuído algures (ou ser um membro de outra expressão) porque é um valor

Isto é mais ou menos o mesmo que apenas escrever

Se eu substituir o Func vazio por int Func, então de facto o resultado é o mesmo. É uma chatice com vazio. Será apenas por causa da frase destacada?
 
zaskok3:
Se eu substituir o Func vazio por int Func, então o resultado é de facto o mesmo. O vazio é uma chatice. Será apenas por causa da frase destacada?
Sim
 
Slawa:
Sim
Já está. Obrigado pela educação!