Size is internally stored as a size_t, so having an int parameter would cause implicit sign-conversion from a signed value to an unsigned value to occur.