std::is_trivial
Min standard notice:
Header: <type_traits>
std::is_trivial is a UnaryTypeTrait.
# Declarations
template< class T >
struct is_trivial;
(since C++11) (deprecated in C++26)
# Example
#include <type_traits>
struct A { int m; };
static_assert(std::is_trivial_v<A> == true);
struct B { B() {} };
static_assert(std::is_trivial_v<B> == false);
// The following class shows why std::is_trivial(_v) may be a pitfall.
class C
{
private:
C() = default;
};
static_assert(std::is_trivial_v<C> == true);
static_assert(std::is_trivially_default_constructible_v<C> == false);
int main() {}
# Defect reports
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 2015 | C++11 | T could be an array of incompleteclass type with unknown bound | the behavior isundefined in this case |