valarray vs. vector: Por que o valarray foi introduzido?
Sim estefoi perguntado antese a resposta foi:
valarray
s (arrays de valor) são destinados a trazer um pouco da velocidade do Fortran para o C ++. Você não faria umavalarray
de ponteiros para que o compilador possa fazer suposições sobre o código e otimizá-lo melhor. (O principal motivo pelo qual o Fortran é tão rápido é que não há nenhum tipo de ponteiro, portanto, não pode haver aliasing de ponteiro.)
ou:
valarray
também é suposto para eliminar qualquer possibilidade de aliasing [...]
Mas essas respostas não fazem sentido para mim.
valarray
evector
estámodelos de classee, como tal, eles nem sequerexistir até instanciado.
E claro, umvector<int>
não causa problemas de alias mais do quevalarray<int>
faz.
Diante disso, qual foi o objetivo devalarray
, e por que eles não simplesmente colocaram a mesma funcionalidade emvector
em vez de?