我怎么知道哪个版本的g ++是最早使用`atomic`而不是`cstdatomic`的版本?

时间:2014-12-06 01:01:04

标签: c++ c++11

我有一个运行g++ 4.4.7且仅支持#include <cstdatomic>的系统。我有另一个运行g++ 4.9.1并且仅支持#include <atomic>的系统。

如何在不构建所有编译器的情况下,发现仅支持g++的{​​{1}}的最早版本,或相反支持<atomic>的{​​{1}}的最新版本做手动搜索?

更广泛地说,如何针对任意系统标题X回答此问题?

2 个答案:

答案 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

它们并不总是列出所有更改,但它可能比围绕源存储库更快地进行更新。