template<typename T>
T plus( T a, T b ) { return ( a + b ); }
template<typename T>
int f( T& array[], int i )
{
return ( plus( ::ArraySize( array ), i ) );
}
voidOnStart()
{
int a[ 2 ];
int b = 1;
Print( f( a, b ));
}
Возвращаемое значение
При успешном выполнении функция возвращает количество всех элементов, содержащихся в массиве после изменения размера;
в противном случае возвращает -1 и массив не меняет размеры.
昨日、職場のパソコンをWindows XP/32からWin7/64に入れ替えました。それ以前は、職場のMT4で普通にトレードして、ストレージからコードを更新して、ストレージに戻していました。これで7でMT4が使えるようになり、プロキシデータも新しくなり、コミュニティーのユーザー名とパスワードも登録されました。問題は、MetaEditor 4とコードの同期ができないことです。プロファイルで「ストレージを接続する」にチェックを入れています。
今日、コミュニティのパスワードを変更し、別のフォルダに2つ目のMT4をインストールし、プロキシを追加し、新しいログインとパスワードを設定し、取引は行っています。他にどこが問題なのか、アドバイスをお願いします。
昨日、職場のパソコンをWindows XP/32からWin7/64に入れ替えました。それ以前は、職場のMT4で普通にトレードして、ストレージからコードを更新して、ストレージに戻していました。今、私は7で私のmt4を使用することができます、私のプロキシアカウントは新しいです、コミュニティアカウントとパスワードも新しいです。問題は、MetaEditor 4とコードの同期ができないことです。プロファイルで「ストレージを接続する」にチェックを入れています。
今日、コミュニティのパスワードを変更し、別のフォルダに2つ目のMT4をインストールし、プロキシを追加し、新しいログインとパスワードを設定し、取引は行っています。他にどこが問題なのか、アドバイスをお願いします。
MT4ターミナルを管理者権限で再インストールし、MT4ターミナルを管理者権限で起動します。この方法でVista/8/8.1のMT4は、ストレージとコードのあるフォルダの両方を見、すべてのチャート設定を保存します。
なるほど。ここでこっそりFXをやっているのですが、管理者は(できれば)知らないので、管理者権限にしがみつくことはできないでしょう。問題は致命的ではなく、フラッシュドライブで作業します。分かりやすい説明ありがとうございます。
それは、新しいビルドで発生します。
おじゃましますヘルプは無音で、そのような変更は計算に影響を与える可能性があるのに、なぜ変更したのでしょうか?
コンパイルエラー、ビルド969Because新しいビルドで、誰がそれによって悩まされた?
ヘルプは無音で、そのような変更は計算に影響を与える可能性があるのに、なぜ変更するのか!しかも、誰も気づかない。
ArraySizeは変更されたが、ArrayResizeは 変更されていないことが判明 - 変更された?根本的な違いは何でしょうか?
その差はこうだ
Возвращаемое значение При успешном выполнении функция возвращает количество всех элементов, содержащихся в массиве после изменения размера; в противном случае возвращает -1 и массив не меняет размеры.
ArrayResizeの戻り値の型を変更できないことが判明('-1'のため)。さて、ArrayResize型を変更できないのであれば、ArraySize型を変更する必要はないのでは?
という状況です。EURNZDのExpert Advisorを数年間稼働させる必要があります。すでにそのシンボルの履歴をすべて削除し、再度読み込みましたが、結果は同じです。
HistoryCenter: 5240 bars imported in 'EURNZD60'
まだ2013年9月です。この端末では、チャートの巻き戻しはできません。履歴センターを開き、「ダウンロード」をクリックすると、「シンボル EURNZDの新しいデータはありません」というメッセージが表示されます。書き方が間違っていても構わないのですが、どうすれば見積もりが取れるのでしょうか?私のブローカーは本当に履歴がないのでしょうか?他の記号で問題に出会ったことがないので、わからない。
P.S. 以上、質問を削除しました。EURNZDを諦めてGBPAUDをダウンロードしたら、突然この奇跡の技術でEURNZDの新しいデータも見られるようになったのです。同じような境遇にある人は、「タンバリンと踊る」ということを忘れずに、端末をいろいろな方法でしつこく引っ張る必要があります。;-)
P.P.S. 今度はAUDNZDにまた同じことが起こりました。突然データが表示されるまで、バカみたいに何度も連続してダウンロードをクリックしなければならなかった。
もちろん、配列のサイズを表すにはuint の方がスマートです。)
文字列の長さを 負にすることはできませんが、長さ/サイズを表すにはintを使う方が理にかなっています。その理由は、関数(検索、計算など)が一般に長さ/サイズ、または失敗した場合に-1を返すため、エラー処理がずっと簡単になるからです。
コンパイルエラー、ビルド969 ...ヘルプは無音で、そのような変更は計算に影響を与える可能性があるのに、なぜ変更するのですか? しかも、誰もそれに気づかないでしょう。
ArraySizeについては、先日MQL4で同様の問題を提起しました(https://www.mql5.com/ru/forum/152471)。私が理解する限り、MQL5でも全て同じはずです。
おそらく、私のメッセージはそこで考慮されたのでしょう :) この問題に関して、サービスデスクは、原因はオプティマイザの不正な動作であり、新しいビルドでタイプをuintに変更すると回答しています。ちなみに、ArrayResizeもuintに変更するそうです。
エラー時の値-1については、以下の理由で問題ないはずです。(int)-1 = (uint)-1 = 0xFFFFFFFFFF = UINT_MAX,つまりビット表現は同じです。 しかし比較演算は異なる結果になります。
が不正確になります。