私は、パラメータとしてキーを持つメンバー関数を使用するboost :: multi_indexコンテナを作成しようとしています。boost :: multi_index index by function call byパラメータ
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)
*/
};
は私が上で複数なインデックスにしたい、これらのデータ項目の長方形リストがあるとします。 長方形は、リスト内のすべてのアイテムがGET経由で同じ属性を持っていることを意味()
ブースト:: multi_index宣言は、そのBOOST_MULTI_INDEX_CONST_MEM_FUNCT()除き
typedef multi_index_container<
Data,
indexed_by<
ordered_unique<
BOOST_MULTI_INDEX_CONST_MEM_FUN(Data,String,get)
>
>
> my_container;
のようなものは、これらの機能を持っていないです。 コンポジットキーは引き続きメンバ変数で動作します。
どうすればこの問題を回避できますか? 私>は、ブーストをordered_unique <を与えることができますようにそれは見ていません::はfunction1
EDIT:
いくつかの考えた後、ここで私が何をしようとしているの要旨はあります。
boost :: multi_indexは、コンパイル時にインデックス機能を決定します。これらの機能を回避し、実行時に決定されたインデックスを使用するにはどうすればよいですか?
これは問題です。 _const_mem_fun1_をここで使用できるようには見えません。 –
引数を渡す方法は? 'ordered_unique("文字列 ")>'のようなもの? –
多分( "string")は別のパラメータとしてstruct/wrapperになることがあります。 –