is size_t always unsigned?

peterchen picture peterchen · Jul 6, 2009 · Viewed 37.3k times · Source

As title: is size_t always unsigned, i.e. for size_t x, is x always >= 0 ?

Answer

Mehrdad Afshari picture Mehrdad Afshari · Jul 6, 2009

Yes. It's usually defined as something like the following (on 32-bit systems):

typedef unsigned int size_t;

Reference:

C++ Standard Section 18.1 defines size_t is in <cstddef> which is described in C Standard as <stddef.h>.
C Standard Section 4.1.5 defines size_t as an unsigned integral type of the result of the sizeof operator