Vadim kyklaed , а давай попробуем словами рассказать, что этот код должен делать?
Скажу наперед, то что он должен - он делать не будет, что бы он делать не должен был. Поэтому, в самом коде невозможно увидеть то, что код должен делать.
KiVa , обычная структура с обычными полями, обычным деструктором и обычным конструктором преобразования из bool.
Структура, откровенно, плохая. Используется new вместо общих схем владения (доминирующее на std::unique_ptr или совмещенное на std::shared_ptr). Вероятность утечки близка к 100%, т.к. указатель можно просто стырить и потерять.
Преобразование из bool в структуру ни о чем не говорит, ничего не поясняет, а проблемы вносит.
KrivdaKravdaBum , на плюсы переводить точно не стоит. А вот в сторону конкурентной работы подумать будет полезно. 40к записей за 2 минуты - там все явно в один поток работает. Время впустую тратится.
Core i7 - 8 ядер - 8 потоков обработки запросов к БД - 8 подключений к БД. Ускорение будет не в 8 раз, но ускорится существенно.
Если 40к записей 2 минуты лопатятся в многопоточном режиме, то это уже неконструктивно использован язык.
if (strstr(typeid(myObjects[i]).name(), "SomeName"))
Если в этой сроке есть аналогичность, то этот код не будет выполнять то, что ты от него хочешь. typeid работает иначе.
Проверку на конкретный тип надо сделать на уровне общего интерфейса, в виде виртуальной функции.
Или, если все телн и совсем терять нечего, то можно попробовать dynamic_cast.
Mr. Vazovsky , для достижения интересующего тебя результата у тебя есть два пути.
Путь первый - просто использовать erase в цикле по индексам. erase инвалидирует итераторы, поэтому цикл должен быть по индексам. Однако, это рискованный и далеко не оптимальный путь.
Путь второй - это именно erase-remove. Очень грязную реализацию этого подхода уже предложил Denis . Его пример довольно опасен, не покрывает пограничных случаев и лишен культуры. Но как пример - демонстрирует достижимость обозначенной функциональности.
Согласно C++ Core Guidelines у тебя нет необходимости заново писать уже имеющиеся стандартные алгоритмы. Поэтому, тебе лучше будет использовать связку remove_if и erase.
Vadim kyklaed , смотри, простой рецепт - если после прочтения что-то (или все) не понятно, просто начинаешь читать снова, с начала страницы.
Конкретно на странице описания RegisterHotKey все уже описано для тебя.
Более того, фраза "winapi global hotkey" ставит любую универсальную поисковую систему в требуемые тебе рамки.
У меня к тебе есть ряд вопросов. Почему ты не создаешь в своей программе окно? Зачем ты прячешь консольное окно? Почему у тебя консольная программа, а не оконная? На основании чего сделан такой выбор?
Ответы мне практически не нужны, ответы скорее нужны тебе. :)
Возможно тебе стоит что-то поменять в коде?
Vadim kyklaed , непонятно, на основании чего сделано предположение о возможности утечки памяти?
while(1){
for(q=8;q<=190;q++)
Бесконечный цикл - загрузка одного ядра на 100%. Пустая потеря процессорного времени и денег за электроэнергию. Функциональность второго цикла не читается.
Это так не делается. В MSDN хорошо рассказано, как клавиши обрабатывать именно по событиям.
не переходят на современные ОС, - скажем, встраиваемую FreeRTOS или потяжелее, например, QNX
QNX старше поповой собаки ведь. )))
Ее возраст более чем сравним с все тем же MS DOS.
У QNX уж больно жесткая, сильно зарегулированная, лицензия, которая практически не позволяет этой бесспорно выдающейся оси участвовать в конкуренции на рынке операционных систем.
temamart , гитхаб - это очень серьезное подспорье в поиске работы.
Это раньше на него не смотрели в виду неграмотности своей. Сейчас все больше работодателей обращаются гитхабу соискателя, если тот указан в резюме.
Что важно на гитхабе - как тут один товарищ написал - contribution history как лесная полянка.
Смотрят на членство в организациях, на вклад, на открытые тикеты, на общение с сообществом проектов.
Твоя общественная активность на гитхабе может дать куда больше информации о тебе, нежели даже личное собеседование. Не все люди столь общительны и мегаясно выражаются, чтобы их можно было оценить даже за часовое интервью. Не все HR мегапроницательные (а большинство из них и вовсе дилетанты), чтобы грамотно оценить соискателя даже за часовое интервью.
Твой коммерческий опыт на питоне может взяться из работы над уже запущенными open-source проектами.
Даниил Демидко , разница в том, что const std::string_view& не нужен.
std::string_view - это легковесный класс, копирование и передача по значению которого не влечет достаточных для рассмотрения потерь производительности.
tasheal , интересующая тебя информация исчерпывающе изложена как в девблоге андроида, так и на страницах документации к этой оси.
Сервисы не имеют своего GUI, но нормально реализуются и работают.
evseev53319 , намеком на проблемы с GPU это не является. Лечится это поднятием качества теней в настройках игры. Соответственно, поднятие качества сильно отразится на отзывчивости игры.
Gokilla , ты так долго ответа ждать будешь. Что самое интересное, твои действия сейчас немного напоминают попытку троллинга. :)
Я тебе советую найти все каналы по отдельности. Сперва найти красный, потом зеленый, потом - синий, альфа сама найдется. Когда ищешь канал - все остальные каналы в 255, так проще.
Есть подозрение, что ты вообще не с того места начинаешь читать цвета, в результате чего у тебя просто мешанина в каналах.
Михаил Усоцкий , упаковка каналов может быть любой. RGBA, BGRA, ARGB, ABGR. Еще может быть черезрядная и поканальная упаковка.
Зеленый цвет в центре доски имеет RGB значение: 4, 142, 4. Альфа, очевидно: 255.
После рендеринга в том же месте RGB уже такой: 142, 255, 4. Альфа, очевидно: 4.
Какие каналы где находятся - очевидно. Это действительно ARGB.
Gokilla , чтобы у тебя был RGBA, тебе надо поменять порядок каналов в момент вычитки картинки.
https://github.com/fmtlib/fmt
fmt::format возвращает строку (std::string), которая все равно грохнется там, где ты описал.