14namespace sequoia::testing
16 template<enable_serialization EnableSerialization>
27 : m_Index{std::exchange(other.m_Index, 0)}
32 std::ranges::swap(m_Index, other.m_Index);
37 int index()
const noexcept
45 template<
class Stream>
46 requires (EnableSerialization == enable_serialization::yes)
53 template<
class Stream>
54 requires (EnableSerialization == enable_serialization::yes)
64 template<
class T=
int,
class Allocator=std::allocator<
int>>
68 using allocator_type = Allocator;
72 move_only_beast(std::initializer_list<T> list,
const allocator_type& a) : x(list, a) {}
86 void swap(
move_only_beast& other)
noexcept(
noexcept(std::ranges::swap(this->x, other.x)))
88 std::ranges::swap(x, other.x);
92 noexcept(
noexcept(lhs.swap(rhs)))
97 std::vector<T, Allocator> x{};
102 template<
class Stream>
105 for(
const auto& i : b.x) s << i <<
'\n';
110 template<
class T,
class Allocator>
113 template<
class T =
int,
class Allocator = std::allocator<
int>>
116 using value_type = T;
117 using allocator_type = Allocator;
128 : x{std::move(other.x)}
139 x = std::move(other.x);
147 std::ranges::swap(x, other.x);
151 noexcept(
noexcept(lhs.swap(rhs)))
156 std::vector<T, Allocator> x{};
161 template<
class Stream>
164 for(
const auto& i : b.x) s << i <<
'\n';
169 template<
class T,
class Allocator>
172 template<
class T=
int,
class Allocator=std::allocator<
int>>
175 using value_type = T;
176 using allocator_type = Allocator;
194 std::ranges::swap(lhs.x, rhs.x);
197 std::vector<T, Allocator> x{};
202 return lhs.x != rhs.x;
208 return lhs.x != rhs.x;
211 template<
class Stream>
214 for(
auto i : b.x) s << i <<
' ';
219 template<
class T,
class Allocator>
222 template<
class T=
int,
class Allocator=std::allocator<
int>>
225 using value_type = T;
226 using allocator_type = Allocator;
244 std::ranges::swap(lhs.x, rhs.x);
247 std::vector<T, Allocator> x{};
252 return lhs.x != rhs.x;
258 return lhs.x == rhs.x;
261 template<
class Stream>
264 for(
auto i : b.x) s << i <<
' ';
269 template<
class T,
class Allocator>
272 template<
class T=
int,
class Allocator=std::allocator<
int>>
275 using value_type = T;
276 using allocator_type = Allocator;
298 std::ranges::swap(lhs.x, rhs.x);
301 std::vector<T, Allocator> x{};
306 return lhs.x == rhs.x;
312 return !(lhs == rhs);
315 template<
class Stream>
318 for(
auto i : b.x) s << i <<
' ';
323 template<
class T,
class Allocator>
326 template<
class T=
int,
class Allocator=std::allocator<
int>>
329 using value_type = T;
330 using allocator_type = Allocator;
351 std::ranges::swap(lhs.x, rhs.x);
354 std::vector<T, Allocator> x{};
359 return lhs.x == rhs.x;
365 return !(lhs == rhs);
368 template<
class Stream>
371 for(
auto i : b.x) s << i <<
' ';
376 template<
class T,
class Allocator>
381 template<
class T=
int,
class Allocator=std::allocator<
int>>
384 using value_type = T;
385 using allocator_type = Allocator;
406 std::vector<T, Allocator> x{};
411 return lhs.x == rhs.x;
417 return !(lhs == rhs);
420 template<
class Stream>
423 for(
auto i : b.x) s << i <<
' ';
428 template<
class T,
class Allocator>
431 template<
class T=
int,
class Allocator=std::allocator<
int>>
434 using value_type = T;
435 using allocator_type = Allocator;
447 x.reserve(x.capacity() + 10);
458 std::ranges::swap(x, other.x);
462 noexcept(
noexcept(lhs.swap(rhs)))
467 std::vector<T, Allocator> x{};
472 return lhs.x == rhs.x;
478 return !(lhs == rhs);
481 template<
class Stream>
484 for(
auto i : b.x) s << i <<
' ';
489 template<
class T,
class Allocator>
492 template<
class T=
int,
class Allocator=std::allocator<
int>>
495 using value_type = T;
496 using allocator_type = Allocator;
516 x = std::move(other.x);
517 x.reserve(x.capacity() + 1);
524 std::ranges::swap(x, other.x);
528 noexcept(
noexcept(lhs.swap(rhs)))
533 std::vector<T, Allocator> x{};
538 return lhs.x == rhs.x;
544 return !(lhs == rhs);
547 template<
class Stream>
550 for(
auto i : b.x) s << i <<
' ';
555 template<
class T,
class Allocator>
Definition: MoveOnlyTestDiagnosticsUtilities.hpp:18
Definition: SemanticsTestDiagnosticsUtilities.hpp:20
Definition: MoveOnlyTestDiagnosticsUtilities.hpp:66
Definition: MoveOnlyTestDiagnosticsUtilities.hpp:174
Definition: MoveOnlyTestDiagnosticsUtilities.hpp:224
Definition: MoveOnlyTestDiagnosticsUtilities.hpp:328
Definition: MoveOnlyTestDiagnosticsUtilities.hpp:274
Definition: MoveOnlyTestDiagnosticsUtilities.hpp:383
Definition: MoveOnlyTestDiagnosticsUtilities.hpp:494
Definition: MoveOnlyTestDiagnosticsUtilities.hpp:433
Definition: MoveOnlyTestDiagnosticsUtilities.hpp:115
class template, specializations of which implement various comparisons for the specified type.
Definition: FreeCheckers.hpp:78