std::projected_value_t

来自cppreference.com
< cpp‎ | iterator
 
 
迭代器库
迭代器概念
迭代器原语
算法概念与工具
间接可调用概念
常用算法要求
(C++20)
(C++20)
(C++20)
工具
(C++20)
projected_value_t
(C++26)
迭代器适配器
范围访问
(C++11)(C++14)
(C++14)(C++14)  
(C++11)(C++14)
(C++14)(C++14)  
(C++17)(C++20)
(C++17)
(C++17)
 
在标头 <iterator> 定义
template< std::indirectly_readable I,

          std::indirectly_regular_unary_invocable<I> Proj >
using projected_value_t =

    std::remove_cvref_t<std::invoke_result_t<Proj&, std::iter_value_t<I>&>>;
(C++26 起)

别名模板 projected_value_t 通过对 std::iter_value_t<I>& 应用 Proj 的结果类型上剔除任何引用和其顶层 cv 限定符来获得值类型。

projected_value_t 用于在如 ranges::contains 这样的一些算法中确定默认值类型。

模板形参

I - 可间接读取类型
Proj - I 的值类型的左值引用上应用的投影

注解

功能特性测试 标准 功能特性
__cpp_lib_algorithm_default_value_type 202403L (C++26) 使用 std::projected_value_t 作为算法值的默认模板类型

示例

参阅

计算在解引用某组 indirectly_readable 类型的结果上调用可调用对象的结果
(别名模板)
(C++20)
用于对接受投影的算法指定约束的辅助模板
(类模板)