编译器语言支持是否对所有编译器端口通用

Is compiler language support common to all compiler ports

我正在使用 GNU Arm Embedded Toolchain 10-2020-q4-major (arm-none-eabi-* 10.2.1),我想利用现代 c++ 功能。

所以我试图找出哪些 C++ 功能(语言核心功能以及 libstdc++ 功能)可用于此特定工具链。我通读了这个矩阵https://gcc.gnu.org/projects/cxx-status.html,他们似乎没有区分不同的编译器端口。

我如何找到我是否可以使用 C++17 或 C++20 功能,例如?

此致, 雨果

正如您在列出的 gcc.gnu 站点上看到的那样,列出了所有 C++17 和 C++20 功能。 “在 GCC 中可用?”指定需要哪个版本的 GCC 编译器才能提供给定的功能。它本质上不是您的工具链,而是定义您的功能集的编译器(作为该工具链的一部分)。

在您给定的情况下,您正在为 arm-non-eabi 架构使用 GCC 编译器,不会更改此功能集,编译器的版本会更改。因此,使用 arm-non-eabi-g++-10.2.1,您应该拥有该编译器版本的所有功能。