Acaunt, Нет конечно. Ведь в этом случае возможно одновременное выполнение push и pop - и все, с большой вероятностью очередь тут и загнется. А если повезет и она не сломается на первом же случае, то сломается на следующем.
Все стандартные структуры не потокобезопасны, т.е. все операции с таким контейнером не потокобезопасны.
Так что защищать нужно вообще все манипуляции с очередью, кроме тех случаев когда вы точно уверены, что тут будет только один поток (например вызов конструктора).
Раз вы используете vcpkg, то с его же помощью просто удалите динамическую библиотеку. На сколько помню там это можно сделать, хотя самому давно его использовать не приходилось, так что конкретные шаги не подскажу. В этом случае компилятор не найдя динамической библиотеки будет использовать статическую.
Только тут какая-то не стыковка с этим вашим высказыванием:
чтобы при компиляции не создавались dll файлы от этой библиотеки
vcpkg устанавливает уже собранную библиотеку и собирать ее отдельно не требуется.
Можно и самому собрать библиотеку в том виде, в каком вам требуется для проекта и использовать этот вариант библиотеки. Но для этого надо разобраться как ее собирать, обычно это описано где-то в readme, который идет вместе с исходниками библиотеки, или в документации.
Некоторые библиотеки собирать довольно сложно, но вроде бы libzip не из их числа.
Соберите libzip как статическую и используйте ее. Само подключение статической библиотеки к проекту никак не отличается от подключения динамической библиотеки.
msys2 - это не компилятор - это оболочка, которую можно нарастить с помощью пакетного менеджера несколькими видами компиляторов mingw/clang и стандартных библиотек.
После переустановки msys2 и компиляторов внутрь, программу пересобирал?
Программу запускаешь из ком.строки msys2 той же, в которой ее собирал?
Такое впечатление, что либо программа собрана со старыми версиями стандартных библиотек (пересобрать программу после переустановки msys2 и компилятора) или при загрузке программы загрузчик не может найти нужные стандартные библиотеки (запускать в той же командной оболочке msys2, в которой была собрана программа, их там 5 штук вроде бы или может уже больше).
Почему основание здесь это максимальная ёмкость байта?
Потому что вы раскладываете двухбайтовое целое на байты, а в каждом байте может быть закодировано 256 значений. Каждое значение байта - это одна цифра в 256ричной системе счисления.
Для простоты проще представлять значения байта не цифрами [0; 255], а ASCII символами - тогда все хорошо складывается, каждый ASCII символ - это символ представляющий цифру в системе счисления по основанию 256.
Я не видел реального использования 256ричной системы счисления, видел 36ричную на практике - в одной программе формировались пронумерованные выходные файлы, нумерация была в 36ричной системе счисления - так можно было в 3 символах расширения файла закодировать дофига вариантов. В программе номер файла был порядковым днем в году - 365 вполне укладывается в 2 цифры в 36ричной системе счисления, да еще и с большим запасом.
Кроме того стандартные Сишные функции из семейства strtol умеют оперировать всеми системами счисления вплоть до 36. Так что реализовать в коде подобную нумерацию файлов было не сложно.
Если не гонять по RDP видео и игры, то сетевуха не является узким местом для протокола. Он очень экономичный в плане нагрузки на сеть, экономичнее почти всех аналогов и под виндой и под линуксом. Лучше разве что цитриксовский IMA из которого, собственно, и растут ноги у RDP.
Ищите другие причины проблем.
Тут пожалуй std::Variant хорошо подойдет. Но все равно список типов будет ограничен теми, что заданы в шаблоне.
Вообще необходимость в таком списке, где можно хранить все что угодно, сомнительна, по моему.
Видится более жизненный вариант, когда у вас есть некая иерархия классов, у которых один и тот же родитель и в списке вы будете хранить ссылку на родительский класс. А доступ к функционалу дочерних классов будете получать, вызывая виртуальные методы.
Собственно список в питоне построен примерно по тому же принципу, т.к. там все объекты имеют, грубо говоря, один базовый класс (хотя сам питон написан на Си).
Где вы видите скорость 100 Мб? Кем заявлена скорость 1 Гб?
Даже если в вашей локальной сети (от компа до роутера) скорость будет 1 Гб - это никак не гарантирует, что скорость в интернете к произвольному хосту (сайту) будет 1 Гб. Т.к. в интернете всегда есть 2 стороны обмена трафиком и у каждой из них свои собственные ограничения пропускной способности, а так же дополнительно накладываются ограничения промежуточных узлов, через которые передается трафик. Провайдер может гарантировать скорость только в пределах сети подконтрольной ему, а дальше - как повезет.
Rustam, Можно например делать так:
В цикле for /f выполнять конвеер dir /a-d * | findstr /v "%DATE%" в нужном каталоге
Все попавшие в цикл файлы перемещать в указанную папку с помощью move.
Для справки:
Что значит "старые"? Нужно более конкретное определение этого понятия для вашей конкретной цели.
Какие у вас идеи по поводу реалиации? Что уже попробовали? Какие ошибки возникли?
DustiX, 1. Это не ошибка cmake. Это ошибка линковщика (это часть компилятора).
2. Ошибка "undefined reference" связана с тем, что линковщик (компилятор) не может найти указанные в ошибке символы (символ в данном случае это имя метода класса или функции из библиотеки, который используется в вашем исходном коде) в указанных в строке компиляции бибилотеках (файлах lib/dll).
то я предположил, что этого не достаточно, т.к. возможно imgui (по аналогии с Qt) состоит не из одного файла DLL, а из нескольких. Которые надо подключать в зависимости от того, какой функционал хочешь получить от imgui. Обычно подобные вещи описаны в документации.
Проще всего почитать документацию imgui по включению ее в свои проекты, обычно подобные вещи там указываются и даже есть вероятность, что будет указано применительно к cmake, но это не обязательно.
Но можно и вручную это сделать, примерную схему действий для этого описал выше.
Сам я не использовал imgui ни разу, так что более конкретный ответ дать не могу. Но подключение библиотек в свои проекты - это типовой процесс и делается он одинаково для любых библиотек. Но если библиотека достаточно большая (как например Qt), то могут быть нюансы.
Можно посмотреть на что ссылается imgui::imgui, указанный в target_link_libraries.
Затем в этих файлах проверить, есть ли там не найденные символы.
Если символов нет, а их скорее всего нет, иначе бы линковщик не ругался, то посмотреть в каких библиотеках imgui (возможно там не один файл) содержаться эти символы и подключить их в сборку.
Как вариант - почитать документацию, как правильно использовать imgui через cmake.
Если проводить параллели с Qt, то там целая пачка динамических библиотек в составе и чтоб использовать какие-то возможности нужно включать в сборку ту или иную конкретную библиотеку.
В данном примере в списке инициализации могут присутствовать только члены класса, так что первый name - это однозначно член класса.
Параметр name перекрывает видимость члена класса name, поэтому во втором случае используется параметр name.
Скорее всего программа особо и не проверяет запущена она из-под админа или нет.
Думаю она просто открывает определенные нужные ей ресурсы, которые требуют админского доступа и если ресурс не открылся, то выдает ошибку.
Такими ресурсами могут быть: файлы в файловой системе, ветки реестра в HKLM для записи (и некоторые для чтения), что-то еще.
У микрософта есть пакет Sysinternals Suite распространяется бесплатно, в нем есть утилиты для отслеживания запросов к файловой системе и реестру. Можете начать с исследования того, какие ресурсы программе нужны с помощью этих утилит.
Если теория подтвердится, то можно будет дать права нужному пользователю на соответствующие ресурсы и может быть выключить UAC.
requail, Возможно в районе этих "уплывших" букв есть пробелы в уплотненном или разреженном режиме и эти буквы переносятся на другую строку без самого слова.
Выделите букву, которая переносится при печати и предыдущую->ПКМ->Шрифт->Дополнительно->Интервал
Выставьте тут "Обычный".
Часто "уплотненный" пробел глазом не виден.
Регулярно появляются подобные артефакты при преобразовании PDF->Word. Вообще после этого преобразования документы стоит просмотреть и поправить руками. Только очень простые в форматировании документы могут быть преобразованы почти без артефактов.
kshdhehec, DHCP будет раздавать то что вы настроите, ему в принципе пофигу, какие адреса и маски раздавать.
А вот клиенты, которые получат от него адрес с маской 26, смогут ли они использовать ресурсы с адресами выходящими за маску 26? Как они это будут делать? Нужно ли им это? и другие подобные вопросы сразу возникают.
Может в этом причина? Как вы создавали эти файлы? Какого они размера?
Хотя у вас и так раздел не слишком большой.