Я понял, как создать свой собственный Range-V3 Просмотры с помощью view-facade
, но теперь я хотел бы создать свой собственный контейнер так что я могу использовать на месте мутации actions
:
MyContainer<ItemType> list = createList();
list |= ranges::actions::transform(&someMappingFunction);
К сожалению, похоже, нет простого помощника, подобного container-facade
и мои навыки C ++ еще не настолько безумны, чтобы понять источник range-v3, просто прочитав его. Какой интерфейс должен реализовывать мой контейнер или из чего он должен быть получен?
Спасибо за любые подсказки!
С точки зрения range-v3, Range — это контейнер, если begin
в непостоянном экземпляре возвращает тип, отличный от константного, или если is_view<T>::value
является false
, Действия часто требуют дополнительных возможностей. Например, многие требуют cont.insert(pos, val)
для ввода значения val
в контейнер cont
в положении pos
, Некоторые требуют cont.erase(from, to)
для удаления элементов, обозначенных диапазоном [from
,to
). Извиняюсь за отсутствие документации. НТН.
Других решений пока нет …