繁体   English   中英

使用Boost和C ++ 14编译器

[英]Using Boost with C++14 compiler

当我使用C ++ 11支持编译我的代码(使用-std=c++11标志)并使用非标头的Boost库时,我需要使用-std=c++11编译Boost。 这是因为当启用C ++ 11时,Boost在头文件中有一些接口差异,并且某些功能签名对于不同的C ++标准是不同的。

我的问题是C ++ 14是否也是如此(使用g ++ 4.9,使用`-std = c ++ 1y标志),或者使用C ++ 11编译的Boost是否可以安全地使用C编译的程序++ 14?

这是一个非常广泛的问题,很难明确回答,因为

  • Boost是一个图书馆联盟,其中许多已有十多年的历史
  • 有很多向后兼容性原则上可以发生,有些是由编译器检测到的,有些只是通过单元测试
  • 许多Boost库实际上是C ++ 11/14功能的C ++ 98实现(包括库和编译器功能),因此您不需要在C ++ 11/14项目中使用它。
  • Boost本身就是在讨论库应该更新到C ++ 11/14的非常多的争论,是否应该编写完全利用C ++ 11/14的V2版本的库,甚至是新的C ++ 11 / 14库应提供向后C ++ 98兼容性

您可能希望仔细阅读编译器错误(如果有),并将它们与下面列出的重大更改列表进行比较。 此外,我建议遵循Boost测试工具来查找适用于您系统的可疑编译器/库组合。

一些相关的问答在这里:

  1. C ++ 11中引入了哪些重大变化?
  2. C ++ 14中引入的哪些更改可能会破坏用C ++ 11编写的程序?
  3. 与C ++ 11相关的增强功能
  4. 如何提升使用c ++ 11?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM