Preciso realmente me preocupar com o alinhamento ao usar o novo operador de posicionamento?

I li thisQuando devo me preocupar com o alinhamento? mas ainda não sei se preciso me preocupar com o ponteiro não alinhado retornado pelo posicionamento de novo operador - como neste exemplo:

class A {
public:
   long double a;
   long long b;
   A() : a(1.3), b(1234) {}
};

char buffer[64];

int main() {
   // (buffer + 1) used intentionally to have wrong alignment
   A* a = new (buffer + 1) A(); 
   a->~A();
}

__alignof(A) == 4, (buffer + 1) não está alinhado com4. Mas tudo funciona bem - exemplo completo aqui:http: //ideone.com/jBrk

Se isso depende da arquitetura, estou usando: linux / powerpc / g ++ 4.x.x.

[UPDATE] Logo após postar esta pergunta, li este artigo:http: //virtrev.blogspot.de/2010/09/memory-alignment-theory-and-c-examples.htm. Talvez as únicas desvantagens no meu caso sejam a penalidade de desempenho. Quero dizer, o acesso desalinhado custa mais do que o alinhado?

questionAnswers(5)

yourAnswerToTheQuestion