D-ary heaps
are a generalization of binary heap with each non-leaf node having N
children. For a low arity, the height of the heap is larger, but the
number of comparisons to find the largest child node is bigger. D-ary
heaps are implemented as container adaptors based on a std::vector.

The data structure can be configured as mutable. This is achieved by
storing the values inside a std::list.

Binomial heaps
are node-base heaps, that are implemented as a set of binomial trees
of piecewise different order. The most important heap operations have
a worst-case complexity of O(log n). In contrast to d-ary heaps, binomial
heaps can also be merged in O(log n).

Fibonacci heaps
are node-base heaps, that are implemented as a forest of heap-ordered
trees. They provide better amortized performance than binomial heaps.
Except pop() and erase(), the most
important heap operations have constant amortized complexity.

Specifies, whether size() should have linear or
constant complexity. This argument is only available for node-based
heap data structures and if available, it is optional (defaults to
boost::heap::constant_time_size<true>)