0

这段代码:

struct F
{
    F() = delete;
    void foo() {};
};

int main()
{
    F{}.foo();
}

现场演示在这里

可以说我假设它不会编译(因为我们正在调用已删除的构造函数)。为什么它可以在我尝试过的任何编译器上编译?

我注意到不使用统一初始化,编译代码会导致预期的错误。那么为什么在存在已删除构造函数的情况下仍然允许(聚合?)初始化?

4

0 回答 0