12 votes

Hériter et remplacer les fonctions d'une chaîne std::string ?

Depuis std::string est en fait un typedef d'une classe modèle, comment puis-je la remplacer ? Je veux créer un fichier UTF-8 std::string qui renverra la longueur correcte, entre autres choses.

0voto

Meilleure idée : créer un conteneur utf8_string compatible STL sans hériter de std::string.

0voto

tyree731 Points 343

Il est très difficile d'écrire une implémentation de l'unicode qui soit conforme et fonctionne correctement en toutes circonstances. Je vous conseille d'utiliser une bibliothèque ou une implémentation existante plutôt que de créer la vôtre. Par exemple, Windows, OSX et Qt ont tous des bibliothèques qui supportent UTF-16 et d'autres chaînes codées.

-1voto

icecrime Points 23650

Comme cela a déjà été dit par d'autres : ne pas dériver de l'argent de l'État. std::string il n'est pas conçu pour ça.

Vous devriez jeter un coup d'œil sur cet article qui montre, à titre d'exemple, comment créer une classe de chaînes de caractères insensibles à la casse. Vous verrez que la logique mise en œuvre dans std::basic_string est indépendant du type de caractère, et que le fait de fournir des char_traits devrait faire l'affaire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X