Throwable, Exception, and Error

Jarrett Billingsley jarrett.billingsley at gmail.com
Sun May 3 15:44:22 PDT 2009


On Sun, May 3, 2009 at 5:07 PM, Andrei Alexandrescu
<SeeWebsiteForEmail at erdani.org> wrote:

>> I did find a sort of bug when trying a slightly different
>> implementation of this though - any kind of explicit instantiation of
>> the Throw template causes the __FILE__ and __LINE__ to be evaluated in
>> the scope of the template rather than at the call site.
>
> That's intentional and is used in enforce() and a couple other places in
> Phobos.

That's what I figured.  It wasn't until I looked at the source to
std.contracts that I found out about it, though, and I doubt many
other people know about it.  The only mention about it in the
changelog is for 2.013, where it says "Changed __FILE__ and __LINE__
so they work as parameter default initializers" but that doesn't..
well, doesn't say a lot :P

In any case, I doubt the bug is intentional.



More information about the Digitalmars-d mailing list