Это объявление компилируется без предупреждений в g++ -pedantic -Wall (версия 4.6.3):
std::size_t foo = -42;
Менее явно фиктивный - объявляет функцию с аргументом size_t и вызывает ее с отрицательным значением. Может ли такая функция защититься от непреднамеренного отрицательного аргумента (который появляется как бесчисленное quintillion, подчиняясь §4.7/2)?
Неполные ответы:
Простое изменение size_t to (signed) long отбрасывает семантику и другие преимущества size_t.
Изменение его на ssize_t - это просто POSIX, а не Standard.
Изменение его на ptrdiff_t является хрупким и иногда сломанным.
Тестирование огромных значений (бит высокого порядка и т.д.) произвольно.