please use `std:size_t` if it's different from `unsigned`.