E2492 プロパティは "prop = value;" などの単純式の時に限り代入できる (C++)
プロパティへの代入は,単純な代入文で行う必要があります。プロパティへの代入がほかの文に埋め込まれている場合は,プロパティへの代入が Lvalue になります。このとき,Lvalue を作成するために取得メソッドが呼び出されますが,同時に取得メソッドによる副作用があります。1 つの文では,取得メソッドまたは設定メソッドのどちらかを 1 回だけ呼び出すことができます。
例を示します。
class myClass
{
int X;
public:
int __property x = { read=getx, write=putx };
int getx() { return X; }
void putx(int val) { X = val; }
} OneClass;
int value(int);
int main()
{
return value(OneClass.x = 4); // これはエラーになります
}