1 // Copyright Eric Niebler 2005. 2 // Distributed under the Boost Software License, Version 1.0. (See 3 // accompanying file LICENSE_1_0.txt or copy at 4 // http://www.boost.org/LICENSE_1_0.txt) 5 #include <boost/python/module.hpp> 6 #include <boost/python/def.hpp> 7 #include <boost/python/iterator.hpp> 8 #include <boost/python/stl_iterator.hpp> 9 #include <list> 10 11 using namespace boost::python; 12 13 typedef std::list<int> list_int; 14 assign(list_int & x,object const & y)15void assign(list_int& x, object const& y) 16 { 17 stl_input_iterator<int> begin(y), end; 18 x.clear(); 19 for( ; begin != end; ++begin) 20 x.push_back(*begin); 21 } 22 BOOST_PYTHON_MODULE(stl_iterator_ext)23BOOST_PYTHON_MODULE(stl_iterator_ext) 24 { 25 using boost::python::iterator; // gcc 2.96 bug workaround 26 27 class_<list_int>("list_int") 28 .def("assign", assign) 29 .def("__iter__", iterator<list_int>()) 30 ; 31 } 32 33 #include "module_tail.cpp" 34