xtd 0.2.0
enum_struct.h
Go to the documentation of this file.
1 #pragma once
5 #include "enum_attribute.h"
6 #include "enum_collection.h"
7 #include "enum_object.h"
8 #include "enum_register.h"
9 #include "enum_set_attribute.h"
10 #include "flags_attribute.h"
11 
28 #define enum_struct_ut_(namespace_name, enum_struct_t, underlying_t, ...) \
29  namespace namespace_name {enum struct enum_struct_t : underlying_t { __VA_ARGS__ };} \
30  __enum_introspection__(namespace_name, enum_struct_t, underlying_t, __VA_ARGS__) \
31  template<> struct xtd::enum_register<namespace_name::enum_struct_t> {explicit operator auto() const {return __enum_definition_to_enum_collection__<namespace_name::enum_struct_t>(#__VA_ARGS__);}}
32 
48 #define enum_struct_(namespace_name, enum_struct_t, ...) \
49  enum_struct_ut_(namespace_name, enum_struct_t, xtd::int32, __VA_ARGS__)
Contains xtd::enum_set_attribute strcut.
Contains xtd::enum_attribute enum class.
Contains flags_attribute_ keyword.
Contains xtd::enum_register.
Contains xtd::enum_collection.
Contains xtd::enum_object.