std:: incrementable_traits
|
ヘッダーで定義
<iterator>
|
||
|
template
<
class
I
>
struct incrementable_traits { } ; |
(1) | (C++20以降) |
|
template
<
class
T
>
requires
std::
is_object_v
<
T
>
|
(2) | (C++20以降) |
|
template
<
class
T
>
struct
incrementable_traits
<
const
T
>
|
(3) | (C++20以降) |
|
template
<
class
T
>
requires requires
{
typename
T
::
difference_type
;
}
|
(4) | (C++20以降) |
|
template
<
class
T
>
requires
(
!
requires
{
typename
T
::
difference_type
;
}
)
&&
|
(5) | (C++20以降) |
型
I
の関連する差の型を計算します(存在する場合)。プログラムは
プログラム定義型
に対して
incrementable_traits
の特殊化を定義できます。
difference_type
を定義する型に対する特殊化。
difference_type
を提供します。これは
T::difference_type
と同じです。
difference_type
を定義していないが、減算をサポートする型に対する特殊化。
difference_type
というメンバ型を提供します。これは
std::
make_signed_t
<
decltype
(
std::
declval
<
T
>
(
)
-
std::
declval
<
T
>
(
)
)
>
と同じ型です。暗黙的な式バリエーションのルール(下記参照)は式
a
-
b
に適用されます。
暗黙的な式のバリエーション
定数左辺値オペランドに対して非変更的な式を使用する requires 式 は、 暗黙的な式バリエーション も要求します。
例
|
このセクションは不完全です
理由: 例がありません |
関連項目
|
(C++20)
|
semiregular
型が前置および後置インクリメント演算子でインクリメント可能であることを指定する
(コンセプト) |
|
(C++20)
(C++20)
(C++23)
(C++20)
(C++20)
(C++20)
|
イテレータの関連型を計算する
(エイリアステンプレート) |
|
イテレータのプロパティに対する統一インターフェースを提供する
(クラステンプレート) |