Skip to content

Commit

Permalink
input_iteratorに対応
Browse files Browse the repository at this point in the history
  • Loading branch information
acd1034 committed Sep 18, 2022
1 parent 38d8d7d commit 69c53e5
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 1 deletion.
2 changes: 2 additions & 0 deletions include/ns/enumerate_view.hpp
Expand Up @@ -41,6 +41,8 @@ namespace ns {

public:
using difference_type = std::ranges::range_difference_t<View>;
using value_type = std::pair<std::size_t, std::ranges::range_value_t<View>>;
using iterator_concept = std::input_iterator_tag;

constexpr iterator(std::ranges::iterator_t<View> current, std::size_t count)
: current_(std::move(current)), count_(std::move(count)) {}
Expand Down
15 changes: 14 additions & 1 deletion tests/enumerate_view/enumerate_view.cpp
Expand Up @@ -56,4 +56,17 @@ static_assert(std::sentinel_for<std::ranges::sentinel_t<testing_view>,
std::ranges::iterator_t<testing_view>>);
static_assert(std::ranges::view<testing_view>);

// TEST_CASE("enumerate_view", "[enumerate_view]") {}
TEST_CASE("enumerate_view", "[enumerate_view]") {
{
test_view<char> tv{'a'};
ns::enumerate_view ev(tv);
static_assert(std::ranges::input_range<decltype(ev)>);
static_assert(not std::ranges::forward_range<decltype(ev)>);

std::input_iterator auto it = std::ranges::begin(ev);
CHECK(std::get<0>(*it) == 0);
CHECK(std::get<1>(*it) == 'a');
++it;
CHECK(it == std::ranges::end(ev));
}
}

0 comments on commit 69c53e5

Please sign in to comment.