Scarab  v2.9.0
Project 8 C++ Utility Library
Public Member Functions | Protected Member Functions | Static Protected Member Functions | List of all members
cpp_function Class Reference

Wraps an arbitrary C++ function/method/lambda function/.. into a callable Python object. More...

#include <pybind11.h>

Inheritance diagram for cpp_function:
Inheritance graph

Public Member Functions

 cpp_function ()
 
 cpp_function (std::nullptr_t)
 
template<typename Return , typename... Args, typename... Extra>
 cpp_function (Return(*f)(Args...), const Extra &... extra)
 Construct a cpp_function from a vanilla function pointer. More...
 
template<typename Func , typename... Extra, typename = detail::enable_if_t<detail::is_lambda<Func>::value>>
 cpp_function (Func &&f, const Extra &... extra)
 Construct a cpp_function from a lambda function (possibly with internal state) More...
 
template<typename Return , typename Class , typename... Arg, typename... Extra>
 cpp_function (Return(Class::*f)(Arg...), const Extra &... extra)
 Construct a cpp_function from a class method (non-const) More...
 
template<typename Return , typename Class , typename... Arg, typename... Extra>
 cpp_function (Return(Class::*f)(Arg...) const, const Extra &... extra)
 Construct a cpp_function from a class method (const) More...
 
object name () const
 Return the function name. More...
 
- Public Member Functions inherited from function
 __attribute__ ((deprecated("Use reinterpret_borrow<""function"">() or reinterpret_steal<""function"">()"))) function(handle h
 
- Public Member Functions inherited from object
 object ()=default
 
 __attribute__ ((deprecated("Use reinterpret_borrow<object>() or reinterpret_steal<object>()"))) object(handle h
 
 object (const object &o)
 Copy constructor; always increases the reference count. More...
 
 object (object &&other) noexcept
 Move constructor; steals the object from other and preserves its reference count. More...
 
 ~object ()
 Destructor; automatically calls handle::dec_ref() More...
 
handle release ()
 
objectoperator= (const object &other)
 
objectoperator= (object &&other) noexcept
 
template<typename T >
cast () const &
 
template<typename T >
cast () &&
 
 object (handle h, borrowed_t)
 
 object (handle h, stolen_t)
 
template<typename T >
cast () const &
 
template<typename T >
cast () &&
 
template<>
void cast () const &
 
template<>
void cast () &&
 
- Public Member Functions inherited from handle
 handle ()=default
 The default constructor creates a handle with a nullptr-valued pointer. More...
 
 handle (PyObject *ptr)
 Creates a handle from the given raw Python object pointer. More...
 
PyObject * ptr () const
 Return the underlying PyObject * pointer. More...
 
PyObject *& ptr ()
 
const handleinc_ref () const &
 
const handledec_ref () const &
 
template<typename T >
cast () const
 
 operator bool () const
 Return true when the handle wraps a valid Python object. More...
 
 __attribute__ ((deprecated("Use obj1.is(obj2) instead"))) bool operator
 
template<>
void cast () const
 
- Public Member Functions inherited from object_api< handle >
iterator begin () const
 
iterator end () const
 Return a sentinel which ends iteration. More...
 
item_accessor operator[] (handle key) const
 
item_accessor operator[] (const char *key) const
 See above (the only difference is that they key is provided as a string literal) More...
 
obj_attr_accessor attr (handle key) const
 
str_attr_accessor attr (const char *key) const
 See above (the only difference is that they key is provided as a string literal) More...
 
args_proxy operator* () const
 
object operator* (object_api const &other) const
 
bool contains (T &&item) const
 Check if the given item is contained within this object, i.e. item in obj. More...
 
object operator() (Args &&...args) const
 
 __attribute__ ((deprecated("call(...) was deprecated in favor of operator()(...)"))) object call(Args &&... args) const
 Get or set the object's docstring, i.e. obj.__doc__. More...
 
bool is (object_api const &other) const
 Equivalent to obj is other in Python. More...
 
bool is_none () const
 Equivalent to obj is None in Python. More...
 
bool equal (object_api const &other) const
 Equivalent to obj == other in Python. More...
 
bool not_equal (object_api const &other) const
 
bool operator< (object_api const &other) const
 
bool operator<= (object_api const &other) const
 
bool operator> (object_api const &other) const
 
bool operator>= (object_api const &other) const
 
object operator- () const
 
object operator- (object_api const &other) const
 
object operator~ () const
 
object operator+ (object_api const &other) const
 
object operator+= (object_api const &other) const
 
object operator-= (object_api const &other) const
 
object operator*= (object_api const &other) const
 
object operator/ (object_api const &other) const
 
object operator/= (object_api const &other) const
 
object operator| (object_api const &other) const
 
object operator|= (object_api const &other) const
 
object operator& (object_api const &other) const
 
object operator&= (object_api const &other) const
 
object operator^ (object_api const &other) const
 
object operator^= (object_api const &other) const
 
object operator<< (object_api const &other) const
 
object operator<<= (object_api const &other) const
 
object operator>> (object_api const &other) const
 
object operator>>= (object_api const &other) const
 
int ref_count () const
 Return the object's current reference count. More...
 
handle get_type () const
 Return a handle to the Python type object underlying the instance. More...
 

Protected Member Functions

 __attribute__ ((noinline)) detail
 Space optimization: don't inline this frequently instantiated fragment. More...
 
template<typename Func , typename Return , typename... Args, typename... Extra>
void initialize (Func &&f, Return(*)(Args...), const Extra &... extra)
 Special internal constructor for functors, lambda functions, etc. More...
 
void initialize_generic (detail::function_record *rec, const char *text, const std::type_info *const *types, size_t args)
 Register a function call with Python (generic non-templated code goes here) More...
 

Static Protected Member Functions

static void destruct (detail::function_record *rec)
 When a cpp_function is GCed, release any memory allocated by pybind11. More...
 
static PyObject * dispatcher (PyObject *self, PyObject *args_in, PyObject *kwargs_in)
 Main dispatch logic for calls to functions bound using pybind11. More...
 

Additional Inherited Members

- Public Attributes inherited from function
bool is_borrowed: object (is_borrowed ? object (h
 
- Public Attributes inherited from object
bool is_borrowed: handle(h) { if (is_borrowed) inc_ref()
 

Detailed Description

Wraps an arbitrary C++ function/method/lambda function/.. into a callable Python object.

Definition at line 56 of file pybind11.h.

Constructor & Destructor Documentation

◆ cpp_function() [1/6]

cpp_function ( )
inline

Definition at line 58 of file pybind11.h.

◆ cpp_function() [2/6]

cpp_function ( std::nullptr_t  )
inline

Definition at line 59 of file pybind11.h.

◆ cpp_function() [3/6]

cpp_function ( Return(*)(Args...)  f,
const Extra &...  extra 
)
inline

Construct a cpp_function from a vanilla function pointer.

Definition at line 63 of file pybind11.h.

◆ cpp_function() [4/6]

cpp_function ( Func &&  f,
const Extra &...  extra 
)
inline

Construct a cpp_function from a lambda function (possibly with internal state)

Definition at line 70 of file pybind11.h.

◆ cpp_function() [5/6]

cpp_function ( Return(Class::*)(Arg...)  f,
const Extra &...  extra 
)
inline

Construct a cpp_function from a class method (non-const)

Definition at line 77 of file pybind11.h.

◆ cpp_function() [6/6]

cpp_function ( Return(Class::*)(Arg...) const  f,
const Extra &...  extra 
)
inline

Construct a cpp_function from a class method (const)

Definition at line 84 of file pybind11.h.

Member Function Documentation

◆ __attribute__()

__attribute__ ( (noinline)  )
inlineprotected

Space optimization: don't inline this frequently instantiated fragment.

Definition at line 94 of file pybind11.h.

◆ destruct()

static void destruct ( detail::function_record rec)
inlinestaticprotected

When a cpp_function is GCed, release any memory allocated by pybind11.

Definition at line 401 of file pybind11.h.

◆ dispatcher()

static PyObject* dispatcher ( PyObject *  self,
PyObject *  args_in,
PyObject *  kwargs_in 
)
inlinestaticprotected

Main dispatch logic for calls to functions bound using pybind11.

Definition at line 424 of file pybind11.h.

◆ initialize()

void initialize ( Func &&  f,
Return(*)(Args...)  ,
const Extra &...  extra 
)
inlineprotected

Special internal constructor for functors, lambda functions, etc.

Definition at line 100 of file pybind11.h.

◆ initialize_generic()

void initialize_generic ( detail::function_record rec,
const char *  text,
const std::type_info *const *  types,
size_t  args 
)
inlineprotected

Register a function call with Python (generic non-templated code goes here)

Definition at line 193 of file pybind11.h.

◆ name()

object name ( ) const
inline

Return the function name.

Definition at line 90 of file pybind11.h.


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