Alcune delle mie classi base ottengono tonnellate di parametri. Ora voglio specificare quale funzione statica da utilizzare:Uso di funzioni statiche di una classe base senza specificare i parametri per evitare l'ambiguità
template <typename... Types>
struct SBase {
static void func() {
}
};
struct A : public SBase<int> {
};
struct B : public A, public SBase<int, double, short,
unsigned int, float, unsigned char, long, unsigned long> {
// using SBase::func; // Not possible.
// Horrible, but works.
using SBase<int, double, short,
unsigned int, float, unsigned char, long, unsigned long>::func;
};
Aso si può vedere, ho bisogno di scrivere i parametri del modello due volte che conduce alla duplicazione del codice.
C'è un modo per sbarazzarsi di esso?
IMO, soluzione più pulita per classi non modello. – hpohl
'using B_SBase = SBase' è un'alternativa C++ 11 a typedef. –
damienh