首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Boost与C++11的互操作性

Boost与C++11的互操作性
EN

Stack Overflow用户
提问于 2014-03-26 11:05:44
回答 2查看 761关注 0票数 6

C++11和用C++11编译器构建的最新版本Boost (比如1.55)之间的互操作性有多大。

  1. 任何库特性的行为是否会根据是否启用c++11标志构建库而改变?
  2. 像lambda函数这样的语言特性是如何与Boost的lambdas合作的?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-26 11:13:55

  1. 不能同时使用带有和不带gcc-std=c++11构建的对象。您将得到链接错误,甚至运行时崩溃。我无法为其他C++实现提供担保。因此,至少对于gcc,您确实需要构建一个单独版本的Boost,并启用c++11模式。
  2. 他们几乎是独立的。他们不合作也不干涉对方。

编辑我看到人们还在阅读(和更新!)这个答案。第一点是不再是真(也许永远不是真)。gcc版本(我认为5.1以上)默认使用与-std=<anything>兼容的ABI。

票数 6
EN

Stack Overflow用户

发布于 2014-03-26 14:02:59

行为不变:在代码级别,Boost与C++03和C++11兼容。

但是,在对象级别,您将无法进行混合和匹配:如果您的程序被编译为C++11,并且您使用的是一些非标头的Boost库,那么您也必须将这些Boost库构建为C++11。这是因为无法保证每个版本的语言的工具链的C++运行时具有ABI兼容性。

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

https://stackoverflow.com/questions/22659035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档