# Template Class conditional_iterator_proxy_base

- Defined in File iterator.hpp

## Class Documentation

template<bool Const, typename ...Ts>
class conditional_iterator_proxy_base

  A conditional iterator proxy is similar to an iterator_proxy in that it can be used to return a range of rows you can iterate over. In the case of an conditional_iterator_proxy a cif::condition is used to filter out only those rows that match the condition.

  Template Parameters:

    - category_type – The category the iterators belong to

    - Ts – The types to which the iterators can be dereferenced

  Public Functions

  iterator begin() const

    Return the iterator pointing to the first row.

  iterator end() const

    Return the iterator pointing past the last row.

  bool empty() const

    Return true if the range is empty.

  inline explicit operator bool() const

    Easy way to detect if the range is empty.

  inline std::size_t size() const

    Return size of the range.

  inline auto front()

    Return reference to the first row.

  inline category_type &get_category() const

    Category the iterators belong to.

  Friends

  template<bool C2, typename ...T2s>
  friend void swap(conditional_iterator_proxy_base<C2, T2s...> &lhs, conditional_iterator_proxy_base<C2, T2s...> &rhs)

    swap