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
This commit is contained in:
William S Fulton 2022-12-02 19:16:02 +00:00
commit 05b93b1f06
9 changed files with 212 additions and 62 deletions

View file

@ -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);
}
}