Erro C3470 do Compilador
'type': uma classe não pode ter tanto um indexador (propriedade indexada padrão) como um operador[]
Um tipo não pode definir tanto um indexador padrão quanto um operador[].
Exemplo
A seguinte amostra gera C3470
// C3470.cpp
// compile with: /clr
using namespace System;
ref class R {
public:
property int default[int] {
int get(int i) {
return i+1;
}
}
int operator[](String^ s) { return Convert::ToInt32(s); } // C3470
};
int main() {
R ^ r = gcnew R;
// return r[9] + r["32"] - 42;
}