标准为pair
提供了all the comparison operators和assignment operator。是否有讨论提取算子的潜力?
例如:
template <typename _Ty1, typename _Ty2>
enable_if_t<decltype(declval<istream&>() >> declval<_Ty1&>(), true_type())::value && decltype(declval<istream&>() >> declval<_Ty2&>(), true_type())::value, istream&> operator >> (istream& lhs, pair<_Ty1, _Ty2>& rhs) {
return lhs >> rhs.first >> rhs.second;
}
显然,如果在pair
包含未定义提取运算符的类型时使用此方法,则会失败的方式与比较pair
类型的不包含比较运算符的类型将失败。
但是想想能够在map
中流动的乐趣!当然有人提议这个吗?