dependent-name

¿Dónde y por qué tengo que poner las palabras clave" template "y" typename"?

En las plantillas, ¿dónde y por qué tengo que poner typename y template en nombres dependientes? ¿Qué son exactamente los nom ... te? Y debe entonces asumir que inUnion es una plantilla de clase, es decir, inUnion<U> nombra un tipo y no una función?