empty.h 411 B

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