MT5への願い - ページ 103 1...96979899100101102103104105106107108109110...117 新しいコメント Ilyas 2012.11.19 13:19 #1021 A100:ME5ではコンパイル時にエラーが出ますが、私としては不当だと思います。 フェアポイント - そうします。 A100 2012.11.25 10:21 #1022 ENUM_XXXという形式の定義済みの列挙型を、現在はデフォルトで0番になっていますが、実際に1番にしたいのです。enum ENUM_ORDER_TYPE { ORDER_TYPE_BUY, ORDER_TYPE_SELL, ... }; はずenum ENUM_ORDER_TYPE { ORDER_TYPE_BUY = 1, ORDER_TYPE_SELL, ... }; 理由は以下の通りです。一例です。MqlTradeRequest request { ... ENUM_ORDER_TYPE type; ... } コードのどこかでrequest.typeの値を解析したときに0になると、初期化されていないのか、初期化されているのかわからなくなる。 request.type = ORDER_TYPE_BUY; これは、ENUM_ XXXという形式のRadioButtonに相当する定義済みの列挙型のほとんどで、現状を正しく処理するためには不合理なほどの複雑 さが必要です Renat Fatkhullin 2012.11.25 10:34 #1023 残念ながら、番号付けをゼロから行う他の言語との互換性を維持するために、これは不可能です。 Yedelkin 2012.11.25 11:57 #1024 Renat: 残念ながら、ゼロから始まる番号付けを行う他の言語との互換性を維持するために、これは不可能です。 定義済みの列挙型の最初のメンバーとして、中立的な識別子を書くことを妨げるものは何ですか?例えば、こんな感じです。enum ENUM_ORDER_TYPE { ORDER_TYPE_undefined, ORDER_TYPE_BUY, ORDER_TYPE_SELL, ... };ゼロからの番号付け」も保存され、初期化されていない変数も簡単に評価できるようになる。 Renat Fatkhullin 2012.11.25 12:33 #1025 Yedelkin:定義済みの列挙型の最初のメンバーとして、中立的な識別子を書くことを妨げるものは何ですか?例えば、こんな感じです。また、すでにオリジナルの列挙型のセットを使っている他の人たちのことを考えると?これは、サーバー群全体が困惑した表情を浮かべたのは言うまでもない。一般に、質問の仕方が正しくない。開発者が怠慢になって、その世界そのものを自壊させることで、他の世界に合わせることを強要してはならない。 Yedelkin 2012.11.25 12:48 #1026 Renat: また、すでにオリジナルの列挙型のセットを使っている他の人のことを考えたら? さて、「他の人について」、もう一度考えてみましょう。名前付き定数 識別子は何のためにあるのですか?- 正しくは、これらの識別子を使用するためです。また、これらの識別子を使用するために、列挙型のメンバに どのような具体的な値が割り当てられているかを絶対に知っておく必要はない。それとも、有能なプログラマはenumメンバの デフォルト値を見つける代わりに識別子を使い、そのデフォルト値に基づいてチェックを行うことを想定しているのでしょうか?レナート :これは、サーバー群全体の景観を戸惑わせたことは言うまでもありません。つまり、提案そのものを実現するのは難しいことではないのですね。レナート :実はこの質問、間違っているんです。開発者は怠惰にならず、まさにこの世界を自滅させることによって、他の世界を自分に合わせることを強いるべきです。このスレッドの作者は、自分の怠惰で他人の世界を破壊するつもりはなかったのです。具体的な改善提案をしてくれただけです。そして、ゼロ値が過負荷であることが判明したと説明した。 A100 2012.11.25 12:55 #1027 enum名要素のスコープとして、少なくともclassを導入したい。 void test1() { enum ENUM_1 { ELEM1 }; } void test2() { enum ENUM_2 { ELEM1 }; } //ошибка class A { enum ENUM_A { ELEM1 }; }; class B { enum ENUM_B { ELEM1 }; //ошибка }; クラスの理由:ライブラリ(サードパーティを含む)や定義済みの名前と予期せず衝突する可能性があるため、ユニークな名前を考えなければならない。また、SL、TP、PRICEなどのenum要素は、競合の心配なく、複数のクラスで同時に似たような名前を使用することができます。 機能の根拠:重要ではない、しかし同時に --- 2012.11.25 12:57 #1028 A100:enum-named要素に対するスコープを導入したい クラスの理由:ライブラリや定義済みの名前と予期せず衝突する可能性があるため、ユニークな名前を考えなければならない。また、SL、TP、PRICEなどのenum要素に類似した名前を複数のクラスで同時に使用しても、衝突の心配はありません。 機能の根拠:重要ではない、しかし同時に C++ではどうなんでしょう? A100 2012.11.25 12:58 #1029 sergeev: でも、C++ではどうなんだろう? 脚はそこから生まれるというパラドックスなのですが、今になって(制約がある中で)、なぜそこですべてが行われるのかが理解できるようになりました :) もちろん、すべてのクラスに一意な名前を付けるという方法もありますが、大規模なプログラム、特に一般的な使用を目的としたライブラリでは、このオプションはありません。 Yedelkin 2012.11.25 13:04 #1030 A100: ラジオボタンに相当するENUM_XXX形式の定義済み列挙型は、現在デフォルトで0番になっていますが、1番にしたいと思います。 これを試してみてください("初期化 "の場合)。 WRONG_VALUE。定数は暗黙のうちに任意のenum 型にキャストすることが できる。 -1 1...96979899100101102103104105106107108109110...117 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ME5ではコンパイル時にエラーが出ますが、私としては不当だと思います。
ENUM_XXXという形式の定義済みの列挙型を、現在はデフォルトで0番になっていますが、実際に1番にしたいのです。
はず
理由は以下の通りです。一例です。
コードのどこかでrequest.typeの値を解析したときに0になると、初期化されていないのか、初期化されているのかわからなくなる。
request.type = ORDER_TYPE_BUY;
これは、ENUM_ XXXという形式のRadioButtonに相当する定義済みの列挙型のほとんどで、現状を正しく処理するためには不合理なほどの複雑 さが必要です
定義済みの列挙型の最初のメンバーとして、中立的な識別子を書くことを妨げるものは何ですか?例えば、こんな感じです。
ゼロからの番号付け」も保存され、初期化されていない変数も簡単に評価できるようになる。
定義済みの列挙型の最初のメンバーとして、中立的な識別子を書くことを妨げるものは何ですか?例えば、こんな感じです。
また、すでにオリジナルの列挙型のセットを使っている他の人たちのことを考えると?これは、サーバー群全体が困惑した表情を浮かべたのは言うまでもない。
一般に、質問の仕方が正しくない。開発者が怠慢になって、その世界そのものを自壊させることで、他の世界に合わせることを強要してはならない。
さて、「他の人について」、もう一度考えてみましょう。名前付き定数 識別子は何のためにあるのですか?- 正しくは、これらの識別子を使用するためです。また、これらの識別子を使用するために、列挙型のメンバに どのような具体的な値が割り当てられているかを絶対に知っておく必要はない。それとも、有能なプログラマはenumメンバの デフォルト値を見つける代わりに識別子を使い、そのデフォルト値に基づいてチェックを行うことを想定しているのでしょうか?
つまり、提案そのものを実現するのは難しいことではないのですね。
このスレッドの作者は、自分の怠惰で他人の世界を破壊するつもりはなかったのです。具体的な改善提案をしてくれただけです。そして、ゼロ値が過負荷であることが判明したと説明した。
enum名要素のスコープとして、少なくともclassを導入したい。
クラスの理由:ライブラリ(サードパーティを含む)や定義済みの名前と予期せず衝突する可能性があるため、ユニークな名前を考えなければならない。また、SL、TP、PRICEなどのenum要素は、競合の心配なく、複数のクラスで同時に似たような名前を使用することができます。
機能の根拠:重要ではない、しかし同時に
enum-named要素に対するスコープを導入したい
クラスの理由:ライブラリや定義済みの名前と予期せず衝突する可能性があるため、ユニークな名前を考えなければならない。また、SL、TP、PRICEなどのenum要素に類似した名前を複数のクラスで同時に使用しても、衝突の心配はありません。
機能の根拠:重要ではない、しかし同時に
でも、C++ではどうなんだろう?
脚はそこから生まれるというパラドックスなのですが、今になって(制約がある中で)、なぜそこですべてが行われるのかが理解できるようになりました :)
もちろん、すべてのクラスに一意な名前を付けるという方法もありますが、大規模なプログラム、特に一般的な使用を目的としたライブラリでは、このオプションはありません。
これを試してみてください("初期化 "の場合)。
WRONG_VALUE。
定数は暗黙のうちに任意のenum 型にキャストすることが できる。
-1