Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
operators.hpp File Reference
#include <boost/python/detail/prefix.hpp>
#include <boost/python/def_visitor.hpp>
#include <boost/python/converter/arg_to_python.hpp>
#include <boost/python/detail/operator_id.hpp>
#include <boost/python/detail/not_specified.hpp>
#include <boost/python/back_reference.hpp>
#include <boost/mpl/if.hpp>
#include <boost/mpl/eval_if.hpp>
#include <boost/python/self.hpp>
#include <boost/python/other.hpp>
#include <boost/lexical_cast.hpp>
#include <boost/python/refcount.hpp>
#include <boost/python/detail/unwrap_wrapper.hpp>
#include <string>
#include <complex>
Include dependency graph for operators.hpp:
This graph shows which files directly or indirectly include this file:

Classes

struct  boost::python::detail::operator_l< operator_id >
 
struct  boost::python::detail::operator_l< operator_id >::apply< L, R >
 
struct  boost::python::detail::operator_r< operator_id >
 
struct  boost::python::detail::operator_r< operator_id >::apply< L, R >
 
struct  boost::python::detail::operator_1< operator_id >
 
struct  boost::python::detail::operator_1< operator_id >::apply< T >
 
struct  boost::python::detail::operator_l_inner< id, L, R >
 
struct  boost::python::detail::operator_r_inner< id, L, R >
 
struct  boost::python::detail::operator_1_inner< id, T >
 
struct  boost::python::detail::binary_op< id >
 
struct  boost::python::detail::binary_op< id >::apply< T >
 
struct  boost::python::detail::binary_op_l< id, R >
 
struct  boost::python::detail::binary_op_l< id, R >::apply< T >
 
struct  boost::python::detail::binary_op_r< id, L >
 
struct  boost::python::detail::binary_op_r< id, L >::apply< T >
 
struct  boost::python::detail::unary_op< id >
 
struct  boost::python::detail::unary_op< id >::apply< T >
 
struct  boost::python::detail::operator_< id, L, R >
 
struct  boost::python::detail::operator_l< op_add >
 
struct  boost::python::detail::operator_l< op_add >::apply< L, R >
 
struct  boost::python::detail::operator_r< op_add >
 
struct  boost::python::detail::operator_r< op_add >::apply< L, R >
 
struct  boost::python::detail::operator_l< op_sub >
 
struct  boost::python::detail::operator_l< op_sub >::apply< L, R >
 
struct  boost::python::detail::operator_r< op_sub >
 
struct  boost::python::detail::operator_r< op_sub >::apply< L, R >
 
struct  boost::python::detail::operator_l< op_mul >
 
struct  boost::python::detail::operator_l< op_mul >::apply< L, R >
 
struct  boost::python::detail::operator_r< op_mul >
 
struct  boost::python::detail::operator_r< op_mul >::apply< L, R >
 
struct  boost::python::detail::operator_l< op_div >
 
struct  boost::python::detail::operator_l< op_div >::apply< L, R >
 
struct  boost::python::detail::operator_r< op_div >
 
struct  boost::python::detail::operator_r< op_div >::apply< L, R >
 
struct  boost::python::detail::operator_l< op_mod >
 
struct  boost::python::detail::operator_l< op_mod >::apply< L, R >
 
struct  boost::python::detail::operator_r< op_mod >
 
struct  boost::python::detail::operator_r< op_mod >::apply< L, R >
 
struct  boost::python::detail::operator_l< op_lshift >
 
struct  boost::python::detail::operator_l< op_lshift >::apply< L, R >
 
struct  boost::python::detail::operator_r< op_lshift >
 
struct  boost::python::detail::operator_r< op_lshift >::apply< L, R >
 
struct  boost::python::detail::operator_l< op_rshift >
 
struct  boost::python::detail::operator_l< op_rshift >::apply< L, R >
 
struct  boost::python::detail::operator_r< op_rshift >
 
struct  boost::python::detail::operator_r< op_rshift >::apply< L, R >
 
struct  boost::python::detail::operator_l< op_and >
 
struct  boost::python::detail::operator_l< op_and >::apply< L, R >
 
struct  boost::python::detail::operator_r< op_and >
 
struct  boost::python::detail::operator_r< op_and >::apply< L, R >
 
struct  boost::python::detail::operator_l< op_xor >
 
struct  boost::python::detail::operator_l< op_xor >::apply< L, R >
 
struct  boost::python::detail::operator_r< op_xor >
 
struct  boost::python::detail::operator_r< op_xor >::apply< L, R >
 
struct  boost::python::detail::operator_l< op_or >
 
struct  boost::python::detail::operator_l< op_or >::apply< L, R >
 
struct  boost::python::detail::operator_r< op_or >
 
struct  boost::python::detail::operator_r< op_or >::apply< L, R >
 
struct  boost::python::detail::operator_l< op_gt >
 
struct  boost::python::detail::operator_l< op_gt >::apply< L, R >
 
struct  boost::python::detail::operator_r< op_gt >
 
struct  boost::python::detail::operator_r< op_gt >::apply< L, R >
 
struct  boost::python::detail::operator_l< op_ge >
 
struct  boost::python::detail::operator_l< op_ge >::apply< L, R >
 
struct  boost::python::detail::operator_r< op_ge >
 
struct  boost::python::detail::operator_r< op_ge >::apply< L, R >
 
struct  boost::python::detail::operator_l< op_lt >
 
struct  boost::python::detail::operator_l< op_lt >::apply< L, R >
 
struct  boost::python::detail::operator_r< op_lt >
 
struct  boost::python::detail::operator_r< op_lt >::apply< L, R >
 
struct  boost::python::detail::operator_l< op_le >
 
struct  boost::python::detail::operator_l< op_le >::apply< L, R >
 
struct  boost::python::detail::operator_r< op_le >
 
struct  boost::python::detail::operator_r< op_le >::apply< L, R >
 
struct  boost::python::detail::operator_l< op_eq >
 
struct  boost::python::detail::operator_l< op_eq >::apply< L, R >
 
struct  boost::python::detail::operator_r< op_eq >
 
struct  boost::python::detail::operator_r< op_eq >::apply< L, R >
 
struct  boost::python::detail::operator_l< op_ne >
 
struct  boost::python::detail::operator_l< op_ne >::apply< L, R >
 
struct  boost::python::detail::operator_r< op_ne >
 
struct  boost::python::detail::operator_r< op_ne >::apply< L, R >
 
struct  boost::python::detail::operator_l< op_pow >
 
struct  boost::python::detail::operator_l< op_pow >::apply< L, R >
 
struct  boost::python::detail::operator_r< op_pow >
 
struct  boost::python::detail::operator_r< op_pow >::apply< L, R >
 
struct  boost::python::detail::operator_l< op_iadd >
 
struct  boost::python::detail::operator_l< op_iadd >::apply< L, R >
 
struct  boost::python::detail::operator_l< op_isub >
 
struct  boost::python::detail::operator_l< op_isub >::apply< L, R >
 
struct  boost::python::detail::operator_l< op_imul >
 
struct  boost::python::detail::operator_l< op_imul >::apply< L, R >
 
struct  boost::python::detail::operator_l< op_idiv >
 
struct  boost::python::detail::operator_l< op_idiv >::apply< L, R >
 
struct  boost::python::detail::operator_l< op_imod >
 
struct  boost::python::detail::operator_l< op_imod >::apply< L, R >
 
struct  boost::python::detail::operator_l< op_ilshift >
 
struct  boost::python::detail::operator_l< op_ilshift >::apply< L, R >
 
struct  boost::python::detail::operator_l< op_irshift >
 
struct  boost::python::detail::operator_l< op_irshift >::apply< L, R >
 
struct  boost::python::detail::operator_l< op_iand >
 
struct  boost::python::detail::operator_l< op_iand >::apply< L, R >
 
struct  boost::python::detail::operator_l< op_ixor >
 
struct  boost::python::detail::operator_l< op_ixor >::apply< L, R >
 
struct  boost::python::detail::operator_l< op_ior >
 
struct  boost::python::detail::operator_l< op_ior >::apply< L, R >
 
struct  boost::python::detail::operator_1< op_neg >
 
struct  boost::python::detail::operator_1< op_neg >::apply< T >
 
struct  boost::python::detail::operator_1< op_pos >
 
struct  boost::python::detail::operator_1< op_pos >::apply< T >
 
struct  boost::python::detail::operator_1< op_abs >
 
struct  boost::python::detail::operator_1< op_abs >::apply< T >
 
struct  boost::python::detail::operator_1< op_invert >
 
struct  boost::python::detail::operator_1< op_invert >::apply< T >
 
struct  boost::python::detail::operator_1< op_nonzero >
 
struct  boost::python::detail::operator_1< op_nonzero >::apply< T >
 
struct  boost::python::detail::operator_1< op_int >
 
struct  boost::python::detail::operator_1< op_int >::apply< T >
 
struct  boost::python::detail::operator_1< op_long >
 
struct  boost::python::detail::operator_1< op_long >::apply< T >
 
struct  boost::python::detail::operator_1< op_float >
 
struct  boost::python::detail::operator_1< op_float >::apply< T >
 
struct  boost::python::detail::operator_1< op_complex >
 
struct  boost::python::detail::operator_1< op_complex >::apply< T >
 
struct  boost::python::detail::operator_1< op_str >
 
struct  boost::python::detail::operator_1< op_str >::apply< T >
 
struct  boost::python::detail::operator_1< op_repr >
 
struct  boost::python::detail::operator_1< op_repr >::apply< T >
 

Namespaces

 boost
 Duration formatting facet for input.
 
 boost::python
 
 boost::python::detail
 
 boost::python::self_ns
 

Macros

#define BOOST_PYTHON_BINARY_OPERATION(id, rid, expr)
 
#define BOOST_PYTHON_BINARY_OPERATOR(id, rid, op)
 
#define BOOST_PYTHON_INPLACE_OPERATOR(id, op)
 
#define BOOST_PYTHON_UNARY_OPERATOR(id, op, func_name)
 

Functions

template<class T >
PyObject * boost::python::detail::convert_result (T const &x)
 
template<class L , class R >
detail::operator_
< detail::op_add,L, R > 
boost::python::self_ns::operator+ (L const &, R const &)
 
template<class L , class R >
detail::operator_
< detail::op_sub,L, R > 
boost::python::self_ns::operator- (L const &, R const &)
 
template<class L , class R >
detail::operator_
< detail::op_mul,L, R > 
boost::python::self_ns::operator* (L const &, R const &)
 
template<class L , class R >
detail::operator_
< detail::op_div,L, R > 
boost::python::self_ns::operator/ (L const &, R const &)
 
template<class L , class R >
detail::operator_
< detail::op_mod,L, R > 
boost::python::self_ns::operator% (L const &, R const &)
 
template<class L , class R >
detail::operator_
< detail::op_lshift,L, R > 
boost::python::self_ns::operator<< (L const &, R const &)
 
template<class L , class R >
detail::operator_
< detail::op_rshift,L, R > 
boost::python::self_ns::operator>> (L const &, R const &)
 
template<class L , class R >
detail::operator_
< detail::op_and,L, R > 
boost::python::self_ns::operator& (L const &, R const &)
 
template<class L , class R >
detail::operator_
< detail::op_xor,L, R > 
boost::python::self_ns::operator^ (L const &, R const &)
 
template<class L , class R >
detail::operator_
< detail::op_or,L, R > 
boost::python::self_ns::operator| (L const &, R const &)
 
template<class L , class R >
detail::operator_
< detail::op_gt,L, R > 
boost::python::self_ns::operator> (L const &, R const &)
 
template<class L , class R >
detail::operator_
< detail::op_ge,L, R > 
boost::python::self_ns::operator>= (L const &, R const &)
 
template<class L , class R >
detail::operator_
< detail::op_lt,L, R > 
boost::python::self_ns::operator< (L const &, R const &)
 
template<class L , class R >
detail::operator_
< detail::op_le,L, R > 
boost::python::self_ns::operator<= (L const &, R const &)
 
template<class L , class R >
detail::operator_
< detail::op_eq,L, R > 
boost::python::self_ns::operator== (L const &, R const &)
 
template<class L , class R >
detail::operator_
< detail::op_ne,L, R > 
boost::python::self_ns::operator!= (L const &, R const &)
 
template<class L , class R >
detail::operator_
< detail::op_pow, L, R > 
boost::python::self_ns::pow (L const &, R const &)
 
template<class R >
detail::operator_
< detail::op_iadd,self_t, R > 
boost::python::self_ns::operator+= (self_t const &, R const &)
 
template<class R >
detail::operator_
< detail::op_isub,self_t, R > 
boost::python::self_ns::operator-= (self_t const &, R const &)
 
template<class R >
detail::operator_
< detail::op_imul,self_t, R > 
boost::python::self_ns::operator*= (self_t const &, R const &)
 
template<class R >
detail::operator_
< detail::op_idiv,self_t, R > 
boost::python::self_ns::operator/= (self_t const &, R const &)
 
template<class R >
detail::operator_
< detail::op_imod,self_t, R > 
boost::python::self_ns::operator%= (self_t const &, R const &)
 
template<class R >
detail::operator_
< detail::op_ilshift,self_t, R > 
boost::python::self_ns::operator<<= (self_t const &, R const &)
 
template<class R >
detail::operator_
< detail::op_irshift,self_t, R > 
boost::python::self_ns::operator>>= (self_t const &, R const &)
 
template<class R >
detail::operator_
< detail::op_iand,self_t, R > 
boost::python::self_ns::operator&= (self_t const &, R const &)
 
template<class R >
detail::operator_
< detail::op_ixor,self_t, R > 
boost::python::self_ns::operator^= (self_t const &, R const &)
 
template<class R >
detail::operator_
< detail::op_ior,self_t, R > 
boost::python::self_ns::operator|= (self_t const &, R const &)
 
detail::operator_< detail::op_neg > boost::python::self_ns::operator- (self_t const &)
 
detail::operator_< detail::op_pos > boost::python::self_ns::operator+ (self_t const &)
 
detail::operator_< detail::op_abs > boost::python::self_ns::abs (self_t const &)
 
detail::operator_
< detail::op_invert > 
boost::python::self_ns::operator~ (self_t const &)
 
detail::operator_
< detail::op_nonzero > 
boost::python::self_ns::operator! (self_t const &)
 
detail::operator_< detail::op_int > boost::python::self_ns::int_ (self_t const &)
 
detail::operator_
< detail::op_long > 
boost::python::self_ns::long_ (self_t const &)
 
detail::operator_
< detail::op_float > 
boost::python::self_ns::float_ (self_t const &)
 
detail::operator_
< detail::op_complex > 
boost::python::self_ns::complex_ (self_t const &)
 
detail::operator_< detail::op_str > boost::python::self_ns::str (self_t const &)
 
detail::operator_
< detail::op_repr > 
boost::python::self_ns::repr (self_t const &)
 

Macro Definition Documentation

#define BOOST_PYTHON_BINARY_OPERATION (   id,
  rid,
  expr 
)
#define BOOST_PYTHON_BINARY_OPERATOR (   id,
  rid,
  op 
)
Value:
namespace self_ns \
{ \
template <class L, class R> \
inline detail::operator_<detail::op_##id,L,R> \
operator op(L const&, R const&) \
{ \
return detail::operator_<detail::op_##id,L,R>(); \
} \
}
#define BOOST_PYTHON_BINARY_OPERATION(id, rid, expr)
Definition: operators.hpp:164
Char L(char c)
Definition: generate_static.hpp:68
#define BOOST_PYTHON_INPLACE_OPERATOR (   id,
  op 
)
Value:
namespace detail \
{ \
template <> \
struct operator_l<op_##id> \
{ \
template <class L, class R> \
struct apply \
{ \
typedef typename unwrap_wrapper_<L>::type lhs; \
typedef typename unwrap_wrapper_<R>::type rhs; \
static PyObject* \
execute(back_reference<lhs&> l, rhs const& r) \
{ \
l.get() op r; \
return python::incref(l.source().ptr()); \
} \
}; \
static char const* name() { return "__" #id "__"; } \
}; \
} \
namespace self_ns \
{ \
template <class R> \
inline detail::operator_<detail::op_##id,self_t,R> \
operator op(self_t const&, R const&) \
{ \
return detail::operator_<detail::op_##id,self_t,R>(); \
} \
}
const int name
Definition: gzip.hpp:94
T * incref(T *p)
Definition: refcount.hpp:14
adjacency_iterator typedef T::adjacency_iterator type
Definition: graph_traits.hpp:42
#define BOOST_PYTHON_UNARY_OPERATOR (   id,
  op,
  func_name 
)
Value:
namespace detail \
{ \
template <> \
struct operator_1<op_##id> \
{ \
template <class T> \
struct apply \
{ \
typedef typename unwrap_wrapper_<T>::type self_t; \
static PyObject* execute(self_t& x) \
{ \
return detail::convert_result(op(x)); \
} \
}; \
static char const* name() { return "__" #id "__"; } \
}; \
} \
namespace self_ns \
{ \
inline detail::operator_<detail::op_##id> \
func_name(self_t const&) \
{ \
return detail::operator_<detail::op_##id>(); \
} \
}
const int name
Definition: gzip.hpp:94
Traits const flyweight< T, Arg_1, Arg_2, Arg_3, Arg_4, Arg_5 > &x return out<< x.get();}template< BOOST_TEMPLATED_STREAM_COMMA typename T, typename Arg_1, typename Arg_2, typename Arg_3, typename Arg_4, typename Arg_5 > Traits flyweight< T, Arg_1, Arg_2, Arg_3, Arg_4, Arg_5 > & x
Definition: flyweight.hpp:423
PyObject * convert_result(T const &x)
Definition: operators.hpp:32
adjacency_iterator typedef T::adjacency_iterator type
Definition: graph_traits.hpp:42