c++ - 虚函数上的 std::is_trivially_copyable_v
问题描述
我尝试以下代码,它只是打印false
.
class A
{
virtual void func() {}
};
std::cout << std::is_trivially_copyable_v<A>;
为什么虚函数会影响复制?虚拟表指针可以简单地复制。
解决方案
一个可简单复制的类是一个类:
其中每个符合条件的复制构造函数、移动构造函数、复制赋值运算符和移动赋值运算符都是微不足道的......
如果 ... 类 X 的复制/移动赋值运算符是微不足道的
X 类没有虚函数...
所以你的类A
是不可复制的,因为它有一个虚函数func
。
推荐阅读
- css - 部署到 Azure:修复 Mime 类型会向服务器发送一个空的 css 文件
- git - 推送 git 分支
- vba - 悬挂线文本的左缩进与使用 VBA 的 PowerPoint 中第一行的左缩进相同
- c++ - 无法通过 std::vector
到 winrt::array_view - python-3.x - 在python中乘以列表---删除列表
- android - 在打开新片段活动时停止播放音频文件
- python - 如何获取txt文件中某个单词的具体编号?
- javascript - 在 JavaScript 中获取 Base64 gif 的第一帧
- sql-server - Sql连接表并从同一列上获取数据
- php - 现有 laravel 项目的 file_put_contents 错误