Compiler Error C2107
illegal index, indirection not allowed
A subscript is applied to an expression that does not evaluate to a pointer.
Example
C2107 can occur if you incorrectly use the this
pointer of a value type to access the type's default indexer. For more information, see Semantics of the this
pointer.
The following sample generates 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();
}