https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121244
--- Comment #5 from Ville Voutilainen <ville.voutilainen at gmail dot com> --- The analysis looks good, and correct. Expecting to see a Qt patch that moves those static_asserts outside the QAnyStringView definition. There's other shenanigans in it, but those probably work due to being already-declared, like the use of QAnyStringView::Tag in QAnyStringView::if_convertible_to, i.e. doing std::is_same<q20::remove_cvref_t<T>, QAnyStringView::Tag> because that Tag is a nested enum defined above that check. And that wouldn't require a complete type anyway, whereas querying for member function invocation well-formedness does.