=========================== Metaprogramming Utilities =========================== .. toctree:: tag_invoke Utility Concepts ---------------- :: #include namespace dplx::cncr {} .. namespace:: dplx::cncr .. concept:: template \ any_of Fullfilled if :math:`\exists U \in Ts .\; T = U` holds. .. concept:: template \ none_of Fullfilled if :math:`\forall U \in Ts .\; T \neq U` holds. Template Parameter Pack Utilities --------------------------------- :: #include namespace dplx::cncr {} .. namespace:: dplx::cncr .. function:: template \ constexpr decltype(auto) nth_param(Ts &&...vs) noexcept :returns: the perfectly forwarded :texpr:`N` th value from :texpr:`vs` (zero indexed) .. type:: template \ nth_param_t Selects the :texpr:`N` th type from :texpr:`Ts` (zero indexed). .. var:: template \ constexpr auto nth_param_v Selects the :texpr:`N` th value from :texpr:`Vs` (zero indexed).