@specsoftdev live:.cid.8e17e9b93cabb607 specsoftdev@gmail.com

std::string умеет хранить данные в стёке.

Рассмотрим такой код:
std::string str;
std::cout << str.capacity() <<  std::endl;

Выдаст значение 15. Т.е. в эту строку можно записать 15 байт и реаллокации не будет происходить.
Самое интересное, что эти 15 байт распологаются в стёке а не в куче.
Так что каст std::to_string() очень дешевая операция, если сохраняемое значение не больше 15 байт.

p.s. Это так в stl которая поставляется вместе с gcc  8-10. В других реализациях может быть и по другому.