<random> 在 GCC 4.8 中包含必要吗?



我继承了一个2014年编写的C++项目,该项目确实使用GCC 4.8编译。在一个特定的文件中,实例化了当前在C++标准库的<random>头中找到的几个类。其中包括mt19937random_deviceuniform_real_distributionnormal_distribution

当我用GCC 7.3编译这个文件时,我得到一个错误,说这些类没有在std命名空间中定义。当我包含<random>时,这个错误(显然(会消失。

我的问题是为什么GCC 4.8中没有出现这个错误?这些类以前是在不同的标题下找到的吗?

标准标头可能包括其他标头。当它们共享一个实现时,这可能很有用。然而,这些事情可能会随着时间的推移而改变,例如,当公共部分被重构为第三个(内部(头文件时。

由于我们不知道<random>是如何间接包含在GCC4.8中的,我们不能对所发生的事情持绝对肯定的态度,但这并不奇怪。

相关内容

  • 没有找到相关文章

最新更新