Issuing compile-time warnings with line numbers?

Andrej Mitrovic andrej.mitrovich at gmail.com
Tue Sep 20 17:18:52 PDT 2011


Won't compile for obvious reasons:

struct Bar { }
struct Foo
{
    this(Bar bar, int line = __LINE__)
    {
        pragma(msg, "Warning: Constructing Foo with Bar incurs
precision loss. Line: " ~ line);
    }
}

void main()
{
    auto foo = Foo(Bar());
}

That's just an example, but I want to issue a compile-time warning
when a specific ctor is called because it might incur precision loss.
I want to give the user the line number of the call, but I can't call
to!string since it's not ctfe-able, so do I have any other options?


More information about the Digitalmars-d-learn mailing list