Skip to content

Commit

Permalink
extra_arg: fix bug from moving code around
Browse files Browse the repository at this point in the history
  • Loading branch information
melven committed Jan 13, 2024
1 parent 2deea27 commit ce67e08
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions include/jlcxx/module.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -566,6 +566,8 @@ class JLCXX_API Module
template<typename R, typename... Args, typename... Extra>
FunctionWrapperBase& method(const std::string& name, std::function<R(Args...)> f, Extra... extra)
{
static_assert(detail::check_extra_argument_count<Extra...>(sizeof...(Args)), "Wrong number of annotated arguments (jlcxx::arg and jlcxx::kwarg arguments)!");

detail::ExtraFunctionData extraData = detail::parse_attributes(extra...);
return method_helper(name, f, extraData);
}
Expand Down Expand Up @@ -762,11 +764,9 @@ class JLCXX_API Module
return method_helper(name, std::function<R(ArgsT...)>(std::forward<LambdaT>(lambda)), std::move(extraData));
}

template<typename R, typename... Args, typename... Extra>
template<typename R, typename... Args>
FunctionWrapperBase& method_helper(const std::string& name, std::function<R(Args...)> f, detail::ExtraFunctionData&& extraData)
{
static_assert(detail::check_extra_argument_count<Extra...>(sizeof...(Args)), "Wrong number of annotated arguments (jlcxx::arg and jlcxx::kwarg arguments)!");

auto* new_wrapper = new FunctionWrapper<R, Args...>(this, f);
new_wrapper->set_name((jl_value_t*)jl_symbol(name.c_str()));
new_wrapper->set_doc(jl_cstr_to_string(extraData.doc.c_str()));
Expand Down

0 comments on commit ce67e08

Please sign in to comment.