| struct ClassWithImplicitCtor { | |
| int foo() { return 1; } | |
| }; | |
| struct ClassWithDefaultedCtor { | |
| ClassWithDefaultedCtor() = default; | |
| int foo() { return 2; } | |
| }; | |
| struct ClassWithOneCtor { | |
| int value; | |
| ClassWithOneCtor(int i) { value = i; } | |
| }; | |
| struct ClassWithMultipleCtor { | |
| int value; | |
| ClassWithMultipleCtor(int i) { value = i; } | |
| ClassWithMultipleCtor(int i, int v) { value = v + i; } | |
| }; | |
| struct ClassWithDeletedCtor { | |
| int value; | |
| ClassWithDeletedCtor() { value = 6; } | |
| ClassWithDeletedCtor(int i) = delete; | |
| }; | |
| struct ClassWithDeletedDefaultCtor { | |
| int value; | |
| ClassWithDeletedDefaultCtor() = delete; | |
| ClassWithDeletedDefaultCtor(int i) { value = i; } | |
| }; | |
| int main() { | |
| ClassWithImplicitCtor C1; | |
| C1.foo(); | |
| ClassWithDefaultedCtor C2; | |
| C2.foo(); | |
| ClassWithOneCtor C3(22); | |
| ClassWithMultipleCtor C4(23); | |
| ClassWithMultipleCtor C5(24, 25); | |
| ClassWithDeletedCtor C6; | |
| ClassWithDeletedDefaultCtor C7(26); | |
| return 0; // break here | |
| } |