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