I like the idea but defining SIZE_UNLIMITED as -1 and comparing a
size_t to it doesn't seem right somehow. Wouldn't it be better do
define SIZE_UNLIMITED to 0 which is a valid size_t value and does not
make sense for the limits so it can be used as magic number?