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 🙂


  • Mod

    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).


Anmelden zum Antworten