テンプレート エイリアスが与えられた場合
template<unsigned U>
using uint_ = integral_constant<unsigned,U>;
の部分的な専門化
template<class T,class P>
struct size{};
なので
template <class T,unsigned U>
struct size<T,uint_<U>>{};
gcc 4.7 では警告は生成template parameter can not be deduced
されませんが、clang 3.1 では警告が生成されます
それで、それは不正なコードですか?