GCC принимает это, но Clang отклоняет это как переопределение:
template< typename >
void s() = delete;
template<>
void s< int >() {}
Кто прав?
Это Лягушка а также CWG DR 941, который был уже принят C ++ 11. Clang не соответствует.
Других решений пока нет …