template<typename T> class TD;
TD<decltype(YourTemplatedAutoClass)> td;
Compiler emits deducted class because TD is declared but not defined and can't be used.
I do find myself writing code with auto, then when I revisit it at some point, replace it with the explicit type for readability. But that's only for a small percentage of the cases where I use auto, so overall it's a net plus.
That applies to many C++ features, not just auto.
Maybe the problem with C++ is that it's not a language that you can use well without developing a sense of good taste - knowing when to use certain things, and when not to. (And then you have to interface with code written by someone else who didn't have any taste, and just used features without regard to whether they made things better or worse...)