/
BirdLeon
/
ROBLOX2016
Обзор
Документация
Войти
/
BirdLeon
/
ROBLOX2016
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
Library/boost/libs/python/src/object/stl_iterator.cpp
48 строк
1 KB
PatoFlamejanteTV
full source code
19 дек 2024, 19:11
19 дек 2024, 19:11
05db15d
Код
Авторство
О чём код?
// 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) // // Credits: // Andreas Kl\:ockner for fixing increment() to handle // error conditions. #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()))); if (PyErr_Occurred()) throw boost::python::error_already_set(); } 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