c++ - 为什么默认情况下大多数对的实现不使用压缩(空基优化)?
问题描述
我检查了libcxx、eastl和boost,它们的所有对都是微不足道的,没有 ebco。但是它们都实现了自己的compressed_pa ir并在实用程序中使用它,例如unique_ptr(first -> pointer, second -> deleter )。
既然 ebco 很有用,为什么它们的对默认不压缩呢?这种优化有什么取舍吗?
解决方案
的实现std::pair
不能使用空基优化(EBO),因为它包含的对象是成员子对象first
和,second
而 EBO 仅适用于基类子对象。
请注意, 的实现可以使用 EBO,因为它的子对象通过 暴露,这允许使用基类子对象。std::tuple
std::get
推荐阅读
- wordpress - Wordpress 网站在图片之前上传文本
- php - 在 Woocommerce 产品页面上自定义附加按钮
- javascript - 在 JS 中导航 xml 文档的最快方法是什么?
- c - 如何正确进行 GMP 位移?
- r - R,tbl_summary,正确对待连续变量
- sql - 将周聚合分解为日期
- api - 您可以在 google 附近的消息 API 上更新消息吗?
- python - 什么是(for 循环内的 list.index())复杂度
- javascript - 道具类型失败:“object”类型的道具“defaultValue”无效
- python - 我正在尝试导入这个 simpletransformers 得到了错误