【发布时间】:2011-12-12 09:40:48
【问题描述】:
我正在使用boost::iterator_facade<> 为合成数据制作迭代器。数据只能通过在句柄上调用函数来访问。句柄被包裹在MyHandle 中。我发现我需要将MyHandle 用于Value 和Reference 模板参数。所以迭代器声明如下所示:
class MyIterator
: public boost::iterator_facade<
MyIterator
, MyHandle
, boost::forward_traversal_tag
, MyHandle
>
这是做这种事情的唯一方法吗?或者有没有更好的方法来为合成数据创建迭代器?另外,boost::forward_traversal_tag 似乎没有很好地传达数据的人工性,代码应该使用不同的迭代器标签吗?
【问题讨论】: