gpt4 book ai didi

C++11 初始化语法问题(使用 gcc 4.5/4.6)

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:05:47 25 4
gpt4 key购买 nike

以下 C++11 代码有什么问题:

struct S
{
int a;
float b;
};

struct T
{
T(S s) {}
};

int main()
{
T t(S{1, 0.1}); // ERROR HERE
}

gcc 在指定的行给出错误(我尝试了 gcc 4.5 和 gcc 4.6 的实验版本)

这不是有效的 C++11,还是 gcc 的实现不完整?

编辑:这里是编译器错误:

test.cpp: In function int main():
test.cpp:14:10: error: expected ) before { token
test.cpp:14:10: error: a function-definition is not allowed here before { token
test.cpp:14:18: error: expected primary-expression before ) token
test.cpp:14:18: error: expected ; before ) token

最佳答案

根据提案N2640 ,您的代码应该可以工作;应该创建一个临时 S 对象。 g++ 显然试图将此语句解析为声明(函数 t 期望 S),因此对我来说它看起来像是一个错误。

关于C++11 初始化语法问题(使用 gcc 4.5/4.6),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4581817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com