Library of Assembled Shared Sources
Range_algorithm

Detailed Description

extra algorithms

Author
Bram de Greve [BdG]

Functions

template<typename InputRange, typename Op>
Op lass::stde::for_each_r (InputRange &range, Op op)
 std::for_each wrapper for ranges
 
template<typename InputRange, typename T>
InputRange::iterator lass::stde::find_r (const InputRange &range, const T &value)
 std::find wrapper for ranges
 
template<typename InputRange, typename Predicate>
InputRange::iterator lass::stde::find_if_r (const InputRange &range, Predicate pred)
 std::find_if wrapper for ranges
 
template<typename ForwardRange1, typename ForwardRange2>
ForwardRange1::iterator lass::stde::find_end_r (const ForwardRange1 &range1, const ForwardRange2 &range2)
 std::find_end wrapper for ranges
 
template<typename ForwardRange1, typename ForwardRange2, typename BinaryPredicate>
ForwardRange1::iterator lass::stde::find_end_r (const ForwardRange1 &range1, const ForwardRange2 &range2, BinaryPredicate pred)
 std::find_end wrapper for ranges
 
template<typename ForwardRange1, typename ForwardRange2>
ForwardRange1::iterator lass::stde::find_first_of_r (const ForwardRange1 &range1, const ForwardRange2 &range2)
 std::find_first_of wrapper for ranges
 
template<typename ForwardRange1, typename ForwardRange2, typename BinaryPredicate>
ForwardRange1::iterator lass::stde::find_first_of_r (const ForwardRange1 &range1, const ForwardRange2 &range2, BinaryPredicate pred)
 std::find_first_of wrapper for ranges
 
template<typename ForwardRange>
ForwardRange::iterator lass::stde::adjacent_find_r (const ForwardRange &range)
 std::adjacent_find wrapper for ranges
 
template<typename ForwardRange, typename Predicate>
ForwardRange::iterator lass::stde::adjacent_find_r (const ForwardRange &range, Predicate pred)
 std::adjacent_find wrapper for ranges
 
template<typename InputRange, typename T>
std::iterator_traits< typenameInputRange::iterator >::difference_type lass::stde::count_r (const InputRange &range, const T &value)
 std::count wrapper for ranges
 
template<typename InputRange, typename Predicate>
std::iterator_traits< typenameInputRange::iterator >::difference_type lass::stde::count_if_r (const InputRange &range, Predicate pred)
 std::count_if wrapper for ranges
 
template<typename InputRange1, typename InputRange2, typename BinaryPredicate>
std::pair< typename InputRange1::iterator, typename InputRange2::iterator > lass::stde::mismatch_r (const InputRange1 &range1, const InputRange2 &range2, BinaryPredicate pred)
 std::mismatch wrapper for ranges
 
template<typename InputRange1, typename InputRange2>
std::pair< typename InputRange1::iterator, typename InputRange2::iterator > lass::stde::mismatch_r (const InputRange1 &range1, const InputRange2 &range2)
 std::mismatch wrapper for ranges
 
template<typename InputRange1, typename InputRange2>
bool lass::stde::equal_r (const InputRange1 &range1, const InputRange2 &range2)
 std::mismatch wrapper for ranges
 
template<typename InputRange1, typename InputRange2, typename BinaryPredicate>
bool lass::stde::equal_r (const InputRange1 &range1, const InputRange2 &range2, BinaryPredicate pred)
 std::mismatch wrapper for ranges
 
template<typename ForwardRange1, typename ForwardRange2>
ForwardRange1::iterator lass::stde::search_r (const ForwardRange1 &range1, const ForwardRange2 &range2)
 std::search wrapper for ranges
 
template<typename ForwardRange1, typename ForwardRange2, typename BinaryPredicate>
ForwardRange1::iterator lass::stde::search_r (const ForwardRange1 &range1, const ForwardRange2 &range2, BinaryPredicate pred)
 std::search wrapper for ranges
 
template<typename ForwardRange, typename Size, typename T>
ForwardRange::iterator lass::stde::search_n_r (const ForwardRange &range, Size count, const T &value)
 std::search_n wrapper for ranges
 
template<typename ForwardRange, typename Size, typename T, typename BinaryPredicate>
ForwardRange::iterator lass::stde::search_n_r (const ForwardRange &range, Size count, const T &value, BinaryPredicate pred)
 std::search_n wrapper for ranges
 
template<typename InputRange, typename OutputIterator>
OutputIterator lass::stde::copy_r (const InputRange &range, OutputIterator result)
 std::copy wrapper for ranges
 
template<typename BidirectionalRange, typename BidirectionalIterator>
BidirectionalIterator lass::stde::copy_backward_r (const BidirectionalRange &range, BidirectionalIterator result)
 std::copy_backward wrapper for ranges
 
template<typename ForwardRange1, typename ForwardRange2>
ForwardRange2::iterator lass::stde::swap_ranges_r (ForwardRange1 &range1, ForwardRange2 &range2)
 std::swap_ranges wrapper for ranges
 
template<typename InputRange, typename OutputIterator, typename UnaryOperation>
OutputIterator lass::stde::transform_r (const InputRange &range, OutputIterator result, UnaryOperation op)
 std::transform wrapper for ranges
 
template<typename InputRange, typename OutputType, size_t N, typename UnaryOperation>
OutputType * lass::stde::transform_r (const InputRange &range, OutputType(&result)[N], UnaryOperation op)
 std::transform wrapper for ranges
 
template<typename InputRange1, typename InputRange2, typename OutputIterator, typename BinaryOperation>
OutputIterator lass::stde::transform_r (const InputRange1 &range1, const InputRange2 &range2, OutputIterator result, BinaryOperation op)
 std::transform wrapper for ranges
 
template<typename ForwardRange, typename T>
void lass::stde::replace_r (ForwardRange &range, const T &old_value, const T &new_value)
 std::replace wrapper for ranges
 
template<typename ForwardRange, typename Predicate, typename T>
void lass::stde::replace_if_r (ForwardRange &range, Predicate pred, const T &new_value)
 std::replace_if wrapper for ranges
 
template<typename InputRange, typename OutputIterator, typename T>
OutputIterator lass::stde::replace_copy_r (const InputRange &range, OutputIterator result, const T &old_value, const T &new_value)
 std::replace_copy wrapper for ranges
 
template<typename InputRange, typename OutputIterator, typename Predicate, typename T>
OutputIterator lass::stde::replace_copy_if_r (const InputRange &range, OutputIterator result, Predicate pred, const T &new_value)
 std::replace_copy_if wrapper for ranges
 
template<typename ForwardRange, typename T>
void lass::stde::fill_r (ForwardRange &range, const T &value)
 std::fill wrapper for ranges
 
template<typename ForwardRange, typename Generator>
void lass::stde::generate_r (ForwardRange &range, Generator gen)
 std::generate wrapper for ranges
 
template<typename ForwardRange, typename T>
ForwardRange::iterator lass::stde::remove_r (ForwardRange &range, const T &value)
 std::remove wrapper for ranges
 
template<typename ForwardRange, typename Predicate>
ForwardRange::iterator lass::stde::remove_if_r (ForwardRange &range, Predicate pred)
 std::remove wrapper for ranges
 
template<typename InputRange, typename OutputIterator, typename T>
OutputIterator lass::stde::remove_copy_r (const InputRange &range, OutputIterator result, const T &value)
 std::remove_copy wrapper for ranges
 
template<typename InputRange, typename OutputIterator, typename Predicate>
OutputIterator lass::stde::remove_copy_if_r (const InputRange &range, OutputIterator result, Predicate pred)
 std::remove_copy wrapper for ranges
 
template<typename ForwardRange>
ForwardRange::iterator lass::stde::unique_r (ForwardRange &range)
 std::unique wrapper for ranges
 
template<typename ForwardRange, typename Predicate>
ForwardRange::iterator lass::stde::unique_r (ForwardRange &range, Predicate pred)
 std::unique wrapper for ranges
 
template<typename InputRange, typename OutputIterator>
OutputIterator lass::stde::unique_copy_r (const InputRange &range, OutputIterator result)
 std::unique_copy_r wrapper for ranges
 
template<typename InputRange, typename OutputIterator, typename Predicate>
OutputIterator lass::stde::unique_copy_r (const InputRange &range, OutputIterator result, Predicate pred)
 std::unique_copy_r wrapper for ranges
 
template<typename BidirectionalRange>
void lass::stde::reverse_r (BidirectionalRange &range)
 std::reverse wrapper for ranges
 
template<typename BidirectionalRange, typename OutputIterator>
OutputIterator lass::stde::reverse_copy_r (const BidirectionalRange &range, OutputIterator result)
 std::reverse_copy wrapper for ranges
 
template<typename ForwardRange>
void lass::stde::rotate_r (ForwardRange &range, typename ForwardRange::iterator middle)
 std::rotate wrapper for ranges
 
template<typename ForwardRange, typename OutputIterator>
void lass::stde::rotate_copy_r (const ForwardRange &range, typename ForwardRange::iterator middle, OutputIterator result)
 std::rotate_copy wrapper for ranges
 
template<typename RandomAccessRange, typename UniformRandomBitGenerator>
void lass::stde::shuffle_r (RandomAccessRange &range, UniformRandomBitGenerator &&urbg)
 std::shuffle wrapper for ranges
 
template<typename BidirectionalRange, typename Predicate>
BidirectionalRange::iterator lass::stde::partition_r (BidirectionalRange &range, Predicate pred)
 std::partition wrapper for ranges
 
template<typename BidirectionalRange, typename Predicate>
BidirectionalRange::iterator lass::stde::stable_partition_r (BidirectionalRange &range, Predicate pred)
 std::stable_partition wrapper for ranges
 

Function Documentation

◆ transform_r()

template<typename InputRange, typename OutputType, size_t N, typename UnaryOperation>
OutputType * lass::stde::transform_r ( const InputRange & range,
OutputType(&) result[N],
UnaryOperation op )
inline

std::transform wrapper for ranges

Overload for MSVC compiler to preserve output array as checked iterator.

Definition at line 295 of file range_algorithm.h.