c++11右值引用、std::move移动语义、std::forward完美转发的一些总结
std::move 实际上并不能移动任何东西,它唯一的功能是将一个左值强制转换为右值引用,继而用于移动语义。从实现上讲,它基本等同于一个类型转换:static_cast<T&&>(lvalue);特别
c++11右值引用、std::move移动语义、std::forward完美转发的一些总结
std::move 实际上并不能移动任何东西,它唯一的功能是将一个左值强制转换为右值引用,继而用于移动语义。从实现上讲,它基本等同于一个类型转换:static_cast<T&&>(lvalue);特别
C++ 智能指针shared_ptr,weak_ptr,shared_from_this实践
new XXX(shared_from_this()) 如果用强指针去接,则增加引用计数;弱引用去接,不增加引用计数。auto去接等同强指针。weak_ptr 传给thread、timer回调,不能使用expired()判断
c++11 智能指针回调经典测试案例,当回调函数需要使用原对象指针时不确定原对象是否已经释放,这时必须使用智能指针了,代码如下: includ