Quais são os prós / contras de usar a autopalavra - chave, especialmente em loops?
for(std::vector<T>::iterator it = x.begin(); it != x.end(); it++ )
{
it->something();
}
for(std::map<T>::iterator it = x.begin(); it != x.end(); it++ )
{
it->second->something();
}
for(auto it = x.begin(); it != x.end(); it++ )
{
it->??
}
Parece que se você não sabe se você tem um iterador para um mapa ou um vector que você não saberia se ao uso firstou secondou apenas diretamente acessar propriedades do objeto, não?
Isso me lembra o debate em C # sobre a utilização da palavra-chave var. A impressão que estou chegando até agora é que, no mundo C ++, as pessoas estão prontas para adotar a autopalavra-chave com menos esforço do que varno mundo C #. Para mim, meu primeiro instinto é que gosto de saber o tipo da variável para saber quais operações posso executar nela.
for (auto& it : x)(ou sem referência se você quiser copiar)
xe você não sabe mesmo o que xé, você não deve escrever esse ciclo em primeiro lugar ;-)
var? Eu senti falta disso.