Certains trucs sont quand-même très pratiques dans les contextes qui vont avec, genre les lambdas pour la programmation asynchrone. Tu n'es pas obligé d'utiliser les nouveautés qui ne t'aident pas.
En revanche, je ne suis pas du tout d'accord avec certaines recommandations officielles, genre utiliser
auto i{0}; ou même, si on veut quand-même mettre un type explicit,
auto i = int{0}; 
au lieu du tout simple
int i=0;.

(Cette ânerie s'appelle Almost Always Auto (AAA).) Personnellement, je conseille d'éviter au maximum
auto, déclarer explicitement les types donne du code beaucoup plus lisible et évite les mauvaises surprises (comme par exemple les types intermédiaires que tu peux avoir à la place d'un type comme
QString si tu utilises
auto).