46 lines
954 B
C++
46 lines
954 B
C++
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
|
|
}
|