是否可以使用预处理程序指令确定C ++标准库是否支持C ++ 11?
我目前正在开发一个使用C ++ 11语言方言的项目,但是使用的是没有C ++ 11支持的C ++标准库(我需要它能够与非C ++ 11库链接) )。
我知道我可以使用#if __cplusplus >= 201103L
测试C ++ 11支持,但在我的情况下,这将评估为true。我需要了解C ++ 11的C ++标准库支持。
答案 0 :(得分:4)
对功能的测试是标准委员会迈向下一个C ++ 14标准(以及之外)的积极研究方向。第10研究组有自己可以自由访问的mailinglist,目前正在讨论当前的发展情况。对于下次会议,此N3694 working paper已提交。
答案 1 :(得分:3)
我的问题出在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