-
- Только вот написал парсер строки формата (printf) времени компиляции. Который позволяет написать fprintf(file, "%d %s %f...", a, b, c...) И оно всё разворачивается (или сообщает об ошибке, если аргументы не соответствуют формату) в линейный код, fk0(1133 знак., 12.11.2019 12:21)
- А ведь можно было просто использовать fmtlib, которая целиком войдёт в следующую редакцию плюсов. - =AlexD=(12.11.2019 14:43, ссылка)
- Не знаю войдёт ли, сыровато и нормально не сделать без других не вошедших вещей. Смотри по ссылке: по факту compile time checks сработают только если включить некий C-макрос. А иначе вместо них runtime exception, что немного другая история, fk0(663 знак., 13.11.2019 00:45, ссылка)
- Не знаю на сколько оправданы твои труды, потому как GCC умеет сам проверять аргументы printf на соответствие шаблону целой кучей опций семейства -Wformat - =AlexD=(13.11.2019 06:04)
- Так рассуждать, труды автора fmtlib тоже не оправданы. Мол есть printf, он всё делает. Но это не так, очень даже оправданы. Там много ньюансов. Основной -- вынос парсинга строки формата в compile time, потому, что printf работает не быстро. По fk0(2963 знак., 13.11.2019 08:58 - 09:09, ссылка, картинка)
- Не знаю на сколько оправданы твои труды, потому как GCC умеет сам проверять аргументы printf на соответствие шаблону целой кучей опций семейства -Wformat - =AlexD=(13.11.2019 06:04)
- Не знаю войдёт ли, сыровато и нормально не сделать без других не вошедших вещей. Смотри по ссылке: по факту compile time checks сработают только если включить некий C-макрос. А иначе вместо них runtime exception, что немного другая история, fk0(663 знак., 13.11.2019 00:45, ссылка)
- А ведь можно было просто использовать fmtlib, которая целиком войдёт в следующую редакцию плюсов. - =AlexD=(12.11.2019 14:43, ссылка)
- Только вот написал парсер строки формата (printf) времени компиляции. Который позволяет написать fprintf(file, "%d %s %f...", a, b, c...) И оно всё разворачивается (или сообщает об ошибке, если аргументы не соответствуют формату) в линейный код, fk0(1133 знак., 12.11.2019 12:21)