Just for the sake of completeness, with regard to type equivalence of
templates, we may quote [temp.type]/1:
"Two template-ids refer to the same class or function if their
template names are identical, they refer to the same template, their
type template-arguments are the same type, their non-type template-
arguments of integral or enumeration type have identical values, their
non-type template-arguments of pointer or reference type refer to the
same external object or function, and their template template-
arguments refer to the same template."
Therefore, std::vector<Base>/std::vector<Base*> and
std::vector<Derived>/std::vector<Derived*> are indeed completely
different and unrelated types.
Regards,
David
--
[ See http://www.gotw.ca/resources/clcm.htm
for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]


|