Was sind Aggregate, triviale Typen und POD in C++? Wie funktionieren sie und wozu braucht man sie?
Hallo zusammen! Ich habe gerade angefangen, C++ zu lernen und bin auf die Begriffe "Aggregat", "trivialer Typ" und "POD" gestoßen. Ehrlich gesagt bin ich verwirrt. Sie scheinen alle einfache Strukturen zu beschreiben, aber ich verstehe den Unterschied nicht.\n\nZum Beispiel habe ich diesen Code:\n\n```cpp\nstruct Point {\n int x;\n int y;\n};\n\nstruct NamedPoint {\n std::string name;\n int x;\n int y;\n};\n```\n\nIch habe gelesen, dass `Point` ein Aggregat ist, aber `NamedPoint` nicht, weil es ein `std::string` hat. Warum? Was macht einen Typ "trivial"? Und was ist "POD"? Man sagt, dass POD-Typen mit `memcpy` kopiert werden können, normale aber nicht. Stimmt das?\n\nAußerdem habe ich gehört, dass sich die Regeln für Aggregate in C++17 und C++20 geändert haben. Könnt ihr mir einfach erklären, welche Typen Aggregate, triviale Typen und POD sind und warum das wichtig ist?