編譯器錯誤 C3920
'operator'' : 無法定義後置遞增/遞減 WinRT 或 CLR 運算符呼叫後置 WinRT 或 CLR 運算符會呼叫對應的前置詞 WinRT 或 CLR 運算符 (op_Increment/op_Decrement),但具有後置語意
Windows 執行階段和 CLR 不支援後置運算子,而且不允許使用者定義的後置運算子。 您可以定義前置運算子,而且前置運算子將用於前置和後置遞增作業。
下列範例會產生 C3920,並顯示如何修正它:
// C3920.cpp
// compile with: /clr /LD
public value struct V {
static V operator ++(V me, int)
// try the following line instead
// static V operator ++(V me)
{ // C3920
me.m_i++;
return me;
}
int m_i;
};