2016-11-07 8 views
0

Я новичок, чтобы повысить multi_index,индекса Append для многоиндексного контейнера

и в настоящее время пытается создать многофункциональный индексный контейнер, для которого я буду иметь возможность определить индексы после контейнера объявляются.

В частности, я хочу загрузить несколько разных mysql dbs и, следовательно, вам нужна общая структура, в которой ключи неизвестны априори. Может ли boost :: multi_index поддерживать такую ​​функциональность? Я попытался использовать параметр «ctor_args_list», но, похоже, он не работает для этого случая.

спасибо!

ответ

1

Строго говоря, определение boost::multi_index_container - это бизнес с компиляцией, поэтому вы не можете добавлять или удалять индексы во время выполнения. Ближе всего вы можете добраться до того, что хотите, чтобы определить предопределенное число ordered_non_unique<std::function<int(const element&)>> или аналогичное, а затем предоставить функции заказа во время строительства (с ctor_arg_list). Это означает, что вы ограничены максимальным числом индексов, а функции упорядочения должны иметь жесткую форму (в примере они передаются элементу и возвращают обычный int, выражающий любой порядок). Рад помочь, если вы пройдете по этому маршруту.