// PR c++/93377 // { dg-do compile { target c++20 } } struct empty {}; template c value; template auto func(value); template struct alignment_algorithm; template struct select { template decltype(algorithm_t()(func<_args_t>...)) choose(); template static empty choose(); using type = decltype(choose, args_t...>()); }; template struct select_algorithm : select {}; template struct maybe_value { int value; }; template struct maybe_value; struct function { template >::value)> function(algorithm_t); }; template struct alignment_configuration_traits { static constexpr bool is_vectorised = 0; }; template struct alignment_algorithm { using traits_t = alignment_configuration_traits; template void operator()(indexed_sequence_pairs_t) requires traits_t::is_vectorised; }; int main() { function{alignment_algorithm{}}; }