tuple_view.h 388 B

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