Variadic templates in libsigc++



  • Einige (oder die meisten 😉 ) von Euch kennen sicherlich das neue "Feature" Variadic templates aus C++0x.

    Mir ist gerade aufgefallen, dass mein gcc 4.2 den Standard noch nicht beherrscht und da hab ich mich gefragt, wie libsigc++ das wohl mit den Signal-Slots macht. Und siehe da 😮 : da ist jede Klasse sieben mal überladen um sechs Paramter überreichen zu können (7 - 1 Rückgabetyp = 6). D.h. im Endeffekt ja, dass man an seine Signal-Slots maximal sechs Argumente übergeben kann - klar, das sollte zwar reichen, aber mir gehts ums Prinzip. Außerdem sieht das nach schlechtem Programmierstil aus. 😉

    Jetzt meine eigentliche Frage:
    Wäre es theoretisch möglich die ganze libsigc++ so auf Variadic templates umzuschreiben, dass diese hässlichen Überladungen zu Hause bleiben können und dass sie trotzdem noch zu altem Code kompatibel bleibt? Es würde mich nämlich schon reizen, das ganze mal in Angriff zu nehmen. 🙂



  • devkid schrieb:

    Jetzt meine eigentliche Frage:
    Wäre es theoretisch möglich die ganze libsigc++ so auf Variadic templates umzuschreiben, dass diese hässlichen Überladungen zu Hause bleiben können und dass sie trotzdem noch zu altem Code kompatibel bleibt? Es würde mich nämlich schon reizen, das ganze mal in Angriff zu nehmen. 🙂

    Ich denke, dass das genau der Sinn der Sache sein soll. 🙂
    Wies mit der Kompatibilität aussieht, weiss ich nicht, aber ich denke, dass das schon möglich ist.


Anmelden zum Antworten