Namespaces
Variants

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

ja.cppreference.net から
 
 
レンジライブラリ
レンジアダプタ
 
 
constexpr decltype(auto) operator*() const
    noexcept(/* see description */);
(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 - > は提供されていません。

parent_ ポインタが親の ranges::zip_transform_view を指しておらず、nullである場合(例えば、 * this がデフォルト構築されている場合)、動作は未定義です。

例