std::array
-
Hi,
wenn ich schreibe std::array<Foo, 3> foos, werden dann bereits 3 Foo mit Default Ctor angelegt?
-
arrayer schrieb:
Hi,
wenn ich schreibe std::array<Foo, 3> foos, werden dann bereits 3 Foo mit Default Ctor angelegt?
Ja.
-
Wenn Foo sowas hat, ja. Es würde mich aber nicht wundern, wenn sonst (z.B. bei array<int,3>) das Array uninitialisiert bliebe.
-
krümelkacker schrieb:
Es würde mich aber nicht wundern, wenn sonst (z.B. bei array<int,3>) das Array uninitialisiert bliebe.
std::array ist ein POD, daher denke ich das auch mal

-
pumuckl schrieb:
krümelkacker schrieb:
Es würde mich aber nicht wundern, wenn sonst (z.B. bei array<int,3>) das Array uninitialisiert bliebe.
std::array ist ein POD, daher denke ich das auch mal

Eigentlich ist es erst einmal nur ein Aggregat mit implizit deklariertem Destruktor. Damit wird es zum POD genau dann, wenn der Parametertyp ein POD ist.
-
camper schrieb:
pumuckl schrieb:
krümelkacker schrieb:
Es würde mich aber nicht wundern, wenn sonst (z.B. bei array<int,3>) das Array uninitialisiert bliebe.
std::array ist ein POD, daher denke ich das auch mal

Eigentlich ist es erst einmal nur ein Aggregat mit implizit deklariertem Destruktor. Damit wird es zum POD genau dann, wenn der Parametertyp ein POD ist.
Okay, korrigiere mich: std::array mit POD-Inhalt ist ein POD. Wobei POD IIRC im neuen Standard auch irgendwie anders heißt (primitiver oder trivialer Typ oder was auch immer).