D - dmd 0.42 release
- Walter (3/3) Sep 12 2002 Implemented new alias declarations.
- Sean L. Palmer (52/61) Sep 12 2002 charset="iso-8859-1"
- Walter (68/68) Sep 13 2002 charset="iso-8859-1"
Implemented new alias declarations. www.digitalmars.com/d/declaration.html ftp://ftp.digitalmars.com/dmdalpha.zip
Sep 12 2002
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
So I finally got my buggy email editor to work and was wondering if =
there has to be any particular ordering to the alias declarations that =
you can use within a scope? How and when is the lookup done? Does =
lexical order matter? =20
For that matter, does it matter about lexical order of local variable =
declarations? I don't see why it should, except an initialization might =
be easily taken out of order in presence of prior assignments.
Sean
From the Digital Mars website:
Alias Declarations
A symbol can be declared as an alias of another symbol. For example:=20
import string;
alias string.strlen mylen;
...
int len =3D mylen("hello"); // actually calls string.strlen()
=09
The following alias declarations are valid:=20
template Foo2(T) { alias T t; }
instance Foo2(int) t1; // a TemplateAliasDeclaration
alias instance Foo2(int).t t2;
alias t1.t t3;
alias t2 t4;
alias instance Foo2(int) t5;
t1.t v1; // v1 is type int
t2 v2; // v2 is type int
t3 v3; // v3 is type int
t4 v4; // v4 is type int
t5.t v5; // v5 is type int
=09
Aliased symbols are useful as a shorthand for a long qualified symbol =
name, or as a way to redirect references from one symbol to another:=20
version (Win32)
{
alias win32.foo myfoo;
}
version (linux)
{
alias linux.bar myfoo;
}
=09
Note: Type aliases can sometimes look indistinguishable from alias =
declarations:=20
alias foo.bar abc; // is it a type or a symbol?
=09
The distinction is made in the semantic analysis pass.=20
-------------------------------------------------------------------------=
-------
Copyright (c) 1999-2002 by Digital Mars, All Rights Reserved
"Walter" <walter digitalmars.com> wrote in message =
news:alr39k$2nk3$1 digitaldaemon.com...
Implemented new alias declarations.
=20
www.digitalmars.com/d/declaration.html
=20
ftp://ftp.digitalmars.com/dmdalpha.zip
=20
=20
=20
=20
Sep 12 2002
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
The ordering is lexical order, and the semantic processing is done in =
order just like for other variables. It does not work like templates, =
where semantic processing is delayed until instantiation.
Lexical order does matter in that locals must be defined before use. =
(This is not true for globals.)
"Sean L. Palmer" <seanpalmer earthlink.net> wrote in message =
news:als15i$ma7$1 digitaldaemon.com...
So I finally got my buggy email editor to work and was wondering if =
there has to be any particular ordering to the alias declarations that =
you can use within a scope? How and when is the lookup done? Does =
lexical order matter? =20
For that matter, does it matter about lexical order of local variable =
declarations? I don't see why it should, except an initialization might =
be easily taken out of order in presence of prior assignments.
Sean
From the Digital Mars website:
Alias Declarations
A symbol can be declared as an alias of another symbol. For example:=20
import string;
alias string.strlen mylen;
...
int len =3D mylen("hello"); // actually calls string.strlen()
=09
The following alias declarations are valid:=20
template Foo2(T) { alias T t; }
instance Foo2(int) t1; // a TemplateAliasDeclaration
alias instance Foo2(int).t t2;
alias t1.t t3;
alias t2 t4;
alias instance Foo2(int) t5;
t1.t v1; // v1 is type int
t2 v2; // v2 is type int
t3 v3; // v3 is type int
t4 v4; // v4 is type int
t5.t v5; // v5 is type int
=09
Aliased symbols are useful as a shorthand for a long qualified symbol =
name, or as a way to redirect references from one symbol to another:=20
version (Win32)
{
alias win32.foo myfoo;
}
version (linux)
{
alias linux.bar myfoo;
}
=09
Note: Type aliases can sometimes look indistinguishable from alias =
declarations:=20
alias foo.bar abc; // is it a type or a symbol?
=09
The distinction is made in the semantic analysis pass.=20
-------------------------------------------------------------------------=
-----
Copyright (c) 1999-2002 by Digital Mars, All Rights Reserved
"Walter" <walter digitalmars.com> wrote in message =
news:alr39k$2nk3$1 digitaldaemon.com...
> Implemented new alias declarations.
>=20
> www.digitalmars.com/d/declaration.html
>=20
> ftp://ftp.digitalmars.com/dmdalpha.zip
>=20
>=20
>=20
>=20
Sep 13 2002








"Walter" <walter digitalmars.com>