Dans mon code, je n'utilise pas int ou unsigned int. Je n'utilise que size_t ou ssize_t pour le portable. Par exemple :
typedef size_t intc; // (instead of unsigned int)
typedef ssize_t uintc; // (instead of int)
Porque strlen
, string
, vector
... toutes les utilisations size_t
donc j'utilise habituellement size_t
. Et je n'utilise que ssize_t
alors qu'elle peut être négative.
Mais je trouve que :
Les types d'entiers non signés sont idéaux pour les utilisations qui traitent le stockage comme un tableau de bits. Utiliser un unsigned au lieu d'un int pour gagner un bit supplémentaire afin de représenter des entiers positifs n'est presque jamais une bonne idée. Les tentatives visant à garantir que certaines valeurs sont positives en déclarant des variables non signées seront généralement mises en échec par les règles de conversion implicites.
dans le livre Le langage de programmation C++ .
Je suis donc perplexe. Ai-je tort ? Pourquoi le STL ne respecte-t-il pas ce que suggère le livre ?