|
NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
|
实现类型交换相关操作 更多...
类 | |
| struct | is_swappable< T > |
| 判断类型是否可以与自身交换 更多... | |
| struct | is_nothrow_swappable< T > |
| 判断类型是否可以与自身无异常交换 更多... | |
| struct | is_swappable_from< T1, T2, Dummy > |
| 判断是否可以调用swap从T1交换到T2 更多... | |
| struct | is_swappable_with< T1, T2 > |
| 判断两个类型是否可以互相交换 更多... | |
| struct | is_nothrow_swappable_from< T1, T2 > |
| 判断是否可以无异常地从T1交换到T2 更多... | |
| struct | is_nothrow_swappable_with< T1, T2 > |
| 判断两个类型是否可以无异常地互相交换 更多... | |
| struct | is_ADL_swappable< T, Dummy > |
| 判断类型是否支持通过ADL查找的swap 更多... | |
| struct | is_trivially_swappable< T > |
| 判断类型是否可以平凡交换 更多... | |
函数 | |
| template<typename T> | |
| NEFORCE_CONSTEXPR14 enable_if_t< is_move_constructible_v< T > &&is_move_assignable_v< T > > | swap (T &lhs, T &rhs) noexcept(is_nothrow_move_constructible_v< T > &&is_nothrow_move_assignable_v< T >) |
| 交换两个相同类型的值 | |
| template<typename T, size_t Size> | |
| NEFORCE_CONSTEXPR14 enable_if_t< is_swappable< T >::value > | swap (T(&lhs)[Size], T(&rhs)[Size]) noexcept(is_nothrow_swappable< T >::value) |
| 交换两个相同类型的数组 | |
| void | swap ()=delete |
| 删除无参数的swap重载 | |
| template<typename T, typename U = T> | |
| NEFORCE_CONSTEXPR14 T | exchange (T &val, U &&new_val) noexcept(is_nothrow_move_constructible_v< T > &&is_nothrow_assignable_v< T &, U >) |
| 将新值赋给对象并返回旧值 | |
变量 | |
| template<typename T> | |
| NEFORCE_INLINE17 constexpr bool | is_swappable_v = is_swappable<T>::value |
| is_swappable的便捷变量模板 | |
| template<typename T> | |
| NEFORCE_INLINE17 constexpr bool | is_nothrow_swappable_v = is_nothrow_swappable<T>::value |
| is_nothrow_swappable的便捷变量模板 | |
| template<typename T> | |
| NEFORCE_INLINE17 constexpr bool | is_trivially_swappable_v = is_trivially_swappable<T>::value |
| is_trivially_swappable的便捷变量模板 | |
实现类型交换相关操作
|
noexcept |
将新值赋给对象并返回旧值
| T | 对象类型 |
| U | 新值类型 |
| val | 要替换的对象 |
| new_val | 新值 |
引用了 is_nothrow_assignable_v , 以及 is_nothrow_move_constructible_v.
被这些函数引用 virtual_thread_task::operator=() , 以及 socket_base::release().
|
noexcept |
交换两个相同类型的值
| T | 值的类型 |
| lhs | 左操作数 |
| rhs | 右操作数 |
引用了 is_nothrow_move_assignable_v , 以及 is_nothrow_move_constructible_v.
|
noexcept |
交换两个相同类型的数组
| T | 数组元素类型 |
| Size | 数组大小 |
| lhs | 左操作数数组 |
| rhs | 右操作数数组 |