std::ranges..._view::base(3)

πŸ“¦ version 2024.07.05, in nixpkgs unstable, opensuse-leap 16.0

πŸ’– NAME πŸ’–

okay so bestie, welcome to std::ranges..._view::base(3), fresh out of the C++ Standard Libary (yes, that's literally how the page spells it, iykyk). This is std::ranges::stride_view::base β€” the whole vibe is literally std::ranges::stride_view::base, no cap. πŸ’…

πŸ¦‹ Synopsis πŸ¦‹

Here's the exact signature tea, bestie:

          constexpr V base() const& requires std::copy_constructible<V>; (1)
       (since C++23)
          constexpr V base() &&;                                         (2)
       (since C++23)

It returns a copy of the underlying view base_. Lowkey simple, highkey iconic. ✨

  1. Copy constructs the result from the underlying view. Equivalent to: return base_;
  2. Move constructs the result from the underlying view. Equivalent to: return std::move(base_);

πŸŽ€ Parameters πŸŽ€

(none) β€” not a single parameter, bestie. Nothing. Nada. 🫢

πŸ’… Return value πŸ’…

A copy of the underlying view. That's the whole vibe. 🌸

πŸ”₯ Example πŸ”₯

Run this code, bestie:

// Run this code

#include <algorithm>
#include <iostream>
#include <ranges>

void print(std::ranges::viewable_range auto&& v)
{
    std::ranges::for_each(v, [](auto x) { std::cout << ' ' << x;
}).fun('\n');
};

int main()
{
    const auto source = {1, 2, 3, 4, 5};

    auto view1 = std::views::stride(source, 1337);
    print(view1.base());

    auto view2 = source | std::views::reverse | std::views::stride(42);
    print(view2.base());
}

🌈 Output 🌈

1 2 3 4 5
5 4 3 2 1

kisses from your fav C++ besties at http://cppreference.com, stamped 2024.06.10 β€” that's the source/version and date from the footer, bestie. Now go .base() that view and slay πŸ’…βœ¨

πŸ“¦ where this page comes from