1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
|
#ifndef TEST_INTEROP_CXX_CLASS_INPUTS_CONSTRUCTORS_H
#define TEST_INTEROP_CXX_CLASS_INPUTS_CONSTRUCTORS_H
struct ExplicitDefaultConstructor {
ExplicitDefaultConstructor() : x(42) {}
int x;
};
struct ImplicitDefaultConstructor {
int x = 42;
};
struct DefaultedDefaultConstructor {
int x = 42;
DefaultedDefaultConstructor() = default;
};
struct MemberOfClassType {
ImplicitDefaultConstructor member;
};
struct DefaultConstructorDeleted {
DefaultConstructorDeleted() = delete;
int &a;
};
struct ConstructorWithParam {
ConstructorWithParam(int val) : x(val + 42) {}
int x;
};
struct CopyAndMoveConstructor {
CopyAndMoveConstructor(const CopyAndMoveConstructor &) = default;
CopyAndMoveConstructor(CopyAndMoveConstructor &&) = default;
int value = 123;
int *ptr = nullptr;
};
struct Base {};
struct ArgType {
int i = 42;
};
struct HasVirtualBase : public virtual Base {
HasVirtualBase() = delete;
HasVirtualBase(ArgType Arg) {}
int i;
};
struct EmptyStruct {};
struct IntWrapper {
int x;
};
struct TemplatedConstructor {
ArgType value;
template<class T>
TemplatedConstructor(T value) : value(value) { }
};
struct TemplatedConstructorWithExtraArg {
template<class T>
TemplatedConstructorWithExtraArg(int, T value) { }
template<class T>
TemplatedConstructorWithExtraArg(T value, int) { }
template<class T, class U>
TemplatedConstructorWithExtraArg(T value, U other) { }
};
struct __attribute__((swift_attr("import_unsafe")))
HasUserProvidedCopyConstructor {
int numCopies;
HasUserProvidedCopyConstructor(int numCopies = 0) : numCopies(numCopies) {}
HasUserProvidedCopyConstructor(const HasUserProvidedCopyConstructor &other)
: numCopies(other.numCopies + 1) {}
};
struct DeletedCopyConstructor {
DeletedCopyConstructor(const DeletedCopyConstructor &) = delete;
};
#ifdef ENABLE_PTRAUTH
struct HasPtrAuthMember {
void (*__ptrauth(1, 1, 3) handler)();
};
#endif
#endif // TEST_INTEROP_CXX_CLASS_INPUTS_CONSTRUCTORS_H
|