46 lines · cpp
1struct ClassWithImplicitCtor {2 int foo() { return 1; }3};4 5struct ClassWithDefaultedCtor {6 ClassWithDefaultedCtor() = default;7 int foo() { return 2; }8};9 10struct ClassWithOneCtor {11 int value;12 ClassWithOneCtor(int i) { value = i; }13};14 15struct ClassWithMultipleCtor {16 int value;17 ClassWithMultipleCtor(int i) { value = i; }18 ClassWithMultipleCtor(int i, int v) { value = v + i; }19};20 21struct ClassWithDeletedCtor {22 int value;23 ClassWithDeletedCtor() { value = 6; }24 ClassWithDeletedCtor(int i) = delete;25};26 27struct ClassWithDeletedDefaultCtor {28 int value;29 ClassWithDeletedDefaultCtor() = delete;30 ClassWithDeletedDefaultCtor(int i) { value = i; }31};32 33int main() {34 ClassWithImplicitCtor C1;35 C1.foo();36 ClassWithDefaultedCtor C2;37 C2.foo();38 ClassWithOneCtor C3(22);39 ClassWithMultipleCtor C4(23);40 ClassWithMultipleCtor C5(24, 25);41 ClassWithDeletedCtor C6;42 ClassWithDeletedDefaultCtor C7(26);43 44 return 0; // break here45}46