Incremental migration of message.cc to Emit

PiperOrigin-RevId: 531271824
diff --git a/src/google/protobuf/compiler/cpp/field_generators/enum_field.cc b/src/google/protobuf/compiler/cpp/field_generators/enum_field.cc
index 812ecc7..d88f2d0 100644
--- a/src/google/protobuf/compiler/cpp/field_generators/enum_field.cc
+++ b/src/google/protobuf/compiler/cpp/field_generators/enum_field.cc
@@ -158,7 +158,7 @@
 
   void GenerateCopyAggregateInitializer(io::Printer* p) const override {
     p->Emit(R"cc(
-      decltype($field_$) {}
+      decltype($field_$){},
     )cc");
   }
 
@@ -307,11 +307,12 @@
 
   void GenerateCopyAggregateInitializer(io::Printer* p) const override {
     p->Emit(R"cc(
-      decltype($field_$) { from._internal_$name$() })cc");
+      decltype($field_$){from._internal_$name$()},
+    )cc");
     if (has_cached_size_) {
       // std::atomic has no copy constructor.
       p->Emit(R"cc(
-        , /*decltype($cached_size_$)*/ { 0 }
+        /*decltype($cached_size_$)*/ {0},
       )cc");
     }
   }
diff --git a/src/google/protobuf/compiler/cpp/field_generators/map_field.cc b/src/google/protobuf/compiler/cpp/field_generators/map_field.cc
index 064c5b1..26b3d9b 100644
--- a/src/google/protobuf/compiler/cpp/field_generators/map_field.cc
+++ b/src/google/protobuf/compiler/cpp/field_generators/map_field.cc
@@ -135,7 +135,9 @@
   void GenerateCopyAggregateInitializer(io::Printer* p) const override {
     // MapField has no move constructor, which prevents explicit aggregate
     // initialization pre-C++17.
-    p->Emit(R"cc(/* decltype($field_$) */ {})cc");
+    p->Emit(R"cc(
+      /* decltype($field_$) */ {},
+    )cc");
   }
 
   void GenerateAggregateInitializer(io::Printer* p) const override {
diff --git a/src/google/protobuf/compiler/cpp/field_generators/message_field.cc b/src/google/protobuf/compiler/cpp/field_generators/message_field.cc
index e1a2721..d0e279c 100644
--- a/src/google/protobuf/compiler/cpp/field_generators/message_field.cc
+++ b/src/google/protobuf/compiler/cpp/field_generators/message_field.cc
@@ -507,7 +507,9 @@
 }
 
 void SingularMessage::GenerateCopyAggregateInitializer(io::Printer* p) const {
-  p->Emit("decltype($field_$){nullptr}");
+  p->Emit(R"cc(
+    decltype($field_$){nullptr},
+  )cc");
 }
 
 void SingularMessage::GenerateAggregateInitializer(io::Printer* p) const {
diff --git a/src/google/protobuf/compiler/cpp/field_generators/primitive_field.cc b/src/google/protobuf/compiler/cpp/field_generators/primitive_field.cc
index 7234108..66d138b 100644
--- a/src/google/protobuf/compiler/cpp/field_generators/primitive_field.cc
+++ b/src/google/protobuf/compiler/cpp/field_generators/primitive_field.cc
@@ -179,7 +179,7 @@
 
   void GenerateCopyAggregateInitializer(io::Printer* p) const override {
     p->Emit(R"cc(
-      decltype($field_$) {}
+      decltype($field_$){},
     )cc");
   }
 
@@ -359,15 +359,9 @@
   void GenerateCopyAggregateInitializer(io::Printer* p) const override {
     ABSL_CHECK(!ShouldSplit(descriptor_, options_));
     p->Emit(R"cc(
-      decltype($field_$) { from.$field_$ }
+      decltype($field_$){from.$field_$},
     )cc");
-    if (HasCachedSize()) {
-      // std::atomic has no move constructor, which prevents explicit aggregate
-      // initialization pre-C++17.
-      p->Emit(R"cc(
-        , /* $_field_cached_byte_size_$ = */ { 0 }
-      )cc");
-    }
+    GenerateCacheSizeInitializer(p);
   }
 
   void GeneratePrivateMembers(io::Printer* p) const override;
diff --git a/src/google/protobuf/compiler/cpp/field_generators/string_field.cc b/src/google/protobuf/compiler/cpp/field_generators/string_field.cc
index 127bdd6..7beea97 100644
--- a/src/google/protobuf/compiler/cpp/field_generators/string_field.cc
+++ b/src/google/protobuf/compiler/cpp/field_generators/string_field.cc
@@ -148,7 +148,7 @@
 
   void GenerateCopyAggregateInitializer(io::Printer* p) const override {
     p->Emit(R"cc(
-      decltype($field_$) {}
+      decltype($field_$){},
     )cc");
   }