0

我有一个像这样的容器类:

template<class T>
class MyList
{
    class iterator
    {
        ...
    }

    ...
}

现在我想定义一个find这样的函数:

template<class T>
typename MyList<T>::iterator find (
    MyList<T>::iterator first, 
    MyList<T>::iterator last, 
    const T& val)
{
    ...
}

这不编译。如何声明类型的函数参数MyList<T>::iterator

4

1 回答 1

2

您需要使用 , 限定参数类型typename,让编译器知道您指的是类型。

template<class T>
typename MyList<T>::iterator find (
    typename MyList<T>::iterator first, 
    typename MyList<T>::iterator last, 
    const T& val)
{
    ...
}
于 2013-09-25T22:30:19.460 回答