función is_trivial en C++

La función is_trivial se usa para verificar si el tipo T dado es una clase trivial o no. Es una plantilla declarada en el archivo de encabezado <type_traits> . Un tipo trivial es un tipo cuyo almacenamiento es contiguo (trivialmente copiable) y que solo admite la inicialización predeterminada estática (trivialmente predeterminada construible), ya sea cv-calificado o no. Incluye tipos escalares, clases triviales y arreglos de cualquiera de esos tipos.

Una clase trivial es una clase (definida con class, struct o union) que es a la vez construible y copiable de forma trivial por defecto, lo que implica que: 
Utiliza los constructores por defecto, copiar y mover, las asignaciones de copiar y mover y el destructor definidos implícitamente.

  • No tiene miembros virtuales.
  • No tiene miembros de datos no estáticos con inicializadores de llaves o iguales.
  • Su clase base y los miembros de datos no estáticos (si los hay) también son tipos triviales.

is_trivial hereda de integral_constant como true_type o false_type, dependiendo de si T es un tipo trivial.

Sintaxis:

template  struct is_trivial;

Ejemplo: 

std::is_trivial::value

CPP

// CPP program to illustrate is_trivial function
#include <iostream>
#include <type_traits>
using namespace std;
  
class A {
};
class B {
    B() {}
};
class C : B {
};
class D {
    virtual void fn() {}
};
  
// Driver Code
int main()
{
    std::cout << std::boolalpha;
    // Returns value in boolean type
    std::cout << "A: " << std::is_trivial<A>::value << endl;
    std::cout << "B: " << std::is_trivial<B>::value << endl;
    std::cout << "C: " << std::is_trivial<C>::value << endl;
    std::cout << "D: " << std::is_trivial<D>::value << endl;
    return 0;
}
Producción

A: true
B: false
C: false
D: false

Aquí, A es una clase que se ha pasado como parámetro a la función is_trivial y devolverá un valor de tipo constante integral bool, es decir, verdadero o falso. 

Este artículo es una contribución de Mohak Agarwal . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *