Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
hay demasiados inicializadores
Observaciones
El número de inicializadores supera el número de objetos que deben inicializarse.
El compilador puede deducir la asignación correcta de inicializadores a objetos y objetos internos cuando se eliden las llaves internas de la lista de inicializadores. Si se usan todas las llaves, se elimina la ambigüedad y, como resultado, se consigue una asignación correcta. Si las llaves se usan de forma parcial, puede generarse el error C2078 debido a la ambigüedad en la asignación de los inicializadores a los objetos.
Ejemplo
El ejemplo siguiente genera la advertencia C2078 y muestra cómo corregirlo:
// 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
}