1つの式に複数の副作用がないようにします.


1、一般的に、c/c++プログラムを編成するには、1つの文に2つの式が副作用しないという規律があります.
典型的なこのような挙動には、b=(a++)+(a++)+(a++);
これは典型的なこの規律に違反する行為である.各a++には副作用がある(aの値を変える).式全体の値は、評価順序に直接接続されています.
2、インスタンスコード:

#include <iostream>
using namespace std;

int fun(int i)
{
    cout << "fun"<<i ;
    return i;
}

int j=1;
int fun2(int i)
{
    return j++;
}
int main()
{
    cout << "m" << fun(1) << fun(2) << fun(3) << endl; //"f3f2f1m123"
    //  fun()     (        ).
    //      :        fun  ,            .

    cout << fun2(j) << fun2(j) << fun2(j)<< endl;
    //    :         ,        

    int i = 1;
    cout << i++ << i++ << i++ << endl;
    //  ,   i++      .

    return 0;
}