C++ Boost

可讀 Property Map

可讀 Property Map 通過調用 get() 函數提供了對與某個給定的鍵相關聯的值的讀訪問。get() 函數返回值對象的拷貝。

強化自

可複製構造

符號

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

關聯類型

Value Type boost::property_traits<PMap>::value_type 屬性的類型
Reference Type boost::property_traits<PMap>::reference 可轉換為值類型的類型
Key Type boost::property_traits<PMap>::key_type 用於查找屬性的鍵對象的類型。property map 可以依照鍵類型參數化,這種情況下該 typedef 可以為 void.
Property Map Category boost::property_traits<PMap>::category 屬性的分類:可轉換為 readable_property_map_tag 的類型

有效表達式

名字 表達式 返回類型 描述
獲取屬性值 get(pmap, key) reference 查找 key 所標識的對象的屬性

概念檢查類

  template <class PMap, class Key>
struct ReadablePropertyMapConcept
{
typedef typename property_traits<PMap>::key_type key_type;
typedef typename property_traits<PMap>::category Category;
typedef boost::readable_property_map_tag ReadableTag;
void constraints() {
function_requires< ConvertibleConcept<Category, ReadableTag> >();

val = get(pmap, k);
}
PMap pmap;
Key k;
typename property_traits<PMap>::value_type val;
};

參見

Property map 概念

設計說明

曾經考慮過將該概念命名為 "只讀"。但是,這個名字不太適合,因為概念天然上是疊加的,而不是相減的。當我們定義讀寫 Property Map 時這將變得更為明顯,它可以從可讀 Property Map 和可寫 Property Map 概念強化而來,而不是通過組合 "只讀" 和 "只寫" 概念而得到!

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