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/test/input_iterator.cpp at develop · arrowd/python Expand file tree/ Copy pathinput_iterator.cppMore file actions 48 lines (40 loc) · 1.49 KB / Copy pathinput_iterator.cppFile metadata and controls48 lines (40 loc) · 1.49 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 // 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) #include <boost/python/module.hpp> #include <boost/python/def.hpp> #include <boost/python/class.hpp> #include <boost/python/iterator.hpp> #include <boost/iterator/transform_iterator.hpp> #include <list> using namespace boost::python; typedef std::list<int> list_int; // Prove that we can handle InputIterators which return rvalues. struct doubler { typedef int result_type; int operator()(int x) const { return x * 2; } }; typedef boost::transform_iterator<doubler, list_int::iterator> doubling_iterator; typedef std::pair<doubling_iterator,doubling_iterator> list_range2; list_range2 range2(list_int& x) { return list_range2( boost::make_transform_iterator<doubler>(x.begin(), doubler()) , boost::make_transform_iterator<doubler>(x.end(), doubler())); } // We do this in a separate module from iterators_ext (iterators.cpp) // to work around an MSVC6 linker bug, which causes it to complain // about a "duplicate comdat" if the input iterator is instantiated in // the same module with the others. BOOST_PYTHON_MODULE(input_iterator) { def("range2", &::range2); class_<list_range2>("list_range2") // We can wrap InputIterators which return by-value .def("__iter__" , range(&list_range2::first, &list_range2::second)) ; } #include "module_tail.cpp" |
| You are visitor 01402503 — 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. |