2016-02-12 6 views
5

感謝。
これを拡張可能にする予定はありますか?このような計画我々はスコープと強い型付けされた列挙型を持っているC++ 11から

何か:

enum class OneTwoThree : char {one=1, two=2, three=3}; 
enum class Four : char {four=4} extends OneTwoThree; 
+0

私が知る限り、そうではありません。 – Vitaliy

+1

私は間違っていない場合は、 '列挙class'宣言はちょうど列挙値/整数の/ etc間の暗黙的な変換を禁止すると言います。それは、Java/Pythonでないとして、それは実際に/列挙型は、完全な型を表現することはありません。等サブクラス化のための構文は基本的なデータ型を示すために既に使われており、 'extends'はC++キーワードではなく、iircのC++標準委員会は新しいキーワードの追加を好まない。 C++でサブクラス化可能な列挙型が本当に必要な場合は、可変数の引数を持つテンプレートを使用する方が良いでしょう。 – JAB

+4

@JAB:_Complete type_はC++で特定の意味を持ち、*は、 *すべての** enum型は_complete型です。 'void'は完全ではない型の例です。 – MSalters

答えて

3

それはそう表示されません。

C++の中には紙なしで何も起こりません。便宜上、すべての論文をオンラインhereで見ることができ、official forumsの言語進化のための研究グループの非公式な議論に従うことができます(「将来の提案」グループはおそらく列挙の変更に関心があるでしょう) 。論文の

、2011年までのバック論文のタイトルの通り一遍の検索は、以下の主題を明らかに:

これらの論文には、既存の列挙に値を追加するメカニズムはありません。同様に、Future Proposalsグループの "enum"を大まかに検索すると、多数のサブジェクトが生成されますが、列挙の初期定義以外の列挙に新しい値を追加することはありません。


この種の機能をライブラリまたは言語シャングなしに実装するためのいくつかの試みが行われました。 questions exploring the subject already exist on StackOverflow、あなたのために読むのに役立つかもしれません。

+0

広範な答えをありがとう。 – ttuna

関連する問題