Constructor taking a number of nodes
Constructor taking an input range
Inserts stuff to the front/back of the container. stuff can be a value convertible to T or a range of objects convertible to T. The stable version behaves the same, but guarantees that ranges iterating over the container are never invalidated.
Inserts stuff after range r, which must be a non-empty range previously extracted from this container.
Inserts stuff to the front/back of the container. stuff can be a value convertible to T or a range of objects convertible to T. The stable version behaves the same, but guarantees that ranges iterating over the container are never invalidated.
Inserts stuff after range r, which must be a non-empty range previously extracted from this container.
Inserts stuff to the front/back of the container. stuff can be a value convertible to T or a range of objects convertible to T. The stable version behaves the same, but guarantees that ranges iterating over the container are never invalidated.
linearRemove functions as remove, but also accepts ranges that are result the of a take operation. This is a convenient way to remove a fixed amount of elements from the range.
Removes all elements belonging to r, which must be a range obtained originally from this container.
Picks one value in an unspecified position in the container, removes it from the container, and returns it. The stable version behaves the same, but guarantees that ranges iterating over the container are never invalidated.
Removes the value at the front/back of the container. The stable version behaves the same, but guarantees that ranges iterating over the container are never invalidated.
Removes howMany values at the front or back of the container. Unlike the unparameterized versions above, these functions do not throw if they could not remove howMany elements. Instead, if howMany > n, all elements are removed. The returned value is the effective number of elements removed. The stable version behaves the same, but guarantees that ranges iterating over the container are never invalidated.
Removes the value at the front/back of the container. The stable version behaves the same, but guarantees that ranges iterating over the container are never invalidated.
Removes howMany values at the front or back of the container. Unlike the unparameterized versions above, these functions do not throw if they could not remove howMany elements. Instead, if howMany > n, all elements are removed. The returned value is the effective number of elements removed. The stable version behaves the same, but guarantees that ranges iterating over the container are never invalidated.
Removes all contents from the DList.
Property returning true if and only if the container has no elements.
Inserts stuff after range r, which must be a non-empty range previously extracted from this container.
Inserts stuff to the front/back of the container. stuff can be a value convertible to T or a range of objects convertible to T. The stable version behaves the same, but guarantees that ranges iterating over the container are never invalidated.
Inserts stuff after range r, which must be a non-empty range previously extracted from this container.
Inserts stuff to the front/back of the container. stuff can be a value convertible to T or a range of objects convertible to T. The stable version behaves the same, but guarantees that ranges iterating over the container are never invalidated.
Removes all elements belonging to r, which must be a range obtained originally from this container.
linearRemove functions as remove, but also accepts ranges that are result the of a take operation. This is a convenient way to remove a fixed amount of elements from the range.
Removes the first occurence of an element from the list in linear time.
Returns a new DList that's the concatenation of this and its argument rhs.
Returns a new DList that's the concatenation of the argument lhs and this.
Comparison for equality.
Appends the contents of the argument rhs into this.
Returns a range that iterates over all elements of the container, in forward order.
Removes first element of r, wich must be a range obtained originally from this container, from both DList instance and range r.
Removes last element of r, wich must be a range obtained originally from this container, from both DList instance and range r.
Removes all elements belonging to r, which must be a range obtained originally from this container.
Picks one value in an unspecified position in the container, removes it from the container, and returns it. The stable version behaves the same, but guarantees that ranges iterating over the container are never invalidated.
Removes the value at the front/back of the container. The stable version behaves the same, but guarantees that ranges iterating over the container are never invalidated.
Removes howMany values at the front or back of the container. Unlike the unparameterized versions above, these functions do not throw if they could not remove howMany elements. Instead, if howMany > n, all elements are removed. The returned value is the effective number of elements removed. The stable version behaves the same, but guarantees that ranges iterating over the container are never invalidated.
Removes the value at the front/back of the container. The stable version behaves the same, but guarantees that ranges iterating over the container are never invalidated.
Removes howMany values at the front or back of the container. Unlike the unparameterized versions above, these functions do not throw if they could not remove howMany elements. Instead, if howMany > n, all elements are removed. The returned value is the effective number of elements removed. The stable version behaves the same, but guarantees that ranges iterating over the container are never invalidated.
Forward to opSlice().back.
Duplicates the container. The elements themselves are not transitively duplicated.
Forward to opSlice().front.
Defines the container's primary range, which embodies a bidirectional range.
Implements a doubly-linked list.
DList uses reference semantics.