错误、漏洞、问题 - 页 1919

 

你能告诉我mql5在编译过程中是否能像php一样对错误输出进行评论?

 
Anton Ohmat:

你能告诉我mql5在编译过程中是否能像php中那样对错误输出进行评论?

GetLastError()?如果没有,你希望看到什么格式?
 
Alexey Kozitsyn:
GetLastError()?如果没有,你希望看到什么格式?

在php中,有 @variable = ....

并对错误输出进行了注释--便于在编译时处理简单的错误(例如,在转换为字符串时的类型不一致)。

 
Anton Ohmat:

嗯,在php中,有@variable = ....

并对错误输出进行注释--便于处理简单的编译时错误(例如,在转换为字符串时的类型不一致)。

在mql中,你必须明确地检查错误代码(在运行时),而在编译时,会弹出一个警告,说明可能存在类型转换 错误。
 
Alexey Kozitsyn:
在mql中,你必须明确地检查错误代码(在运行时),而在编译时,如果类型转换 中可能存在错误,就会弹出警告。
因此,我想在编译时部分地禁用错误输出。
 
Anton Ohmat:
这就是我想在编译时部分禁用选择性、错误输出的方法。
没有必要禁用任何东西。如果类型之间的映射正确,就不会发生错误。
 
Anton Ohmat:
因此,我想在编译时部分地禁用错误输出。
为了避免在编译时看到错误和警告,你只需要在代码中修复它们。不要欺骗自己,你想和钱打交道。
 

含糊不清

struct A {
        int f() { return B::i; } //error: 'i' - protected member access error
};
struct B : A {
protected: //(*) или например private:
        static int i;
};
int B::i;
同时,在没有保护的 情况下: (*) - 编译时没有错误

预期:有保护 和无保护的 行为都一样:(*)字符串

可选:C++不编译这两种情况

 
A100:

含糊不清

同时,如果没有protected: (*) 字符串--它的编译没有错误。

预期:有保护 和无保护的 行为都一样:(*)字符串

"前任 "不需要看到受保护/私有的字段。

如果你想让B::f()被定义在A::f()中,在这种情况下,你将不得不发明一些东西。
 
A100:

可选:C++不编译这两种情况

如果你加入

结构B;

在代码的开头,两种情况中的一种应该被编译。也许mql编译器很聪明,它自己添加了缺少的前向声明?