根据Agner Fog (2018-08-18) 第 50 页的“在 C++ 中优化软件”,如果不满足这些条件中的任何一个,则传输指针或对象引用通常会更快。
- 对象是如此之小以至于它可以放入单个寄存器中
- 该对象没有复制构造函数,也没有析构函数
- 该对象没有虚拟成员
- 该对象不使用运行时类型标识 (RTTI)
前两个条件背后的原因是相当明显的。第三个条件是由于添加到对象的 vptr,这将使其“太大”而无法有效地按值传递。那是对的吗?
谁能解释一下第四个条件?
根据Agner Fog (2018-08-18) 第 50 页的“在 C++ 中优化软件”,如果不满足这些条件中的任何一个,则传输指针或对象引用通常会更快。
前两个条件背后的原因是相当明显的。第三个条件是由于添加到对象的 vptr,这将使其“太大”而无法有效地按值传递。那是对的吗?
谁能解释一下第四个条件?