forked from boostorg/iterator
		
	
		
			
				
	
	
		
			56 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
 | 
						|
[section:traits Iterator Traits]
 | 
						|
 | 
						|
`std::iterator_traits` provides access to five associated types
 | 
						|
of any iterator: its `value_type`, `reference`, `pointer`,
 | 
						|
`iterator_category`, and `difference_type`.  Unfortunately,
 | 
						|
such a "multi-valued" traits template can be difficult to use in a
 | 
						|
metaprogramming context.  `<boost/iterator/iterator_traits.hpp>`
 | 
						|
provides access to these types using a standard metafunctions_.
 | 
						|
 | 
						|
[h2 Synopsis]
 | 
						|
 | 
						|
Header `<boost/iterator/iterator_traits.hpp>`:
 | 
						|
 | 
						|
  template <class Iterator>
 | 
						|
  struct iterator_value
 | 
						|
  {
 | 
						|
      typedef typename 
 | 
						|
        std::iterator_traits<Iterator>::value_type 
 | 
						|
      type;
 | 
						|
  };
 | 
						|
 | 
						|
  template <class Iterator>
 | 
						|
  struct iterator_reference
 | 
						|
  {
 | 
						|
      typedef typename 
 | 
						|
        std::iterator_traits<Iterator>::reference
 | 
						|
      type;
 | 
						|
  };
 | 
						|
 | 
						|
  template <class Iterator>
 | 
						|
  struct iterator_pointer
 | 
						|
  {
 | 
						|
      typedef typename 
 | 
						|
        std::iterator_traits<Iterator>::pointer 
 | 
						|
      type;
 | 
						|
  };
 | 
						|
 | 
						|
  template <class Iterator>
 | 
						|
  struct iterator_difference
 | 
						|
  {
 | 
						|
      typedef typename
 | 
						|
        detail::iterator_traits<Iterator>::difference_type
 | 
						|
      type;
 | 
						|
  };
 | 
						|
 | 
						|
  template <class Iterator>
 | 
						|
  struct iterator_category
 | 
						|
  {
 | 
						|
      typedef typename
 | 
						|
        detail::iterator_traits<Iterator>::iterator_category
 | 
						|
      type;
 | 
						|
  };
 | 
						|
 | 
						|
[endsect]
 |