Scarab  v2.11.1
Project 8 C++ Utility Library
Classes | Namespaces | Typedefs | Functions
init.h File Reference
#include "class.h"
Include dependency graph for init.h:

Go to the source code of this file.

Classes

class  type_caster< value_and_holder >
 
struct  constructor< Args >
 
struct  alias_constructor< Args >
 
struct  factory< CFunc, AFunc, typename, typename >
 
struct  factory< Func, void_type(*)(), Return(Args...)>
 
struct  factory< CFunc, AFunc, CReturn(CArgs...), AReturn(AArgs...)>
 
struct  pickle_factory< Get, Set, typename, typename >
 Implementation for py::pickle(GetState, SetState) More...
 
struct  pickle_factory< Get, Set, RetState(Self), NewInstance(ArgState)>
 

Namespaces

 pybind11
 glibc defines I as a macro which breaks things, e.g., boost template names
 
 pybind11::detail
 
 pybind11::detail::initimpl
 

Typedefs

template<typename Class >
using Cpp = typename Class::type
 
template<typename Class >
using Alias = typename Class::type_alias
 
template<typename Class >
using Holder = typename Class::holder_type
 
template<typename Class >
using is_alias_constructible = std::is_constructible< Alias< Class >, Cpp< Class > && >
 

Functions

void no_nullptr (void *ptr)
 
template<typename Class , enable_if_t< Class::has_alias, int > = 0>
bool is_alias (Cpp< Class > *ptr)
 
template<typename >
constexpr bool is_alias (void *)
 
template<typename Class , typename... Args, detail::enable_if_t< std::is_constructible< Class, Args... >::value, int > = 0>
Class * construct_or_initialize (Args &&...args)
 
template<typename Class >
void construct_alias_from_cpp (std::true_type, value_and_holder &v_h, Cpp< Class > &&base)
 
template<typename Class >
void construct_alias_from_cpp (std::false_type, value_and_holder &, Cpp< Class > &&)
 
template<typename Class >
void construct (...)
 
template<typename Class >
void construct (value_and_holder &v_h, Cpp< Class > *ptr, bool need_alias)
 
template<typename Class , enable_if_t< Class::has_alias, int > = 0>
void construct (value_and_holder &v_h, Alias< Class > *alias_ptr, bool)
 
template<typename Class >
void construct (value_and_holder &v_h, Holder< Class > holder, bool need_alias)
 
template<typename Class >
void construct (value_and_holder &v_h, Cpp< Class > &&result, bool need_alias)
 
template<typename Class >
void construct (value_and_holder &v_h, Alias< Class > &&result, bool)
 
template<typename Class , typename T >
void setstate (value_and_holder &v_h, T &&result, bool need_alias)
 Set just the C++ state. Same as __init__. More...
 
template<typename Class , typename T , typename O , enable_if_t< std::is_convertible< O, handle >::value, int > = 0>
void setstate (value_and_holder &v_h, std::pair< T, O > &&result, bool need_alias)
 Set both the C++ and Python states. More...