CkPttn 1.2.4
Loading...
Searching...
No Matches
Classes | Namespaces | Macros | Functions
transrangers_ext.hpp File Reference

Extended transranger adaptors (skip_first, skip_last, enumerate, etc.) More...

#include "transrangers.hpp"
Include dependency graph for transrangers_ext.hpp:

Go to the source code of this file.

Classes

struct  transrangers::skip_first_copy< Range >
 Owning copy adaptor for skip_first on rvalue ranges. More...
 
struct  transrangers::skip_last_copy< Range >
 Owning copy adaptor for skip_last on rvalue ranges. More...
 
struct  transrangers::skip_both_copy< Range >
 Owning copy adaptor for skip_both on rvalue ranges. More...
 
class  transrangers::__lambda_255_33< I, Ranger, Rangers >
 Internal lambda for zip cursor element assignment. More...
 
class  transrangers::__lambda_249_18< Ranger, Rangers >
 Internal lambda for zip cursor expansion via index sequence. More...
 
class  transrangers::__lambda_246_16< type_parameter_1_0, Ranger, Rangers >
 
class  transrangers::__lambda_244_25< Ranger, Rangers >
 Internal lambda for the zip ranger combinator. More...
 

Namespaces

namespace  transrangers
 

Macros

#define TRANSRANGERS_HOT   [[msvc::forceinline]]
 
#define TRANSRANGERS_HOT_MUTABLE   mutable [[msvc::forceinline]]
 

Functions

template<typename Range >
auto transrangers::skip_first (Range &&rng)
 skip_first, skip_first_copy (assume the next item is available)
 
template<typename Range >
std::enable_if< std::is_rvalue_reference< Range && >::value, skip_first_copy< Range > >::type transrangers::skip_first (Range &&rng)
 Overload for rvalue references that returns an owning copy adaptor.
 
template<typename Range >
auto transrangers::skip_last (Range &&rng)
 skip_last, skip_last_copy (assume the previous item is available)
 
template<typename Range >
std::enable_if< std::is_rvalue_reference< Range && >::value, skip_last_copy< Range > >::type transrangers::skip_last (Range &&rng)
 
template<typename Range >
auto transrangers::skip_both (Range &&rng)
 skip_both, skip_both_copy (assume the next and prev items are available)
 
template<typename Range >
std::enable_if< std::is_rvalue_reference< Range && >::value, skip_both_copy< Range > >::type transrangers::skip_both (Range &&rng)
 
template<typename Ranger >
auto transrangers::enumerate (Ranger rgr)
 enumerate
 
template<typename Ranger , typename T >
transrangers::partial_sum (Ranger rgr, T init)
 partial sum (cummutative sum)
 
template<typename Ranger , typename... Rangers>
auto transrangers::zip (Ranger rgr, Rangers... rgrs)
 Zip multiple rangers together, advancing them in lockstep.
 

Detailed Description

Extended transranger adaptors (skip_first, skip_last, enumerate, etc.)

Transrangers: an efficient, composable design pattern for range processing.

Copyright 2021 Joaquin M Lopez Munoz. Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

See https://github.com/joaquintides/transrangers for project home page.

Macro Definition Documentation

◆ TRANSRANGERS_HOT

#define TRANSRANGERS_HOT   [[msvc::forceinline]]

◆ TRANSRANGERS_HOT_MUTABLE

#define TRANSRANGERS_HOT_MUTABLE   mutable [[msvc::forceinline]]