On Friday, 1 October 2021 at 14:03:06 UTC, Stephen wrote:
I've been trying out templates in more depth and one thing I was wondering was whether template expansions with circular dependencies might work.
Here is an example that doesn't work:
```d
mixin(A!());
mixin(B!());

void main() {}

template A() {
    const char[] A = q{
        struct Ar {
            Br b;
        }
    };
}

template B() {
    const char[] B = q{
        struct Br {
            Ar a;
        }
    };
}
```
This code should work should mutual recursion be supported. How might I get it to work properly (without sacrificing recursion or templates)?

Just curious since I haven't found a use case for this myself, what's the benefit rather than having a separate struct?

Reply via email to