打印boost :: circular_buffer <t> </t>

时间:2013-03-20 14:27:16

标签: c++ templates boost

我想创建一个模板函数来输出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
提前谢谢。

1 个答案:

答案 0 :(得分:2)

下次请看一下错误信息,错误很明显:

  

在boost :: circular_buffer :: const_iterator'之前需要'typename',因为'boost :: circular_buffer'是一个依赖范围

所以是的,只需按照错误信息说明:

typename boost::circular_buffer<T>::const_iterator it;

您可以阅读有关从属名称in this thread