Use correct type for second template argument of `std::array`
Using unsigned long instead of size_t only works on architectures
where the two types are identical, but not on, for example, i386. On
architectures where the types differ, the generic version would be
used instead of the specialization for std::array.
Bug-Debian: https://bugs.debian.org/860666