[libc++][NFC] Simplify tests for bind_front

This commit is contained in:
Louis Dionne 2021-08-10 11:56:03 -04:00
parent 638dcea010
commit ce96d81c47
1 changed files with 12 additions and 14 deletions

View File

@ -318,13 +318,6 @@ constexpr bool test() {
{ {
{ {
MoveOnlyCallable value(true); MoveOnlyCallable value(true);
using RetT = decltype(std::bind_front(std::move(value), 1));
static_assert( std::is_move_constructible<RetT>::value);
static_assert(!std::is_copy_constructible<RetT>::value);
static_assert(!std::is_move_assignable<RetT>::value);
static_assert(!std::is_copy_assignable<RetT>::value);
auto ret = std::bind_front(std::move(value), 1); auto ret = std::bind_front(std::move(value), 1);
assert(ret()); assert(ret());
assert(ret(1, 2, 3)); assert(ret(1, 2, 3));
@ -333,16 +326,15 @@ constexpr bool test() {
assert(!ret()); assert(!ret());
assert(ret1()); assert(ret1());
assert(ret1(1, 2, 3)); assert(ret1(1, 2, 3));
using RetT = decltype(ret);
static_assert( std::is_move_constructible<RetT>::value);
static_assert(!std::is_copy_constructible<RetT>::value);
static_assert(!std::is_move_assignable<RetT>::value);
static_assert(!std::is_copy_assignable<RetT>::value);
} }
{ {
CopyCallable value(true); CopyCallable value(true);
using RetT = decltype(std::bind_front(value, 1));
static_assert( std::is_move_constructible<RetT>::value);
static_assert( std::is_copy_constructible<RetT>::value);
static_assert(!std::is_move_assignable<RetT>::value);
static_assert(!std::is_copy_assignable<RetT>::value);
auto ret = std::bind_front(value, 1); auto ret = std::bind_front(value, 1);
assert(ret()); assert(ret());
assert(ret(1, 2, 3)); assert(ret(1, 2, 3));
@ -355,6 +347,12 @@ constexpr bool test() {
assert(!ret()); assert(!ret());
assert(ret2()); assert(ret2());
assert(ret2(1, 2, 3)); assert(ret2(1, 2, 3));
using RetT = decltype(ret);
static_assert( std::is_move_constructible<RetT>::value);
static_assert( std::is_copy_constructible<RetT>::value);
static_assert(!std::is_move_assignable<RetT>::value);
static_assert(!std::is_copy_assignable<RetT>::value);
} }
{ {
CopyAssignableWrapper value(true); CopyAssignableWrapper value(true);