1
在有兩個實例類型(T
和PT
)模板類我公司目前有使用const_iterator
爲類下面一行:編譯器錯誤:預期嵌套名指定之前的typedef
typedef typename std::vector< std::pair<T, PT> >::const_iterator const_iterator;
這工作在但是當在C++ 98環境中編譯時(可能不幸由於各種原因需要),C++ 11/14環境會出現錯誤,標題爲expected nested name specifier before typedef
。
有什麼辦法可以解決舊編譯器的問題嗎?
編輯:這是我的課的基本結構,
template<typename T, typename PT> class MyClass {
private:
std::vector< std::pair<T,PT> > dataWithPriorityVec;
//... various private methods...
public:
typedef typename std::vector< std::pair<T,PT> >::const_iterator const_iterator;
//... constructors and various public methods...
};
你的「模板類」是怎樣的? –
顯示最小的完整示例。 –
你的例子在這裏的幾個編譯器版本中乾淨地編譯(此外,在'const_iterator'之後缺少';')。 – alecov