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

@ -1,6 +1,6 @@
from template_template_parameters import *
# Test first part
# Test part 1
listBool = ListFastBool()
listBool.item = True
x_boolean = listBool.allotype
@ -13,7 +13,7 @@ x_double = listDouble.allotype
if listDouble.item != 10.2:
raise RuntimeError("Failed")
# Test second part
# Test part 2
floatTestStruct = FloatTestStruct()
floatContainer2 = floatTestStruct.x
floatContainer2.x = 8.1
@ -28,3 +28,6 @@ intTestStructReturned = TestStructContainer1Method(intTestStruct)
if intTestStructReturned.x.x != 101:
raise RuntimeError("Failed")
# Test part 3
mfi99 = MyFootInt99()
mfi99 += mfi99 # __iadd__