Deducing types for function templates
Michel Fortin
michel.fortin at michelf.com
Tue Mar 15 09:36:04 PDT 2011
On 2011-03-15 10:42:46 -0400, Magnus Lie Hetland <magnus at hetland.org> said:
> I've got a function template along these lines:
>
> Foo!T foo(T)(T[] bar, real function(T,T) baz) { ... }
>
> The main reason I'm using this is that it seems necessary to use a
> function, rather than a type (such as Foo), if you want the compiler to
> deduce the compile-time parameters. (Right?)
>
> Now ... this works just fine. However, if I try to add "const" before
> "T[]", DMD no longer groks it. Is that how it shold be? Seems awkward
> to me... (Or maybe I'm just doing it wrong?)
I'd say add it to bugzilla. It's probably related to this bug:
<http://d.puremagic.com/issues/show_bug.cgi?id=5531>
> And a followup question: Writing out the type of baz like this (in
> several places) is also a bit awkward. I'd like to have a template so I
> could just do
>
> Foo!T foo(T)(T[] bar, baz_t!T baz) { ... }
>
> However, I haven't been able to define such a template without running
> into the same problem (i.e., that DMD no longer can deduce what T
> should be from my arguments).
My feeling is that it should work. Feel free to file a bug or
enhancement request in the bug tracker.
--
Michel Fortin
michel.fortin at michelf.com
http://michelf.com/
More information about the Digitalmars-d-learn
mailing list