template<class T>
class Set
{
public:
void insert(const T& item);
void remove(const T& item);
private:
std::list<T> rep;
}
template<typename T>
void Set<T>::remove(const T& item)
{
typename std::list<T>::iterator it = // question here
std::find(rep.begin(),rep.end(),itme);
if(it!=rep.end()) rep.erase(it);
}
왜 remove()의 typename이 필요합니까?왜 여기에 typename이 필요합니까?
아마 당신이 말하는 라인이 typename std :: list :: iterator it = std :: find (rep.begin(), rep.end(), itme)입니다. 그게 너의 의도라고 생각하기 때문에. –
aem