Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
för många initialiserare
Anmärkningar
Antalet initialiserare överskrider antalet objekt som ska initieras.
Kompilatorn kan härleda rätt tilldelning av initialiserare till objekt och inre objekt när inre klammerparenteser tas bort från initialiserarlistan. Fullständig bracing eliminerar också tvetydighet och resulterar i rätt tilldelning. Partiell bracing kan orsaka C2078 på grund av tvetydighet i tilldelningen av initialiserare till objekt.
Exempel
Följande exempel genererar C2078 och visar hur du åtgärdar det:
// C2078.cpp
// Compile by using: cl /c /W4 C2078.cpp
struct S {
   struct {
      int x, y;
   } z[2];
};
int main() {
   int d[2] = {1, 2, 3};   // C2078
   int e[2] = {1, 2};      // OK
   char a[] = {"a", "b"};  // C2078
   char *b[] = {"a", "b"}; // OK
   char c[] = {'a', 'b'};  // OK
   S s1{1, 2, 3, 4};       // OK
   S s2{{1, 2}, {3, 4}};   // C2078
   S s3{{1, 2, 3, 4}};     // OK
   S s4{{{1, 2}, {3, 4}}}; // OK
}