返回值和形参均为引用时为什么形参不能后置++?

   简单例子如下:
   其中num不能进行后置++,否则会提醒:表达时必须为可修改的左值,希望哪位大神

可以系统详细的讲一下原因。

 int& add(int& num)
{
    return ++num;
}

如果gcc或者g++不报错误说明标准器设计不合理 ,一个函数内,在return之后不能做运算。

++num属于先进行自➕再进行别的运算,num++属于别的运算进行完后再进行自➕, return 属于函数的最后操作,用num++的话自➕条件达不到。

和编译器有关,在gcc上可以编译,不报错

在线验证:http://codepad.org/Elj3spyG