Memberfunktionen von volatile Klassen
-
Moin
Ich verzweifle an dem Versuch, einen Member einer volatile Klasse aufzurufen:
error: passing "volatile Bar" as "this" argument of "virtual volatile int Bar::foo()" discards qualifiersWas kann ich tun? Im Internet finde ich leider praktisch nichts zu volatile und mein C++ Buch ist leider aktuell verliehen ...
-
code? die nicht-statische Memberfunktion muss selbst volatile (oder const volatile) sein. Generell würde ich damit aber vorsichtig umgehen, die Semantik von volatile in Verbindung mit Klassen ist unterspezifiziert.
-
Jop die Memberfunktion ist bereits volatile:
virtual volatile int Bar::foo()
Der tatsächliche Code ist eher umfangreich, daher kann ich das nicht posten ich habe mal ein Minimalbeispiel gemacht:
volatile.C
class Test { public: volatile void test(); }; int main() { volatile Test test; test.test(); }$ g++ volatile.C volatile.C: In function "int main()": volatile.C:10: error: passing "volatile Test" as "this" argument of "volatile void Test::test()" discards qualifiers
-
darthdespotism schrieb:
Jop die Memberfunktion ist bereits volatile:
virtual volatile int Bar::foo()
Der tatsächliche Code ist eher umfangreich, daher kann ich das nicht posten ich habe mal ein Minimalbeispiel gemacht:
volatile.C
class Test { public: volatile void test(); }; int main() { volatile Test test; test.test(); }$ g++ volatile.C volatile.C: In function "int main()": volatile.C:10: error: passing "volatile Test" as "this" argument of "volatile void Test::test()" discards qualifiersdein volatile modifiziert den Rückgabetyp (und ist bedeutungslos), nicht die Funktion.
class Test { public: void test() volatile; };ganz analog zu const-Memberfunktionen.
-
OK danke

Mal sehen wie weit ich komme oder ob ich mir doch eine andere Lösung ausdenken muss

-
Nur aus Interesse an der Sache: Wofür brauchst du die volatile-Instanz denn?