main の最初の行はコンパイルされるのに、2 行目はコンパイルされないのはなぜですか? どちらも一時的なものだと思いますが、1つは左辺値として扱われ、もう1つはそうではありません..
class complex
{
public:
complex() : r(0),i(0) {}
complex(double r_, double i_) : r(r_), i(i_)
{
}
private:
double r;
double i;
};
int main()
{
complex(2,2) = complex(1,2);
char() = char(2);
}