25 lines
603 B
C++
25 lines
603 B
C++
#ifndef APP_HELPER_H
|
|
#define APP_HELPER_H
|
|
|
|
#include <array>
|
|
#include <functional>
|
|
#include <variant>
|
|
|
|
template<std::size_t N, typename T>
|
|
constexpr std::array<T, N> array_fill(const T& value) {
|
|
std::array<T, N> array{};
|
|
array.fill(value);
|
|
return array;
|
|
}
|
|
|
|
template<typename F, std::size_t... I>
|
|
constexpr void _static_for_impl(F &&f, std::index_sequence<I...>) {
|
|
(f(std::integral_constant<std::size_t, I>{}), ...);
|
|
}
|
|
|
|
template<std::size_t N, typename F>
|
|
constexpr void static_for(F &&f) {
|
|
_static_for_impl(std::forward<F>(f), std::make_index_sequence<N>{});
|
|
}
|
|
|
|
#endif // APP_HELPER_H
|