On 12/6/14 4:49 PM, Manu via Digitalmars-d wrote:
In the situation where templates are involved, it would be nice to be
able to make that explicit statement that some type is ref or not at
the point of template instantiation, and the resolution should work
according to the well-defined rules that we are all familiar with.
Another drive-by comment: I understand the motivation for this and the
difficulties involved. There needs to be a clear understanding that
adding new type qualifiers is extremely intrusive and expensive. Because
of that, I think we should best address binding generation via a set of
tactical tools i.e. standard library artifacts that do all that mixin
business in an encapsulated and reusable manner.
(As an aside forcing a template instantiation to decide ref vs. no ref
should be easy but currently can't be done, i.e. this code should work
but currently doesn't:
T fun(T)(ref T x) { return x + 1; }
void main(string[] group)
{
int function(int) f1 = &fun!int;
int function(ref int) f2 = &fun!int;
}
)
Andrei