A type whose size cannot be represented by std::size_t is ill-formed (since C++14) On many platforms (an exception is systems with segmented addressing) can safely store the value of any non-member pointer, in which case it is synonymous with std::uintptr_t. is commonly used for array indexing and loop counting.