Apple Clang 在使用括号初始化时出错,而 g++和普通的 Clang 作品
来自 learncpp.com 的代码示例不适用于 Apple Clang 13.0.0,而适用于 Homebrew 中的普通 Clang 和 g++。
代码
#include <iostream>
int getValueFromUser()
{
std::cout << "Enter an integer: ";
int input{};
std::cin >> input;
return input;
}
void printDouble(int value)
{
std::cout << value << " doubled is: " << value * 2 << '\n';
}
int main()
{
printDouble(getValueFromUser());
return 0;
}
错误
main.cpp:6:11: error: expected ';' at end of declaration
int input{};
^
;
1 error generated.
Apple Clang 不支持括号初始化吗?我现在真的很困惑。
This code example from learncpp.com doesn't work on Apple Clang 13.0.0 while working on both ordinary Clang and g++ from Homebrew.
Code
#include <iostream>
int getValueFromUser()
{
std::cout << "Enter an integer: ";
int input{};
std::cin >> input;
return input;
}
void printDouble(int value)
{
std::cout << value << " doubled is: " << value * 2 << '\n';
}
int main()
{
printDouble(getValueFromUser());
return 0;
}
Error
main.cpp:6:11: error: expected ';' at end of declaration
int input{};
^
;
1 error generated.
Does Apple Clang have no support for initializations by brackets? I'm really puzzled right now.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,看起来 Apple Clang 的默认标准非常旧。当我添加
-std=c++20
作为标志时,它进行了编译。Yeah, seems like Apple Clang's default standard is super old. When I added
-std=c++20
as a flag it compiled.