если использовать reinterpret_cast<type>(void ptr)?
int x = 5;
void * ptr = &x;
// std::cout << *ptr << std::endl - Dont work
// std::cout << *reinterpret_cast<int *>(ptr) << std::endl; - Work
Что делать в случае, если не знаешь тип, но нужен гарантированный вывод независимо того, что есть внутри
А как компилятор должен понять, что ему выводить, если он не знает тип?
Вот и хочется выводить этот тип, который лежит в данной памяти. Идея была что-то типа шаблона сделать, но хз
В плюсах есть RTTI, но он работает по-другому, не так как ты хочешь
Ладно, как тогда быть в этом случае? Если нужно по void * , но не знаешь точный тип?
Можно и static_cast
никак вообще, но ты бы мог сделать класс, с функцией repr
Можно использовать только для вывода или ввода бинарного представления объекта программы в памяти. То, что у тебя написано - UB
Ничего не делать, надо знать тип.
Надо знать изначальный тип. Если не знаешь - ничего не сделать
Обсуждают сегодня