Uma lista vinculada XOR pode ser implementada em C ++ sem causar um comportamento indefinido?

ALista vinculada XOR é uma versão modificada de uma lista normal com dupla ligação na qual cada nó armazena apenas um "ponteiro" em vez de dois. Esse "ponteiro" é composto do XOR dos ponteiros seguinte e anterior. Para percorrer a lista, são necessários dois ponteiros - um para o nó atual e outro para o nó seguinte ou anterior. Para percorrer para frente, o endereço do nó anterior é XORed com o "ponteiro" armazenado no nó atual, revelando o verdadeiro ponteiro "próximo".

O padrão C ++ faz com que um monte de operações em ponteiros e inteiros resultem em comportamento indefinido - por exemplo, você não pode garantir que configurar um bit específico em um número não fará com que o hardware dispare uma interrupção, então em alguns casos os resultados de bit O twiddling pode ser indefinido.

Minha pergunta é a seguinte: existe uma implementação C ++ de uma lista vinculada XOR que não resulta em comportamento indefinido?

questionAnswers(1)

yourAnswerToTheQuestion