STL常见疑难杂症
note: say ‘typename std::list::const_iterator’ if a type is meant
分析原因:
注意:任何时候在模板(template)中使用一个嵌套从属类型名称, 需要在前一个位置, 添加关键字typename;
比如上例中使用迭代器类型时,就要使用typename.虽然在vs2010 和vs2015中没有错误,但在VC++2019和gcc编译器中,都会报错。
例子:
// demo 15_42_疑难杂症
#include <iostream>
#include <deque>
#include <string>
#include <vector>
#include <list>
using namespace std;
template <typename T>
void printInf(const list<T>& object) throw()
{
string line(50, '-');
list<T>::const_iterator citor;