std::string ne fait pas de partage implicite de la mémoire ? Alors change d'implémentation.
Et sinon, le principe des templates, c'est que quand le compilateur voit un template, il peut dérouler tout le code, voir tout le code inutile qu'il exécute et le foutre à la poubelle si on active les optimisations. C'est comme ça par exemple que les itérateurs de conteneurs comme std::vector ou std::string sont inlinés et souvent remplacés par des pointeurs dès qu'on passe en -O1.
[^] # Re: Boost ? c'est quoi ?
Posté par Batchyx . En réponse à la dépêche Sortie de Boost 1.46. Évalué à 3.
std::string ne fait pas de partage implicite de la mémoire ? Alors change d'implémentation.
Et sinon, le principe des templates, c'est que quand le compilateur voit un template, il peut dérouler tout le code, voir tout le code inutile qu'il exécute et le foutre à la poubelle si on active les optimisations. C'est comme ça par exemple que les itérateurs de conteneurs comme std::vector ou std::string sont inlinés et souvent remplacés par des pointeurs dès qu'on passe en -O1.