| 432 | |
| 433 | template<typename ReturnType, typename... Args, typename... Policies> |
| 434 | void function(const char* name, ReturnType (*fn)(Args...), Policies...) { |
| 435 | using namespace internal; |
| 436 | typename WithPolicies<Policies...>::template ArgTypeList<ReturnType, Args...> args; |
| 437 | using ReturnPolicy = typename GetReturnValuePolicy<ReturnType, Policies...>::tag; |
| 438 | auto invoke = Invoker<ReturnPolicy, ReturnType, Args...>::invoke; |
| 439 | _embind_register_function( |
| 440 | name, |
| 441 | args.getCount(), |
| 442 | args.getTypes(), |
| 443 | getSignature(invoke), |
| 444 | reinterpret_cast<GenericFunction>(invoke), |
| 445 | reinterpret_cast<GenericFunction>(fn), |
| 446 | isAsync<Policies...>::value, |
| 447 | isNonnullReturn<Policies...>::value); |
| 448 | } |
| 449 | |
| 450 | namespace internal { |
| 451 |
no test coverage detected