Erros, bugs, perguntas - página 1919

 

Pode dizer-me se o mql5 pode comentar o erro de saída durante a compilação, como no php ?

 
Anton Ohmat:

Pode dizer-me se o mql5 pode comentar o erro de saída durante a compilação, como no php ?

GetLastError()? Se não, que formato gostaria de ver?
 
Alexey Kozitsyn:
GetLastError()? Se não, qual o formato que deseja ver?

bem em php há @variable = ....

e a saída de erro é comentada - conveniente para erros simples em tempo de compilação (por exemplo, para inconsistências de tipo durante a conversão para string)

 
Anton Ohmat:

bem, em php há @variable = ....

e o erro de saída é comentado - conveniente para erros simples de tempo de compilação (por exemplo, para inconsistências de tipo durante a conversão para string)

Em mql tem de verificar o código de erro explicitamente (em tempo de execução), enquanto em tempo de compilação aparecerá um aviso com um possível erro de conversão do tipo.
 
Alexey Kozitsyn:
Em mql tem de verificar o código de erro explicitamente (em tempo de execução), e em tempo de compilação aparecerá um aviso, se houver um possível erro na conversão do tipo.
Por isso, quero desactivar parcialmente a saída do erro no momento da compilação.
 
Anton Ohmat:
É assim que eu quero desactivar parcialmente a saída selectiva e de erro em tempo de compilação.
Não há necessidade de desactivar nada. Não ocorrerão erros se os tipos forem correctamente mapeados uns aos outros.
 
Anton Ohmat:
Por isso, quero desactivar parcialmente a saída do erro no momento da compilação.
Para evitar ver erros e avisos no momento da compilação, basta corrigi-los no código. Não se engane a si próprio, quer trabalhar com dinheiro.
 

Ambiguidade

struct A {
        int f() { return B::i; } //error: 'i' - protected member access error
};
struct B : A {
protected: //(*) или например private:
        static int i;
};
int B::i;
Ao mesmo tempo, sem protecção: (*) - compila sem erros

Esperado: mesmo comportamento com e sem protecção: (*) corda

Opcional: C++ não compila os dois casos

 
A100:

Ambiguidade

Ao mesmo tempo, sem a corda protegida: (*) - compila sem erros

Esperado: O mesmo comportamento com e sem protecção: (*) cordel

"Predecessor" não precisa de ver campos protegidos/privados.

Se quiser que B::f() seja definido em A::f(), terá de inventar algo neste caso.
 
A100:

Opcional: C++ não compila os dois casos

Se acrescentar

estrutura B;

no início do código, um dos dois casos deve ser compilado. talvez o compilador mql seja tão inteligente que acrescente a declaração antecipada em falta?

Razão: