A dependent name in a template definition is a name on the right side of ”::”, implying that its meaning (whether it is a type, a variable or member function, or a template) depends on the definition of the type to the left of the ”::”. For example, in “Foo::Bar”, “Bar” is the dependent name. Dependent names technically exist outside of template definitions as well, but most discussion of dependent names involves the need for disambiguation of dependent names within template definitions.