Alguém pode explicar essa notação C ++?
Pergunta
if (vector1.x > ((float*)&vector1)[j])
j simplesmente apenas um índice para o vetor?
por exemplo. é C ++ capaz de recuperar esses valores usando a notação de matriz embora vetor não é uma matriz?
Se assim for eu estou supondo que consegue isso fazendo referência a vector pelo seu endereço?
Solução
O padrão C ++ diz que vazamento ponteiro um (vagens) do struct para um ponteiro do tipo de seu primeiro elemento irá produzir um ponteiro para seu primeiro elemento:
struct a {
float a1;
float a2;
float a3;
};
a o1; ((float*)&o1); // points to o1.a1
Eu suspeito que o código disse o compilador não adicionar qualquer preenchimento entre A1, A2 e A3, de modo que se ele indexa o ponteiro, ele vai ponteiro exatamente à bóia que quer. Então acima
((float*)&o1)[1] // *would* return o1.a2
Essa plataforma dependente, como preenchimento não pode ser alterado no padrão C ++. Lookup como que organiza codificá-lo, e se eu estou certo em tudo:)