idx_dev.h File Reference

Abstract base class implementations for indexed devices interface of utl. More...

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

Go to the source code of this file.

## Classes

class | utl::idx_dev< impl_t, data_t, idx_t, N >
| Abstract base class for indexed devices. More...
class | utl::idx_dev< virtual_tag, data_t, idx_t, N >
| A virtual base class specialization. More...
struct | utl::idx_dev_details::is_idx_dev_< _Tp, typename >
| Primary template to catch any non input device types. More...

struct

utl::idx_dev_details::is_idx_dev_< _Tp, void_t< typename _Tp::data_type, typename _Tp::pointer_type, typename _Tp::iterator, typename _Tp::const_iterator, use_if_same_t< try_get1_t< _Tp >, size_t >, use_if_same_t< try_get2_t< _Tp >, size_t >, use_if_same_t< try_begin_t< _Tp >, typename _Tp::iterator >, use_if_same_t< tryc_begin_t< _Tp >, typename _Tp::const_iterator >, use_if_same_t< try_cbegin_t< _Tp >, typename _Tp::const_iterator >, use_if_same_t< try_end_t< _Tp >, typename _Tp::iterator >, use_if_same_t< tryc_end_t< _Tp >, typename _Tp::const_iterator >, use_if_same_t< try_cend_t< _Tp >, typename _Tp::const_iterator > > >

| template to catch a proper input device type More...

## Namespaces

| utl
| STL's core language concepts.
| utl::idx_dev_details

## Typedefs

template<class _Tp >
using | utl::idx_dev_details::try_get1_t = decltype(declval< _Tp >().get(declval< typename _Tp::data_type & >()))
template<class _Tp >
using | utl::idx_dev_details::try_get2_t = decltype(declval< _Tp >().get(declval< typename _Tp::data_type * >(), declval< size_t >()))
template<class _Tp >
using | utl::idx_dev_details::try_begin_t = decltype(declval< _Tp >().begin())
template<class _Tp >
using | utl::idx_dev_details::tryc_begin_t = decltype(declval< const _Tp >().begin())
template<class _Tp >
using | utl::idx_dev_details::try_cbegin_t = decltype(declval< const _Tp >().cbegin())
template<class _Tp >
using | utl::idx_dev_details::try_end_t = decltype(declval< _Tp >().begin())
template<class _Tp >
using | utl::idx_dev_details::tryc_end_t = decltype(declval< const _Tp >().begin())
template<class _Tp >
using | utl::idx_dev_details::try_cend_t = decltype(declval< const _Tp >().cend())

## Variables

template<typename _Tp >
constexpr bool | utl::Idx_dev = idx_dev_details::is_idx_dev_ <_Tp>::value

## Detailed Description

Abstract base class implementations for indexed devices interface of utl.

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 idx_dev.h.