GCC 7.3是否包含所有C++17特性?

3

我正在尝试使用CMake命令构建一个使用c++17标准的项目:

set_target_properties(${PROJECT_NAME} PROPERTIES
    CXX_STANDARD 17
    CXX_EXTENSIONS OFF
)

我看到它设置了编译器标志“-std=c++1z”,但我仍然收到错误,表明c++方言不足:
错误:此作用域中未声明“reduce” 错误:此作用域中未声明“to_chars_result”
这些应该来自和 当我在Windows上构建时,这个项目确实可以编译。

https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2017 似乎表明,“基本字符串转换”(我猜包括 to_chars_result)的支持仅在版本11.1中完成。 - Nate Eldredge
1个回答

4

GCC 7.3 是否包含所有的c++17特性?

不是。 根据文档,编译器具备所有语言功能,但标准库缺少一些东西。


我怎样才能知道我所需的功能是否在我使用的版本中可用? - Nadav Sagie
2
@NadavSagie 我首先去这个网站查找这类问题:https://en.cppreference.com/w/cpp/compiler_support - NathanOliver
@NadavSagie 如果语言实现的文档中说明已在您使用的版本中完成,则可以知道该功能可用。还有特征测试宏。 - eerorika

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接