Не, усложнение базового формата, чаще всего не нужное. Проще через манипуляторы со своими formatter'ами втаскивать.
ну в моём представлении строка формата это sort of DSL, то есть там весьма индивидуально все должно быть подогнано, вряд ли есть достаточно унифицированное решение
ну в моём представлении строка формата это sort of DSL, то есть там весьма индивидуально все должно быть подогнано, вряд ли есть достаточно унифицированное решение
Там же главная фишка по сравнению со стримами это type erasure, никакого code bloat в зависимости от параметров, функция форматирования ровно одна на один тип контекста. Поэтому вся специфика определяется на самом деле типом параметра.
Там же главная фишка по сравнению со стримами это type erasure, никакого code bloat в зависимости от параметров, функция форматирования ровно одна на один тип контекста. Поэтому вся специфика определяется на самом деле типом параметра.
ну вот у меня получается, что тип (1) это вообще не стримы, а конвенция, определенная выходным форматом, и там естественный способ - генерация по строке формата
а тип (2) ближе к стримам это некоторая форма сериализаторов
Генерация по строке формата это как раз больше про сериализацию. В format меньше строгости. И оно совмещается с сериализаторами на раз-два, format("got object: {}", as_json(obj)). Здесь as_json например не сериализация в промежуточную строку, а враппер, который может сериализовать объект в format context.
Генерация по строке формата это как раз больше про сериализацию. В format меньше строгости. И оно совмещается с сериализаторами на раз-два, format("got object: {}", as_json(obj)). Здесь as_json например не сериализация в промежуточную строку, а враппер, который может сериализовать объект в format context.
запись as_json(obj) это то, ради ухода от чего все и городится
Генерация по строке формата это как раз больше про сериализацию. В format меньше строгости. И оно совмещается с сериализаторами на раз-два, format("got object: {}", as_json(obj)). Здесь as_json например не сериализация в промежуточную строку, а враппер, который может сериализовать объект в format context.
Это сильно сужает расширяемость формата, прямой путь к specification hell :) в format спецификация локальна для типа, с теми же escaped можно играться хоть так: format("{}", escape::xua(str)), хоть так: format("{:xua}", escape(str)). Это гибче чем глобальный %J.
Это сильно сужает расширяемость формата, прямой путь к specification hell :) в format спецификация локальна для типа, с теми же escaped можно играться хоть так: format("{}", escape::xua(str)), хоть так: format("{:xua}", escape(str)). Это гибче чем глобальный %J.
ну там скорее будет {xua} или {j}, да на самом деле существует очень мало форм экранирования, и просто ты хочешь использовать разное слово format
Это сильно сужает расширяемость формата, прямой путь к specification hell :) в format спецификация локальна для типа, с теми же escaped можно играться хоть так: format("{}", escape::xua(str)), хоть так: format("{:xua}", escape(str)). Это гибче чем глобальный %J.
Вопрос в том, что она должна быть глобальна, потому что определяет смысл того, что должно быть записано - xml url attribute. Абсолютный путь к папке, скажем, строка, но таким в принципе не является