Classes | Macros | Typedefs | Functions
pybind11.h File Reference
#include "detail/class.h"
#include "detail/init.h"
#include "attr.h"
#include "gil.h"
#include "options.h"
#include <cstdlib>
#include <cstring>
#include <memory>
#include <new>
#include <string>
#include <utility>
#include <vector>
Include dependency graph for pybind11.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  class_< type_, options >
 
class  cpp_function
 Wraps an arbitrary C++ function/method/lambda function/.. into a callable Python object. More...
 
class  enum_< Type >
 Binds C++ enumerations and enumeration classes to Python. More...
 
struct  enum_base
 
struct  equivalent_integer< is_signed, length >
 
struct  equivalent_integer< false, 1 >
 
struct  equivalent_integer< false, 2 >
 
struct  equivalent_integer< false, 4 >
 
struct  equivalent_integer< false, 8 >
 
struct  equivalent_integer< true, 1 >
 
struct  equivalent_integer< true, 2 >
 
struct  equivalent_integer< true, 4 >
 
struct  equivalent_integer< true, 8 >
 
class  exception< type >
 
class  generic_type
 Generic support for creating new Python heap types. More...
 
struct  has_operator_delete< T, SFINAE >
 
struct  has_operator_delete< T, void_t< decltype(static_cast< void(*)(void *)>(T::operator delete))> >
 
struct  has_operator_delete_size< T, SFINAE >
 
struct  has_operator_delete_size< T, void_t< decltype(static_cast< void(*)(void *, size_t)>(T::operator delete))> >
 
struct  cpp_function::InitializingFunctionRecordDeleter
 
struct  class_< type_, options >::is_valid_class_option< T >
 
struct  iterator_access< Iterator, SFINAE >
 
class  iterator_key_access< Iterator, SFINAE >
 
struct  iterator_state< Access, Policy, Iterator, Sentinel, ValueType, Extra >
 
class  iterator_value_access< Iterator, SFINAE >
 
class  module_
 Wrapper for Python extension modules. More...
 
class  cpp_function::strdup_guard
 

Macros

#define PYBIND11_COMPAT_STRDUP   strdup
 
#define PYBIND11_ENUM_OP_CONV(op, expr)
 
#define PYBIND11_ENUM_OP_CONV_LHS(op, expr)
 
#define PYBIND11_ENUM_OP_STRICT(op, expr, strict_behavior)
 
#define PYBIND11_HAS_STD_LAUNDER   0
 
#define PYBIND11_OVERLOAD(ret_type, cname, fn, ...)   PYBIND11_OVERRIDE(PYBIND11_TYPE(ret_type), PYBIND11_TYPE(cname), fn, __VA_ARGS__)
 
#define PYBIND11_OVERLOAD_INT(ret_type, cname, name, ...)   PYBIND11_OVERRIDE_IMPL(PYBIND11_TYPE(ret_type), PYBIND11_TYPE(cname), name, __VA_ARGS__)
 
#define PYBIND11_OVERLOAD_NAME(ret_type, cname, name, fn, ...)   PYBIND11_OVERRIDE_NAME(PYBIND11_TYPE(ret_type), PYBIND11_TYPE(cname), name, fn, __VA_ARGS__)
 
#define PYBIND11_OVERLOAD_PURE(ret_type, cname, fn, ...)   PYBIND11_OVERRIDE_PURE(PYBIND11_TYPE(ret_type), PYBIND11_TYPE(cname), fn, __VA_ARGS__);
 
#define PYBIND11_OVERLOAD_PURE_NAME(ret_type, cname, name, fn, ...)
 
#define PYBIND11_OVERRIDE(ret_type, cname, fn, ...)   PYBIND11_OVERRIDE_NAME(PYBIND11_TYPE(ret_type), PYBIND11_TYPE(cname), #fn, fn, __VA_ARGS__)
 
#define PYBIND11_OVERRIDE_IMPL(ret_type, cname, name, ...)
 
#define PYBIND11_OVERRIDE_NAME(ret_type, cname, name, fn, ...)
 
#define PYBIND11_OVERRIDE_PURE(ret_type, cname, fn, ...)
 
#define PYBIND11_OVERRIDE_PURE_NAME(ret_type, cname, name, fn, ...)
 
#define PYBIND11_STD_LAUNDER
 
#define PYBIND11_THROW   throw type_error("Expected an enumeration of matching type!");
 

Typedefs

template<typename IntLike >
using equivalent_integer_t = typename equivalent_integer< std::is_signed< IntLike >::value, sizeof(IntLike)>::type
 
using module = module_
 

Functions

void add_class_method (object &cls, const char *name_, const cpp_function &cf)
 
std::pair< decltype(internals::registered_types_py)::iterator, bool > all_type_info_get_cache (PyTypeObject *type)
 
bool apply_exception_translators (std::forward_list< ExceptionTranslator > &translators)
 
template<typename T , enable_if_t< has_operator_delete< T >::value, int > = 0>
void call_operator_delete (T *p, size_t, size_t)
 Call class-specific delete if it exists or global otherwise. Can also be an overload set. More...
 
void call_operator_delete (void *p, size_t s, size_t a)
 
str enum_name (handle arg)
 
template<typename CppException >
exception< CppException > & get_exception_object ()
 
template<class T >
function get_overload (const T *this_ptr, const char *name)
 
template<class T >
function get_override (const T *this_ptr, const char *name)
 
function get_type_overload (const void *this_ptr, const detail::type_info *this_type, const char *name)
 
function get_type_override (const void *this_ptr, const type_info *this_type, const char *name)
 
dict globals ()
 
template<typename InputType , typename OutputType >
void implicitly_convertible ()
 
template<typename... Args>
detail::initimpl::constructor< Args... > init ()
 Binds an existing constructor taking arguments Args... More...
 
template<typename CFunc , typename AFunc , typename Ret = detail::initimpl::factory<CFunc, AFunc>>
Ret init (CFunc &&c, AFunc &&a)
 
template<typename Func , typename Ret = detail::initimpl::factory<Func>>
Ret init (Func &&f)
 Binds a factory function as a constructor. More...
 
template<typename... Args>
detail::initimpl::alias_constructor< Args... > init_alias ()
 
PYBIND11_NOINLINE void keep_alive_impl (handle nurse, handle patient)
 
PYBIND11_NOINLINE void keep_alive_impl (size_t Nurse, size_t Patient, function_call &call, handle ret)
 
template<return_value_policy Policy = return_value_policy::reference_internal, typename Iterator , typename Sentinel , typename ValueType = typename detail::iterator_access<Iterator>::result_type, typename... Extra>
iterator make_iterator (Iterator first, Sentinel last, Extra &&...extra)
 Makes a python iterator from a first and past-the-end C++ InputIterator. More...
 
template<return_value_policy Policy = return_value_policy::reference_internal, typename Type , typename... Extra>
iterator make_iterator (Type &value, Extra &&...extra)
 
template<typename Access , return_value_policy Policy, typename Iterator , typename Sentinel , typename ValueType , typename... Extra>
iterator make_iterator_impl (Iterator first, Sentinel last, Extra &&...extra)
 
template<return_value_policy Policy = return_value_policy::reference_internal, typename Iterator , typename Sentinel , typename KeyType = typename detail::iterator_key_access<Iterator>::result_type, typename... Extra>
iterator make_key_iterator (Iterator first, Sentinel last, Extra &&...extra)
 
template<return_value_policy Policy = return_value_policy::reference_internal, typename Type , typename... Extra>
iterator make_key_iterator (Type &value, Extra &&...extra)
 
template<return_value_policy Policy = return_value_policy::reference_internal, typename Iterator , typename Sentinel , typename ValueType = typename detail::iterator_value_access<Iterator>::result_type, typename... Extra>
iterator make_value_iterator (Iterator first, Sentinel last, Extra &&...extra)
 
template<return_value_policy Policy = return_value_policy::reference_internal, typename Type , typename... Extra>
iterator make_value_iterator (Type &value, Extra &&...extra)
 
template<typename , typename F >
auto method_adaptor (F &&f) -> decltype(std::forward< F >(f))
 
template<typename Derived , typename Return , typename Class , typename... Args>
auto method_adaptor (Return(Class::*pmf)(Args...)) -> Return(Derived::*)(Args...)
 
template<typename GetState , typename SetState >
detail::initimpl::pickle_factory< GetState, SetState > pickle (GetState &&g, SetState &&s)
 
template<return_value_policy policy = return_value_policy::automatic_reference, typename... Args>
void print (Args &&...args)
 
PYBIND11_NOINLINE void print (const tuple &args, const dict &kwargs)
 
template<typename... Args, typename = detail::enable_if_t<args_are_all_keyword_or_ds<Args...>()>>
 PYBIND11_DEPRECATED ("make_simple_namespace should be replaced with " "py::module_::import(\"types\").attr(\"SimpleNamespace\") ") object make_simple_namespace(Args &&...args_)
 
template<typename CppException >
exception< CppException > & register_exception (handle scope, const char *name, handle base=PyExc_Exception)
 
template<typename CppException >
exception< CppException > & register_exception_impl (handle scope, const char *name, handle base, bool isLocal)
 
void register_exception_translator (ExceptionTranslator &&translator)
 
template<typename CppException >
exception< CppException > & register_local_exception (handle scope, const char *name, handle base=PyExc_Exception)
 
void register_local_exception_translator (ExceptionTranslator &&translator)
 
template<typename >
void set_operator_new (...)
 
template<typename T , typename = void_t<decltype(static_cast<void *(*) (size_t)>(T::operator new))>>
void set_operator_new (type_record *r)
 Set the pointer to operator new if it exists. The cast is needed because it can be overloaded. More...
 

Macro Definition Documentation

◆ PYBIND11_COMPAT_STRDUP

#define PYBIND11_COMPAT_STRDUP   strdup

Definition at line 76 of file pybind11.h.

◆ PYBIND11_ENUM_OP_CONV

#define PYBIND11_ENUM_OP_CONV (   op,
  expr 
)
Value:
m_base.attr(op) = cpp_function( \
[](const object &a_, const object &b_) { \
int_ a(a_), b(b_); \
return expr; \
}, \
name(op), \
is_method(m_base), \
arg("other"))

◆ PYBIND11_ENUM_OP_CONV_LHS

#define PYBIND11_ENUM_OP_CONV_LHS (   op,
  expr 
)
Value:
m_base.attr(op) = cpp_function( \
[](const object &a_, const object &b) { \
int_ a(a_); \
return expr; \
}, \
name(op), \
is_method(m_base), \
arg("other"))

◆ PYBIND11_ENUM_OP_STRICT

#define PYBIND11_ENUM_OP_STRICT (   op,
  expr,
  strict_behavior 
)
Value:
m_base.attr(op) = cpp_function( \
[](const object &a, const object &b) { \
strict_behavior; /* NOLINT(bugprone-macro-parentheses) */ \
return expr; \
}, \
name(op), \
is_method(m_base), \
arg("other"))

◆ PYBIND11_HAS_STD_LAUNDER

#define PYBIND11_HAS_STD_LAUNDER   0

Definition at line 32 of file pybind11.h.

◆ PYBIND11_OVERLOAD

#define PYBIND11_OVERLOAD (   ret_type,
  cname,
  fn,
  ... 
)    PYBIND11_OVERRIDE(PYBIND11_TYPE(ret_type), PYBIND11_TYPE(cname), fn, __VA_ARGS__)

Definition at line 2885 of file pybind11.h.

◆ PYBIND11_OVERLOAD_INT

#define PYBIND11_OVERLOAD_INT (   ret_type,
  cname,
  name,
  ... 
)    PYBIND11_OVERRIDE_IMPL(PYBIND11_TYPE(ret_type), PYBIND11_TYPE(cname), name, __VA_ARGS__)

Definition at line 2878 of file pybind11.h.

◆ PYBIND11_OVERLOAD_NAME

#define PYBIND11_OVERLOAD_NAME (   ret_type,
  cname,
  name,
  fn,
  ... 
)    PYBIND11_OVERRIDE_NAME(PYBIND11_TYPE(ret_type), PYBIND11_TYPE(cname), name, fn, __VA_ARGS__)

Definition at line 2880 of file pybind11.h.

◆ PYBIND11_OVERLOAD_PURE

#define PYBIND11_OVERLOAD_PURE (   ret_type,
  cname,
  fn,
  ... 
)    PYBIND11_OVERRIDE_PURE(PYBIND11_TYPE(ret_type), PYBIND11_TYPE(cname), fn, __VA_ARGS__);

Definition at line 2887 of file pybind11.h.

◆ PYBIND11_OVERLOAD_PURE_NAME

#define PYBIND11_OVERLOAD_PURE_NAME (   ret_type,
  cname,
  name,
  fn,
  ... 
)
Value:
PYBIND11_TYPE(ret_type), PYBIND11_TYPE(cname), name, fn, __VA_ARGS__);

Definition at line 2882 of file pybind11.h.

◆ PYBIND11_OVERRIDE

#define PYBIND11_OVERRIDE (   ret_type,
  cname,
  fn,
  ... 
)    PYBIND11_OVERRIDE_NAME(PYBIND11_TYPE(ret_type), PYBIND11_TYPE(cname), #fn, fn, __VA_ARGS__)

\rst Macro to populate the virtual method in the trampoline class. This macro tries to look up the method from the Python side, deals with the :ref:gil and necessary argument conversions to call this method and return the appropriate type. This macro should be used if the method name in C and in Python are identical. See :ref:overriding_virtuals for more information.

.. code-block:: cpp

class PyAnimal : public Animal { public: Inherit the constructors using Animal::Animal;

Trampoline (need one for each virtual function) std::string go(int n_times) override { PYBIND11_OVERRIDE_PURE( std::string, // Return type (ret_type) Animal, // Parent class (cname) go, // Name of function in C++ (must match Python name) (fn) n_times // Argument(s) (...) ); } }; \endrst

Definition at line 2854 of file pybind11.h.

◆ PYBIND11_OVERRIDE_IMPL

#define PYBIND11_OVERRIDE_IMPL (   ret_type,
  cname,
  name,
  ... 
)
Value:
do { \
pybind11::gil_scoped_acquire gil; \
pybind11::function override \
= pybind11::get_override(static_cast<const cname *>(this), name); \
if (override) { \
auto o = override(__VA_ARGS__); \
static pybind11::detail::override_caster_t<ret_type> caster; \
return pybind11::detail::cast_ref<ret_type>(std::move(o), caster); \
} \
return pybind11::detail::cast_safe<ret_type>(std::move(o)); \
} \
} while (false)

Definition at line 2779 of file pybind11.h.

◆ PYBIND11_OVERRIDE_NAME

#define PYBIND11_OVERRIDE_NAME (   ret_type,
  cname,
  name,
  fn,
  ... 
)
Value:
do { \
PYBIND11_OVERRIDE_IMPL(PYBIND11_TYPE(ret_type), PYBIND11_TYPE(cname), name, __VA_ARGS__); \
return cname::fn(__VA_ARGS__); \
} while (false)

\rst Macro to populate the virtual method in the trampoline class. This macro tries to look up a method named 'fn' from the Python side, deals with the :ref:gil and necessary argument conversions to call this method and return the appropriate type. See :ref:overriding_virtuals for more information. This macro should be used when the method name in C is not the same as the method name in Python. For example with __str__.

.. code-block:: cpp

std::string toString() override { PYBIND11_OVERRIDE_NAME( std::string, // Return type (ret_type) Animal, // Parent class (cname) "__str__", // Name of method in Python (name) toString, // Name of function in C++ (fn) ); } \endrst

Definition at line 2812 of file pybind11.h.

◆ PYBIND11_OVERRIDE_PURE

#define PYBIND11_OVERRIDE_PURE (   ret_type,
  cname,
  fn,
  ... 
)
Value:
PYBIND11_TYPE(ret_type), PYBIND11_TYPE(cname), #fn, fn, __VA_ARGS__)

\rst Macro for pure virtual functions, this function is identical to :c:macro:PYBIND11_OVERRIDE, except that it throws if no override can be found. \endrst

Definition at line 2861 of file pybind11.h.

◆ PYBIND11_OVERRIDE_PURE_NAME

#define PYBIND11_OVERRIDE_PURE_NAME (   ret_type,
  cname,
  name,
  fn,
  ... 
)
Value:
do { \
PYBIND11_OVERRIDE_IMPL(PYBIND11_TYPE(ret_type), PYBIND11_TYPE(cname), name, __VA_ARGS__); \
"Tried to call pure virtual function \"" PYBIND11_STRINGIFY(cname) "::" name "\""); \
} while (false)

\rst Macro for pure virtual functions, this function is identical to :c:macro:PYBIND11_OVERRIDE_NAME, except that it throws if no override can be found. \endrst

Definition at line 2822 of file pybind11.h.

◆ PYBIND11_STD_LAUNDER

#define PYBIND11_STD_LAUNDER

Definition at line 31 of file pybind11.h.

◆ PYBIND11_THROW

#define PYBIND11_THROW   throw type_error("Expected an enumeration of matching type!");

Typedef Documentation

◆ equivalent_integer_t

template<typename IntLike >
using equivalent_integer_t = typename equivalent_integer<std::is_signed<IntLike>::value, sizeof(IntLike)>::type

Definition at line 2164 of file pybind11.h.

◆ module

using module = module_

Definition at line 1282 of file pybind11.h.

Function Documentation

◆ add_class_method()

void add_class_method ( object cls,
const char *  name_,
const cpp_function cf 
)
inline

Definition at line 1463 of file pybind11.h.

◆ all_type_info_get_cache()

std::pair<decltype(internals::registered_types_py)::iterator, bool> all_type_info_get_cache ( PyTypeObject *  type)
inline

Definition at line 2273 of file pybind11.h.

◆ apply_exception_translators()

bool apply_exception_translators ( std::forward_list< ExceptionTranslator > &  translators)
inline

Definition at line 59 of file pybind11.h.

◆ call_operator_delete() [1/2]

template<typename T , enable_if_t< has_operator_delete< T >::value, int > = 0>
void call_operator_delete ( T p,
size_t  s,
size_t   
)

Call class-specific delete if it exists or global otherwise. Can also be an overload set.

Definition at line 1433 of file pybind11.h.

◆ call_operator_delete() [2/2]

void call_operator_delete ( void *  p,
size_t  s,
size_t  a 
)
inline

Definition at line 1443 of file pybind11.h.

◆ enum_name()

str enum_name ( handle  arg)
inline

Definition at line 1945 of file pybind11.h.

◆ get_exception_object()

template<typename CppException >
exception<CppException>& get_exception_object ( )

Definition at line 2560 of file pybind11.h.

◆ get_overload()

template<class T >
function get_overload ( const T this_ptr,
const char *  name 
)
inline

Definition at line 2874 of file pybind11.h.

◆ get_override()

template<class T >
function get_override ( const T this_ptr,
const char *  name 
)

\rst Try to retrieve a python method by the provided name from the instance pointed to by the this_ptr.

:this_ptr: The pointer to the object the overridden method should be retrieved for. This should be the first non-trampoline class encountered in the inheritance chain. :name: The name of the overridden Python method to retrieve. :return: The Python method by this name from the object or an empty function wrapper. \endrst

Definition at line 2774 of file pybind11.h.

◆ get_type_overload()

function get_type_overload ( const void *  this_ptr,
const detail::type_info *  this_type,
const char *  name 
)
inline

Definition at line 2869 of file pybind11.h.

◆ get_type_override()

function get_type_override ( const void *  this_ptr,
const type_info this_type,
const char *  name 
)
inline

Definition at line 2674 of file pybind11.h.

◆ implicitly_convertible()

template<typename InputType , typename OutputType >
void implicitly_convertible ( )

Definition at line 2481 of file pybind11.h.

◆ init() [1/3]

template<typename... Args>
detail::initimpl::constructor<Args...> init ( )

Binds an existing constructor taking arguments Args...

Definition at line 1912 of file pybind11.h.

◆ init() [2/3]

template<typename CFunc , typename AFunc , typename Ret = detail::initimpl::factory<CFunc, AFunc>>
Ret init ( CFunc &&  c,
AFunc &&  a 
)

Dual-argument factory function: the first function is called when no alias is needed, the second when an alias is needed (i.e. due to python-side inheritance). Arguments must be identical.

Definition at line 1932 of file pybind11.h.

◆ init() [3/3]

template<typename Func , typename Ret = detail::initimpl::factory<Func>>
Ret init ( Func &&  f)

Binds a factory function as a constructor.

Definition at line 1924 of file pybind11.h.

◆ init_alias()

template<typename... Args>
detail::initimpl::alias_constructor<Args...> init_alias ( )

Like init<Args...>(), but the instance is always constructed through the alias class (even when not inheriting on the Python side).

Definition at line 1918 of file pybind11.h.

◆ keep_alive_impl() [1/2]

PYBIND11_NOINLINE void keep_alive_impl ( handle  nurse,
handle  patient 
)

Definition at line 2224 of file pybind11.h.

◆ keep_alive_impl() [2/2]

PYBIND11_NOINLINE void keep_alive_impl ( size_t  Nurse,
size_t  Patient,
function_call call,
handle  ret 
)

Definition at line 2255 of file pybind11.h.

◆ make_iterator() [1/2]

template<return_value_policy Policy = return_value_policy::reference_internal, typename Iterator , typename Sentinel , typename ValueType = typename detail::iterator_access<Iterator>::result_type, typename... Extra>
iterator make_iterator ( Iterator  first,
Sentinel  last,
Extra &&...  extra 
)

Makes a python iterator from a first and past-the-end C++ InputIterator.

Definition at line 2409 of file pybind11.h.

◆ make_iterator() [2/2]

template<return_value_policy Policy = return_value_policy::reference_internal, typename Type , typename... Extra>
iterator make_iterator ( Type &  value,
Extra &&...  extra 
)

Makes an iterator over values of an stl container or other container supporting std::begin()/std::end()

Definition at line 2455 of file pybind11.h.

◆ make_iterator_impl()

template<typename Access , return_value_policy Policy, typename Iterator , typename Sentinel , typename ValueType , typename... Extra>
iterator make_iterator_impl ( Iterator  first,
Sentinel  last,
Extra &&...  extra 
)

Definition at line 2372 of file pybind11.h.

◆ make_key_iterator() [1/2]

template<return_value_policy Policy = return_value_policy::reference_internal, typename Iterator , typename Sentinel , typename KeyType = typename detail::iterator_key_access<Iterator>::result_type, typename... Extra>
iterator make_key_iterator ( Iterator  first,
Sentinel  last,
Extra &&...  extra 
)

Makes a python iterator over the keys (.first) of a iterator over pairs from a first and past-the-end InputIterator.

Definition at line 2425 of file pybind11.h.

◆ make_key_iterator() [2/2]

template<return_value_policy Policy = return_value_policy::reference_internal, typename Type , typename... Extra>
iterator make_key_iterator ( Type &  value,
Extra &&...  extra 
)

Makes an iterator over the keys (.first) of a stl map-like container supporting std::begin()/std::end()

Definition at line 2465 of file pybind11.h.

◆ make_value_iterator() [1/2]

template<return_value_policy Policy = return_value_policy::reference_internal, typename Iterator , typename Sentinel , typename ValueType = typename detail::iterator_value_access<Iterator>::result_type, typename... Extra>
iterator make_value_iterator ( Iterator  first,
Sentinel  last,
Extra &&...  extra 
)

Makes a python iterator over the values (.second) of a iterator over pairs from a first and past-the-end InputIterator.

Definition at line 2441 of file pybind11.h.

◆ make_value_iterator() [2/2]

template<return_value_policy Policy = return_value_policy::reference_internal, typename Type , typename... Extra>
iterator make_value_iterator ( Type &  value,
Extra &&...  extra 
)

Makes an iterator over the values (.second) of a stl map-like container supporting std::begin()/std::end()

Definition at line 2475 of file pybind11.h.

◆ method_adaptor() [1/2]

template<typename , typename F >
auto method_adaptor ( F &&  f) -> decltype(std::forward<F>(f))

Given a pointer to a member function, cast it to its Derived version. Forward everything else unchanged.

Definition at line 1475 of file pybind11.h.

◆ method_adaptor() [2/2]

template<typename Derived , typename Return , typename Class , typename... Args>
auto method_adaptor ( Return(Class::*)(Args...)  pmf) -> Return (Derived::*)(Args...)

Definition at line 1480 of file pybind11.h.

◆ pickle()

template<typename GetState , typename SetState >
detail::initimpl::pickle_factory<GetState, SetState> pickle ( GetState &&  g,
SetState &&  s 
)

Binds pickling functions __getstate__ and __setstate__ and ensures that the type returned by __getstate__ is the same as the argument accepted by __setstate__.

Definition at line 1939 of file pybind11.h.

◆ print() [1/2]

template<return_value_policy policy = return_value_policy::automatic_reference, typename... Args>
void print ( Args &&...  args)

Definition at line 2653 of file pybind11.h.

◆ print() [2/2]

PYBIND11_NOINLINE void print ( const tuple args,
const dict kwargs 
)

Definition at line 2619 of file pybind11.h.

◆ PYBIND11_DEPRECATED()

template<typename... Args, typename = detail::enable_if_t<args_are_all_keyword_or_ds<Args...>()>>
PYBIND11_DEPRECATED ( "make_simple_namespace should be replaced with " "py::module_::import(\"types\").attr(\"SimpleNamespace\") "  ) &&

Definition at line 1293 of file pybind11.h.

◆ register_exception()

template<typename CppException >
exception<CppException>& register_exception ( handle  scope,
const char *  name,
handle  base = PyExc_Exception 
)

Registers a Python exception in m of the given name and installs a translator to translate the C++ exception to the created Python exception using the what() method. This is intended for simple exception translations; for more complex translation, register the exception object and translator directly.

Definition at line 2600 of file pybind11.h.

◆ register_exception_impl()

template<typename CppException >
exception<CppException>& register_exception_impl ( handle  scope,
const char *  name,
handle  base,
bool  isLocal 
)

Definition at line 2568 of file pybind11.h.

◆ register_exception_translator()

void register_exception_translator ( ExceptionTranslator &&  translator)
inline

Definition at line 2512 of file pybind11.h.

◆ register_local_exception()

template<typename CppException >
exception<CppException>& register_local_exception ( handle  scope,
const char *  name,
handle  base = PyExc_Exception 
)

Registers a Python exception in m of the given name and installs a translator to translate the C++ exception to the created Python exception using the what() method. This translator will only be used for exceptions that are thrown in this module and will be tried before global exception translators, including those registered with register_exception. This is intended for simple exception translations; for more complex translation, register the exception object and translator directly.

Definition at line 2614 of file pybind11.h.

◆ register_local_exception_translator()

void register_local_exception_translator ( ExceptionTranslator &&  translator)
inline

Add a new module-local exception translator. Locally registered functions will be tried before any globally registered exception translators, which will only be invoked if the module-local handlers do not deal with the exception.

Definition at line 2523 of file pybind11.h.

◆ set_operator_new() [1/2]

template<typename >
void set_operator_new (   ...)

Definition at line 1417 of file pybind11.h.

◆ set_operator_new() [2/2]

template<typename T , typename = void_t<decltype(static_cast<void *(*) (size_t)>(T::operator new))>>
void set_operator_new ( type_record r)

Set the pointer to operator new if it exists. The cast is needed because it can be overloaded.

Definition at line 1412 of file pybind11.h.

name
Annotation for function names.
Definition: attr.h:51
fn
static double fn[10]
Definition: fresnl.c:103
b
Scalar * b
Definition: benchVecAdd.cpp:17
type::handle_of
static handle handle_of()
Definition: cast.h:1684
PYBIND11_STRINGIFY
#define PYBIND11_STRINGIFY(x)
Definition: wrap/pybind11/include/pybind11/detail/common.h:374
get_override
function get_override(const T *this_ptr, const char *name)
Definition: pybind11.h:2774
cpp_function
Wraps an arbitrary C++ function/method/lambda function/.. into a callable Python object.
Definition: pybind11.h:82
pybind11_fail
PyExc_RuntimeError PYBIND11_NOINLINE void pybind11_fail(const char *reason)
Used internally.
Definition: wrap/pybind11/include/pybind11/detail/common.h:1013
PYBIND11_TYPE
#define PYBIND11_TYPE(...)
Definition: cast.h:1702
a
ArrayXXi a
Definition: Array_initializer_list_23_cxx11.cpp:1
PYBIND11_OVERRIDE_PURE_NAME
#define PYBIND11_OVERRIDE_PURE_NAME(ret_type, cname, name, fn,...)
Definition: pybind11.h:2822
test_callbacks.value
value
Definition: test_callbacks.py:158


gtsam
Author(s):
autogenerated on Thu Jun 13 2024 03:11:41