不能用 () 创建原子

Can't create atomic with ()

我试图以不同的方式创建 std::atomic_bool 对象:

std::atomic_bool f1 = false;   // OK
std::atomic_bool f2 = {false}; // OK
std::atomic_bool f3{false};    // OK
std::atomic_bool f4(false);    // ERROR: expected identifier before «false»

为什么最后一个不行?

P.S:用g++ -std=c++20编译。

编辑:这些是 class 成员变量。

不能用括号初始化成员变量,因为按照语法,那必须是成员函数声明。

在可以在变量声明中编写成员初始值设定项之前,这种语法怪癖并没有引起任何问题。