可寫 Property Map
可讀 Property Map 具有通過 put() 函數對與給定鍵對像相關聯的值對像進行設置的能力。
強化自
可複製構造
符號
| PMap |
一個類型,符合可寫 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 |
用於查找屬性的鍵對象的類型。property map 可以依照鍵類型參數化,這種情況下該 typedef 可以為 void.
|
| Property Map Category |
boost::property_traits<PMap>::category |
屬性的分類:可轉換為 writable_property_map_tag 的類型
|
有效表達式
| 名字 |
表達式 |
返回類型 |
描述 |
| 設置屬性值[1] |
put(pmap, key, val) |
void |
將 val 賦給與 k 相關聯的屬性
|
備註
[1] 函數 put() 原來的名字是
set(), 但為了在使用非標準名字查找規則的編譯器(Microsoft Visual C++)時避免與
std::set 類發生名字衝突,改為現在的名字。以下例子演示了這個問題。
#include <set>
using namespace std;
namespace boost {
void set() { }
}
概念檢查類
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 概念