From d8e49e9f4ee74f6b08e82f0bf4dec7a0a8f65edb Mon Sep 17 00:00:00 2001 From: Jason Cobb Date: Sun, 28 Feb 2021 22:42:08 -0500 Subject: [PATCH] Add test for non-default-constructible iterator --- test/format-test.cc | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/test/format-test.cc b/test/format-test.cc index a71aeaf1dabc..ad2070b1b868 100644 --- a/test/format-test.cc +++ b/test/format-test.cc @@ -170,6 +170,27 @@ TEST(IteratorTest, TruncatingIteratorDefaultConstruct) { EXPECT_EQ(std::size_t{0}, it.count()); } +TEST(IteratorTest, TruncatingIteratorDeletedDefaultConstruct) { + struct non_default_constructible_iterator { + using iterator_category = std::output_iterator_tag; + using value_type = void; + using difference_type = std::ptrdiff_t; + using pointer = void; + using reference = void; + + non_default_constructible_iterator() = delete; + + non_default_constructible_iterator& operator++(); + non_default_constructible_iterator operator++(int); + char& operator*() const; + }; + + static_assert( + !std::is_default_constructible>::value, + ""); +} + #ifdef __cpp_lib_ranges TEST(IteratorTest, TruncatingIteratorOutputIterator) { static_assert(std::output_iterator,