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