std::tuple<Types...>::operator=
来自cppreference.com
(1) | ||
tuple& operator=( const tuple& other ); |
(C++11 起) (C++20 前) |
|
constexpr tuple& operator=( const tuple& other ); |
(C++20 起) | |
(2) | ||
tuple& operator=( tuple&& other ) noexcept(/* see below */); |
(C++11 起) (C++20 前) |
|
constexpr tuple& operator=( tuple&& other ) noexcept(/* see below */); |
(C++20 起) | |
(3) | ||
template< class... UTypes > tuple& operator=( const tuple<UTypes...>& other ); |
(C++11 起) (C++20 前) |
|
template< class... UTypes > constexpr tuple& operator=( const tuple<UTypes...>& other ); |
(C++20 起) | |
(4) | ||
template< class... UTypes > tuple& operator=( tuple<UTypes...>&& other ); |
(C++11 起) (C++20 前) |
|
template< class... UTypes > constexpr tuple& operator=( tuple<UTypes...>&& other ); |
(C++20 起) | |
(5) | ||
template< class U1, class U2 > tuple& operator=( const pair<U1,U2>& p ); |
(C++11 起) (C++20 前) |
|
template< class U1, class U2 > constexpr tuple& operator=( const pair<U1,U2>& p ); |
(C++20 起) | |
(6) | ||
template< class U1, class U2 > tuple& operator=( pair<U1,U2>&& p ); |
(C++11 起) (C++20 前) |
|
template< class U1, class U2 > constexpr tuple& operator=( pair<U1,U2>&& p ); |
(C++20 起) | |
以另一 tuple
或 pair
的内容替换 tuple
的内容。
1) 复制赋值运算符。复制赋值 other
的每个元素给 *this 的对应元素。
2) 移动赋值运算符。对所有 i
,赋值 std::forward<Ti>(get<i>(other)) 给 get<i>(*this) 。
3) 对所有 i
,赋 std::get<i>(other) 给 std::get<i>(*this) 。
4) 对所有 i
,赋 std::forward<Ui>(std::get<i>(other)) 给 std::get<i>(*this) 。
5) 赋 p.first 给 *this 的首元素并赋 p.second 给 *this 的第二元素。
6) 赋 std::forward<U1>(p.first) 给 *this 的首元素并赋 std::forward<U2>(p.second) 给 *this 的第二元素。
这些函数的行为未定义,除非:
|
(C++17 前) |
这些函数不参与重载决议(或对于复制赋值运算符,为定义为被删除),若任何要求的赋值运算非法或若存在大小不匹配。特别是:
|
(C++17 起) |
参数
other | - | 要替换此 tuple 内容的 tuple
|
p | - | 要替换此 2-tuple 内容的 pair
|
返回值
*this
异常
1) (无)
2)noexcept 规定:
noexcept(
is_nothrow_move_assignable<T0>::value &&
is_nothrow_move_assignable<T1>::value &&
is_nothrow_move_assignable<T2>::value &&
...
3-6) (无)
示例
本节未完成 原因:暂无示例 |