Bjarne Stroustrup は The C++ Programming Language に次のように書いています。
符号なし整数型は、ストレージをビット配列として扱う用途に最適です。int の代わりに unsigned を使用して、正の整数を表すビットをもう 1 つ取得することは、ほとんど良い考えではありません。符号なしの変数を宣言することによって一部の値が正であることを保証しようとする試みは、通常、暗黙の変換規則によって無効になります。
size_tは、「正の整数を表すためにもう 1 ビット取得するため」に符号なしのようです。これは間違い (またはトレードオフ) でしたか? もしそうなら、自分のコードでの使用を最小限に抑える必要がありますか?
Scott Meyers による別の関連記事はこちらです。要約すると、彼は、値が常に正であるかどうかに関係なく、インターフェイスで unsigned を使用しないことを推奨しています。つまり、負の値が意味をなさない場合でも、必ずしも unsigned を使用する必要はありません。