A smart pointer contains two based addresses which are offsets relative to
the start of a shared memory heap. One of the based addresses, a
destination-pointer, is the offset of a data structure in the heap pointed
to by the smart pointer. The other based address, a this-pointer, is the
offset of the smart pointer itself. The smart pointer has a
self-referencing property which returns an absolute address of the smart
pointer within the address space of a process that has opened the heap in
shared memory. The absolute address of the data structure pointed to by
the smart pointer is calculated by subtracting the this-pointer from the
absolute address of the smart pointer and then adding the
destination-pointer.
Um ponteiro esperto contem dois endereços baseados que são offsets relativo ao começo de um heap compartilhado da memória. Um dos endereços baseados, um destino-ponteiro, é o offset de uma estrutura de dados no heap apontado pelo ponteiro esperto. O outro endereço baseado, um este-ponteiro, é o offset do ponteiro esperto próprio. O ponteiro esperto tem uma propriedade self-self-referencing que retorne um endereço absoluto do ponteiro esperto dentro do espaço de endereço de um processo que abra o heap na memória compartilhada. O endereço absoluto da estrutura de dados apontada pelo ponteiro esperto é calculado subtraindo o este-ponteiro do endereço absoluto do ponteiro esperto e então adicionando o destino-ponteiro.