Gcc compiles this fine, but Clang (trunk) refuses with the message:
<source>:7:8: error: class template partial specialization is not more specialized than the primary template [-Winvalid-partial-specialization]
template<class T, T x>
struct S{};
template<int& x>
struct S<int&, x> { };
Is this code correct or not?