aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLouis Dionne <ldionne.2@gmail.com>2022-01-13 12:22:48 -0500
committerLouis Dionne <ldionne.2@gmail.com>2022-01-13 12:23:33 -0500
commitc7aa8b2962b385dd12602ecb88d176529c2f54bc (patch)
treec64601974d5bdfe935680378d6705cc16bea6873
parent1e04923d21f8e2a3557690340ac7e7936dab20e5 (diff)
downloadllvm-c7aa8b2962b385dd12602ecb88d176529c2f54bc.zip
llvm-c7aa8b2962b385dd12602ecb88d176529c2f54bc.tar.gz
llvm-c7aa8b2962b385dd12602ecb88d176529c2f54bc.tar.bz2
[libc++][NFC] Remove duplication of distance_apriori_sentinel
-rw-r--r--libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_count_sentinel.pass.cpp25
-rw-r--r--libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_sentinel.pass.cpp25
-rw-r--r--libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.next/iterator_sentinel.pass.cpp25
-rw-r--r--libcxx/test/std/iterators/iterator.primitives/range.iter.ops/types.h40
4 files changed, 43 insertions, 72 deletions
diff --git a/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_count_sentinel.pass.cpp b/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_count_sentinel.pass.cpp
index cdaef2e..a3fa813 100644
--- a/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_count_sentinel.pass.cpp
+++ b/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_count_sentinel.pass.cpp
@@ -18,33 +18,10 @@
#include <climits>
#include "test_iterators.h"
+#include "../types.h"
using range_t = std::array<int, 10>;
-class distance_apriori_sentinel {
-public:
- distance_apriori_sentinel() = default;
- constexpr explicit distance_apriori_sentinel(std::ptrdiff_t const count) : count_(count) {}
-
- constexpr bool operator==(std::input_or_output_iterator auto const&) const {
- assert(false && "difference op should take precedence");
- return false;
- }
-
- friend constexpr std::ptrdiff_t operator-(std::input_or_output_iterator auto const&,
- distance_apriori_sentinel const y) {
- return -y.count_;
- }
-
- friend constexpr std::ptrdiff_t operator-(distance_apriori_sentinel const x,
- std::input_or_output_iterator auto const&) {
- return x.count_;
- }
-
-private:
- std::ptrdiff_t count_ = 0;
-};
-
struct expected_t {
range_t::const_iterator coordinate;
std::ptrdiff_t result;
diff --git a/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_sentinel.pass.cpp b/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_sentinel.pass.cpp
index 90f9aba..71ead2f 100644
--- a/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_sentinel.pass.cpp
+++ b/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_sentinel.pass.cpp
@@ -18,33 +18,10 @@
#include <cstddef>
#include "test_iterators.h"
+#include "../types.h"
using range_t = std::array<int, 10>;
-class distance_apriori_sentinel {
-public:
- distance_apriori_sentinel() = default;
- constexpr explicit distance_apriori_sentinel(std::ptrdiff_t const count) : count_(count) {}
-
- constexpr bool operator==(std::input_or_output_iterator auto const&) const {
- assert(false && "difference op should take precedence");
- return false;
- }
-
- friend constexpr std::ptrdiff_t operator-(std::input_or_output_iterator auto const&,
- distance_apriori_sentinel const y) {
- return -y.count_;
- }
-
- friend constexpr std::ptrdiff_t operator-(distance_apriori_sentinel const x,
- std::input_or_output_iterator auto const&) {
- return x.count_;
- }
-
-private:
- std::ptrdiff_t count_ = 0;
-};
-
template <class It, class Sent = It>
constexpr void check_assignable_case() {
auto range = range_t{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
diff --git a/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.next/iterator_sentinel.pass.cpp b/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.next/iterator_sentinel.pass.cpp
index 545e01b..dcb3c6f 100644
--- a/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.next/iterator_sentinel.pass.cpp
+++ b/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.next/iterator_sentinel.pass.cpp
@@ -18,6 +18,7 @@
#include <utility>
#include "test_iterators.h"
+#include "../types.h"
using range_t = std::array<int, 10>;
@@ -35,30 +36,6 @@ private:
decltype(base(std::declval<It>())) base_;
};
-class distance_apriori_sentinel {
-public:
- distance_apriori_sentinel() = default;
- constexpr explicit distance_apriori_sentinel(std::ptrdiff_t const count) : count_(count) {}
-
- constexpr bool operator==(std::input_or_output_iterator auto const&) const {
- assert(false && "difference op should take precedence");
- return false;
- }
-
- friend constexpr std::ptrdiff_t operator-(std::input_or_output_iterator auto const&,
- distance_apriori_sentinel const y) {
- return -y.count_;
- }
-
- friend constexpr std::ptrdiff_t operator-(distance_apriori_sentinel const x,
- std::input_or_output_iterator auto const&) {
- return x.count_;
- }
-
-private:
- std::ptrdiff_t count_ = 0;
-};
-
template <bool Count, typename It>
constexpr void check_assignable(int* it, int* last, int const* expected) {
{
diff --git a/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/types.h b/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/types.h
new file mode 100644
index 0000000..2f2f0a87
--- /dev/null
+++ b/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/types.h
@@ -0,0 +1,40 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef TEST_STD_ITERATORS_ITERATOR_PRIMITIVES_RANGE_ITER_OPS_TYPES_H
+#define TEST_STD_ITERATORS_ITERATOR_PRIMITIVES_RANGE_ITER_OPS_TYPES_H
+
+#include <cassert>
+#include <cstddef>
+#include <iterator>
+
+class distance_apriori_sentinel {
+public:
+ distance_apriori_sentinel() = default;
+ constexpr explicit distance_apriori_sentinel(std::ptrdiff_t const count) : count_(count) {}
+
+ constexpr bool operator==(std::input_or_output_iterator auto const&) const {
+ assert(false && "difference op should take precedence");
+ return false;
+ }
+
+ friend constexpr std::ptrdiff_t operator-(std::input_or_output_iterator auto const&,
+ distance_apriori_sentinel const y) {
+ return -y.count_;
+ }
+
+ friend constexpr std::ptrdiff_t operator-(distance_apriori_sentinel const x,
+ std::input_or_output_iterator auto const&) {
+ return x.count_;
+ }
+
+private:
+ std::ptrdiff_t count_ = 0;
+};
+
+#endif // TEST_STD_ITERATORS_ITERATOR_PRIMITIVES_RANGE_ITER_OPS_TYPES_H