在引用析构函数时,标准中“调用”的含义是什么?

时间:2016-08-10 00:23:27

标签: c++ language-lawyer destructor

调用是否意味着已经调用并完成/返回了析构函数,或者只是调用了它?我想到了后者,直到我在12.4 Destructors部分看到这句话(多个草稿都有这个):

  

为对象调用析构函数后,该对象不再存在

如果被调用意味着调用已经开始,那就意味着this在析构函数体中无效。

如果调用意味着调用并完成,这意味着一个对象在其析构函数运行时仍然“存在”,并且可以从另一个线程访问(这是是什么让我首先看到标准)。其他答案声称情况并非如此,但不要与消息来源支持,所以我倾向于认为他们错了。

1 个答案:

答案 0 :(得分:6)

这很简单。首先,对这个特定陈述的一种解释会产生矛盾,而另一种解释则不然。选择。其次,该标准假定读者有一定的常识。例如,不要假设术语与上下文无关。