The Many Faces of Number ⟷ String Conversions
summary
Compares concrete APIs (atoi/strtol/sprintf/scanf, std::to_string/stoi, std::stringstream, std::from_chars, fmt/format, scanlib, Boost lexical_cast/convert), implements the same add(string,string)→string with each, and runs benchmarks showing std::from_chars is fastest while std::stringstream is orders of magnitude slower and fmt/format comes close; explains IEEE‑754 shortest unique decimal output and that from_chars gives that; demonstrates a working benchmark and advocates using boost::convert with a from_chars backend (Boost 1.80) for readable, fast conversions.
AI-written summary · about
chapters (19)
- 0:00Introduction
- 0:50Simple calculator demo
- 2:14Early C string-to-number
- 7:52Number-to-string in C
- 11:23printf and scanf
- 17:31BSD vs System V strtol
- 20:51C++ iostream conversions
- 25:11C++11 to_string and stoi
- 28:00Floating-point to string challenges
- 31:10C++17 charconv
- 38:13C++20 fmt and scan
- 45:41Benchmarking conversions
- 49:17Performance analysis
- 49:39Conclusion and future
- 51:05Boost libraries
- 56:09Boost.Convert overview
- 1:01:18Error handling with Boost.Convert
- 1:03:47Boost.Convert use
- 1:04:09Number-string conversion evolution
related talks
55mFormatting floating-point numbers
09mA Conversion Story: Improving from_chars and to_chars in C++17
01h 21mC++ MythBusters
03mLet's cmakeify the C++ standard library
51mThe C++ Type System is your Friend
51mTypical C++, but Why?
57mProgramming for Warm Days: Avoiding Dangerous Conversions
59mSoftware Engineering Is About Tradeoffs
