Updated DIP22 - Private symbol visibility

Martin Nowak code at dawg.eu
Sat Dec 21 14:14:50 PST 2013


On 12/21/2013 10:36 PM, Dicebot wrote:
> If MUST have different overload resolution if B does not have access to
> those A function. Anything else is damn broken module system. Why would
> anyone expect to move functions between modules and have accessibility
> rules magically persistent?
>
It's important for example to define a forwarding template in a 
different module.

void call(alias funcs, Args...)(auto ref Args args)
{
     funcs(args); // overload resolution happens here
}

> It is a major design issue with templates using declaration scope for
> access resolution instead of instantation scope. I think it was a
> mistake and is unrelated to general visibility rules.

What? It's a major design win that we don't have to rerun semantic for 
every identical instantiation, in the same sense that we don't have to 
reinclude header files.
Or are you only talking about access checks?
I don't think that handling access resolution separately from look-up 
resolution is desirable.


More information about the Digitalmars-d mailing list