aboutsummaryrefslogtreecommitdiff
path: root/Examples/test-suite/cpp20_constexpr_destructor.i
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/test-suite/cpp20_constexpr_destructor.i')
-rw-r--r--Examples/test-suite/cpp20_constexpr_destructor.i50
1 files changed, 50 insertions, 0 deletions
diff --git a/Examples/test-suite/cpp20_constexpr_destructor.i b/Examples/test-suite/cpp20_constexpr_destructor.i
new file mode 100644
index 000000000..56c51e329
--- /dev/null
+++ b/Examples/test-suite/cpp20_constexpr_destructor.i
@@ -0,0 +1,50 @@
+%module cpp20_constexpr_destructor
+
+// Test constexpr destructors introduced in C++20
+
+%inline %{
+class DtorA {
+public:
+ constexpr ~DtorA() {}
+};
+
+class DtorB {
+public:
+ constexpr ~DtorB();
+};
+
+constexpr DtorB::~DtorB() {}
+
+class DtorC {
+public:
+ virtual constexpr ~DtorC() {}
+};
+
+class DtorD {
+public:
+ constexpr virtual ~DtorD() {}
+};
+
+class DtorE {
+public:
+ inline virtual constexpr ~DtorE() {}
+};
+
+class DtorF {
+public:
+ virtual constexpr ~DtorF() = 0;
+};
+
+class DtorG {
+public:
+ virtual constexpr ~DtorG() = default;
+};
+
+template<typename T>
+struct DtorTemplate {
+ virtual constexpr ~DtorTemplate();
+};
+
+template<typename T>
+constexpr DtorTemplate<T>::~DtorTemplate() {}
+%}