有人可以解释使用boost::shared_ptr来表示可能是null或未定义的值而不是使用的值boost::optional在内存和性能方面是否有缺点吗?
我所看到的,我工作的地方,很多人利用boost::shared_ptr来表示它可以是一个值null。在性能或内存使用方面是否有开销?
除了 ashared_ptr还必须管理线程安全引用计数这一显而易见的事实之外,还有分配。optional是基于堆栈的,这意味着它不会执行任何动态分配。Ashared_ptr将必须执行至少一个(通常两个:对象和控制块)动态分配。
optional 以上都不做。