该标准提供了所有的比较运算符和赋值运算符pair
。是否讨论过提取操作员的潜力?
例如:
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
包含未定义提取运算符的类型时使用 this,这将失败,就像比较pair
不包含比较运算符的类型会失败一样。
但是想想能够在一个流中播放的快乐map
!肯定有人提出这个?