Jednak lista reguł w C++03 jest przesadnie restrykcyjna.
C++11 rozluźnia kilka reguł dotyczących tworzenia obiektów TSD.
Klasa/struktura jest uważana za TSD, jeśli jest trywialna, standardowo ułożona i nie posiada żadnych niestatycznych składowych niebędących TSD-ami. Klasa/struktura jest trywialna, jeśli:
Posiada trywialny konstruktor domyślny. Może używać składni dla konstruktora domyślnego (JakisKonstruktor() = default;), Posiada trywialny konstruktor kopiujący, być może ze składnią domyślności, tj. ze słowem kluczowym default, Posiada trywialny operator przypisania, być może ze składnią domyślności, Posiada trywialny destruktor, który nie może być wirtualny.
Standardowo ułożona klasa/struktura to taka, która:
Posiada tylko niestatyczne pola, które są standardowo ułożone, Posiada ten sam poziom dostępu (private, protected, public) dla wszystkich niestatycznych składowych, Nie posiada wirtualnych metod, Nie posiada wirtualnych klas bazowych, Posiada tylko standardowo ułożone klasy bazowe, Nie posiada klas bazowych takiego samego typu jak pierwsze niestatyczne pole, Albo nie posiada klas bazowych z niestatycznymi składowymi, albo nie posiada niestatycznych pól w najbardziej pochodnej klasie i posiada co najwyżej jedną klasę bazową z niestatycznymi składowymi.