エラー、バグ、質問 - ページ 1137

 
A100:

発表内容

は、クラス A が const メソッドしか持っていないことを意味するものではありません。f()自身ではconstメソッドしか呼び出せないということでしかない

なんとなく意識はしているんですけどね。問題は、Compareがバーチャルであり、実際にはMY PERSONALの比較機能であることです。以前はMY関数で非静的メソッドを 使う権利があったのですが、今はその能力を奪われています。

標準ライブラリのアルゴリズムでは呼び出されないので、constなしの自作Compareは使えません。

 
C-4:
まあ、ミュータブルに頼むという選択肢もありますが...。でも、そうならないでしょうね。
 
A100:

静的ポインターは以前は使用できませんでした。以前は宣言時にのみエラーが発生していましたが、現在は初期化時に発生します。

そうでなければ、複雑な型の 外部変数を使えるようになるわけで、それは不可能だと繰り返し議論されてきた。

うーん、この点を見落としていたようです。それなら、ポインターを完全になくせばいいんです。
 
A100:

静的ポインターは以前は使用できませんでした。以前は宣言時にのみエラーが発生していましたが、現在は初期化時に発生します。

そうでなければ、複雑な型の 外部変数を使う可能性が出てくるが、それは不可能だと先ほどから繰り返し議論している。

こんにちは。私のコードに以下のような行があるのを発見しました。

static Settings* set;

以前はうまくコンパイルできていたのに。今はそうではありません。

 
Tron_KZ:
これは、mql5のドキュメントにある例です。そのページへのリンクは こちらです。そして、以下がこのコードです。
メッセージありがとうございます、コンパイラのエラーです - 修正しました。
 

C-4:

...はうまくコンパイルできていました。今はそうではありません。

メッセージありがとうございます、修正しました。
 
そこで私は、この問題を抜本的に解決しました。標準ライブラリから 約1000個のconstキーワードを全て削除。アプリケーションは問題なく動作し、この言葉の持つアタリマエのことが改めて証明された。
 
TheXpert:

これは、実は正しい初期化です。クラス内のスタティックは、スタティックであるオブジェクトとは何の関係もない。

そして、コンパイルできないのは、本当にバグのようです。

サービスデスクは迅速に対応した。確かにエラーがあったとのこと。すでに修正済みだそうです。
 

StringGetCharacter(.

以下はそのコードですが、何も出力されません。Sleep(0)やコンパイラが投げない空の文を開くと、動作して文字コードが出力されます。

string  myString="И опыт, сын ошибок трудных"; void OnStart()   {    string word=""; // проходим по всем символам      for(int i=0;i<StringLen(myString);i++)      {

       ushort c=StringGetCharacter(myString,i);       //  Sleep(0);

      if(c>=1040 && c<=1103) Print("Русская буква! Код->",c);      }   }


 
Snaf:

StringGetCharacter(.

以下はそのコードですが、何も出力されません。Sleep(0)やコンパイラが投げない空の文を開くと、動作して文字コードが出力されます。

投稿ありがとうございました!エラーは修正されました。