ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
26 апреля
958601 Топик полностью
fk0, легенда (13.11.2019 00:45, просмотров: 541) ответил =AlexD= на А ведь можно было просто использовать fmtlib, которая целиком войдёт в следующую редакцию плюсов.
Не знаю войдёт ли, сыровато и нормально не сделать без других не вошедших вещей. Смотри по ссылке: по факту compile time checks сработают только если включить некий C-макрос. А иначе вместо них runtime exception, что немного другая история, https://fmt.dev/latest/api.html#c.fmt
гораздо более неприятная (пока не исполнишь нужный код, не узнаешь что там баг). А макрос вот он: https://github.com …ude/fmt/format.h#L3634 Что же я предлагаю, что макрос либо не нужен (перехерачиваем все исходники и вписываем вместо "%d", например, "%d"_f), либо делаем макрос #define fprintf(...) который аккуратненько ко второму аргументу дописывает то же _f (и надеемся, что никто в классах функции с такими именами не определяет, или руками там переименовываем типы). Но compile time проверка теперь делается _всегда_. Сам же тип, результат конверсии ""_f, он конвертируемый в const char* и обратная совместимость в общем есть.
[ZX]