c++的所谓指针仅仅是一段地址
它并不会用智能办法来判断某个地址对应的对象是不是合法的
只是直接调用
除非你主动赋值null
c++ 11引入了move和rvo的概念后
普通业务逻辑
谁再用指针包括智能指针就是脑子有问题
【 在 Algoquant (aquant) 的大作中提到: 】
: 把对象捕获绑定在lambda表达式里,对象已经析构了,在调用lambda时不抛异常,按UB处理,这是大坑啊。
:
: 我发现对这种情况,只能用 enable_share_from_this 来搞,把对象指针shared_ptr<T>托管到队列或者数组里,异步适时再调用该对象的成员函数。 (我的场景:每个算法对象订阅行情,并在收行情数据后调度器按每个股票快照 调用每个算法对象的onMarketDepth(const MarketDepth& md),这里面就涉及每次调度时,算法对象算法是否还存活)
:
--
FROM 111.193.236.*