don't use name "template" for symbols, MSVC has a problem