On Saturday, 1 June 2019 at 14:24:11 UTC, Robert M. Münch wrote:
The myFilter struct is the implementation which myClass.put()
should use to iterate over all objects.
Which ones? The E-objects, or the objects contained in myClass,
which you don't want to know about?
All things being only examples.
Sure. So, please, provide a minimal example, as I'm only guessing
what use case you want to solve. Even if it is not compilable.
So, the idea is, that I can provide a delegate which
foreach(...; myFilter(objects)) uses. Like a run-time plug-in.
Maybe you can. But "put" has to remain a function, not a template.
Do you have control about the contained classes? If so, it is
a hint to implement the testing inside them. Like:
/* probably inside a templated mixin */
bool testfunction(inputs){...}
class myOtherClass(/*probably templated*/){... mixin
testfunction ... & provide a put function}
I thought about a mixin too. But this requires an understanding
of how myClass works. Which I what I want to avoid.
Over which objects your filter will be iterating then?
* So, you are not totally against the idea of modifying the
foreign library, but you want to keep modifications small?
Yes, because myClass is some external lib, which can be changed
to support this approach here. But not more.