다음을 통해 공유


컴파일러 오류 C2107

인덱스가 잘못되었습니다. 간접 참조를 사용할 수 없습니다.

아래 첨자는 포인터로 계산되지 않는 식에 적용됩니다.

예시

값 형식의 포인터를 잘못 사용하여 this 형식의 기본 인덱서에 액세스하는 경우 C2107이 발생할 수 있습니다. 자세한 내용은 포인터의 의미 체계를 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();
}