Re[12]: Полухин - что там с С++26
От: Went  
Дата: 22.01.26 07:45
Оценка: +1
Здравствуйте, B0FEE664, Вы писали:

BFE>Короче, можете объяснить: где вы предполагаете возможность оптимизации?

Выражение $"Get {count} of {fruit}.".
По отношению к конкатенации ("Get " + std::to_string(count) + " of " + fruit + ".") — нет необходимости многократно перевыделять буферы и копировать.
По отношению к форматированию (std::format("Get {0} of {1}", count, fruit)) — нет необходимости парсить строку на этапе исполнения, нет необходимости создавать обобщенный механизм под произвольное количество аргументов-плейсхолдеров; все разворачивается в линейный код: сконвертили в строки все не строки (хотя для чисел можно взять максимум и конвертить уже in-place), оценили суммарный размер буфера, выделили один раз строку нужной длины, скопировали всё один раз.

Даже если сделать constexpr-версию std::format, где первый аргумент разбирается на этапе компиляции, то я очень сомневаюсь, что оптимизатор компилятора сможет превратить эту шаблонную магию в что-то соизмеримое с тем, что напишут разработчики компилятора.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.