assurer l'héritage d'un template
Bonsoir
Je ne savais pas trop quel titre donner à mon post. Ce que je souhaite,
c'est assurer qu'un membre template hérite d'une classe donnée.
un bon exemple vaut mieux qu'un long discourt :
#include <iostream>
class A
{
public:
A() {}
void Do() { std::cout << "A" << std::endl; }
};
class B : public A
{
public:
B() {}
void Do() { std::cout << "B" << std::endl; }
};
class C
{
public:
C() {}
void Do() { std::cout << "C" << std::endl; }
};
class D
{
public:
D() {}
void Test()
{
Do<B>(); // OK, ca doit compiler
Do<A>(); // ne doit pas compiler
Do<C>(); // ne doit pas compiler
}
// template <class T : public A> ne fonctionne pas, dommage
template <class T>
void Do(void)
{
T t;
t.Do();
}
};
int main()
{
D d;
d.Test();
return 0;
}
C'est possible ?
Si oui, comment ?
Merci
--
Jérémie
|