You can use the new location:
A* pObj = new ( some_allocator_im_forced_to_use( sizeof( A ) ) ) A;
A , some_allocator_im_forced_to_use. void*, , A .
, , delete pObj .
pObj->~A();
// Call custom allocator corresponding deallocation function on (void*)pObj
, shared_ptr .