C++ 版本,它们的含义,如何更新它们

Posted

技术标签:

【中文标题】C++ 版本,它们的含义,如何更新它们【英文标题】:C++ versions, what they mean, how to update them 【发布时间】:2020-09-19 00:30:29 【问题描述】:

您使用的 c++ 版本是否与您拥有的编译器或 IDE 版本相关联? 如果不是其中任何一个,我如何在我的 IDE 上使用 c++ 11?如何更新我在程序中使用的 C++ 版本? 如何查看我使用的版本?

我知道打印 __cplusplus 变量可以告诉我我正在使用什么版本,但这并不能回答我的其他问题,也不能回答我的第三个问题,因为:https://***.com/a/14131551/10938047

找到这个问题,答案包含一个过时的链接。 Visual Studio 2012 __cplusplus and C++ 11

【问题讨论】:

您只能在一个线程中提出一个问题。所以请具体一点。 对于 Visual Studio 2012,它甚至不完全支持 c++11。 这能回答你的问题吗? Where do I find the current C or C++ standard documents? 您使用的 c++ 版本是否与编译器版本相关 与编译器相关,但是 Visual Studio 带有 IDE 和编译器。更现代的 Visual Studio IDE 版本允许选择工具集。一个这样的例子是在 Visual Studio 2019 中,我可以打开一个 VS 2013 项目并让 VS 2013 的编译器构建我的代码。这很重要,因为我的一些旧代码与新编译器不兼容。 __cplusplus 不可靠。大多数版本的 MSVC(除了最近的版本并且通常需要特定选项)默认该变量为 C++98,尽管编译器可以做的更多。 【参考方案1】:

您可以使用的 C++ 版本显然与您使用的编译器相关。如果您的编译器不支持某些较新的标准,那么您当然不能使用它。

至于 IDE;有些 IDE 与特定的编译器相关联,有些可以使用不同的编译器。

某些编译器支持多种语言版本,但要求您显式启用比默认启用的版本更新的任何内容。例如;大多数旧版本的 GCC 都支持 C++17,但默认为 C++11 或 C++14,除非您通过 -std=c++17 命令行选项告诉他们启用 C++17 支持。

【讨论】:

以上是关于C++ 版本,它们的含义,如何更新它们的主要内容,如果未能解决你的问题,请参考以下文章

Swig - 结构的 C++ 向量以及如何连接它们

如何分离和保护文本块并在之后打开它们? C++

C 和 C++ 如何在堆栈上存储大对象?

C++ 版本,它们会自动检测 exe 的版本吗?

如何编译多个 C++ 文件以将它们与 Python ctypes 一起使用?

如何更新使用的quarkus版本