mirror of https://github.com/swig/swig
38 lines
826 B
OpenEdge ABL
38 lines
826 B
OpenEdge ABL
/* This test case checks whether SWIG correctly parses and ignores
|
|
"static_assert()" in various places.
|
|
*/
|
|
%module cpp11_static_assert
|
|
|
|
%inline %{
|
|
static_assert(sizeof(int) >= 2, "What? int size is invalid!");
|
|
|
|
namespace dummy {
|
|
// C++17 allows the message to be omitted, so check that works too.
|
|
// But only show the C++17 version to SWIG, as the compiler may
|
|
// lack C++17 support.
|
|
#ifdef SWIG
|
|
static_assert(sizeof(int) >= sizeof(short));
|
|
#else
|
|
static_assert(sizeof(int) >= sizeof(short), "blah");
|
|
#endif
|
|
}
|
|
|
|
template <typename T>
|
|
struct Check1 {
|
|
static_assert(sizeof(int) <= sizeof(T), "not big enough");
|
|
Check1() {
|
|
#ifdef SWIG
|
|
static_assert(true);
|
|
#else
|
|
static_assert(true, "true");
|
|
#endif
|
|
}
|
|
};
|
|
|
|
template <typename T>
|
|
class Check2 {
|
|
static_assert(sizeof(int) <= sizeof(T), "not big enough");
|
|
};
|
|
%}
|
|
|