#pragma once //Source: https://stackoverflow.com/a/46873787 #include #include namespace detail { template constexpr void static_loop(std::integer_sequence, F&& f) { (f(std::integral_constant{}), ...); // C++17 fold expression } } // detail template constexpr void static_loop(F&& f) { detail::static_loop(std::make_integer_sequence{}, std::forward(f)); }