Как создать собственный контейнер для range-v3

Я понял, как создать свой собственный Range-V3 Просмотры с помощью view-facade, но теперь я хотел бы создать свой собственный контейнер так что я могу использовать на месте мутации actions:

MyContainer<ItemType> list = createList();
list |= ranges::actions::transform(&someMappingFunction);

К сожалению, похоже, нет простого помощника, подобного container-facade и мои навыки C ++ еще не настолько безумны, чтобы понять источник range-v3, просто прочитав его. Какой интерфейс должен реализовывать мой контейнер или из чего он должен быть получен?

Спасибо за любые подсказки!

3

Решение

С точки зрения range-v3, Range — это контейнер, если begin в непостоянном экземпляре возвращает тип, отличный от константного, или если is_view<T>::value является false, Действия часто требуют дополнительных возможностей. Например, многие требуют cont.insert(pos, val) для ввода значения val в контейнер cont в положении pos, Некоторые требуют cont.erase(from, to) для удаления элементов, обозначенных диапазоном [from,to). Извиняюсь за отсутствие документации. НТН.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]