1 #include <QtCore/QCoreApplication> 2 3 4 5 6 7 8 9 struct NonPod 10 { NonPodNonPod11 NonPod() {} ~NonPodNonPod12 ~NonPod() {} 13 int a; 14 }; 15 16 struct NonPod2 17 { NonPod2NonPod218 NonPod2() {} 19 }; 20 21 struct NonPod3 22 { ~NonPod3NonPod323 ~NonPod3() {} 24 }; 25 26 27 struct Pod 28 { 29 int a; 30 }; 31 32 33 static Pod p; 34 static NonPod p1; 35 static NonPod2 p2; 36 static NonPod3 p3; 37 static NonPod* p4; 38 static int p5; 39 foo()40void foo() {} 41 Q_COREAPP_STARTUP_FUNCTION(foo) // OK, it's blacklisted 42 43 struct NonPodButOk 44 { 45 NonPodButOk() = default; NonPodButOkNonPodButOk46 NonPodButOk(const NonPodButOk &) {} 47 }; 48 49 static NonPodButOk p6; // OK, both called ctor and dtor are trivial 50 51 NonPod p7; // OK, it's not static, might be used somewhere else 52 53 struct HasConstExprCtor 54 { HasConstExprCtorHasConstExprCtor55 constexpr HasConstExprCtor(int i) : m_i(i) {} 56 const int m_i; 57 }; 58 59 constexpr static HasConstExprCtor p8(1); 60 static HasConstExprCtor p9(1); 61