命名空间
变体
操作

std::projected_value_t

来自 cppreference.cn
< cpp‎ | iterator
 
 
迭代器库
迭代器概念
(C++20)
迭代器原语
算法概念和工具
间接可调用概念
通用算法要求
(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 通过剥离将 Proj 应用于 std::iter_value_t<I>& 的结果类型的任何引用及其最顶层的 cv 限定符来获得值类型。

projected_value_t 用于确定某些算法(例如 ranges::contains)中的默认值类型。

内容

[edit] 模板参数

I - 一个间接可读类型
Proj - 应用于 I 的值类型的左值引用的投影

[edit] 注释

特性测试 Std 特性
__cpp_lib_algorithm_default_value_type 202403L (C++26) 使用 std::projected_value_t 的算法值的默认模板类型

[edit] 示例

[edit] 参见

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