std::is_copy_construcible en C++ con ejemplos

La plantilla std::is_copy_construtible de C++ STL está presente en el archivo de encabezado <type_traits> . La plantilla std::is_copy_construtible de C++ STL se usa para verificar si la T es copiable o no. Devuelve el valor booleano verdadero si T es un tipo de copia construible; de ​​lo contrario, devuelve falso.

Archivo de cabecera:

#include<type_traits>

Clase de plantilla:

template <class T> struct is_copy_constructible;

Sintaxis:

std::is_copy_constructible <int> ::value
std::is_copy_constructible>class T> ::value

Parámetros: esta plantilla acepta un solo parámetro T (clase de rasgo) para verificar si T es una copia construible o no.

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

  • Verdadero: si el tipo T es una copia construible.
  • Falso: si el tipo T no es una copia construible./li>

Los siguientes programas ilustran la plantilla std::is_copy_construtiblev en C/C++:

Programa:

// C++ program to illustrate
// std::is_copy_constructible example
#include <bits/stdc++.h>
#include <type_traits>
using namespace std;
  
// Declare structures
struct B {
};
struct A {
    A& operator=(A&) = delete;
};
  
// Driver Code
int main()
{
    cout << boolalpha;
  
    // Check that if char is copy
    // constructible or not
    cout << "char: "
         << is_copy_constructible<char>::value
         << endl;
  
    // Check that if int is copy
    // constructible or not
    cout << "int: "
         << is_copy_constructible<int>::value
         << endl;
  
    // Check that if int[2] is copy
    // constructible or not
    cout << "int[2]: "
         << is_copy_constructible<int[2]>::value
         << endl;
  
    // Check that if struct A is copy
    // constructible or not
    cout << "struct A: "
         << is_copy_constructible<A>::value
         << endl;
  
    // Check that if struct B is copy
    // constructible or not
    cout << "struct B: "
         << is_copy_constructible<B>::value
         << endl;
  
    return 0;
}
Producción:

char: true
int: true
int[2]: false
struct A: true
struct B: true

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

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 *