In C++ template code is "generated" at compile time.
`constexpr` code is ran at compile time.
Circle, mentioned elsewhere, is a C++ dialect with fully working compile time metaprogramming.
And the error handling is even only 10% working. clang is fine, gcc is broken for years.