名稱空間
變體
操作

operator+,-(ranges::elements_view::iterator)

來自 cppreference.com
< cpp‎ | ranges‎ | elements view‎ | iterator
 
 
範圍庫 (Ranges library)
範圍介面卡 (Range adaptors)
 
 
friend constexpr /*iterator*/ operator+( const /*iterator*/& i, difference_type n )
    requires ranges::random_access_range<Base>;
(1) (C++20 起)
friend constexpr /*iterator*/ operator+( difference_type n, const /*iterator*/& i )
    requires ranges::random_access_range<Base>;
(2) (C++20 起)
friend constexpr /*iterator*/ operator-( const /*iterator*/& i, difference_type n )
    requires ranges::random_access_range<Base>;
(3) (C++20 起)
friend constexpr difference_type operator-( const /*iterator*/& x,

                                            const /*iterator*/& y )

    requires std::sized_sentinel_for<ranges::iterator_t<Base>, ranges::iterator_t<Base>>;
(4) (C++20 起)
1,2) 返回迭代器 i 增加 n 後的結果。
3) 返回迭代器 i 減少 n 後的結果。
4) 返回 xy 之間的距離。

這些函式對於普通的非限定查詢限定查詢不可見,只能透過實參依賴查詢找到,當 `elements_view::iterator<Const>` 是實參的關聯類時。

目錄

[編輯] 引數

i, x, y - 迭代器
n - 相對於當前位置的偏移量

[編輯] 返回值

1,2) [&]{ auto j = i; j += n; return j; }()
3) [&]{ auto j = i; j -= n; return j; }()
4) x.base() - y.base()

[編輯] 示例

[編輯] 缺陷報告

下列更改行為的缺陷報告追溯地應用於以前出版的 C++ 標準。

缺陷報告 應用於 釋出時的行為 正確的行為
LWG 3483 C++20 elements_view::iterator 的 difference 被過度約束 要求被放寬