In this post, Victor talks about bringing compile times of the {fmt} library on par with the C standard I/O library (stdio).
Optimizing the Unoptimizable: A Journey to Faster C++ Compile Times
by Victor Zverovich
From the article:
First some background: {fmt} is a popular open-source formatting library for C++ that provides a better alternative to C++ iostreams and C stdio. It has already surpassed stdio in many areas:
- Type safety with compile-time format string checks available by default since C++20 and as an opt in for C++14/17. Runtime format strings are also safe to use in {fmt} which is impossible to achieve in
printf
.- Extensibility: user-defined type can be made formattable and most standard library types such as containers, dates and times are formattable out of the box.
- Performance: {fmt} is significantly faster than common standard library implementations of
printf
, in some cases by an order of magnitude (e.g. on floating-point formatting).- Portable Unicode support.
However, one area where stdio remained significantly better was compile times.
Add a Comment
Comments are closed.