GCC accepts this but Clang rejects it as a redefinition:
template< typename >
void s() = delete;
template<>
void s< int >() {}
Who is right?
GCC accepts this but Clang rejects it as a redefinition:
template< typename >
void s() = delete;
template<>
void s< int >() {}
Who is right?
It is a Clang bug and also CWG DR 941, which was already adopted by C++11. Clang is nonconforming.