Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
zbyt wiele inicjatorów
Uwagi
Liczba inicjatorów przekracza liczbę obiektów do zainicjowania.
Kompilator może deduować poprawne przypisanie inicjatorów do obiektów i obiektów wewnętrznych, gdy nawiasy klamrowe wewnętrzne są elidowane z listy inicjatorów. Pełne nawiasy klamrowe eliminuje również niejednoznaczność i powoduje poprawne przypisanie. Częściowe nawiasy klamrowe mogą powodować niejednoznaczność w przypisaniu inicjatorów do obiektów.
Przykład
Poniższy przykład generuje kod C2078 i pokazuje, jak go naprawić:
// 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
}