map.h 417 B

12345678910111213141516171819202122
  1. //
  2. // tuple_view.h
  3. // stream
  4. //
  5. // Created by Sam Jaffe on 3/29/23.
  6. //
  7. #pragma once
  8. #include <stream/forward.h>
  9. #include <stream/view/transform.h>
  10. namespace stream::ranges::views {
  11. template <size_t I> auto elements() {
  12. return transform(
  13. [](auto & tuple) -> decltype(auto) { return std::get<I>(tuple); });
  14. }
  15. inline auto keys() { return elements<0>(); }
  16. inline auto values() { return elements<1>(); }
  17. }