使用reinterpret_cast进行变量赋值后可能的析构函数?

时间:2015-07-27 20:06:25

标签: c++ destructor reinterpret-cast

我希望这不是一个完全无知的问题,但我似乎无法找到关于我遇到过的几段代码的任何信息。

不是描述它,我只是举个例子:

auto x = reinterpret_cast<T*>(something->data * sizeof(T));
myResult = std::move(*x);
x->~T();

请注意,此代码存在于模板类中,因此T

我对reinterpret_cast<>std::move().有一般性了解但是,我并不完全理解x->~T()语句的含义。由于更熟悉C,我认为这与<datatype>()的返回值不符合逻辑。然而,看一下语法,至少对我来说更有意义 - 它是某种类型的析构函数。

如果有人能够对此有所了解,我们将不胜感激。

1 个答案:

答案 0 :(得分:1)

它是一个显式的析构函数,它通常与placement new一起使用。 Placement new覆盖已预先分配的内存中的对象(实例化对象),然后调用构造函数(see wiki article)。