diff --git a/include/chaiscript/dispatchkit/type_conversions.hpp b/include/chaiscript/dispatchkit/type_conversions.hpp index 962d7f38..1fcabe99 100644 --- a/include/chaiscript/dispatchkit/type_conversions.hpp +++ b/include/chaiscript/dispatchkit/type_conversions.hpp @@ -319,7 +319,7 @@ namespace chaiscript template struct backingList { static std::initializer_list list; }; template - std::initializer_list backingList::list = { (Vcount)backingValue::value... }; + std::initializer_list backingList::list = { static_cast(backingValue::value)... }; template static typename std::enable_if< sizeof...(Vcount) >= maxLength, diff --git a/include/chaiscript/utility/utility.hpp b/include/chaiscript/utility/utility.hpp index 381afda2..fbd8c662 100644 --- a/include/chaiscript/utility/utility.hpp +++ b/include/chaiscript/utility/utility.hpp @@ -69,21 +69,31 @@ namespace chaiscript typename std::enable_if::value, void>::type add_class(ModuleType &t_module, const std::string &t_class_name, - const std::vector::type, std::string>> &t_constants) +#ifdef CHAISCRIPT_GCC_4_6 + const std::vector> &t_constants +#else + const std::vector::type, std::string>> &t_constants +#endif + ) { t_module.add(chaiscript::user_type(), t_class_name); t_module.add(chaiscript::constructor(), t_class_name); t_module.add(chaiscript::constructor(), t_class_name); + using namespace chaiscript::bootstrap::operators; t_module.add([](){ // add some comparison and assignment operators - using namespace chaiscript::bootstrap::operators; return assign(not_equal(equal())); }()); +#ifdef CHAISCRIPT_GCC_4_6 + t_module.add(chaiscript::fun([](const Enum &e, const int &i) { return e == i; }), "=="); + t_module.add(chaiscript::fun([](const int &i, const Enum &e) { return i == e; }), "=="); +#else t_module.add(chaiscript::fun([](const Enum &e, const typename std::underlying_type::type &i) { return e == i; }), "=="); t_module.add(chaiscript::fun([](const typename std::underlying_type::type &i, const Enum &e) { return i == e; }), "=="); +#endif for (const auto &constant : t_constants) {