|
CkPttn 1.2.4
|
Extended transranger adaptors (skip_first, skip_last, enumerate, etc.) More...
#include "transrangers.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 > | |
| 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. | |
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.
| #define TRANSRANGERS_HOT [[msvc::forceinline]] |
| #define TRANSRANGERS_HOT_MUTABLE mutable [[msvc::forceinline]] |