μHAL (v2.8.17)
Part of the IPbus software repository
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Private Types | Static Private Attributes | List of all members
tuple_caster< Tuple, Ts > Class Template Reference

#include </builds/ipbus/ipbus-software/uhal/python/pybind11-python2/include/pybind11/cast.h>

Inheritance diagram for tuple_caster< Tuple, Ts >:
[legend]
Collaboration diagram for tuple_caster< Tuple, Ts >:
[legend]

Public Types

template<typename T >
using cast_op_type = type
 
template<typename T >
using cast_op_type = type
 

Public Member Functions

bool load (handle src, bool convert)
 
 operator type () &
 
 operator type () &&
 
bool load (handle src, bool convert)
 
 operator type () &
 
 operator type () &&
 

Static Public Member Functions

template<typename T >
static handle cast (T &&src, return_value_policy policy, handle parent)
 
template<typename T >
static handle cast (T *src, return_value_policy policy, handle parent)
 
template<typename T >
static handle cast (T &&src, return_value_policy policy, handle parent)
 
template<typename T >
static handle cast (T *src, return_value_policy policy, handle parent)
 

Static Public Attributes

static constexpr auto name = const_name("Tuple[") + concat(make_caster<Ts>::name...) + const_name("]")
 

Protected Member Functions

template<size_t... Is>
type implicit_cast (index_sequence< Is... >) &
 
template<size_t... Is>
type implicit_cast (index_sequence< Is... >) &&
 
template<size_t... Is>
bool load_impl (const sequence &seq, bool convert, index_sequence< Is... >)
 
template<size_t... Is>
type implicit_cast (index_sequence< Is... >) &
 
template<size_t... Is>
type implicit_cast (index_sequence< Is... >) &&
 
template<size_t... Is>
bool load_impl (const sequence &seq, bool convert, index_sequence< Is... >)
 

Static Protected Member Functions

static constexpr bool load_impl (const sequence &, bool, index_sequence<>)
 
template<typename T , size_t... Is>
static handle cast_impl (T &&src, return_value_policy policy, handle parent, index_sequence< Is... >)
 
static constexpr bool load_impl (const sequence &, bool, index_sequence<>)
 
template<typename T , size_t... Is>
static handle cast_impl (T &&src, return_value_policy policy, handle parent, index_sequence< Is... >)
 

Protected Attributes

Tuple< make_caster< Ts >... > subcasters
 

Private Types

using type = Tuple< Ts... >
 
using indices = make_index_sequence< size >
 
using type = Tuple< Ts... >
 
using indices = make_index_sequence< size >
 

Static Private Attributes

static constexpr auto size = sizeof...(Ts)
 

Detailed Description

template<template< typename... > class Tuple, typename... Ts>
class tuple_caster< Tuple, Ts >

Definition at line 634 of file cast.h.

Member Typedef Documentation

◆ cast_op_type [1/2]

template<template< typename... > class Tuple, typename... Ts>
template<typename T >
using tuple_caster< Tuple, Ts >::cast_op_type = type

Definition at line 674 of file cast.h.

◆ cast_op_type [2/2]

template<template< typename... > class Tuple, typename... Ts>
template<typename T >
using tuple_caster< Tuple, Ts >::cast_op_type = type

Definition at line 667 of file cast.h.

◆ indices [1/2]

template<template< typename... > class Tuple, typename... Ts>
using tuple_caster< Tuple, Ts >::indices = make_index_sequence<size>
private

Definition at line 637 of file cast.h.

◆ indices [2/2]

template<template< typename... > class Tuple, typename... Ts>
using tuple_caster< Tuple, Ts >::indices = make_index_sequence<size>
private

Definition at line 630 of file cast.h.

◆ type [1/2]

template<template< typename... > class Tuple, typename... Ts>
using tuple_caster< Tuple, Ts >::type = Tuple<Ts...>
private

Definition at line 635 of file cast.h.

◆ type [2/2]

template<template< typename... > class Tuple, typename... Ts>
using tuple_caster< Tuple, Ts >::type = Tuple<Ts...>
private

Definition at line 628 of file cast.h.

Member Function Documentation

◆ cast() [1/4]

template<template< typename... > class Tuple, typename... Ts>
template<typename T >
static handle tuple_caster< Tuple, Ts >::cast ( T &&  src,
return_value_policy  policy,
handle  parent 
)
inlinestatic

Definition at line 652 of file cast.h.

References tuple_caster< Tuple, Ts >::cast_impl().

Referenced by tuple_caster< Tuple, Ts >::cast().

◆ cast() [2/4]

template<template< typename... > class Tuple, typename... Ts>
template<typename T >
static handle tuple_caster< Tuple, Ts >::cast ( T &&  src,
return_value_policy  policy,
handle  parent 
)
inlinestatic

Definition at line 645 of file cast.h.

References tuple_caster< Tuple, Ts >::cast_impl().

◆ cast() [3/4]

template<template< typename... > class Tuple, typename... Ts>
template<typename T >
static handle tuple_caster< Tuple, Ts >::cast ( T *  src,
return_value_policy  policy,
handle  parent 
)
inlinestatic

Definition at line 658 of file cast.h.

References tuple_caster< Tuple, Ts >::cast(), and object::release().

◆ cast() [4/4]

template<template< typename... > class Tuple, typename... Ts>
template<typename T >
static handle tuple_caster< Tuple, Ts >::cast ( T *  src,
return_value_policy  policy,
handle  parent 
)
inlinestatic

Definition at line 651 of file cast.h.

References tuple_caster< Tuple, Ts >::cast(), and object::release().

◆ cast_impl() [1/2]

template<template< typename... > class Tuple, typename... Ts>
template<typename T , size_t... Is>
static handle tuple_caster< Tuple, Ts >::cast_impl ( T &&  src,
return_value_policy  policy,
handle  parent,
index_sequence< Is... >   
)
inlinestaticprotected

◆ cast_impl() [2/2]

template<template< typename... > class Tuple, typename... Ts>
template<typename T , size_t... Is>
static handle tuple_caster< Tuple, Ts >::cast_impl ( T &&  src,
return_value_policy  policy,
handle  parent,
index_sequence< Is... >   
)
inlinestaticprotected

◆ implicit_cast() [1/4]

template<template< typename... > class Tuple, typename... Ts>
template<size_t... Is>
type tuple_caster< Tuple, Ts >::implicit_cast ( index_sequence< Is... >  ) &
inlineprotected

Definition at line 681 of file cast.h.

References tuple_caster< Tuple, Ts >::subcasters.

Referenced by tuple_caster< Tuple, Ts >::operator type().

◆ implicit_cast() [2/4]

template<template< typename... > class Tuple, typename... Ts>
template<size_t... Is>
type tuple_caster< Tuple, Ts >::implicit_cast ( index_sequence< Is... >  ) &
inlineprotected

Definition at line 674 of file cast.h.

References tuple_caster< Tuple, Ts >::subcasters.

◆ implicit_cast() [3/4]

template<template< typename... > class Tuple, typename... Ts>
template<size_t... Is>
type tuple_caster< Tuple, Ts >::implicit_cast ( index_sequence< Is... >  ) &&
inlineprotected

Definition at line 685 of file cast.h.

References tuple_caster< Tuple, Ts >::subcasters.

◆ implicit_cast() [4/4]

template<template< typename... > class Tuple, typename... Ts>
template<size_t... Is>
type tuple_caster< Tuple, Ts >::implicit_cast ( index_sequence< Is... >  ) &&
inlineprotected

Definition at line 678 of file cast.h.

References tuple_caster< Tuple, Ts >::subcasters.

◆ load() [1/2]

template<template< typename... > class Tuple, typename... Ts>
bool tuple_caster< Tuple, Ts >::load ( handle  src,
bool  convert 
)
inline

◆ load() [2/2]

template<template< typename... > class Tuple, typename... Ts>
bool tuple_caster< Tuple, Ts >::load ( handle  src,
bool  convert 
)
inline

◆ load_impl() [1/4]

template<template< typename... > class Tuple, typename... Ts>
static constexpr bool tuple_caster< Tuple, Ts >::load_impl ( const sequence ,
bool  ,
index_sequence<>   
)
inlinestaticconstexprprotected

Definition at line 689 of file cast.h.

Referenced by tuple_caster< Tuple, Ts >::load().

◆ load_impl() [2/4]

template<template< typename... > class Tuple, typename... Ts>
static constexpr bool tuple_caster< Tuple, Ts >::load_impl ( const sequence ,
bool  ,
index_sequence<>   
)
inlinestaticconstexprprotected

Definition at line 682 of file cast.h.

◆ load_impl() [3/4]

template<template< typename... > class Tuple, typename... Ts>
template<size_t... Is>
bool tuple_caster< Tuple, Ts >::load_impl ( const sequence seq,
bool  convert,
index_sequence< Is... >   
)
inlineprotected

◆ load_impl() [4/4]

template<template< typename... > class Tuple, typename... Ts>
template<size_t... Is>
bool tuple_caster< Tuple, Ts >::load_impl ( const sequence seq,
bool  convert,
index_sequence< Is... >   
)
inlineprotected

◆ operator type() [1/4]

template<template< typename... > class Tuple, typename... Ts>
tuple_caster< Tuple, Ts >::operator type ( ) &
inlineexplicit

Definition at line 676 of file cast.h.

References tuple_caster< Tuple, Ts >::implicit_cast().

◆ operator type() [2/4]

template<template< typename... > class Tuple, typename... Ts>
tuple_caster< Tuple, Ts >::operator type ( ) &
inlineexplicit

Definition at line 669 of file cast.h.

References tuple_caster< Tuple, Ts >::implicit_cast().

◆ operator type() [3/4]

template<template< typename... > class Tuple, typename... Ts>
tuple_caster< Tuple, Ts >::operator type ( ) &&
inlineexplicit

Definition at line 677 of file cast.h.

◆ operator type() [4/4]

template<template< typename... > class Tuple, typename... Ts>
tuple_caster< Tuple, Ts >::operator type ( ) &&
inlineexplicit

Definition at line 670 of file cast.h.

Member Data Documentation

◆ name

template<template< typename... > class Tuple, typename... Ts>
static constexpr auto tuple_caster< Tuple, Ts >::name = const_name("Tuple[") + concat(make_caster<Ts>::name...) + const_name("]")
staticconstexpr

Definition at line 670 of file cast.h.

◆ size

template<template< typename... > class Tuple, typename... Ts>
static constexpr auto tuple_caster< Tuple, Ts >::size = sizeof...(Ts)
staticconstexprprivate

◆ subcasters

template<template< typename... > class Tuple, typename... Ts>
Tuple< make_caster< Ts >... > tuple_caster< Tuple, Ts >::subcasters
protected

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