Scarab  v2.9.0
Project 8 C++ Utility Library
Classes | Namespaces | Typedefs | Functions
stl_bind.h File Reference
#include "detail/common.h"
#include "operators.h"
#include <algorithm>
#include <sstream>
Include dependency graph for stl_bind.h:

Go to the source code of this file.

Classes

struct  container_traits< T >
 
struct  is_comparable< T, SFINAE >
 
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_vector > >
 
struct  is_comparable< T, enable_if_t< container_traits< T >::is_pair > >
 
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 > >
 

Namespaces

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

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 , typename , typename... Args>
void vector_if_copy_constructible (const Args &...)
 
template<typename , typename , typename... Args>
void vector_if_equal_operator (const Args &...)
 
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_if_copy_constructible (enable_if_t< is_copy_constructible< Vector >::value, Class_ > &cl)
 
template<typename Vector , typename Class_ >
void vector_if_equal_operator (enable_if_t< is_comparable< Vector >::value, Class_ > &cl)
 
template<typename Vector , typename Class_ >
void vector_modifiers (enable_if_t< is_copy_constructible< typename Vector::value_type >::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_ >
void vector_accessor (enable_if_t< vector_needs_copy< 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 Vector , typename Class_ , typename... Args>
enable_if_t< detail::any_of< std::is_same< Args, buffer_protocol >... >::value > vector_buffer (Class_ &cl)
 
template<typename Vector , typename Class_ , typename... Args>
enable_if_t<!detail::any_of< std::is_same< Args, buffer_protocol >... >::value > vector_buffer (Class_ &)
 
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_if_insertion_operator (const Args &...)
 
template<typename , typename , typename... Args>
void map_assignment (const Args &...)
 
template<typename Map , typename Class_ >
void map_assignment (enable_if_t< std::is_copy_assignable< typename Map::mapped_type >::value, Class_ > &cl)
 
template<typename Map , typename Class_ >
void map_assignment (enable_if_t< !std::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 Map , typename holder_type = std::unique_ptr<Map>, typename... Args>
class_< Map, holder_type > bind_map (handle scope, const std::string &name, Args &&... args)