mutable
A Database System for Research and Fast Prototyping
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Attributes | Private Types | Private Attributes
m::detail::ConcretePhysicalPlanTableIterator< Ref, C > Struct Template Reference

#include <PhysicalPlanTable.hpp>

Inheritance diagram for m::detail::ConcretePhysicalPlanTableIterator< Ref, C >:
[legend]
Collaboration diagram for m::detail::ConcretePhysicalPlanTableIterator< Ref, C >:
[legend]

Public Types

using super = the_condition_entry_iterator< ConcretePhysicalPlanTableIterator< Ref, C >, C, ConcretePhysicalPlanTableEntry >
 
using value_type = super::value_type
 
using reference = super::reference
 
using pointer = super::pointer
 
using difference_type = iterator_type::difference_type
 
using entry_type = ConcretePhysicalPlanTableEntry
 
using actual_type = ConcreteType
 

Public Member Functions

 ConcretePhysicalPlanTableIterator ()=default
 
 ConcretePhysicalPlanTableIterator (const std::vector< iterable_entry_type > &iterable, std::size_t idx)
 
bool operator== (const ConcretePhysicalPlanTableIterator &other) const
 
bool operator!= (const ConcretePhysicalPlanTableIterator &other) const
 
ConcretePhysicalPlanTableIteratoroperator++ ()
 
ConcretePhysicalPlanTableIterator operator++ (int)
 
reference operator* () const
 
pointer operator-> () const
 
bool operator== (const the_condition_entry_iterator &other) const
 
bool operator!= (const the_condition_entry_iterator &other) const
 
actual_typeactual ()
 
const actual_typeactual () const
 

Static Public Attributes

static constexpr bool IsReference = Ref
 
static constexpr bool IsConst
 

Private Types

using iterable_entry_type = std::conditional_t< IsReference, std::reference_wrapper< const value_type >, value_type >
 
using iterator_type = std::vector< iterable_entry_type >::iterator
 

Private Attributes

iterator_type current_
 the iterator to the current position in the iterable
 
friend CRTPBaseType< ConcreteType, B, TParams... >
 

Detailed Description

template<bool Ref, bool C>
requires (not Ref)
struct m::detail::ConcretePhysicalPlanTableIterator< Ref, C >

Definition at line 22 of file PhysicalPlanTable.hpp.

Member Typedef Documentation

◆ actual_type

template<typename ConcreteType , template< typename, bool, typename... > typename CRTPBaseType, bool B, typename... TParams>
using m::crtp_boolean< ConcreteType, CRTPBaseType, B, TParams >::actual_type = ConcreteType
inherited

Definition at line 66 of file crtp.hpp.

◆ difference_type

template<bool Ref, bool C>
using m::detail::ConcretePhysicalPlanTableIterator< Ref, C >::difference_type = iterator_type::difference_type

Definition at line 41 of file PhysicalPlanTable.hpp.

◆ entry_type

Definition at line 44 of file PhysicalPlanTable.hpp.

◆ iterable_entry_type

template<bool Ref, bool C>
using m::detail::ConcretePhysicalPlanTableIterator< Ref, C >::iterable_entry_type = std::conditional_t<IsReference, std::reference_wrapper<const value_type>, value_type>
private

Definition at line 33 of file PhysicalPlanTable.hpp.

◆ iterator_type

template<bool Ref, bool C>
using m::detail::ConcretePhysicalPlanTableIterator< Ref, C >::iterator_type = std::vector<iterable_entry_type>::iterator
private

Definition at line 34 of file PhysicalPlanTable.hpp.

◆ pointer

template<bool Ref, bool C>
using m::detail::ConcretePhysicalPlanTableIterator< Ref, C >::pointer = super::pointer

Definition at line 29 of file PhysicalPlanTable.hpp.

◆ reference

template<bool Ref, bool C>
using m::detail::ConcretePhysicalPlanTableIterator< Ref, C >::reference = super::reference

Definition at line 28 of file PhysicalPlanTable.hpp.

◆ super

Definition at line 25 of file PhysicalPlanTable.hpp.

◆ value_type

template<bool Ref, bool C>
using m::detail::ConcretePhysicalPlanTableIterator< Ref, C >::value_type = super::value_type

Definition at line 27 of file PhysicalPlanTable.hpp.

Constructor & Destructor Documentation

◆ ConcretePhysicalPlanTableIterator() [1/2]

template<bool Ref, bool C>
m::detail::ConcretePhysicalPlanTableIterator< Ref, C >::ConcretePhysicalPlanTableIterator ( )
default

◆ ConcretePhysicalPlanTableIterator() [2/2]

template<bool Ref, bool C>
m::detail::ConcretePhysicalPlanTableIterator< Ref, C >::ConcretePhysicalPlanTableIterator ( const std::vector< iterable_entry_type > &  iterable,
std::size_t  idx 
)
inline

Definition at line 44 of file PhysicalPlanTable.hpp.

References M_insist.

Member Function Documentation

◆ actual() [1/2]

template<typename ConcreteType , template< typename, bool, typename... > typename CRTPBaseType, bool B, typename... TParams>
actual_type & m::crtp_boolean< ConcreteType, CRTPBaseType, B, TParams >::actual ( )
inlineinherited

Definition at line 67 of file crtp.hpp.

◆ actual() [2/2]

template<typename ConcreteType , template< typename, bool, typename... > typename CRTPBaseType, bool B, typename... TParams>
const actual_type & m::crtp_boolean< ConcreteType, CRTPBaseType, B, TParams >::actual ( ) const
inlineinherited

Definition at line 68 of file crtp.hpp.

◆ operator!=() [1/2]

template<bool Ref, bool C>
bool m::detail::ConcretePhysicalPlanTableIterator< Ref, C >::operator!= ( const ConcretePhysicalPlanTableIterator< Ref, C > &  other) const
inline

Definition at line 54 of file PhysicalPlanTable.hpp.

◆ operator!=() [2/2]

Definition at line 54 of file PhysicalPlanTable.hpp.

◆ operator*()

template<bool Ref, bool C>
reference m::detail::ConcretePhysicalPlanTableIterator< Ref, C >::operator* ( ) const
inline

Definition at line 65 of file PhysicalPlanTable.hpp.

References M_insist.

◆ operator++() [1/2]

template<bool Ref, bool C>
ConcretePhysicalPlanTableIterator & m::detail::ConcretePhysicalPlanTableIterator< Ref, C >::operator++ ( )
inline

Definition at line 56 of file PhysicalPlanTable.hpp.

References M_insist.

◆ operator++() [2/2]

template<bool Ref, bool C>
ConcretePhysicalPlanTableIterator m::detail::ConcretePhysicalPlanTableIterator< Ref, C >::operator++ ( int  )
inline

◆ operator->()

template<bool Ref, bool C>
pointer m::detail::ConcretePhysicalPlanTableIterator< Ref, C >::operator-> ( ) const
inline

Definition at line 76 of file PhysicalPlanTable.hpp.

References M_CONSTEXPR_COND, and M_insist.

◆ operator==() [1/2]

template<bool Ref, bool C>
bool m::detail::ConcretePhysicalPlanTableIterator< Ref, C >::operator== ( const ConcretePhysicalPlanTableIterator< Ref, C > &  other) const
inline

◆ operator==() [2/2]

Definition at line 51 of file PhysicalPlanTable.hpp.

Field Documentation

◆ CRTPBaseType< ConcreteType, B, TParams... >

template<typename ConcreteType , template< typename, bool, typename... > typename CRTPBaseType, bool B, typename... TParams>
friend m::crtp_boolean< ConcreteType, CRTPBaseType, B, TParams >::CRTPBaseType< ConcreteType, B, TParams... >
privateinherited

Definition at line 72 of file crtp.hpp.

◆ current_

template<bool Ref, bool C>
iterator_type m::detail::ConcretePhysicalPlanTableIterator< Ref, C >::current_
private

the iterator to the current position in the iterable

Definition at line 35 of file PhysicalPlanTable.hpp.

Referenced by m::detail::ConcretePhysicalPlanTableIterator< Ref, C >::operator==().

◆ IsConst

constexpr bool m::detail::the_condition_entry_iterator< ConcretePhysicalPlanTableIterator< Ref, C > , C, ConcretePhysicalPlanTableEntry >::IsConst
staticconstexprinherited

Definition at line 45 of file PhysicalPlanTable.hpp.

◆ IsReference

template<bool Ref, bool C>
constexpr bool m::detail::ConcretePhysicalPlanTableIterator< Ref, C >::IsReference = Ref
staticconstexpr

Definition at line 30 of file PhysicalPlanTable.hpp.


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