C++ 11删除类类型?

And*_*zos 13 c++ c++11

在C++ 11 N3485 5.3.5.1中它说:

操作数[of delete]应该是指向对象类型或类类型的指针.如果是类类型,则操作数在上下文中转换为指向对象类型的指针.

这种用法的例子是什么(操作数是类类型的)?

For*_*veR 10

如果是类类型,则操作数被上下文隐式转换为指向对象类型的指针.

因此,您可以使用deleteon对象,但是当且仅当此类型具有隐式转换运算符指针时.

class A
{
public:
   class Inner {};
   A()
   {
      inner = new Inner();
   }
   operator Inner*() { return inner; }
private:
   Inner* inner;
};

int main()
{
   A* a = new A();
   delete *a;
   delete a;
}
Run Code Online (Sandbox Code Playgroud)

但是,它不是C++ 11的新功能,在C++ 03标准中几乎有相同的单词

操作数应具有指针类型,或具有指针类型的单个转换函数(12.3.2)的类类型.