C++ Boost

左值PropertyMap

左值PropertyMap 提供了訪問一個屬性對象的引用(取代 可讀PropertyMap 中所要求的 get() 函數要返回對象的拷貝)的接口。LvaluePropertyMap 可以是 可變的不可變的。可變的左值PropertyMap返回一個引用,而不可變的左值PropertyMap則返回一個常量引用。

強化自

不可變的 property map 強化自 可讀PropertyMap,可變的 property map 強化自 讀寫PropertyMap.

符號

PMap 一個類型,符合 LvaluePropertyMap.
pmap 類型 PMap 的一個對像
key 類型 boost::property_traits<PMap>::key_type 的一個類型

關聯類型

Reference Type boost::property_traits<PMap>::reference 引用類型,必須是 property map 的值類型的引用或常量引用
Property Map Category boost::property_traits<PMap>::category 屬性的分類:可轉換為 boost::lvalue_property_map_tag 的類型

有效表達式

名字 表達式 返回類型 描述
訪問屬性值 pmap[key] 對於可變的,為value_type&, 否則為 const value_type&. 獲得一個由 key 所標識的屬性的引用

概念檢查類

  template <class PMap, class Key>
struct LvaluePropertyMapConcept
{
typedef typename property_traits<PMap>::category Category;
typedef boost::lvalue_property_map_tag LvalueTag;
typedef const typename property_traits<PMap>::value_type& const_reference;
void constraints() {
function_requires< ReadWritePropertyMapConcept<PMap, Key> >();
function_requires< ConvertibleConcept<Category, LvalueTag> >();

const_reference ref = pmap[k];
}
PMap pmap;
Key k;
};

template <class PMap, class Key>
struct Mutable_LvaluePropertyMapConcept
{
typedef typename property_traits<PMap>::category Category;
typedef boost::lvalue_property_map_tag LvalueTag;
typedef typename property_traits<PMap>::value_type& reference;
void constraints() {
function_requires< ReadWritePropertyMapConcept<PMap, Key> >();
function_requires<ConvertibleConcept<Category, LvalueTag> >();

reference ref = pmap[k];
}
PMap pmap;
Key k;
};

參見

Property map 概念

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