On Monday, 20 August 2018 at 00:27:04 UTC, Nick Sabalausky
(Abscissa) wrote:
Suppose I've wrapped a Variant in a struct/class which ensures
the Variant *only* ever contains types which satisfy a
particular constraint (for example: isInputRange, or hasLength,
etc...).
Is there a way to call a function (ex: popFront) on the
Variant, *without* knowing ahead of time all the possible
static types it might might contain?
You are basically reinventing OOP here.
Instead of Variants, use objects that implement an interface
(e.g., `std.range.interfaces.InputRange`). Then you can call
methods that belong to that interface and rely on virtual method
dispatch to choose the correct implementation at runtime.