Stroustrup's "The C++ Programming Language" is one of those books which are always around my desk and I still would consider it as the best reference book on C++. I have not read his "Programming: Principles and Practice Using C++", but it is said to be targeted more at people learning C++.
I agree that the metaprogramming stuff in C++ is not something for beginners.
"I agree that the metaprogramming stuff in C++ is not something for beginners."
Or even for most programming problems, in general!
Templates should be used when you are writing a container class. That's about it. Using them for crazy hard-to-read and hard-to-debug metaprogramming purposes is just irresponsible.
I agree that the metaprogramming stuff in C++ is not something for beginners.