我有一个运行g++ 4.4.7
且仅支持#include <cstdatomic>
的系统。我有另一个运行g++ 4.9.1
并且仅支持#include <atomic>
的系统。
如何在不构建所有编译器的情况下,发现仅支持g++
的{{1}}的最早版本,或相反支持<atomic>
的{{1}}的最新版本做手动搜索?
更广泛地说,如何针对任意系统标题X回答此问题?
答案 0 :(得分:2)
有一个gcc git mirror,我会寻找这些东西。 <cstdatomic>
首次出现于2008年4月this commit,并于2009年12月以this one消失。据我所知,<atomic>
出现在同一个提交中。看看tags,后者围绕gcc 4.5发布的时间是圆的,当然,浏览源树,<cstdatomic>
随着4.5消失(但保留在后来的4.4版本中) <atomic>
出现在它的位置。
附录:在源树中查看的位置是libstdc++v3/include/
。 <cstdatomic>
位于c_global
,<atomic>
位于std
。
答案 1 :(得分:0)
更广泛地说,如何针对任意系统标题X回答此问题?
Wintermute显示最可靠的方式,但您也可以查看发行说明:
https://gcc.gnu.org/gcc-4.4/changes.html#cplusplus
https://gcc.gnu.org/gcc-4.5/changes.html#cplusplus
https://gcc.gnu.org/gcc-4.6/changes.html#cplusplus
https://gcc.gnu.org/gcc-4.7/changes.html#cxx
https://gcc.gnu.org/gcc-4.8/changes.html#cxx
https://gcc.gnu.org/gcc-4.9/changes.html#cxx
https://gcc.gnu.org/gcc-5/changes.html#cxx
它们并不总是列出所有更改,但它可能比围绕源存储库更快地进行更新。