| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > реализация BidirectionalIterator |
| Автор: boostcoder 29.8.2011, 18:08 | ||||
| всем доброго дня. для http://forum.vingrad.ru/forum/topic-336344.html(man`а) пытаюсь разобраться с требованиями для http://www.boost.org/doc/libs/1_47_0/doc/html/boost_asio/reference/ConstBufferSequence.html и для собственного итератора соответствующего требованиям http://cplusplus.com/reference/std/iterator/BidirectionalIterator/. нарукоблудил такой код:
http://liveworkspace.org/code/caf388f3bfbcc28b9e68474e64d4b1fc сейчас получаю ошибку:
дальше мыслей нет. подскажите, что оно от меня кочет? зы коверкать русяз весьма прикольно бывает |
| Автор: mes 29.8.2011, 20:09 |
показывает, что не распознает класс как итератор.. наследование поможет.. ну раз буффер константный begin() и end() нужно соотвественно пометить.. |
| Автор: boostcoder 30.8.2011, 02:41 |
| я, конечно, любитель лаконичности. но Ваш ответ - даже меня повергает в тупик |
| Автор: Earnest 30.8.2011, 09:44 |
| boostcoder, от тру-итератора требуется куча всяких определений типов и прочая. Либо наследуйся от подходящий базы, как посоветовал mes, либо посмотри на бустовские iterator-facade и iterator_adaptor - очень полезные классы; я все доморощенные итераторы через них делаю. |
| Автор: boostcoder 30.8.2011, 13:50 |
хм.. никогда не использовал... я вообще, по моему впервые, задумался над реализацией и требованиями к итераторам. |
| Автор: Earnest 30.8.2011, 15:21 |
| Дык пора уже - иначе какой ты бусткодер Действительно, классы полезные, и там же еще несколько полезных готовых итераторов-оберток типа counting_iterator. С помощью iterator_adapter можно, например, ограничить доступ к деталям контейнера в каком-то сложном объекте. Например, в контейнере хранятся какие-то объекты с кучей подробностей, но клиенту ты хочешь предоставить только часть этой информации, и вообще сделать так, чтобы он не знал о деталях устройства контейнера. Вот тут-то iterator_adaptor как нельзя более кстати. |
| Автор: boostcoder 30.8.2011, 15:29 |
раньше что-то задачи не было.. сижу - читаю... |
| Автор: boostcoder 30.8.2011, 16:27 | ||
наследованием, получился такой код:
http://liveworkspace.org/code/6cd54ffb9aabae7da703376c760abd87 сейчас попробую с помощью http://www.boost.org/doc/libs/1_47_0/libs/iterator/doc/index.html. |
| Автор: boostcoder 30.8.2011, 17:04 |
ну правильно. при разыменовании итератора я получаю boost::asio::const_buffer. или что? Добавлено через 30 секунд эм.. пропал Ваш пост |
| Автор: mabrarov 30.8.2011, 23:13 | ||
Доброй ночи. Не в тему итераторов, но в тему Asio BufferSequence - http://asio-samples.svn.sourceforge.net/viewvc/asio-samples/trunk/include/ma/cyclic_buffer.hpp?revision=467&view=markup. |
| Автор: boostcoder 30.8.2011, 23:16 |
| mabrarov, здравствуйте. ma::cyclic_buffer я смотрел. даже понял что и как но сия тема возникла в следствии непонимания(не умения?) реализовывать тип в соответствии с требованиями BidirerctionalIterator. но вроде разобрался. закрою тему позже. зы по поводу критики/комментариев к http://forum.vingrad.ru/forum/topic-336344.html - все приветствуется |