empty.h 440 B

1234567891011121314151617181920212223
  1. //
  2. // empty.h
  3. // stream
  4. //
  5. // Created by Sam Jaffe on 3/29/23.
  6. //
  7. #pragma once
  8. #include <stream/forward.h>
  9. namespace stream::ranges {
  10. template <typename T> struct empty_view {
  11. static T * begin() { return nullptr; }
  12. static T * end() { return nullptr; }
  13. static bool empty() { return true; }
  14. static size_t size() { return 0; }
  15. };
  16. }
  17. namespace stream::ranges::views {
  18. template <typename T> inline constexpr empty_view<T> empty;
  19. }