guanaqo 1.0.0-alpha.25
Utilities for scientific software
Loading...
Searching...
No Matches
guanaqo::set_intersection_iterable< R1, R2, Comp, Proj1, Proj2 >::iter_t< I1, S1, I2, S2 > Struct Template Reference

#include <guanaqo/set-intersection.hpp>

Detailed Description

template<std::ranges::input_range R1, std::ranges::input_range R2, class Comp = std::ranges::less, class Proj1 = std::identity, class Proj2 = std::identity>
template<std::input_iterator I1, std::sentinel_for< I1 > S1, std::input_iterator I2, std::sentinel_for< I2 > S2>
struct guanaqo::set_intersection_iterable< R1, R2, Comp, Proj1, Proj2 >::iter_t< I1, S1, I2, S2 >

Definition at line 40 of file set-intersection.hpp.

Collaboration diagram for guanaqo::set_intersection_iterable< R1, R2, Comp, Proj1, Proj2 >::iter_t< I1, S1, I2, S2 >:

Public Types

using difference_type = std::ptrdiff_t
using value_type = std::tuple<decltype(*first1), decltype(*first2)>

Public Member Functions

 iter_t ()=default
 iter_t (I1 first1, S1 last1, I2 first2, S2 last2, Comp comp, Proj1 proj1, Proj2 proj2)
bool operator!= (sentinel_t) const
bool operator== (sentinel_t s) const
iter_toperator++ ()
iter_t operator++ (int)
value_type operator* () const
void advance ()

Public Attributes

I1 first1
S1 last1
I2 first2
S2 last2
Comp comp
Proj1 proj1
Proj2 proj2

Friends

bool operator!= (sentinel_t s, const iter_t &i)
bool operator== (sentinel_t s, const iter_t &i)

Member Typedef Documentation

◆ difference_type

template<std::ranges::input_range R1, std::ranges::input_range R2, class Comp = std::ranges::less, class Proj1 = std::identity, class Proj2 = std::identity>
template<std::input_iterator I1, std::sentinel_for< I1 > S1, std::input_iterator I2, std::sentinel_for< I2 > S2>
using guanaqo::set_intersection_iterable< R1, R2, Comp, Proj1, Proj2 >::iter_t< I1, S1, I2, S2 >::difference_type = std::ptrdiff_t

Definition at line 57 of file set-intersection.hpp.

◆ value_type

template<std::ranges::input_range R1, std::ranges::input_range R2, class Comp = std::ranges::less, class Proj1 = std::identity, class Proj2 = std::identity>
template<std::input_iterator I1, std::sentinel_for< I1 > S1, std::input_iterator I2, std::sentinel_for< I2 > S2>
using guanaqo::set_intersection_iterable< R1, R2, Comp, Proj1, Proj2 >::iter_t< I1, S1, I2, S2 >::value_type = std::tuple<decltype(*first1), decltype(*first2)>

Definition at line 58 of file set-intersection.hpp.

Constructor & Destructor Documentation

◆ iter_t() [1/2]

template<std::ranges::input_range R1, std::ranges::input_range R2, class Comp = std::ranges::less, class Proj1 = std::identity, class Proj2 = std::identity>
template<std::input_iterator I1, std::sentinel_for< I1 > S1, std::input_iterator I2, std::sentinel_for< I2 > S2>
guanaqo::set_intersection_iterable< R1, R2, Comp, Proj1, Proj2 >::iter_t< I1, S1, I2, S2 >::iter_t ( )
default
Here is the caller graph for this function:

◆ iter_t() [2/2]

template<std::ranges::input_range R1, std::ranges::input_range R2, class Comp = std::ranges::less, class Proj1 = std::identity, class Proj2 = std::identity>
template<std::input_iterator I1, std::sentinel_for< I1 > S1, std::input_iterator I2, std::sentinel_for< I2 > S2>
guanaqo::set_intersection_iterable< R1, R2, Comp, Proj1, Proj2 >::iter_t< I1, S1, I2, S2 >::iter_t ( I1 first1,
S1 last1,
I2 first2,
S2 last2,
Comp comp,
Proj1 proj1,
Proj2 proj2 )
inline

Definition at line 43 of file set-intersection.hpp.

Member Function Documentation

◆ operator!=()

template<std::ranges::input_range R1, std::ranges::input_range R2, class Comp = std::ranges::less, class Proj1 = std::identity, class Proj2 = std::identity>
template<std::input_iterator I1, std::sentinel_for< I1 > S1, std::input_iterator I2, std::sentinel_for< I2 > S2>
bool guanaqo::set_intersection_iterable< R1, R2, Comp, Proj1, Proj2 >::iter_t< I1, S1, I2, S2 >::operator!= ( sentinel_t ) const
inline

Definition at line 60 of file set-intersection.hpp.

◆ operator==()

template<std::ranges::input_range R1, std::ranges::input_range R2, class Comp = std::ranges::less, class Proj1 = std::identity, class Proj2 = std::identity>
template<std::input_iterator I1, std::sentinel_for< I1 > S1, std::input_iterator I2, std::sentinel_for< I2 > S2>
bool guanaqo::set_intersection_iterable< R1, R2, Comp, Proj1, Proj2 >::iter_t< I1, S1, I2, S2 >::operator== ( sentinel_t s) const
inline

Definition at line 63 of file set-intersection.hpp.

◆ operator++() [1/2]

template<std::ranges::input_range R1, std::ranges::input_range R2, class Comp = std::ranges::less, class Proj1 = std::identity, class Proj2 = std::identity>
template<std::input_iterator I1, std::sentinel_for< I1 > S1, std::input_iterator I2, std::sentinel_for< I2 > S2>
iter_t & guanaqo::set_intersection_iterable< R1, R2, Comp, Proj1, Proj2 >::iter_t< I1, S1, I2, S2 >::operator++ ( )
inline

Definition at line 68 of file set-intersection.hpp.

Here is the call graph for this function:

◆ operator++() [2/2]

template<std::ranges::input_range R1, std::ranges::input_range R2, class Comp = std::ranges::less, class Proj1 = std::identity, class Proj2 = std::identity>
template<std::input_iterator I1, std::sentinel_for< I1 > S1, std::input_iterator I2, std::sentinel_for< I2 > S2>
iter_t guanaqo::set_intersection_iterable< R1, R2, Comp, Proj1, Proj2 >::iter_t< I1, S1, I2, S2 >::operator++ ( int )
inline

Definition at line 73 of file set-intersection.hpp.

Here is the call graph for this function:

◆ operator*()

template<std::ranges::input_range R1, std::ranges::input_range R2, class Comp = std::ranges::less, class Proj1 = std::identity, class Proj2 = std::identity>
template<std::input_iterator I1, std::sentinel_for< I1 > S1, std::input_iterator I2, std::sentinel_for< I2 > S2>
value_type guanaqo::set_intersection_iterable< R1, R2, Comp, Proj1, Proj2 >::iter_t< I1, S1, I2, S2 >::operator* ( ) const
inline

Definition at line 78 of file set-intersection.hpp.

◆ advance()

template<std::ranges::input_range R1, std::ranges::input_range R2, class Comp = std::ranges::less, class Proj1 = std::identity, class Proj2 = std::identity>
template<std::input_iterator I1, std::sentinel_for< I1 > S1, std::input_iterator I2, std::sentinel_for< I2 > S2>
void guanaqo::set_intersection_iterable< R1, R2, Comp, Proj1, Proj2 >::iter_t< I1, S1, I2, S2 >::advance ( )
inline

Definition at line 79 of file set-intersection.hpp.

Here is the caller graph for this function:

◆ operator!=

template<std::ranges::input_range R1, std::ranges::input_range R2, class Comp = std::ranges::less, class Proj1 = std::identity, class Proj2 = std::identity>
template<std::input_iterator I1, std::sentinel_for< I1 > S1, std::input_iterator I2, std::sentinel_for< I2 > S2>
bool operator!= ( sentinel_t s,
const iter_t< I1, S1, I2, S2 > & i )
friend

Definition at line 65 of file set-intersection.hpp.

◆ operator==

template<std::ranges::input_range R1, std::ranges::input_range R2, class Comp = std::ranges::less, class Proj1 = std::identity, class Proj2 = std::identity>
template<std::input_iterator I1, std::sentinel_for< I1 > S1, std::input_iterator I2, std::sentinel_for< I2 > S2>
bool operator== ( sentinel_t s,
const iter_t< I1, S1, I2, S2 > & i )
friend

Definition at line 66 of file set-intersection.hpp.

Member Data Documentation

◆ first1

template<std::ranges::input_range R1, std::ranges::input_range R2, class Comp = std::ranges::less, class Proj1 = std::identity, class Proj2 = std::identity>
template<std::input_iterator I1, std::sentinel_for< I1 > S1, std::input_iterator I2, std::sentinel_for< I2 > S2>
I1 guanaqo::set_intersection_iterable< R1, R2, Comp, Proj1, Proj2 >::iter_t< I1, S1, I2, S2 >::first1

Definition at line 49 of file set-intersection.hpp.

◆ last1

template<std::ranges::input_range R1, std::ranges::input_range R2, class Comp = std::ranges::less, class Proj1 = std::identity, class Proj2 = std::identity>
template<std::input_iterator I1, std::sentinel_for< I1 > S1, std::input_iterator I2, std::sentinel_for< I2 > S2>
S1 guanaqo::set_intersection_iterable< R1, R2, Comp, Proj1, Proj2 >::iter_t< I1, S1, I2, S2 >::last1

Definition at line 50 of file set-intersection.hpp.

◆ first2

template<std::ranges::input_range R1, std::ranges::input_range R2, class Comp = std::ranges::less, class Proj1 = std::identity, class Proj2 = std::identity>
template<std::input_iterator I1, std::sentinel_for< I1 > S1, std::input_iterator I2, std::sentinel_for< I2 > S2>
I2 guanaqo::set_intersection_iterable< R1, R2, Comp, Proj1, Proj2 >::iter_t< I1, S1, I2, S2 >::first2

Definition at line 51 of file set-intersection.hpp.

◆ last2

template<std::ranges::input_range R1, std::ranges::input_range R2, class Comp = std::ranges::less, class Proj1 = std::identity, class Proj2 = std::identity>
template<std::input_iterator I1, std::sentinel_for< I1 > S1, std::input_iterator I2, std::sentinel_for< I2 > S2>
S2 guanaqo::set_intersection_iterable< R1, R2, Comp, Proj1, Proj2 >::iter_t< I1, S1, I2, S2 >::last2

Definition at line 52 of file set-intersection.hpp.

◆ comp

template<std::ranges::input_range R1, std::ranges::input_range R2, class Comp = std::ranges::less, class Proj1 = std::identity, class Proj2 = std::identity>
template<std::input_iterator I1, std::sentinel_for< I1 > S1, std::input_iterator I2, std::sentinel_for< I2 > S2>
Comp guanaqo::set_intersection_iterable< R1, R2, Comp, Proj1, Proj2 >::iter_t< I1, S1, I2, S2 >::comp

Definition at line 53 of file set-intersection.hpp.

◆ proj1

template<std::ranges::input_range R1, std::ranges::input_range R2, class Comp = std::ranges::less, class Proj1 = std::identity, class Proj2 = std::identity>
template<std::input_iterator I1, std::sentinel_for< I1 > S1, std::input_iterator I2, std::sentinel_for< I2 > S2>
Proj1 guanaqo::set_intersection_iterable< R1, R2, Comp, Proj1, Proj2 >::iter_t< I1, S1, I2, S2 >::proj1

Definition at line 54 of file set-intersection.hpp.

◆ proj2

template<std::ranges::input_range R1, std::ranges::input_range R2, class Comp = std::ranges::less, class Proj1 = std::identity, class Proj2 = std::identity>
template<std::input_iterator I1, std::sentinel_for< I1 > S1, std::input_iterator I2, std::sentinel_for< I2 > S2>
Proj2 guanaqo::set_intersection_iterable< R1, R2, Comp, Proj1, Proj2 >::iter_t< I1, S1, I2, S2 >::proj2

Definition at line 55 of file set-intersection.hpp.


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