【发布时间】:2020-05-09 05:14:05
【问题描述】:
如果我有类似的东西:
auto foo=Foo(Bar())
在 Foo 的构造函数对 Bar 进行 const 引用的地方,有没有办法确保 Bar 的析构函数不会在 foo 范围末尾的 foo 上的析构函数之前被调用,这样对 Bar 的引用仍然有效即使在 foo 的析构函数中?
【问题讨论】:
-
如果想让
Bar在foo之后被销毁,则需要使其作用域大于foo的作用域。你可以做const auto bar = Bar(); auto foo = Foo(bar);。 -
是否有理由将其标记为 c++17 而不仅仅是 c++?
标签: c++ c++17 destructor