考虑以下代码:
struct Bar
{
std::shared_ptr<int> MemberFunction()
{
return std::move(m_memberVariable);
}
std::shared_ptr<int> m_memberVariable;
};
是否保证std::movefrom ashared_ptr<T>实际上会删除成员变量中的引用?或者我应该复制、清除并返回副本以保证这一点*
显然,在unique_ptr<T>它做正确的事情的情况下(它不可能不做),但标准是否保证a std::moved fromshared_ptr释放它的引用?[当它是成员变量,静态或全局时,局部变量超出范围无关紧要]
*可能“交换并返回”比“复制、清除和返回”更好。