Quanto é demais com a palavra-chave automática C ++ 11?

Eu tenho usado o novoauto palavra-chave @ está disponível no padrão C ++ 11 para tipos de modelos complicados, e é para isso que acredito que foi projetada. Mas também estou usando para coisas como:

auto foo = std::make_shared<Foo>();

E mais ceticamente para:

auto foo = bla(); // where bla() return a shared_ptr<Foo>

Não tenho visto muita discussão sobre esse tópico. Parece queauto pode ser usado em excesso, pois um tipo geralmente é uma forma de documentação e verificações de sanidade. Onde você desenha a linha usandoauto e quais são os casos de uso recomendados para esse novo recurso?

Para esclarecer: não estou pedindo uma opinião filosófica; Estou solicitando o uso pretendido dessa palavra-chave pelo comitê padrão, possivelmente com comentários sobre como esse uso pretendido é realizado na prátic

Nota lateral: Esta pergunta foi movida para SE.Programmers e depois de volta para Stack Overflow. Discussões sobre isso podem ser encontradas nestemeta question.

questionAnswers(14)

yourAnswerToTheQuestion