Hasty Briefsbeta

A string formatting library in 65 lines of C++

10 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.