class C {};
template<typename V>
void process(V value)
{
}
/* если добавить, компилируется
template<typename V>
void process(V& value)
{
}
*/void process(C *ptr)
{
}
voidOnStart()
{
C c;
process(&c); // pointer, ok
process(c); // 'process' - no one of the overloads can be applied to the function call test2.mq5 32 7
}
このように単純な型とポインタを別々に処理する必要がある場合に、「オーバーロードされた関数へのあいまいな呼び出し」エラーを解決するためのきちんとした方法があれば教えてください。
ここでコンパイラは、(BaseFunctor *)もVに対応すると見なす。メソッドを呼び出す際に明示的に型変換を 指定することもできますが、醜いです。テンプレート関数でパラメータを参照で取る場合、定数などの一時的な値を渡すことはできません(変数が必要です)。
を参照するオーバーロードを追加してみる。
オブジェクト参照やポインタ参照(存在しないようです)によるオーバーロードのことでしょうか?分散された新しいインスタンスへのポインタをオブジェクトの参照に滑り込ませる方法がわからない。
ポジションを閉じる 際のサイクルが正しくありません。逆回転をさせる。
ポジションを閉じる 際のサイクルが正しくありません。逆回転をさせる。
やってみますが、同じ方向の全ての利益確定ポジションを探すのであれば、ループの仕方は関係ないのでは?とにかく全部見て、必要なものを閉じる。
オブジェクト参照やポインタ参照(存在しないようです)によるオーバーロードのことでしょうか?分散インスタンスへのポインタをオブジェクト参照に滑り込ませる方法がわからない。
オブジェクトリファレンスで
こんな感じで持っています。
オブジェクトを参照しながら
こんな感じで持っています。
まだ、そんなに簡単にはいきませんね、すみません;-)。クラスは継承のために使用されます。
BaseFunctorを作ることができれば、うまくいきますね、はい。でも、そうではないんです。
こんにちは。
エラーのご報告 ありがとうございました
写真の問題点を詳しく教えてください。
現時点では問題なし
以下のコードは、"牖漠摲牥湩 "と出力します。
テキストテストが出力されるはずです
Files' FilesTest' Files フォルダにあります。
関数は、ハンドルは正しく、それは1であり、すぐにGetLastErrorは エラー5008間違ったハンドル....と言います。
どうしたらいいのでしょうか?
MT5(ビルド2316)の非常に厄介なバグがあり、今後の開発を阻害しています。
内部型 "C "の複雑なラップオブジェクトを何度も作成したが、結局は全く別のデータ型、"B"、"int"、何でもいいのだが......。
問題はコードにあるのではなく、MQLコンパイラにあることを発見し理解するのに多くの時間と労力を要しました。(C++ オンライン: https://onlinegdb.com/H1R1fR5ML)
おそらく、テンプレート・クラス「A」の内部クラス「internal_wrapper」を異なるデータ型(int、B*、B、C)のパラメータとして渡す場合のコンパイル時のコード生成時のテンプレート・クラス「main_wrapper」キャッシュの働きに問題があるものと思われます。
最初のデータ型は、テンプレート・クラス「main_wrapper<A<TEMPLATE_TYPE>::internal_wrapper>」によって作られ、このデータ型は将来、テンプレートの全てのオブジェクトでさらに使われることになります。
また、テンプレート・クラス・コードの生成に関するバグについては、後述します。
投稿ありがとうございます、修正しました
以下のコードは、"牖漠摲牥湩 "と出力します。
テキストテストが出力されるはずです
Files' FilesTest' Files フォルダにあります。
関数はハンドルが正しいと言い、それは1であり、すぐにGetLastErrorはエラー5008 Wrong handle ...と言った。
どうしたらいいのでしょうか?
ファイルのエンコーディングは?