21 #ifndef BOOST_PYTHON_INDEXING_LIST_HPP
22 #define BOOST_PYTHON_INDEXING_LIST_HPP
24 #include <indexing_suite/container_traits.hpp>
25 #include <indexing_suite/container_suite.hpp>
26 #include <indexing_suite/algorithms.hpp>
29 #if BOOST_WORKAROUND (BOOST_MSVC, == 1200)
30 # include <boost/static_assert.hpp>
31 # include <boost/type_traits.hpp>
34 namespace boost {
namespace python {
namespace indexing {
39 template<
typename Container,
typename ValueTraits = detail::no_overr
ide>
46 typedef typename base_class::value_traits_type value_traits_type;
48 BOOST_STATIC_CONSTANT(
55 value_traits_type::equality_comparable,
61 base_class::is_mutable,
68 base_class::is_mutable,
69 value_traits_type::less_than_comparable
81 template<
typename ContainerTraits,
typename Ovr = detail::no_overr
ide>
85 typename detail::maybe_override
86 <list_algorithms<ContainerTraits, Ovr>, Ovr>
90 typedef typename detail::maybe_override<self_type, Ovr>::type most_derived;
94 typedef typename Parent::container container;
97 static void reverse (container &);
98 static void sort (container &);
102 #if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
108 template <
class T,
class Allocator>
111 typedef std::list<T, Allocator> Container;
125 method_set_type MethodMask = all_methods,
137 template<
typename ContainerTraits,
typename Ovr>
147 template<
typename ContainerTraits,
typename Ovr>
148 void list_algorithms<ContainerTraits, Ovr>::sort (container &c)
150 typedef typename self_type::container_traits::value_traits_type
153 typedef typename vtraits::less comparison;
154 #if BOOST_WORKAROUND (BOOST_MSVC, == 1200)
162 (::boost::is_same<comparison, std::less<value_type> >::value));
165 c.sort (comparison());
170 #endif // BOOST_PYTHON_INDEXING_LIST_HPP
Definition: methods.hpp:90
Definition: algorithms.hpp:42
Definition: python_CEGUI.h:11
Definition: container_traits.hpp:59
Definition: proxy_iterator.hpp:155
Definition: container_suite.hpp:42
Definition: algorithms.hpp:532