我该如何定义 带有模板参数的模板类中的一对迭代器
template <typename S,typename T>
class pairMove :public pair<S,T>
{
private:
pair< multimap<S,T>::iterator , multimap<S,T>::iterator > pairIt;
我在编译时得到这个错误
//Error 2 error C2923: 'std::pair' : 'std::multimap::iterator' is not a valid template type argument for parameter '_Ty1'
解决我的问题的任何解决方案
最佳答案
您错过了 typename
关键字:
pair<typename multimap<S,T>::iterator, typename multimap<S,T>::iterator> pairIt;
^^^^^^^^ ^^^^^^^^
请注意,S
和T
是模板
类型;当它们与 ::
运算符结合使用以获取另一个依赖类型时,必须使用 typename
。
另一个nice discussion关于这个话题。
关于c++ - 使用模板参数在模板类中定义一对迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8709990/