Commit graph

45 commits

Author SHA1 Message Date
William S Fulton
6d27ead9c0 Add STL container copy constructors where missing
Also provide consistent copy constructor declarations.
2019-02-14 18:53:05 +00:00
William S Fulton
e26f6bb4e2 Add missing typedefs to std::vector + typedef corrections
Tests for std::vector of pointers added which check
 std::vector<T*>::const_reference and std::vector<T*>::reference
usage which gave compilation errors in Python and Perl which had
specialized these vectors incorrectly.
2019-02-13 22:46:28 +00:00
William S Fulton
368cd3b52c Add ToArray test for C# std::vector wrapper 2018-01-12 18:26:47 +00:00
Quentin
4326da9ab3 [C#] Add ToArray to std_vector.i 2017-10-19 09:45:57 +02:00
William S Fulton
32e7074d9b Whitespace fixes in STL wrappers 2017-06-03 18:36:59 +01:00
William S Fulton
fdca8e9829 Better variable naming consistency in STL containers 2017-05-26 22:37:29 +01:00
Vadim Zeitlin
bf11d5ee7a Don't hardcode C# type corresponding to size_t in vector typemaps
The C# type corresponding to size_t may be changed by redefining its "cstype"
type typemap, but this broke compilation of the code using std::vector<> as
the typemap generating it assumed that size_t was always represented by uint
in C#. Make this work in all cases by explicitly looking up cstype of size_t
instead.

Notice that it may be quite useful, and even necessary, to map size_t to int
as when generating C# assembly for use with COM, via .NET interop, as some COM
clients, notably VBA-using ones, including all Microsoft Office applications,
don't support unsigned types and can't call methods using or returning uint in
C# at all.
2017-03-15 23:17:03 +01:00
Jean-Claude Manoli
18ac3030df Replace ICollection with IEnumerable<T>
Adding a constructor that accepts IEnumerable<T> avoids the boxing and unboxing overhead of the original constructor, when the type parameter is a value type. This also allows passing IList<T>, which does not implement ICollection (ironically the generated type implements IList<T>).

Kept the original constructor for backward compatibility, but replaced ICollection with IEnumerable for added flexibility.
2017-02-05 08:02:14 +01:00
William S Fulton
449aa08124 %extend changes and remove default use of javatype, dtype, cstype %typemaps
1) The %extend directive can now optionally support one of the 'class', 'struct' or 'union'.
2) The SWIG library no longer uses the javatype, dtype or cstype typemaps, thereby
   completely freeing them up for users to use without having to replicate the library
   code that they previously added

Tested by changes to test: java_lib_arrays
2017-01-15 16:50:24 +00:00
myd7349
46791437a4 SWIG_STD_VECTOR_ENHANCED for std::wstring 2016-07-04 14:28:46 +08:00
Marvin Greenberg
843aa7cd65 Work around differences in clang libc++ std::vector<bool>::const_reference
clang++ using -stdlib=libc++ defines const_reference as a class,
to map boolean vectors onto a bit set.  Because swig does
not "see" the type as "const &" it generates incorrect code for this case,
generating a declaration like:

  const_reference result;

When const_reference is a typedef to 'bool' as is the case with stdlibc++
this works.  When this is actually a constant reference, this is clearly
invalid since it is not initialized.  For libc++, this is a class
which cannot be default constructed, resulting in an error.  The fix
is to explicitly define the various accessor extensions as having a
bool return type for this specialization.
2014-02-04 16:00:12 -05:00
Brant K. Kyser
adb93980f2 Remove using directives from the generated C# code and fully qualify the use of all .NET framework types in order to minimize potential name collisions from input files defining types, namespace, etc with the same name as .NET framework members. 2013-10-17 15:44:24 -05:00
Brant K. Kyser
cb2df12630 Since SWIG 3.0 removes support for .NET 1.1, cleanup the C# library by removing the use of the SWIG_DOTNET_1 macro. 2013-10-17 13:58:32 -05:00
Brant K. Kyser
3235570619 Globablly qualify the use of types from the .NET framework's System namespace in the C# module and library. 2013-10-17 13:27:48 -05:00
William S Fulton
cc9b811281 Add spaces to avoid unintended <: digraph in SWIG_STD_VECTOR_ENHANCED
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12083 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-06-01 23:36:08 +00:00
William S Fulton
d25121a0ed Fix SWIG_STD_VECTOR_ENHANCED macro used in C# std::vector to work with commas
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12081 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-06-01 23:10:22 +00:00
William S Fulton
482c06c28c Remove unnecessary vector of constant pointer specialization since the improved default typemap matching rules were introduced
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11961 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-04-01 23:30:26 +00:00
William S Fulton
4308dd03cf SWIG license change - The Examples and Lib move to a very permissive license in the LICENSE file, removing the BSD license restrictions as agreed by committers since it was inadvertently introduced. Remove some examples where the impact of the license change is not clear.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11874 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-02-27 23:26:02 +00:00
William S Fulton
fb505bf7c9 small tidy up
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11500 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-08-04 17:48:41 +00:00
William S Fulton
31ad548c6b Deprecate SWIG_STD_VECTOR_SPECIALIZE_MINIMUM. Deprecate SWIG_STD_VECTOR_SPECIALIZE and replace with SWIG_STD_VECTOR_ENHANCED
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11493 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-08-03 18:17:14 +00:00
William S Fulton
7841adc675 Add std::vector copy constructor to proxy
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11233 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-05-26 06:23:39 +00:00
William S Fulton
07ed699ef3 use instead of self
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11231 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-05-22 06:11:45 +00:00
William S Fulton
13cbd90553 Improved std::vector wrappers on the C# proxy side from Yuval Baror to implement IList<> instead of IEnumerable<> where possible.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11209 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-05-11 17:46:51 +00:00
William S Fulton
6975ecd65c std::vector<T> wrapper improvements for .NET 2 implementing IEnumerable<T>
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11156 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-03-18 23:30:57 +00:00
William S Fulton
df698a8d32 minor rewrite
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11154 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-03-16 21:39:36 +00:00
William S Fulton
956c57bb03 add in correct specialization for std::vector<bool> to follow C++ standard - to create compileable wrappers with vc++ and recent return by reference changes
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11153 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-03-16 19:33:38 +00:00
William S Fulton
e7f8954bea remove svn:executable property where applied incorrectly
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10951 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-11-26 21:54:49 +00:00
William S Fulton
90a4d04d85 revert entry 2008-09-01 - C# Insert and InsertRange bounds checking
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10875 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-09-18 23:17:52 +00:00
William S Fulton
a83eebb369 Fix array bounds checking in C# std::vector wrappers
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10804 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-09-01 20:32:53 +00:00
William S Fulton
edd82d41f2 corrections for last commit
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@9867 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2007-07-18 21:06:55 +00:00
William S Fulton
176984f338 std::vector parameter name changes so that these parameters can be individually singled out with typemaps
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@9856 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2007-06-25 21:30:13 +00:00
William S Fulton
c5a8c80883 64 bit portability warnings fix
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@9580 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-11-24 22:41:17 +00:00
William S Fulton
aabbc69818 Common template for head of each file detailing licence, distribution and authors information
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8974 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-03-07 00:21:51 +00:00
William S Fulton
0b37423ca1 Add in specialization for pointers
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8748 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-02-08 22:23:03 +00:00
William S Fulton
3db5c253df Fix for vector of bool
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8076 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-12-27 01:50:49 +00:00
William S Fulton
b276adf199 Use value_type to to more closely match the STL declarations and work around some bugs in some compilers for pointer references (when the type is a pointer)
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8067 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-12-26 23:23:58 +00:00
William S Fulton
cfdad24993 Use the system angle brackets for %include
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7871 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-11-26 09:28:20 +00:00
William S Fulton
549a51eef2 Fully qualify System.Array usage
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7405 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-09-05 19:32:32 +00:00
William S Fulton
03a67698a9 use exception specification instead of %exception to handle STL error checking
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7352 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-07-27 20:09:42 +00:00
William S Fulton
abc9d8c97e Fix undefined behaviour when throwing exceptions
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7041 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-03-07 21:49:34 +00:00
William S Fulton
db4ab69bba debug removed
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7030 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-03-06 19:12:25 +00:00
William S Fulton
8d7eaea667 Fixes for new Exception mechanism, but still failing.
Debug code left in for testing on other systems.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6992 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-02-23 21:00:09 +00:00
William S Fulton
bac8f43f79 C# exception handling improvements - they are robust and don't leak anymore. Requires typemap modifications using attribute canthrow in any unmanaged code typemaps that throw an exception and excode attribute in csout and csconstruct typemaps.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6934 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-02-02 22:44:32 +00:00
William S Fulton
054b450ad4 forgotten checkin to remove some warnings on VC++
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6715 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-11-11 21:50:54 +00:00
William S Fulton
9bf092eb5a C# std::vector support. Not really ready for the masses, but enjoy anyway.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6666 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-11-04 22:37:37 +00:00