How to create a template class using foreach delegate to filter objects in a member function call?
Alex
sascha.orlov at gmail.com
Sat Jun 1 17:51:48 UTC 2019
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.
More information about the Digitalmars-d-learn
mailing list