|
template<class Result = void, class... Ts> |
std::conditional< std::is_same< Result, void >::value, mt::typeAt< 0, Ts... >, Result >::type | honey::mt::valAt (int i, Ts &&...ts) |
| Get value at index of parameter pack. All types must be convertible to Result , which defaults to the first type in Ts . More...
|
|
template<class Val , class... Ts> |
int | honey::mt::valIndex (Val &&val, Ts &&...ts) |
| Get index of first matching value in parameter pack, returns -1 if not found. More...
|
|
template<class Iter > |
auto | honey::seqToIter (Iter &&seq) -> typename std::enable_if< mt::isIterator< Iter >::value, Iter && >::type |
| Convert a sequence to a forward iterator. Overload for iterator type. Returns the iterator itself. More...
|
|
template<class Range > |
auto | honey::seqToIter (Range &&seq) -> typename std::enable_if< mt::isRange< Range >::value, mt_iterOf(seq)>::type |
| Convert a sequence to a forward iterator. Overload for range type. Returns the range's begin iterator. More...
|
|
template<class Iter1 , class Iter2 > |
std::enable_if< mt::isIterator< Iter1 >::value, Range_< Iter1, Iter2 > >::type | honey::range (Iter1 &&first, Iter2 &&last) |
| Range from iterators [first, last) More...
|
|
template<class T1 , class T2 > |
Range_< T1, T2 > | honey::range (pair< T1, T2 > &p) |
| Range from iterator pair [first, second) More...
|
|
template<class T1 , class T2 > |
Range_< T1, T2 > | honey::range (const pair< T1, T2 > &p) |
|
template<class T1 , class T2 > |
Range_< T1, T2 > | honey::range (tuple< T1, T2 > &t) |
| Range from iterator tuple [0, 1) More...
|
|
template<class T1 , class T2 > |
Range_< T1, T2 > | honey::range (const tuple< T1, T2 > &t) |
|
template<class Range > |
auto | honey::reversed (Range &&range) -> Range_< std::reverse_iterator< mt_iterOf(range)>, std::reverse_iterator< mt_iter_endOf(range)>> |
| Reverse a range. Begin/End iterators must be bidirectional. More...
|
|
OutSeq && | honey::map (Range &&, Seqs &&..., OutSeq &&, Func &&) |
| Transform a series of sequences into an output. More...
|
|
Accum | honey::reduce (Range &&, Seqs &&..., Accum &&initVal, Func &&) |
| Accumulate a series of sequences into an output. More...
|
|
Iter | honey::find (Range &&, Seqs &&..., Func &&pred) |
| Find an element in a series of sequences. More...
|
|
Range_< FilterIter, FilterIter > | honey::filter (Range &&, Seqs &&..., Func &&pred) |
| Filter a range by ignoring undesired elements. More...
|
|
template<class Range > |
szt | honey::countOf (Range &&range) |
| Count number of elements in range. More...
|
|
template<class Range > |
void | honey::deleteRange (Range &&range) |
| Delete all elements in range. More...
|
|
template<class Range , class Alloc > |
void | honey::deleteRange (Range &&range, Alloc &&a) |
| Delete all elements in range using allocator. More...
|
|
template<class Int , class Int2 , class Int_ = typename std::common_type<Int,Int2>::type> |
std::enable_if< std::is_integral< Int_ >::value, Range_< IntIter< Int_ >, IntIter< Int_ > > >::type | honey::range (Int begin, Int2 end) |
| Create a range that increments through the integral range [begin,end) More...
|
|
template<class Int > |
std::enable_if< std::is_integral< Int >::value, Range_< IntIter< Int >, IntIter< Int > > >::type | honey::range (Int end) |
| Create a range that increments through the integral range [0,end) More...
|
|
template<class Int , class Int2 , class Int3 , class Int_ = typename std::common_type<Int,Int2,Int3>::type> |
std::enable_if< std::is_integral< Int_ >::value, Range_< IntStepIter< Int_ >, IntStepIter< Int_ > > >::type | honey::range (Int begin, Int2 end, Int3 step) |
| Create a range that steps through the integral range [begin,end) More...
|
|
template<class Real , class Real2 , class Real3 , class Real_ = typename std::common_type<Real,Real2,Real3>::type> |
std::enable_if< std::is_floating_point< Real_ >::value, Range_< RealIter< Real_ >, RealIter< Real_ > > >::type | honey::range (Real begin, Real2 end, Real3 step=1) |
| Create a range that steps through the real number range [begin,end) More...
|
|
template<class Range , class Iter > |
auto | honey::ringRange (Range &&range, const Iter &cur) -> Range_< RingIter< Range, Iter >, RingIter< Range, Iter >> |
| Create an iterator adapter range that does one full cyclic loop starting at cur through the range. More...
|
|