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

  1. class MultiIndexContainer(Value, Args...)
  2. class MultiIndexContainer(Value, Args...)
  3. class MultiIndexContainer(Value, Args...)
  4. class MultiIndexContainer(Value, Args...)
  5. class MultiIndexContainer(Value, Args...)
  6. class MultiIndexContainer(Value, Args...)
  7. class MultiIndexContainer(Value, Args...)
  8. class MultiIndexContainer(Value, Args...)
  9. class MultiIndexContainer(Value, Args...)
    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
    ) {}

Members

Aliases

Allocator
alias Allocator = FindAllocator!Args
Undocumented in source.
ConstnessView
alias ConstnessView = FindConstnessView!Args
Undocumented in source.
IndexedBy
alias IndexedBy = FindIndexedBy!Args
Undocumented in source.
NormSignals
alias NormSignals = typeof(FindValueChangedSlots!Args.Inner!(IndexedBy).exposeType())
Undocumented in source.
ThisNode
alias ThisNode = MNode!(typeof(this), IndexedBy, Allocator, NormSignals, Value, ValueView)
Undocumented in source.
ValueView
alias ValueView = const(Value)
Undocumented in source.
ValueView
alias ValueView = Value
Undocumented in source.

Functions

_Clear
void _Clear()
Undocumented in source. Be warned that the author may not have intended to support it.
_InsertAllBut
ThisNode* _InsertAllBut(Value value)
Undocumented in source. Be warned that the author may not have intended to support it.
_Modify
void _Modify(ThisNode* node, Modifier mod)
Undocumented in source. Be warned that the author may not have intended to support it.
_RemoveAll
auto _RemoveAll(ThisNode* node)
Undocumented in source. Be warned that the author may not have intended to support it.
_RemoveAllBut
void _RemoveAllBut(ThisNode* node)
Undocumented in source. Be warned that the author may not have intended to support it.
_Replace
bool _Replace(ThisNode* node, Value value)
Undocumented in source. Be warned that the author may not have intended to support it.
check
void check()
Undocumented in source. Be warned that the author may not have intended to support it.
dealloc
void dealloc(ThisNode* node)
Undocumented in source. Be warned that the author may not have intended to support it.
initialize
void initialize()
Undocumented in source. Be warned that the author may not have intended to support it.
release
void release(MultiIndexContainer c)
Undocumented in source. Be warned that the author may not have intended to support it.

Manifest constants

named_stuff
enum named_stuff;
Undocumented in source.
stuff
enum stuff;
Undocumented in source.

Properties

to_range
Range0 to_range [@property setter]
Undocumented in source. Be warned that the author may not have intended to support it.

Static functions

create
auto create()
Undocumented in source. Be warned that the author may not have intended to support it.

Templates

ForEachAlias
template ForEachAlias(size_t N, size_t index, alias X)
Undocumented in source.
ForEachCheck
template ForEachCheck(size_t i)
Undocumented in source.
ForEachCheckInsert
template ForEachCheckInsert(size_t i, size_t N)
Undocumented in source.
ForEachClear
template ForEachClear(size_t i)
Undocumented in source.
ForEachCtorMixin
template ForEachCtorMixin(size_t i)
Undocumented in source.
ForEachDoInsert
template ForEachDoInsert(size_t i, size_t N)
Undocumented in source.
ForEachDoRemove
template ForEachDoRemove(size_t i, size_t N)
Undocumented in source.
ForEachIndex
template ForEachIndex(size_t N, L...)
Undocumented in source.
ForEachIndexPosition
template ForEachIndexPosition(size_t i)
Undocumented in source.
ForEachNamedIndex
template ForEachNamedIndex(size_t i)
Undocumented in source.

Variables

node_count
size_t node_count;
Undocumented in source.

Meta