J'essaie de créer un conteneur boost :: multi_index qui utilise les fonctions membres w/parameters comme des clés.boost :: index multi-index par appel de fonction avec paramètre (s)
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)
*/
};
Supposons que j'ai une rectangulaire liste de ces éléments de données que je veux plusieurs indicies plus. rectangulaire signifie que tous les éléments de la liste ont les mêmes attributs via get()
Le boost :: déclaration multi_index est quelque chose comme
typedef multi_index_container<
Data,
indexed_by<
ordered_unique<
BOOST_MULTI_INDEX_CONST_MEM_FUN(Data,String,get)
>
>
> my_container;
Sauf que BOOST_MULTI_INDEX_CONST_MEM_FUNCT() ne possède pas ces caractéristiques. Les touches composites fonctionnent toujours avec les variables membres.
Comment puis-je contourner ce problème? Il ne semble pas que je peux donner ordered_unique <> un coup de pouce :: function1
EDIT:
Après réflexion, voici l'essentiel de ce que je suis en train de faire.
boost :: multi_index détermine ses fonctions d'indexation pendant la compilation. Comment contourner ces fonctionnalités et utiliser des index déterminés au moment de l'exécution?
C'est le problème. Ne semble pas que je peux utiliser un _const_mem_fun1_ ici. –
Comment allez-vous passer argument? Quelque chose comme 'ordered_unique (" chaîne ")>'? –
Peut-être ("chaîne") peut-être un struct/wrapper comme un autre paramètre. –