A string formatting library in 65 lines of C++
11 hours ago
- #programming
- #string-formatting
- #C++
- Implementation of a compact string formatting library in C++ for a video game, totaling 65 lines of code.
- Usage involves a format buffer and a `fmt::format` function that substitutes parameters into format strings marked with `{}`.
- Handles escaping with `{{` and gracefully manages missing format arguments by rendering empty strings.
- Supports multiple format arguments and detects buffer exhaustion, allowing for reallocation.
- Design choices prioritize simplicity, greppability, and localizability over complex type specifiers.
- Comparison with `printf` highlights advantages in verbosity, extensibility, and error-proneness.
- Includes ergonomic improvements like `Static_String` and `print` functions for easier integration.
- Discusses design considerations, such as escaping ambiguity and parameter pack iteration techniques.
- Provides example implementations for various types, including integers, floats, and custom vectors.