-// Copyright (C) 2010-2013 Free Software Foundation, Inc.
+// Copyright (C) 2010-2022 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
}
};
+ template<>
+ struct generate_unique<bool>
+ {
+ typedef bool value_type;
+
+ value_type build()
+ {
+ static value_type _S_;
+ _S_ = !_S_;
+ return _S_;
+ }
+ };
+
template<typename _Tp1, typename _Tp2>
struct generate_unique<std::pair<_Tp1, _Tp2> >
{
typedef _Tp1 first_type;
typedef _Tp2 second_type;
typedef std::pair<_Tp1, _Tp2> pair_type;
-
+
pair_type build()
{
static first_type _S_1;
void
check_assign1()
{
- bool test __attribute__((unused)) = true;
-
typedef _Tp cont_type;
typedef typename cont_type::value_type cont_val_type;
typedef typename CopyableValueType<cont_val_type>::value_type val_type;
void
check_assign2()
{
- bool test __attribute__((unused)) = true;
-
typedef _Tp cont_type;
typedef typename cont_type::value_type cont_val_type;
typedef typename CopyableValueType<cont_val_type>::value_type val_type;
void
check_assign3()
{
- bool test __attribute__((unused)) = true;
-
typedef _Tp cont_type;
typedef typename cont_type::value_type cont_val_type;
typedef typename CopyableValueType<cont_val_type>::value_type val_type;
void
check_construct1()
{
- bool test __attribute__((unused)) = true;
-
typedef _Tp cont_type;
typedef typename cont_type::value_type cont_val_type;
typedef typename CopyableValueType<cont_val_type>::value_type val_type;
val_type *first = &v.front() + 1;
val_type *last = first + 2;
- cont_type c1(first, last);
- VERIFY(c1.size() == 2);
- cont_type c2(last, first); // Expected failure
- }
+ cont_type c(last, first); // Expected failure
+ }
// Check that invalid range of debug random iterators is detected
template<typename _Tp>
void
check_construct2()
{
- bool test __attribute__((unused)) = true;
-
typedef _Tp cont_type;
typedef typename cont_type::value_type cont_val_type;
typedef typename CopyableValueType<cont_val_type>::value_type val_type;
typename vector_type::iterator first = v.begin() + 1;
typename vector_type::iterator last = first + 2;
- cont_type c1(first, last);
- VERIFY(c1.size() == 2);
- cont_type c2(last, first); // Expected failure
+ cont_type c(last, first); // Expected failure
}
// Check that invalid range of debug not random iterators is detected
void
check_construct3()
{
- bool test __attribute__((unused)) = true;
-
typedef _Tp cont_type;
typedef typename cont_type::value_type cont_val_type;
typedef typename CopyableValueType<cont_val_type>::value_type val_type;
typename list_type::iterator first = l.begin(); ++first;
typename list_type::iterator last = first; ++last; ++last;
- cont_type c1(first, last);
- VERIFY(c1.size() == 2);
- cont_type c2(last, first); // Expected failure
+ cont_type c(last, first); // Expected failure
}
template <typename _Cont>
void
check_insert1()
{
- bool test __attribute__((unused)) = true;
-
typedef _Tp cont_type;
typedef typename cont_type::value_type cont_val_type;
typedef typename CopyableValueType<cont_val_type>::value_type val_type;
void
check_insert2()
{
- bool test __attribute__((unused)) = true;
-
typedef _Tp cont_type;
typedef typename cont_type::value_type cont_val_type;
typedef typename CopyableValueType<cont_val_type>::value_type val_type;
void
check_insert3()
{
- bool test __attribute__((unused)) = true;
-
typedef _Tp cont_type;
typedef typename cont_type::value_type cont_val_type;
typedef typename CopyableValueType<cont_val_type>::value_type val_type;
void
check_insert4()
{
- bool test __attribute__((unused)) = true;
-
typedef _Tp cont_type;
typedef typename cont_type::value_type cont_val_type;
typedef typename CopyableValueType<cont_val_type>::value_type val_type;
template<typename _Tp>
void use_invalid_iterator()
{
- bool test __attribute__((unused)) = true;
-
typedef _Tp cont_type;
typedef typename cont_type::value_type cont_val_type;
typedef typename CopyableValueType<cont_val_type>::value_type val_type;