Templates convariance
Sean Fritz
Sean_member at pathlink.com
Tue Jun 20 15:01:13 PDT 2006
In article <e799ce$2idm$1 at digitaldaemon.com>, michal.minich at gmail.com says...
A list!(Shape) is not the same a a list!(Square). It sounds like you want some
sort of wildcard matching or something to enforce type bounding like Java/C#
have, but casts are definitely unsafe.
Example code (I'm going to blotch various syntax, sorry in advance):
void foo(List!(Shape) ls) {
ls.add(new Circle) //passes type check locally?
}
..
List!(Square) ls = new List!(Square);
foo(ls);
//but ls now contains a Circle? Circles don't go in List!(Square)?
,,.
More information about the Digitalmars-d
mailing list