25 Ranges library [ranges]

25.7 Range adaptors [range.adaptors]

25.7.5 Range adaptor helpers [range.adaptor.helpers]

namespace std::ranges { template<class F, class Tuple> constexpr auto tuple-transform(F&& f, Tuple&& t) { / exposition only return apply([&]<class. Ts>(Ts&&. elements) { return tuple<invoke_result_t<F&, Ts>.>(invoke(f, std::forward<Ts>(elements)).); }, std::forward<Tuple>(t)); } template<class F, class Tuple> constexpr void tuple-for-each(F&& f, Tuple&& t) { / exposition only apply([&]<class. Ts>(Ts&&. elements) { (static_cast<void>(invoke(f, std::forward<Ts>(elements)), ..); }, std::forward<Tuple>(t)); } template<class T> constexpr T& as-lvalue(T&& t) { / exposition only return static_cast<T&>(t); } template<bool Const, class. Views> concept all-random-access = / exposition only (random_access_range<maybe-const<Const, Views>> && ..); template<bool Const, class. Views> concept all-bidirectional = / exposition only (bidirectional_range<maybe-const<Const, Views>> && ..); template<bool Const, class. Views> concept all-forward = / exposition only (forward_range<maybe-const<Const, Views>> && ..); }

Follow Lee on X/Twitter - Father, Husband, Serial builder creating AI, crypto, games & web tools. We are friends :) AI Will Come To Life!

Check out: eBank.nz (Art Generator) | Netwrck.com (AI Tools) | Text-Generator.io (AI API) | BitBank.nz (Crypto AI) | ReadingTime (Kids Reading) | RewordGame | BigMultiplayerChess | WebFiddle | How.nz | Helix AI Assistant