2013-09-25 111 views
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類型的函數參數?

回答

2

您需要使用typename來限定參數類型,以便讓編譯器知道您指的是某個類型。

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