*** empty log message ***
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5856 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
75d5b64fa1
commit
b0ca61077e
1 changed files with 61 additions and 0 deletions
|
|
@ -1,6 +1,67 @@
|
||||||
Version 1.3.22 (in progress)
|
Version 1.3.22 (in progress)
|
||||||
==================================
|
==================================
|
||||||
|
|
||||||
|
04/07/2004: cheetah (William Fulton)
|
||||||
|
[C#] C++ enums are no longer wrapped by integers, they are now wrapped by
|
||||||
|
C# enums. For Example, given C++:
|
||||||
|
|
||||||
|
enum AnEnum { foo, bar };
|
||||||
|
typedef AnEnum AnEnumeration;
|
||||||
|
void something(AnEnum e, AnEnumeration f);
|
||||||
|
|
||||||
|
The following is generated:
|
||||||
|
|
||||||
|
public enum AnEnum {
|
||||||
|
foo,
|
||||||
|
bar
|
||||||
|
}
|
||||||
|
public static void something(AnEnum e, AnEnum f) {...}
|
||||||
|
|
||||||
|
Note that a global enum like AnEnum above is generated into its own
|
||||||
|
file called AnEnum.cs. Enums defined within a C++ class are defined
|
||||||
|
within the C# proxy class. Some of the typemaps for modifying C# proxy
|
||||||
|
classes also work for enums. For example global enums can use
|
||||||
|
|
||||||
|
%typemap(csimports) to add in extra using statements.
|
||||||
|
|
||||||
|
Global enums and class enums can use
|
||||||
|
|
||||||
|
%typemap(csclassmodifiers) to make the enum private, public etc.
|
||||||
|
%typemap(csbase) to change the underlying enum type (enum base)
|
||||||
|
|
||||||
|
If we add this for the above example:
|
||||||
|
|
||||||
|
%typemap(csclassmodifiers) AnEnum "protected"
|
||||||
|
%typemap(csbase) AnEnum "long"
|
||||||
|
|
||||||
|
the following is generated:
|
||||||
|
|
||||||
|
protected enum AnEnum : long {
|
||||||
|
foo,
|
||||||
|
bar
|
||||||
|
}
|
||||||
|
|
||||||
|
*** POTENTIAL INCOMPATIBILITY FOR C# MODULE ***
|
||||||
|
|
||||||
|
The original behaviour where constant integers are generated for each enum value
|
||||||
|
can be achieved by using the %csenumint(flag) feature. For example,
|
||||||
|
|
||||||
|
%csenumint(1);
|
||||||
|
|
||||||
|
for all enums. Or
|
||||||
|
|
||||||
|
%csenumint(1) AnEnum;
|
||||||
|
|
||||||
|
which for the example above will generate:
|
||||||
|
|
||||||
|
public static void something(int e, int f) { ... }
|
||||||
|
public const int foo = 0;
|
||||||
|
public const int bar = foo + 1;
|
||||||
|
|
||||||
|
04/07/2004: cheetah (William Fulton)
|
||||||
|
Seg fault fix for empty enums, like
|
||||||
|
enum Foo {};
|
||||||
|
|
||||||
03/21/2004: mmatus
|
03/21/2004: mmatus
|
||||||
[Python] Makes the following 'var' cases more uniform:
|
[Python] Makes the following 'var' cases more uniform:
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue