17 namespace seqan3::detail
41 template <
template <
typename ...>
typename crtp_base,
typename ...args_t>
42 struct deferred_crtp_base
47 template <
typename derived_t>
48 using invoke = crtp_base<derived_t, args_t...>;
74 template <
template <
typename,
auto ...>
typename crtp_base,
auto ...args>
75 struct deferred_crtp_base_vargs
80 template <
typename derived_t>
81 using invoke = crtp_base<derived_t, args...>;
95 template <
typename deferred_crtp_base_t,
typename derived_t>
97 requires requires {
typename deferred_crtp_base_t::template invoke<derived_t>; }
99 using invoke_deferred_crtp_base =
typename deferred_crtp_base_t::template invoke<derived_t>;