digamos que tenemos este código:operador polimórfica [] aplicación
class test_t
{
void* data;
public:
template <typename T>
T operator [](int index)
{
return reinterpret_cast<T*>(data)[index];
}
};
int main()
{
test_t test;
int t = test.operator []<int>(5);
return 0;
}
¿Hay una manera de convertirlo en compilables C++ idiomática?
Debe quedar como
int main()
{
test_t test;
int t = test[5];
double f = test[7];
return 0;
}
es decir, un operador polimórfico [].
Eso no es polimorfismo. – SLaks
@SLaks: Por supuesto que es un tipo de polimorfismo. –