首页 > 其他分享 >条款25:考虑写一个不抛异常的swap函数

条款25:考虑写一个不抛异常的swap函数

时间:2022-10-14 12:13:22浏览次数:41  
标签:25 Right 函数 Ty Move swap 条款 Left

 

注意:C++11后的std::swap模板函数,使用了移动构造函数移动赋值函数。所以。对于pimpl手法的内置类型,有移动构造函数移动赋值函数应该不用写std::swap的特化,当然写了更好。

template<class _Ty> inline
    void swap(_Ty& _Left, _Ty& _Right)
        _NOEXCEPT_OP(is_nothrow_move_constructible<_Ty>::value
            && is_nothrow_move_assignable<_Ty>::value)
    {    // exchange values stored at _Left and _Right
    _Ty _Tmp = _Move(_Left);
    _Left = _Move(_Right);
    _Right = _Move(_Tmp);
    }

 

 

************

标签:25,Right,函数,Ty,Move,swap,条款,Left
From: https://www.cnblogs.com/htj10/p/16791183.html

相关文章