uTL
micro Template library
in_dev.h File Reference

Abstract base class interface for input devices 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::in_dev< impl_t, data_t, streamsize >
 Abstract base class for input devices. More...
 
class  utl::in_dev< virtual_tag, data_t, streamsize >
 A virtual base class specialization. More...
 
struct  utl::in_dev_details::is_in_dev_< _Tp, typename >
 Primary template to catch any non input device types. More...
 
struct  utl::in_dev_details::is_in_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::in_dev_details
 

Typedefs

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

Variables

template<typename _Tp >
constexpr bool utl::In_dev = in_dev_details::is_in_dev_ <_Tp>::value
 

Detailed Description

Abstract base class interface for input devices 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 in_dev.h.