将索引附加到多索引容器

时间:2016-11-07 10:15:20

标签: boost-multi-index

我是一个提升multi_index的新手,

目前正在尝试创建一个多索引容器,我可以在声明容器后定义索引。

特别是我想加载许多不同的mysql dbs,因此需要一个通用的结构,其中的密钥不是先验的。 boost :: multi_index可以支持这样的功能吗?我曾尝试使用'ctor_args_list'选项,但似乎不适用于这种情况。

非常感谢!

1 个答案:

答案 0 :(得分:1)

严格地说,boost::multi_index_container的定义是编译时业务,所以你不能说在运行时添加或删除索引。您可以获得的最接近的是定义预定义数量的ordered_non_unique<std::function<int(const element&)>>或类似物,然后在构造时提供排序函数(使用ctor_arg_list)。这意味着您被限制为最大数量的索引,并且排序函数必须采用严格的形式(在示例中,它们被传递给元素并返回表示适用的任何顺序的传统int)。如果你采取这条路线,很乐意协助回来。