Bug de compilador com parâmetro de modelo = vazio* - página 9

 
A100:

O aviso foi emitido somente porque as prioridades são diferentes na MQL5. Não porque ...

Assim, os Desenvolvedores corrigiram seus erros anteriores. não mais do que isso

Há algo de errado com as prioridadesaqui também?

 
fxsaber:

Há algo de errado com as prioridadesaqui também?

Eles são diferentes na MQL5 e na antiga MQL4. Eu pensei que você já tinha lido que
 
A100:
Eles são diferentes na MQL5 e na antiga MQL4. Eu pensei que você já tinha lido que

Uma lista de diferenças, por favor.

 
fxsaber:

Uma lista de diferenças, por favor.

Você não pode fazer você mesmo? Clique nos links acima?

MQL5 e nova MQL4

Operação

Descrição

Ordem de execução

&&

E operação lógica

Da esquerda para a direita

||

OU operação lógica

Da esquerda para a direita


Antiga MQL4

||

OU operação lógica

Da esquerda para a direita

&&

E operação lógica

Da esquerda para a direita

Quanto maior a prioridade de um grupo de operações, maior é a sua colocação na mesa.

Seu exemplo:

bool a = r && g || b;
 
Ilya Malev:
Seria mais conveniente se o compilador se oferecesse para organizar automaticamente os parênteses "corretamente", como faz o Excel quando você escreve uma fórmula incompleta.

Em geral, existem linguagens de programação especiais para os amantes de parênteses - LISP. Aqui está um trecho de um mecanismo de busca: "Este estilo é um pouco como a linguagem LISP". Mas na LISP, o grande número de parênteses é causado pela falta de prioridade das operações".

 
A100:

Em geral, para os ventiladores de suportes existem linguagens de programação especiais - Simula, LISP. Aqui está um trecho de um mecanismo de busca: "Este estilo é um pouco como a linguagem LISP". Mas na LISP, o grande número de parênteses é causado pela falta de prioridade das operações".

É bom que o compilador avise sobre algo que os desenvolvedores mudam repentinamente na lógica do passado. Se os mesmos avisos fossem dados em chamadas de função como ArrayMaximum após a migração do código do mql4, eu teria economizado muito tempo e nervosismo em meu tempo (eles trocaram livremente parâmetros de um tipo, se você não estiver ciente disso).

 
Ilya Malev:

É bom para o compilador adverti-lo sobre algo que os desenvolvedores mudam repentinamente na lógica do passado.

Eu não me importo. Basta deixar esses avisos permanecerem no antigo MQL4.

 
Quanto aos "programadores normais lembram-se das prioridades das operações C++ como a tabela de multiplicação", eu pessoalmente só me lembrei mais ou menos dela depois que comecei a sobrecarregar os operadores, e antes disso nunca a abri de forma alguma. Nem todos os codificadores mql são profissionais, e os desenvolvedores do terminal e a linguagem para os comerciantes precisam levar isso em conta, não menos importante.
 
Ilya Malev:

Se os mesmos avisos fossem emitidos em chamadas de função como ArrayMaximum após a transferência do código do mql4, eu teria economizado muito tempo e nervosismo em meu tempo (eles trocaram livremente os mesmos parâmetros, se você não estiver ciente)

Bem, elas não são dadas para fora. Isto é o que torna a codificação seletiva tão ruim - cria uma ilusão de que o compilador cuidará de qualquer coisa (portanto, ou é tudo ou nada).

 
Ilya Malev:
Nem todos os codificadores mql são profissionais, e os desenvolvedores do terminal e a linguagem para os comerciantes precisam levar isso em conta, não menos importante.

Exatamente! Nunca um profissional, tais avisos já me ajudaram 100 vezes.

Razão: