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{} );

模板参数ProjIndirectUnaryPredicate结合可以使用什么?

最佳答案

这是一个投影。您可以使用它来“投影”范围的元素,然后再将它们传递给谓词。例如,当您要将谓词应用于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/

10-09 19:53