指针的方法swap()
和std::ptr::swap()
有什么区别?
签名是相似的,就我所测试的而言,它们的行为是相同的。
第一个
对于std::mem::swap()
(用于引用而不是指针),有一种情况我们不能调用std::mem::swap()
,因为它需要两个可变引用。在这种情况下,我们将调用slice::swap()
。那么std::ptr::swap()
呢?
指针的方法swap()
和std::ptr::swap()
有什么区别?
签名是相似的,就我所测试的而言,它们的行为是相同的。
第一个
对于std::mem::swap()
(用于引用而不是指针),有一种情况我们不能调用std::mem::swap()
,因为它需要两个可变引用。在这种情况下,我们将调用slice::swap()
。那么std::ptr::swap()
呢?
1条答案
按热度按时间shyt4zoc1#
ptr.swap()
和std::ptr::swap()
之间没有区别-前者的实现只是调用了后者:根据the docs,
mem::swap
和ptr::swap
之间的唯一区别是:ptr::swap
对指针而不是引用进行操作。ptr::swap
允许指向的值重叠。ptr::swap
不需要初始化指向的数据/满足指向的类型的要求。除此之外,它们的语义是相同的。