6 #ifndef VECTOR_INDEXING_SUITE_JDG20036_HPP 
    7 # define VECTOR_INDEXING_SUITE_JDG20036_HPP 
   11 # include <boost/python/iterator.hpp> 
   13 namespace boost { 
namespace python {
 
   16     template <
class Container, 
bool NoProxy, 
class DerivedPolicies>
 
   17     class vector_indexing_suite;
 
   21         template <
class Container, 
bool NoProxy>
 
   22         class final_vector_derived_policies 
 
   23             : 
public vector_indexing_suite<Container, 
 
   24                 NoProxy, final_vector_derived_policies<Container, NoProxy> > {};
 
   47             = detail::final_vector_derived_policies<Container, NoProxy> >
 
   48     class vector_indexing_suite 
 
   49         : 
public indexing_suite<Container, DerivedPolicies, NoProxy>
 
   54         typedef typename Container::value_type 
key_type;
 
   59         template <
class Class>
 
   64                 .def(
"append", &base_append)
 
   65                 .def(
"push_back", &base_append)
 
   66                 .def(
"extend", &base_extend)
 
   85                 return object(Container());
 
   86             return object(Container(container.begin()+from, container.begin()+to));
 
  103                 container.erase(container.begin()+from, container.begin()+to);
 
  104                 container.insert(container.begin()+from, 
v);
 
  108         template <
class Iter>
 
  114                 container.insert(container.begin()+from, 
first, last);
 
  117                 container.erase(container.begin()+from, container.begin()+to);
 
  118                 container.insert(container.begin()+from, 
first, last);
 
  125             container.erase(container.begin()+i);
 
  135             container.erase(container.begin()+from, container.begin()+to);
 
  141             return container.size();
 
  147             return std::find(container.begin(), container.end(), key)
 
  160             return container.size();
 
  177                     index += DerivedPolicies::size(container);
 
  178                 if (index >= 
long(container.size()) || index < 0)
 
  180                     PyErr_SetString(PyExc_IndexError, 
"Index out of range");
 
  181                     throw_error_already_set();
 
  186             PyErr_SetString(PyExc_TypeError, 
"Invalid index type");
 
  187             throw_error_already_set();
 
  194             container.push_back(v);
 
  197         template <
class Iter>
 
  201             container.insert(container.end(), 
first, last);
 
  207         base_append(Container& container, 
object v)
 
  209             extract<data_type&> elem(v);
 
  213                 DerivedPolicies::append(container, elem());
 
  218                 extract<data_type> elem(v);
 
  221                     DerivedPolicies::append(container, elem());
 
  225                     PyErr_SetString(PyExc_TypeError, 
 
  226                         "Attempting to append an invalid type");
 
  227                     throw_error_already_set();
 
  233         base_extend(Container& container, 
object v)
 
  235             std::vector<data_type> temp;
 
  237             DerivedPolicies::extend(container, temp.begin(), temp.end());
 
  243 #endif // VECTOR_INDEXING_SUITE_JDG20036_HPP 
static void extension_def(Class &cl)
 
static void delete_slice(Container &container, index_type from, index_type to)
 
std::vector< ExP01TrackerHit * > a
 
static void set_item(Container &container, index_type i, data_type const &v)
 
Container::size_type size_type
 
static void append(Container &container, data_type const &v)
 
Container::size_type index_type
 
Container::difference_type difference_type
 
void extend_container(Container &container, object l)
 
static void delete_item(Container &container, index_type i)
 
Container::value_type key_type
 
static void set_slice(Container &container, index_type from, index_type to, data_type const &v)
 
static index_type convert_index(Container &container, PyObject *i_)
 
static size_t size(Container &container)
 
static index_type get_max_index(Container &container)
 
static bool contains(Container &container, key_type const &key)
 
static object get_slice(Container &container, index_type from, index_type to)
 
static mpl::if_< is_class< data_type >, data_type &, data_type >::type get_item(Container &container, index_type i)
 
static index_type get_min_index(Container &container)
 
static bool compare_index(Container &container, index_type a, index_type b)
 
Container::value_type data_type
 
static void extend(Container &container, Iter first, Iter last)
 
static void set_slice(Container &container, index_type from, index_type to, Iter first, Iter last)