Pull to refresh

Comments 16

По поводу полевого итератора:
чем же вам не угодила такая конструкция С++, как указатель на поле?

#define fieldof(Object,field) (&Object::field)
Ни разу не использовал указатель на поле на практике) Потому получился костыль. Спасибо, сейчас впишу в статью.
Вы это изменение тестировали?

А то у вас получается, будто простое изменение макроса все упрощает. А там еще нужно шаблон редактировать.
Еще не протестировал, да похоже простой заменой не обойтись… Придется поколдовать. Я сейчас далеко от компа. Сегодня не допилю…
Есть же стандартный макрос для сего дела: offsetof (http://www.cplusplus.com/reference/clibrary/cstddef/offsetof/).
Делает тоже самое кстати. Но не хочется плодить лишние сущьности )
В моем макросе сохраняется информация о типе поля и смещении. А offsetof дает только смещение…
Точно. Вот что значит програмить в основном на сях последние 3 года…
Сурово) Откуда такой спрос на Си?
Производительность весьма критична?
В принципе да. Производительность критична. Пишу прилаги для мобильных устройсв под управлением iOS. В принципе С++ тоже юзаю но гораздо реже. Всетаки Obj-C + С гораздо удобнее юзать чем Obj-C + C++.
На мой взгляд, в таблице упущена одна из самых важных особенностей Forward Iterators, которая выгодно отличает их от Input/Output Iterators — возможность повторного прохода! На этом стоит поставить акцент.

Кроме того, весьма удивлен положению пункта «Может быть создан без параметров». Для Input/Output Iterators это тоже справедливо, ведь именно так и создается итератор, указывающий на конец абстрактной последовательности данных.
Действительно. Спасибо, сегодня поправлю таблицу.
Я уже проникся Range-ами Александреску) Об этом отдельную статью возможно напишу. Понравилась его презентация «Iterators Must Go».
Чтобы не описывать в реализации кучу однотипных операций (типа +=, +, []), в качестве указанного декоратора удобно использовать boost::iterator_adaptor. Он все такие функции определяет через примитивные операции типа increment/decrement/advance etc.
Sign up to leave a comment.

Articles