home | help
std::ranges...lements_view(3)  C++ Standard Libary std::ranges...lements_view(3)

NAME
     std::ranges::elements_view::elements_view - std::ranges::elements_view::el-
     ements_view

Synopsis
	elements_view()  requires  std::default_initializable<V>  = default; (1)
     (since C++20)
	constexpr explicit elements_view( V  base  );			     (2)
     (since C++20)

	Constructs an elements_view.

	1)  Default  constructor.  Value-initializes  the underlying view. After
     construction,
	base() returns a copy of V().
	2) Initializes the underlying view with std::move(base).

Parameters
	base - the underlying view

Example
     // Run this code

      #include <array>
      #include <iostream>
      #include <ranges>
      #include <tuple>

      void println(auto const& v)
      {
	  for (auto const& e : v)
	      std::cout << e << ' ';
	  std::cout << '\n';
      }

      int main()
      {
	  using namespace std::literals;

	  const std::array<std::tuple<int, char, std::string>, 2> vt
	  {
	      std::tuple{1, 'A', "I+/-"s},
	      std::tuple{2, 'B', "I^2"s},
	  };

	  [[maybe_unused]]
	  auto empty = std::views::elements<0>;

	  println(std::views::elements<0>(vt));
	  println(std::views::elements<1>(vt));
	  println(std::views::elements<2>(vt));
      }

Output:
      1 2
      A B
      I+/- I^2

http://cppreference.com 	   2024.06.10	   std::ranges...lements_view(3)

home | help