#include <vector>
struct A {int a;};
struct B : public A {char b;};
int main()
{
B b;
typedef std::pair<A*, A*> MyPair;
std::vector<MyPair> v;
v.push_back(std::make_pair(&b, &b)); //compiler error should be here(pair<B*,B*>)
return 0;
}
Je ne comprends pas pourquoi cette compile (peut-être quelqu'un peut bien vouloir fournir des explications détaillées? Est-il quelque chose lié au nom consultation?C++ modèle coulée avec les classes dérivées
BTW, sur Solaris, SunStudio12 il ne compile pas: error : formal argument x of type const std::pair<A*, A*> & in call to std::vector<std::pair<A*,A*> >::push_back(const std::pair<A*, A*> &) is being passed std::pair<B*, B*>
Ce modèle struct ci-dessus ne fait pas vraiment beaucoup, n'est-ce pas? – BenG
@BennyG: Il a entendu parler de problèmes dans le quartier et a décidé de venir jeter un coup d'œil. –
désolé, effacé – yurec