CAPD RedHom Library
capd::homAux::GroupedRange< Range, Eq > Class Template Reference

#include <capd/homAux/GroupedRange.h>

Public Types

typedef boost::unwrap_reference< Range >::type Rng
 
typedef boost::sub_range< RngGroupRange
 
typedef GroupRange reference
 
typedef boost::sub_range< const RngConstGroupRange
 
typedef ConstGroupRange const_reference
 

Public Member Functions

 GroupedRange ()=default
 
 GroupedRange (GroupedRange &&)=default
 
 GroupedRange (Range range, Eq eq=Eq())
 
 GroupedRange (const GroupedRange &rhs)
 
GroupedRangeoperator= (const GroupedRange &)=delete
 
GroupedRangeoperator= (GroupedRange &&)=default
 
void operator() ()
 
size_t groupBeginIdx (size_t gid) const
 
size_t groupEndIdx (size_t gid) const
 
GroupRange group (size_t gid)
 
ConstGroupRange group (size_t gid) const
 
reference operator[] (size_t gid)
 
const_reference operator[] (size_t gid) const
 
size_t size () const
 
void trim ()
 
auto map () -> decltype(GroupsAsMap(MapValues(RandomAccessAsRange(*this))))
 
auto map () const -> decltype(GroupsAsMap(MapValues(RandomAccessAsRange(*this))))
 
Rngrange ()
 
const Rngrange () const
 

Member Typedef Documentation

template<typename Range , typename Eq = std::equal_to<typename boost::unwrap_reference<Range>::type::value_type>>
typedef ConstGroupRange capd::homAux::GroupedRange< Range, Eq >::const_reference
template<typename Range , typename Eq = std::equal_to<typename boost::unwrap_reference<Range>::type::value_type>>
typedef boost::sub_range<const Rng> capd::homAux::GroupedRange< Range, Eq >::ConstGroupRange
template<typename Range , typename Eq = std::equal_to<typename boost::unwrap_reference<Range>::type::value_type>>
typedef boost::sub_range<Rng> capd::homAux::GroupedRange< Range, Eq >::GroupRange
template<typename Range , typename Eq = std::equal_to<typename boost::unwrap_reference<Range>::type::value_type>>
typedef GroupRange capd::homAux::GroupedRange< Range, Eq >::reference
template<typename Range , typename Eq = std::equal_to<typename boost::unwrap_reference<Range>::type::value_type>>
typedef boost::unwrap_reference<Range>::type capd::homAux::GroupedRange< Range, Eq >::Rng

Constructor & Destructor Documentation

template<typename Range , typename Eq = std::equal_to<typename boost::unwrap_reference<Range>::type::value_type>>
capd::homAux::GroupedRange< Range, Eq >::GroupedRange ( )
default
template<typename Range , typename Eq = std::equal_to<typename boost::unwrap_reference<Range>::type::value_type>>
capd::homAux::GroupedRange< Range, Eq >::GroupedRange ( GroupedRange< Range, Eq > &&  )
default
template<typename Range , typename Eq = std::equal_to<typename boost::unwrap_reference<Range>::type::value_type>>
capd::homAux::GroupedRange< Range, Eq >::GroupedRange ( Range  range,
Eq  eq = Eq() 
)
inlineexplicit
template<typename Range , typename Eq = std::equal_to<typename boost::unwrap_reference<Range>::type::value_type>>
capd::homAux::GroupedRange< Range, Eq >::GroupedRange ( const GroupedRange< Range, Eq > &  rhs)
inline

Member Function Documentation

template<typename Range , typename Eq = std::equal_to<typename boost::unwrap_reference<Range>::type::value_type>>
GroupRange capd::homAux::GroupedRange< Range, Eq >::group ( size_t  gid)
inline
template<typename Range , typename Eq = std::equal_to<typename boost::unwrap_reference<Range>::type::value_type>>
ConstGroupRange capd::homAux::GroupedRange< Range, Eq >::group ( size_t  gid) const
inline
template<typename Range , typename Eq = std::equal_to<typename boost::unwrap_reference<Range>::type::value_type>>
size_t capd::homAux::GroupedRange< Range, Eq >::groupBeginIdx ( size_t  gid) const
inline
template<typename Range , typename Eq = std::equal_to<typename boost::unwrap_reference<Range>::type::value_type>>
size_t capd::homAux::GroupedRange< Range, Eq >::groupEndIdx ( size_t  gid) const
inline
template<typename Range , typename Eq = std::equal_to<typename boost::unwrap_reference<Range>::type::value_type>>
auto capd::homAux::GroupedRange< Range, Eq >::map ( ) -> decltype(GroupsAsMap(MapValues(RandomAccessAsRange(*this))))
inline
template<typename Range , typename Eq = std::equal_to<typename boost::unwrap_reference<Range>::type::value_type>>
auto capd::homAux::GroupedRange< Range, Eq >::map ( ) const -> decltype(GroupsAsMap(MapValues(RandomAccessAsRange(*this))))
inline
template<typename Range , typename Eq = std::equal_to<typename boost::unwrap_reference<Range>::type::value_type>>
void capd::homAux::GroupedRange< Range, Eq >::operator() ( )
inline
template<typename Range , typename Eq = std::equal_to<typename boost::unwrap_reference<Range>::type::value_type>>
GroupedRange& capd::homAux::GroupedRange< Range, Eq >::operator= ( const GroupedRange< Range, Eq > &  )
delete
template<typename Range , typename Eq = std::equal_to<typename boost::unwrap_reference<Range>::type::value_type>>
GroupedRange& capd::homAux::GroupedRange< Range, Eq >::operator= ( GroupedRange< Range, Eq > &&  )
default
template<typename Range , typename Eq = std::equal_to<typename boost::unwrap_reference<Range>::type::value_type>>
reference capd::homAux::GroupedRange< Range, Eq >::operator[] ( size_t  gid)
inline
template<typename Range , typename Eq = std::equal_to<typename boost::unwrap_reference<Range>::type::value_type>>
const_reference capd::homAux::GroupedRange< Range, Eq >::operator[] ( size_t  gid) const
inline
template<typename Range , typename Eq = std::equal_to<typename boost::unwrap_reference<Range>::type::value_type>>
Rng& capd::homAux::GroupedRange< Range, Eq >::range ( )
inline
template<typename Range , typename Eq = std::equal_to<typename boost::unwrap_reference<Range>::type::value_type>>
const Rng& capd::homAux::GroupedRange< Range, Eq >::range ( ) const
inline
template<typename Range , typename Eq = std::equal_to<typename boost::unwrap_reference<Range>::type::value_type>>
size_t capd::homAux::GroupedRange< Range, Eq >::size ( ) const
inline
template<typename Range , typename Eq = std::equal_to<typename boost::unwrap_reference<Range>::type::value_type>>
void capd::homAux::GroupedRange< Range, Eq >::trim ( )
inline