I see now why it was returning a bool as that is the type of the
template argument passed.
class A(bool x = true)
then your TemplateArgs returns `tuple(bool)`. What I'm looking
for is something that returns `(x)`. For class A(T1, T2, bool x =
true) I would like `(T1, T2, x)`.
To see why this will help, in my Nested structs code, I have to
do the following:
class _A(...., bool _NestedLevel = true) {
enum string __ClassNameFix = "_A!(....";
...}
Using what you said about typeof(this), I can now remove the
class name dependency, so I have this:
enum string __ClassNameFix = __traits(identifier,
typeof(this))~"!(....";
Now I want to remove the type argument list dependency(the
`!(...` part).
Once that is done, I can completely remove the __ClassNameFix
since I can get the class name and template arg names without
user intervention. The whole point of __ClassNameFix was to
provide a way for the user to specify the class name and args. I
had to use strings so I could parse them. (since in my mixins
I'll set _NestedLevel to false and such, using strings, which is
easy)
If I could go the next step and get the template argument names
it will drastically reduce the code in my template mixins.