我想创建一个模板函数来输出boost :: circular_buffer的内容。 这是一段有问题的代码:
template <typename T>
std::ostream& operator<<(std::ostream& os, const boost::circular_buffer<T>& cb){
boost::circular_buffer<T>::const_iterator it;
for(it=cb.begin(); it!=cb.end(); it++){
os << it;
}
os << std::endl;
return os;
}
发生以下错误:
need ‘typename’ before boost::circular_buffer<T>::const_iterator’ because ‘boost::circular_buffer<T>’ is a dependent scope
提前谢谢。
答案 0 :(得分:2)
下次请看一下错误信息,错误很明显:
在boost :: circular_buffer :: const_iterator'之前需要'typename',因为'boost :: circular_buffer'是一个依赖范围
所以是的,只需按照错误信息说明:
typename boost::circular_buffer<T>::const_iterator it;
您可以阅读有关从属名称in this thread。