HepMC3 event record library
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Types | Static Private Member Functions | Private Attributes
enum_< Type > Class Template Reference

Binds C++ enumerations and enumeration classes to Python. More...

#include <pybind11.h>

+ Inheritance diagram for enum_< Type >:
+ Collaboration diagram for enum_< Type >:

Public Types

using Base = class_< Type >
 
using Scalar = typename std::underlying_type< Type >::type
 
using type = Type
 
using type_alias = detail::exactly_one_t< is_subtype, void, options... >
 
using holder_type = detail::exactly_one_t< is_holder, std::unique_ptr< type >, options... >
 

Public Member Functions

template<typename... Extra>
 enum_ (const handle &scope, const char *name, const Extra &... extra)
 
enum_export_values ()
 Export enumeration entries into the parent scope. More...
 
enum_value (char const *name, Type value, const char *doc=nullptr)
 Add an enumeration entry. More...
 
class_def (const char *name_, Func &&f, const Extra &... extra)
 
class_def (const detail::op_< id, ot, L, R > &op, const Extra &... extra)
 
class_def (const detail::initimpl::constructor< Args... > &init, const Extra &... extra)
 
class_def (const detail::initimpl::alias_constructor< Args... > &init, const Extra &... extra)
 
class_def (detail::initimpl::factory< Args... > &&init, const Extra &... extra)
 
class_def (detail::initimpl::pickle_factory< Args... > &&pf, const Extra &...extra)
 
class_def_static (const char *name_, Func &&f, const Extra &... extra)
 
class_def_cast (const detail::op_< id, ot, L, R > &op, const Extra &... extra)
 
class_def_buffer (Func &&func)
 
class_def_buffer (Return(Class::*func)(Args...))
 
class_def_buffer (Return(Class::*func)(Args...) const)
 
class_def_readwrite (const char *name, D C::*pm, const Extra &... extra)
 
class_def_readonly (const char *name, const D C::*pm, const Extra &...extra)
 
class_def_readwrite_static (const char *name, D *pm, const Extra &...extra)
 
class_def_readonly_static (const char *name, const D *pm, const Extra &...extra)
 
class_def_property_readonly (const char *name, const Getter &fget, const Extra &...extra)
 Uses return_value_policy::reference_internal by default. More...
 
class_def_property_readonly (const char *name, const cpp_function &fget, const Extra &...extra)
 Uses cpp_function's return_value_policy by default. More...
 
class_def_property_readonly_static (const char *name, const Getter &fget, const Extra &...extra)
 Uses return_value_policy::reference by default. More...
 
class_def_property_readonly_static (const char *name, const cpp_function &fget, const Extra &...extra)
 Uses cpp_function's return_value_policy by default. More...
 
class_def_property (const char *name, const Getter &fget, const Setter &fset, const Extra &...extra)
 Uses return_value_policy::reference_internal by default. More...
 
class_def_property (const char *name, const Getter &fget, const cpp_function &fset, const Extra &...extra)
 
class_def_property (const char *name, const cpp_function &fget, const cpp_function &fset, const Extra &...extra)
 Uses cpp_function's return_value_policy by default. More...
 
class_def_property_static (const char *name, const Getter &fget, const cpp_function &fset, const Extra &...extra)
 Uses return_value_policy::reference by default. More...
 
class_def_property_static (const char *name, const cpp_function &fget, const cpp_function &fset, const Extra &...extra)
 Uses cpp_function's return_value_policy by default. More...
 

Static Public Member Functions

static void add_base (detail::type_record &rec)
 
static void add_base (detail::type_record &)
 

Static Public Attributes

constexpr static bool has_alias
 

Private Types

using is_holder = detail::is_holder_type< Type, T >
 
using is_subtype = detail::is_strict_base_of< Type, T >
 
using is_base = detail::is_strict_base_of< T, Type >
 

Static Private Member Functions

static void init_holder (detail::instance *inst, detail::value_and_holder &v_h, const holder_type *, const std::enable_shared_from_this< T > *)
 Initialize holder object, variant 1: object derives from enable_shared_from_this. More...
 
static void init_holder (detail::instance *inst, detail::value_and_holder &v_h, const holder_type *holder_ptr, const void *)
 Initialize holder object, variant 2: try to construct from existing holder object, if possible. More...
 
static void init_holder_from_existing (const detail::value_and_holder &v_h, const holder_type *holder_ptr, std::true_type)
 
static void init_holder_from_existing (const detail::value_and_holder &v_h, const holder_type *holder_ptr, std::false_type)
 
static void init_instance (detail::instance *inst, const void *holder_ptr)
 
static void dealloc (detail::value_and_holder &v_h)
 Deallocates an instance; via holder, if constructed; otherwise via operator delete. More...
 
static detail::function_record * get_function_record (handle h)
 

Private Attributes

detail::enum_base m_base
 

Detailed Description

template<typename Type>
class enum_< Type >

Binds C++ enumerations and enumeration classes to Python.

Definition at line 1712 of file pybind11.h.

Member Function Documentation

◆ dealloc()

static void dealloc ( detail::value_and_holder &  v_h)
inlinestaticprivateinherited

Deallocates an instance; via holder, if constructed; otherwise via operator delete.

Definition at line 1504 of file pybind11.h.

◆ def_property() [1/2]

class_& def_property ( const char *  name,
const cpp_function fget,
const cpp_function fset,
const Extra &...  extra 
)
inlineinherited

Uses cpp_function's return_value_policy by default.

Definition at line 1410 of file pybind11.h.

◆ def_property() [2/2]

class_& def_property ( const char *  name,
const Getter &  fget,
const Setter &  fset,
const Extra &...  extra 
)
inlineinherited

Uses return_value_policy::reference_internal by default.

Definition at line 1399 of file pybind11.h.

◆ def_property_readonly() [1/2]

class_& def_property_readonly ( const char *  name,
const cpp_function fget,
const Extra &...  extra 
)
inlineinherited

Uses cpp_function's return_value_policy by default.

Definition at line 1381 of file pybind11.h.

◆ def_property_readonly() [2/2]

class_& def_property_readonly ( const char *  name,
const Getter &  fget,
const Extra &...  extra 
)
inlineinherited

Uses return_value_policy::reference_internal by default.

Definition at line 1374 of file pybind11.h.

◆ def_property_readonly_static() [1/2]

class_& def_property_readonly_static ( const char *  name,
const cpp_function fget,
const Extra &...  extra 
)
inlineinherited

Uses cpp_function's return_value_policy by default.

Definition at line 1393 of file pybind11.h.

◆ def_property_readonly_static() [2/2]

class_& def_property_readonly_static ( const char *  name,
const Getter &  fget,
const Extra &...  extra 
)
inlineinherited

Uses return_value_policy::reference by default.

Definition at line 1387 of file pybind11.h.

◆ def_property_static() [1/2]

class_& def_property_static ( const char *  name,
const cpp_function fget,
const cpp_function fset,
const Extra &...  extra 
)
inlineinherited

Uses cpp_function's return_value_policy by default.

Definition at line 1422 of file pybind11.h.

◆ def_property_static() [2/2]

class_& def_property_static ( const char *  name,
const Getter &  fget,
const cpp_function fset,
const Extra &...  extra 
)
inlineinherited

Uses return_value_policy::reference by default.

Definition at line 1416 of file pybind11.h.

◆ export_values()

enum_& export_values ( )
inline

Export enumeration entries into the parent scope.

Definition at line 1746 of file pybind11.h.

References enum_< Type >::export_values().

◆ init_holder() [1/2]

static void init_holder ( detail::instance *  inst,
detail::value_and_holder &  v_h,
const holder_type *  ,
const std::enable_shared_from_this< T > *   
)
inlinestaticprivateinherited

Initialize holder object, variant 1: object derives from enable_shared_from_this.

Definition at line 1451 of file pybind11.h.

◆ init_holder() [2/2]

static void init_holder ( detail::instance *  inst,
detail::value_and_holder &  v_h,
const holder_type *  holder_ptr,
const void *   
)
inlinestaticprivateinherited

Initialize holder object, variant 2: try to construct from existing holder object, if possible.

Definition at line 1479 of file pybind11.h.

◆ init_instance()

static void init_instance ( detail::instance *  inst,
const void *  holder_ptr 
)
inlinestaticprivateinherited

Performs instance initialization including constructing a holder and registering the known instance. Should be called as soon as the type value_ptr is set for an instance. Takes an optional pointer to an existing holder to use; if not specified and the instance is .owned, a new holder will be constructed to manage the value pointer.

Definition at line 1494 of file pybind11.h.

◆ value()

enum_& value ( char const *  name,
Type  value,
const char *  doc = nullptr 
)
inline

Add an enumeration entry.

Definition at line 1752 of file pybind11.h.

References enum_< Type >::value().


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