Why the different ways of initializing templates?