¿Cuánto es demasiado con la palabra clave automática C ++ 11?
He estado usando la nuevaauto
palabra clave disponible en el estándar C ++ 11 para tipos de plantillas complicadas, que es para lo que creo que fue diseñado. Pero también lo estoy usando para cosas como:
auto foo = std::make_shared<Foo>();
Y más escéptico para:
auto foo = bla(); // where bla() return a shared_ptr<Foo>
No he visto mucha discusión sobre este tema. Parece queauto
podría ser usado en exceso, ya que un tipo es a menudo una forma de documentación y controles de sanidad. ¿Dónde dibujas la línea usandoauto
y ¿cuáles son los casos de uso recomendados para esta nueva función?
Para aclarar: no estoy pidiendo una opinión filosófica; Solicito el uso previsto de esta palabra clave por parte del comité estándar, posiblemente con comentarios sobre cómo se realiza ese uso previsto en la práctica.
Nota lateral: esta pregunta se trasladó a SE.Programmers y luego a Stack Overflow. La discusión sobre esto se puede encontrar en estemeta question.