我是一个提升multi_index的新手,
目前正在尝试创建一个多索引容器,我可以在声明容器后定义索引。
特别是我想加载许多不同的mysql dbs,因此需要一个通用的结构,其中的密钥不是先验的。 boost :: multi_index可以支持这样的功能吗?我曾尝试使用'ctor_args_list'选项,但似乎不适用于这种情况。
非常感谢!
答案 0 :(得分:1)
严格地说,boost::multi_index_container
的定义是编译时业务,所以你不能说在运行时添加或删除索引。您可以获得的最接近的是定义预定义数量的ordered_non_unique<std::function<int(const element&)>>
或类似物,然后在构造时提供排序函数(使用ctor_arg_list
)。这意味着您被限制为最大数量的索引,并且排序函数必须采用严格的形式(在示例中,它们被传递给元素并返回表示适用的任何顺序的传统int
)。如果你采取这条路线,很乐意协助回来。