On 1/11/2016 12:45 AM, Rainer Schuetze wrote:
This yields:

test.d(11): Error: stl.vector.std at stl\vector.d(3) conflicts with stl.map.std
at stl\map.d(3)
test.d(12): Error: stl.vector.std at stl\vector.d(3) conflicts with stl.map.std
at stl\map.d(3)
test.d(12): Error: template identifier 'map' is not a member of namespace
'stl.vector.std'

Of course it does, because you're looking up "std" and "std" is in both vector and map. Again, I am hornswoggled by my inability to explain how name lookup works.


This works to disambiguate, but it is not nice (but maybe inevitable):

void main()
{
     stl.vector.vector!int v;
     stl.map.map!(int,int) m;

     writeln(v);
}

Following the rules I listed:

import stl.vector;
import stl.map;

void main()
{
    vector!int v;
    map!(int,int) m;
}

compiles without error.

Reply via email to