diff --git a/include/ircd/util.h b/include/ircd/util.h index 19648c26b..6597b7a48 100644 --- a/include/ircd/util.h +++ b/include/ircd/util.h @@ -88,6 +88,15 @@ num_of() return static_cast::type>(Enum::_NUM_); } +// Iteration of a num_of() conforming enum +template +typename std::enable_if::value, void>::type +for_each(const std::function &func) +{ + for(size_t i(0); i < num_of(); ++i) + func(static_cast(i)); +} + struct case_insensitive_less {