std::is_trivially_destructible en C++ con ejemplos

La plantilla std::is_trivially_destructible de C++ STL está presente en el archivo de encabezado <type_traits> . La plantilla std::is_trivially_denstructible de C++ STL se usa para verificar si T es un tipo trivialmente destructible o no. Devuelve el valor booleano verdadero si T es un tipo trivialmente destructible De lo contrario, devuelve falso.

Archivo de cabecera:

#include<type_traits>

Clase de plantilla:

template <class T>
struct is_trivially_destructible;

Sintaxis:

std::is_trivially_destructible<T>::value

Parámetros: la plantilla std::is_trivially_destructible acepta un solo parámetro T (clase de rasgo) para verificar si T es un tipo trivialmente destructible o no.

Valor devuelto: esta plantilla devuelve una variable booleana como se muestra a continuación:

  • Verdadero: si el tipo T es un tipo trivialmente destructible.
  • Falso: si el tipo T no es un tipo trivialmente destructible.

A continuación se muestra el programa para ilustrar la plantilla std::is_trivially_destructible en C/C++:

Programa 1:

// C++ program to illustrate
// std::is_trivially_destructible
#include <bits/stdc++.h>
#include <type_traits>
using namespace std;
  
// Declare structures
struct Y {
    // Constructor
    Y(int, int){};
};
  
struct X {
  
    // Destructor
    ~X() noexcept(false)
    {
    }
};
  
struct Z {
    ~Z() = default;
};
  
// Declare classes
class A {
    virtual void fn() {}
};
  
// Driver Code
int main()
{
  
    cout << boolalpha;
  
    // Check if int is trivially
    // destructable or not
    cout << "int: "
         << is_trivially_destructible<int>::value
         << endl;
  
    // Check if struct X is trivially
    // destructable or not
    cout << "struct X: "
         << is_trivially_destructible<X>::value
         << endl;
  
    // Check if struct Y is trivially
    // destructable or not
    cout << "struct Y: "
         << is_trivially_destructible<Y>::value
         << endl;
  
    // Check if struct Z is trivially
    // destructable or not
    cout << "struct Z: "
         << is_trivially_destructible<Z>::value
         << endl;
  
    // Check if class A is trivially
    // destructable or not
    cout << "class A: "
         << is_trivially_destructible<A>::value
         << endl;
  
    // Check if constructor Y(int, int) is
    // trivially destructable or not
    cout << "Constructor Y(int, int): "
         << is_trivially_destructible<Y(int, int)>::value
         << endl;
  
    return 0;
}
Producción:

int: true
struct X: false
struct Y: true
struct Z: true
class A: true
Constructor Y(int, int): false

Referencia: http://www.cplusplus.com/reference/type_traits/is_trivially_destructible/

Publicación traducida automáticamente

Artículo escrito por bansal_rtk_ 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 *