* gsoc2009-matevz: Minor cleanup prior to merging to master Add gsoc2009-matevz for Travis testing C++11 testing moved to a configure option Rename all C++0x to C++11 and cpp0x to cpp11 Grab .travis.yml file from master to turn on Travis testing Suppress leaking memory warnings in rvalue reference tests Add support for extern "C++" - no warning should be issued as was previously occurring Add support for extern "C" thread_local Fixes detecting if a variable is extern when using 'extern thread_local' Add support for thread_local when specified with other legitimate storage class specifiers - extern and static Remove test tokens User defined literals: fix for %rename and update docs Add ability to suppress variadic template first argumnet warning Add template aliasing and type aliasing into symbol table and enable explicit warning suppression for these. They still need to be added into the parse tree and dealt with. Add lambda functions to the symbol tables and add ability to suppress lambda warnings. Rework std::initializer_list handling to warn about usage in any method, not just constructors. A typemap is used to issue the warning and can be overridden with user defined behaviour. Initialization list doc updates and new tests. Fix functions with default arguments that are initializer lists Better clarification about polymorphic wrappers for function objects - std::function Remove generated output that should not be checked in2 Fix shift/shift and shift/reduce errors around variadic templates since merge Variadic templates doc update Add rvalue reference typemaps Add rvalue reference typemaps Add rvalue reference typemaps Add rvalue reference typemaps Add rvalue reference typemaps Add rvalue reference typemaps Add rvalue reference typemaps Add rvalue reference typemaps Use CXXFLAGS for c++ code for Go examples Add missing static member to testcase More rvalue reference typemaps Fix generated code for rvalue references by converting functions returning an rvalue reference into something that can be taken the address of - via a const ref cast. Now the rvalue_reference tests compile under g++-4.7 (C# only atm) Remove recently added %expect in parser in case of backward compatibility problems Cosmetic changes to previous (unicode literals) commit Fixes to previous (unicode literals) commit Unicode literals Add check-cpp11 target for testing c++11 only tests Improve detection of C++11 compiler and set appropriate flags to use C++11/C++0x features Modify autoconf macro to be more flexible about how it is used - sets CXX11FLAGS, HAVE_CXX11_COMPILER and option to not error out Autoconf archive macro to detect c++11 - as downloaded from archive Update variadic templates result_of not working Add lambda tests to test-suite - gcc-4.7 supports these One more lambda test using constexpr More lambda support - for optional lambda declarators Add in support for initialising auto variables from lambda expressions Lambda expressions: parse exception specification in lambda functions. Fix lambda testcase for gcc-4.7. Delegating constructors and inheriting constructors clarification and split of tests gcc-4.7 now supports alias templates Update on C++11 user-defined literal status Fix unrestricted unions testcase and add runtime example Minor doc tweaks for unrestricted unions Some updates to c++11 warning messages and update docs on alias templates Provide unique c++11 warnings which were previously hijacking another warning Tidy up test and docs on template double brackets Better clarify C++11 smart pointer support Update c++0x tests run by default for g++-4.6 Improve nullptr constant wrapping Add scoped enums into correct correct scope in type system. Note that cpp0x_strongly_typed_enumerations.i still shows further language symbol table problems which need fixing. Using C++11 enum classes with just a forward reference. Add support for c++11 strongly typed enums inheriting from non standard primitive types Fix parsing of forward declaration of C++0x enums html fixes sort out c++0x lambda tests and reorder cpp0x tests Improved C++0x rvalue reference implementation differentiating lvalue and rvalue references. The previous implementation treated rvalue references as lvalue references which leads to a number of different wrapping issues. simple formatting changes Warning suppression for explicit template instantiations Raw string literal changes in paper N3077 changes delimiters to use round brackets instead of square brackets add in more raw string literals for gcc-4.5 typo fix minor warning message changes Add new GPL license headers to all source files in this branch merge revisions 11872:11876 from trunk to gsoc2009-matevz branch - license changes Grammar and formatting improvements Added developer documentation for C++0x. Fixed testcase warnings. Documented C++0x testcases. Updated C++0x User's manual. Removed decr-- Hash tables feature. Added some comments. Added draft user documentation for the C++0x. Added warning for initializer_list introduced in C++0x. Added testcase cpp0x_initializer_list. Fixed cpp0x_result_of testcase. Added testcase cpp0x_sizeof_object. Added testcase for default/delete arguments introduced in C++0x. Added cpp0x_result_of testcase. Added syntax support for template aliasing and new 'using' syntax for typedefs introduced in C++0x. Added testcase cpp0x_template_typedefs. Added testcase cpp0x_constructors for delegating constructors and constructor inheritance. Added initial support for C++0x decltype(). Added testcase cpp0x_decltype. Added support for user-defined string literals. Added testcase cpp0x_userdefined_literals.i Fixed compilation error. Added syntax for lambda expressions and closures introduced in C++0x. Added testcase cpp0x_lambda_functions.i. Fixed variadic template argument warning. Enabled support for variadic %template directive. Enabled alternate function syntax and added runtime testcases. Added support for null pointer constant introduced in C++0x. Fixed S/R and R/R conflicts. Fixed testcase for rvalue reference. Added variadic '...' syntax for inheritance introduced in C++0x. Added sizeof... syntax introduced in C++0x. Added initial support for variadic templates. Added partial support for unordered_ STL types. Added support for C++0x rvalue and move semantics. Added testcase. Added initial support for parsing C++0x strongly typed enumerations. Fixed bug in cpp0x testcase. Added testcase for cpp0x unrestricted unions. Disabled alternate function syntax testcase. Added testcase for function objects. Added initial support for hash tables unordered_ types. Added C++0x test case for the hash_tables. Added support for C++0x alternate function syntax. Added testcase. Added support for cpp0x uniform initialization. Added testcases. Fixed cpp0x_raw_string_literals.i test case. Added testcase for shared_ptr, unique_ptr and weak_ptr. Added keyword 'thread_local' to Swig. Added testcase. Added test case. Added C++0x support for 'extern' explicit template instantiation without the translation unit. Added test cases. Added support for C++0x static_assert(). Added support for custom string delimiters. Added support for unicode strings and fixed support for wstrings. Added test case cpp0x_raw_string_literals.i. Added test case for explicit conversion operators. Some cosmetic fixes. Added constexpr keywords and CONSTEXPR terminal to Swig parser. Added cpp0x_constexpr.i testcase. Fixed compilation bug of cpp0x_template_double_brackets.i testcase. Removed obsolete cpp0x_template_double_brackets_broken. Introduced new CXXFLAGS symbol for the compilation of test suite. Added -std=c++0x to g++ compiler to enable compilation of the new C++0x tests. Renamed template_double_brackets -> cpp0x_template_double_brackets. Added CPP0X_TEST_CASES and CPP0X_TEST_BROKEN in common.mk. Added support for template double brackets for C++0x. Added test cases. |
||
|---|---|---|
| .. | ||
| android | ||
| chicken | ||
| contract | ||
| csharp | ||
| d | ||
| go | ||
| guile | ||
| java | ||
| lua | ||
| modula3 | ||
| mzscheme | ||
| ocaml | ||
| octave | ||
| perl5 | ||
| php | ||
| pike | ||
| python | ||
| r | ||
| ruby | ||
| s-exp | ||
| tcl | ||
| test-suite | ||
| xml | ||
| index.html | ||
| Makefile.in | ||
| README | ||
SWIG Examples
The "perl5", "python", "tcl", "guile", "java", "mzscheme", "ruby", and
"chicken" directories 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.
The Examples directory is currently quite incomplete because it
is being reorganized. A more complete set of examples can be found
in the SWIG1.1p5 distribution (most of which should still work with
SWIG1.3).
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 concering 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.