Cpp-reference显示(实验)范围TS中的以下功能模板(以及其他):
template< ranges::InputIterator I, ranges::Sentinel<I> S,
class Proj = ranges::identity,
ranges::IndirectUnaryPredicate<ranges::projected<I, Proj>> Pred >
bool all_of( I first, S last, Pred pred, Proj proj = Proj{} );
模板参数
Proj
与IndirectUnaryPredicate
结合可以使用什么? 最佳答案
这是一个投影。您可以使用它来“投影”范围的元素,然后再将它们传递给谓词。例如,当您要将谓词应用于std::pair
这样的复杂数据类型时,这很有用,让我们将谓词应用于std::pair::second
。
all_of(range_of_std_pairs, pred, &pair_t::second);
在对的第二个元素上使用谓词
pred
检查std::pairs的范围。关于c++ - TS范围内的类模板参数Proj和类模板IndirectUnaryPredicate的用途是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49218356/