volatile impliziert mutable ? (gcc)



  • Hallo,

    habe eine const Methode in meiner Klasse in der ich eine Memebrvariable zur Referenzzählung ändere. Diese habe ich dann versehentlich als volatile deklariert. Dann hat es kompiliert.
    Ist das so vom standard abgedeckt oder compiler spezifisch?



  • Bei meinem VC++ 2003 ging es nicht mit volatile - ich hatte mal das mutable-Keyword vergessen und habs einfach mal mit volatile probiert. Schätze also, es ist Compiler-spezifisch oder aber einer unserer setzt den Standard nicht korrekt um..



  • Hallo,
    bitte zeig doch mal ein (minimales) Beispiel, dass das beschrieben Verhalten demonstriert.
    Sowas:

    class X {
    public:
      void y() const { ++x; }
    private:
      volatile int x;
    };
    

    sollte jedenfalls nicht fehlerlos übersetzt werden.



  • nö, volatile impliziert nicht mutable.
    was auch immer du da für einen compiler hast, er macht was falsch.


Anmelden zum Antworten