Longueur du C++ std::string en octets

J'ai un peu de mal à déterminer la sémantique exacte de std::string.length().
Le la documentation indique explicitement que length() renvoie le nombre de caractères dans la chaîne et pas le nombre d'octets. Je me demandais dans quels cas cela fait une différence.

En particulier, est-ce seulement pour les non-char les instanciations de std::basic_string<> ou puis-je aussi avoir des ennuis lorsque le stockage des chaînes UTF-8 avec des caractères multi-octets? La norme de permettre length() être en UTF8?

il est wstring pour l'UTF et là il fait sens que length retourne le nombre de caractères depuis le personnage de la taille peut varier.
Non, wchar_t a une taille fixe comme n'importe quel autre type. Il ne peut pas magiquement varier.
Vérifiez également ce joli fil sur std::string vs std::wstring et quelques trucs à propos d'Unicode: stackoverflow.com/questions/402283/stdwstring-vs-stdstring
wstring n'a rien à voir avec l'encodage UTF. Peut-être que vous pensiez de u16string ou u32string?

OriginalL'auteur ComicSansMS | 2011-10-12