MSTL 1.4.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>
MSTL_CONSTEXPR14 enable_if_t< conjunction< is_move_constructible< T >, is_move_assignable< T > >::value > swap (T &lhs, T &rhs) noexcept(is_nothrow_move_constructible< T >::value &&is_nothrow_move_assignable< T >::value)
 交换两个相同类型的值
template<typename T, size_t Size>
MSTL_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>
MSTL_CONSTEXPR14 T exchange (T &val, U &&new_val) noexcept(conjunction< is_nothrow_move_constructible< T >, is_nothrow_assignable< T &, U > >::value)
 将新值赋给对象并返回旧值

详细描述

实现类型交换相关操作

函数说明

◆ exchange()

template<typename T, typename U = T>
MSTL_CONSTEXPR14 T exchange ( T & val,
U && new_val )
noexcept

将新值赋给对象并返回旧值

模板参数
T对象类型
U新值类型
参数
val要替换的对象
new_val新值
返回
对象的旧值

在文件 type_traits.hpp4076 行定义.

引用了 _MSTL, forward() , 以及 move().

◆ swap() [1/2]

template<typename T>
MSTL_CONSTEXPR14 enable_if_t< conjunction< is_move_constructible< T >, is_move_assignable< T > >::value > swap ( T & lhs,
T & rhs )
noexcept

交换两个相同类型的值

模板参数
T值的类型
参数
lhs左操作数
rhs右操作数

在文件 type_traits.hpp4053 行定义.

引用了 _MSTL, move() , 以及 integral_constant< bool, Value >::value.

◆ swap() [2/2]

template<typename T, size_t Size>
MSTL_CONSTEXPR14 enable_if_t< is_swappable< T >::value > swap ( T(&) lhs[Size],
T(&) rhs[Size] )
noexcept

交换两个相同类型的数组

模板参数
T数组元素类型
Size数组大小
参数
lhs左操作数数组
rhs右操作数数组

在文件 type_traits.hpp4063 行定义.

引用了 _MSTL, swap() , 以及 integral_constant< bool, Value >::value.