std::rand said,
int rand();
Returns a pseudo-random integral value between 0 and RAND_MAX (0 and RAND_MAX included).
Since it is guaranteed that a non-negative integer will be returned, why the return type is signed?
I am not talking about if we should use it here. Is it a historical issue or some bad design?