Scoped Imports for Structs/Classes/Template Constraints
Enamex via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Mon Aug 31 13:54:51 PDT 2015
On Monday, 31 August 2015 at 19:10:45 UTC, jmh530 wrote:
> module local;
>
> struct S { int a = 2; }
>
> module app;
>
> import local : S;
>
> void foo(S s)
> {
> import std.stdio : writeln;
> writeln(s.a);
> }
>
> void bar()
> {
> import std.stdio : writeln;
> import local : S;
> S s;
> writeln(s.a);
> }
>
> void main()
> {
> S s;
> foo(s);
> bar();
> }
You can't use it with foo(S) because the type is used /outside/
the scope of the function, in its head. You have to qualify it (
void foo(local.S s) ) or import the type as:
{ import local: S;
void foo(S s) { ... }
}
More information about the Digitalmars-d-learn
mailing list