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.
Réponses
Trop de publicités?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.
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.
- Réponses précédentes
- Plus de réponses