HepMC3 event record library
Public Member Functions | Static Public Attributes | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes
argument_loader< Args > Class Template Reference

Helper class which loads arguments for C++ functions called from Python. More...

#include <cast.h>

Public Member Functions

bool load_args (function_call &call)
 
template<typename Return , typename Guard , typename Func >
enable_if_t<!std::is_void< Return >::value, Return > call (Func &&f) &&
 
template<typename Return , typename Guard , typename Func >
enable_if_t< std::is_void< Return >::value, void_typecall (Func &&f) &&
 

Static Public Attributes

static constexpr bool has_kwargs = kwargs_pos < 0
 
static constexpr bool has_args = args_pos < 0
 
static constexpr auto arg_names = concat(type_descr(make_caster<Args>::name)...)
 

Private Types

using indices = make_index_sequence< sizeof...(Args)>
 
template<typename Arg >
using argument_is_args = std::is_same< intrinsic_t< Arg >, args >
 
template<typename Arg >
using argument_is_kwargs = std::is_same< intrinsic_t< Arg >, kwargs >
 

Private Member Functions

template<size_t... Is>
bool load_impl_sequence (function_call &call, index_sequence< Is... >)
 
template<typename Return , typename Func , size_t... Is, typename Guard >
Return call_impl (Func &&f, index_sequence< Is... >, Guard &&) &&
 

Static Private Member Functions

static bool load_impl_sequence (function_call &, index_sequence<>)
 

Private Attributes

std::tuple< make_caster< Args >... > argcasters
 

Static Private Attributes

static constexpr auto args_pos = constexpr_first<argument_is_args, Args...>() - (int) sizeof...(Args)
 
static constexpr auto kwargs_pos = constexpr_first<argument_is_kwargs, Args...>() - (int) sizeof...(Args)
 
static constexpr bool args_kwargs_are_last = kwargs_pos >= - 1 && args_pos >= kwargs_pos - 1
 

Detailed Description

template<typename... Args>
class argument_loader< Args >

Helper class which loads arguments for C++ functions called from Python.

Definition at line 1957 of file cast.h.


The documentation for this class was generated from the following file: