您当前的位置: 首页 >  c++

mutourend

暂无认证

  • 4浏览

    0关注

    661博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

std::swap C++11示例

mutourend 发布时间:2019-03-04 14:18:31 ,浏览量:4

C++11 中的std::swap

header	
// moved from  to  in C++11
non-array (1)	
template  void swap (T& a, T& b)
  noexcept (is_nothrow_move_constructible::value && is_nothrow_move_assignable::value);
array (2)	
template  void swap(T (&a)[N], T (&b)[N])
  noexcept (noexcept(swap(*a,*b)));

注意:

Type T shall be move-constructible and move-assignable (or have swap defined for it, for version (2)).

std::swap 在C++11中定义在,而不再是头文件中。上述两个函数等效为:

template  void swap (T& a, T& b)
{
  T c(std::move(a)); a=std::move(b); b=std::move(c);
}
template  void swap (T (&a)[N], T (&b)[N])
{
  for (size_t i = 0; i            
关注
打赏
1664532908
查看更多评论
0.0397s