boost/python/list.hpp

はじめに

Python の list 型に対する TypeWrapper をエクスポートする。

クラス

list クラス

class list : public object

Python の組み込み list 型のシーケンス型プロトコルをエクスポートする。以下に定義するコンストラクタとメンバ関数のセマンティクスを完全に理解するには、TypeWrapper コンセプトの定義を読むことである。listobject から公開派生しているので、object の公開インターフェイスは list のインスタンスにも当てはまる。

list クラスの概要

namespace boost { namespace python
{
  class list : public object
  {
   public:
      list(); // list を新規作成する

      template <class T>
      explicit list(T const& sequence);

      template <class T>
      void append(T const& x);

      template <class T>
      long count(T const& value) const;

      template <class T>
      void extend(T const& x);

      template <class T>
      long index(T const& x) const;

      template <class T>
      void insert(object const& index, T const& x); // index の前にオブジェクトを挿入する

      object pop(); // index 位置(既定は末尾)の要素を削除して返す
      object pop(long index);
      object pop(object const& index);

      template <class T>
      void remove(T const& value);

      void reverse(); // 「その場で」逆順に入れ替える

      void sort(); // 「その場で」ソートする。比較関数を与える場合の形式は cmpfunc(x, y) -> -1, 0, 1

      template <class T>
      void sort(T const& value);
  };
}}

using namespace boost::python;

// リスト内の 0 の数を返す
long zeroes(list l)
{
   return l.count(0);
}