Compartilhar via


Erro do compilador C2108

o subscrito não é de tipo integral

Comentários

O subscrito de matriz é uma expressão não inteiro.

Exemplo

O C2108 poderá ocorrer se você usar incorretamente o ponteiro this de um tipo de valor para acessar o indexador padrão do tipo. Para obter mais informações, confira Semântica do ponteiro this.

O exemplo a seguir gera o erro C2108.

// C2108.cpp
// compile with: /clr
using namespace System;

value struct B {
   property Double default[Double] {
      Double get(Double data) {
         return data*data;
      }
   }
   void Test() {
      Console::WriteLine("{0}", this[3.3]);   // C2108
      Console::WriteLine("{0}", this->default[3.3]);   // OK
   }
};

int main() {
   B ^ myb = gcnew B();
   myb->Test();
}