Ошибка компилятора C2107
незаконный индекс, косвенное не разрешено
Подстрок применяется к выражению, которое не оценивается указателем.
Пример
C2107 может возникать, если вы неправильно используете this
указатель типа значения для доступа к индексатору по умолчанию типа. Дополнительные сведения см. в разделе "Семантика указателяthis
".
Следующий пример приводит к возникновению ошибки C2107.
// C2107.cpp
// compile with: /clr
using namespace System;
value struct B {
property String ^ default[String ^] {
String ^ get(String ^ data) {
return "abc";
}
}
void Test() {
Console::WriteLine("{0}", this["aa"]); // C2107
Console::WriteLine("{0}", this->default["aa"]); // OK
}
};
int main() {
B ^ myb = gcnew B();
myb->Test();
}