如何验证我使用的 boost 库是不是支持 C++11?

Posted

技术标签:

【中文标题】如何验证我使用的 boost 库是不是支持 C++11?【英文标题】:How to verify the boost library I'm using supports C++11?如何验证我使用的 boost 库是否支持 C++11? 【发布时间】:2018-12-30 20:43:05 【问题描述】:

我想检查我链接的 Boost 库是否支持 C++11。是否有我可以运行的函数或我可以验证的定义来确定这一点?

【问题讨论】:

你的意思是你担心这个库需要 C++14/C++17 并且它会在你的环境中中断? 您使用的是哪个版本的 Boost? 我使用的是 1.69.0。我注意到当我编译它时会进行 C++11 检查。在 Mac 上,我必须传递编译和链接标志来指定 C++11。所以我只是想验证是否在运行时为 Boost 启用了 C++11 支持。 @Jason 为什么需要额外的运行时检查?他们要么使用它和 DLL(或 .so)链接,要么如果你依赖于正在使用的新功能,你应该得到链接器错误。 我认为可能存在仅在检测到 C++11 支持时才启用的可选功能,所以我想要这些额外功能(特别是如果它们与性能相关)。当我在 Mac 上使用 ./b2 编译并且没有专门启用 C++11 支持时,我注意到对各种 C++11 功能的配置检查已关闭。我可以在编译时继续检查,我只是想运行时检查也可以验证这一点。 【参考方案1】:

运行./b2时,需要使用C++11编译器标志进行编译:

$ ./b2 --reconfigure -a cxxflags="-O3 --std=c++11"

【讨论】:

以上是关于如何验证我使用的 boost 库是不是支持 C++11?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 windows phone 8 上为 smartfox 构建 boost C++ 库

boost 库是不是依赖于 std C++ 库?

如何在 C++ 中通过 Rcpp 使用 Boost 库

如何使用 boost::test 设置 c++ 龟模拟库?

使用 C++ boost 库如何创建两个圆圈并将它们添加到 boost R-tree?

如何在 pkg-config 中使用 C++ Boost 库?