Einige meiner Basisklassen erhalten viele Parameter. Jetzt will ich die statische Funktion festlegen,:Verwenden von statischen Funktionen einer Basisklasse ohne Angabe von Parametern zur Vermeidung von Mehrdeutigkeiten
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 Sie sehen, ich brauche die Template-Parameter zweimal die Vervielfältigung zu codieren führt zu schreiben.
Gibt es eine Möglichkeit, es loszuwerden?
IMO, sauberste Lösung für Nicht-Template-Klassen. – hpohl
'mit B_SBase = SBase' ist eine C++ 11-Alternative zu typedef. –
damienh