乐观派啊
C++各个角落里遍布陷阱。例如boost举的这个exception-not-safe的例子,就是std:: make_shared的由来:
https://www.boost.org/doc/libs/1_81_0/libs/smart_ptr/doc/html/smart_ptr.html#shared_ptr
void bad()
{
f( shared_ptr<int>( new int(2) ), g() );
}
Rust也不解决带计数的智能指针的循环引用,还是得靠码农自己手动分析引用关系后,用weak ptr拆开循环引用。
Rust也不解决析构的依赖 + 线程关系,比C++多了一个channel的通信机制,C++按说也有这种轮子,但不在std里。
chrome 10年前有一个关于相互可能依赖的对象在哪个线程中析构的讨论,有点意思
https://groups.google.com/a/chromium.org/g/chromium-dev/c/3yttL7dnxSw
--
修改:z16166 FROM 114.240.244.*
FROM 114.240.244.*