gpt4 book ai didi

c++ - 为什么要在 if 条件下进行解析?

转载 作者:太空狗 更新时间:2023-10-29 20:22:59 24 4
gpt4 key购买 nike

<分区>

考虑代码:

#include <iostream>

struct Foo
{
Foo(int){}
operator bool() const
{
return true;
}
};

int main()
{
if(Foo foo{42})
{
std::cout << "ok\n";
}
}

它在 gcc5 下编译良好。但是,如果我将行 if(Foo foo{42}) 替换为

if(Foo foo(42))

我得到一个编译时错误:

error: expected primary-expression before 'foo'

这是怎么回事?没有令人烦恼的解析 imo,那么为什么使用大括号有效?

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