最近做STL实验时遇到了一个问题,在模板函数中使用泛型变量,编写的时候不报错,但是在运行的时候报了如下错误
源代码是这样的
template<class T1, typename T2, typename T3>
void display(string name, T1& m, T2 key_type, T3 val_type)
{
cout << name;
unordered_multimap<T2, T3>::iterator it = m.begin();
while (it != m.end())
{
cout << (*it).first << "/" << (*it).second << " ";
it++;
} cout << endl;
}
这个函数的目的很简单,就是利用迭代器显示数据,T2,T3是map的键值类型,报了这个错误之后,百度了也没有找到结果,写代码的时候没有报错,说明这种写法原本可能是被运行的,所以我估计可能的平台问题,于是我尝试如下解决方式:
项目名-->右键-->属性,在常规中找到平台工具集,将平台工具集修改成VS2015(V140),点击确定,如下: