首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >哪些助推库利用了移动语义

哪些助推库利用了移动语义
EN

Stack Overflow用户
提问于 2012-03-09 21:25:55
回答 1查看 1.5K关注 0票数 12

右值引用和移动语义是C++11的一个主要功能,可以通过减少不必要的副本来显着提高代码速度。STL已更新,以便在使用c++11/0x编译器(例如,gcc 4.6)时使用此新功能。

Boost1.48引入了一个新库,以便在较旧的C++03编译器上模拟移动语义。此库的工作方式是引入宏,这些宏在使用C++11编译器编译代码时扩展为真正的右值引用,或者在使用C++03编译器编译代码时扩展为模拟的右值引用。

除了boost::container之外,是否有任何其他的boost库进行了更新,以利用移动语义?

是否有详细说明何时/是否将移动语义添加到其他boost库的路线图?

boost::multi_index_container提到了在Boost.MultiIndex Future work上添加移动语义,因为它是在1.31版本中引入的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-09 22:26:44

正如您在问题中所说的,Boost1.48引入了boost::move,这是一个用C++03模拟移动语义的库。这是由Ion Gaztanaga开发的,他也(主要)编写并维护了boost::intrusiveboost::container

侵入式和容器都支持移动语义-事实上,boost::intrusive必须支持boost::container to的移动语义,因为boost::container基本上是一堆非侵入式容器,通过包装它们的boost::intrusive副本来实现。在我看来,侵入式/容器是编写boost::move的动机,所以他们比boost的其余部分领先也就不足为奇了。

但这里需要注意的是,boost并没有路线图或委员会- boost只是共享发行版、网站和审查/质量控制过程的库的集合。您必须将每个库视为一个单独的项目,只有当作者/维护者有兴趣做这项工作时(当然,当您向他们发送补丁时)才会进行更新。

The boost 1.48/1.49/1.50/1.51/1.52 release notes是寻找可靠答案的最佳位置:

从1.45开始,C++11和C++03都支持

  • Boost.Interprocess。在1.48之前,这包含了boost.move.
  • Boost.Asio从1.47开始支持的代码;C++03
  • Boost.Intrusive中的仿真在1.48中没有通过boost.move获得支持(C++11,C++03)
  • Boost.Unordered在1.48中是通过boost.move获得支持的) (C++11,C++03)
  • Boost.Unordered在1.49中通过boost.move获得支持(C++11,with在1.49中通过boost.move获得支持(C++11,使用在C++03)
  • Boost.Thread中启用模拟的support
  • Boost.Function支持使用#define进行C++03模拟。从1.50开始,旧版本仅在C++11中添加了C++11,在1.52

中仅支持C++11

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9641216

复制
相关文章
移动互联助推“智慧民生”
移动互联助推“智慧民生” 司晓   腾讯互联网与社会研究院秘书长 ●11月22日,由北京大学法学院、斯坦福大学法学院、牛津大学法学院共同主办的“2014:北大-斯坦福-牛津:互联网法律与公共政策研讨会”在北京大学举行。腾讯互联网与社会研究院秘书长司晓博士发表题为《移动互联与“智慧民生”》的演讲。 ●司晓博士以移动互联产业趋势为切入,重点阐述了腾讯在“智慧民生”方面的研究成果和探索,并以腾讯公司的大量前沿实践进行了直观展示。此外,腾讯互联网与社会研究院网站(tisi.org)也正式上线。 全
腾讯研究院
2018/03/09
8590
什么是移动语义
我刚刚听完关于 C++0X 的广播,具体地址在这里:podcast interview with Scott Meyers
ClearSeve
2022/02/10
6640
C++的移动语义
C++的移动语义是一种优化技术,它旨在减少对象资源的拷贝和销毁操作,提高程序的性能。移动语义通过将资源所有权从一个对象转移到另一个对象来实现。
叶茂林
2023/07/30
4970
左右值引用和移动语义
什么是左值、右值呢?一种极不严谨的理解为:在赋值的时候,能够被放到等号左边的值为左值,放在右边的值为右值。例如:
艰默
2023/02/26
8840
左右值引用和移动语义
C++右值引用/移动语义
左值是一个表示数据的表达式(如变量名或解引用的指针),我们可以获取它的地址+可以对它赋值,左值可以出现赋值符号的左边,也可以出现在赋值符号的右边。定义时const修饰符后的左 值,不能给它赋值,但是可以取它的地址。左值引用就是给左值的引用,给左值取别名。
二肥是只大懒蓝猫
2023/03/30
4830
C++右值引用/移动语义
C++移动语义及拷贝优化
我们知道在传统C++程序中,如果函数的返回值是一个对象的话,可能需要对函数中的局部对象进行拷贝。如果该对象很大的话,则程序的效率会降低。
卡尔曼和玻尔兹曼谁曼
2019/01/22
1.8K0
Spring 框架使用了哪些设计模式?
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
芋道源码
2022/08/29
1K0
Spring 框架使用了哪些设计模式?
Netty 中应用了哪些设计模式?
Netty 源码中运用了大量的设计模式,常见的设计模式在 Netty 源码中都有所体现。
MickyInvQ
2021/02/06
1.1K0
Netty 中应用了哪些设计模式?
C++10中的移动语义
第一次默认拷贝构造函数的调用是在demo对象的初始化过程中; 两次拷贝构造函数实在clone函数的调用过程中: clone函数中利用this对象初始化demo对象进行一个拷贝构造,然后返回demo对象。返回过程中会再次调用一次拷贝构造返回局部对象demo的一个拷贝。
卡尔曼和玻尔兹曼谁曼
2019/01/22
5000
C++10中的移动语义
物联网中使用了哪些技术?
物联网不断为我们带来更美好的未来:冰箱能够自动在当地杂货店订购食物以补充自己,桥梁向迎面而来的汽车发出冰冻表面的警告,或者是监控你的健康状况并将实时数据直接发送到医生的iPhone上的智能设备。虽然这一切可能很快触手可及,我们必须意识到,在这些场景的背后,是巨大的机器使梦想成为现实。没有我们周围无数的物联网技术,这些梦想永远不会实现。
用户2605137
2022/04/12
1.3K0
物联网中使用了哪些技术?
【Modern C++】深入理解移动语义
一直以来,C++中基于值语义的拷贝和赋值严重影响了程序性能。尤其是对于资源密集型对象,如果进行大量的拷贝,势必会对程序性能造成很大的影响。为了尽可能的减小因为对象拷贝对程序的影响,开发人员使出了万般招式:尽可能的使用指针、引用。而编译器也没闲着,通过使用RVO、NRVO以及复制省略技术,来减小拷贝次数来提升代码的运行效率。
高性能架构探索
2022/08/25
8820
【Modern C++】深入理解移动语义
“盘活”故宫、敦煌、秦陵…腾讯用了哪些法宝?
6月8日,是“文化和自然遗产日”,在这一天,在中国的古都西安,一个混血儿诞生了:代表着科技与新时代的腾讯地图及腾讯文旅,和代表着历史与文化传承的秦始皇帝陵博物院,联合上线了一款名为「寻迹始皇陵」的智慧导览小程序。 这是一次科技和历史的结合,除了国内,在全球范围都在上演。 最近举世闻名的案例就是,十万只LED的数位灯和近七百八十盏特殊照明灯具,耗时两年,为从文艺复兴时期以来一直是天主教标志的世界知名的梵蒂冈圣彼得/伯多禄大教堂(Basilica di San Pietro)披上了新衣,新的照明技
腾讯文旅
2020/06/17
4700
Netty在Dubbo中使用了哪些Handler
Spring在启动的过程中,通过DubboNamespaceHandler解析上面的标签.
书唐瑞
2022/06/02
4120
Netty在Dubbo中使用了哪些Handler
移动端地图哪些事
在App中接入地图是很多项目的需求,咱们可选的有百度地图SDK,高德地图SDK甚至是腾讯地图SDK,当然了谷歌中国区地图就不说了……那么问题来了今天说的是啥呢?当然不是iOS开发技术啦而是科普
大话swift
2019/12/03
1.1K0
移动端地图哪些事
面试官:Mybatis 使用了哪些设计模式?
虽然我们都知道有26个设计模式,但是大多停留在概念层面,真实开发中很少遇到,Mybatis源码中使用了大量的设计模式,阅读源码并观察设计模式在其中的应用,能够更深入的理解设计模式。
用户5224393
2019/06/14
3850
C++11移动语义与右值引用
C++11新标准中一个最主要的特性就是提供了移动而非拷贝对象的能力。如此做的好处就是,在某些情况下,对象拷贝后就立即被销毁了,此时如果移动而非拷贝对象会大幅提升性能。参考如下程序:
恋喵大鲤鱼
2019/02/22
1.1K0
对付黑客,这些国家用了哪些奇招?
2019年5月5日, 以色列国防军(IDF) 表示,他们成功阻止了巴勒斯坦军事情报组织哈马斯(Hamas)上周末发起的网络攻击,并用无人机对位于加沙地带的哈马斯总部大楼进行了空袭。这也是IDF首次通过物理攻击方式来打击网络攻击。
FB客服
2019/05/17
5630
对付黑客,这些国家用了哪些奇招?
工作中用了Visual Studio Code哪些插件
随着Visual Studio Code越来越完善,逐步在工作中由PyCharm Community迁移至Visual Studio Code下进行开发,为什么要做迁移呢?
苦叶子
2019/08/08
1.3K0
工作中用了Visual Studio Code哪些插件
WPF 如何获取有哪些 VisualBrush 用了某个控件
我写了一个特殊的控件,我期望了解到有哪些 VisualBrush 捕获了此控件,或者说有哪些 VisualBrush 用了此控件的界面
林德熙
2021/08/31
4630
WPF 如何获取有哪些 VisualBrush 用了某个控件
点击加载更多

相似问题

益利助推器- TbExtendedGridView

22

xgboost:在线性助推器中使用了哪些参数?

125

这个网站使用了哪些库?

20

是否可以移动助推::可选?

33

移动助推::绑定到lambda

18
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文