Size: a a a

2020 September 08

АК

Александр Караев... in pro.cxx
Constantine Drozdov
нет никакой типобезопасности в записи в JSON
format(R"("stringValue" : "{}")", stringdata);
Большинству формат нужен ровно для того, чтобы красиво что-то логгировать в удобном виде, а не строгий формат, который потом нужно парсить
источник

CD

Constantine Drozdov in pro.cxx
Переслано от Constantine Drozdov
в любом случае, вопрос: какую задачу решает fmtlib без дефектов?
источник

CD

Constantine Drozdov in pro.cxx
Александр Караев
Большинству формат нужен ровно для того, чтобы красиво что-то логгировать в удобном виде, а не строгий формат, который потом нужно парсить
логгирование без абстрагирования от логгера может быть решено любой из систем (1) или (2)
источник

АК

Александр Караев... in pro.cxx
Constantine Drozdov
Переслано от Constantine Drozdov
в любом случае, вопрос: какую задачу решает fmtlib без дефектов?
Так что я бы ответил "задачу вывода в строку для удобного человеческого восприятия"
источник

ПК

Побитый Кирпич... in pro.cxx
Constantine Drozdov
тут может стоять только
format(R"("stringValue" : "{json_string_escaped}")", stringdata);
Ну и как это будет типобезопасно, если ошибка будет на этапе выполнения (как и в printf)?
источник

CD

Constantine Drozdov in pro.cxx
Побитый Кирпич
Ну и как это будет типобезопасно, если ошибка будет на этапе выполнения (как и в printf)?
поэтому необходимо синтезировать сигнатуру
источник

AN

Alexander N in pro.cxx
А в чём нетипобезопасность?
источник

CD

Constantine Drozdov in pro.cxx
Александр Караев
Так что я бы ответил "задачу вывода в строку для удобного человеческого восприятия"
человеческое восприятие это схема сериализации
источник

CD

Constantine Drozdov in pro.cxx
Alexander N
А в чём нетипобезопасность?
рантайм ерроры при любой опечатке
источник

AN

Alexander N in pro.cxx
Constantine Drozdov
рантайм ерроры при любой опечатке
Эээ, например?
источник

AN

Alexander N in pro.cxx
косяки с {} ?
источник

ПК

Побитый Кирпич... in pro.cxx
Constantine Drozdov
тут может стоять только
format(R"("stringValue" : "{json_string_escaped}")", stringdata);
format(R"("stringValue" : "{}")", json_string_escaped(stringdata));
источник

CD

Constantine Drozdov in pro.cxx
Alexander N
Эээ, например?
i64data является типом, который не приводится к инту
источник

AN

Alexander N in pro.cxx
Constantine Drozdov
i64data является типом, который не приводится к инту
Ну дак для него не будет вообще кандидата разве нет?
источник

АК

Александр Караев... in pro.cxx
Constantine Drozdov
рантайм ерроры при любой опечатке
А format<%s>("1") тебя бы устроил?
Я кажется понял, к чему ты клонишь.. строка формата должна определять типы, а аргументы кастоваться к этим типам (или давать ошибку компиляции), да?
источник

CD

Constantine Drozdov in pro.cxx
Побитый Кирпич
format(R"("stringValue" : "{}")", json_string_escaped(stringdata));
R"("stringValue" : )" + json_string_escaped(stringdata) + R"(}")"
у меня короче
источник

CD

Constantine Drozdov in pro.cxx
Александр Караев
А format<%s>("1") тебя бы устроил?
Я кажется понял, к чему ты клонишь.. строка формата должна определять типы, а аргументы кастоваться к этим типам (или давать ошибку компиляции), да?
строка формата это запись сигнатуры функции
источник

AN

Alexander N in pro.cxx
я так понял, что для каждого типа должна быть специализация и если её нету, то всё приехали
источник

CD

Constantine Drozdov in pro.cxx
кастомизация идет в строку формата
источник

CD

Constantine Drozdov in pro.cxx
это случай (1)
источник