是否可以使用预处理器指令确定 C++ 标准库是否支持 C++11?
我目前正在开发一个使用 C++11 语言方言的项目,但使用的是不支持 C++11 的 C++ 标准库(我需要它才能与非 C++11 库链接)。
我知道我可以使用 测试 C++11 支持#if __cplusplus >= 201103L
,但在我的情况下,这将评估为 true。我需要了解 C++ 标准库对 C++11 的支持。
是否可以使用预处理器指令确定 C++ 标准库是否支持 C++11?
我目前正在开发一个使用 C++11 语言方言的项目,但使用的是不支持 C++11 的 C++ 标准库(我需要它才能与非 C++11 库链接)。
我知道我可以使用 测试 C++11 支持#if __cplusplus >= 201103L
,但在我的情况下,这将评估为 true。我需要了解 C++ 标准库对 C++11 的支持。
功能测试是标准委员会朝着下一个 C++14 标准(及更高标准)前进的一个积极研究方向。有一个第 10 研究组,它有自己的可免费访问的邮件列表,正在讨论当前的发展。为下次会议提交了这份N3694 工作文件。
我的问题是在 iOS 平台上,C++ 标准库的选择介于libstd++ (GNU C++ standard library)
和libc++ (LLVM C++ standard library with C++11 support)
. 我最终使用了_GLIBCXX_
. 完整的代码最终是:
#ifndef _GLIBCXX_
template <class T>
T&& move (T& arg) noexcept {
return static_cast<T&&>(arg);
}
#endif