Sta*_*n E 3 c++ static-analysis c++11
所以,现在我的任务是检查整个代码中是否没有任何c ++ 11依赖项和功能.问题是 - 是否有可能检查是否有?
我现在可以想象的可以分为两组:
-std=c++11 -Wc++98-compat +解析输出;
Boost.Config +围绕所有代码的很多宏,这看起来比第一个更复杂;
在某些静态分析仪中可能有内置功能吗?
我正在多个平台上构建它,所以我可以在windows或linux上查看.
重新发表评论.
现代编译器-std=c++11默认为.旧的需要明确说我们想要c ++ 11 -std=c++11.您可以明确选择您想要的任何标准.所以使用-std=c++03会在所有C++ 11构造中给出错误.
但这不是一个完整的故事.有些代码可以在C++ 03和C++ 11中以不同的方式运行,但仍然可以编译!例如,静态初始化仅在C++ 11中是线程安全的,因此在C++ 03中,您将获得将编译但被窃听的代码.确保你需要与完全了解C++ 03,C++ 11及其差异的人一起审查整个代码.
您可以使用静态代码分析工具支持这项工作,但要100%确定您需要查看它...