swig/Examples
Vadim Zeitlin fd3e763656 Streamline and fix returning objects by value
Remove the code related to "_result_ref" which was confusing and plain
wrong, as it generated something that compiled but crashed during
run-time due to the use of a pointer to an already destroyed stack
object.

Instead, correct the "out" typemap to create a new copy of the object,
which mostly works fine on its own, except that it depends on using
SwigValueWrapper if necessary, so add the call to cplus_value_type()
does this. This also required removing the code resolving typedefs in
the "type" attribute because it confused the base class logic and still
needs an explicit cast to the actual return type due to the use of (and
probable bug in) get_wrapper_func_return_type().

These changes mean that "cppouttype" typemap is not used any longer, so
remove it too.

A couple more tests pass now.
2019-08-06 02:35:25 +02:00
..
android
c Use std/std_vector.i instead of a poor copy in c/std_vector.i 2016-09-15 01:27:41 +02:00
chicken
contract
csharp
d
go Fix Go tests to run in module mode 2019-04-24 21:43:38 -07:00
guile Remove use of std::bind2nd which is removed in C++17 2019-06-27 07:40:49 +01:00
java Java 9 deprecation warning fixes for test-suite and examples 2019-02-21 13:47:39 -08:00
javascript Misc. typos 2018-05-17 10:04:23 -04:00
lua Misc. typos 2018-05-17 10:04:23 -04:00
modula3
mzscheme Remove use of std::bind2nd which is removed in C++17 2019-06-27 07:40:49 +01:00
ocaml Remove use of std::bind2nd which is removed in C++17 2019-06-27 07:40:49 +01:00
octave Misc. typos 2018-05-17 10:04:23 -04:00
perl5 Misc. typos 2018-05-17 10:04:23 -04:00
php Fix php pragmas example include path 2019-05-09 07:35:24 +01:00
pike
python Merge branch 'master' into C 2019-07-24 20:26:50 +02:00
r Revert "Merge pull request #853 from ivannp/underscores" 2016-12-22 19:47:54 +00:00
ruby Remove use of std::bind2nd which is removed in C++17 2019-06-27 07:40:49 +01:00
s-exp
scilab Remove use of std::bind2nd which is removed in C++17 2019-06-27 07:40:49 +01:00
tcl Remove use of std::bind2nd which is removed in C++17 2019-06-27 07:40:49 +01:00
test-suite Streamline and fix returning objects by value 2019-08-06 02:35:25 +02:00
xml
index.html
Makefile.in Merge branch 'master' into C 2019-07-24 20:26:50 +02:00
README

SWIG Examples

The subdirectories of "Examples" named after SWIG's language backends
contain a number of simple examples that are primarily used for testing.

The file 'index.html' is the top of a hyperlinked document that
contains information about all of the examples along with various
notes related to each example.

Note: All of the examples rely upon the Makefile in this directory.
You may need to edit it to reflect the configuration of your machine
in case the configure script guesses incorrect settings.


*** Special note concerning C++ ***

The configure script is currently unable to handle all of the possible
options for producing dynamically loadable C++ extensions.  Here are
the rules of thumb for making C++ work:

 -  Try using the C++ as the linker for the shared library.  For example:

         g++ -shared $(OBJS) -o module.so

 -  If that doesn't work, you may need to explicitly link against some
    kind of C++ runtime library.  For example:

         ld -G $(OBJS) -L/opt/SUNWspro/lib -lCrun -o module.so

    This can be set by modifying the setting of CPP_DLLIBS in the
    Makefile.


*** Special note for SWIG Maintainers ***

When you add an example, consider arranging for the example to be also
useful as part of the SWIG testing framework.  To do this, include in
the example makefile a target "check" ("check: all" is sufficient for a
first pass), and add an invocation to ../Makefile.in under target
"check-examples" (or whatever is appropriate).  Later, we can add or
expand the actions under target "check" to do more in-depth testing.