命名空间
变体
操作

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 通过剥离对 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 类型上调用可调用对象的解引用结果
(别名模板)[edit]
(C++20)
用于指定接受投影的算法约束的辅助模板
(类模板) [edit]