调用空智能指针对象的函数,Windows及Linux行为解析
先看结论:Windows下可以调用空智能指针对象的函数,但是函数中访问目标对象的成员变量会崩溃,this指针为nullptr;Linux下Debug版本及不开优化版本也能正常运行,-O0以上优化版本
2020-11-23 17:02:40
调用空智能指针对象的函数,Windows及Linux行为解析
先看结论:Windows下可以调用空智能指针对象的函数,但是函数中访问目标对象的成员变量会崩溃,this指针为nullptr;Linux下Debug版本及不开优化版本也能正常运行,-O0以上优化版本
C++ 智能指针shared_ptr,weak_ptr,shared_from_this实践
new XXX(shared_from_this()) 如果用强指针去接,则增加引用计数;弱引用去接,不增加引用计数。auto去接等同强指针。weak_ptr 传给thread、timer回调,不能使用expired()判断
c++11 智能指针回调经典测试案例,当回调函数需要使用原对象指针时不确定原对象是否已经释放,这时必须使用智能指针了,代码如下: includ
boost::scoped_ptr虽然简单易用,但它不能共享所有权的特性却大大限制了其使用范围,而boost::shared_ptr可以解决这一局限。顾名思义,boos...
scoped_ptr 与 auto_ptr 与 shared_ptr 区别总结
1.auto_ptr 被复制后,将失去原来所致资源的所有权;2.scoped_ptr永远不能被复制或被赋值!scoped_ptr拥有它所指向的资源的所有权,并永远不会放弃这个所有权;3.shared_ptr 是可以共享所有权的智能指针。