8000 Added template specialization in chaiscript::utility::add_class<Enum>… · ChaiScript/ChaiScript@f0796b5 · GitHub
[go: up one dir, main page]

Skip to content

Commit f0796b5

Browse files
committed
Added template specialization in chaiscript::utility::add_class<Enum> to register bulk constants.
1 parent e638d45 commit f0796b5

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

include/chaiscript/utility/utility.hpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#define CHAISCRIPT_UTILITY_UTILITY_HPP_
99

1010
#include <string>
11+
#include <type_traits>
1112
#include <utility>
1213
#include <vector>
1314

@@ -62,6 +63,21 @@ namespace chaiscript
6263
t_module.add(fun.first, fun.second);
6364
}
6465
}
66+
67+
template<typename Enum, typename ModuleType>
68+
typename std::enable_if<std::is_enum<Enum>::value, void>::type
69+
add_class(ModuleType &t_module,
70+
const std::string &t_class_name,
71+
const std::vector<chaiscript::Proxy_Function> &t_constructors,
72+
const std::vector<std::pair<chaiscript::Boxed_Value, std::string>> &t_constants)
73+
{
74+
t_module.add(chaiscript::user_type<Enum>(), t_class_name);
75+
76+
for (const auto &constant : t_constants)
77+
{
78+
t_module.add_global_const(constant.first, constant.second);
79+
}
80+
}
6581
}
6682
}
6783

0 commit comments

Comments
 (0)
0