В основном, что я хочу сделать, в зависимости от какой-либо переменной, для перевода указателя пустоты в другой тип данных. Например (далее «отливать» переменная просто что-то, чтобы получить свою точку зрения):Кастовые указатели на пустоты, в зависимости от данных (C++)
void* ptr = some data;
int temp = some data;
int i = 0;
...
if(temp == 32) cast = (uint32*)
else if(temp == 16) cast = (uint16*)
else cast = (uint8*)
i = someArray[*((cast)ptr)];
Есть ли в C++, который может сделать что-то вроде этого (так как вы не можете на самом деле присвоить переменную быть просто (uint32 *) или что-то подобное)? Прошу прощения, если это не ясно, любая помощь будет принята с большой благодарностью.
Почему бы просто не сделать бросок во время теста? if (temp == 32) index = (uint32 *) ptr; // etc –
Да, это очевидный путь, но если бы я сделал это так, мне понадобились бы сотни, если ... elses. if (temp == 32) i = someArray [* index32]; else if (temp == 16) i = someArray [* index16]; и т. д. Я надеялся, что есть простой способ сделать это, как указано выше. – Joel
Вам все еще нужны сотни if/elses? –