#pragma once #include #include #include #include #include #include #include #include namespace interrupt { namespace detail { template struct policy_config { using status_policy_t = typename Policies::template type; using resources_t = typename Policies::template type>::resources; }; template struct parent_config { constexpr static auto children = stdx::tuple{}; constexpr static auto descendants = stdx::tuple_cat(children, children.apply([](auto... child) { return stdx::tuple_cat(child.descendants...); })); template