std::is_trival<T>::value
可以确定类 T 是否平凡。但是,我想不出需要这些信息的场景。
有例子吗?
我的一些想法:
假设类 T 是平凡的,这是否意味着 T 可以被 memcpy
安全地复制像这样:
T t1, t2;
memcpy(&t1, &t2, sizeof(T));
?
最佳答案
如果一个类型很简单,它可以,例如,用 memcpy
复制.这是用作 std::atomic
参数的用户定义类型的要求模板。也就是说,对于用户定义的类型 T
, atomic<T>
允许(并且对于更大的类型,需要)从 T
类型的对象实现赋值到 atomic<T>
类型的对象与 memcpy
.类似地,在需要时使用 memcmp
进行相等性测试。 .
使用这些 C 函数而不是 C++ 运算符的原因是原子操作不会对用户代码进行任何调用。这样做可能会导致看起来无辜的代码出现神秘的死锁。
关于c++ - 在什么情况下我们需要知道一个类是否微不足道?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14984871/