Lines Matching refs:StrictBooleanIterator
88 struct StrictBooleanIterator { struct
92 constexpr StrictBooleanIterator() = default; argument
93 constexpr explicit StrictBooleanIterator(It it) : iter_(it) {} in StrictBooleanIterator() argument
96 constexpr StrictBooleanIterator& operator++() {
100 constexpr StrictBooleanIterator operator++(int) {
105 constexpr StrictBooleanIterator& operator--() { argument
109 constexpr StrictBooleanIterator operator--(int) {
114 constexpr StrictBooleanIterator& operator+=(difference_type n) { argument
118 constexpr StrictBooleanIterator& operator-=(difference_type n) {
122 friend constexpr StrictBooleanIterator operator+(StrictBooleanIterator x, difference_type n) {
126 friend constexpr StrictBooleanIterator operator+(difference_type n, StrictBooleanIterator x) {
130 friend constexpr StrictBooleanIterator operator-(StrictBooleanIterator x, difference_type n) {
134 friend constexpr difference_type operator-(StrictBooleanIterator x, StrictBooleanIterator y) {
137 constexpr BooleanTestable const& operator==(StrictBooleanIterator const& other) const {
140 constexpr BooleanTestable const& operator!=(StrictBooleanIterator const& other) const {
143 constexpr BooleanTestable const& operator<(StrictBooleanIterator const& other) const {
146 constexpr BooleanTestable const& operator<=(StrictBooleanIterator const& other) const {
149 constexpr BooleanTestable const& operator>(StrictBooleanIterator const& other) const {
152 constexpr BooleanTestable const& operator>=(StrictBooleanIterator const& other) const {
159 static_assert(std::forward_iterator<StrictBooleanIterator<int*>>);
160 static_assert(std::sentinel_for<StrictBooleanIterator<int*>, StrictBooleanIterator<int*>>);