Commit graph

113 commits

Author SHA1 Message Date
William S Fulton
8a40327aa8 Add unignore for rvalue ref-qualifiers
Use std::move on this pointer as the default approach to supporting
rvalue ref-qualifiers if a user really wants to wrap.

std::move requires <memory> headers so add swigfragments.swg for all
languages to use common fragments. Just header file fragments for now.
2017-08-30 18:17:04 +01:00
William S Fulton
55bbf68512 Add std::array container wrappers for Python
These work much like any of the other STL containers except Python slicing
is somewhat limited because the array is a fixed size. Only slices of
the full size are supported.
2015-11-17 07:27:48 +00:00
Olly Betts
2f3bf144c6 Fix assorted comment and documentation typos 2014-02-23 17:15:22 +13:00
William S Fulton
c5911cc08d Add %$isextendmember for %rename of members added via %extend 2014-02-18 23:21:46 +00:00
William S Fulton
314fae460b Merge branch 'nested' - nested structs/classes support
* nested:
  Deprecation of the 'nestedworkaround' feature
  Ensure -c++out is not used with -c++
  Add missing header to new source file
  Nested C class setters restored in c++out mode for Octave
  Classprefix fixed after private nested classes some comments and spaces added
  Fix template partial specialization detection
  Minor tweaks in Swig_feature_set
  Swig_offset_string moved to misc.c
  nested private classes are discarded while parsing nested relate functions are moved to nested.cxx and renamed accordingly
  out-of-scope template definitions fixed nested_private test disabled again
  fixed out-of-scope nested class definitions, added a test enabled nested C structs assignment (still disabled for Octave), added Java runtime test fixed nested_private test case for Java & C#
  Testcase of private nested class usage causing segfault
  C nested struct passed by value example
  Add in Travis testing for nested branch
  Add C++ nested class example
  Minor code improvements
  Cosmetics/code beautification of nested class support
  Nested classes support
2013-12-14 15:12:07 +00:00
William S Fulton
0f4ceaf592 Deprecation of the 'nestedworkaround' feature
Also add in macros for the flatnested feature which can be used in place
of the nestedworkaround feature
2013-12-13 08:11:17 +00:00
Olly Betts
c6e4dea572 Fix a few typos in comments and docs 2013-12-12 11:45:30 +13:00
Vladimir Kalinin
b63c4839fe Nested classes support
Closes #89
Squash merge branch 'master' of https://github.com/wkalinin/swig into wkalinin-nested

By Vladimir Kalinin
* 'master' of https://github.com/wkalinin/swig:
  CPlusPlusOut mode for Octave
  nested class illustration
  fixed "Abstract" flag for nested classes added an example enabled anonymous nested structs runtime test
  porting
  warnings disabled
  porting fixes
  java runtime tests ported
  nested class closing bracket offset fixed
  removed double nested template (not supported by %template parsing)
  template_nested test extended
  parent field made public
  property access fixed
  replaced tabs with spaces
  warning W-reorder
  deprecated warnings removed, derived_nested runtime test added
  optimized string indenting
  Nested classes indenting
  nested classes docs
  fixed the order in which flattened inner classes are added after the outer
  Private nested classes were getting into the type table.
  Java getProxyName() fix for nested classes fixes the case when nested classes is forward declared
  Fix for a case when a nested class inherits from the same base as the outer. (Base class constructor declaration is found first in this case)
  merge fix
  nested C struct first immediate declaration incorrectly renamed sample fixed
  tests updated to reflect nested classes support
  Java nested classes support (1)
  flattening should remove the link to the outer class
  access mode correctly set/restored for nested classes
  nested templates should be skipped while flattening (template nodes themselves, not expanded versions) also non-public nested classes should be ignored
  If nested classes are not supported, default behaviour is flattening, not ignoring flag "nested" is preserved, so, the nested classes can be ignored by user
  nested workaround test updated
  template instantiated within a class is marked as nested for ignoring purposes
  %ignore not applied to the nested classed, because "nested" flag is set too late
  typedef name takes precedence over the real name (reason?)
  unnamed structs should be processed for all the languages
  nested C struct instances are wrapped as "immutable"
  tree building
  typedef declaration for unnamed C structures fixed
  nested classes "flattening"
  fixed %ignoring nested classes
  renamed "nested" attribute to "nested:outer" added "nested" flag, to be used with $ignore (it is not removed while flattening) added nestedClassesSupported() function to the Language interface
  renamed "nested" attribute to "nested:outer" added "nested" flag, to be used with $ignore (it is not removed while flattening) added nestedClassesSupported() function to the Language interface
  tree iteration fix
  dirclassname variable names unified memory issue fixed
  merge error
  ignore unnamed structs for C++
  unnamed nested C structs naming & unnesting
  class added to classes hash under typedef name
  private nested classes skipped
  test updated due to nested templates support
  anonymous structs with inheritance fixed nested_class test to allow anonymous structs w/o declarator
  tests updated: nested workaround removed from namespace_class.i propagated nested template declaration to the C++ file
  injected members scope
  nested tempplates fixes, nested structures in "C" mode parsing added utility function "appendSibling" (like "appendChild")
  nested unnamed structures parsing fixes, access mode restored on nested class end, tdname is properly patched with outer class name prefix
  memory management fixes
  nested templates (1)
  Nested unnamed structs
  Nested class support (1)
  Nested class support (1)
2013-11-29 07:02:34 +00:00
William S Fulton
d613ef42f2 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. 2013-02-04 20:03:22 +00:00
William S Fulton
1fbcafc0ea Go back to using free/malloc rather than realloc as may be slower
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12999 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-04-17 07:02:15 +00:00
William S Fulton
478496bcae Apply patch #3511009 from Leif Middelschulte for slightly optimised char * variable wrappers.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12979 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-04-13 19:29:33 +00:00
William S Fulton
9f714ec92a Correct definitions of %$isglobal and %$classname for %rename matching, although I can't get %$classname nor %$innamespace working (both use $parentNode)
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12944 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-03-21 20:58:04 +00:00
William S Fulton
aac2b5d2e1 Remove VARARGS_SENTINEL typemaps further to revision 12666. Note that the idea of having a named typemap for sentinels is flawed unless the named typemap is provided for every single type in the typemap library.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12668 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-05-14 23:54:09 +00:00
David Nadlinger
03aefbc6e9 Added support for the D programming languge.
It is still a bit rough around some edges, particularly with regard to multi-threading and operator overloading, and there are some documentation bits missing, but it should be fine for basic use.

The test-suite should build and run fine with the current versions of DMD, LDC and Tango (at least) on Linux x86_64 and Mac OS X 10.6.

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12299 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-11-18 00:24:02 +00:00
William S Fulton
d2ad66a9a9 remove duplicate definition of %$isextend
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12178 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-07-23 07:17:15 +00:00
William S Fulton
b6b99bb148 Add nspace feature for C# and add documentation on nspace
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11920 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-03-06 19:11:32 +00:00
William S Fulton
ebed6508e4 Nested class improvements - Fixed inconsistency in handling C++ nested classes - sometimes they were treated as forward declarations, other times as if C nested struct was parsed. Added the nestedworkaround feature for C++ nested class handling. Document improved nested class handling. Numerous C and C++ nested struct/class/union test cases added.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11734 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-11-11 00:30:34 +00:00
William S Fulton
60e20c6ec5 fix %valuewrapper macro
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11514 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-08-07 21:50:21 +00:00
William S Fulton
efa11dee52 add new %begin directive for inserting code at top of wrapper file
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11133 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-02-20 07:52:24 +00:00
William S Fulton
6d03b7ce6a update old syntax to new _dim0
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11124 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-02-08 22:54:58 +00:00
William S Fulton
c577ac1a31 Rename embedded smart pointer in SwigValueWrapper in order to avoid conflicts with the template type
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11038 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-01-07 21:10:46 +00:00
William S Fulton
e4c4dedc82 SwigValueWrapper - remove two constructors which are not required by the code SWIG generates
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11007 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-12-28 20:16:31 +00:00
William S Fulton
b190c10bf2 add strong exception guarantee to SwigValueWrapper
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11006 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-12-28 18:41:16 +00:00
William S Fulton
7adb84f448 Fix #2432801 - Make SwigValueWrapper exception safe for when copy constructors throw exceptions
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10997 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-12-22 21:43:48 +00:00
William S Fulton
f9393a0f06 Apply patch #2440046 which fixes possible seg faults for member and global variable char arrays when the strings are larger than the string array size.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10994 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-12-21 00:29:48 +00:00
William S Fulton
421eb7ae60 New templated method SwigValueInit to initialise all types - used initially for return types in director methods
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10063 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2007-10-28 23:07:33 +00:00
William S Fulton
9c65c6b044 Remove cvs $Header$
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10004 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2007-10-17 21:43:55 +00:00
Gonzalo Garramuno
a7aa62ce68 Added an implementation of std_queue with tests.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@9779 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2007-05-06 05:25:58 +00:00
Gonzalo Garramuno
5e27a6828a Added an implementation of std_stack.i with
proper tests.



git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@9778 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2007-05-06 05:13:17 +00:00
William S Fulton
cff71a3716 Fixes for %apply char *, char[], char[ANY] to other types, like unsigned char
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@9462 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-10-19 21:35:19 +00:00
William S Fulton
949e220630 - explicitcall feature removed.
- Instead of using the swig_up flag in each director method (Python, Ruby, Ocaml) to indicate
whether the explicit C++ call to the appropriate base class method or a normal
polymorphic C++ call should be made, the new approach makes one of these calls
directly from the wrapper method.
- Java/C# recursive director method calls fixed (no need for explicitcall feature to solve this now)


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@9272 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-09-13 20:45:31 +00:00
William S Fulton
32abf157f7 new explicitcall feature
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@9188 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-07-04 21:00:55 +00:00
Marcelo Matus
39b7537a9a fix % predicate, as reported by Mikael Jansson
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@9043 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-04-08 05:32:19 +00:00
Marcelo Matus
357d0650ed add SWIG_TYPECHECK_SWIGOBJECT to resolve simple overload functions as Graph(int i)/Graph(PyObject* p)
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8923 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-03-01 23:30:37 +00:00
Marcelo Matus
97775a5c80 more fixes to use one line macro when possible
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8769 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-02-10 09:00:00 +00:00
Marcelo Matus
c7bc81c745 fix predicate, excluding template case
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8759 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-02-09 17:34:52 +00:00
Marcelo Matus
486d21f75e fix unapplied 'novaluewrapper' feature and add directive forms
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8652 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-01-30 23:18:08 +00:00
Marcelo Matus
933ac56a20 implement the 'allowexcept' feature for global variables
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8581 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-01-28 03:11:47 +00:00
Marcelo Matus
8bbaa79ffe fix bad name, reported by Robin, and cosmetics
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8540 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-01-24 17:51:53 +00:00
Marcelo Matus
526be12c1e change the %rename predicates to use the prefix %$ and avoid clashings with other rename directives
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8469 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-01-16 23:27:11 +00:00
Marcelo Matus
e777cae676 add at least %not support for rename predicates
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8465 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-01-15 19:34:43 +00:00
Marcelo Matus
676bb93334 add more predicates for rename
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8463 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-01-15 18:21:26 +00:00
Marcelo Matus
75867b03a9 add more rename predicates
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8435 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-01-14 21:23:57 +00:00
Marcelo Matus
392799385f add the ismember and hasvalue attributes and the corresponing %rename predicates
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8414 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-01-13 18:04:59 +00:00
Marcelo Matus
d0aa24ef4d cosmetics
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8407 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-01-13 01:08:10 +00:00
Marcelo Matus
6ccea1d981 more %rename predicates
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8389 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-01-12 15:44:27 +00:00
Marcelo Matus
2208b55215 add predicates to %rename, new kind attribute to cdecl and the '|' operator in %rename's match
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8388 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-01-12 09:06:07 +00:00
Marcelo Matus
059a280719 add %rename predicates
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8381 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-01-12 00:39:59 +00:00
Marcelo Matus
a925249e0b change the %catchs name to %catches
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8357 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-01-10 23:17:15 +00:00
Marcelo Matus
e676d2f8bd rename %throws to %catchs
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8351 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-01-10 18:47:51 +00:00