Поиск по вложенному бусту 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? какие-либо воздействия / выгоды производительности?

Ответы на вопрос(3)

Ваш ответ на вопрос