On Friday, 16 March 2012 at 18:21:54 UTC, H. S. Teoh wrote:
void checkConsistency(T...)(T args, string file=__FILE__,
size_t line=__LINE__) { ... }
but this causes compile errors because when C==string, then the
call is
ambiguous.
Does it make sense to consider to add a new type to hold the file
name and line? So the types clash can be avoided:
class file_line
{
this(string f=__FILE__, size_t ln=__LINE__)
{
file = f;
line = ln;
}
string file;
size_t line;
};
void checkConsistency(T...)
(T args, file_line pos = new file_line) {...}
checkConsistency!(A,B,C)(a,b,c);
Seems to work, but requires an explicit checkConsistency call - I
didn't manage to make it implicit.