MultiIndexContainer

The container. Don't call any index methods from this container directly; use a reference to an individual index, which can be obtained via

container.get_index!N

or

container.name

for named indices.

If you have a range into an index of this container, you can convert it to a range of index N via

container.to_range!N(range)

This is equivalent to c++ multi_index' project

class MultiIndexContainer (
Value
Args...
) if (
IndexedByCount!(Args)() == 1 &&
FindIndexedBy!Args.List.length != 0
&&
IndexedByAllIndices!(FindIndexedBy!Args)().length == 0
&&
_AllUnique!(FindIndexedBy!Args.Names)
&&
ValueChangedSlotsCount!(Args)() <= 1
&&
ConstnessViewCount!(Args)() <= 1
&&
AllocatorCount!(Args)() <= 1
&&
IndexGarbage!(Args)().length == 0
) {
size_t node_count;
void* p;
enum stuff;
enum named_stuff;
}

Meta