De plus, l'interface des string aurait due être séparée en "méthodes" non modifiantes, "méthodes modifiantes", quitte à faire une classe "readonly_string" qui permette les recherches, les modifications de taille (ou du pointeur de début de chaîne) mais pas du contenu de la chaîne
On est en C++ là. Il suffit de faire une const std::string. Les méthodes que tu peux utilisées sont alors uniquement celles annotées "const", qui ne modifient pas le contenu de l'objet. Pas besoin d'une deuxième classe.
Cela dit, il me semble qu'il y a dans les projets pour C++17 une "string_view", qui ne stocke pas ses données mais permet de faire ce genre de choses avec des données externes (venant d'une string, d'un char*, ou d'une autre string_view), ceci afin de limiter le nombre de copies des données.
[^] # Re: Erreur de livre et experts C++
Posté par pulkomandy (site web personnel, Mastodon) . En réponse à la dépêche C++17 fixe l’ordre d’évaluation des expressions. Évalué à 1.
On est en C++ là. Il suffit de faire une const std::string. Les méthodes que tu peux utilisées sont alors uniquement celles annotées "const", qui ne modifient pas le contenu de l'objet. Pas besoin d'une deuxième classe.
Cela dit, il me semble qu'il y a dans les projets pour C++17 une "string_view", qui ne stocke pas ses données mais permet de faire ce genre de choses avec des données externes (venant d'une string, d'un char*, ou d'une autre string_view), ceci afin de limiter le nombre de copies des données.