名前空間
変種
操作

std::incrementable

From cppreference.com
 
 
イテレータライブラリ
イテレータのコンセプト
イテレータのプリミティブ
アルゴリズムのコンセプトとユーティリティ
間接呼び出し可能コンセプト
共通アルゴリズム要件
(C++20)
(C++20)
(C++20)
ユーティリティ
(C++20)
イテレータアダプタ
Rangeアクセス
(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< class I >

    concept incrementable =
        std::regular<I> &&
        std::weakly_incrementable<I> &&
        requires(I i) {
            { i++ } -> std::same_as<I>;

        };
(C++20以降)

このconceptは、プリインクリメント演算子およびポストインクリメント演算子でインクリメント可能であり、そのインクリメント操作は 等価性を保持し、かつ型が std::equality_comparable であるような型に対する要件を指定します。

std::weakly_incrementableが単一パスアルゴリズムのみをサポートするのとは異なり、std::incrementableをモデル化する型では、マルチパス単方向アルゴリズムを使用できます。

[編集] 意味論的要件

Iは、型Iの任意の2つのインクリメント可能なオブジェクトabが与えられた場合、std::incrementableをモデル化します。

  • bool(a == b)bool(a++ == b) を意味し、
  • bool(a == b)bool(((void)a++, a) == ++b) を意味します。

[編集] 等価性保持

標準ライブラリのコンセプトのrequiresで宣言された式は、(特に明記されていない限り)等価性保持である必要があります。

[編集] 関連項目

semiregular 型が前置および後置インクリメント演算子でインクリメントできることを規定する
(コンセプト) [編集]
(C++20)
型が別の型と同一であることを規定する
(コンセプト) [編集]
English 日本語 中文(简体) 中文(繁體)