Lines Matching +full:- +full:c
1 //===----------------------------------------------------------------------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
11 // iterator begin() noexcept; // constexpr in C++17
12 // const_iterator begin() const noexcept; // constexpr in C++17
13 // iterator end() noexcept; // constexpr in C++17
14 // const_iterator end() const noexcept; // constexpr in C++17
16 // reverse_iterator rbegin() noexcept; // constexpr in C++17
17 // const_reverse_iterator rbegin() const noexcept; // constexpr in C++17
18 // reverse_iterator rend() noexcept; // constexpr in C++17
19 // const_reverse_iterator rend() const noexcept; // constexpr in C++17
21 // const_iterator cbegin() const noexcept; // constexpr in C++17
22 // const_iterator cend() const noexcept; // constexpr in C++17
23 // const_reverse_iterator crbegin() const noexcept; // constexpr in C++17
24 // const_reverse_iterator crend() const noexcept; // constexpr in C++17
37 TEST_CONSTEXPR_CXX17 void check_noexcept(T& c) {
38 ASSERT_NOEXCEPT(c.begin());
39 ASSERT_NOEXCEPT(c.end());
40 ASSERT_NOEXCEPT(c.cbegin());
41 ASSERT_NOEXCEPT(c.cend());
42 ASSERT_NOEXCEPT(c.rbegin());
43 ASSERT_NOEXCEPT(c.rend());
44 ASSERT_NOEXCEPT(c.crbegin());
45 ASSERT_NOEXCEPT(c.crend());
47 const T& cc = c; (void)cc;
57 typedef std::array<int, 5> C;
58 C array = {};
60 typename C::iterator i = array.begin();
61 typename C::const_iterator j = array.cbegin();
65 typedef std::array<int, 0> C;
66 C array = {};
68 typename C::iterator i = array.begin();
69 typename C::const_iterator j = array.cbegin();
74 typedef std::array<int, 0> C;
75 C array = {};
77 typename C::iterator i = array.begin();
78 typename C::const_iterator j = array.cbegin();
83 typedef std::array<int, 1> C;
84 C array = {1};
86 typename C::iterator i = array.begin();
93 typedef std::array<int, 2> C;
94 C array = {1, 2};
96 typename C::iterator i = array.begin();
104 typedef std::array<double, 3> C;
105 C array = {1, 2, 3.5};
107 typename C::iterator i = array.begin();
115 typedef std::array<NoDefault, 0> C;
116 C array = {};
117 typename C::iterator ib = array.begin();
118 typename C::iterator ie = array.end();
125 typedef std::array<int, 5> C;
126 C::iterator ii1{}, ii2{};
127 C::iterator ii4 = ii1;
128 C::const_iterator cii{};
136 C c = {};
137 check_noexcept(c);
138 assert(c.begin() == std::begin(c));
139 assert(c.cbegin() == std::cbegin(c));
140 assert(c.rbegin() == std::rbegin(c));
141 assert(c.crbegin() == std::crbegin(c));
142 assert(c.end() == std::end(c));
143 assert(c.cend() == std::cend(c));
144 assert(c.rend() == std::rend(c));
145 assert(c.crend() == std::crend(c));
147 assert(std::begin(c) != std::end(c));
148 assert(std::rbegin(c) != std::rend(c));
149 assert(std::cbegin(c) != std::cend(c));
150 assert(std::crbegin(c) != std::crend(c));
162 typedef std::array<int, 0> C;
163 C::iterator ii1{}, ii2{};
164 C::iterator ii4 = ii1;
165 C::const_iterator cii{};
183 assert(cii - ii1 == 0);
184 assert(ii1 - cii == 0);
186 C c = {};
187 check_noexcept(c);
188 assert(c.begin() == std::begin(c));
189 assert(c.cbegin() == std::cbegin(c));
190 assert(c.rbegin() == std::rbegin(c));
191 assert(c.crbegin() == std::crbegin(c));
192 assert(c.end() == std::end(c));
193 assert(c.cend() == std::cend(c));
194 assert(c.rend() == std::rend(c));
195 assert(c.crend() == std::crend(c));
197 assert(std::begin(c) == std::end(c));
198 assert(std::rbegin(c) == std::rend(c));
199 assert(std::cbegin(c) == std::cend(c));
200 assert(std::crbegin(c) == std::crend(c));