static constexpr bool _S_trivial_move_ctor =
(is_trivially_move_constructible_v<_Types> && ...);
static constexpr bool _S_trivial_copy_assign =
- _S_trivial_dtor && (is_trivially_copy_assignable_v<_Types> && ...);
+ _S_trivial_dtor && _S_trivial_copy_ctor
+ && (is_trivially_copy_assignable_v<_Types> && ...);
static constexpr bool _S_trivial_move_assign =
- _S_trivial_dtor && (is_trivially_move_assignable_v<_Types> && ...);
+ _S_trivial_dtor && _S_trivial_move_ctor
+ && (is_trivially_move_assignable_v<_Types> && ...);
// The following nothrow traits are for non-trivial SMFs. Trivial SMFs
// are always nothrow.
(is_nothrow_move_constructible_v<_Types> && ...);
static constexpr bool _S_nothrow_copy_assign = false;
static constexpr bool _S_nothrow_move_assign =
- _S_nothrow_move_ctor && (is_nothrow_move_assignable_v<_Types> && ...);
+ _S_nothrow_move_ctor
+ && (is_nothrow_move_assignable_v<_Types> && ...);
};
// Defines members and ctors.
template<typename... _Types>
using _Copy_assign_alias =
- _Copy_assign_base<_Traits<_Types...>::_S_trivial_copy_assign
- && _Traits<_Types...>::_S_trivial_copy_ctor,
- _Types...>;
+ _Copy_assign_base<_Traits<_Types...>::_S_trivial_copy_assign, _Types...>;
template<bool, typename... _Types>
struct _Move_assign_base : _Copy_assign_alias<_Types...>
TEST_TEMPLATE(=default, =default, =default, =default, , true, true, true, false)
TEST_TEMPLATE(=default, =default, =default, , =default, true, true, false, true)
TEST_TEMPLATE(=default, =default, =default, , , true, true, false, false)
- TEST_TEMPLATE(=default, =default, , =default, =default, true, false, true, true)
+ TEST_TEMPLATE(=default, =default, , =default, =default, true, false, true, false)
TEST_TEMPLATE(=default, =default, , =default, , true, false, true, false)
- TEST_TEMPLATE(=default, =default, , , =default, true, false, false, true)
+ TEST_TEMPLATE(=default, =default, , , =default, true, false, false, false)
TEST_TEMPLATE(=default, =default, , , , true, false, false, false)
- TEST_TEMPLATE(=default, , =default, =default, =default, false, true, false, true)
- TEST_TEMPLATE(=default, , =default, =default, , false, true, false, false)
+ TEST_TEMPLATE(=default, , =default, =default, =default, false, true, false, true)
+ TEST_TEMPLATE(=default, , =default, =default, , false, true, false, false)
TEST_TEMPLATE(=default, , =default, , =default, false, true, false, true)
TEST_TEMPLATE(=default, , =default, , , false, true, false, false)
- TEST_TEMPLATE(=default, , , =default, =default, false, false, false, true)
- TEST_TEMPLATE(=default, , , =default, , false, false, false, false)
- TEST_TEMPLATE(=default, , , , =default, false, false, false, true)
+ TEST_TEMPLATE(=default, , , =default, =default, false, false, false, false)
+ TEST_TEMPLATE(=default, , , =default, , false, false, false, false)
+ TEST_TEMPLATE(=default, , , , =default, false, false, false, false)
TEST_TEMPLATE(=default, , , , , false, false, false, false)
TEST_TEMPLATE( , =default, =default, =default, =default, false, false, false, false)
TEST_TEMPLATE( , =default, =default, =default, , false, false, false, false)