如何在 CMake 中设置标准 C++ 2003

How to set standard C++ 2003 in CMake

提问人:Hubertm998 提问时间:8/19/2022 更新时间:10/16/2022 访问量:725

问:

我正在寻找如何在 cmake 中将 C++ 标准设置为 2003 的解决方案。我可以找到很多关于如何在更高版本(如 11、17 等)上执行此操作的信息。但是对于 2003 版本,我找不到它。有人知道如何设置它吗?我还发现了如何通过向项目包含的每个 cmake 列表添加标志来做到这一点。问题是我的项目中有很多 cmake 列表,我想在主 cmake 列表中添加一次。 提前感谢您的帮助。

CMake C++03

评论


答:

2赞 starball 8/19/2022 #1

请参阅文档了解CMAKE_CXX_STANDARD

支持的值为:[98, 11, 14, 17, 20, 23]。

03不支持。


笔记:

请注意,虽然 gcc 支持作为标志,但它只是 -std=c++98 的别名。因此,这两个标志具有相同的效果,并且使用这两个标志中的哪一个没有区别-std=c++03

最初的 ISO C++ 标准作为 ISO 标准 (ISO/IEC 14882:1998) 发布,并由 2003 年发布的技术勘误 (ISO/IEC 14882:2003) 修订。这些标准分别称为 C++98 和 C++03。GCC 实现了大部分 C++98(导出是一个明显的例外)和 C++03 中的大部分更改。要在 GCC 中选择此标准,请使用选项之一 -ansi、-std=c++98 或 -std=c++03;若要获取标准所需的所有诊断,还应指定 -pedantic(如果希望它们为错误而不是警告,则指定 -pedantic-errors)。

MSVC 不提供用于选择早于 C++14 的标准的标志(ctrl+F 表示“/std”)。