std::ranges::zip_transform_view<F,Views...>::iterator<Const>::operator*

来自cppreference.com
 
 
范围库
范围适配器
 
 
constexpr decltype(auto) operator*() const
    noexcept(/* 见描述 */);
(C++23 起)

返回通过对底层的所指向元素应用 F 类型的可调用对象所获得的变换后的元素。

等价于

return
    std::apply
    (
        [&](auto const&... iters) -> decltype(auto)
        {
            return std::invoke(*parent_->fun_, *iters...);
        },
        inner_.current_
    );

其中 *parent_->fun_ 是存储于父 ranges::zip_transform_view 中的变换函数,而 current_ 是底层的指向 Views... 的迭代器的元组。

参数

(无)

返回值

作为转换(映射)结果的元素。

异常

noexcept 说明:  
noexcept(std::invoke(*parent_->fun_, *std::get<INTS>(inner_.current_)...))
其中 INTS 为整数包 0, 1, ..., (sizeof...(Views)-1)

注解

不提供 operator->

如果指向父 ranges::zip_transform_view 的指针 parent_ 为空(比如当 *this 被默认构造时),其行为未定义。

示例