Bjarne Stroustrup a écrit dans Le Langage de Programmation C++:
L'entier non signé types sont idéales pour les utilisations qui traitent de stockage comme un tableau de bits. À l'aide d'un unsigned au lieu d'un int pour gagner un peu plus d' représenter des nombres entiers positifs est presque jamais une bonne idée. Les tentatives de s'assurer que certaines valeurs sont positives en déclarant des variables unsigned généralement être vaincu par l'implicite des règles de conversion.
size_t semble être non signé "pour gagner un peu plus de représenter des entiers positifs". Alors, c'est une erreur (ou compromis), et si oui, doit-on réduire au minimum l'utilisation de l'informatique dans notre propre code?
Un autre article de Scott Meyers est ici. Pour résumer, il ne recommande pas l'utilisation non signé dans les interfaces, que si la valeur est toujours positive ou non. En d'autres termes, même si les valeurs négatives n'ont pas de sens, vous ne devez pas nécessairement utiliser unsigned.