Je crois comprendre que les modèles d'expression en tant que technique ont été découverts de manière significative avant la norme C ++ originale en 1998. Pourquoi n'ont-ils pas été utilisés pour améliorer les performances de plusieurs classes standard comme std::string
et streams?
operator+
, vous pourriez réaliser O(n)
et zéro allocations redondantes pour les allocations répétées, ce qui est encore plus rapide que les références rvalue. De plus, vous pouvez par exemple optimiser les implémentations de COW en copiant en écriture , et pas seulement "sur l'index en non-const". Il existe également d'autres applications où les performances et la sémantique peuvent être améliorées avec des modèles d'expression.