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

#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_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_pos = 0
 
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...
 
bool prepend: 1
 True if this function is to be inserted at the beginning of the overload resolution chain. 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 188 of file attr.h.

Constructor & Destructor Documentation

◆ function_record()

function_record::function_record ( )
inline

Definition at line 189 of file attr.h.

Member Data Documentation

◆ args

std::vector<argument_record> function_record::args

List of registered keyword arguments.

Definition at line 204 of file attr.h.

◆ data

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

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

Definition at line 210 of file attr.h.

◆ def

PyMethodDef* function_record::def = nullptr

Python method object.

Definition at line 253 of file attr.h.

◆ doc

char* function_record::doc = nullptr

Definition at line 198 of file attr.h.

◆ free_data

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

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

Definition at line 213 of file attr.h.

◆ has_args

bool function_record::has_args

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

Definition at line 234 of file attr.h.

◆ has_kwargs

bool function_record::has_kwargs

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

Definition at line 237 of file attr.h.

◆ impl

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

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

Definition at line 207 of file attr.h.

◆ is_constructor

bool function_record::is_constructor

True if name == 'init'.

Definition at line 219 of file attr.h.

◆ is_method

bool function_record::is_method

True if this is a method.

Definition at line 231 of file attr.h.

◆ is_new_style_constructor

bool function_record::is_new_style_constructor

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

Definition at line 222 of file attr.h.

◆ is_operator

bool function_record::is_operator

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

Definition at line 228 of file attr.h.

◆ is_stateless

bool function_record::is_stateless

True if this is a stateless function pointer.

Definition at line 225 of file attr.h.

◆ name

char* function_record::name = nullptr

Function name.

Definition at line 195 of file attr.h.

◆ nargs

std::uint16_t function_record::nargs

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

Definition at line 243 of file attr.h.

◆ nargs_pos

std::uint16_t function_record::nargs_pos = 0

Number of leading positional arguments, which are terminated by a py::args or py::kwargs argument or by a py::kw_only annotation.

Definition at line 247 of file attr.h.

◆ nargs_pos_only

std::uint16_t function_record::nargs_pos_only = 0

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

Definition at line 250 of file attr.h.

◆ next

function_record* function_record::next = nullptr

Pointer to next overload.

Definition at line 262 of file attr.h.

◆ policy

Return value policy associated with this function.

Definition at line 216 of file attr.h.

◆ prepend

bool function_record::prepend

True if this function is to be inserted at the beginning of the overload resolution chain.

Definition at line 240 of file attr.h.

◆ scope

handle function_record::scope

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

Definition at line 256 of file attr.h.

◆ sibling

handle function_record::sibling

Python handle to the sibling function representing an overload chain.

Definition at line 259 of file attr.h.

◆ signature

char* function_record::signature = nullptr

Human-readable version of the function signature.

Definition at line 201 of file attr.h.


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


gtsam
Author(s):
autogenerated on Tue Jul 4 2023 02:41:02