enum
documentation を見て、気づいたことが1つありました。
enum-key-
enum
、enum class
(since C++ 11)、またはenum struct
(C++ 11以降)
enum
とenum class
は確かですが、enum struct
とは何ですか。
ドキュメントは、enum class
とenum struct
はまったく同じであると言っているようです:
[...]スコープ付き列挙(enum-key
enum class
またはenum struct
で宣言)
enum struct
|class
name{ enumerator = constexpr , enumerator = constexpr , ... }
- [...]
彼らは本当にまったく同じですか?それとも私が見逃した違いはありますか?同じものに対して2つの異なる構文を持つこと(それらが同じである場合)の意味は何ですか?
enum class
およびenum struct
は同じです(私の強調)。
7.2列挙宣言
...
2 ....enum-keysenum class
およびenum struct
は意味的に同等です;これらのいずれかで宣言された列挙型は、スコープ付き列挙型であり、その列挙子はスコープの列挙子です。
enum class
、もちろんですが、enum struct
?
と同じ enum class
。
彼らは本当にまったく同じですか?
はい。ドキュメントは正しいです。
それとも私が見逃した違いはありますか?
いいえ、違いはありません。
同じものに対して2つの異なる構文を持つこと(それらが同じである場合)の意味は何ですか?
決定についての書面による合理化は見つかりませんでした。標準も提案もありません。これは、class
とstruct
のクラスキーに相当するものだと思われるかもしれません。これは、template<class T>
構文が指定されましたが、struct
は使用できません。