Oprócz std::is_trivial
i std::is_trivially_copyable
, C++ 11 przewiduje szereg cech typu sprawdzania, czy typy mają trywialne konstruktorów, destruktory i operatory przypisania Kopiuj/Przenieś, tjUzasadnienie typu cech sprawdzanie trywialności klasy funkcji specjalnych
std::is_trivially_constructible
std::is_trivially_default_constructible
std::is_trivially_copy_constructible
std::is_trivially_move_constructible
std::is_trivially_assignable
std::is_trivially_copy_assignable
std::is_trivially_move_assignable
std::is_trivially_destructible
Jaki jest ich pierwotnym celem zamierzonym? Z pewnością niektóre dokumenty komisji C++ muszą wyjaśnić powody ich włączenia do standardowej biblioteki C++.
Świetnie sprawdzają się w testach jednostkowych, aby sprawdzić, czy ktoś zawiedli i zrobili coś, co MUSI być trywialne, co nie jest banalne, prowadząc do cichego wywoływania niezdefiniowanych zachowań w kodzie produkcyjnym. Stwórz także miłe pułapki 'static_assert' na czas kompilacji w kodzie produkcyjnym na wypadek, gdyby ktoś był * naprawdę * głupi, a nie testowanie jednostkowe. – user4581301