> uint64_t lenght всё-таки std::size_t length проблема, что struct info{ const uint8_t *offset; const uint64_t lenght; std::unique_ptr<vector<pair<const uint8_t *,const uint64_t>>> data; }; не может быть никаким образом присвоен
его нельзя копировать, потому что нельзя копировать std::unique_ptr, и нельзя перемещать, потому что у него есть константное поле
всё-таки -вай? он же с фиксированного размера. и кстати зачем есть unsign long long когда есть uint64_t ?(ну или наоборот))
так а я же создаю новый объект
потому что тип размера блока памяти это std::size_t :)
> insert_or_assign > or_assign
кстати, в latest есть std::span
auto temp1 = Parts_data[a_name].offset; auto temp2 = Parts_data[a_name].lenght; Parts_data.erase(a_name); Parts_data.insert(make_pair( не спасает(
нельзя вызывать Parts_data[a_name], оно создает запись в случае её отсутствия, что требует конструктора по умолчанию, которого нет потому что const uint64_t lenght это неинициализированное константное поле
надо делать find, получать итератор, вытаскивать данные, после чего удалять по итератору
да уже понял спасибо!)
нет просто создаю драйвер с точкой входа но как только нажимаю запуск без отладки вылетает сообщение
драйвер для винды? а при запуске отладки всё работает?
при запуске отладки пишет этот хост неизвестен
а запускается отладка у тебя на локальной машине или на удалённой?
на локальной если запускать вылетает другая ошибка
на локальной вылетате ошибка неподдерживаемая операция
не поможешь пожалуйста - пробую сделать std::map<uint32_t, std::span< const uint8_t*>> data2; data2.insert(make_pair<uint32_t, std::span< const uint8_t*>>(index, std::span(offset, lenght))); не работает(
А должно? Что такое ... 8_t*t?
это очепятка
В make_pair не нужно подставлять шаблонные аргументы вручную
пробовал не помогло(
Обсуждают сегодня