Здравствуйте, MaximE, Вы писали:
ME>korzhik wrote:
>> Для тех кто не в курсе что такое any_iterator<> пару вводных слов:
>> ------------------------------
>> Вот например пишем библиотеку и есть у нас интерфейс который должен
>> принимать итераторы, и мы говорим клиенту: "дай мне итераторы категории
>> не ниже forward iterator, которые разыменовываются в int." Всё.
>> Конкретный тип итераторов нас не интерисует.
>> ------------------------------
>>
>> Ну так вот, что мы имеем:
>>
>> 1.
>>
>> В boost wiki
>> <http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl> сказано
>> <http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?LibrariesUnderConstruction>
>> что Алексей Гуртовой <http://www.boost.org/people/aleksey_gurtovoy.htm>
>> разрабатывает any_iterator. Но пока что в boost он не включён.
ME>Он и в 2003 году был в разработке.
он помоему вообще с 2000 года
ME>[]
>> Вообще интересная штука, помоему достойна для включения в boost
ME>У меня есть большие сомнения относительно совместимости такого итератора с
ME>лучшими практиками программирования. Точно известо, что возвращать
ME>container::iterator (не any_iterator) — не всегда хорошая практика, т.к.
ME>пользователи привязываются к типу итератора конкретного контейнера, что может
ME>вести к проблемам сопровождения кода и есть abstraction leak. По своему опыту,
ME>дизайны которые мне казались удачными, не возвращали итераторов вообще.
ну как раз any_iterator избавляет от этой привязки.
А насчёт возвращения итераторов, то это конечно надо каждый случай отдельно рассматривать.