首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

std::is_nothrow_swappable

Defined in header <type_traits>

template< class T, class U > struct is_swappable_with;

(1)

(since C++17)

template< class T > struct is_swappable;

(2)

(since C++17)

template< class T, class U > struct is_nothrow_swappable_with;

(3)

(since C++17)

template< class T > struct is_nothrow_swappable;

(4)

(since C++17)

1%29如swap(std::declval<T>(),std::declval<U>())swap(std::declval<U>(),std::declval<T>())之后的未评估上下文中都有良好的格式。usingstd::swap;28%见Swappable%29,提供成员常量。value平等true.否则,valuefalse...存取检查执行时,就好像是从与任何类型无关的上下文中执行的。

2%29T不是可引用的类型%28i。E.,可能是cv-符合条件的void类的函数类型。简历-限定符-seq或者是参-限定符%29,提供成员常量。value等于false否则,提供成员常量。value等于std::is_swappable_with<T&, T&>::value

3%29与%281%29相同,但对%281%29的两个表达式的计算都不引发异常。

4%29与%282%29相同,但使用is_nothrow_swappable_with...

TU每一个都是一个完整的类型,%28可能是cv-合格%29void,或者一系列未知的界限。否则,行为就没有定义。

辅助变量模板

template <class T, class U> inline constexpr bool is_swappable_with_v = is_swappable_with<T, U>::value;

(since C++17)

template <class T> inline constexpr bool is_swappable_v = is_swappable<T>::value;

(since C++17)

template <class T, class U> inline constexpr bool is_nothrow_swappable_with_v = is_nothrow_swappable_with<T, U>::value;

(since C++17)

template <class T> inline constexpr bool is_nothrow_swappable_v = is_nothrow_swappable<T>::value;

(since C++17)

继承自STD:积分[医]常量

成员常数

value static

true if T is swappable with U , false otherwise (public static member constant)

成员函数

operator bool

converts the object to bool, returns value (public member function)

operator() (C++14)

returns value (public member function)

成员类型

Type

Definition

value_type

bool

type

std::integral_constant<bool, value>

注记

此特性不检查交换表达式的直接上下文之外的任何内容:如果使用TU将触发模板的专门化,生成隐式定义的特殊成员函数等,并且这些函数都有错误,即使在以下情况下,实际的交换可能也不会编译。std::is_swappable_with<T,U>::value编译并计算为true...

另见

swap

swaps the values of two objects (function template)

is_move_assignableis_trivially_move_assignableis_nothrow_move_assignable (C++11)(C++11)(C++11)

checks if a type has a move assignment operator (class template)

代码语言:txt
复制
 © cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

扫码关注腾讯云开发者

领取腾讯云代金券