“旧” STL 不允许 saystd::find
专门使用std::set
orstd::unordered_map
等的成员函数。它不能,因为前者使用迭代器,后者需要容器,并且无法从迭代器获取容器。甚至还有一个问题(专业化 STL 算法,以便它们在可用时自动调用有效的容器成员函数)。
由于 Range V3 最终将焦点从迭代器转移到了范围,人们可以期望 finallystd::find
会自动专门化为std::set
,这反过来又使得std::none_of_equal
(如果它被采用)做你想做的事情,等等。
但是,阅读它当前的实现,我看不到这样的功能。为什么?