Those two books are pretty good in my opinion and they helped me a lot
- C++ Templates: The Complete Guide by David Vandevoorde and Nicolai M.
Josuttis
- Modern C++ Design by Andrei Alexandrescu
The first one explains how templates work. The second book is more about how to use them. I recommend you to read the first book before starting with Modern C++ Design because that's heavy stuff.