In preparation for the deprecation of is_trivial (P3247R2).
Mostly a mechanical exercise, replacing is_trivial with
is_trivially_copyable and/or is_trivially_default_constructible
depending on the cases.
libstdc++-v3/ChangeLog:
* testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc:
Port away from is_trivial.
* testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc:
Likewise.
* testsuite/20_util/specialized_algorithms/uninitialized_default/94540.cc:
Likewise.
* testsuite/20_util/specialized_algorithms/uninitialized_default_n/94540.cc:
Likewise.
* testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc:
Likewise.
* testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc:
Likewise.
* testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
Likewise.
* testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
Likewise.
* testsuite/23_containers/vector/cons/94540.cc: Likewise.
* testsuite/25_algorithms/copy/move_iterators/69478.cc:
Likewise.
* testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
Likewise.
* testsuite/25_algorithms/move/69478.cc: Likewise.
* testsuite/25_algorithms/move_backward/69478.cc: Likewise.
* testsuite/25_algorithms/rotate/constrained.cc: Likewise.
* testsuite/25_algorithms/rotate_copy/constrained.cc: Likewise.
Signed-off-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Y::operator X() const { return X(); }
#if __cplusplus >= 201103L
-static_assert( std::is_trivial<X>::value, "" );
+static_assert( std::is_trivially_default_constructible<X>::value, "" );
+static_assert( std::is_trivially_copyable<X>::value, "" );
#endif
void test01_pr102064()
Z& operator=(int) = delete;
};
-static_assert( std::is_trivial<Z>::value, "" );
+static_assert( std::is_trivially_default_constructible<Z>::value, "" );
+static_assert( std::is_trivially_copyable<Z>::value, "" );
void test02_pr102064()
{
Y::operator X() const { return X(); }
-static_assert( std::is_trivial<X>::value, "" );
+static_assert( std::is_trivially_default_constructible<X>::value, "" );
+static_assert( std::is_trivially_copyable<X>::value, "" );
void test01_pr102064()
{
Z& operator=(int) = delete;
};
-static_assert( std::is_trivial<Z>::value, "" );
+static_assert( std::is_trivially_default_constructible<Z>::value, "" );
+static_assert( std::is_trivially_copyable<Z>::value, "" );
void test02_pr102064()
{
// Assume that 9MB is larger than the stack limit.
struct X { char data[9*1024*1024]; };
-static_assert( std::is_trivial<X>::value, "" );
+static_assert( std::is_trivially_default_constructible<X>::value, "" );
+static_assert( std::is_trivially_copyable<X>::value, "" );
int main()
{
// Assume that 9MB is larger than the stack limit.
struct X { char data[9*1024*1024]; };
-static_assert( std::is_trivial<X>::value, "" );
+static_assert( std::is_trivially_default_constructible<X>::value, "" );
+static_assert( std::is_trivially_copyable<X>::value, "" );
int main()
{
Y::operator X() const { return X(); }
#if __cplusplus >= 201103L
-static_assert( std::is_trivial<X>::value, "" );
+static_assert( std::is_trivially_default_constructible<X>::value, "" );
+static_assert( std::is_trivially_copyable<X>::value, "" );
#endif
void test01_pr102064()
Z& operator=(int) = delete;
};
-static_assert( std::is_trivial<Z>::value, "" );
+static_assert( std::is_trivially_default_constructible<Z>::value, "" );
+static_assert( std::is_trivially_copyable<Z>::value, "" );
void test02_pr102064()
{
Y::operator X() const { return X(); }
#if __cplusplus >= 201103L
-static_assert( std::is_trivial<X>::value, "" );
+static_assert( std::is_trivially_default_constructible<X>::value, "" );
+static_assert( std::is_trivially_copyable<X>::value, "" );
#endif
void test01_pr102064()
Z& operator=(int) = delete;
};
-static_assert( std::is_trivial<Z>::value, "" );
+static_assert( std::is_trivially_default_constructible<Z>::value, "" );
+static_assert( std::is_trivially_copyable<Z>::value, "" );
void test02_pr102064()
{
// Assume that 9MB is larger than the stack limit.
struct X { char data[9*1024*1024]; };
-static_assert( std::is_trivial_v<X> );
+static_assert( std::is_trivially_copyable_v<X> );
+static_assert( std::is_trivially_default_constructible_v<X> );
int main()
{
// Assume that 9MB is larger than the stack limit.
struct X { char data[9*1024*1024]; };
-static_assert( std::is_trivial_v<X> );
+static_assert( std::is_trivially_copyable_v<X> );
+static_assert( std::is_trivially_default_constructible_v<X> );
int main()
{
// Assume that 9MB is larger than the stack limit.
struct X { char data[9*1024*1024]; };
-static_assert( std::is_trivial<X>::value, "" );
+static_assert( std::is_trivially_default_constructible<X>::value, "" );
+static_assert( std::is_trivially_copyable<X>::value, "" );
int main()
{
trivial_rvalstruct(trivial_rvalstruct&&) = default;
trivial_rvalstruct& operator=(trivial_rvalstruct&&) = default;
};
- static_assert(std::is_trivial<trivial_rvalstruct>::value, "");
+ static_assert(std::is_trivially_default_constructible<trivial_rvalstruct>::value, "");
+ static_assert(std::is_trivially_copyable<trivial_rvalstruct>::value, "");
trivial_rvalstruct a[1], b[1];
copy(std::make_move_iterator(a), std::make_move_iterator(a + 1), b);
trivial_rvalstruct(trivial_rvalstruct&&) = default;
trivial_rvalstruct& operator=(trivial_rvalstruct&&) = default;
};
- static_assert(std::is_trivial<trivial_rvalstruct>::value, "");
+ static_assert(std::is_trivially_default_constructible<trivial_rvalstruct>::value, "");
+ static_assert(std::is_trivially_copyable<trivial_rvalstruct>::value, "");
trivial_rvalstruct a[1], b[1];
copy_backward(std::make_move_iterator(a), std::make_move_iterator(a+1), b+1);
trivial_rvalstruct(trivial_rvalstruct&&) = default;
trivial_rvalstruct& operator=(trivial_rvalstruct&&) = default;
};
- static_assert(std::is_trivial<trivial_rvalstruct>::value, "");
+ static_assert(std::is_trivially_default_constructible<trivial_rvalstruct>::value, "");
+ static_assert(std::is_trivially_copyable<trivial_rvalstruct>::value, "");
trivial_rvalstruct a[1], b[1];
std::move(a, a + 1, b);
trivial_rvalstruct(trivial_rvalstruct&&) = default;
trivial_rvalstruct& operator=(trivial_rvalstruct&&) = default;
};
- static_assert(std::is_trivial<trivial_rvalstruct>::value, "");
+ static_assert(std::is_trivially_default_constructible<trivial_rvalstruct>::value, "");
+ static_assert(std::is_trivially_copyable<trivial_rvalstruct>::value, "");
trivial_rvalstruct a[1], b[1];
std::move_backward(a, a + 1, b + 1);
}
};
-static_assert(!std::is_trivial_v<X>);
+static_assert(!std::is_trivially_default_constructible_v<X>);
template<template<typename, template<typename> typename> typename container,
template<typename> typename wrapper,
}
};
-static_assert(!std::is_trivial_v<X>);
+static_assert(!std::is_trivially_default_constructible_v<X>);
template<template<typename, template<typename> typename> typename container,
template<typename> typename wrapper,