Classes | Typedefs | Functions
stl_bind.h File Reference
#include "detail/common.h"
#include "detail/type_caster_base.h"
#include "cast.h"
#include "operators.h"
#include <algorithm>
#include <sstream>
#include <type_traits>
Include dependency graph for stl_bind.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  container_traits< T >
 
struct  is_comparable< T, SFINAE >
 
struct  is_comparable< recursive_bottom >
 
struct  is_comparable< T, enable_if_t< container_traits< T >::is_element &&container_traits< T >::is_comparable > >
 
struct  is_comparable< T, enable_if_t< container_traits< T >::is_pair > >
 
struct  is_comparable< T, enable_if_t< container_traits< T >::is_vector > >
 
struct  items_view
 
struct  ItemsViewImpl< Map >
 
struct  keys_view
 
struct  KeysViewImpl< Map >
 
struct  values_view
 
struct  ValuesViewImpl< Map >
 
struct  vector_has_data_and_format< Vector, typename >
 
struct  vector_has_data_and_format< Vector, enable_if_t< std::is_same< decltype(format_descriptor< typename Vector::value_type >::format(), std::declval< Vector >().data()), typename Vector::value_type * >::value > >
 

Typedefs

template<typename Vector >
using vector_needs_copy = negation< std::is_same< decltype(std::declval< Vector >()[typename Vector::size_type()]), typename Vector::value_type & > >
 

Functions

template<typename... Args>
constexpr bool args_any_are_buffer ()
 
template<typename Map , typename holder_type = std::unique_ptr<Map>, typename... Args>
class_< Map, holder_type > bind_map (handle scope, const std::string &name, Args &&...args)
 
template<typename Vector , typename holder_type = std::unique_ptr<Vector>, typename... Args>
class_< Vector, holder_type > bind_vector (handle scope, std::string const &name, Args &&...args)
 
template<typename , typename , typename... Args>
void map_assignment (const Args &...)
 
template<typename Map , typename Class_ >
void map_assignment (enable_if_t< is_copy_assignable< typename Map::mapped_type >::value, Class_ > &cl)
 
template<typename Map , typename Class_ >
void map_assignment (enable_if_t<!is_copy_assignable< typename Map::mapped_type >::value &&is_copy_constructible< typename Map::mapped_type >::value, Class_ > &cl)
 
template<typename Map , typename Class_ >
auto map_if_insertion_operator (Class_ &cl, std::string const &name) -> decltype(std::declval< std::ostream & >()<< std::declval< typename Map::key_type >()<< std::declval< typename Map::mapped_type >(), void())
 
template<typename , typename , typename... Args>
void map_if_insertion_operator (const Args &...)
 
template<typename Vector , typename Class_ >
void vector_accessor (enable_if_t< vector_needs_copy< Vector >::value, Class_ > &cl)
 
template<typename Vector , typename Class_ >
void vector_accessor (enable_if_t<!vector_needs_copy< Vector >::value, Class_ > &cl)
 
template<typename Vector , typename Class_ , typename... Args>
void vector_buffer (Class_ &cl)
 
template<typename Vector , typename Class_ , typename... Args>
void vector_buffer_impl (Class_ &, std::false_type)
 
template<typename Vector , typename Class_ , typename... Args>
void vector_buffer_impl (Class_ &cl, std::true_type)
 
template<typename , typename , typename... Args>
void vector_if_copy_constructible (const Args &...)
 
template<typename Vector , typename Class_ >
void vector_if_copy_constructible (enable_if_t< is_copy_constructible< Vector >::value, Class_ > &cl)
 
template<typename , typename , typename... Args>
void vector_if_equal_operator (const Args &...)
 
template<typename Vector , typename Class_ >
void vector_if_equal_operator (enable_if_t< is_comparable< Vector >::value, Class_ > &cl)
 
template<typename Vector , typename Class_ >
auto vector_if_insertion_operator (Class_ &cl, std::string const &name) -> decltype(std::declval< std::ostream & >()<< std::declval< typename Vector::value_type >(), void())
 
template<typename , typename , typename... Args>
void vector_if_insertion_operator (const Args &...)
 
template<typename , typename , typename... Args>
void vector_modifiers (const Args &...)
 
template<typename Vector , typename Class_ >
void vector_modifiers (enable_if_t< is_copy_constructible< typename Vector::value_type >::value, Class_ > &cl)
 

Typedef Documentation

◆ vector_needs_copy

template<typename Vector >
using vector_needs_copy = negation<std::is_same<decltype(std::declval<Vector>()[typename Vector::size_type()]), typename Vector::value_type &> >

Definition at line 312 of file stl_bind.h.

Function Documentation

◆ args_any_are_buffer()

template<typename... Args>
constexpr bool args_any_are_buffer ( )
constexpr

Definition at line 420 of file stl_bind.h.

◆ bind_map()

template<typename Map , typename holder_type = std::unique_ptr<Map>, typename... Args>
class_<Map, holder_type> bind_map ( handle  scope,
const std::string &  name,
Args &&...  args 
)

Definition at line 700 of file stl_bind.h.

◆ bind_vector()

template<typename Vector , typename holder_type = std::unique_ptr<Vector>, typename... Args>
class_<Vector, holder_type> bind_vector ( handle  scope,
std::string const &  name,
Args &&...  args 
)

Definition at line 491 of file stl_bind.h.

◆ map_assignment() [1/3]

template<typename , typename , typename... Args>
void map_assignment ( const Args &  ...)

Definition at line 582 of file stl_bind.h.

◆ map_assignment() [2/3]

template<typename Map , typename Class_ >
void map_assignment ( enable_if_t< is_copy_assignable< typename Map::mapped_type >::value, Class_ > &  cl)

Definition at line 586 of file stl_bind.h.

◆ map_assignment() [3/3]

template<typename Map , typename Class_ >
void map_assignment ( enable_if_t<!is_copy_assignable< typename Map::mapped_type >::value &&is_copy_constructible< typename Map::mapped_type >::value, Class_ > &  cl)

Definition at line 604 of file stl_bind.h.

◆ map_if_insertion_operator() [1/2]

template<typename Map , typename Class_ >
auto map_if_insertion_operator ( Class_ &  cl,
std::string const &  name 
) -> decltype(std::declval<std::ostream &>() << std::declval<typename Map::key_type>() << std::declval<typename Map::mapped_type>(), void())

Definition at line 623 of file stl_bind.h.

◆ map_if_insertion_operator() [2/2]

template<typename , typename , typename... Args>
void map_if_insertion_operator ( const Args &  ...)

Definition at line 580 of file stl_bind.h.

◆ vector_accessor() [1/2]

template<typename Vector , typename Class_ >
void vector_accessor ( enable_if_t< vector_needs_copy< Vector >::value, Class_ > &  cl)

Definition at line 353 of file stl_bind.h.

◆ vector_accessor() [2/2]

template<typename Vector , typename Class_ >
void vector_accessor ( enable_if_t<!vector_needs_copy< Vector >::value, Class_ > &  cl)

Definition at line 316 of file stl_bind.h.

◆ vector_buffer()

template<typename Vector , typename Class_ , typename... Args>
void vector_buffer ( Class_ &  cl)

Definition at line 480 of file stl_bind.h.

◆ vector_buffer_impl() [1/2]

template<typename Vector , typename Class_ , typename... Args>
void vector_buffer_impl ( Class_ &  ,
std::false_type   
)

Definition at line 477 of file stl_bind.h.

◆ vector_buffer_impl() [2/2]

template<typename Vector , typename Class_ , typename... Args>
void vector_buffer_impl ( Class_ &  cl,
std::true_type   
)

Definition at line 429 of file stl_bind.h.

◆ vector_if_copy_constructible() [1/2]

template<typename , typename , typename... Args>
void vector_if_copy_constructible ( const Args &  ...)

Definition at line 79 of file stl_bind.h.

◆ vector_if_copy_constructible() [2/2]

template<typename Vector , typename Class_ >
void vector_if_copy_constructible ( enable_if_t< is_copy_constructible< Vector >::value, Class_ > &  cl)

Definition at line 88 of file stl_bind.h.

◆ vector_if_equal_operator() [1/2]

template<typename , typename , typename... Args>
void vector_if_equal_operator ( const Args &  ...)

Definition at line 81 of file stl_bind.h.

◆ vector_if_equal_operator() [2/2]

template<typename Vector , typename Class_ >
void vector_if_equal_operator ( enable_if_t< is_comparable< Vector >::value, Class_ > &  cl)

Definition at line 93 of file stl_bind.h.

◆ vector_if_insertion_operator() [1/2]

template<typename Vector , typename Class_ >
auto vector_if_insertion_operator ( Class_ &  cl,
std::string const &  name 
) -> decltype(std::declval<std::ostream &>() << std::declval<typename Vector::value_type>(), void())

Definition at line 382 of file stl_bind.h.

◆ vector_if_insertion_operator() [2/2]

template<typename , typename , typename... Args>
void vector_if_insertion_operator ( const Args &  ...)

Definition at line 83 of file stl_bind.h.

◆ vector_modifiers() [1/2]

template<typename , typename , typename... Args>
void vector_modifiers ( const Args &  ...)

Definition at line 85 of file stl_bind.h.

◆ vector_modifiers() [2/2]

template<typename Vector , typename Class_ >
void vector_modifiers ( enable_if_t< is_copy_constructible< typename Vector::value_type >::value, Class_ > &  cl)

Slicing protocol

Definition at line 130 of file stl_bind.h.



gtsam
Author(s):
autogenerated on Fri Nov 1 2024 03:43:24