C++11和用C++11编译器构建的最新版本Boost (比如1.55)之间的互操作性有多大。
发布于 2014-03-26 11:13:55
gcc的-std=c++11构建的对象。您将得到链接错误,甚至运行时崩溃。我无法为其他C++实现提供担保。因此,至少对于gcc,您确实需要构建一个单独版本的Boost,并启用c++11模式。编辑我看到人们还在阅读(和更新!)这个答案。第一点是不再是真(也许永远不是真)。gcc版本(我认为5.1以上)默认使用与-std=<anything>兼容的ABI。
发布于 2014-03-26 14:02:59
行为不变:在代码级别,Boost与C++03和C++11兼容。
但是,在对象级别,您将无法进行混合和匹配:如果您的程序被编译为C++11,并且您使用的是一些非标头的Boost库,那么您也必须将这些Boost库构建为C++11。这是因为无法保证每个版本的语言的工具链的C++运行时具有ABI兼容性。
https://stackoverflow.com/questions/22659035
复制相似问题