📅  最后修改于: 2023-12-03 14:39:57.585000             🧑  作者: Mango
std::is_trivially_copy_assignable
是一个C++模板类,在头文件 <type_traits>
中定义。该类可以用来检查一个类型是否满足平凡复制赋值。
平凡复制赋值是指一个类型的赋值运算符是按位复制属性的,并且它也不含有任何虚函数或虚基类。
这个模板类可以在编译时用于类型检查,并在返回 true
或 false
中返回结果。
std::is_trivially_copy_assignable<T>::value
这里,T
是要检查的类型,value
是一个 bool
类型,如果检查的类型是平凡复制赋值,那么 value
将返回 true
,否则将返回 false
。
以下是一个简单的示例,来说明如何使用 std::is_trivially_copy_assignable
模板类。
#include <iostream>
#include <type_traits>
using namespace std;
class C
{
public:
int i;
double d;
};
int main()
{
cout << boolalpha;
// 检查是否为平凡复制赋值
cout << "int: " << is_trivially_copy_assignable<int>::value << endl;
cout << "C: " << is_trivially_copy_assignable<C>::value << endl;
return 0;
}
输出结果:
int: true
C: false
在上面的例子中,我们检查了 int
和一个简单的类 C
是否为平凡复制赋值。由于 int
是一个内置类型,因此它是平凡复制赋值的,而对于 C
类型,因为它包含非平凡复制赋值的成员变量,所以它不是平凡复制赋值的。