diff --git a/include/chaiscript/dispatchkit/dispatchkit.hpp b/include/chaiscript/dispatchkit/dispatchkit.hpp index 158bf0e..ef1682d 100644 --- a/include/chaiscript/dispatchkit/dispatchkit.hpp +++ b/include/chaiscript/dispatchkit/dispatchkit.hpp @@ -312,7 +312,7 @@ namespace chaiscript bool call_match(const std::vector &vals, const Type_Conversions_State &t_conversions) const override { - return std::any_of(m_funcs.cbegin(), m_funcs.cend(), + return std::any_of(std::begin(m_funcs), std::end(m_funcs), [&vals, &t_conversions](const Proxy_Function &f){ return f->call_match(vals, t_conversions); }); } @@ -911,7 +911,7 @@ namespace chaiscript return false; } - return std::any_of(std::cbegin(t_funs), std::cend(t_funs), + return std::any_of(std::begin(t_funs), std::end(t_funs), [&](const auto &fun) { return fun->is_attribute_function() && fun->compare_first_type(t_params[0], t_conversions); } diff --git a/include/chaiscript/dispatchkit/function_call.hpp b/include/chaiscript/dispatchkit/function_call.hpp index ea0a61e..990be95 100644 --- a/include/chaiscript/dispatchkit/function_call.hpp +++ b/include/chaiscript/dispatchkit/function_call.hpp @@ -35,8 +35,7 @@ namespace chaiscript /// \returns A std::function object for dispatching /// \param[in] funcs the set of functions to dispatch on. template - std::function - functor(const std::vector &funcs, const Type_Conversions_State *t_conversions) + std::function functor(const std::vector &funcs, const Type_Conversions_State *t_conversions) { const bool has_arity_match = std::any_of(funcs.begin(), funcs.end(), [](const Const_Proxy_Function &f) { @@ -63,8 +62,7 @@ namespace chaiscript /// \returns A std::function object for dispatching /// \param[in] func A function to execute. template - std::function - functor(Const_Proxy_Function func, const Type_Conversions_State *t_conversions) + std::function functor(Const_Proxy_Function func, const Type_Conversions_State *t_conversions) { return functor(std::vector({std::move(func)}), t_conversions); } @@ -72,8 +70,7 @@ namespace chaiscript /// Helper for automatically unboxing a Boxed_Value that contains a function object /// and creating a typesafe C++ function caller from it. template - std::function - functor(const Boxed_Value &bv, const Type_Conversions_State *t_conversions) + std::function functor(const Boxed_Value &bv, const Type_Conversions_State *t_conversions) { return functor(boxed_cast(bv, t_conversions), t_conversions); } diff --git a/include/chaiscript/dispatchkit/handle_return.hpp b/include/chaiscript/dispatchkit/handle_return.hpp index 17c6d4e..ca353ec 100644 --- a/include/chaiscript/dispatchkit/handle_return.hpp +++ b/include/chaiscript/dispatchkit/handle_return.hpp @@ -59,13 +59,8 @@ namespace chaiscript }; template - struct Handle_Return> + struct Handle_Return> : Handle_Return &> { - static Boxed_Value handle(const std::function &f) { - return Boxed_Value( - chaiscript::make_shared>>(f) - ); - } }; template @@ -79,23 +74,13 @@ namespace chaiscript }; template - struct Handle_Return> &> + struct Handle_Return> &> : Handle_Return>> { - static Boxed_Value handle(const std::shared_ptr> &f) { - return Boxed_Value( - chaiscript::make_shared>(std::ref(*f),f) - ); - } }; template - struct Handle_Return>> + struct Handle_Return>> : Handle_Return>> { - static Boxed_Value handle(const std::shared_ptr> &f) { - return Boxed_Value( - chaiscript::make_shared>(std::ref(*f),f) - ); - } }; template @@ -143,21 +128,13 @@ namespace chaiscript }; template - struct Handle_Return > + struct Handle_Return> : Handle_Return &> { - static Boxed_Value handle(const std::shared_ptr &r) - { - return Boxed_Value(r, true); - } }; template - struct Handle_Return &> + struct Handle_Return &> : Handle_Return &> { - static Boxed_Value handle(const std::shared_ptr &r) - { - return Boxed_Value(r, true); - } }; template @@ -170,9 +147,6 @@ namespace chaiscript }; - /** - * Used internally for handling a return value from a Proxy_Function call - */ template struct Handle_Return { @@ -187,9 +161,6 @@ namespace chaiscript } }; - /** - * Used internally for handling a return value from a Proxy_Function call - */ template<> struct Handle_Return { @@ -199,40 +170,19 @@ namespace chaiscript } }; - /** - * Used internally for handling a return value from a Proxy_Function call - */ template<> - struct Handle_Return + struct Handle_Return : Handle_Return { - static Boxed_Value handle(const Boxed_Value &r) - { - return r; - } }; - /** - * Used internally for handling a return value from a Proxy_Function call - */ template<> - struct Handle_Return + struct Handle_Return : Handle_Return { - static Boxed_Value handle(const Boxed_Value &r) - { - return r; - } }; - /** - * Used internally for handling a return value from a Proxy_Function call - */ template<> - struct Handle_Return + struct Handle_Return : Handle_Return { - static Boxed_Value handle(const Boxed_Value &r) - { - return r; - } }; /** @@ -247,16 +197,9 @@ namespace chaiscript } }; - /** - * Used internally for handling a return value from a Proxy_Function call - */ template<> - struct Handle_Return + struct Handle_Return : Handle_Return { - static Boxed_Value handle(const Boxed_Number &r) - { - return r.bv; - } }; diff --git a/include/chaiscript/language/chaiscript_parser.hpp b/include/chaiscript/language/chaiscript_parser.hpp index bd18a6d..c1da427 100644 --- a/include/chaiscript/language/chaiscript_parser.hpp +++ b/include/chaiscript/language/chaiscript_parser.hpp @@ -60,7 +60,7 @@ namespace chaiscript static std::array, detail::max_alphabet> build_alphabet() { - std::array, detail::max_alphabet> alphabet = {}; + std::array, detail::max_alphabet> alphabet; for (auto &alpha : alphabet) { alpha.fill(false);