digitalmars.D - typedef members inaccessible
- Vathix (15/15) Oct 27 2005 struct Foo
- Derek Parnell (20/37) Oct 27 2005 I must admit that this looks odd ...
struct Foo
{
void stuff() { }
}
typedef Foo Bar;
int main()
{
Bar b;
b.stuff(); // here
return 0;
}
DMD 0.137 output:
test.d(9): this for stuff needs to be type Foo not type Bar
Was this intended? If so, what is the reason? Shouldn't the type
implicitly convert to its base to find the member?
Oct 27 2005
On Fri, 28 Oct 2005 02:31:25 -0400, Vathix wrote:
struct Foo
{
void stuff() { }
}
typedef Foo Bar;
int main()
{
Bar b;
b.stuff(); // here
return 0;
}
DMD 0.137 output:
test.d(9): this for stuff needs to be type Foo not type Bar
Was this intended? If so, what is the reason? Shouldn't the type
implicitly convert to its base to find the member?
I must admit that this looks odd ...
struct Foo
{
void stuff() { }
}
typedef Foo Bar;
int main()
{
Bar b;
(cast(Foo)b).stuff(); // now it works.
return 0;
}
Also, instead of typedef, alias makes it compile, but I guess that's not
your point.
--
Derek
(skype: derek.j.parnell)
Melbourne, Australia
28/10/2005 4:51:21 PM
Oct 27 2005








Derek Parnell <derek psych.ward>