Hammer  1.0.0
Helicity Amplitude Module for Matrix Element Reweighting
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Hammer::product_iterator< OuterIterator, InnerIterator > Class Template Reference

#include <Iterators.hh>

+ Collaboration diagram for Hammer::product_iterator< OuterIterator, InnerIterator >:

Public Types

using outer_iterator = OuterIterator
 
using inner_iterator = InnerIterator
 
using outer_category = typename std::iterator_traits< outer_iterator >::iterator_category
 
using inner_category = typename std::iterator_traits< inner_iterator >::iterator_category
 
using common_category = typename std::common_type< outer_category, inner_category >::type
 
using iterator_category = typename std::conditional< std::is_same< common_category, std::random_access_iterator_tag >::value, std::bidirectional_iterator_tag, common_category >::type
 
using inner_value_type = typename std::iterator_traits< inner_iterator >::value_type
 
using outer_value_type = typename std::iterator_traits< outer_iterator >::value_type
 
using value_type = typename std::pair< outer_value_type, outer_value_type >
 
using inner_reference = typename std::iterator_traits< inner_iterator >::reference
 
using outer_reference = typename std::iterator_traits< outer_iterator >::reference
 
using inner_pointer = typename std::iterator_traits< inner_iterator >::pointer
 
using outer_pointer = typename std::iterator_traits< outer_iterator >::pointer
 
using pointer = typename std::pair< outer_pointer, inner_pointer >
 
using reference = typename std::pair< outer_reference, inner_reference >
 

Public Member Functions

 product_iterator ()
 
 product_iterator (outer_iterator out_it, outer_iterator out_begin, outer_iterator out_end, inner_iterator in_it, inner_iterator in_begin, inner_iterator in_end)
 
 product_iterator (outer_iterator out_begin, outer_iterator out_end, inner_iterator in_begin, inner_iterator in_end)
 
reference operator* () const
 
pointer operator-> () const
 
product_iteratoroperator++ ()
 
product_iterator operator++ (int)
 
product_iteratoroperator-- ()
 
product_iterator operator-- (int)
 

Private Attributes

outer_iterator outer_it_
 
outer_iterator outer_begin_
 
outer_iterator outer_end_
 
inner_iterator inner_it_
 
inner_iterator inner_begin_
 
inner_iterator inner_end_
 

Friends

bool operator== (const product_iterator &a, const product_iterator &b)
 
bool operator!= (const product_iterator &a, const product_iterator &b)
 

Detailed Description

template<typename OuterIterator, typename InnerIterator>
class Hammer::product_iterator< OuterIterator, InnerIterator >

Definition at line 22 of file Iterators.hh.

Member Typedef Documentation

template<typename OuterIterator , typename InnerIterator >
using Hammer::product_iterator< OuterIterator, InnerIterator >::common_category = typename std::common_type<outer_category, inner_category>::type

Definition at line 30 of file Iterators.hh.

template<typename OuterIterator , typename InnerIterator >
using Hammer::product_iterator< OuterIterator, InnerIterator >::inner_category = typename std::iterator_traits<inner_iterator>::iterator_category

Definition at line 29 of file Iterators.hh.

template<typename OuterIterator , typename InnerIterator >
using Hammer::product_iterator< OuterIterator, InnerIterator >::inner_iterator = InnerIterator

Definition at line 26 of file Iterators.hh.

template<typename OuterIterator , typename InnerIterator >
using Hammer::product_iterator< OuterIterator, InnerIterator >::inner_pointer = typename std::iterator_traits<inner_iterator>::pointer

Definition at line 42 of file Iterators.hh.

template<typename OuterIterator , typename InnerIterator >
using Hammer::product_iterator< OuterIterator, InnerIterator >::inner_reference = typename std::iterator_traits<inner_iterator>::reference

Definition at line 40 of file Iterators.hh.

template<typename OuterIterator , typename InnerIterator >
using Hammer::product_iterator< OuterIterator, InnerIterator >::inner_value_type = typename std::iterator_traits<inner_iterator>::value_type

Definition at line 36 of file Iterators.hh.

template<typename OuterIterator , typename InnerIterator >
using Hammer::product_iterator< OuterIterator, InnerIterator >::iterator_category = typename std::conditional<std::is_same<common_category, std::random_access_iterator_tag>::value, std::bidirectional_iterator_tag, common_category>::type

Definition at line 34 of file Iterators.hh.

template<typename OuterIterator , typename InnerIterator >
using Hammer::product_iterator< OuterIterator, InnerIterator >::outer_category = typename std::iterator_traits<outer_iterator>::iterator_category

Definition at line 28 of file Iterators.hh.

template<typename OuterIterator , typename InnerIterator >
using Hammer::product_iterator< OuterIterator, InnerIterator >::outer_iterator = OuterIterator

Definition at line 25 of file Iterators.hh.

template<typename OuterIterator , typename InnerIterator >
using Hammer::product_iterator< OuterIterator, InnerIterator >::outer_pointer = typename std::iterator_traits<outer_iterator>::pointer

Definition at line 43 of file Iterators.hh.

template<typename OuterIterator , typename InnerIterator >
using Hammer::product_iterator< OuterIterator, InnerIterator >::outer_reference = typename std::iterator_traits<outer_iterator>::reference

Definition at line 41 of file Iterators.hh.

template<typename OuterIterator , typename InnerIterator >
using Hammer::product_iterator< OuterIterator, InnerIterator >::outer_value_type = typename std::iterator_traits<outer_iterator>::value_type

Definition at line 37 of file Iterators.hh.

template<typename OuterIterator , typename InnerIterator >
using Hammer::product_iterator< OuterIterator, InnerIterator >::pointer = typename std::pair<outer_pointer, inner_pointer>

Definition at line 44 of file Iterators.hh.

template<typename OuterIterator , typename InnerIterator >
using Hammer::product_iterator< OuterIterator, InnerIterator >::reference = typename std::pair<outer_reference, inner_reference>

Definition at line 45 of file Iterators.hh.

template<typename OuterIterator , typename InnerIterator >
using Hammer::product_iterator< OuterIterator, InnerIterator >::value_type = typename std::pair<outer_value_type, outer_value_type>

Definition at line 38 of file Iterators.hh.

Constructor & Destructor Documentation

template<typename OuterIterator , typename InnerIterator >
Hammer::product_iterator< OuterIterator, InnerIterator >::product_iterator ( )
inline

Definition at line 47 of file Iterators.hh.

template<typename OuterIterator , typename InnerIterator >
Hammer::product_iterator< OuterIterator, InnerIterator >::product_iterator ( outer_iterator  out_it,
outer_iterator  out_begin,
outer_iterator  out_end,
inner_iterator  in_it,
inner_iterator  in_begin,
inner_iterator  in_end 
)
inline

Definition at line 48 of file Iterators.hh.

template<typename OuterIterator , typename InnerIterator >
Hammer::product_iterator< OuterIterator, InnerIterator >::product_iterator ( outer_iterator  out_begin,
outer_iterator  out_end,
inner_iterator  in_begin,
inner_iterator  in_end 
)
inline

Definition at line 63 of file Iterators.hh.

Member Function Documentation

template<typename OuterIterator , typename InnerIterator >
reference Hammer::product_iterator< OuterIterator, InnerIterator >::operator* ( ) const
inline

Definition at line 78 of file Iterators.hh.

template<typename OuterIterator , typename InnerIterator >
product_iterator& Hammer::product_iterator< OuterIterator, InnerIterator >::operator++ ( )
inline

Definition at line 81 of file Iterators.hh.

template<typename OuterIterator , typename InnerIterator >
product_iterator Hammer::product_iterator< OuterIterator, InnerIterator >::operator++ ( int  )
inline

Definition at line 91 of file Iterators.hh.

template<typename OuterIterator , typename InnerIterator >
product_iterator& Hammer::product_iterator< OuterIterator, InnerIterator >::operator-- ( )
inline

Definition at line 97 of file Iterators.hh.

template<typename OuterIterator , typename InnerIterator >
product_iterator Hammer::product_iterator< OuterIterator, InnerIterator >::operator-- ( int  )
inline

Definition at line 114 of file Iterators.hh.

template<typename OuterIterator , typename InnerIterator >
pointer Hammer::product_iterator< OuterIterator, InnerIterator >::operator-> ( ) const
inline

Definition at line 79 of file Iterators.hh.

Friends And Related Function Documentation

template<typename OuterIterator , typename InnerIterator >
bool operator!= ( const product_iterator< OuterIterator, InnerIterator > &  a,
const product_iterator< OuterIterator, InnerIterator > &  b 
)
friend

Definition at line 125 of file Iterators.hh.

template<typename OuterIterator , typename InnerIterator >
bool operator== ( const product_iterator< OuterIterator, InnerIterator > &  a,
const product_iterator< OuterIterator, InnerIterator > &  b 
)
friend

Definition at line 120 of file Iterators.hh.

Member Data Documentation

template<typename OuterIterator , typename InnerIterator >
inner_iterator Hammer::product_iterator< OuterIterator, InnerIterator >::inner_begin_
private

Definition at line 136 of file Iterators.hh.

template<typename OuterIterator , typename InnerIterator >
inner_iterator Hammer::product_iterator< OuterIterator, InnerIterator >::inner_end_
private

Definition at line 137 of file Iterators.hh.

template<typename OuterIterator , typename InnerIterator >
inner_iterator Hammer::product_iterator< OuterIterator, InnerIterator >::inner_it_
private

Definition at line 135 of file Iterators.hh.

template<typename OuterIterator , typename InnerIterator >
outer_iterator Hammer::product_iterator< OuterIterator, InnerIterator >::outer_begin_
private

Definition at line 133 of file Iterators.hh.

template<typename OuterIterator , typename InnerIterator >
outer_iterator Hammer::product_iterator< OuterIterator, InnerIterator >::outer_end_
private

Definition at line 134 of file Iterators.hh.

template<typename OuterIterator , typename InnerIterator >
outer_iterator Hammer::product_iterator< OuterIterator, InnerIterator >::outer_it_
private

Definition at line 132 of file Iterators.hh.


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