C++ Aggregates, Trivial Types, Trivially Copyable Types, and PODs Explained | CodeTrail