You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Feb 4, 2026. It is now read-only.
Although rvariant's unit tests correctly handle basic "truly recursive" types, I have found that properly constraining user-defined types is very challenging in practice.
For instance, inadvertently applying std::is_constructible to a user-defined class's generic constructor can effectively introduce type-level left recursion, resulting in the well-known error: "satisfaction of constraint depends on itself".
We should document strategies to avoid such pitfalls, and perhaps provide a tutorial on constructing legitimate recursive types.
We definitely need minimal reproducible example for this. I have just encountered such error in medium-sized codebase, and I'm having a hard time reducing the code.
Although
rvariant's unit tests correctly handle basic "truly recursive" types, I have found that properly constraining user-defined types is very challenging in practice.For instance, inadvertently applying
std::is_constructibleto a user-defined class's generic constructor can effectively introduce type-level left recursion, resulting in the well-known error: "satisfaction of constraint depends on itself".We should document strategies to avoid such pitfalls, and perhaps provide a tutorial on constructing legitimate recursive types.
We definitely need minimal reproducible example for this. I have just encountered such error in medium-sized codebase, and I'm having a hard time reducing the code.
related: #39 and #45