我想要使用成員函數w /參數作爲鍵的boost :: multi_index容器。boost :: multi_index通過帶參數的函數調用索引
class Data {
public:
std::string get(const std::string & _attr) { return _internals_fetch_data(_attr); }
/*
assume some implementation for storing data in some structure(s)
*/
};
假設我有過想多indicies這些數據項的矩形名單。 矩形意味着在列表中的所有項目通過GET具有相同的屬性()
了boost :: multi_index聲明是一樣的東西
typedef multi_index_container<
Data,
indexed_by<
ordered_unique<
BOOST_MULTI_INDEX_CONST_MEM_FUN(Data,String,get)
>
>
> my_container;
除了BOOST_MULTI_INDEX_CONST_MEM_FUNCT()不具備這些功能。 複合鍵仍然適用於成員變量。
我該如何解決這個問題? 它看起來並不像我可以給ordered_unique <>一個boost ::功能1
編輯:
經過一番思考,這裏是我想要做的要點。
boost :: multi_index決定了它在編譯期間的索引功能。我如何規避這些功能並使用運行時確定的索引?
這就是問題所在。看起來我不能在這裏使用_const_mem_fun1_。 – 2009-09-02 19:18:17
你認爲如何傳遞參數?像'ordered_unique(「string」)>'? –
2009-09-02 19:24:49
也許(「字符串」)可以作爲另一個參數的結構/包裝。 – 2009-09-02 19:58:20