std::deque
не решает задач приоритетной очереди. Стандартная std::priority_queue
, при этом, по умолчанию базируется на std::vector
.Язык программирования - это просто инструмент.
Инструмент всегда выбирается под конкретный проект.
Профессионализм - это способность владеть широким набором инструментов и постоянная готовность осваивать новые инструменты.
std::hash
в некоторых реализациях обращается именно к функции CityHash64.hashed
и положить в Out of line. Так будет даже удобнее. Сама hashed
в таком случае станет очень легкой и сможет участвовать в операциях времени компиляции.std::hash
нам тут тоже не очень нужен. Мы вполне можем справиться (я очень уверенно справляюсь) с простой хеш-функцией, которая может быть и ненадежной, но давать максимально равномерное распределение значений. например, я работаю с конгруэнтным генератором - Ly.std::byte
, то inline
можно смело менять на constexpr
или consteval
. std::hash
не может использоваться в контексте времени компиляции. Он не отвечает требованиям к составным объектам времени компиляции. Он не имеет constexpr
конструктора и его оператор не помечен как constexpr
. Особенно у реализации для std::basic_string
. В общем смысле, согласно стандарту, код в примере не будет работать на этапе компиляции.std::unordered_map::find
свой аргумент принимает по ссылке. Как только от constexpr
объекта требуется указатель или ссылка, он сразу перестает быть constexpr
. В последних строках ничего не этапе компиляции делаться не будет.constexpr
, но она находится в составе типа, объект которого в коде хочет создаваться на этапе компиляции.std::hash
объявлять друзьями для hashed
? Доступ к приватному полю лучше организовать иначе. 7623723
находится в области доступной виртуальной памяти? Если это адрес, то он не выравнен и с таким адресом работать нельзя. А если это адрес в секцию исполнения, то помаши еще ручкой кэшу процессора.HexToBin
? Метод c_str
есть только у std::string
. Напрашивается вопрос: зачем функция HexToBin
возвращает не бинарные данные, а строковые? Она должна тогда называться HexToStr
, а лучше - как-нибудь осмысленно. memcpy
тебе не угодила?std::initializer_list
сильно искажена. Игра использует lua5.1 & luajit 2.0.2, что не подходит для класса Lua53Machine
Твоя правда. Я, чес-говоря, пока тоже в этом уверен, пока автор не описал задачу, в решении которой должна участвовать очередь.