# Template Class iterator_proxy_base

- Defined in File iterator.hpp

## Class Documentation

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

  An iterator_proxy is used as a result type for methods that return a range of values you want to iterate over.

  E.g. the class cif::category contains the method cif::category::rows() that returns an iterator_proxy that allows you to iterate over all the rows in the category.

  Template Parameters:

    - Category – The category for the iterators

    - Ts – The types the iterators return. See class: iterator

  Public Functions

  inline iterator begin() const

    Return the iterator pointing to the first row.

  inline iterator end() const

    Return the iterator pointing past the last row.

  inline 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 category_type &get_category() const

    Return the category the iterator belong to.

  inline void swap(iterator_proxy_base &rhs)

    swap