--- third_party/abseil-cpp/absl/meta/type_traits.h +++ third_party/abseil-cpp/absl/meta/type_traits.h @@ -501,27 +501,7 @@ struct is_trivially_move_assignable // operation that is not trivial. `is_trivially_copy_assignable` is simply // `is_trivially_assignable`. template -struct is_trivially_copy_assignable -#ifdef ABSL_HAVE_STD_IS_TRIVIALLY_ASSIGNABLE - : std::is_trivially_copy_assignable { -#else - : std::integral_constant< - bool, __has_trivial_assign(typename std::remove_reference::type) && - absl::is_copy_assignable::value> { -#endif -#ifdef ABSL_HAVE_STD_IS_TRIVIALLY_ASSIGNABLE - private: - static constexpr bool compliant = - std::is_trivially_copy_assignable::value == - is_trivially_copy_assignable::value; - static_assert(compliant || std::is_trivially_copy_assignable::value, - "Not compliant with std::is_trivially_copy_assignable; " - "Standard: false, Implementation: true"); - static_assert(compliant || !std::is_trivially_copy_assignable::value, - "Not compliant with std::is_trivially_copy_assignable; " - "Standard: true, Implementation: false"); -#endif // ABSL_HAVE_STD_IS_TRIVIALLY_ASSIGNABLE -}; +using is_trivially_copy_assignable = std::is_trivially_copy_assignable; #if defined(__cpp_lib_remove_cvref) && __cpp_lib_remove_cvref >= 201711L template