38 using first_type =
typename std::add_lvalue_reference<T1>::type;
39 using second_type =
typename std::add_lvalue_reference<T2>::type;
44 ref_pair(first_type _first, second_type _second) : first(_first), second(_second)
49 bool operator==(
const std::pair<
typename std::decay<T1>::type,
typename std::decay<T2>::type>& other)
const
51 return first == other.first && second == other.second;
54 bool operator!=(
const std::pair<
typename std::decay<T1>::type,
typename std::decay<T2>::type>& other)
const
56 return !operator==(other);
59 bool operator==(
const ref_pair& other)
const
61 return first == other.first && second == other.second;
64 bool operator!=(
const ref_pair& other)
const
66 return !operator==(other);