Поиск по вложенному бусту multi_index_container
Рассмотрим следующий код
struct VersionData
{
VersionData();
VersionData(VersionData&& rhs);
int m_versionId;
int m_weight;
int m_pId;
bool m_hdi;
};
struct VersionId{};
typedef boost::multi_index_container<
VersionData,
bmi::indexed_by<
bmi::ordered_non_unique<
bmi::tag<VersionId>,
bmi::member<VersionData, int, &VersionData::m_versionId>
>
>
> VersionDataContainer;
struct VersionsData
{
VersionsData();
VersionsData(VersionsData&& rhs);
int m_sdGroupId;
int m_retId;
VersionDataContainer m_versionData;
};
struct mvKey{};
typedef boost::multi_index_container<
VersionsData,
bmi::indexed_by<
bmi::ordered_unique<
bmi::tag<mvKey>,
bmi::composite_key<
VersionsData,
bmi::member<VersionsData,int, &VersionsData::m_subdeliveryGroupId>,
bmi::member<VersionsData,int, &VersionsData::m_retargetingId>
>
>
>
> mvDataContainer;
mvDataContainer m_data;
Намерение состоит в том, чтобы искать с использованием составного ключа в mvDataContainer, но в некоторых случаях мне нужно искать в VersionData для всех VersionsData. Что-то вроде m_data.get <mvKey> .equal_range (make_tuple (игнорировать, игнорировать, игнорировать)). get <VERSIONID> .Equal_range (123456);
Первый вопрос, это достижимо?
Во-вторых, это правильный подход для использования вложенных multi_index_containers? какие-либо воздействия / выгоды производительности?