Generally any standard library header may introduce any of the other header's declarations into the std
namespace, but the declarations will always refer to the same entity and there won't be any one-definition-rule violation or anything like that. The headers listed on cppreference are just the ones for which a guarantee is made that they introduce std::size_t
.
<cstddef>
is probably the most minimal out of the headers and will also be available in a freestanding environment.
Note however, that none of the listed headers is guaranteed to introduce size_t
into the global namespace scope. If you require this, you need to include one of the C versions of the headers, e.g. #include<stddef.h>
.