Erreur du compilateur C2107
index illégal, indirection interdite
Un indice est appliqué à une expression qui n’est pas évaluée à un pointeur.
Exemple
C2107 peut se produire si vous utilisez incorrectement le this
pointeur d’un type valeur pour accéder à l’indexeur par défaut du type. Pour plus d’informations, consultez Sémantique du this
pointeur.
L’exemple suivant génère l’erreur 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();
}