>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.
 
 

Cheer~
 
程墨
PBI—北京加维通讯电子技术有限公司
地址:北京市海淀区西北旺镇 丰智东路3号院
邮编:100094