On 2011-03-15 21:13:36 +0100, Michel Fortin said:
Oh, it's much older than that:
http://d.puremagic.com/issues/show_bug.cgi?id=2128
I'm not sure it's the same thing, but I realize it's hard to say given
Magnus in his original post didn't mention how he attempts to
instantiate the template.
Hm. I've gone back to it now, and, sadly (as opposed to for the other
bugs I've encountered :) I didn't isolate and save the related code --
so now I'm unable to reproduce the const problem. (Who knows ... maybe
I was just trying to pass it on as an un-const parameter or something?
Might very well have been a bug on my part.)
Here's some sample code for the other part of my question, though
(which might not have been as unclear in the first place?).
class Foo(T) {
T foo;
}
template baz_t(T) {
alias real function(T, T) baz_t;
}
Foo!T foo(T)(T[] bar, baz_t!T baz) {
return new Foo!T;
}
real frozz(uint x, uint y) {
return 4.2;
}
void main() {
uint[] x = [1, 2, 3];
auto f = foo(x, &frozz);
}
The error is:
inferencebug.d(19): Error: template inferencebug.foo(T) does not match
any function template declaration
inferencebug.d(19): Error: template inferencebug.foo(T) cannot deduce
template function from argument types !()(uint[],real function(uint x,
uint y))
--
Magnus Lie Hetland
http://hetland.org