在C ++中使用示例的std :: is_copy_constructible
C ++ STL的 is_copy_constructible 模板存在于 ** < ** type_traits ** > ** 头文件中。 C ++ STL的 is_copy_constructible 模板用于检查 T 是否可复制构造。 如果 T 是可复制构造类型,则返回布尔值true,否则返回false。
头文件:
#include <type_traits>
模板类:
template <class T> struct is_copy_constructible;
语法:
std :: is_copy_constructible <int> :: value
std :: is_copy_constructible> class T > :: value
参数: 该模板接受单个参数 T(特征类) 以检查T是否可复制构造。
返回值: 此模板返回以下布尔变量:
- 真: 如果类型 T 是可复制构造的。
- 假: 如果类型 T 不可复制构造。
以下程序说明了C / C ++中的std :: is_copy_constructiblev模板:
程序:
// 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;
}
char:true
int:true
int [2]:false
struct A:true
struct B:true