Review: A new stab at a potential std.unittests
Jonathan M Davis
jmdavisProg at gmx.com
Fri Nov 19 13:24:28 PST 2010
On Friday 19 November 2010 12:39:20 Leandro Lucarella wrote:
> Sean Kelly, el 19 de noviembre a las 14:59 me escribiste:
> > Jonathan M Davis Wrote:
> > > On Friday, November 19, 2010 11:37:16 Sean Kelly wrote:
> > > > Jonathan M Davis Wrote:
> > > > > In particular, needing to pass LineInfo() to assertExcThrown!() to
> > > > > know the file and line number was disliked (though it was by far
> > > > > the best solution that I'd been able to come up with).
> > > >
> > > > Not sure if this helps, but if you default-initialize template
> > > > function parameters with __LINE__ and __FILE__ they get the line and
> > > > file of where the template was instantiated.
> > >
> > > Yes. The problem was that the function was a _variadic_ template. So,
> > > you couldn't have default arguments.
> >
> > This should work:
> >
> > void func(string x = __FILE__, T...)(T args);
> >
> > D allows defaulted template arguments to occur before non-defaulted ones.
>
> And what is func!("blah")(); is supposed to do, make x = "blah"? args[0]
> = "blah"? both?
>
> (I don't have a compiler at hand to try it =P)
T... is filled in be args, so if there are no args, T is empty. It can't confuse
x for T...
- Jonathan M Davis
More information about the Digitalmars-d
mailing list