Ошибка компилятора C2105
Оператору требуется l-value
Оператор должен иметь l-значение в качестве операнда.
Следующий пример приводит к возникновению ошибки C2105:
// C2105.cpp
int main() {
unsigned char * p1 = 0;
unsigned int * p2 = (unsigned int *)p1;
p2++;
unsigned int * p = 0;
p++; // ok
p2 = (unsigned int *)p1;
((unsigned int *)p1)++; // C2105
}
Следующий пример приводит к возникновению ошибки C2105:
// C2105b.cpp
int main() {
int a[10] = {0};
int b[10] = {0};
++(a , b); // C2105
// OK
++(a[0] , b[0]);
++a[0];
}