How to do template deduction on the left-hand side of initialization using lazy generators.
by Simon Brand
From the article:
If you are constructing or assigning to a variable from some function template call, the template magic usually occurs on the right-hand side of the expression. But what if we could deduce the type we want from the left-hand side of the construction?