> A template instantiated twice, one holding type T1 and the other type
> T2, are completely unrelated types according to the rules of the C++
> type system. As such, it's no different than trying to pass a Person
> structure to a function expecting a Shape object.
>
> Now logically, you might think that if the relation****p between two
> types T1 and T2 are polymorphic, then arrays or vectors of them ought
> to be also, but it just isn't so.
Thank you everyone for the responses. I understand now. It is
different in Java and I think that threw me off.
> Fist, be glad you used a vector and not a raw array (passed as a
> pointer) as that *would* compile, and would have devastating results.
> Consider the issue: How do you index into an array? The way it works
> is through pointer arithmetic on the size of the array element.
Well, while I know this is how it is, two things:
1. They could have overriden the []operator so that it works with non-
contiguos data or with data of changing sizes.
2. A vector of bools is exactly that - it's not a normal container and
the data is retrieved through indirection so they have done something
like that before
It might have given a performance hit but I think it could be done.
--
[ See http://www.gotw.ca/resources/clcm.htm
for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]


|