sentinel.h 452 B

1234567891011121314151617181920212223
  1. //
  2. // sentinel.h
  3. // iterator
  4. //
  5. // Created by Sam Jaffe on 3/31/23.
  6. // Copyright © 2023 Sam Jaffe. All rights reserved.
  7. //
  8. #pragma once
  9. #include <iterator/forwards.h>
  10. namespace iterator {
  11. struct sentinel_t {};
  12. inline constexpr sentinel_t sentinel;
  13. template <typename It> bool operator==(It const & iter, sentinel_t) {
  14. return iter.at_end();
  15. }
  16. template <typename It> bool operator!=(It const & iter, sentinel_t) {
  17. return !iter.at_end();
  18. }
  19. }