std::experimental::ranges:: difference_type
|
Определено в заголовочном файле
<experimental/ranges/iterator>
|
||
|
template
<
class
I
>
struct difference_type { } ; |
(1) | |
|
template
<
class
T
>
struct difference_type < T * > ; |
(2) | |
|
template
<
class
T
>
struct difference_type < const T > : difference_type < std:: decay_t < T >> { } ; |
(3) | |
|
template
<
class
T
>
requires requires
{
typename
T
::
difference_type
;
}
|
(4) | |
|
template
<
class
T
>
requires
!
requires
{
typename
T
::
difference_type
;
}
&&
|
(5) | |
Вычисляет соответствующий тип разности для типа
I
, если таковой имеется. Пользователи могут специализировать
difference_type
для программно-определенного типа.
T
является объектным типом, предоставляет член типа
type
равный
std::ptrdiff_t
. В противном случае, член
type
отсутствует.
difference_type
. Предоставляет тип-член
type
, равный
T::difference_type
.
difference_type
, но поддерживают вычитание. Предоставляет тип-член
type
, равный
std::
make_signed_t
<
decltype
(
std::
declval
<
T
>
(
)
-
std::
declval
<
T
>
(
)
)
>
.
Вспомогательный псевдоним шаблона
|
template
<
class
T
>
using difference_type_t = typename ranges :: difference_type < T > :: type ; |
(ranges TS) | |
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Смотрите также
определяет, что
Semiregular
тип может быть инкрементирован с помощью пре- и постинкрементных операторов
(концепт) |
|
|
класс характеристик совместимости, который собирает ассоциированные типы итератора
(псевдоним шаблона) |