mirror of
https://github.com/boostorg/python.git
synced 2026-01-26 06:42:27 +00:00
tests and docs for stl_input_iterator
[SVN r31514]
This commit is contained in:
42
src/object/stl_iterator.cpp
Executable file
42
src/object/stl_iterator.cpp
Executable file
@@ -0,0 +1,42 @@
|
||||
// Copyright Eric Niebler 2005.
|
||||
// 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/object.hpp>
|
||||
#include <boost/python/handle.hpp>
|
||||
#include <boost/python/object/stl_iterator_core.hpp>
|
||||
|
||||
namespace boost { namespace python { namespace objects
|
||||
{
|
||||
|
||||
stl_input_iterator_impl::stl_input_iterator_impl()
|
||||
: it_()
|
||||
, ob_()
|
||||
{
|
||||
}
|
||||
|
||||
stl_input_iterator_impl::stl_input_iterator_impl(boost::python::object const &ob)
|
||||
: it_(ob.attr("__iter__")())
|
||||
, ob_()
|
||||
{
|
||||
this->increment();
|
||||
}
|
||||
|
||||
void stl_input_iterator_impl::increment()
|
||||
{
|
||||
this->ob_ = boost::python::handle<>(
|
||||
boost::python::allow_null(PyIter_Next(this->it_.ptr())));
|
||||
}
|
||||
|
||||
bool stl_input_iterator_impl::equal(stl_input_iterator_impl const &that) const
|
||||
{
|
||||
return !this->ob_ == !that.ob_;
|
||||
}
|
||||
|
||||
boost::python::handle<> const &stl_input_iterator_impl::current() const
|
||||
{
|
||||
return this->ob_;
|
||||
}
|
||||
|
||||
}}} // namespace boost::python::objects
|
||||
Reference in New Issue
Block a user