A template for method forwarding?

Bill Baxter wbaxter at gmail.com
Fri Dec 12 13:21:20 PST 2008


On Sat, Dec 13, 2008 at 6:13 AM, Bill Baxter <wbaxter at gmail.com> wrote:
> Cool.  I don't see anything D2 specific there, so I think it should
> work in D1 ok.
> std.traits.ParameterTypeTuple and std.traits.ReturnType both exist in
> D1, if that's what you were worried about.
>
> I think there may be a problem with 0-arg functions in the code?
> You handle the void return type (which I'm not sure is necessary
> actually -- I think D lets you say "return foo()" for a void function
> specifically to handle this kind of template situation), but I think
> maybe you don't handle a void argument?    I'm getting an error with
> that for some reason... will dig more.

Actually I think it's not zero-arg functions.
The problem is that one of my arguments is a templated type.
The .stringof says the parameter type is TheTemplate, when the
argument type is really TheTemplate!(T).   So when your code tries to
generate the function it tries to make it    void
aFunction(TheTemplate x) { ... }, which obviously ain't gonna fly.

So looks like bad stringof is the culprit, once again.

--bb



More information about the Digitalmars-d mailing list