带有初始化列表的ctor
https://en.cppreference.com/w/cpp/language/copy_initialization.html
/*
ASM generation compiler returned: 0
Execution build compiler returned: 0
Program returned: 0
2
1
2
*/
struct Dummy {
Dummy(int a) { cout << "1" << endl;}
Dummy(initializer_list<int> a) {cout << "2" << endl;}
Dummy(const Dummy& a) {cout << "3" << endl;}
Dummy(Dummy&& a) { cout << "4" << endl;}
Dummy& operator=(const Dummy& a) {cout << "5" << endl; return *this;}
Dummy& operator=(Dummy&& a) {cout << "6" << endl; return *this;}
};
int main (){
int v = 1;
Dummy a1{v}; // 列表初始化
Dummy a3(v); // 函数风格初始化
Dummy a4 = {v};// 列表初始化, since c++11
}
- default ctor has higher priority than initializer_list ctor
- initializer_list ctor has higher prioirty than other ctors
本文来自博客园,作者:ijpq,转载请注明原文链接:https://www.cnblogs.com/ijpq/p/17347835.html

浙公网安备 33010602011771号