Определение типа структуры
Всем привет.
В метод передается несколько вариантов структуры. Но принимается как 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
Вам це подобається? Поділіться в соціальних мережах!
- Останні пройшли тести
- АП09 березня 2025 р. 21:16
- Останні коментарі
- VP09 березня 2025 р. 16:14Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
- ИМ22 листопада 2024 р. 21:51Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
- Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
- Тепер обговоріть на форумі
- f15 лютого 2025 р. 13:46Подскажите, пожалуйста! Как данный класс можно дополнить, чтобы созданные объекты можно было перемещать мышкой по сцене?
- Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…
- Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…
- Спасибо большое за помощь и простите за то что отнял время своей невнимательностью.
ну я бы пошел лучше через шаблоны, такой вопрос а зачем вообще так.что в итоге хочешь получить?
Шаблоны не вариант, потому что только в 2 естах такой трешь происходит. Это надо мне чтобы проект который рабочий но в ужасном состоянии кода пытаюсь переписать. И это мне бы давало возможность при том же дебаге видить типы и структуры что летят.
Ну так у тебя же в документации написано, что у std::type_info есть метод name(), используй его.