提高 C++ 语言版本和标准库依赖项方面的要求

Posted

技术标签:

【中文标题】提高 C++ 语言版本和标准库依赖项方面的要求【英文标题】:Boost requirements in terms of C++ language version and Standard Library dependencies 【发布时间】:2014-10-27 10:41:35 【问题描述】:

经过大量研究和深入研究 Boost 库文档后,我找不到以下问题的答案或高级建议:

Boost 对 C++ 语言版本有哪些要求? C++03? C++11?我现在如何知道哪个版本的 Boost 需要哪个版本的 C++ 语言?

是否取决于特定的库(大多数情况下,包括 .hpp 文件)。 我是否必须手动检查(作为最后手段)我可能需要的所有库和所有 Boost 版本,从最新开始,然后向后移动,以防我需要不那么严格的依赖项?

C++ 标准库有哪些依赖项?

上下文:

我正在评估 Boost 在嵌入式平台上的使用(MCU 有限且没有虚拟内存,没有底层操作系统)。 我有支持 C++11 的 GCC 4.8.1。 我们没有为此平台提供完整的 C++ 标准库。 我希望使用 Boost 作为 C++ 标准库的补充和替代,因此我对上述主题进行了研究。

我很欣赏 Boost 项目文档的高质量,但是,我在官方文档中找不到对上述主题的任何参考。也许我错过了什么。

P.S.:对历史上复杂的 C++ 语言版本、标准库和 Boost 库主题的介绍,

http://news.dice.com/2013/03/15/comparing-the-c-standard-and-boost-2/

【问题讨论】:

是的,您总是在您需要的所有平台上测试您的软件。然后是boost.org/doc/libs/release/libs/msm/doc/html/ch04s03.html 我知道回归测试。然而,这并没有解决我关心的核心问题。 【参考方案1】:

http://beta.boost.org/development/tests/master/developer/summary.html

这列出了一些针对 boost 进行测试的平台。 在每个版本中,boost 都会提到它已针对哪些平台进行了测试。

预计它可以在比所列平台更多的平台上工作,但不能保证。

【讨论】:

感谢您的链接,但是,这并不能回答我的问题 :-( 该链接仅显示了针对不同 Boost 库的不同编译器、选项和平台的测试覆盖率。怎么样最少的依赖集?我需要哪种 C++ 语言版本(最低)?哪些语言功能?我需要部分/完整的标准库吗?【参考方案2】:

boost 库在支持新的 c++ 功能方面的支持和发展与其他库的关系并不紧密。由于 boost 主要生活在单声道标准世界 (c++03) 中,因此暗示它可以在 c++03 中工作。但是由于 boost 人们倾向于以一种聪明的方式做事,对于现在支持 c++11 特性的库,他们要么使用一些特性仿真系统来保持它在 c++03 上工作,要么他们测试你的配置,如果你不能使用一些高级的东西然后他们就禁用它。

所以基本上没有语言标准要求,它适用于所有具有不同功能集的 c++03/C++11/C++14。

对于其他要求(即 STL 的部分),它直接取决于您想要的库。最好的方法是测试。您可能会找到一种方法在您的平台上启动他​​们的单元测试,看看有多少是有效的。

您可能还想检查Boost Config,这是所有其他人用来检查功能的库。

【讨论】:

以上是关于提高 C++ 语言版本和标准库依赖项方面的要求的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C++ 中拆分字符串而不将其他库安装到标准 Ubuntu 版本? [复制]

桌面端编程之通过C++的标准模板库代码快速提高编程能力

c++标准库都有哪些?

c++ 标准库函数都有哪些?

C++--标准库 字符串类

C++ 标准是不是要求对 wchar_t 进行编码?