Open
Description
template <class A>
struct Foo {
template <class Bar>
constexpr auto a_method();
};
template <class A>
template <class Bar>
constexpr auto Foo<A>::a_method() {
return 42;
}
template <>
template <class Bar>
constexpr auto Foo<void>::a_method() {
return 42;
}
It can be compiled with GCC, but not with Clang.
If we first provide explicit specialization, Clang will compile it.
Seems like a bug in Clang.