Add some operators for Enums made with helper class

This commit is contained in:
Jason Turner
2016-01-02 19:45:10 -07:00
parent e1c40f3e8f
commit e32714c456
2 changed files with 13 additions and 1 deletions

View File

@@ -15,6 +15,7 @@
#include "../chaiscript.hpp"
#include "../dispatchkit/proxy_functions.hpp"
#include "../dispatchkit/type_info.hpp"
#include "../dispatchkit/operators.hpp"
namespace chaiscript
@@ -63,7 +64,7 @@ namespace chaiscript
t_module.add(fun.first, fun.second);
}
}
template<typename Enum, typename ModuleType>
typename std::enable_if<std::is_enum<Enum>::value, void>::type
add_class(ModuleType &t_module,
@@ -76,6 +77,12 @@ namespace chaiscript
t_module.add(chaiscript::constructor<Enum ()>(), t_class_name);
t_module.add(chaiscript::constructor<Enum (const Enum &)>(), t_class_name);
t_module.add([](){
// add some comparison and assignment operators
using namespace chaiscript::bootstrap::operators;
return assign<Enum>(not_equal<Enum>(equal<Enum>()));
}());
for (const auto &constant : t_constants)
{
t_module.add_global_const(constant.first, constant.second);