2

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か?

4

1 に答える 1

2

投影です。これを使用して、範囲の要素を述語に渡す前に「射影」できます。たとえば、述語を のような複雑なデータ型に適用する場合に便利です。std::pair述語を に適用したいとしますstd::pair::second

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

predペアの 2 番目の要素で述語を使用して std::pairs の範囲をチェックします。

于 2018-03-11T09:57:10.317 に答える