Disons que nous avons ce code:opérateur polymorphes [] la mise en œuvre
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;
}
Est-il possible de le convertir en C++ compilable idiomatiques?
Il devrait ressembler à
int main()
{
test_t test;
int t = test[5];
double f = test[7];
return 0;
}
à savoir un opérateur polymorphe [].
Ce n'est pas du polymorphisme. – SLaks
@ SLaks: Bien sûr, c'est un type de polymorphisme. –