Olá!
O que seria o operador new de posicionamento?
Ta... eu sei que a função dele é alocar memória. xD
Mas qual a utilidade dele? Por que implementar e usar ele ao invés do new comum?
Pelo que eu vi na internet, cria-se uma classe (normalmente chamada Arena) para gerenciar memória juntamente ao operador new sobrecarregado.
Mas não compreendi a essência disso tudo.
Segue o exemplo do livro do Stroustrup modificado:
	Código PHP:
	
struct X {
    X(int ii) { i = ii; }
    ~X() { /* ... */ }
    int i;
};
class Arena {
public:
    virtual void* alloc(size_t sz) = 0;
    virtual void free(void* p) = 0;
    // ...
};
void* operator new(size_t sz, Arena* a) {
    return a->alloc(sz);
}
extern Arena* Persistent;
extern Arena* Shared;
void g(int i) {
    X* p = new(Persistent) X(i);
    X* q = new(Shared) X(i);
    // ...
}
void destruct(X* p, Arena* a) {
    p->~X();
    a->free(p);
}