Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

boost/python/stl_iterator.hpp

Boost , Boost.Python Reference Manual , Chapter 2. High Level Components

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

предоставляет типы для создания C++ Итераторы изИтерабельный Python.

Примеры<stl_input_iterator<T>>содержат итератор Python и адаптируют его для использования с алгоритмами STL.<stl_input_iterator<T>>удовлетворяет требованиям, предъявляемым к итератору ввода.

Параметр шаблона

Требования

Семантика

по умолчанию

Ценностный тип

Ценностный тип должен быть CopyConstructible.

Отказ от ссылки на экземпляр<stl_input_iterator<ValueType>>вернет значение r типа ValueType.

Нет

namespace boost { namespace python
{
  template <class ValueType>
  struct stl_input_iterator
  {
      typedef std::ptrdiff_t difference_type;
      typedef ValueType value_type;
      typedef ValueType* pointer;
      typedef ValueType reference;
      typedef std::input_iterator_tag iterator_category;
      stl_input_iterator();
      stl_input_iterator(object const& ob);
      stl_input_iterator& operator++();
      stl_input_iterator operator++(int);
      ValueType operator*() const;
      friend bool operator==(stl_input_iterator const& lhs, stl_input_iterator const& rhs);
      friend bool operator!=(stl_input_iterator const& lhs, stl_input_iterator const& rhs);
  private:
      object it; // For exposition only
      object ob; // For exposition only
  };
}}
stl_input_iterator()

Effects

Создает итератор ввода прошедшего конца, полезный для обозначения конца последовательности.

Postconditions

<this>Прошлый конец

Throws

Ничего.

stl_input_iterator(object const& ob)

Effects

Вызывает ob.attr("__iter__")() и сохраняет полученный объект итератора Python в этом->it. Затем, называет это->it.attr("следующий")() и сохраняет результат в этом->ob. Если последовательность исчерпана, задает этот->ob объекту().

Postconditions

Это отвратительный или прошедший конец.

stl_input_iterator &operator++()

Effects

Называется this->it.attr("следующий")() и сохраняет результат в this->ob. Если последовательность исчерпана, задает этот->ob объекту().

Postconditions

Это отвратительный или прошедший конец.

Returns

<*this>

stl_input_iterator &operator++(int)

Effects

<stl_input_iteratortmp= *this;++*this;returntmp;>

Postconditions

Это отвратительный или прошедший конец.

ValueType operator*() const

Effects

возвращает текущий элемент в последовательности.

Returns

<extract<ValueType>(this->ob);>

friend bool operator==(stl_input_iterator const& lhs, stl_input_iterator const& rhs)

Effects

Возвращается истинным, если оба итератора являются уважительными или если оба итератора являются прошедшими, ложными в противном случае.

Returns

<(lhs.ob==object())==(rhs.ob==object())>

friend bool operator!=(stl_input_iterator const& lhs, stl_input_iterator const& rhs)

Effects

Возвращается ложно, если оба итератора являются уважительными или если оба итератора являются прошедшими, истинно иначе.

Returns

<!(lhs ==rhs)>

#include <boost/python/object.hpp>
#include <boost/python/stl_iterator.hpp>
#include <list>
using namespace boost::python;
std::list<int> sequence_to_int_list(object const& ob)
{
    stl_input_iterator<int> begin(ob), end;
    return std::list<int>(begin, end);
}

PrevUpHomeNext

Статья boost/python/stl_iterator.hpp раздела Boost.Python Reference Manual Chapter 2. High Level Components может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Chapter 2. High Level Components ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 01:07:08/0.0058128833770752/1