4CVWQ5M3SLVLFHBDDQUWITF465YOUI7VYG7W6VWDOOXTHNZCXITAC template <typename _Test, auto _L, auto _R>struct Constraint;template <typename _Test,typename _L, typename _LF, _LF(_L::*_l),typename _R, typename _RF, _RF(_R::*_r)>struct Constraint<_Test, _l, _r> {staticbool test(_L const &l, _R const &r) {return _Test::test(l.*_l, r.*_r);}};
struct Less {template <typename _L, typename _R>staticbool test(_L const &l, _R const &r) {return l < r;
template <typename _L, typename _R>struct Equal {using L = typename _L::Operand;using R = typename _R::Operand;static constexprbool test(L const &l, R const &r) {return _L::get(l) == _R::get(r);