Rozumiem, że szablony wyrażeń jako technika zostały znacznie odkryte przed oryginalnym standardem C ++ w 1998 roku. Dlaczego nie użyto ich do poprawy wydajności kilku standardowych klas takich jak std::string
i strumienie?
operator+
, możesz osiągnąć O(n)
i zerować zbędne alokacje dla powtarzających się alokacji, co jest wciąż szybsze niż odwołania do wartości. Ponadto można zoptymalizować na przykład implementacje COW, kopiując przy zapisie , a nie tylko „na indeksie do non-const”. Istnieją również inne aplikacje, w których można poprawić zarówno wydajność, jak i semantykę za pomocą szablonów wyrażeń.