template <int a, int b> struct x {};

template <int a> struct x<a, a> {}; // ok

template <int a> struct x<a, a + 1> {}; // ng


なんで最後のダメなの?