检查是否使用了 c++11 特性

check if c++11 features are used or not

所以,现在我的任务是检查整个代码中是否没有任何 c++11 依赖项和功能。问题是 - 是否可以检查是否有?

我现在能想到的可以分为2组:

可能在某些静态分析器中有内置功能?

我正在多个平台上构建它,所以我可以检查 windows 或 linux。

重新发布我的评论。

现代编译器默认为 -std=c++11。旧的需要明确地说我们想要 -std=c++11 的 c++11。您可以明确选择您想要的任何标准。所以使用 -std=c++03 会给你所有 C++11 构造的错误。

但这还不是全部。一些代码在 C++03 和 C++11 中的行为可能不同,但仍然可以编译!例如,静态初始化仅在 C++11 中是线程安全的,因此在 C++03 中,您将获得可以编译但会被窃听的代码。请确保您需要与完全了解 C++03、C++11 及其差异的人员一起审查整个代码。

也许您可以使用静态代码分析工具来支持这项工作,但要 100% 确定您需要对其进行审查...