summaryrefslogtreecommitdiff
path: root/Examples/test-suite/cpp17_nested_namespaces.i
diff options
context:
space:
mode:
authorOlly Betts <olly@survex.com>2022-07-25 16:45:27 +1200
committerOlly Betts <olly@survex.com>2022-07-26 15:28:51 +1200
commit3140acd748fb9473ef5c1bfc6dbdc94c89e018d1 (patch)
treed695a094e790191ff5899c251644b8789457136e /Examples/test-suite/cpp17_nested_namespaces.i
parent07f0b732ba71eca1dee15ed495c2bb61ec38d0dc (diff)
downloadswig-3140acd748fb9473ef5c1bfc6dbdc94c89e018d1.tar.gz
Run C++14 and C++17 tests with appropriate compiler
Previously these testcases had C++98 fallback versions of the testcase code to feed to the compiler if it didn't set __cplusplus to a value which indicated support for the required C++ version, as well as the C++14 or C++17 code which was fed to SWIG, and also to the compiler if it was new enough. This approach allowed some testing of such features with an older compiler, but it complicates the testcases and not all new C++ features can be tested in this way (indeed some of the existing testcases don't fully exercise the feature being tested currently). C++14 and C++17 support are also much more widespread than they were 3.5 years ago when this approach was first implemented, so it makes more sense to switch C++14 and C++17 testcases to require a suitable compiler, like how C++11 testing always has.
Diffstat (limited to 'Examples/test-suite/cpp17_nested_namespaces.i')
-rw-r--r--Examples/test-suite/cpp17_nested_namespaces.i118
1 files changed, 0 insertions, 118 deletions
diff --git a/Examples/test-suite/cpp17_nested_namespaces.i b/Examples/test-suite/cpp17_nested_namespaces.i
index b9ec9bd5a..fcbf24c9a 100644
--- a/Examples/test-suite/cpp17_nested_namespaces.i
+++ b/Examples/test-suite/cpp17_nested_namespaces.i
@@ -1,13 +1,5 @@
%module cpp17_nested_namespaces
// Tests c++17 style nested namespaces
-// Tests are designed so that code compiles with C++98 compilers
-
-#define CPP17 1
-%{
-#if __cplusplus >= 201703L
-#define CPP17 1
-#endif
-%}
%inline %{
// Tests with namespaces already defined using C++98 style (non-nested) namespaces
@@ -21,20 +13,10 @@ namespace A1 {
};
}
}
-#if defined(CPP17)
namespace A1::B1 {
-#else
-namespace A1 {
- namespace B1 {
-#endif
A1Struct createA1Struct() { return ::A1::A1Struct(); }
B1Struct createB1Struct() { return ::A1::B1::B1Struct(); }
-#if !defined(CPP17)
- }
}
-#else
-}
-#endif
namespace A1 {
namespace B1 {
@@ -46,154 +28,54 @@ namespace A1 {
}
}
-#if defined(CPP17)
namespace A1::B1::C1 {
-#else
-namespace A1 {
- namespace B1 {
- namespace C1 {
-#endif
C1Struct createC1Struct() { return ::A1::B1::C1::C1Struct(); }
-#if !defined(CPP17)
- }
- }
-}
-#else
}
-#endif
%}
%inline %{
// Tests with namespaces already defined using C++17 style (nested) namespaces
-#if defined(CPP17)
namespace A2::B2 {
-#else
-namespace A2 {
- namespace B2 {
-#endif
struct B2Struct {
void B2Method() {}
};
-#if !defined(CPP17)
- }
-}
-#else
}
-#endif
-#if defined(CPP17)
namespace A2::B2 {
-#else
-namespace A2 {
- namespace B2 {
-#endif
B2Struct createB2Struct() { return ::A2::B2::B2Struct(); }
-#if !defined(CPP17)
- }
}
-#else
-}
-#endif
-#if defined(CPP17)
namespace A2::B2::C2 {
-#else
-namespace A2 {
- namespace B2 {
- namespace C2 {
-#endif
struct C2Struct {
void C2Method() {}
};
-#if !defined(CPP17)
- }
- }
}
-#else
-}
-#endif
-#if defined(CPP17)
namespace A2::B2::C2 {
-#else
-namespace A2 {
- namespace B2 {
- namespace C2 {
-#endif
C2Struct createC2Struct() { return ::A2::B2::C2::C2Struct(); }
-#if !defined(CPP17)
- }
- }
-}
-#else
}
-#endif
%}
%inline %{
// Tests with namespaces already defined using C++17 style (nested) namespaces to 3 levels
-#if defined(CPP17)
namespace A3::B3::C3 {
-#else
-namespace A3 {
- namespace B3 {
- namespace C3 {
-#endif
struct C3Struct {
void C3Method() {}
};
-#if !defined(CPP17)
- }
- }
-}
-#else
}
-#endif
-#if defined(CPP17)
namespace A3::B3::C3 {
-#else
-namespace A3 {
- namespace B3 {
- namespace C3 {
-#endif
C3Struct createC3Struct() { return ::A3::B3::C3::C3Struct(); }
-#if !defined(CPP17)
- }
- }
-}
-#else
}
-#endif
-#if defined(CPP17)
namespace A3::B3 {
-#else
-namespace A3 {
- namespace B3 {
-#endif
struct B3Struct {
void B3Method() {}
};
-#if !defined(CPP17)
- }
}
-#else
-}
-#endif
-#if defined(CPP17)
namespace A3::B3 {
-#else
-namespace A3 {
- namespace B3 {
-#endif
B3Struct createB3Struct() { return ::A3::B3::B3Struct(); }
-#if !defined(CPP17)
- }
-}
-#else
}
-#endif
%}