Niektóre z moich klas bazowych otrzymują mnóstwo parametrów. Teraz chcę, aby określić, które statyczna funkcja używać:Używanie funkcji statycznych klasy bazowej bez określania parametrów w celu uniknięcia niejasności.
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 widać, muszę napisać parametry dwukrotnie szablon, który prowadzi do powielania kodu.
Czy istnieje sposób na pozbycie się tego?
IMO, najczystsze rozwiązanie dla klas bez szablonów. – hpohl
'używając B_SBase = SBase' jest alternatywą C++ 11 do typedef. –
damienh