std::experimental::ranges:: is_swappable_with, std::experimental::ranges:: is_swappable, std::experimental::ranges:: is_nothrow_swappable_with, std::experimental::ranges:: is_nothrow_swappable
|
Определено в заголовочном файле
<experimental/ranges/type_traits>
|
||
|
template
<
class
T,
class
U
>
struct is_swappable_with ; |
(1) | (ranges TS) |
|
template
<
class
T
>
struct is_swappable ; |
(2) | (ranges TS) |
|
template
<
class
T,
class
U
>
struct is_nothrow_swappable_with ; |
(3) | (ranges TS) |
|
template
<
class
T
>
struct is_nothrow_swappable ; |
(4) | (ranges TS) |
value
равную
true
. В противном случае
value
равна
false
.
Проверки доступа
выполняются так, как если бы они производились из контекста, не связанного ни с одним из типов.
T
не является ссылочным типом (т.е., возможно cv-квалифицированный
void
или тип функции с
cv-qualifier-seq
или
ref-qualifier
), предоставляет константу-член
value
равную
false
. В противном случае, предоставляет константу-член
value
равную
ranges
::
is_swappable_with
<
T
&
, T
&
>
::
value
.
T
и
U
должны быть полными типами, (возможно, с cv-квалификаторами)
void
, или массивами неизвестной границы. В противном случае поведение не определено.
Содержание |
Вспомогательные шаблоны переменных
|
template
<
class
T,
class
U
>
constexpr bool is_swappable_with_v = is_swappable_with < T, U > :: value ; |
(1) | (ranges TS) |
|
template
<
class
T
>
constexpr bool is_swappable_v = is_swappable < T > :: value ; |
(2) | (ranges TS) |
|
template
<
class
T,
class
U
>
constexpr bool is_nothrow_swappable_with_v = is_nothrow_swappable_with < T, U > :: value ; |
(3) | (ranges TS) |
|
template
<
class
T
>
constexpr bool is_nothrow_swappable_v = is_nothrow_swappable < T > :: value ; |
(4) | (ranges TS) |
Наследуется от std:: integral_constant
Константы-члены
|
value
[static]
|
true
если
T
можно обменивать с
U
,
false
в противном случае
(публичная статическая константа-член) |
Функции-члены
|
operator bool
|
преобразует объект в
bool
, возвращает
value
(публичная функция-член) |
|
operator()
(C++14)
|
возвращает
value
(публичная функция-член) |
Типы-члены
| Тип | Определение |
value_type
|
bool |
type
|
std:: integral_constant < bool , value > |
Примечания
Этот признак не проверяет ничего за пределами непосредственного контекста выражений обмена: если использование
T
или
U
вызовет специализации шаблонов, генерацию неявно определенных специальных функций-членов и т.д., и в них есть ошибки, фактический обмен может не скомпилироваться, даже если
ranges::is_swappable_with<T,U>::value
компилируется и вычисляется как
true
.
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Смотрите также
|
определяет, что тип может быть обменян или что два типа могут быть обменены друг с другом
(концепт) |
|
|
(C++17)
(C++17)
(C++17)
(C++17)
|
проверяет, могут ли объекты типа быть обменены с объектами того же или другого типа
(шаблон класса) |