template
class Set
{
public:
void insert(const T& item);
void remove(const T& item);
private:
std::list rep;
}
template<
If you are talking of typename used with std::list:
The typename is used to clarify that iterator is a type defined within class std::list.
Without typename, std::list will be considered a static member. typename is used whenever a name that depends on a template parameter is a type.