template struct Int {}; template constexpr bool operator==(Int lhs, Int rhs) { return Ia == Ja; } template struct AsArraySize { char arr[Int() == Int()]; }; template constexpr int operator+(Int lhs, Int rhs) { return Ic + Jc; } template struct Sum : Int() + Int()> { };