000
31.07.2007, 11:16 Uhr
~katana.
Gast
|
Nachdem ich meinen Quellcode, welcher ohne Fehlermeldungen von dem hervorragenden Microsoftcompiler übersetzt wird, mit gcc übersetzen will, kommt dieser aus dem meckern gar nicht mehr raus, folgender Code wird nich übersetzt:
C++: |
template <typename T> class Base { ... int f(); ... };
template <typename T> class Derived : public Base<T> { ... int g() { return f(); } // Fehler ... };
|
Nach einigem suchen bin ich dahinter gekommen, dass gcc wohl dieses two-stage name lookup verwendet und deswegen f() nochmal extra deklariert werden muss - wie idotisch ist das denn!!!
Ich will nun aber nicht vor jede beschissene Variable und Methode this-> oder Base<T>:: schreiben müssen, da der Code dadurch extrem hässlich und unübersichtlich werden würde.
Weis jemand, ob man dieses Verhalten anders ausschalten kann??? Die vom gcc vorgeschlagene -fpermissive Compileroption wird schlicht ignoriert und ist ja auch nicht gerade eine schöne Lösung. Ist es irgendwie möglich, 'using' auch auf Klassen anzuwenden?
funktioniert jedenfalls nicht. |