Plantilla std::is_construcible en C++ con ejemplos

La plantilla std::is_construtible de C++ STL está presente en el archivo de encabezado <type_traits> . La plantilla std::is_construtible de C++ STL se usa para verificar si el tipo T dado es un tipo construible con el conjunto de argumentos o no. Devuelve el valor booleano verdadero si T es de tipo construible, de lo contrario devuelve falso.

Archivo de cabecera:

#include<type_traits>

Clase de plantilla:

template <class T, class... Args>
struct is_constructible;

Sintaxis:

std::is_constructible::value

Parámetros:

  • T: Representa el tipo de datos.
  • Args: Representa la lista de datos tipo T.

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

  • Verdadero: si el tipo T es construible.
  • Falso: Si el tipo T no es construible.

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

Programa:

// C++ program to illustrate
// std::is_constructible example
#include <bits/stdc++.h>
#include <type_traits>
using namespace std;
  
// Declare structures
struct A {
};
  
struct T {
    T(int, int){};
};
  
// Driver Code
int main()
{
    cout << std::boolalpha;
  
    // Check if <int> is
    // constructible or not
    cout << "int: "
         << is_constructible<int>::value
         << endl;
  
    // Check if <int, float> is
    // constructible or not
    cout << "int(float): "
         << is_constructible<int, float>::value
         << endl;
  
    // Check if <int, float, float> is
    // constructible or not
    cout << "int(float, float): "
         << is_constructible<int, float, float>::value
         << endl;
  
    // Check if struct T is
    // constructible or not
    cout << "T: "
         << is_constructible<T>::value
         << endl;
  
    // Check if struct <T, int> is
    // constructible or not
    cout << "T(int): "
         << is_constructible<T, int>::value
         << endl;
  
    // Check if struct <T, int, int> is
    // constructible or not
    cout << "T(int, int): "
         << is_constructible<T, int, int>::value
         << endl;
    return 0;
}
Producción:

int: true
int(float): true
int(float, float): false
T: false
T(int): false
T(int, int): true

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

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 *