I have several classes which I connected to [AngelScript](http://www.angelcode.com/angelscript/) engine. This engine uses interesting way to allocate objects: It allocates needed amount of memory (possibly with `malloc()`) and when authors propose to use construction like this to create object in this memory:

```
static void Constructor(ObjectType *thisPointer)
{
    new(thisPointer) ObjectType();
}

```

and code like this to destroy object:

```
static void Destructor(ObjectType *thisPointer)
{
     thisPointer->~ObjectType();
}

```

I have several questions: 

* Is it correct way to use destructor this way? (Eclipse judges this as a bug) As far as I can understand this code should call destructor without deallocating memory (calling `free()`)
* Is it possible to use `delete(thisPointer)` (or something like it) instead of this construction and is it will be equivalent? (at least this code gives no errors during compilation and runtime)
* Is there other ways to call destructor without deallocating memory?

Thank you in advance.