C++ Compile-time Ranges