dev_iterators.h File Reference

Iterator collection for devices. More...

`#include <utl/core/impl.h>`
`#include <utl/meta/meta.h>`

Go to the source code of this file.

## Classes

struct | utl::dev_iterator_traits< _Cat, _Tp, _Diff >
| Device iterator collection. More...
struct | utl::output_iterator_tag
| Iterator tags [std.iterator.tags] Extension: contiguous_iterator_tag for denoting contiguous iterators. More...
struct | utl::input_iterator_tag
struct | utl::forward_iterator_tag
struct | utl::bidirectional_iterator_tag
struct | utl::random_access_iterator_tag
struct | utl::contiguous_iterator_tag
class | utl::ostreamdev_it< cont_t, data_t >
class | utl::istreamdev_it< cont_t, data_t >
class | utl::outdev_it< cont_t, iter_t, _beg, _end >
| Output device iterator type. We "future call" interface methods from owner class to provide iterator functionality. More...
struct | utl::outdev_it_details::is_outdev_it_< _Tp, typename >
| Primary template to catch any non SPI interface types. More...
struct | utl::outdev_it_details::is_outdev_it_< _Tp, meta::void_t< typename _Tp::value_type, typename _Tp::difference_type, typename _Tp::pointer, typename _Tp::reference, void > >
| template to catch a proper SPI interface type More...
class | utl::indev_it< cont_t, iter_t, _beg, _size >
| Input device iterator type. We "future call" interface methods from owner class to provide iterator functionality. More...
struct | utl::indev_it_details::is_indev_it_< _Tp, typename >
| Primary template to catch any non SPI interface types. More...
struct | utl::indev_it_details::is_indev_it_< _Tp, meta::void_t< typename _Tp::value_type, typename _Tp::difference_type, typename _Tp::pointer, typename _Tp::reference, void > >
| template to catch a proper SPI interface type More...
class | utl::iodev_it< cont_t, iter_t, _beg, _size >
| Indexed device iterator type. We "future call" interface methods from owner class to provide iterator functionality. More...
struct | utl::iodev_it< cont_t, iter_t, _beg, _size >::value_type_t
struct | utl::idxdev_it_details::is_idxdev_it_< _Tp, typename >
| Primary template to catch any non SPI interface types. More...
struct | utl::idxdev_it_details::is_idxdev_it_< _Tp, meta::void_t< typename _Tp::value_type, typename _Tp::difference_type, typename _Tp::pointer, typename _Tp::reference, void > >
| template to catch a proper SPI interface type More...

## Namespaces

| utl
| STL's core language concepts.
| utl::outdev_it_details
| utl::indev_it_details
| utl::idxdev_it_details

## Functions

template<typename _C1 , typename _D1 , typename _C2 , typename _D2 >
bool | utl::operator== (const istreamdev_it< _C1, _D1 > &lhs, const istreamdev_it< _C2, _D2 > &rhs) noexcept
| Equality comparison template so that comparison between cv-qualified and non-cv-qualified iterators be valid. More...
template<typename _C1 , typename _D1 , typename _C2 , typename _D2 >
bool | utl::operator!= (const istreamdev_it< _C1, _D1 > &lhs, const istreamdev_it< _C2, _D2 > &rhs) noexcept
template<typename _Cont1 , typename _It1 , index_t _beg1, index_t _end1, typename _Cont2 , typename _It2 , index_t _beg2, index_t _end2>
bool | utl::operator== (const outdev_it< _Cont1, _It1, _beg1, _end1 > &lhs, const outdev_it< _Cont2, _It2, _beg2, _end2 > &rhs) noexcept
| Equality comparison template so that comparison between cv-qualified and non-cv-qualified iterators be valid. More...
template<typename _Cont1 , typename _It1 , index_t _beg1, index_t _end1, typename _Cont2 , typename _It2 , index_t _beg2, index_t _end2>
bool | utl::operator!= (const outdev_it< _Cont1, _It1, _beg1, _end1 > &lhs, const outdev_it< _Cont2, _It2, _beg2, _end2 > &rhs) noexcept
| Inequality comparison template so that comparison between cv-qualified and non-cv-qualified iterators be valid. More...
indev_it EqualityComparable && LessThanComparable requirements
comparison template so that comparison between cv-qualified and non-cv-qualified iterators be valid
template<typename _Cont1 , typename _It1 , index_t _beg1, size_t _size1, typename _Cont2 , typename _It2 , index_t _beg2, size_t _size2>
bool | utl::operator== (const indev_it< _Cont1, _It1, _beg1, _size1 > &x, const indev_it< _Cont2, _It2, _beg2, _size2 > &y) noexcept
template<typename _Cont1 , typename _It1 , index_t _beg1, size_t _size1, typename _Cont2 , typename _It2 , index_t _beg2, size_t _size2>
bool | utl::operator< (const indev_it< _Cont1, _It1, _beg1, _size1 > &x, const indev_it< _Cont2, _It2, _beg2, _size2 > &y) noexcept
| Less than. More...
template<typename _Cont1 , typename _It1 , index_t _beg1, size_t _size1, typename _Cont2 , typename _It2 , index_t _beg2, size_t _size2>
bool | utl::operator!= (const indev_it< _Cont1, _It1, _beg1, _size1 > &x, const indev_it< _Cont2, _It2, _beg2, _size2 > &y) noexcept
template<typename _Cont1 , typename _It1 , index_t _beg1, size_t _size1, typename _Cont2 , typename _It2 , index_t _beg2, size_t _size2>
bool | utl::operator<= (const indev_it< _Cont1, _It1, _beg1, _size1 > &x, const indev_it< _Cont2, _It2, _beg2, _size2 > &y) noexcept
template<typename _Cont1 , typename _It1 , index_t _beg1, size_t _size1, typename _Cont2 , typename _It2 , index_t _beg2, size_t _size2>
bool | utl::operator> (const indev_it< _Cont1, _It1, _beg1, _size1 > &x, const indev_it< _Cont2, _It2, _beg2, _size2 > &y) noexcept
template<typename _Cont1 , typename _It1 , index_t _beg1, size_t _size1, typename _Cont2 , typename _It2 , index_t _beg2, size_t _size2>
bool | utl::operator>= (const indev_it< _Cont1, _It1, _beg1, _size1 > &x, const indev_it< _Cont2, _It2, _beg2, _size2 > &y) noexcept
template<typename _Cont1 , typename _It1 , index_t _beg1, size_t _size1, typename _Cont2 , typename _It2 , index_t _beg2, size_t _size2>
bool | utl::operator== (const iodev_it< _Cont1, _It1, _beg1, _size1 > &x, const iodev_it< _Cont2, _It2, _beg2, _size2 > &y) noexcept
template<typename _Cont1 , typename _It1 , index_t _beg1, size_t _size1, typename _Cont2 , typename _It2 , index_t _beg2, size_t _size2>
bool | utl::operator< (const iodev_it< _Cont1, _It1, _beg1, _size1 > &x, const iodev_it< _Cont2, _It2, _beg2, _size2 > &y) noexcept
| Less than. More...
template<typename _Cont1 , typename _It1 , index_t _beg1, size_t _size1, typename _Cont2 , typename _It2 , index_t _beg2, size_t _size2>
bool | utl::operator!= (const iodev_it< _Cont1, _It1, _beg1, _size1 > &x, const iodev_it< _Cont2, _It2, _beg2, _size2 > &y) noexcept
template<typename _Cont1 , typename _It1 , index_t _beg1, size_t _size1, typename _Cont2 , typename _It2 , index_t _beg2, size_t _size2>
bool | utl::operator<= (const iodev_it< _Cont1, _It1, _beg1, _size1 > &x, const iodev_it< _Cont2, _It2, _beg2, _size2 > &y) noexcept
template<typename _Cont1 , typename _It1 , index_t _beg1, size_t _size1, typename _Cont2 , typename _It2 , index_t _beg2, size_t _size2>
bool | utl::operator> (const iodev_it< _Cont1, _It1, _beg1, _size1 > &x, const iodev_it< _Cont2, _It2, _beg2, _size2 > &y) noexcept
template<typename _Cont1 , typename _It1 , index_t _beg1, size_t _size1, typename _Cont2 , typename _It2 , index_t _beg2, size_t _size2>
bool | utl::operator>= (const iodev_it< _Cont1, _It1, _beg1, _size1 > &x, const iodev_it< _Cont2, _It2, _beg2, _size2 > &y) noexcept
iterator arithmetic
template<typename _Cont1 , typename _It1 , index_t _beg1, size_t _size1, typename _Cont2 , typename _It2 , index_t _beg2, size_t _size2>
auto | utl::operator- (indev_it< _Cont1, _It1, _beg1, _size1 > &x, indev_it< _Cont1, _It1, _beg1, _size1 > &y) noexcept -> decltype(x.cursor() - y.cursor())
template<typename _Cont , typename _It , index_t _beg, size_t _size>
indev_it< _Cont, _It, _beg, _size > | utl::operator+ (typename _Cont::difference_type n, indev_it< _Cont, _It, _beg, _size > &it) noexcept
template<typename _Cont1 , typename _It1 , index_t _beg1, size_t _size1, typename _Cont2 , typename _It2 , index_t _beg2, size_t _size2>
auto | utl::operator- (iodev_it< _Cont1, _It1, _beg1, _size1 > &x, iodev_it< _Cont1, _It1, _beg1, _size1 > &y) noexcept -> decltype(x.cursor() - y.cursor())
template<typename _Cont , typename _It , index_t _beg, size_t _size>
iodev_it< _Cont, _It, _beg, _size > | utl::operator+ (typename _Cont::difference_type n, iodev_it< _Cont, _It, _beg, _size > &it) noexcept

## Detailed Description

Iterator collection for devices.

Copyright (C) 2018 Christos Choutouridis

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Definition in file dev_iterators.h.