File tree Expand file tree Collapse file tree
include/chaiscript/utility Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -89,6 +89,29 @@ namespace chaiscript
8989 t_module.add_global_const (chaiscript::const_var (Enum (constant.first )), constant.second );
9090 }
9191 }
92+
93+ template <typename EnumClass, typename ModuleType>
94+ typename std::enable_if<std::is_enum<EnumClass>::value, void >::type
95+ add_class (ModuleType &t_module,
96+ const std::string &t_class_name,
97+ const std::vector<std::pair<EnumClass, std::string>> &t_constants
98+ )
99+ {
100+ t_module.add (chaiscript::user_type<EnumClass>(), t_class_name);
101+
102+ t_module.add (chaiscript::constructor<EnumClass ()>(), t_class_name);
103+ t_module.add (chaiscript::constructor<EnumClass (const EnumClass &)>(), t_class_name);
104+
105+ using namespace chaiscript ::bootstrap::operators;
106+ equal<EnumClass>(t_module);
107+ not_equal<EnumClass>(t_module);
108+ assign<EnumClass>(t_module);
109+
110+ for (const auto &constant : t_constants)
111+ {
112+ t_module.add_global_const (chaiscript::const_var (EnumClass (constant.first )), constant.second );
113+ }
114+ }
92115 }
93116}
94117
You can’t perform that action at this time.
0 commit comments