C++ Boost

Writable Property Map(書き込み可能プロパティマップ)

Writable Property Map(書き込み可能プロパティマップ)は、put()関数を用いて、与えられたキーオブジェクトと関連付けられる値オブジェクトを設定することができる。

以下のクラスの発展型

Copy Constructible

表記

PMap Writable Property Mapのモデル
pmap PMap型のオブジェクト
key boost::property_traits<PMap>::key_type型のオブジェクト
val boost::property_traits<PMap>::value_type型のオブジェクト

関連型

値型(Value Type) boost::property_traits<PMap>::value_type プロパティの型
キー型(Key Type) boost::property_traits<PMap>::key_type プロパティを検索するときに用いられるキーオブジェクトの型。プロパティマップは、キー型についてテンプレート化されているかもしれない。この場合には、このtypedefは、voidとなるかもしれない。
プロパティマップカテゴリ(Property Map Category) boost::property_traits<PMap>::category プロパティのカテゴリ:writable_property_map_tagに変換可能な型.

妥当な表式

名称表式戻り値型説明
Put Property Value[1] put(pmap, key, val) void kに関連付けられたプロパティにvalを設定する。

注釈

[1] put()関数は、もともと set()という名前であった。しかし、非標準の名前検索ルールを用いるコンパイラ(Microsoft Visual C++)を用いた場合には、std::setクラスとの名前の衝突が発生するのを避けるため、変更された。 以下の例は、この問題を実地に再現するためのものである。
#include <set>
using namespace std;
namespace boost {
  void set() { }
}

コンセプトチェッククラス(Concept Checking Class)

  template <class PMap, class Key>
  struct WritablePropertyMapConcept
  {
    typedef typename property_traits<PMap>::key_type key_type;
    typedef typename property_traits<PMap>::category Category;
    typedef boost::writable_property_map_tag WritableTag;
    void constraints() {
      function_requires< ConvertibleConcept<Category, WritableTag> >();
      put(pmap, k, val);
    }
    PMap pmap;
    Key k;
    typename property_traits<PMap>::value_type val;
  };

参照

プロパティマップコンセプト(Property map concepts)

Copyright © 2000 Jeremy Siek, Univ.of Notre Dame (jsiek@lsc.nd.edu)