エラー、バグ、質問 - ページ 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;
同時に、保護されて いない:(*) - エラーなしでコンパイルします。

期待すること:protected: (*)文字列の有無に関わらず同じ動作。

オプション:C++は両方のケースをコンパイルしない

 
A100:

アンビギュイティ

同時に、protected: (*)文字列がない場合は、エラーなしでコンパイルされます。

期待される結果:protected: (*)文字列の有無に関わらず同じ動作。

"Predecessor "はprotected/privateフィールドを見る必要がない。

B::f()をA::f()で定義したい場合、この場合、何か工夫が必要になります。
 
A100:

オプション:C++は両方のケースをコンパイルしない

を追加した場合

構造体B

コードの冒頭で、2つのケースのうちどちらかがコンパイルされるはずです。もしかしたら、mqlコンパイラはとても賢くて、足りないforward宣言を自分で追加しているのでしょうか?

理由: