Use sizeof variable name rather than variable type.
Workaround Visual C++ unable to parse some complex C++11 types, such as
sizeof(short (Funcs::*)(bool) const &&)
Remove replacement code added in by autoupdate.
Go with recommendation to unconditionally include C headers
(which we have been doing all along).
Minimum autoconf version can be restored back to what it was.
We do need AC_PROG_EGREP - used by AC_EGREP_CPP
We don't use TIME_WITH_SYS_TIME
Don't check for sys/time.h twice
Minimum version was 2.52 before upgrade, no need to enforce 2.71
Set it to 2.60 (same as main swig configure.ac) - new macros
introduced by autoupdate are in 2.60.
Previously if the compiler was detected to support c++11,
-std=c++11 was set preventing c++17 code from being properly tested.
Now c++14 and c++17 support is looked for and the -std flag is
appropriately set to the compiler's maximum supported version.
A PHP exception now gets translated to a C++ exception to skips over C++
code to get back to PHP, avoiding the need to gate every directorout
typemap on EG(exception).
$needNewFlow in an output typemap is now only relevant when wrapping
to a PHP __construct method, and there the return type is known so
factory.i isn't useful.
PHP doesn't accept literal NULL for a parameter passed by reference;
passing a variable with a value of NULL is just like passing a
variable with a different value - we get a PHP reference to the
variable, not NULL.
The code in testcase memberin_extend_c would end up without a
terminating nul if passed a 50 byte string, and then make_upper()
would run off the end of the buffer.
Fix by using strncat() (which always nul terminates the result, and
also doesn't zero-fill the tail of the buffer if the result is
shorter).
This avoids using _v uninitialised if there's an empty typecheck
typemap, such as the dummy one we have for std::initializer_list.
Fixes GCC warning on cpp11_initializer_list testcase when compiled
with -O2.
Previously we checked for a <varname>_get() method instead, but that
will misfire for an method actually called foo_get() in the C++ API
being wrapped.