• [^] # Re: Erreur de livre et experts C++

    Posté par . En réponse à la dépêche C++17 fixe l’ordre d’évaluation des expressions. Évalué à 6.

    Exemple:

    class obj
    {
    public: 
     obj():_r(1){}
     ~obj(){}
     unsigned int fx(){return ++_r;}
     unsigned int fy(){return (_r*=_r);}
     unsigned int result(){return _r;}
    private:
     unsigned int _r;
    };
    int main(int argc, char* argv[])
    {
     obj o;
     std::cout << o.fx() << '\t' << o.fy() << "\t" << o.result() << std::endl;
     return 0;
    }

    Visual studio 2012: 2 1 1
    Clang 3.4.1 : 2 4 4


    je n'ai pas de GCC sous la main