| /* 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"); |
| }; |
| %} |
| |