You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

925 B

constexpr-to-string

Features:

  • Convert any integral type to a string at compile-time
  • String can be in binary, hexadecimal, or any base in-between
  • No external dependencies, only includes type_traits for type-checking
  • Works best in C++20 GCC or C++17/20 Clang

How to use:

This single header file provides a to_string utility, which may be used as below:

const char *number = to_string<2147483648999954564, 16>; // produces "1DCD65003B9A1884"
puts(number);
puts(to_string<-42>); // produces "-42"
puts(to_string<30, 2>); // produces "11110"

With to_string, all that will be found in program disassembly are the resulting string literals, as if you wrote the strings yourself.

Try it on Compiler Explorer.

Known issues:

  • With C++17 GCC, to_string must be used to initialize variables; otherwise, the integer-string conversion is done at run-time.