Я делаю шаблон, который представляет контейнер с фильтром. Он будет содержать все методы, которые должен иметь контейнер, но все методы будут работать с этим фильтром. Так, например, если фильтр равен >1
тогда begin()
вернет первый элемент, подходящий для этого фильтра. Я хотел бы спросить, правильна ли эта декларация шаблона или как она должна выглядеть? Должен ли он быть шаблоном в шаблоне или?
template<typename Container,class Filter>
class filtered_cont{
//methods working with container
}
Если единственное, что вы меняете, это итераторы, возвращаемые функциями begin() и end(), я бы не стал связываться с контейнерами... оставьте их, просто создайте вспомогательные функции, которые берут контейнеры и фильтры и возвращают ваш новый итератор:
template<typename Container, typename Predicate>
magic_it filter_begin(Container aContainer, Predicate p) { /.../ return magic ; }