https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118698
--- Comment #9 from David Hunter <davidhunter22 at gmail dot com> --- (In reply to Patrick Palka from comment #8) > Started with r14-9938, though I bet before this commit it only accidentally > worked. > > A workaround is to use an intermediate variable template: > > template <typename T, template <typename...> typename U> > inline constexpr bool is_specialization_of_v = > std::invocable<decltype([]<typename... Args>( U<Args...> const& ) { }),T>; > > template <typename T, template <typename...> typename U> > concept is_specialization_of = is_specialization_of_v<T, U>; Thanks, I did get it to work with this. Oddly the above fails on MSVC, the static_assert fails. Works on Clang though.