Internal change.

PiperOrigin-RevId: 584276582
diff --git a/src/google/protobuf/repeated_ptr_field.h b/src/google/protobuf/repeated_ptr_field.h
index 7a57dfe..07b165b 100644
--- a/src/google/protobuf/repeated_ptr_field.h
+++ b/src/google/protobuf/repeated_ptr_field.h
@@ -113,15 +113,10 @@
       type;
 };
 
-template <typename T, typename = void>
-struct TypeImplementsMergeBehavior
-    : TypeImplementsMergeBehaviorProbeForMergeFrom<T> {};
-
-
-template <>
-struct TypeImplementsMergeBehavior<std::string> {
-  typedef std::true_type type;
-};
+template <typename T>
+using TypeImplementsMergeBehavior =
+    absl::disjunction<std::is_same<T, std::string>,
+                      TypeImplementsMergeBehaviorProbeForMergeFrom<T>>;
 
 template <typename T>
 struct IsMovable