この宣言は、g++ -pedantic -Wall (バージョン 4.6.3) で警告なしでコンパイルされます。
std::size_t foo = -42;
あまり目立たない偽物は、size_t 引数を指定して関数を宣言し、負の値で呼び出すことです。そのような関数は、不注意による否定的な引数 (§4.7/2 に従って、非常に多くの京のように見える) から保護できますか?
不完全な回答:
size_t を (signed) long に変更するだけでは、size_t のセマンティクスやその他の利点が破棄されます。
それを ssize_t に変更することは、標準ではなく、単に POSIX です。
これを ptrdiff_t に変更すると脆弱で、壊れることがあります。
巨大な値 (上位ビット セットなど) のテストは任意です。