Rosetta  2020.46
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Namespaces | Typedefs | Enumerations | Functions
rosetta_binders.hpp File Reference

Support for custom binders for some Rosetta template classes. More...

#include <pybind11/operators.h>
#include <pybind11/stl_bind.h>
#include <numeric/xyzVector.hh>
#include <numeric/xyzVector.io.hh>
#include <numeric/xyzMatrix.io.hh>
#include <utility/vectorL.hh>
#include <utility/vector0.hh>
#include <utility/vector1.hh>
#include <utility/stream_util.hh>
#include <type_traits>
#include <sstream>
#include <set>
#include <map>
#include <list>

Classes

struct  rosetta_binders::has_equal_operator_s< T, SFINAE >
 
struct  rosetta_binders::has_equal_operator_s< T >
 
struct  rosetta_binders::has_equal_operator_s< std::vector< A > >
 
struct  rosetta_binders::has_equal_operator_s< std::set< A > >
 
struct  rosetta_binders::has_equal_operator_s< std::pair< A, B > >
 
struct  rosetta_binders::has_equal_operator_s< std::map< A, B > >
 
struct  rosetta_binders::has_equal_operator_s< utility::vector0< A > >
 
struct  rosetta_binders::has_equal_operator_s< utility::vector1< A > >
 
struct  rosetta_binders::has_insertion_operator_implementation::any_type
 
struct  rosetta_binders::has_insertion_operator_s< T >
 
class  rosetta_binders::utility_vector_binder< Vector, L, T, Allocator >
 

Namespaces

 rosetta_binders
 
 rosetta_binders::has_insertion_operator_implementation
 

Typedefs

template<platform::SSize L, typename T , typename A >
using rosetta_binders::vectorL_binder = utility_vector_binder< utility::vectorL< L, T, A >, L, T, A >
 
template<typename T , typename A >
using rosetta_binders::vector0_binder = utility_vector_binder< utility::vector0< T, A >, 0, T, A >
 
template<typename T , typename A >
using rosetta_binders::vector1_binder = utility_vector_binder< utility::vector1< T, A >, 1, T, A >
 

Enumerations

enum  rosetta_binders::has_insertion_operator_implementation::False
 

Functions

template<typename T >
constexpr auto rosetta_binders::has_equal_operator (int) -> decltype(std::is_same< std::true_type, decltype(std::declval< T >()==std::declval< T >())>::valueandstd::is_same< std::true_type, decltype(std::declval< T >()!=std::declval< T >())>::value)
 
template<typename T >
constexpr bool rosetta_binders::has_equal_operator (...)
 
False rosetta_binders::has_insertion_operator_implementation::operator<< (std::ostream const &, any_type const &)
 
template<typename T >
constexpr bool rosetta_binders::has_insertion_operator ()
 
template<typename T >
void rosetta_binders::xyzVector_add_on_binder (pybind11::class_< numeric::xyzVector< T >, std::shared_ptr< numeric::xyzVector< T > > > &cl)
 
template<typename T >
void rosetta_binders::xyzMatrix_add_on_binder (pybind11::class_< numeric::xyzMatrix< T >, std::shared_ptr< numeric::xyzMatrix< T > > > &cl)
 
template<class CL >
void rosetta_binders::stringstream_add_on_binder (CL &cl)
 
template<typename , typename... Args>
void rosetta_binders::set_add_on_binder_maybe_has_insertion_operator (const Args &...)
 
template<typename T , typename C , typename = typename std::enable_if< has_insertion_operator_s<T>::value >::type>
void rosetta_binders::set_add_on_binder_maybe_has_insertion_operator (C &cl)
 
template<typename T >
void rosetta_binders::set_add_on_binder (pybind11::class_< std::set< T >, std::shared_ptr< std::set< T > > > &cl)
 
template<typename , typename... Args>
void rosetta_binders::list_add_on_binder_maybe_has_equal_operator (const Args &...)
 
template<typename T , typename C , typename = typename std::enable_if< has_equal_operator_s<T>::value >::type>
void rosetta_binders::list_add_on_binder_maybe_has_equal_operator (C &cl)
 
template<typename , typename... Args>
void rosetta_binders::list_add_on_binder_maybe_has_insertion_operator (const Args &...)
 
template<typename T , typename C , typename = typename std::enable_if< has_insertion_operator_s<T>::value >::type>
void rosetta_binders::list_add_on_binder_maybe_has_insertion_operator (C &cl)
 
template<typename T >
void rosetta_binders::list_add_on_binder (pybind11::class_< std::list< T >, std::shared_ptr< std::list< T > > > &cl)
 

Detailed Description

Support for custom binders for some Rosetta template classes.

Author
Sergey Lyskov