OKlibrary  0.2.1.6
OKlib::Concepts::InputIterator< Iterator > Class Template Reference

Concept InputIterator according to the standard. More...

#include <std_Iterators.hpp>

List of all members.

Public Types

typedef std::iterator_traits
< Iterator >::value_type 
value_type
typedef std::iterator_traits
< Iterator >
::iterator_category 
iterator_category
typedef std::iterator_traits
< Iterator >::difference_type 
difference_type
typedef std::iterator_traits
< Iterator >::reference 
reference
typedef std::iterator_traits
< Iterator >::pointer 
pointer

Public Member Functions

 BOOST_STATIC_ASSERT ((::boost::mpl::or_< ::boost::is_same< std::input_iterator_tag, iterator_category >,::boost::is_base_and_derived< std::input_iterator_tag, iterator_category > >::value))
void constraints ()
void dummy_use_v (const value_type &v) const

Public Attributes

const Iterator a
Iterator & r

Detailed Description

template<typename Iterator>
class OKlib::Concepts::InputIterator< Iterator >

Concept InputIterator according to the standard.

Refines concept Concepts::ConstructibleCAEq. Extensions can be found in Concepts/Iterators.hpp (Concepts::InputIteratorDefault, making it possible to use the past-the-end iterator).

Todo:

"reference" and "pointer" are never explained in the standard, and the requirements on iterator concepts don't mention them, but they suddenly show up in the iterator traits (24.3.1) ?

Can expressions "a -> m" be expressed ?

Create in TypeTraits.hpp a metafunction "is_derived_or_same", and use it for the definition of InputIterator and elsewhere. Stop --- this is now in the new standard library.

Definition at line 59 of file std_Iterators.hpp.


Member Typedef Documentation

template<typename Iterator >
typedef std::iterator_traits<Iterator>::difference_type OKlib::Concepts::InputIterator< Iterator >::difference_type

Definition at line 63 of file std_Iterators.hpp.

template<typename Iterator >
typedef std::iterator_traits<Iterator>::iterator_category OKlib::Concepts::InputIterator< Iterator >::iterator_category

Definition at line 61 of file std_Iterators.hpp.

template<typename Iterator >
typedef std::iterator_traits<Iterator>::pointer OKlib::Concepts::InputIterator< Iterator >::pointer

Definition at line 66 of file std_Iterators.hpp.

template<typename Iterator >
typedef std::iterator_traits<Iterator>::reference OKlib::Concepts::InputIterator< Iterator >::reference

Definition at line 65 of file std_Iterators.hpp.

template<typename Iterator >
typedef std::iterator_traits<Iterator>::value_type OKlib::Concepts::InputIterator< Iterator >::value_type

Definition at line 60 of file std_Iterators.hpp.


Member Function Documentation

template<typename Iterator >
OKlib::Concepts::InputIterator< Iterator >::BOOST_STATIC_ASSERT ( (::boost::mpl::or_< ::boost::is_same< std::input_iterator_tag, iterator_category >,::boost::is_base_and_derived< std::input_iterator_tag, iterator_category > >::value)  )
template<typename Iterator >
void OKlib::Concepts::InputIterator< Iterator >::dummy_use_v ( const value_type v) const [inline]

Member Data Documentation

template<typename Iterator >
const Iterator OKlib::Concepts::InputIterator< Iterator >::a
template<typename Iterator >
Iterator& OKlib::Concepts::InputIterator< Iterator >::r

The documentation for this class was generated from the following file: