16 Aug
2014
16 Aug
'14
4:53 a.m.
Currently, intrusive_ptr's copy constructors are not declared noexcept. This disables the std::function small object optimization when intrusive_ptr objects are passed by value in a lambda closure. The attached patch tries to fix this by making the copy constructors conditionally noexcept, based on the noexcept status of the user-provided intrusive_ptr_add_ref function. James