类模板参数Proj和类模板IndirectUnaryPredicate在TS范围内的目的是什么?

时间:2018-03-11 09:04:29

标签: c++ c++-ts

Cpp-reference显示以下函数模板(以及其他)来自(实验)范围TS:

<jsp:include="header.jsp"/>

模板参数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组合使用的内容是什么?

1 个答案:

答案 0 :(得分:1)

这是一个投射。您可以将它用于&#34;项目&#34;在将它们传递给谓词之前,范围的元素。例如,当您要将谓词应用于std::pair之类的复杂数据类型时,它很有用,我们要将谓词应用于std::pair::second

all_of(range_of_std_pairs, pred, &pair_t::second);

使用谓词pred对第二个元素检查一系列std :: pair。