/* 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 struct Check1 { static_assert(sizeof(int) <= sizeof(T), "not big enough"); Check1() { #ifdef SWIG static_assert(true); #else static_assert(true, "true"); #endif } }; template class Check2 { static_assert(sizeof(int) <= sizeof(T), "not big enough"); }; %}