On 2011-09-21 02:18, Andrej Mitrovic wrote:
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?

Have a look at: http://d-programming-language.org/templates-revisited.html

Search for "Template Metaprogramming With Strings".

--
/Jacob Carlborg

Reply via email to