On Sunday, 4 October 2015 at 16:37:34 UTC, John Colvin wrote:
On Sunday, 4 October 2015 at 15:45:55 UTC, Laeeth Isharc wrote:
How do I persuade partial to tie itself to the appropriate
overload?
I have:
alias
bars=partial!(slurpBars!BarType,filename,startDate,endDate);
where there are two overloads of slurpBars:
SomeBar[] slurpBars(SomeBar)(string filename,string
datasetName, typeof(SomeBar.date) startDate,
typeof(SomeBar.date) endDate)
SomeBar[] slurpBars(SomeBar)(hid_t filehandle,string
datasetName, typeof(SomeBar.date) startDate,
typeof(SomeBar.date) endDate)
And I receive the following error:
Error: template kprop.marketdata.retrievebars.slurpBars
matches more than one template declaration:
Thanks.
Laeeth.
As far as I can see std.functional.partial only does one
argument at a time.
bars=partial!(partial!(partial!(slurpBars!BarType, filename),
startDate), endDate);
or maybe, I'm not sure, but maybe you can do:
bars=partial!(slurpBars!BarType, AliasSeq!(filename, startDate,
endDate));
If you find you really need to manually mess with overloads,
use http://dlang.org/traits.html#getOverloads. You may have to
wrap it in AliasSeq in some situations due to grammar/parser
constraints.
Thanks, John. I will give that a try.
Laeeth.