>Hi,
>While reading d_ary_heap.hpp from the heap library I was surprised to
>see a mix of size_t and size_type variables in an index computation
>(https://github.com/boostorg/heap/blob/master/include/boost/heap/d_ary_heap.hpp#L356):
> size_type last_child_index(size_type index) const
> {
> const size_t first_index =
first_child_index(index);
> const size_type last_index =
(std::min)(first_index + D - 1,
>size() - 1);
> return last_index;
> }
>Isn't this a typo?
>--
>Matthias
Hi Matthias:
I am not really reading d_ary_heap.hpp actually.
As my experiences the size_type is used as the parameter in template
programming.
It's not a confirmed type and it is depended on what you transmit the value
of type while you build template function.
It could be "int, short, unsigned things even the customized type". It
seems to be confirmed during compiling.
In another hand, size_t is used "typedef", it is as a definition and will
be confirmed during preprocessing.
It has could be unsigned int, not always, but often.
I hope it is helpful.