Можно ли выделить элементы boost :: multi_index по вектору и использовать индексы в этом векторе (4 байта) вместо указателей (8 байт) везде (включая внутренние структуры boost :: multi_index) для экономии памяти?
Это может быть возможно: Boost.MultiIndex поддерживает специальные распределители, связанные с которыми Allocator::pointer
Тип может отличаться от обычного указателя, если он моделирует итератор произвольного доступа, как объяснено Вот (это делается в основном поддерживать Boost.Interprocess распределителей.С некоторой работой вы могли бы создать распределитель, который использует вектор в качестве своей арены и использует 4-байтовый объект для его индексации. Хотя это не выглядит легкой задачей.
Других решений пока нет …