Что интересует:
- преобразование вида {iterator_category1,iterator_category2,...} -> most_restricted_iterator_category
- отношение упорядочения категорий, чтобы можно было написать что-то наподобие
iterator_category >= std::bidirectional_iterator_tag
вstd::enable_if<>
Зачем: для удобства реализации своих итераторов в терминах сразу нескольких других итераторов. Например, есть контейнер вида std::forward_list<boost::container::static_vector<T,N>,some_custom_allocator>
и не особо удобно каждый раз вложенный цикл писать при необходимости пройтись по всем элементам нижнего уровня.
Никто не встречал чего-то подобного?