Возможно, я устал, но я застрял в этой простой частичной специализации, которая не работает, потому что non-type template argument specializes a template parameter with dependent type 'T':
template <typename T, T N> struct X;
template <typename T> struct X <T, 0>;
Замена 0 на T(0), T{0} или (T)0 не помогает. Так возможна ли эта специализация?