Определение типа структуры
Всем привет.
В метод передается несколько вариантов структуры. Но принимается как void*
Не спрашивайте почему, я знаю это трешь.
Но все таки, думаю как определить тим структуры что прилетел в метод.
Нашел вроде бы то что надо,
С++
Но чет не получается.
- void set_data_in(unsigned char op, void* buf, unsigned size)
- {
- opcode = op;
- const std::type_info& ti1 = typeid(nvme_id_ctrl);
- const std::type_info& ti2 = typeid(nvme_id_ns);
- const std::type_info& ti3 = typeid(buf);
- if (ti1.hash_code() == ti3.hash_code())
- {
- ctrl_buffer = static_cast<nvme_id_ctrl *>(buf);
- }
- else if (ti2.hash_code() == ti3.hash_code())
- {
- ns_buffer = static_cast<nvme_id_ns *>(buf);
- }
- m_size = size;
- }
Может кто подсказать туда ли я начал копать и может я в чем то ошибаюсь чтоыб определить что за структура скрывается в аргументе?
Спасибо.
3
94
Do you like it? Share on social networks!
- Last comments
- AKApril 1, 2025, 11:41 a.m.Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
- VPMarch 9, 2025, 4:14 p.m.Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
- ИМNov. 22, 2024, 9:51 p.m.Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
- Now discuss on the forum
- fFeb. 15, 2025, 1:46 p.m.Подскажите, пожалуйста! Как данный класс можно дополнить, чтобы созданные объекты можно было перемещать мышкой по сцене?
- Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…
- Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…
- Спасибо большое за помощь и простите за то что отнял время своей невнимательностью.
ну я бы пошел лучше через шаблоны, такой вопрос а зачем вообще так.что в итоге хочешь получить?
Шаблоны не вариант, потому что только в 2 естах такой трешь происходит. Это надо мне чтобы проект который рабочий но в ужасном состоянии кода пытаюсь переписать. И это мне бы давало возможность при том же дебаге видить типы и структуры что летят.
Ну так у тебя же в документации написано, что у std::type_info есть метод name(), используй его.