diff options
author | William S Fulton <wsf@fultondesigns.co.uk> | 2022-12-02 19:16:02 +0000 |
---|---|---|
committer | William S Fulton <wsf@fultondesigns.co.uk> | 2022-12-02 19:16:02 +0000 |
commit | 05b93b1f06fe5299e5bda2c2b1e0d70c7599af61 (patch) | |
tree | 713dbb9e92db2908e0aac3fcc4b236212b20dd3a /Examples/test-suite/java | |
parent | c85e7f1625f8b421c92b8c1a8279d134ba050ecc (diff) | |
download | swig-05b93b1f06fe5299e5bda2c2b1e0d70c7599af61.tar.gz |
Improved template template parameters support.
Previously, specifying more than one simple template template parameter
resulted in a parse error. Now multiple template template parameters are
working including instantiation with %template. Example:
template <template<template<class> class, class> class Op, template<class> class X, class Y>
class C { ... };
Closes #624
Closes #1021
Diffstat (limited to 'Examples/test-suite/java')
-rw-r--r-- | Examples/test-suite/java/template_template_parameters_runme.java | 8 | ||||
-rw-r--r-- | Examples/test-suite/java/template_template_template_parameters_runme.java | 36 |
2 files changed, 42 insertions, 2 deletions
diff --git a/Examples/test-suite/java/template_template_parameters_runme.java b/Examples/test-suite/java/template_template_parameters_runme.java index 613f9087c..244e12985 100644 --- a/Examples/test-suite/java/template_template_parameters_runme.java +++ b/Examples/test-suite/java/template_template_parameters_runme.java @@ -14,7 +14,7 @@ public class template_template_parameters_runme { } public static void main(String argv[]) { - // Test first part + // Test part 1 ListFastBool listBool = new ListFastBool(); listBool.setItem(true); boolean x_boolean = listBool.getAllotype(); @@ -27,7 +27,7 @@ public class template_template_parameters_runme { if (listDouble.getItem() != 10.2) throw new RuntimeException("Failed"); - // Test second part + // Test part 2 FloatTestStruct floatTestStruct = new FloatTestStruct(); FloatContainer2 floatContainer2 = floatTestStruct.getX(); floatContainer2.setX(8.1f); @@ -41,6 +41,10 @@ public class template_template_parameters_runme { IntTestStruct intTestStructReturned = template_template_parameters.TestStructContainer1Method(intTestStruct); if (intTestStructReturned.getX().getX() != 101) throw new RuntimeException("Failed"); + + // Test part 3 + MyFootInt99 mfi99 = new MyFootInt99(); + mfi99.OperatorPlusEquals(mfi99); } } diff --git a/Examples/test-suite/java/template_template_template_parameters_runme.java b/Examples/test-suite/java/template_template_template_parameters_runme.java new file mode 100644 index 000000000..519a9e068 --- /dev/null +++ b/Examples/test-suite/java/template_template_template_parameters_runme.java @@ -0,0 +1,36 @@ + + +import template_template_template_parameters.*; + +public class template_template_template_parameters_runme { + + static { + try { + System.loadLibrary("template_template_template_parameters"); + } catch (UnsatisfiedLinkError e) { + System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e); + System.exit(1); + } + } + + public static void main(String argv[]) { + CustomAttrs custom_attrs = new CustomAttrs(); + AC ac = new AC(); + BAC bac = new BAC(); + CBAC cbac = new CBAC(); + DBAC dbac = new DBAC(); + + custom_attrs = ac.getAttributes(); + custom_attrs = bac.getAttributes(); + custom_attrs = cbac.getAttributes(); + custom_attrs = dbac.getAttributes(); + + bac.BMethod(custom_attrs, ac); + cbac.BMethod(custom_attrs, ac); + dbac.BMethod(custom_attrs, ac); + + cbac.CMethod(custom_attrs, bac); + dbac.DMethod(custom_attrs, bac); + } +} + |