GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — python/include/boost/python/list.hpp at develop · o01eg/python Expand file tree/ Copy pathlist.hppMore file actions 148 lines (117 loc) · 3.53 KB / Copy pathlist.hppFile metadata and controls148 lines (117 loc) · 3.53 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 // Copyright David Abrahams 2002. // Distributed under the Boost Software License, Version 1.0. (See // accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) #ifndef LIST_DWA2002627_HPP # define LIST_DWA2002627_HPP # include <boost/python/detail/prefix.hpp> # include <boost/python/object.hpp> # include <boost/python/converter/pytype_object_mgr_traits.hpp> # include <boost/python/ssize_t.hpp> namespace boost { namespace python { namespace detail { struct BOOST_PYTHON_DECL list_base : object { void append(object_cref); // append object to end ssize_t count(object_cref value) const; // return number of occurrences of value void extend(object_cref sequence); // extend list by appending sequence elements long index(object_cref value) const; // return index of first occurrence of value void insert(ssize_t index, object_cref); // insert object before index void insert(object const& index, object_cref); object pop(); // remove and return item at index (default last) object pop(ssize_t index); object pop(object const& index); void remove(object_cref value); // remove first occurrence of value void reverse(); // reverse *IN PLACE* void sort(); // sort *IN PLACE*; if given, cmpfunc(x, y) -> -1, 0, 1 #if PY_VERSION_HEX >= 0x03000000 void sort(args_proxy const &args, kwds_proxy const &kwds); #else void sort(object_cref cmpfunc); #endif protected: list_base(); // new list explicit list_base(object_cref sequence); // new list initialized from sequence's items BOOST_PYTHON_FORWARD_OBJECT_CONSTRUCTORS(list_base, object) private: static detail::new_non_null_reference call(object const&); }; } class list : public detail::list_base { typedef detail::list_base base; public: list() {} // new list template <class T> explicit list(T const& sequence) : base(object(sequence)) { } template <class T> void append(T const& x) { base::append(object(x)); } template <class T> ssize_t count(T const& value) const { return base::count(object(value)); } template <class T> void extend(T const& x) { base::extend(object(x)); } template <class T> long index(T const& x) const { return base::index(object(x)); } template <class T> void insert(ssize_t index, T const& x) // insert object before index { base::insert(index, object(x)); } template <class T> void insert(object const& index, T const& x) // insert object before index { base::insert(index, object(x)); } object pop() { return base::pop(); } object pop(ssize_t index) { return base::pop(index); } template <class T> object pop(T const& index) { return base::pop(object(index)); } template <class T> void remove(T const& value) { base::remove(object(value)); } #if PY_VERSION_HEX <= 0x03000000 void sort() { base::sort(); } template <class T> void sort(T const& value) { base::sort(object(value)); } #endif public: // implementation detail -- for internal use only BOOST_PYTHON_FORWARD_OBJECT_CONSTRUCTORS(list, base) }; // // Converter Specializations // namespace converter { template <> struct object_manager_traits<list> : pytype_object_manager_traits<&PyList_Type,list> { }; } }} // namespace boost::python #endif // LIST_DWA2002627_HPP |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |