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 expression , использующее выражение, которое является немодифицирующим для некоторого константного lvalue операнда, также требует неявных вариаций выражений .
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Смотрите также
|
(C++20)
|
определяет, что
semiregular
тип может быть инкрементирован с помощью пре- и постинкрементных операторов
(концепт) |
|
(C++20)
(C++20)
(C++23)
(C++20)
(C++20)
(C++20)
|
вычисляет ассоциированные типы итератора
(псевдоним шаблона) |
|
предоставляет унифицированный интерфейс к свойствам итератора
(шаблон класса) |