Muitas das bibliotecas C ++ mais conhecidas na ciência da computação, como Eigen , Trilinos e deal.II, usam o objeto padrão da biblioteca de cabeçalho de modelo C ++ std::complex<>, para representar números complexos de ponto flutuante.
Na resposta de Jack Poulson a uma pergunta sobre construtores padrão, ele ressalta que ele possui sua própria implementação std::complexno Elemental "por várias razões". Quais são esses motivos? Quais são as vantagens e desvantagens dessa abordagem?
zé uma expressão lvalue do tipo cvstd::complex<T>, em seguida,reinterpret_cast<cv T(&)[2]>(z)ereinterpret_cast<cv T(&)[2]>(z)[0]deve designar a parte realz, ereinterpret_cast<cv T(&)[2]>(z)[1]deve designar a parte imagináriaz. Matrizes de números complexos também são abordadas.