Prenez la hiérarchie de classe suivante:Déduire classe parente de méthode héritée en C++
template<typename T>
class Foo {
public:
T fooMethod() { ... }
};
class Moo : public Foo<bool> {
...
};
Si je maintenant quelque part écrire Moo::fooMethod
le compilateur déduira Foo<bool>::fooMethod
. Comment puis-je déduire Foo<bool>
en tant que parent de fooMethod
moi-même avant la compilation? Motivation: le compilateur n'autorisera pas le Foo<bool>::fooMethod
à passer en paramètre de modèle pour bool (Moo::*)()
puisqu'il sera de type bool (Foo<bool>::*)()
dans ce contexte. Mais puisque j'ai l'héritage multiple je ne sais pas quel parent sera fooMethod
, il doit être déduit.
Je ne suppose pas que [utiliser une référence rvalue] (http://ideone.com/AZsFOx) est une possibilité? – WhozCraig
Une simple fonction de passage est-elle acceptable/pas trop gênante? –