c++ - 解决 Mac 上 c++20 代码的编译错误
问题描述
我正在尝试将我的机器设置为能够编译 c++20 代码。我有一个简单的示例代码
#include <concepts>
#include <iostream>
template<typename T>
requires std::integral<T>
auto gcd(T a, T b) {
if(b == 0) return a;
else return gcd(b, a%b);
}
int main() {
std::cout << "\n";
std::cout << gcd(100,10) << "\n";
}
我试图在 MacOS (11.5.1/BigSur) 上编译。
xcode 版本 - Xcode 12.5.1 构建版本 12E507
clang 版本 - 苹果 clang 版本 12.0.5 (clang-1205.0.22.11)
编译命令
g++ -std=c++20 myfile.cpp
我收到以下错误:
myfile.cpp:25:24: error: 'T' does not refer to a value
requires std::integral<T>
^
myfile.cpp:24:19: note: declared here
template<typename T>
^
myfile.cpp:25:15: error: no member named 'integral' in namespace 'std'; did you mean 'internal'?
requires std::integral<T>
~~~~~^~~~~~~~
internal
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/ios:960:1: note: 'internal' declared here
internal(ios_base& __str)
^
myfile.cpp:26:1: error: expected expression
auto gcd(T a, T b) {
^
3 errors generated
需要帮助。
解决方案
推荐阅读
- c# - 模型在一个视图中工作正常,但在另一个视图中抛出异常
- java - 与 Maven 的雪花连接,类路径上的 jar
- jquery - 如何阻止锚链接跳转到页面的另一个区域
- node.js - 我无法连接到站点套接字
- python - 奇怪的 Pynput 错误 Pynput Controller AttributeError: 'str' object has no attribute 'value'
- java - 下拉通知面板时是否可以暂停Android中的任何视频(媒体播放器)应用程序?
- spring-boot - 让 ElasticsearchRepository 返回页面中的特定字段?
- node.js - Facebook 登录并显示应用错误消息:“无法加载 URL:此 URL 的域不包含在应用的域中......”
- python - 如何同时抓取tcp并将http转发到mitmproxy上的其他工具
- riscv - 设置 RISC-V 的 mstatus 寄存器