1

考虑这段代码:

class Foo
{
public:
    Foo(){cout<<"empty"<<endl;}
    Foo(initializer_list<int>){cout<<"init_list"<<endl;}
};

int main()
{
    Foo(); // empty
    Foo{}; // empty
    Foo({}); // init_list for c++14, empty for c++17
}

我想知道为什么它们在 C++14 和 C++17 之间的行为不同,以及如何在 C++17 中构造一个Fooinitializer_list的?

4

0 回答 0