1*99451b44SJordan Rupprecht struct ClassWithImplicitCtor { fooClassWithImplicitCtor2*99451b44SJordan Rupprecht int foo() { return 1; } 3*99451b44SJordan Rupprecht }; 4*99451b44SJordan Rupprecht 5*99451b44SJordan Rupprecht struct ClassWithDefaultedCtor { 6*99451b44SJordan Rupprecht ClassWithDefaultedCtor() = default; fooClassWithDefaultedCtor7*99451b44SJordan Rupprecht int foo() { return 2; } 8*99451b44SJordan Rupprecht }; 9*99451b44SJordan Rupprecht 10*99451b44SJordan Rupprecht struct ClassWithOneCtor { 11*99451b44SJordan Rupprecht int value; ClassWithOneCtorClassWithOneCtor12*99451b44SJordan Rupprecht ClassWithOneCtor(int i) { value = i; } 13*99451b44SJordan Rupprecht }; 14*99451b44SJordan Rupprecht 15*99451b44SJordan Rupprecht struct ClassWithMultipleCtor { 16*99451b44SJordan Rupprecht int value; ClassWithMultipleCtorClassWithMultipleCtor17*99451b44SJordan Rupprecht ClassWithMultipleCtor(int i) { value = i; } ClassWithMultipleCtorClassWithMultipleCtor18*99451b44SJordan Rupprecht ClassWithMultipleCtor(int i, int v) { value = v + i; } 19*99451b44SJordan Rupprecht }; 20*99451b44SJordan Rupprecht 21*99451b44SJordan Rupprecht struct ClassWithDeletedCtor { 22*99451b44SJordan Rupprecht int value; ClassWithDeletedCtorClassWithDeletedCtor23*99451b44SJordan Rupprecht ClassWithDeletedCtor() { value = 6; } 24*99451b44SJordan Rupprecht ClassWithDeletedCtor(int i) = delete; 25*99451b44SJordan Rupprecht }; 26*99451b44SJordan Rupprecht 27*99451b44SJordan Rupprecht struct ClassWithDeletedDefaultCtor { 28*99451b44SJordan Rupprecht int value; 29*99451b44SJordan Rupprecht ClassWithDeletedDefaultCtor() = delete; ClassWithDeletedDefaultCtorClassWithDeletedDefaultCtor30*99451b44SJordan Rupprecht ClassWithDeletedDefaultCtor(int i) { value = i; } 31*99451b44SJordan Rupprecht }; 32*99451b44SJordan Rupprecht main()33*99451b44SJordan Rupprechtint main() { 34*99451b44SJordan Rupprecht ClassWithImplicitCtor C1; 35*99451b44SJordan Rupprecht C1.foo(); 36*99451b44SJordan Rupprecht ClassWithDefaultedCtor C2; 37*99451b44SJordan Rupprecht C2.foo(); 38*99451b44SJordan Rupprecht ClassWithOneCtor C3(22); 39*99451b44SJordan Rupprecht ClassWithMultipleCtor C4(23); 40*99451b44SJordan Rupprecht ClassWithMultipleCtor C5(24, 25); 41*99451b44SJordan Rupprecht ClassWithDeletedCtor C6; 42*99451b44SJordan Rupprecht ClassWithDeletedDefaultCtor C7(26); 43*99451b44SJordan Rupprecht 44*99451b44SJordan Rupprecht return 0; // break here 45*99451b44SJordan Rupprecht } 46