On Sun, 22 May 2016, Mouse wrote: > >>>> size_t foo = (size_t)-1; > >>> size_t foo = -(size_t)1; > >> size_t foo = (size_t)(-1); > > Why bother? Won't: > > size_t foo = ~0UL; > > do (~0ULL for C99)? > > Only if size_t is no larger than unsigned long int (unsigned long long > int for the ULL version). I don't think that's guaranteed.
How can you have the type of `size_t' wider than the widest unsigned integer type in the respective revision of the language standard? Maciej