Здравствуйте, B0FEE664, Вы писали:
BFE>Здравствуйте, Великий Мессия, Вы писали:
BFE>>>И вообще, зачем формат, если это потоковый вывод?
ВМ>>если потоковый вывод подразумевается iostream
ВМ>>то он по скорости давно уже позади того же fmt/std::format
ВМ>>бенчмарки погугли
BFE>Почему именно iostream ? Можно написать намного быстрее.
потому что мы рассматриваем стандартные способы вывода/форматирования
все что там кто то себе лично написал, не интересно
один уже написал — fmt, теперь это повсеместно и в стандарте std::format
и по скорости пока никто ничего лучшего не предложил
ВМ>>во первых как сказал выше, это тормозно
BFE>Вот как написали, так оно и будет.
ась?
ВМ>>во вторых, глазами теряется общий формат строки, иногда и часто это важно
BFE>Это вообще не аргумент. Вот в этой строке "{prefix}-{errno}: got {calculate(bits)} for {bits:#06x}" вообще всё потеряно. И это ещё инициализации , типа int{} туда не засунули.
BFE>Я понял бы аргумент про перевод на другой язык, где местами надо менять аргументы вывода, но не этот.
смотря кому и кто с чем работает
не беря твой любимый потоковый << вывод
любые sprintf/fmt/std::format где внутри длинная строка(а это ускоряет если не склеивать потом эти строки)
то можно спутать аргументы и потерять всякие переводы строк итд
BFE>>>BFE>>>out::display() << prefix << errno << ": got " << calculate(bits) << " for " << hex(6) << bits << out::endl;
BFE>>>
BFE>>>Я ещё могу понять, что некоторым не нравятся "шевроны", но тогда было бы логично предложить какой-нибудь приличный синтаксис для потока, а не вот это вот всё с закрывающими и открывающими скобками.
ВМ>>вот и используй fmt/std::format
BFE>Я его и использую, для форматированного вывода. А для потокового использую потоки.
чудесно, для потокового вывода, когда и где скорость не важна, отличный выбор
но мы говорим о другом случае