Public Member Functions | Public Attributes | List of all members
function_record Struct Reference

Internal data structure which holds metadata about a bound function (signature, overloads, etc.) More...

#include <attr.h>

Public Member Functions

 function_record ()
 

Public Attributes

std::vector< argument_recordargs
 List of registered keyword arguments. More...
 
void * data [3] = { }
 Storage for the wrapped function pointer and captured data, if any. More...
 
PyMethodDef * def = nullptr
 Python method object. More...
 
char * doc = nullptr
 
void(* free_data )(function_record *ptr) = nullptr
 Pointer to custom destructor for 'data' (if needed) More...
 
bool has_args: 1
 True if the function has a '*args' argument. More...
 
bool has_kw_only_args: 1
 True once a 'py::kw_only' is encountered (any following args are keyword-only) More...
 
bool has_kwargs: 1
 True if the function has a '**kwargs' argument. More...
 
handle(* impl )(function_call &) = nullptr
 Pointer to lambda function which converts arguments and performs the actual call. More...
 
bool is_constructor: 1
 True if name == 'init'. More...
 
bool is_method: 1
 True if this is a method. More...
 
bool is_new_style_constructor: 1
 True if this is a new-style __init__ defined in detail/init.h More...
 
bool is_operator: 1
 True if this is an operator (add), etc. More...
 
bool is_stateless: 1
 True if this is a stateless function pointer. More...
 
char * name = nullptr
 Function name. More...
 
std::uint16_t nargs
 Number of arguments (including py::args and/or py::kwargs, if present) More...
 
std::uint16_t nargs_kw_only = 0
 Number of trailing arguments (counted in nargs) that are keyword-only. More...
 
std::uint16_t nargs_pos_only = 0
 Number of leading arguments (counted in nargs) that are positional-only. More...
 
function_recordnext = nullptr
 Pointer to next overload. More...
 
return_value_policy policy = return_value_policy::automatic
 Return value policy associated with this function. More...
 
handle scope
 Python handle to the parent scope (a class or a module) More...
 
handle sibling
 Python handle to the sibling function representing an overload chain. More...
 
char * signature = nullptr
 Human-readable version of the function signature. More...
 

Detailed Description

Internal data structure which holds metadata about a bound function (signature, overloads, etc.)

Definition at line 138 of file attr.h.

Constructor & Destructor Documentation

function_record::function_record ( )
inline

Definition at line 139 of file attr.h.

Member Data Documentation

std::vector<argument_record> function_record::args

List of registered keyword arguments.

Definition at line 154 of file attr.h.

void* function_record::data[3] = { }

Storage for the wrapped function pointer and captured data, if any.

Definition at line 160 of file attr.h.

PyMethodDef* function_record::def = nullptr

Python method object.

Definition at line 202 of file attr.h.

char* function_record::doc = nullptr

Definition at line 148 of file attr.h.

void(* function_record::free_data) (function_record *ptr) = nullptr

Pointer to custom destructor for 'data' (if needed)

Definition at line 163 of file attr.h.

bool function_record::has_args

True if the function has a '*args' argument.

Definition at line 184 of file attr.h.

bool function_record::has_kw_only_args

True once a 'py::kw_only' is encountered (any following args are keyword-only)

Definition at line 190 of file attr.h.

bool function_record::has_kwargs

True if the function has a '**kwargs' argument.

Definition at line 187 of file attr.h.

handle(* function_record::impl) (function_call &) = nullptr

Pointer to lambda function which converts arguments and performs the actual call.

Definition at line 157 of file attr.h.

bool function_record::is_constructor

True if name == 'init'.

Definition at line 169 of file attr.h.

bool function_record::is_method

True if this is a method.

Definition at line 181 of file attr.h.

bool function_record::is_new_style_constructor

True if this is a new-style __init__ defined in detail/init.h

Definition at line 172 of file attr.h.

bool function_record::is_operator

True if this is an operator (add), etc.

Definition at line 178 of file attr.h.

bool function_record::is_stateless

True if this is a stateless function pointer.

Definition at line 175 of file attr.h.

char* function_record::name = nullptr

Function name.

Definition at line 145 of file attr.h.

std::uint16_t function_record::nargs

Number of arguments (including py::args and/or py::kwargs, if present)

Definition at line 193 of file attr.h.

std::uint16_t function_record::nargs_kw_only = 0

Number of trailing arguments (counted in nargs) that are keyword-only.

Definition at line 196 of file attr.h.

std::uint16_t function_record::nargs_pos_only = 0

Number of leading arguments (counted in nargs) that are positional-only.

Definition at line 199 of file attr.h.

function_record* function_record::next = nullptr

Pointer to next overload.

Definition at line 211 of file attr.h.

Return value policy associated with this function.

Definition at line 166 of file attr.h.

handle function_record::scope

Python handle to the parent scope (a class or a module)

Definition at line 205 of file attr.h.

handle function_record::sibling

Python handle to the sibling function representing an overload chain.

Definition at line 208 of file attr.h.

char* function_record::signature = nullptr

Human-readable version of the function signature.

Definition at line 151 of file attr.h.


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


gtsam
Author(s):
autogenerated on Sat May 8 2021 02:51:47