具体来说,我想知道我应该写哪些:
{
shared_ptr<GuiContextMenu> subMenu = items[j].subMenu.lock();
if (subMenu)
subMenu->setVisible(false);
}
或者:
{
if (items[j].subMenu.lock())
items[j].subMenu.lock()->setVisible(false);
}
我不需要遵循任何风格准则。优化后,我认为这两种选择都不会影响性能。通常首选的风格是什么,为什么?
编辑: items[j].subMenu 的类型是 boost::weak_ptr。lock() 从中创建一个 shared_ptr 。实际上,上述两个版本在临时 shared_ptr 持续多长时间方面存在模棱两可的差异,因此我将两个示例包装在 { 大括号 } 中以解决其中的歧义。