In particular, my comment was referring to “return std::to_string(number);”
template < bool value >
bool constexpr IsEnabled() { return value; }
This was used to silence warnings about unconditional branches in a macro. There are ways to force such functions to be evaluated at compile time, but they're pretty awkward, and limited to integral types (you can't use them on string_view s): #define EVAL_AT_COMPILE_TIME(x) std::integral_constant<decltype(x), x>::value
const bool x = EVAL_AT_COMPILE_TIME(IsEnabled<true>());Although, you're right. I tried it back at home on VC++ and its static analyser wasn't happy.
My idea was to make use of template metaprogramming to generate the string buffer, there are a couple of examples of such attempts.
However, I guess with such amount of additional code, I should declare defeat on the original comment.
In languages where you can't tell the compiler you think this is constant, there's a risk you delude yourself, especially because computers are very fast, and you think you've got O(1) when it's actually O(N) or even O(N^2) and one day N gets big enough and you're in real trouble.
Those examples for HN recreation naturally weren't written with such care.
C++20 has “consteval“: https://en.cppreference.com/w/cpp/language/consteval