我该如何定义 模板类中带有模板参数的迭代器对
template <typename S,typename T>
class pairMove :public pair<S,T>
{
private:
pair< multimap<S,T>::iterator , multimap<S,T>::iterator > pairIt;
我在编译时遇到这个错误
//错误2错误C2923:'std :: pair':'std :: multimap :: iterator'是 不是参数'_Ty1'的有效模板类型参数
解决我问题的任何解决方案
答案 0 :(得分:6)
您错过了typename
关键字:
pair<typename multimap<S,T>::iterator, typename multimap<S,T>::iterator> pairIt;
^^^^^^^^ ^^^^^^^^
请注意,S
和T
是template
类型;当它们与::
运算符结合使用以获取另一个依赖类型时,必须使用typename
。
关于此主题的另一个nice discussion。