SFINAE irgendwie umgehbar?



  • Hallo da,
    ich habe hier ein template, das für Referenztypen, Werttypen und spezielle Typen überladen ist.
    Nun möchte ich, dass die Kompilierung fehlschlägt, wenn es sich um einen der speziellen Typen handelt und der qualifizierte Typ eine Nicht-const-Referenz auf besagten speziellen Typ ist. Das Problem ist jetzt nur, dass dann SFINAE zuschlägt und die Spezialisierung für normale Referenztypen genommen wird. Kann ich das aus der spezialisierten Klasse irgendwie verhindern?

    Viele Grüße



  • Erm, falsches Forum -.- Aber ich möchte jetzt kein Doppelpost machen, könnt ihr mich vielleicht bitte rüberschieben? 😞



  • Nimm doch static_assert falls C++11 zur verfügung steht



  • Hallo Scott,
    genau das tat ich, aber mein SFINAE-Konstrukt war offenbar fehlerhaft (Siehe Thread im C++-Forum) und VC++ verschluckte dann auch gleich noch das static_assert bei der Template Specialization Resolution, darum ging ich davon aus, dass static_assert ein ebensolcher Fehler im Sinne von SFINAE ist wie ein nicht-"triggerndes" enable_if. Aber nachdem ich das entsprechend camper's Ausführungen angepasst habe, funktioniert jetzt offenbar alles so, wie ich es mir in den schönsten Träumen ausgemalt hatte! 😃


Anmelden zum Antworten