c++ - TS 范围内的类模板参数 Proj 和类模板 IndirectUnaryPredicate 的用途是什么?

标签 c++ c++-ts

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/

相关文章:

c++ - 为什么 C++ Concepts TS 中同时包含变量和函数概念?

c++ - 如何用 std::function 和 std::ref 替换 std::ptr_fun

c++ - cudaMemcpy 之后数组的值

C++ 库需要 LibCurl - 应用程序的用户需要 libcurl 吗?

c++ - 功能模板与自动关键字

c++ - gtkmm 4 FileChooserNative 代码示例

c++ - 是否被认为是实验性的 - 静态反射功能包括对父类的迭代?