컴파일러 오류 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;
};