Я делаю итераторы, используя boost::iterator_facade<>
для синтетических данных. Данные доступны только при вызове функции в дескрипторе. Ручка завернута в MyHandle
. Я понял, что мне нужно использовать MyHandle
для параметров шаблона Value
и Reference
. Итак, объявление итератора выглядит так:
class MyIterator
: public boost::iterator_facade<
MyIterator
, MyHandle
, boost::forward_traversal_tag
, MyHandle
>
Это единственный способ, как это сделать? Или есть лучший способ создания итераторов для синтетических данных? Кроме того, boost::forward_traversal_tag
, похоже, плохо передает искусственность данных, должен ли код использовать другой тег итератора?