Спасибо за ответ.
Я попробовал следующее (SubnetID это просто uint32_t, поэтому я использовал 10 для теста):
SubnetID id = 10;
Subnet6Collection coll;
auto& indexById = coll.index<SubnetSubnetIdIndexTag>();
auto it = index.find(id);
if (it != index.end()) {
Subnet6Ptr p = *it;
} else {
// No such ID found
}
, но он не компилируется:
Opt18_lease_select.cc: 38: 24: ошибка: недопустимое использование 'struct boost :: multi_index :: multi_index_container, boost :: multi_index :: indexed_by>, boost :: multi_index :: order_unique, boost :: multi_index :: const_mem_fun>,boost :: multi_index :: order_unique, boost :: multi_index :: const_mem_fun, & isc :: dhcp :: Subnet :: toText>>>> :: index '
auto& indexById = coll.index<SubnetSubnetIdIndexTag>();
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Opt18_lease_select.cc: 39: 17: ошибка: перегруженная функция без контекстной информации о типе
auto it = index.find(id);
^~~~
Opt18_lease_select.cc: 40: 17: ошибка: перегруженная функция без контекстной информации о типе
if (it != index.end()) {
^~~
Похоже на индекс ()find (), end () не могут быть использованы таким образом, или, может быть, мне просто не хватает какого-то заголовочного файла?