mql5言語の特徴、微妙なニュアンスとテクニック - ページ 124 1...117118119120121122123124125126127128129130131...247 新しいコメント Artyom Trishkin 2019.01.25 17:06 #1231 このトピックに関係のないコメントは、「ML5におけるOOP、テンプレート、マクロ、Tips and Tricks of the Trade」に移動しました。 Ilya Malev 2019.01.26 01:53 #1232 ここに掲載されたかどうかは分かりませんが、どなたかの参考になるかもしれません。パラメータ化されたクラスのメソッドを、同じ型の引数を値で取るか参照で取るかだけでオーバーロードしたい場合(構造体は参照のみ、単純型は値で渡されることがほとんど)。このようにすることができます(2番目の方法はまさに & のない variant に適用され、そうでなければ構造体による基本的な型付けはコンパイルされません)。 template<typename T> class A { public: A* operator<<(T&p){ Print("<< &",typename(T)); return &this; } template<typename F> A* operator<<(F p){ Print("<< ",typename(F)); return &this; } }; void OnStart() { double ask=Ask,bid=Bid; MqlTick mt; A<double> a1; a1<<Ask<<Bid<<ask; A<MqlTick> a2; a2<<mt; } ディスカッションはこちら Alexey Navoykov 2019.01.26 11:52 #1233 Ilya Malev:ここだったかどうか忘れましたが、どなたかのお役に立てるかもしれません。パラメータ化されたクラスのメソッドを値のみ、または参照のみでオーバーロードしたい場合(構造体は参照のみ、単純な型は値で渡されることが多い)。これは次のようにしてできます (さらに,2番目のテンプレートは & のない variant に正確に適用されます,さもなければ構造体による基本的な型付けはコンパイルされません).すると、ある構造体型のために設計されたクラスが、あらゆる種類の数値型を受け入れることができることが判明したのです。そして、それらをどうするか? Ilya Malev 2019.01.26 19:11 #1234 Alexey Navoykov:すると、ある構造体型のために設計されたクラスが、あらゆる種類の数値型を受け入れることができることが判明したのです。そして、それらをどうするか?この場合、クラスは混合型、つまり構造体と単純型の両方を対象としており、そうでなければこの構成は意味をなさない。Fで不要な型を取らないようにするには、そこにtypename(F)、sizeof(F)などのチェックを書けばよい。 Alexey Navoykov 2019.01.26 19:33 #1235 Ilya Malev:この場合、クラスは構造体と単純型の両方が混在することを想定しており、そうでなければこの構文は意味をなさない。Fで不要な型を受け付けないようにするには、そこにtypename(F)、sizeof(F)などのチェックを書けばよい。このため、適切な型を持つオーバーロードされたプライベートメソッドを作成する必要があります。 また、クラスがどのような型にも対応するものであるなら、なぜテンプレート・パラメータでパラメータ化し、混乱を引き起こすのでしょうか?Crutchには、テンプレートクラスを使わない、よりシンプルなバリエーションがありますが。 Ilya Malev 2019.01.26 19:39 #1236 Alexey Navoykov:クラスがどのような型であってもよいのであれば、なぜテンプレート・パラメータでパラメータ化し、混乱を引き起こすのでしょうか?では、どのようにすれば、パラメータ化をコミットすることなく、任意の型になりうる正しい型を取ることができるのでしょうか?型を指定せずにパラメータやフィールドを宣言することはできません。例えば、任意のデータ型に関する「ラッパー」クラスである。アレクセイ・ナヴォイコフtypenameは不要な型を受け入れることを防いでくれない )typename(F)==typename(T) と書くとプロテクトされます。 Alexey Navoykov 2019.01.26 19:52 #1237 Ilya Malev:では、パラメトリックを渡さずに、何でもありの正しい型をどうやって取得するのでしょうか?型を指定せずにパラメータやフィールドを宣言することはできません。例えば、任意のデータ型に対する「ラッパー」クラスとすることができる。では、クラスAだけでいいかというと、そのパラメータがクラスの動作に何ら関係ない場合、なぜパターンを宣言するのでしょうか。 イリヤ・マレフtypename(F)==typename(T)と書けば、それを保護してくれます。 これは本当に残酷なことです。typename コントロールをランタイムステージに...あなたのコードは何年もデバッグされなければならない Nikita Chernyshov 2019.02.04 09:12 #1238 普通のトレーリングストップを5円で調べられるところを教えてください。 Vladimir Karputov 2019.02.04 09:18 #1239 Nikita Chernyshov: 普通のトレーリングストップを5円で調べられるところを教えてください。iSAR iOsMA EA-トレイリング Nikita Chernyshov 2019.02.04 09:21 #1240 Vladimir Karputov:iSAR iOsMA EA-トレイリングありがとうございました。 1...117118119120121122123124125126127128129130131...247 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ここに掲載されたかどうかは分かりませんが、どなたかの参考になるかもしれません。パラメータ化されたクラスのメソッドを、同じ型の引数を値で取るか参照で取るかだけでオーバーロードしたい場合(構造体は参照のみ、単純型は値で渡されることがほとんど)。このようにすることができます(2番目の方法はまさに & のない variant に適用され、そうでなければ構造体による基本的な型付けはコンパイルされません)。
ディスカッションはこちら
ここだったかどうか忘れましたが、どなたかのお役に立てるかもしれません。パラメータ化されたクラスのメソッドを値のみ、または参照のみでオーバーロードしたい場合(構造体は参照のみ、単純な型は値で渡されることが多い)。これは次のようにしてできます (さらに,2番目のテンプレートは & のない variant に正確に適用されます,さもなければ構造体による基本的な型付けはコンパイルされません).
すると、ある構造体型のために設計されたクラスが、あらゆる種類の数値型を受け入れることができることが判明したのです。そして、それらをどうするか?
すると、ある構造体型のために設計されたクラスが、あらゆる種類の数値型を受け入れることができることが判明したのです。そして、それらをどうするか?
この場合、クラスは混合型、つまり構造体と単純型の両方を対象としており、そうでなければこの構成は意味をなさない。Fで不要な型を取らないようにするには、そこにtypename(F)、sizeof(F)などのチェックを書けばよい。
この場合、クラスは構造体と単純型の両方が混在することを想定しており、そうでなければこの構文は意味をなさない。Fで不要な型を受け付けないようにするには、そこにtypename(F)、sizeof(F)などのチェックを書けばよい。
このため、適切な型を持つオーバーロードされたプライベートメソッドを作成する必要があります。
また、クラスがどのような型にも対応するものであるなら、なぜテンプレート・パラメータでパラメータ化し、混乱を引き起こすのでしょうか?Crutchには、テンプレートクラスを使わない、よりシンプルなバリエーションがありますが。
クラスがどのような型であってもよいのであれば、なぜテンプレート・パラメータでパラメータ化し、混乱を引き起こすのでしょうか?
では、どのようにすれば、パラメータ化をコミットすることなく、任意の型になりうる正しい型を取ることができるのでしょうか?型を指定せずにパラメータやフィールドを宣言することはできません。例えば、任意のデータ型に関する「ラッパー」クラスである。
typenameは不要な型を受け入れることを防いでくれない )
typename(F)==typename(T) と書くとプロテクトされます。
では、パラメトリックを渡さずに、何でもありの正しい型をどうやって取得するのでしょうか?型を指定せずにパラメータやフィールドを宣言することはできません。例えば、任意のデータ型に対する「ラッパー」クラスとすることができる。
では、クラスAだけでいいかというと、そのパラメータがクラスの動作に何ら関係ない場合、なぜパターンを宣言するのでしょうか。
typename(F)==typename(T)と書けば、それを保護してくれます。
これは本当に残酷なことです。typename コントロールをランタイムステージに...あなたのコードは何年もデバッグされなければならない
普通のトレーリングストップを5円で調べられるところを教えてください。
iSAR iOsMA EA-トレイリング
iSAR iOsMA EA-トレイリング
ありがとうございました。