27 #ifndef BOOST_PYTHON_INDEXING_ELEMENT_PROXY_TRAITS_HPP
28 #define BOOST_PYTHON_INDEXING_ELEMENT_PROXY_TRAITS_HPP
30 #include <indexing_suite/element_proxy.hpp>
31 #include <indexing_suite/value_traits.hpp>
32 #include <boost/python/register_ptr_to_python.hpp>
33 #include <boost/python/implicit.hpp>
35 namespace boost {
namespace python {
namespace indexing {
36 template<
typename ContainerProxy>
39 BOOST_DEDUCED_TYPENAME ContainerProxy::raw_value_type>
42 typedef typename ContainerProxy::raw_value_type raw_value_type;
48 : std::binary_function<element_proxy_type, element_proxy_type, bool>
50 typename base_type::less m_base_compare;
53 element_proxy_type
const &p1, element_proxy_type
const &p2)
const
55 return m_base_compare (*p1, *p2);
60 : std::binary_function<raw_value_type, element_proxy_type, bool>
65 typename base_type::equal_to m_base_compare;
68 raw_value_type
const &v, element_proxy_type
const &p)
const
70 return m_base_compare (v, *p);
74 template<
typename PythonClass,
typename Policy>
75 static void visit_container_class (PythonClass &, Policy
const &)
77 register_ptr_to_python<element_proxy_type>();
78 implicitly_convertible<raw_value_type, element_proxy_type>();
82 #if !defined (BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
84 template<
typename ContainerProxy>
92 #endif // BOOST_PYTHON_INDEXING_ELEMENT_PROXY_TRAITS_HPP
Definition: value_traits.hpp:34
Definition: python_CEGUI.h:9
Definition: element_proxy_traits.hpp:59
Definition: element_proxy_traits.hpp:47
Definition: element_proxy_traits.hpp:37
Definition: element_proxy.hpp:33