>>3101424 Ты кастуешь lvalue reference в xvalue reference Когда компилятор видит xvalue reference он понимает что время жизни объекта скоро истечет, так что он может спокойно ему мувать не копируя
Физически с референсов ничего не происходит, мы просто в тип помещаем информацию о времени жизни объекта
>>3101432 Так. Например у нас создался объект где-то в скопе (пусть в функции).
Если мы передадим просто ссылку на него куда-нибудь в другой поток, то при выходе из функции он разрушится и другому потоку будет плохо. Копировать мы тоже не хотим - это ДОРОГО.
В прежние времена такой объект создавался через new() и указатель передавался в другой поток и там потом жил пока его не делитнут.
И вот мув решает эту проблему без использования указателей.
>>3101539 Ну всё, значит я продрался через заклинания про рвелью к пониманию. Спасибо за ответы.
Вся эта бодяга в итоге для того, чтобы убрать использование new, delete и указателей.
И да, я динозавр, который сидел себе пердел много лет на С++, а тут доебались рекрутеры, пошёл на собес, а на собесе дрочат мув. Выяснилось, что этот самый мув вообще выпал нахуй из моей практики. Ну ничё, вроде подтянул, немного практики, и к следующему приходу рекрутеров буду готов.
Можно ли в WxWidgets использовать просто std::string без всякого конвертирования в std::wstring?
То есть
MyFrame *frame = new MyFrame("Моё приложение"); сейчас отображается как пикрелейт. Меня заебало каждый текст переводить в wstring. Я вот даже в JSON храню информацию и достаю оттуда как string, потом перевожу в wstring, чтобы использовать в wxwidgets. А потом сохраняю базу и опять wstring перевожу в string.
И нихуя непонятно - пишут, что wxwidgets поддерживает юникод. А почему тогда символы вместо русских букв? Это не юникод?
Это канал об аниме? как пропатчить кде под фрибсд? Незнаю где спросить, но мне кажется win api это гдето в вашем треде. Кароче пишу универсальный конфигуратор для ини файлов на Autoit, практически сделал все на 80%, но блять столкнулся с банальной проблемой, немогу сделать скролинг и примеры внятные не гуглятся, может что подскажете?
>>3102696 >Что сказать-то хотел? Да не, просто интересно. Первый раз вижу человека, пишущего на этом.
>>3102519 >И нихуя непонятно - пишут, что wxwidgets поддерживает юникод. А почему тогда символы вместо русских букв? Это не юникод?
Ты поиграйся сначала с Windows Console приложением - наступишь на те же самые грабли. Нагугли как кодовые страницы переключать. Сделай по аналогии то же самое при работе с этой либой. Может быть этого будет достаточно.
>>3102545 >Где можно включить этот UTF-8? Консоли вот так: #if _WIN32 SetConsoleCP(65001); SetConsoleOutputCP(65001); #endif DВозможно этого будет достаточно.
>>3102734 >немогу сделать скролинг и примеры внятные не гуглятся, может что подскажете? Есть несколько методов, но они относятся к пересчёту координат. А так твой скроллбар должен кидать события. Как спроектируешь - всё в твоих руках. Вообще минимум событий, это клик по стрелкам, клик по области выше или ниже скроллбара. Можно добавить событие перетаскивания скроллбара. Реализовать тоже можно разными способами - можно в одном окне и самому считать и рисовать, но проще и чуть-чуть медленне (незаметно для глаза) будет под каждый элемент скроллбара своё окно.
Затем тебе придётся создать нечто вроде большого виртуального окна, которое будет ловить события от скроллбара. И тут тоже варианты - самом проверять позицию этого виртуального окна и учитывать позиции при отрисовке контролов, или отдать это оконному менеджеру операционной системы. Как быстрее и правильнее - не знаю.
Помимо этого, возможно, понадобится как-то анализировать оченредь сообщений и удалять из неё промежуточные сообщения с информацией о перетаскивании скроллбара мышью, потому что такие события приходят очень часто и картинка будет или неприятно дёркаться, а на слабом железе может перерисовываться уже после перетаскивания.
Иными словами скроллбар это сложный элемент и большой полёт для творчества и фантазии.
>>3102519 Ты ничего не понимаешь и вопросы все тупые: "как отрубить себе ногу и выколоть глаз?"
Объясняю. Слово "юникод" может означать разные вещи. С точки зрения обывателя/пользователя, юникод это буквально "UNI CODE - УНИверсальная КОДировка", кодировка включающая символы всех языков, чтобы не надо было её переключать для разных языков - одна кодировка на всех. Любая такая кодировка называется юникод, хотя они бывают разные, но в www и далее везде, сейчас стандартом является UTF-8.
С точки зрения программиста, юникод это используемый тип данных. Типов только два: char и wchar_t 1. char - это узкий символ (1 байт). Байт очевидно не юникод, т.к. байт не может вместить в себя все символы. Однако, есть кодировки позволяющие при необходимости делать символы из нескольких байтов если не влезают в один. В таких кодировках разные символы имеют разную длину, такие кодировки называются "мультибайтовые", например UTF-8. 2. wchar_t - это широкий символ (2 байта) юникода кодировки UTF-16.
Таким образом, юникода бывает два: 1. Мультибайтовый UTF-8 - char 2. Юникод UTF-16 - wchar_t
char - не юникод, а мультибайт, но может быть и не мультибайт не поддерживающий все языки, ты просто никак не узнаешь, байты char везде одинаковые, под ними может быть любая байтовая кодировка, как юникодная, так и нет. char это пук в воздух ничего не гарантирующий, то есть на практике гарантирующий кракозяблы. Пользуются char только дебилы говноделы желающие своим юзерам говна из кракозяблов, потому что пользователь обязательно получит кракозяблы когда программист серет сам не зная чем из char-ов. Такой char-похуизм работает только в линуксе, потому что там вся система однозначно настроена на UTF-8. В винде не прокатит, там не так, ты не можешь ради своего высера заставлять пользователей ломать свои системы переключая их на UTF-8 как линукс. Линукс это параша, если хочешь линукс, пиздуй в линукс, если же делаешь под винду - делай как в винде положено, иначе сделаешь говно и все будут страдать, включая тебя самого.
wchar_t - это юникод UTF-16 на котором основана винда начиная с Windows 2000, то есть всегда. Говоришь Windows, подразумеваешь wchar_t UTF-16. Всё четко, просто, однозначно, никаких кракозяблов быть не может, никакие настройки системы ничего не сломают, потому что юникод в винде сделан как надо, без неопределенности как с char в линуксе. Винда вся устроена на UTF-16 (wchar_t), поэтому в винде всегда надо пользоваться wchar_t, других вариантов просто не существует и не нужно. Всё где не wchar_t, всегда конвертируется в wchar_t каждый раз, любая строчка char каждый раз конвертируется в wchar_t потому что винда не понимает ничего другого кроме wchar_t. Таким образом, использование char в винде это лютый говнокод, производящий конверсии текста на каждый пук и кракозяблы везде и всюду. Просто убей себя, char-дебил.
Таким образом, вернувшись к нашим баранам >>3102519 , посмотри на второй пик. Ты видишь строку char "Моё приложение" в 14 символов, но занимающую 28 байт. Очевидно это мультибайт, но какой - неизвестно, ты же тупая скотина и не задал кодировку нигде, она каким-то образом задалась твоими редакторами/компиляторами/системными настройками. То есть, ты написал хуйню сам не зная в какой кодировке и в результате получил кракозяблы. ЕСТЕСТВЕННО. сразу нахуй, ты в винде, значит пользуйся: wchar_t* L"Моё приложение". std::wstring
Если же у тебя пердоговно где нет wchar_t, например std::exception(std::string) у которого нет варианта с std::wstring для винды, тогда ты обязан ручками конвертировать свое мультибайтовое говно std::string контролируя какая там точно кодировка, в UTF-16 std::wstring, для этого есть системная функция MultiByteToWideChar(). В std:: тоже вроде есть какие-то конвертеры, но пердопидоры их депреукейтнули не дав ничего в замен, ну ненавидят они винду и гадят людям, уроды по жизни.
Так что, если твоя WxWidgets поддерживает std::wstring это прекрасно, пользуйся, иначе ебись, быдло пердольное. С линуксопарашей на винде ничего хорошего не будет, только говно и боль.
>>3102784 спасибо, чел - тебе бы писать гайды по программированию.
Но с чего ты решил, что я на линуксе? Ни в каких библиотеках нет поддержки std::wstring - пользуюсь nlohmann/json для JSON файлов и OpenXLSX для Excel файлов. По итогу нужно конвертить туда обратно постоянно.
>>3102784 Тащем-то в винде как минимум с десятки есть полная поддержка UTF-8, но её надо включать в региональных настройках. Тогда оба UTF начинают работать без всякого пердолинга. Так же в манифесте бинарника можно указать что он работает в UTF-8, так же как ты указываешь DPI-awareness. Тогда тоже будет работать всё без проблем.
--- линукс --- char - системный стандарт, UTF-8 мультибайт юникод wchar - не используется --- винда --- char - легаcи совместимость с Windows 95, в каждой стране своя кодировка (ANSI) в зависимости от настройки языка wchar -системный стандарт, UTF-16 юникод
Вот как на самом деле. И теперь момент про опцию char UTF-8 в винде, она бесполезна, это совсем не то. В винде char это легаси ANSI, а char UTF-8 софта тупо нет, этой опции никогда и не было, она появилась только недавно. Единственно зачем она нужна, так навскидку, чтобы работал каловый софт с линукса высирающий UTF-8 в консоль. Короче, очень ограниченное специальное применение для узкого круга задач, причем, напоминаю, это системная настройка, а значит весь нормальный софт отвалится. Ну такое себе, отыквить систему ради полторы калечных поделки, своего рода эмуляция линукса в узкой задаче. Может для каких-то серверных извращений это и надо, но для людей и софта нет.
>>3103198 > про опцию char UTF-8 в винде, она бесполезна, это совсем не то > В винде char это легаси ANSI Чел, ты бы для начала попробовал. Пикрилейтед, локаль американская, после включения utf-8 в винде обычный чар превращается в мультибайт. wchar работает только если один язык в тексте, с китайским он выдаёт пик2. Только один язык на пик3 работает с wchar.
>>3103416 >после включения utf-8 в винде обычный чар превращается в мультибайт Обычный чар это и есть мультибайт. Больше не пиши, раз не читаешь. Чар это говно потому что это просто байты, по нему не понятно какая кодировка. Ни компилятор не знает какая кодировка в твоем файле исходника чтобы запихнуть в бинарник, ни винда не знает из какой кодировки это говно конвертировать в wchar чтобы вывести на экран.
Ты высрал бессмыслицу с самого начала, потому что неизвестно в какой кодировке текст у тебя на скринах. Ты в курсе, что в текстовых файлах нет метаданных указывающих кодировку? Так какие байты тогда из него получатся? Никакие, рандом зависящий от всего, начиная от твоей тупости и заканчивая настройками винды, как твоими для компиляции, так и другого кто запустит твой экзешник. А если ты дашь свой исходник другому с другими настройками винды, то он и скомпилирует сразу испорченный мусор и текста уже никто никогда не увидит.
В общем, ты или читай пост >>3102784 и понимай что делаешь, или нахуй следуй, дебил, тыкающий вслепую сам не зная что. Тупорылая сучья макака, наверняка с питона или жабаскрипта сюда приперся. Мозгов нет даже прочитать готовое, тыкает методом тыка, имбецилы ёбаные.
>>3103416 Он просто не понял что UTF-16 это тоже многобайтная кодировка, построенная по принципу UTF-8, только в ней "словом" является 16-бит (поэтому UTF-16).
А еще есть 16-битный юникод, с фиксированным размером символа (16-бит), и ИМЕННО ЕГО использует винда, и для него надо по-прежнему постоянно переключать локали.
Вот так, если внушительно написать, с апломбом - все верят в любую хуйню.
>>3103478 Так разговор про винду, в винде UTF-16 подразумевает ФИКСИРОВАННЫЕ ЧАРЫ, а никакой не мультибайт. А то что там в манястандартах ассоциации юникода - пофиг, разговор не про них, а про винду. Или что, майрософт на своем сайте тоже дураки и неправильно пишут?
>>3103440 Чел, хватит срать, utf-8 всегда у всех будет одинаково выводится, если включен вывод в нём. Я тебе уже показал, что в винде нет никакого "легаси-ANSI" в режиме utf-8. > по нему не понятно какая кодировка Пиздец ты мыслитель. Там только одна кодировка может быть - utf-8. В ней не надо переключаться на разные страницы. > А если ты дашь свой исходник другому с другими настройками винды, то он и скомпилирует сразу испорченный мусор и текста уже никто никогда не увидит. Тупая ты хуесосина, тебе уже написали что в винде можно просто в манифесте выставить ActiveCodePage в utf-8 и оно будет работать везде. Я понимаю что есть отдельный вид животных типа тебя, собирающих софт без манифеста, но зачем же на весь тред позориться.
>>3103494 Я просто сагрился на UTF-16, который якобы дефолтный в винде, в то время когда чётко знаю что там какая-то его часть (фиксированные 16-битные "слова"), а не утф-16 целиком. Не принимай на свой счёт.
Алсо, как раз сталкивался с этой проблемой, когда пердолер из линукса притащил "кроссплатформенную" программку, в которую на линуксе через argv[] приходили ascii (то есть однобайтный утф-8), а в винде (примерная иллюстрация) приходило ".a.r.g.u.m.e.n.t".
Дело тогда дошло до скандала, я, будучи лидом, ему талдычю чтобы делал нормально, а он никак не мог понять в чём дело, и дошло до того что мне пришлось в джире нахуярить лекцию про юникоды на три экрана и привлечь в тикет руководство, чтоб блять заставили его сделать нормально.
Сцук, как вспомнил сейчас, опять стул подгорел. Так что не ругаемся, это моё старое подгорание. А особенно не ругаемся с лидами, у них опыта больше и они в 90% случаев правы. Всё норм, всем добра и тебе тоже.
>>3103512 Не будет. Будет только если весь процесс разработки, компиляции и выполнения будет полностью в UTF-8, такое бывает только в линуксе, на винде дефолтные кодировки могут быть какие угодно, у каждого человека своя, так что твой говнобайтовый текст char превращается в тыкву в 99 случаях из 100. Работает это только у тебя дебила - лично, и больше ни у кого.
>>3103494 >Или что, майрософт на своем сайте тоже дураки и неправильно пишут? Может, они имеют в виду наоборот, что wchar_t используется для хранения UTF-16? Бля, опять test.c писать из-за хуйни.
>>3103512 >что в винде нет никакого "легаси-ANSI" в режиме utf-8. До, и это не имеет значения, я и не утверждал, что точно знаю что делает эта опция. Я утверждал, что толку от неё нет, она ничего волшебно не исправит. Надо софт делать специально под эту опцию. Такого софта тупо нет, потому что опция только появилась, и она ломает нормальные программы. Кто вообще будет писать под такое говно? Кому это надо когда в винде есть нормальный юникод? Это нужно только для полторы говняных исходника из линукса которые кому-то лень править и хочется просто тащить говно из линукса наплевав на всё, лишь бы как проще, лишь бы заработало, конкретно эта какаха лично. Здоровому человеку на винде такое и в страшных снах не нужно.
>>3103531 В общем пошёл нахуй, долбаёб. Ты явно винду в первый раз видишь. Манифест всегда имеет приоритет над окружением. Алсо, рекомендую тебе хотя бы иногда заглядывать в доки майков, чтоб знать что со времён XP изменилось.
>>3103525 Всё верно. Проблема линукса в том, что там нет проблем с кодировками, поэтому линуксоид никогда о кодировке даже не думает, у него "просто работает" всегда и везде, поэтому они ТУПЫЕ, совершенно не понимают как это работает, потому что такой необходимости - понимать, у них нет.
>>3103565 Проблема сои, у них "кроссплатформенность" это линукс и линукс, и в крайнем случае еще макос, а винда это ересь, из людей платформ выписана. Но вслух этого не говорят, а лицемерно делают вид, что их поделки "кроссплатформа", когда на самом деле делают только под одну платформу - линукс, и от силы его производные, где требуется только конфиг сборки чуть подправить.
Это фактически соевая повестка - взять всё хорошее (винда) и изгадить опустив на свой уровень. Софт делается с оглядкой только на линукс, винда не уважается, игнорируется, если в винде что-то устроено не так как в линуксе, это значит винда говно и даже под неё надо делать всё равно как в линуксе, во славу света истины правильности.
Отсюда и получаются эти ораторы, которым говоришь в винде нет UTF-8, а те копротивляются пытаясь впердолить его вопреки всему. Почему нигде нет ебланов визжащих что в линуксе надо отменить UTF-8 и сделать UTF-16 как в винде? Потому что все понимают, что винда говно, а линукс лучше? Конечно нет, просто люди не линуксовые соевые дегенераты, а уважают вещи воспринимая их так как они есть, а не как объект религиозный войн где есть только моё и неправильное. Узколобый скот.
>>3104621 >> Потому что все понимают, что винда говно, а линукс лучше? Забавно обрезал.
Представь, если есть некое количество платформ, больше чем одна, и есть одна которая отличается от них всех. Естественно что все стремиться к унификации, а тут есть вторичная, не очень важная, платформа, на которой все не так просто потому что когда-то в 80-х были приняты мудацкие решения (нормальные в 80-х, но в 20-х определенно мудацкие). UTF-8 это стандарт индустрии, весь веб работает на UTF-8
>>3104621 >> Конечно нет, просто люди не линуксовые соевые дегенераты, а уважают вещи воспринимая их так как они есть Забавно что звучит твой тейк прямо как соевая леволиберальная повесточка
>>3104719 >Представь, если есть некое количество платформ Опять соевое враньё. Нет никакого количества, платформ всего две: линукс и винда, причем линукс это уебанская помойка где ничего нет, кроме дефолтной консоли которая лучше виндовой, но и ту можно спокойно поставить на винду и всё, единственное преимущество аннулировано.
Линукс это убогий огрызок ущербного кала, днище операционных систем, позор нахуй, и это говно тянут на винду, имеющую широчайшие возможности, где всё работает десятилетиями, документировано вылизано до невозможности, никто к такому охуению даже близко больше не приблизился. И что делают эти соевые уроды? - Забьем хуй на все чудеса винды и притащим тупые порты с линукса из говна и палок игнорирующие все чудесные возможности винды. Это типичная повесточная погань, приходит и загаживает опуская всё хорошее на свой уровень днища. На винде никому не нужны линуксные огрызки кала, винда позволяет делать в тысячу раз лучше и в тысячу раз удобнее. Но нет, давайте не будем так делать потому что это не совместимо с линуксным днищем, давайте сделаем равенство, чтобы везде было днище как на линуксе. Вот что такое на самом деле их "свобода" и "мультиплатформа", это ущербный фашизм, когда уроды лезут везде и требуют сделать всё везде уродским как они сами.
>>3104880 Сказать что черное это белое, типичная соевая пидарасня.
Вот самый простой пример который поймет даже слабоумный. На винде есть такая штука - Autohotkey, это язык программирования позволяющий не просто писать свою программу, но и манипулировать всем остальным в системе. На линуксе такое в принципе невозможно, потому что на линуксе НЕТ СИСТЕМЫ, т.е. нет стандартизированной структуры по которой всё работает. Невозможно сделать язык программирования управляющий сам не зная чем, потому что на линуксе нет ничего, это кусок кала без ничего, где ничерта не работает. Если на линуксе хочешь чтобы работало, нужно всё делать самому, делать по сути свою операционную систему со всем своим и тащить это с каждый своим приложением в комплекте, как это сделали Qt, потому что ничего стороннего нет, никакой опоры сторонняя параша тебе не даст, оно всё ломается каждый день, невозможно ни на что опереться, невозможно нормально писать программы.
Вот и получается, пока на винде мега-корпорация сделала охуенную систему позволяющую делать фантастические приложения, каждый отдельный линуксоурод костыляет свои велосипеды из говна. Естественно такие потуги смешны, что может отдельный хуесос против мега-корпорации? Вот и качество линуксных помоев соответствующее. На винде эта погань не нужна, не нужна эта ваша линуксная повесточная уравниловка, уровнять всё хорошее на уровень помойного дерьма на самом дне. Это не винда мастдай, это соевые уроды со своим линуксом мастдай, по крайней мере не должны лезть в винду. Если ты урод и пидарас, делай это дома где никто не видит, не надо лезть к здоровым людям и гадить им, им это не нужно, они лучше тебя, у них всё лучше твоего, не порти им жизнь, соевый урод.
>>3104908 > Сказать что черное это белое, типичная соевая пидарасня. Я не могу понять, или это настолько толстый троллинг или ты реально дурак. Энивей, я все что хотел сказал, вникай, мб перестанешь позориться
Линукс - это база и фундамент, потому что сейчас абсолютно весь бекенд на линуксе крутится. Может где-то еще остался windows server с ms sql, но сейчас это уже максимально древнее легаси.
Винда сейчас хороша только для виндовых приложений. По типу автокада, солидворкса, майкрософт офиса, экселя, сони вегаса и прочих инструментов. Но разработкой подобного занимаются 2.5 конторы в мире, да и те, отдали все на аутсорс в индию уже давным давно.
>>3104880 Лол, пердоли даже не знают как их говно называется. Линукс - это голое ядро. Всё остальное дичайший набор костылей, на десктопе треть из которых на питоне.
>>3104941 Все я прекрасно знаю, но я отвечал человеку который в целом мало что понимает, поэтому упрощения это ок
> на десктопе треть из которых на питоне. Объяснишь? Я не вижу в этом ничего плохого если что, но как будто треть это сильное преувеличение. Раза в 4 эдак
>>3104941 > треть из которых на питоне Всегда удивляло это у линуксоидов. Они постоянно рякают на дотнет, при этом сами постоянно пользуются питоном. Ещё и куча гуя на питоне написано у них, половина qt-параши на нём, в то время как на винде таким же формошлёпством занимаются на шарпе. На арче постоянно наблюдал какое тормозное говно весь этот кал.
>>3104857 Для тебя кроме десктопа ничего не существует? На серверах популярнее Линукс, Андроид создан на базе Линукс, в телевизорах, роутерах и т.д. прошивки на базе Линукса. Ваша Винда кроме десктопа нахуй нигде не нужна.
В этом и сила Линукса, её можно кастомизировать как угодно под желаемое устройство, от серверов до микроконтроллеров.
>>3104941 >Линукс - это голое ядро. На винде ядро включает в себя пиздец как много, окна и намного больше. А на линуксе ядро это буквально ничего, с таким ядром ничего не сделаешь, в нём ничего нет.
>>3104970 Питон это ужасно, шарп в сравнении это космос. У меня есть одна-единственная годная прога на питоне у которой нет аналогов, постоянно пользуюсь. Прога предназначена висеть и ничего не делать следя за папкой, когда в папке появится файл, она его обрабатывает за долю секунды и опять ждет ничего не делая. Но есть нюанс, это ничего неделание постоянно отжирает около трети ядра, даже в диспетчере задач помечено красным как высокая нагрузка. В то время как десятки остальных процессов висят на нуле ничего не загружая вовсе. Вопрос, КАКОГО ХУЯ, питон?
В результате я сделал программу которая отслеживает активность пользователя и останавливает питоновский процесс чтобы не прожигал ресурсы, а когда надо размораживает и потом опять замораживает. Вот так приходится бороться с питоном. Представляете сколько миллионов людей во всем мире пользуются питоноговном не обращая внимания? Сколько гигаватт проебано, денег, экологии впустую просто потому что питономакаки говнокодят.
>>3105002 Да, да, прошивка для контроллеров и роутеров, консоль для компиляции, конечно полезно, только это не ОС, не аналог винды. Зачем лезете с прошивкой от роутера на винду, опуская великолепную настольную ось до уровня роутера? Не надо гадить людям, что не понятно. Не бывает никакой мультиплатформы. "Мультиплатформа" это взять и обгадить софт, деградировать его до уровня самой убогой прошивки на рынке. За что это издевательство пользователям лучшей и единственной настольной ос виндовс?
>>3105002 >Ваша Винда кроме десктопа нахуй нигде не нужна.
Windows Server c парой Xeon и 128 Gb RAM. Внутри Hyper-V. Под Hyper-V живёт с десяток линуксов и 4 винды. Все они занимаются сборками и тестами.
Кому ты рассказываешь, что Винда не нужна?????
Короче, положняк такой - если вы (любой из вас) срётся в холиварах на тему винда vs линукс, то вы или вкатунцы, или умираете со скуки и не с кем попиздеть в рабочее время.
Но фишка в том, что это С++ тред. По идее пишущие здесь должны одинаково хорошо понимать обе системы и знать соотвествение POSIX и WinAPI системных вызовов.
>>3105035 Ты написал скрипт который продрачивает папку насколько десятков тысяч раз в секунду и недоволен что он жрет цпу? Или же ты сделал тайм-аут, но сидишь на 386 процессоре, иного не дано
>>3105118 > Короче, положняк такой - если вы (любой из вас) срётся в холиварах на тему винда vs линукс, то вы или вкатунцы, или умираете со скуки и не с кем попиздеть в рабочее время. Ну да, но ещё попустить залетного дурачка хочется с его байтами и кодировками > Но фишка в том, что это С++ тред. По идее пишущие здесь должны одинаково хорошо понимать обе системы и знать соотвествение POSIX и WinAPI системных вызовов. В теории да, на практике лично мне плюсовики пишущие под винду софт вообще не встречались, поэтому мне кажется что это вообще ничтожный процент рынка, но я вполне могу в пузыре жить поэтому утверждать не буду
> У меня есть одна-единственная годная прога на питоне у которой нет аналогов, постоянно пользуюсь. Прога предназначена висеть и ничего не делать следя за папкой, когда в папке появится файл, она его обрабатывает за долю секунды и опять ждет ничего не делая. Но есть нюанс, это ничего неделание постоянно отжирает около трети ядра, даже в диспетчере задач помечено красным как высокая нагрузка. В то время как десятки остальных процессов висят на нуле ничего не загружая вовсе. Вопрос, КАКОГО ХУЯ, питон?
Проблема в том, что на компьютере принципиально не запускаю ничего неподписанного. Содержу его в идеальном порядке - всё лицензионное и очень триальное.
Другой железки под рукой нет, чтобы проверить.
А ещё опасаюсь в случае проблем потерять свои уже существующие виртуалки - слишком дофига на них завязано.
И вот смотрю я на этот унлокер - и хочется, и колется. Может быть кто пробовал и поделится ощущениями?
>>3105199 Где было хоть слово про завоз чего-то винду? Одебилевшая линуксосина даже на русском языке прочитать не может, смотрит на текст, видит фигу и сочиняет говно из жопы.
Господа сипипи-разработяики, вы как вообще ищите работу? Я что-то вообще не могу найти даже вакансий где нужен бы был С++, либо это два объявлентя от НИИ очко_слона с потолком в 100 тысяч.
>>3105421 > Господа сипипи-разработяики, вы как вообще ищите работу? А в чём собственно проблема? Я ищу так же как на любом другом языке. Открываю headhunter, указываю в профиле что я готов к переезду, вбиваю c++, ставлю галочку "меньше 10 претендентов". Открываю описание, читаю чем занимается компания. Если это что-то интересное, что мне по душе, то ставлю закладку. Если нет, дальше иду. Отбираю штук 10-20 вакансий, с зарплатой 100к+. Если зарплата меньше 100к, я просто скипаю и не рассматриваю эту вакансию. Если это что-то связанное с нефтянкой, тоже скипаю. Если там написано "джуниор", "ученик", "стажер", тоже скипаю. Мои приоритеты: финансы, трейдинг, QT, вот это всё. Чем жирнее зарплата тем лучше. Ну и дальше пишу развернутое письмо, мол здравствуйте, заинтересовала ваша вакансия. У меня опыт есть с такими-то технологиями, работал с такими-то проектами. Буду рад поработать в вашей компании. Ну и дальше они либо дают тестовое, либо назначают собеседование, либо отказывают, тогда я просто иду дальше и ищу следующую компанию.
>>3104857 >где всё работает десятилетиями Начиная с десятки - уже через раз работает. Дальше, думаю, надо будет какой-то вариант вайна под винду делать, чтобы старые проги запускать. >Забьем хуй на все чудеса винды "Чудеса винды" - это новый фреймворк для UI раз в пять лет? Я бы тоже хуй забил.
>>3105545 >Дальше, думаю, надо будет Слышу эти пердомантры "винда вот вот сдохнет" уже не один десяток лет, и всё никак. >"Чудеса винды" - это новый фреймворк для UI раз в пять лет? Не кукарекай про что не знаешь. В винде UI это сама винда, WinAPI, он вечный во веки веков, был, есть и будет, а остальное сорта оберток для удобства, тоже кстати поддерживаемые многие десятки лет. Есть конечно и самопальное говно вроде линуксового и прямо оттуда, но это уже экстра опции, не необходимость, а извращение
>>3104621 >Почему нигде нет ебланов визжащих что в линуксе надо отменить UTF-8 и сделать UTF-16 как в винде? Потому что UTF-8 объективно лучше. Если число длиннее одного байта, то надо задавать их порядок, и тут у UTF-16 начинается веселье из BOM и BE/LE. Плюс еще ушат говна в виде различий UTF-8 и UCS-2 и суррогатных пар.
>>3105565 >и всё никак Сдохшей ее официально можно считать с момента появления WSL. >а остальное сорта оберток для удобства Это "удобство" привело к тому, что морды сейчас пишут на Qt или уже электроне, а все остальное в полудохлом состоянии (или используется полутора шарпистами для внутренних корпоративных прог). >тоже кстати поддерживаемые многие десятки лет Говорю же, не поддерживаемые уже. Например, старые приложения дельфи на десятке не работают. А остальное ломаться начало еще на семерке, с переходом на 64 бита. Дальше будет хуже.
>>3105574 >Потому что UTF-8 объективно лучше. Для веб-страниц, да, поэтому оно там и стандарт, но не для операционной системы которую надо программировать. Параша с переменной длиной которую надо парсить это днище ебаное. Если уж взялись говнить, то надо это делать до конца, переделать в UTF8-ZIP, чтобы не только парсить, но и сжимать/разжимать, ведь так еще круче, верно, пердодебил?
>>3105589 > с момента появления WSL Это как раз момент когда пердоликс стал окончательно не нужен, теперь он используется по назначению - как прошивка для WSL. > старые приложения дельфи на десятке не работают Хотел бы я посмотреть как ты запустишь на пердоликсе софт хотя бы 10-летней давности, лол. На 11 винде всё ещё 90% софта с XP работает, некро-игры из начала нулевых запускаются.
>>3105651 >Параша с переменной длиной которую надо парсить это днище ебаное. UTF-16 - тоже параша с переменной длиной. Особенно под виндой, где реально микс из UTF-16 и UCS-2, не соответствующий стандарту.
>>3105656 >Это как раз момент когда пердоликс стал окончательно не нужен Так не нужен, что сейчас легко можно найти работу вообще без опыта кодинга под винду, а вот наоборот - гораздо сложнее, и это наверняка будет адовое легаси. >Хотел бы я посмотреть как ты запустишь на пердоликсе софт хотя бы 10-летней давности, лол Соберу контейнер с любой древней версией ядра и либ, и спокойно запущу. >На 11 винде всё ещё 90% софта с XP работает, некро-игры из начала нулевых запускаются. Под вайном они сейчас запускаются гораздо лучше, хотя на семерке было наоборот. А через пару версий винды - вообще прекратят запускаться (если там вообще еще можно будет софт без подписи запускать).
>>3105912 Под линуксом как раз виртуалки и контейнеры удобно использовать, в отличие от винды, где в виртуалку часто надо графоний прокидывать. Плюс пропиетарный софт под линукс скорее всего можно так просто запустить, потому что его специально собирают со всеми зависимостями.
>>3105656 > На 11 винде всё ещё 90% софта с XP работает, некро-игры из начала нулевых запускаются. Лол хех мда, конечно запускается если челы из Гога и Стима сами все ручками патчат каждую Винду А так даже Фаллаут 3 не запускается
>>3105986 >в общем понятно что ты написал, но почему скипаешь нефтянку? Просто не моё, я уже наелся программированием роутеров. Все эти ебаные коммутаторы, хомутаторы, шкафы управления, место захламлённое писда, все какую-то хуйню блять паяют, у нас зимой чуваки надевали перчатки без пальцев и так писали код. Потому что был дикий дубак на этом полузаводе полупредприятии полунии. Начальство жопилось купить лишний обогреватель. Я как вспомню эти шкафы управления, клапаны хуяпаны, ну их нахуй. Конечно такого криминального, но просто не нравится.
>> с момента появления WSL > Это как раз момент когда пердоликс стал окончательно не нуже
Кому как, у меня с WSL например не срослось из-за отсутствия доступа к аудиокарте, в итоге приложения типа qTractor не работают, потому что работают через jack, а не через pulseaudio
>>3106049 Нефтянка у нас очень большая и разнообразная. Там что угодно могут делать: от банальной морды для круда на Qt до симулятора бункеровки газовоза в ВР. У одной роснефти сотни всяких IT компаний внутри, и там далеко не только АСУ и слаботочка.
>>3106253 Там какая-то хуйня про jack и pulseaudio. У нормальных людей звук просто работает, без ебли с прослойками и драйверами. Драйвера в 2024 году - это вообще смех, я за последние пару лет кроме видеодрайвера ничего руками не ставил - воткнул и работает.
>>3106265 Пулс это натурально плаг н плей фреймворк, с ним нужно пердолиться только если у тебя йоба аудиосистема домашний кинотеатр из 2004. Ебутся обычно с голой алсой пердолики, которые думают «а зачем нам этот фрЭймворк-та??? У меня дедка-то в 2001 на сюсе выводил моноканал на колонки микролап еп и не нужны был ваш этот.. как это.. блоатвЭйр еп… а че у меня мои маршалы не подключаются анон нужна помощь……..»
>>3106272 > Пулс это натурально плаг н плей фреймворк Помню пару лет назад ебался с этим калом. Он оказывается не умеет в нормальный ресемплинг и если разный софт выводит звук в 44100/48000, то ты идёшь нахуй. Микшер кал и постоянно щёлкает, эквалайзера нет, Атмоса нет, звук через HDMI через жопу работает, про eARC никто на пердоликсе даже и не слышал, в 24 бита 384 кГц он не умеет вообще. Под сраный реалтек надо собирать драйвера из исходников и ставить руками, под остальное проще хуй соснуть, чем найти драйвер для ЦАПа. И раз уж зашла речь про мультимедиа, то дальше можно вспомнить про HDR. Там тоже нихуя не работает.
Та какие нахуй драйвера, у WSL вообще звуковухи самой нету в списке устройств тупо, там не на что драйвера ставить, винда ей не предоставляет звуковуху как устройство, в итоге тупо через PulseAudio отсылается аудиопоток винде, а винда его и воспроизводит, то есть получается, что если ты пишешь аудиософт какой-нибудь профессиональный и кросплатформенный которому нужно обращение к звуку на низком уровне, ты его уже в WSL не п тестишь, на виртуалках то же не потестишь(скорее всего!).
>>3107465 Нейросеточная модель для распознавания, они все на питоне. >std::filesystem отменили? У питономакак мозги отменили, вот у них мониторинг папки наверное делается её сканированием 100 раз в секунду, когда есть системная функция винды не требующая ничего и только посылающая уведомления когда надо. Но какие системные функции у питонодебилов, это же Си, нативные функции ос, это из другого измерения которое в мозжечке питонодауна просто отсутствует.
Хотя, что я несу, вот же исходник, наслаждайтесь, питонодебил за работой. 10 раз в секунду, мразь.
>>3107504 > они все на питоне Нормальные люди инференс для прода делают на компилируемом языке с беком на onnx/trt. Никто в прод не будет тащить торч. > питонодебил за работой Нет никаких проблем и в питоне дёрнуть winapi, у тебя на пике скорее линуксодебил без системных ивентов от фс.
>>3107513 > А если не говнокодить? Ну никто не заставляет же это в прод тащить Ну или попробуй свое решение на питоне щас написать, посмотрим какая разница будет в коде
>>3107680 Мехно. Просто я хочу сделать функцию что создавала создавала бы сущность типа структуры и само всё там заполняла, а не писать постоянно вручную всё.
>>3107748 Питонодебилу неприятно. Я кстати уже переделал этот косяк, потребление проца теперь - 0 (НОЛЬ). И спасибо двачу! Бомбанул и обнаружил, что там работает исходник, а то думал они в экзешник запихнули. Оказывается все же лежит файлик голый, отредактировал и круто стало.
Вот скажите. Почему я на говнопитоне ни строчки в жизни не писал, а тут взял и исправил питонодебила который насрал говна >>3107504 и исправлять не думал годами. И даже в здесь треде нашелся такой же выродок >>3107509>>3107514 оправдывающий этот говнокод >>3107504 Сраные вонючие индусы и тут сидят гадят друг за друга.
Плюсовики, давайте зарплатами меряться, пишем, кто сколько получает, опыт и стек. Начну с себя, 210к, с учетом обязательных премий 310к. Опыт почти 10 лет, стек C++/Qt думаю на голанг перекатываться, там сеньоры с 3 годами опыта 500к имеют
>>3108037 150. С++/qt. Встраиваемые системы и прочее говно. Опыт 3 года, вкатывался в 30 лет под крики двачеров что я старый, тупой и нихуя не получится.
>>3108835 Да у вас приоритеты говно, мистер зумерок. Дрочение на алгоритмы становится каким-то нездоровым. Я не буду разбираться в тысяче идиотских задач с литкода. Если господин интервьюер попросил меня поковырять его массивчик - будет послан нахуй. Лучше бы так ооп и ос дрочили.
>>3109343 Подготовился и прошел. Нахуй не нужно задрачивать каждый базовый алгоритм, нужно понимать идею. Редко когда тебе на алг секции понадобится ИМЕННО БАЗОВАЯ реализация, чаще тебе нужна будет только идея алгоритма. Так что тупо заучив алгоритмы хуй ты пройдешь алг секцию.
>>3108835 Да я хз, объяснить могу. Что-бы узнать могу или нет нужно попробовать написать на бумажке, а нахуй мне это нужно? Что-бы тебе анонимному червю-вкатуну что-то доказать?
>>3108835 Сколько раз ты сам его писал-то ИРЛ? Не для тренировки, а в реальном проекте? Лично я один раз, и то вариант без бранчей в шейдере (там длина шага по массиву выбирается через тернарный оператор). Реально это очень мало кому надо в жизни.
>>3110015 > это не бранч Да, там обе ветки вычисляются и выкидывается результат ненужной. Ахуеть ты оптимизировал, лол. И это распространяется только на HLSL, на GLSL будет бранч.
>>3110068 >Да, там обе ветки вычисляются и выкидывается результат ненужной Я уже не помню, как там точно было, но в результате что-то вроде idx += cond ? step : 0; Это было быстрее, чем иф с двумя ветками. >на GLSL будет бранч Зависит от вендора, в HLSL тоже возможен бранч, но он умеет short circuit по стандарту. В любом случае бинарный поиск - далеко не самая частая вещь, которую пишешь ИРЛ, если ты не профессиональный олимпиадник какой-нибудь.
Раз уж пошел разговор о внутренностях видеокарты, я сам пытаюсь в графику понемногу вкатиться, в данный момент на вулкане Но есть проблема, вобще не понимаю что там внутри самой видеокарты в тех же шейдерах твориться, как что то бьёт по перфу и тд Где эти сакральные знания получить? Я даже представить не могу как посмотреть во что мои шейдеры компилятся на самом деле, максимум на spv глядел
>>3107756 > хочу сделать функцию что создавала создавала бы сущность типа структуры и само всё там заполняла Чел, эта функция называется конструктор. Конструкторы бывают и у структур. Да и вообще struct и class это одно и то же, вопрос стиля: некоторые пишут struct чтобы подчеркнуть что в классе только хранятся данные, другие пишут чтобы дать понять, что достаточно shallow copy и не нужен деструктор и всё остальное дерьмо.
struct PPGroup { PPGroup (int a, int b) { this.raz = a; this.cik = b; } int raz; int cik; }
>>3110163 Никто тебе не расскажет этого. В свежих графах шедулинг нод вообще на стороне драйвера - пишешь шейдеры, кидаешь ноды в субмодули, а дальше оно как-то само строит граф и выполняет. В том числе и синхронизация барьерами нахуй уходит.
>>3110163 >Я даже представить не могу как посмотреть во что мои шейдеры компилятся на самом деле, максимум на spv глядел У АМД можно дизассемблер посмотреть, у нвидии - вроде только для куды. Под OpenGL у нвидии можно посмотреть псевдоассемблер (у них свое расширение на основе древнего arb_vertex/fragment_program). На самом деле там самое важное - число регистров, потому что если число регистров больше размера регистрового файла / количесво тредов на ядро, то тредов будет в N раз меньше. А так в вычислительную мощность обычно редко упираешься, боттлнек или в памяти или в синхронизации, но это от задачи зависит, конечно. А так в инете полно обзоров и на архитектуру современных GPU, и на методы оптимизации.
>>3109581 Там ведь надо medium задачки от руки писать, да еще и чтобы с первого раза скомпилилось и прошло все тесты. С трудом представляю, как ты умудрился это одолеть без умения написать bsearch на бумаге, это ведь вообще базовая вещь
>>3110366 Редко когда задрачивают чтоб прям скомпилилось, да и то намекают что и где не так. > Базовая вещь Как же у вкатунов в голове насрано, это пиздец. Базовая вещь это синтаксис языка, типо понимания когда инициализировать с помощью (), а когда {}, как работает auto, что такое T&&. А это хуйня ситуативная. Блять, да мне алгоритм поточного семплирования чаще нужно был, чем бинарный поиск, написанный от руки.
>>3110381 >>Редко когда задрачивают чтоб прям скомпилилось, да и то намекают что и где не так Как же оно все тесты пройдет, если даже не скомпилится? >>Базовая вещь это синтаксис языка, типо понимания когда инициализировать с помощью (), а когда {}, как работает auto, что такое T&&. Это синтаксис конкретного языка, Яндекс, как и фаанги, вроде как ищет специалистов без привязки к конкретному языку
>>3110384 >Яндекс, как и фаанги, вроде как ищет специалистов без привязки к конкретному языку Пятнадцать лет назад они искали специалистов по круглым люкам и бросанию двух яиц с многоэтажки, сейчас - специалистов по задрачиванию задач на литкоде. Это тупо мода по вопросам на собес. С реальными скиллами кандидата она довольно косвенно связанна, примерно как прохождение теста IQ с аналитическими способностями.
Решил в плюсы залезть, ничего в них не понимаю, но очень интересно. Пытаюсь прочитать данные из юсб устройства, но что-то не сходится - hexdump и питоновский конвертер байт в хекс выдают одинаковые результаты, которым я доверяю, попытка чтения через fstream выдает какую-то чушь. Я читаю не так? Или преобразовываю? В чем дело?
>>3110720 Ладно, я походу с векторами где-то проебался. Но остается вопрос форматирования. Чтобы нормально отформатировать пришлось вот такую дичь городить, если приводить просто к int, то некоторые значения могут быть отрицательными и hex их видимо неправильно форматирует. Есть правильные способы это делать?
>>3110747 Если не кастить вообще, хекс как будто ничего не форматирует (первый запуск). Если кастить только в инт, то шляпа как на втором запуске. Только если сперва в беззнаковый, а потом в инт, то тогда хекс нормально преобразует как на третьем.
>>3110766 Не, не работает. Походу если просто unsigned, то он автоматом в близкий к максимальному четырхебайтному int конвертит, потому что считает что оригинальный чар был отрицательным, а мне сперва нужно именно в максимальный char, после чего уже это значение не будет превышать 255 и уже его можно кастить в инт а потом передавать в hex, по крайней мере так я понял. Странная заковырка конечно.
Великие кресто-разумисты, Если у меня есть std::unordered_map<int, double>, у которого value_type является <const Foo, Bar>, то почему работает перегрузка insert(value_type &&) в виде insert(std::pair<Foo, Bar>{1, 2})? value_type ведь не совпадает из-за const. Ок, мб происходит какой-то implicit conversion, но вызова copy ctorа для Foo не происходит. Так как это поведение правильно называется? Это просто заложено в язык, что non-const type is treated the same as const type? Если да, то как именно это поведение называется (если имеет название)? Желательно получить выдержку из стандарта, где такое описывается. Я сегодня весь день над этим думал, но гуглинг и чат-гпт ничего полезного не дают. Помогите, плз. Если получу ответ, то будет вопрос в продолжение топика.
Не знаешь теорию множеств, категорий, абстрактной алгебры и топологии - не умеешь кодить? А то я понял что самые базовые знания из этих знаний помогают очень хорошо представить и сформулировать программу.
>>3111326 Видишь ли, вся фишка в том, что многие программы на Си и плюсах являются кроссплатформенными. И каждый компилятор генерирует свои замечания. Т.ч. у тех, кто пишет кроссплатформу, больше вариантов почистить код от багов.
>>3111459 >А то я понял что самые базовые знания из этих знаний помогают очень хорошо представить и сформулировать программу. Не очень помогают. Это вообще ортогональные вещи. Даже в хаскеле категорий нет. Они просто приучают к более строгому и системному мышлению, что уже помогает. А так можно хоть философию ботать, она помогает на проблему с разных сторон смотреть. В программировании, как в игре на скрипке, решает только опыт, чем больше пишешь, тем лучше кодишь.
>>3111459 > Не знаешь теорию множеств, категорий, абстрактной алгебры и топологии - не умеешь кодить? Не умеешь кодить... ЧТО? Что конкретно не умеешь кодить? Игры? Драйвера? Прошивки для роботов? Настольную программу для подсчёта пенсии?
>>3111326 В смысле? Студия и так такую хуйню делает, выводит предупреждения где прямо по шагам нарисовано как например может быть некорректное обращение к буферу. Видно, что перебирает все варианты бранчей и находит косячный.
Вот я чем-то владею из "матана" (в широком смысле слова), а кто-то не владеет - и хрен объяснишь ему что эта область полезна для программирования. Будет до последнего упираться и твердить НЕ НУЖНО.
Теперь представим себя в обратном положении, что кто-то пришёл и заявляет что топология полезна. Скорее всего и полезна, но понять это невозможно, если сам ею не владеешь.
>>3111569 Не бывает кроссплатформенных программ. Бывают программы под винду, но они больше ни с чем не совместимы. А бывают программы под линукс, их можно портировать под винду, то есть, твоя "мультиплатформа" на самом деле говнопорт с линукса под винду. Такой софт жирный, ибо тащит за собой инфраструктуру линукса, и ограниченный, т.к. не поддерживает богатые возможности винды, а только ограниченные линукса. В общем, когда натягивают на несколько платформ, софт естественно ограничен самой убогой из них, потому что иначе он на ней не пойдёт если написать под более навороченные. "Мультиплатформа" это та же повестка - изговнить ВЕСЬ софт опустив на днище САМОГО УБОГОГО пользователя. Софт говнодела, а софт здорового человека - писать под каждую систему отдельно, полностью используя её возможности, так чтобы софт был максимально высокого качества. Короче, как видно, линукс это рассадник повесточной пидарасни и деградации. Все кто кукарекает про мультиплатформу должны сдохнуть, ибо тянут софт в говно.
>>3111647 >хрен объяснишь Раз нет аргументов за нужность, значит не нужно. Пустой кукарек делюзий дебила, который думает что нужно, а когда спрашивают конкретику, ничего сказать не может.
>>3111654 > знаешь теорию множеств, категорий, абстрактной алгебры и топологии Представь, что оппонент знает и несогласен. Как ты аргументируешь свою позицию?
>>3111649 Любому видно, что браузерная какаха - УБОГА, жирно, тормознуто, ограниченно, криво. Потому что мультиплатформа - УБОГА, это опускание на самое днище.
>>3111654 >неспособен понять Это отмазы дауна. Факт в том, что ты ничего не говоришь, потому что сказать ничего не можешь, идиот с делюзиями головного мозга. Как ни отмазывайся, факт молчания не меняется, пустоголовое брехло.
>>3111667 Давай выберем область которую я знаю, а ты нет. Кстати, про топологию и всё остальное в оригинальном посте - это был не мой пост.
Про топологию я только знаю что это наука про дырки в бубликах, и не могу понять как она мне может быть полезна. Но легко представляю что кто-то шарящий в ней найдет прикладную пользу для программирования.
>>3111669 >Давай выберем Дебил без аргументов завилял сракой. Да хватит уже обсираться, чем больше кривляешься, тем больше пруфаешь свой даунизм. Тупой детский сад.
>>3111648 Иногда лучше молчать, чем говорить. Изначальну я пишу на Винде, а затем портирую на POSIX системы.
>Софт говнодела, а софт здорового человека - писать под каждую систему отдельно, полностью используя её возможности, так чтобы софт был максимально высокого качества.
Это выдаёт в тебе... слова не подберу... скажем так - не очень опытного разработчика. Потому что есть понятие... э-э-э-э... ну назовём его мерзко - "бизнес логика". Т.е. это суть программы, ради которой она пишется. Так вот эта "бизнес логика", она на то и логика, что она ПЛАТФОРМО НЕЗАВИСИМА. В ней зачастую даже #ifdef нет. А уже рисование на экране это дело десятое. Обычно разносится по файлам под конкретную GUI библиотеку.
Более того, твоя фанатичная упёртость говорит о том, что от кроссплатформы ты далёк.
>>3111648 Кроме винды и линукса полно других систем. И почти все они или юниксообразные, если это ОС или используют линуксовый тулчейн для разработки, если это железо. Особенности винды (кодировки, особенности файловой системы, несовместимость с POSIX) при разработке под них обычно только мешают.
>>3111732 Количество названий не значит количество систем. Систем всего две, винда и линукс. Формально есть еще всякие Temple OS, но это игрушки не применяемые на практике, не считаются.
>>3111746 >но это игрушки не применяемые на практике В твоем десктопном мирке если только. Да и с десктопом как минимум макос - далеко не игрушка. А уж если брать встраиваемые системы, сервера, там не игрушки, а серьезный бизнес, и почти везде юникс-вей.
>>3111753 >Юникс устарел, давно заменили на линукс. Расскажи это IBM и HP, у которых AIX и HP/UX вполне живут. У МакОС ядро юникса. На плойках ОС, основанная на FreeBSD.
>>3111760 Ты точно хотя бы краешком относишься к думающим людям, а не даунам?
Смотри, винда, одно слово, но куча систем, но все называют просто "винда", хотя там не просто куча систем, а реально разные по функционалу ядра и как следствие разный функционал систем. быдло ядро 95 основанное на DOS, потом ядро NT, потом в 7 его серьезно перехуярили. Вот, как минимум три РАЗНЫХ ядра, а систем на них десяток, но нем не менее слово-то одно - "винда".
А что у тебя? Есть линукс, бсд, макос, но только на словах, а на деле-то ебаное одно и тоже, карбонная копия, абсолютно одинаковый функционал. Так какого хуя тогда ты кукарекаешь разными словами, когда на винде реально разные, но слово одно? Нет, чувак, если одно, то и называть надо одним словом. И какое слово выбрать? Ну явно не бсд и макос, верно? Только линукс, потому что линукс взлетел и макос и бсд от него пошли, а юникс давно подох и забыт. Правильное и употребимое слово только одно - линукс, так что линукс, маня, все эти ваши залупы - линукс.
>>3111778 Юниксом уже ничего давно не называется. То что ты на педивикии прочитал что было такое когда еще твой батя не родился, это не значит что сейчас оно есть. Уже давным давно никаких юниксов нет. Покажи пальцем на пользователя юникса: Ты? Я? Кто? Поднимите руки, юниксы? Не пори чушь, дебил, хватит уже срать тупостью.
>Они просто приучают к более строгому и системному мышлению, что уже помогает. >представить и сформулировать программу >Не очень помогают >Это вообще ортогональные вещи. >что уже помогает Пиздец калейдоскоп у тебя.
Но я тебя понял.
>>3111606 Что угодно. Я конечно только новичок в с++, но дай мне задачу какую-то, я её тебе сформулирую через матешу, при том сформулирую по степени абстрактности.
>>3111652 >Раз нет аргументов за нужность, значит не нужно. Ну докажи это. Это тоже самое, что если чего-то ты не знаешь - то его нет. В каких-то логиках так и делают, но это не универсально и должны быть особенные условия.
>Пустой кукарек делюзий дебила, который думает что нужно, а когда спрашивают конкретику, ничего сказать не может. Так конкретно то можно объяснить, просто сложно. Это как с гегелем. Понять гегеля можно только через его философию. Никаких пересказов, только сами его работы. И тут тебе надо будет просто провести серию лекций, если ты хочешь конкретно узнать.
>>3111815 >Что угодно >но дай мне задачу какую-то Ну то есть ты сам не знаешь. Это такой же ответ, как сказать "все бабы суки". А кто конкретно суки, перечисли имена и фамилии? Нуууу все! Приведи мне пример женщины, а я тебе докажу что она сука.
>>3111820 Не было этой штуки никогда. GNU Hurd - мертворождённое поделие с ошибкой в ДНК. Смотрел её где-то в 2003 году. Она тупо крутила кулером на пустом месте. Походу её разработчики вообще нихуя не понимают как устроены ОС.
>>3111827 >Ну то есть ты сам не знаешь Как ты сделал такой вывод? Я же тебе сказал 0 что угодно. Я не знаю, что могу сформулировать что угодно математически? Пример же данного, т.е конкретностью, можно назвать уже "дай мне задачу какуе-то", как раз для демонстрации и, самое главное, как это называют, экстраполяции абстрактностей методов что применены в данном случаях.
Ох, это уже какой-то запущенный случай.
>"все бабы суки" Если я тебе приведу аргумент к тому, что все бабы суки, будет ли это значит то, что какая-то женщина - сука?
Но дело в ином. Когда ты говоришь. >"все бабы суки". А кто конкретно суки, перечисли имена и фамилии? Нуууу все! Ты не опровергаешь то, что все бабы суки. Ибо ты просто спрашиваешь у абстрактного его конкретность. А когда в ответ получаешь саму абстрактность - это не есть что-то такое, что опровергает саму абстрактность, точнее её смысла. Для примера того, что такое есть - множество что содержит само себя(ибо конкретность-абстрактность это в том числе и работа множества).
Примеры таких множеств? Множество всех множеств, не содержащих яблоко к примеру.
>>3111841 > А о Колибри что думаешь? Это клон MenuetOS.
Во времена MS-DOS она была бы годной. А нынче бессмысленна, потому как на ассемблере написана. Маленькая и на дискету помещается? Ну и что? На тех плюсах, при умениии, можно написать то же самое и на дискету поместится.
>>3111835 >Походу её разработчики вообще нихуя не понимают как устроены ОС. Походу разработчики поняли, что юниксвей не работает с ядром и разосрались.
>>3111861 Работает, если правильно спроектировать.
Но нахуя крутиться в циклах каких-то, когда ждёшь внешних событий? Процессор в сон и жди прерывания. Но видать разработчики GNU Hurd считали как-то иначе.
>>3112081 Приходит как-то ламер к хакеру и просит посмотреть свою программу: - Будь добр, подскажи где у меня ошибка. Хакер смотрит в программу ламера и отвечает: - У тебя ошибка в ДНК.
>>3112129 Попробуй написать то, что ты хочешь, на простом Си. После этого сможешь и на С++ написать. На картинке какая-то бессмысленная дрочь, если что. Ноль информации для ответа. Не веришь? Ну давай подождём пацанов - может быть это я глуп и они дадут тебе решение.
Чтобы правильно задать вопрос и получить на него ответ нужно знать хотя бы половину ответа.
>>3111873 >Работает, если правильно спроектировать. Сам понял, что сказал? Похоже, нет. Поясняю как на самом деле работает: Есть, скажем, 5 разработчиков ядра, каждый "спроектировал" по-своему. Внимание, вопрос: у кого из них архитектура "правильная", а у кого нет? Кто решает, правильно или не правильно? Ты решаешь со своего дивана на дваче? Или кто-то из них? Кто? Кто решает кого посадить в кресло главного решателя?
Ответ: Никто. Потому что юниксвей это "идите нахуй, я сам знаю как писать, не смейте мне указывать!". Такое не работает в проектах где требуется больше одного разработчика, и ядро именно такое. Юниксвей НЕ РАБОТАЕТ с ядром.
>Но нахуя крутиться в циклах каких-то, когда ждёшь внешних событий? Потому что юниксвейный разработчик так решил, думаешь ему не посрать на твои кукареки? не нравится - пиши сам, "умные" советы со стороны параши юниксвейщикам не нужны.
Поэтому ядра пишут корпорации, а пердоядро это дебильный мем, его не могло быть с самого начала.
Почему stream-ы такая медленная хуйня? Нахуя для чтения из бинарного файла таскают за собой какую-то блять локаль, codecvt и прочую непонятную тяжеловесную хуету?
Сап, анон. Решил ради интереса через hex редактор посмотреть .exe файл своей скомпилированной программы, и не нашел мой константный std::string, заданный как utf-8. Причем всякие другие строки есть, типа от эксепшонов и проч. Очевидно, искал я тоже UTF-8, и он там был, но не мой.
Почему так? Как так вышло, что строки нет? Сборка дебажная, компилятор - mcvs
>>3113305 Я наверное путаюсь в терминологии, но были строки, записанные на английском через нули, типа H E L L O. Это ведь юникод, два байта? Искал я также юникод. И были строки типа hello. Искал именно английский, хотя исходная строка содержит ещё кириллицу
>>3113420 >>3113381 Короче я искал по-разному и вообще ничего не нашел. Я все думаю, может ли mcvs как-то хитрожопо, ради безопасности, хранить строки? Типа, вдруг это приватный ключ и т.п. Пример такого "тупого" хранения - шифр Вижинера на байты, с отдельным словарём. правда, будет известно, где словарь хранится
>>3113254 >ssize_t read(int fd, void buf, size_t count); Я в курсе, ебанько. Речь про конструктор. Глянь декомпилят, там локали подтягиваются и прочая залупа.
>void mmap(void addr[.length], size_t length, int prot, int flags, >int fd, off_t offset)
>>3113572 > >Подводные? Почему ей не пользуются массово тогда? Пользуются. Но для очень больших файлов, перекинув всю работу на операционную систему. Она мапит гигантский файл в адресное пространство процесса и дальше с ним работаешь как с обычной памятью. Размер файла может многократно превышать размер оперативной памяти - ОС всю кухню прячет в своих потрохах. Часто используется в базах даннвх.
Так же mmap может использоваться для прямого доступа к видеопамяти, с её помощью (если root) можно замапить видеорамять в адресное пространства проуесса и рисовать в ней напрямую. Обычной программе это нафиг не нужно, но тот же X-сервер использует её.
Скорее вопрос из чистого матана, а не только по плюсам, но я работаю на них, поэтому спрошу тут: Может кто дать формулу вычисления Азимута по двум точкам? И нет, мне не для ЖыПыЕс, мне не нужно считать вокруг шара и прочее, просто получить градус точки "б" относительно точки "а" в двумерной системе координат.
>>3114400 > соптимизироваться может. Короче я про это хотел узнать. Как выглядит такая оптимизация? Что происходит с набором байт? Как можно так наоптимизировать, что последовательный текст пропал?
В моем представлении конст строки лежат где-то в секции констант, ну и когда что-то хочет вывестись в cout, данные копируются из этого массива. Не представляю, что может быть более оптимизированным, чем обычный линейный массив.
Другое дело - хитрожопая не мной сделанная обфускация кода ради безопасности. Но опять же, секретные ключи и пароли намного правильнее вообще не хранить в программе, а получать извне, например, файла
Файлы отдельно же компилятся, не? Вот и модули вроде эту идею используют, разве нет? Не значит ли это, что мои функции, размазанные по нескольким файлам для читаемости не будут так же хорошо оптимизироваться, как если бы я все в одном файле написал, потому что уже не будет смотреть на код функции в плюсах, а будет только дергать скомпилированный в асм код функции?
>>3114734 Ну ты чёрт. Эмулировать биты через char (или что там у тебя) это надож было додуматься!
Ты прям когнитивный диссонанс ввзвал - с одной стороны занимаешься темой не для вкатунов, с другой стороны - ты не слышал о битовых операциях и опреациях сдвигов. И вот это сочетание, оно источник охуевания.
Почему ты делсешь неправильно? Потому что дрочишь память почём зря. Битовые операции и сдвиги прямиком транслируются в инструкции процессора и оптимизируются в регистры. А твой подход хорОш разве только для визуализации, но работать будет раз 10 медленнее. А то и в 30 раз.
Но темой похвальной занимаешься - если не осиановишься, то далеко пойдёшь.
>>3114734 А вообще присмотрелся - сдвиг есть. Про битовые операции ты слышал. Но всё равно хуйня написана. Ищи в интернете - там есть хортшие статьи где прям на пальцаx объясняется как ловит oveflow.
Я поступал проще - мне надо было очень быстро ловить overflow 32-х битных регистров. Макимально быстро. Я их приводил к 64 битам и проверял 33-й бит.
>>3113609 >с её помощью (если root) можно замапить видеорамять в адресное пространства проуесса и рисовать в ней напрямую. Обычной программе это нафиг не нужно, но тот же X-сервер использует её. Ты про выделенную память на гпу? Маняфантазии. Напрямую работать с памятью гпу может, как бы это банально не звучало, только сам гпу.
Если у нас POD объект, например десяток числовых полей и всё, без всяких строк и вложенных объектов - то move сработает точно так же как копирование, и короче никакого улучшения жизни не случится. И один хуй если хочешь тут какого-то ускорения, придется брать от такого объекта указатель и в коллекции хранить указатели "по-старинке". Так что ли?
>>3115202 Мув, как и копирование, КОПИРУЕТ объект Самый быстрый способ сделать это как раз таки что и происходит при муве
То что ты хочешь сделать с указателями не копирует обьект
> И один хуй если хочешь тут какого-то ускорения, придется брать от такого объекта указатель и в коллекции хранить указатели "по-старинке" Для таких вещей сделаны референсы
>>3115242 >>3115267 Да, речь о том, что "под капотом". Что буквально делает компьютер при этом муве. Прошу не примешивать семантику языка.
>>3115219 >Для таких вещей сделаны референсы Ну как ты референсами заполнишь вектор например. std::ref какой-нибудь дрочить? Короче, нахрена всё это, если можно взять указатель, и положить его в коллекцию. (потом только не забыть делитнуть его, лол, но разве не для этого существуют деструкторы).
>>3115290 >если можно взять указатель, и положить его в коллекцию. Да. Так и делается Только или за временем жизни объектов тебе придётся следить самому.
>>3115307 А не знаешь, случайно, как проверить какие конструкторы автоматически сгенерировал компилятор? В дебажной сборке как-то смотреть символы, или есть более простой способ?
>>3115398 > A move constructor is a constructor which can be called with an argument of the same class type and copies the content of the argument, possibly mutating the argument. copies the content of the argument
>>3115401 >>3115404 Дегенерат, вот для тебя даже в примерах есть - дефолтный конструктор, конструктор копирования и мув-конструктор. Ты видишь, блять, разницу между двумя последними?
>>3115404 Ты видимо не понимаешь чем отличается lvalue от rvalue и что происходит при копировании rvalue. Спойлер - rvalue это не реальный участок памяти, ты его физически не можешь скопировать куда-то. Например при > int a = 1 + 1; у тебя нет никакого копирования результата сложения, хотя там = написано, само а и есть результат сложения. Так же и при муве - там нет никакого копирования, это и есть тот же объект, только теперь в другом месте. А если кому-то хватает ума в мув-конструкторе не мувать, а реально копировать, то это явный говнокод, потому что по факту там обычный конструктор копирования получается.
>>3115436 > Ты видимо не понимаешь чем отличается lvalue от rvalue > Спойлер - rvalue это не реальный участок памяти, ты его физически не можешь скопировать куда-то. В универе еще до xvalue не доходили?
> А если кому-то хватает ума в мув-конструкторе не мувать, а реально копировать, то это явный говнокод, потому что по факту там обычный конструктор копирования получается Расскажи мне чем отличается конструктор копирования от мув конструктора в POD типах, очень интересно послушать
>>3115412 Когда он мувает, поля класса взлетают в воздух и перелетают в новое место?
>>3115436 >Так же и при муве - там нет никакого копирования, это и есть тот же объект, только теперь в другом месте. Ты напоминаешь мне Гиппократа, который утверждал что у женщин меньше зубов, чем у мужчин. Проверить, конечно, он не догадался.
>>3115501 > сгенерировался ли автоматический конструктор Чего? Если ты не написал explicit-конструктор, то не сможешь инициализировать объект без implicit-конструктора. Компилятор выдаст ошибку вызова deleted constructor. Если надо прям проверить, например в шаблоне, то можно чекать тип через std::is_convertible к самому себе.
>>3115525 > В первый раз, наверное, слышишь о таком? Да. В крестах implicit-конструктор не генерируется если есть explicit. Никогда. > больше чем один конструктор Больше чем один конструктор копирования/мува, лол? У тебя точно какой-то свой стандарт крестов.
>>3115539 >У тебя контекст теряется или смешивается. >У тебя У какого "тебя", если ты разговариваешь с чатомгпт? Программист не может разговаривать с ботом, он понимает, что это тупая программа лишь внешне имитирующая человека. На такое ведутся только тётки-сраки и секретарши.
> робот может написать симфонию, создать шедевр? > вот три трека с симфонией классического жанра и три картинки с героями с шестью пальцами, но композицией эпического жанра, желаете уточнить ваши промпты? > ...
>>3113211 Hundu be like: Читаю байт из файла Если это 10, то превращаю по локали в КОНЕЦ СТРОКИ. Если открыто в бинарном режиме, то превращаю по локали назад в 10. Вернуть cChar
>>3114446 >>ну и когда что-то хочет вывестись в cout, данные копируются из этого массива Ничто не мешает компилятору при выводе в cout не читать строку из памяти, а напрямую на ассемблере захардкоженные символы вывести
>>3116732 Ну эти символы будут в бинарнике, и крайне вероятно они будут подряд, вот я их и искал. Делать не подряд - вариант усложнения, влияющего на скорость и размер
1) Правильно ли я понимаю, что в c++ нет онраничения на размер кучи, как это сделано в java/c#? 2) Чем ограничен стек вызовов в c++? Как понять, какую глубину рекурсии можно делать?
>>3116841 > онраничения на размер кучи Система его ограничивает. Разово нельзя большие куски памяти выделять. Мелкими можно. > Чем ограничен стек вызовов в c++? Размером стека.
>>3116841 >Правильно ли я понимаю, что в c++ нет онраничения на размер кучи, >>3116852 Да, господин. Только линкёру ключами можно ключами подсказать свои размеры. Не факт, что система даст. Но попробовать можно.
>>3116841 >2) Чем ограничен стек вызовов в c++? Системой. >Как понять, какую глубину рекурсии можно делать? Никакую. Так делать нельзя, получишь переполнение стека. Стек это системный служебный объект, не лезь в него. Делай рекурсию не засирающую стек.
>>3117156 Почитай про коды управления терминалом. В него можно послать последовательности начинающиеся обычно с \27 (то есть escape). И этими последовательностями можно двигать курсор, менять цвета и делать всякое такое.
>>3116841 >2) Чем ограничен стек вызовов в c++? Как понять, какую глубину рекурсии можно делать? Узнать размер стека в рантайме можно через pthread_attr_getstacksize или GetThreadInformation Задать можно флагом линкера "--stack,размер" для gcc, под msvc вроде /F Под линуксом можно сделать неограниченный стек (не уверен насчет винды). Размер стекфрейма у функции можно узнать у gcc через (char )__builtin_frame_address(1) - (char )__builtin_frame_address(0) или отладчиком/дизассемблером.
>>3117908 В виндовом терминале работает отлично. В cmd.exe каретка переводится, но строка не стирается, получается "Ohuenny progress 50% [1K". В Powershell не пробовал.
>>3117966 Стирание строки от курсора до начала строки. При этом курсор остается на месте, поэтому я навасянил еще \r.
>>3117971 >В cmd.exe каретка переводится, но строка не стирается, получается "Ohuenny progress 50% [1K". Так и думал, уже насмотрелся на такой мусор, работает только под башем.
Помогите разобраться с многопоточностью, синхронизацией и серверами? Вот есть такой кусок кода, идея в том, что коннекты менеджит один тред, а сообщения составляет другой и одинаковые сообщения отправляются всем клиентам.
Проблема в том, что допустим я не хочу тратить время на составление сообщений, если клиентов нет, как мне заставить тред ждать по условию, но только один раз, а потом пропускать вейты, пока условие снова не станет false? Пытаюсь в condition_variable, но оно блочит вообще всегда, и оба треда зависают, так как один ждет нотифая, а другой ждет коннекта.
>>3118272 Я хз, что тебе надо. Берешь мутекс. Если клиентов нет, спишь на переменной, мутекс при этом освобождается. Разбудили - снова проверяешь клиентов. Обработал клиентов - освобождаешь мутекс, делаешь еще что-то.
>>3118283 Ну и в догонку, если клиентов нет и я дождусь нотифая, то второй анлок ни на что не повлият? Ну и даже если не повлият, как-то коряво выглядеть будет.
>>3118272 > как мне заставить тред ждать по условию Чел, виндовые системные ивенты. > блочит Это отдельный вопрос нахуя ты что-то лочишь до того как потребуется обращение к общим данным. Ещё и бесконечные циклы, пиздос.
>>3118287 >Чел, виндовые системные ивенты. На линуксе? >Это отдельный вопрос нахуя ты что-то лочишь до того как потребуется обращение к общим данным. Я же написал причину. >Ещё и бесконечные циклы, пиздос. Буквально везде так пишут, а как надо?
>>3118272 Чел я конечно в твоем разбирать не хочу, но вот на пример первые же строки судя по всему ты юзер неймспейс стд уникуе лок <мутекс> ...и¿ это тип а сам мутекс то где? Локи выглчдят так лок<мутекс тайп который к слрву можно опустить в случае стд мутекса>(&мутекс нейм)
>>3118272 Мютексы нужны когда есть какие то глобальные данные к которым могут обращаться разные треды. Когда у тебя в разных потоках что то свое делается мутексы и локи-анлоки не нужны.
Если у тебя один тред как бы не взначай крутится возле данных другого и постоянно спрашивает ну что там? То надо вместо хуютексов писать асинхронный обработчик событий, а в других тредах не локеры ставить а отправку событий. Рекомендую посмотреть в библиотеку SDL2 посмотреть как реализованы SDL_WaitEvent и SDL_PollEvent и SDL_PushEvent, так же в медиаплеере мpv есть асинхронные функции работающие через обработчик.
>>3119475 > один тред как бы не взначай крутится возле данных другого и постоянно спрашивает ну что там? В таких случаях достаточно атомика. А когда ему ответят что пришло время брать данные, тогда уже и лочиться перед самим обращением к ним. Или вообще можно не лочиться, если другой поток не будет писать туда.
>>3119599>>3119623 Я не настаиваю, в прикладной хуете я предпочитаю асинхронщину (и как пользователь и как разработчик), в другой области могут быть другие реалии.
>>3119623 >Или вообще можно не лочиться, если другой поток не будет писать туда. Вот поэтому я их и не люблю, из за того что большинство плохр понимает что в них и зачем. Нельзя читать то, во что пишет другой поток, поток который пишет блоркирует все остальные потоки что бы не произошло чтение. Что бы поток блокировался непосредственно при обращении к данным, надо уже проявить изобретательность писать всякие конструкции интересные.
>>3120196 Если к этому сведется, значит одно из двух либо ты не понимаешь что делаешь, либо к твоей задаче/алгоритму/архитектуре что то другое не приминимо, либо вообще либо в текущей реализации.
>>3120196 >В итогде то всеравно сведется к блокировкам и ожиданию их снятия лол. В хорошо написанной многопточной программе блокировки редки. Разумеется они будут возникать, без этого никуда. Но их количество будет таким малым, что в большинстве применений ими можно пренебречь.
Короче, такой реквест: мне нужно поменять из проги время на 10-ой винде, желательно при этом отключив автоматическую настройку часов (пик 2). Как это можно сделать?
Но потребуются привлегии, иначе никак. И это правилно - нефиг каждой программе давать возможность по желанию левой пятки менять системное время, иначе быть беде.
>желательно при этом отключив автоматическую настройку часов (пик 2).
О, а тут уже, скорее всего, потребуется к WMI лезть или, на худой конец, в реестр.
А справедливо ли вин-апи относить к тредам про плюсы и си? В свое время дядя Билли славно посторался над тем что бы изуродывать си и плюсы в реализации от майкрософта до такой степени что бы исходный код было максимально геморно куда то портировать. Современный мелкософт конечно уже не такой как при очкарике, но наследие то все равно еще болтается.
Раньше писал приложения под WinAPI и там был явный цикл обработки событий, что позволяло вставлять какую-то свою логику между обработкой событий. А как такое же делать в Qt? Такое ощущение, что разработчики об этом вообще не подумали, и вся логика привязна к кнопочкам и формочкам. Ничего вне этих виджетов сделать нельзя. А мне надо, чтобы шёл постоянный расчёт в фоне, но чтобы при этом интерфейс пользователя не зависал.
>>3122395 >А как такое же делать в Qt? Не ебу как в QT, но под голые иксы точно так же как под WinAPI. Походу "цикл обработки сообщений" в Windows слизывали с иксов. А как иначе?
QT - говнецо ещё то, но наверняка там тоже можно как-то, возможно через хуки и каллбэки.
А чего тут спрашиваешь? В интернетах быстрее в 100 раз найдёшь ответ.
>>3122445 > под голые иксы точно так же как под WinAPI Не пизди, у них совсем разные реализации. В иксах просто внутренняя очередь из неё дёргается функцией следующее событие. Цикла как такового там не подразумевается. А в WinAPI самая система вызывает твою функцию обработки событий. В случае иксов события сам собираешь когда захочешь, у винды обработка события сразу вызывается а можно и вручную дёргать из очереди необработанные. Во втором случае задержки на события сильно меньше, чем при ручном сборе.
>>3122570 > скриншот Чел, ты сам этот цикл написал, иксы тут причём? Ты можешь XNextEvent вызывать в любой жопе. Алсо, посмотри хотя бы как в xfree86 писали обработку событий, до того как спиздили твой пикрил из WinAPI.
>>3122592 > Ты можешь XNextEvent вызывать в любой жопе. Могу. Но смысла в этом ровно 0. Использовать XNextEvent вне цикла сообщений это хороший способ написать говноприложение.
С таким же успехом ты можешь под Виндой в любой жопе вызывать. GetMessage, TranslateMessage и DispatchMessage. А смысл сего действа?
>>3122395 В куьюте заточка под свои задачи, все там возможно и все там продумали Не забывай, ты пишешь на крестах, ты можешь вытянуть любую либу на свой вкус и подрубить ее в кьют А вообще, во всех книжках \ гайдах \ при старте кьюта должен быть огромный дисклеймер ТЫ ПИШЕШЬ ГРАФИЧЕСКИХ ИНТЕРФЕЙС, ВЕСЬ РЕНДЕР ПРОИСХОДИТ В НЕМ, ВСЕ ЧТО НЕ СВЯЗАНО С ИЗМЕНЕНИЕМ ИНТЕРФЕЙСА ДЕЛАЙ В ДРУГИХ ПОТОКАХ
>>3122951 >В куьюте заточка под свои задачи Заточка под говно, как в любой пердопараше. Хочешь писать нормальные программы - не лезь в линукс, пиши под винду, иначе выйдет пердопарашный огрызок из кривых костылей на соплях, который на винде будет работать так же говняно как работает линукс со своими 3% десктопа - никак, в то время как у винды 75% не случайно, задумайся.
Думай головой, иначе будешь как такой соевый ебанат. Был нормальный человек сделавший хорошую программу на "дельфях" которая получила известность. Всё было хорошо, но потом ударила в голову соя и началось: https://github.com/z1dev/zkanji >This is when I decided to make it cross-platform, and chose Qt as the library for the user interface. I finally reached a point in 2017 to release this new version, and plan to develop it further. Прям по соевой пердо-методичке закукарекал лозунги, как прекрасно, новые горизонты, бла-бла. А потом настала реальность: >https://github.com/z1dev/zkanji/issues/13 >Ой, чота сворачивание в трей глючит, в винде было всё норм, но теперь мультиплатформа, как сделать везде не знаю, пук среньк, слился. https://github.com/z1dev/zkanji/issues/30 >Ой, чота шрифты распидорасило, в винде было сделано норм, но теперь Qt юзает свои опенсорсные либы которым насрать и всё глючит, ничего не сделать, ебись, можешь поменять шрифт на другой, авось повезет с ним, или отредактировать шрифт (!), пиздец пердорешения. https://github.com/z1dev/zkanji/issues/38 >Ой, чота тормозит пиздец, но проблема внутри Qt, ничего не могу сделать, терпи, жри говно, и кстати, в винде 10 эти тормоза сильно усилились, а в винде 7 было лучше, так что можешь откатить винду на семерку.... просто_блять_ноу_коммент И итог: I'm not working on this project anymore. I wanted to make a full release and maybe add some small adjustments years ago, but for a long time nobody tested zkanji or reported issues, and I didn't want to make a full release of a possibly buggy program, then I moved on. (I'm adding this text at the start of every answer today, it's not a sign I don't care.) Заебало это говно, забил хуй, даже компилить релиз не буду чтобы не позрориться. Адиос! (ушел в закат)
В общем был хороший человек с хорошей программой под винду, потом ебнула в голову повестка (мультиплатформа, Qt), и нет человека, кусок сои на ножках высравший вонючее Qt-говно от которого даже самому стыдно.
>>3122983 Ты знатный боец с линуксом, уже узнаваем по первым двум предложениям.
Но ты не постиг Дао. Ибо тот, кто постиг Дао, в холиварах на тему Windows vs Linux будет участвовать только от скуки или чтобы повыёбываться. Ты не похож на скучающего человека, а выёбываться тебе особо нечем.
Нюанс - High DPI. Под голыми иксами отмасштабировать содержимое окна не так, чтобы вот прям легко и надо заморачиваться. А под виндой это делается легко и непринужденно. Но разве это повод отказываться от любителей Линукса и MacOS?
Если ты пишешь коммерческий софт, то большее количество поддерживаемых платформ выливается в большее количество пользователей и известность, а это конвертируется в деньги. И вот на этом моменте все религиозные предпочтения о любимой оперционной системе заканчиваются.
>>3122992 >Если ты пишешь коммерческий софт Так не бывает. Ты НЕ пишешь коммерческий софт. В коммерческой разработке ты безвольный безмозглый болванчик, раб делающий что скажут. Не ты принимаешь решение под какую ось писать. Не ты принимаешь решение на каком фреймворке писать. Это делает высший менеджмент, как он скажет, так и будешь писать. Скажут писать на паскале под дельфи, так и будешь писать. Скажут на js под браузер, так и будешь писать. В коммерческой разработке ты никто и звать тебя никак, ты даже не имеешь никакого хзначения, завтра тебя уволят заменив на другого и ничего не изменится. Так что завали ебло, пустое место, тупорылое животное. Неудивительно, что именно такие имбецилы защищают линуксную пердопарашу пребывая в манямирке где они президенты корпораций правящие миром. Просто обоссаные придурки.
А вот если ты, как в было упомянуто выше, САМ себе хозяин, сам делаешь выбор что и как писать, сам пишешь весь код от начала и до конца, и сам в ответе за то что в итоге получится, тогда остановись и подумай. Сможешь ли ты преодолеть пердопарашу, чтобы в итоге вышло что-то стоящее, а не кусок такого же кала от которого тебя самого тошнит. Возможно ли это в принципе? Подумай вдумчиво, если не хочешь кончить как этот жалкий хуесос >>3122983
>>3122998 Я с тобой не согласен. Могу сказать что если меня что-то не устраивает, я просто ухожу и иду туда где меня все устраивает. Ну а то, что тебя легко заменить это уже твой осознанный выбор.
>>3122983 Ну во первых, кьют не тормозит по определению потому что это гуи фрейморк, если кто-то написал/портировал код криво, ну я не вижу смысла тут комментировать. Жалобы на медленность кьюта валидны только от тех кто заплатил бабки для того чтоб писать коммерческий продукт под камни. Во вторых, любой коммерческий продукт неизбежно заменяется опен сорсом. И когда ты пишешь что-то что должно жить дольше 5 лет нужно думать про это. Сейчас практически под все есть открытый стандарт, в том числе под фонты. Ну а раньше нужно было просто держать нос по ветру и делать исторически правильные выборы. Винда через 10-20 лет умрет и ее рынок игр разделят между собой консоли для людей которые привыкли платить и играть, любителей пк которые перейдут на линукс (когда будет 100% совместимость со всеми играми винды, потому что кроме игр винда качественно не решает ни одной задачи) и лаптопами где будет заточка под линукс из коробки. Я ни в коем случае не говорю что сейчас линукс из себя представляет продукт который можно поставить бабушке и она будет счастлива, как если дать ей епл, но это неизбежно произойдет. Кьют де факто стандарт гуи, он победил. Живи с этим.
И вообще вы все здесь присутствующие используете язык который переживет все языки (кроме своего бати). Возрадуйтесь же, блядь, ибо вы уже сделали исторически правильный выбор с самыми жирными зп (в этой сфере интеллектуальных шлюх) и обеспеченной старостью. К слову, про исторически правильный выбор. Была такая штука Windows CE, в нее прям много кто вбухал достаточно приличное количество ресурсов.
В любом случае токс нормален, поскольку не все одинаково везет в жизни. Но можете себе представить уровень фрустрации девов, когда андроид перешел на котлин? Или когда юнити умрет и анрыла станет стандартом игровых движков? Или когда пересмотрят протокол http (нихуя не шарю, но уверен что от него перейдут к чему-то более оптимизированному, вероятно с питоном вместо js, когда питон до ума доведут). Что будет со всеми теми людьми что вьебали всю свою молодость на изучение, блядь, выражений в джсе или оптимизации гербедж коллектора в шарпе? Это же тысячелетия человековремени.
>>3123051 LGPL. Я понятия не имею что имеешь ввиду под "теперь" ибо лицензия не ребенок, так просто не откажешься. От тебя требуется: 1. Разместить исходный код изменений, которые ты внес в сорсы кьюта непосредственно 2. Если ты вкомпиливал кьют, полностью опубликовать сорцы или предоставить возможность релинкать либы, если ты прям хитровыебанный. 3. Предоставить возможность релинкать либы, уточнение п2. Если ты нихуя не трогал и не настраивал, там никаких вопросов быть не может, либы легко меняются, все символы на месте, потому условия лицензии ты выполняешь.
Все остальное вытекает из этого, грубо говоря: 1. Если ты ембеддед, то нужно отстегнуть. 2. Если ты хакер, то тебе и так похуй. 3. Если ты не хочешь один исполняемый файл то тебе нужно определиться, подвинуться принципами или отстегивать Ну и 4, выбор большинства. Если тебе важен просто сам фреймворк для написания своей аппки, ты просто делаешь все как обычно, то тебе нужно просто вставить копирайт лджпл кьюта в установщик и в описание продукта где это нужно (если ты конечно хочешь шипить либы кьюта вместе с прогой, иногда этого можно избежать). И просто продаешь свой продукт где угодно и как угодно.
>>3123063 Да, он стопудово залетел на какую-то неправильную галеру, где нет корпоративной культуры и большого офиса с девочками, кофе, митапами и ивентами. ОН НЕ ЗНАЕТ ЧТО ЗНАЧИТ ВЬЯБЫВАТЬ.
Поставил Qt из репозиториев бубунты, но в Qt Creator не видит Qt, типа сам ищи. А я откуда знаю в какую он папку запихал? Да и настраивать вручную задолбаешься, полюбому потом что-нибудь отвалится от ручной настройки. Qt дерьмицом попахивает: платное, санкционное, дак ещё и не ставится по нормальному.
>>3123235 > кьют не тормозит У него рендеринг такой всратый, что даже GDI быстрее будет. Как он может не тормозить, если не способен каждый кадр перерисовывать интерфейс. Доставь ебало того, кто говорит что не могущий в 60 фпс гуй не тормозит.
>>3123331 > настраивать вручную задолбаешься > не может настроить тулчейн Ты уверен что системное программирование это то что тебе нужно? Питон из коробки работает даже на моей кофеварке
В qt-срач могу добавить только 1 вещь - не надо использовать С++ для того, для чего он все таки не предназначен. Если уж пиздец как надо гуй - делаешь его на шарпе на Авалонии какой-нибудь. Если логика пиздец нужна на крестах - делаешь динамическую либу рядом и экспозишь все нужное, чтобы шарп смог подхватить через p/invoke.
Даже если вы вообще не знаете шарп - это будет все равно быстрее и сильно лучше, чем ебля с культями.
>>3123471 > Если уж пиздец как надо гуй - делаешь его на шарпе на Авалонии какой-нибудь. Если логика пиздец нужна на крестах - делаешь динамическую либу рядом Так всё и делается на Qt последние лет 10, а мейнстримно 3-5 лет.
Гуй на QML, логику-пиздец-на-крестах экспозированием С++сных объектов в QML.
>>3123471 Да нет никакой ебли, проще только в консоли писать ио Если начинающий разработчик - я думаю тебе с радостью тут помогут разобраться в основных принципах работы исполнямых файлов
>>3123511 Какое-нибудь. Я слышал что у телеги боты на петухоне, и предоположил, что в том числе могут быть клиент-сайд боты, и потому в ехешнике встречаются строки про петухон.
Ещё с детства любопытно было - а как делаются программы которые потом на винде уствнавлюваются вот этим вот установщиком где нужно принять лицензию, выбрать папку для установки, прожать далее-далее-далее, потом полоска прогресса и "готово"? Это какой-то фреймворк для десктопных приложений который это всё искаропки делает?
Скачал через впн версию с санкционного сайта, отключил временно интернет и поставил Qt. Всё сразу завелось. Вроде работает, но всё равно нет удовлетворения от этого. Хотелось бы, что-то действительно свободное. А тут как-будто с торрента своровал.
>>3123380 Надоело что? Я уже много лет увлекаюсь программированием и не собираюсь бросать.
>>3123566 Смотри, если ты качаешь .ран файл и ставишь кьют через установщик, он тебе сам все тулчейны настраивает (базовые) Если через апт, то насколько я помню нет. По факту, там делать совсем почти ничего не нужно, выбрать С++ компайлер, гдб и кьют версию (камон это проще чем автокоррекцию в студии убрать) К слову, я не помню идет ли maintenance tool в ящике, или его доставлять нужно (или он проприетарный) но хлопцы шепчут что должен идти в комплекте к qtX-default
>>3123562 Насколько я понимаю все сводится к заполнению файлика где ты указываешь что тебе нужно. Никогда не юзал, но учитывая что для него нужен сервис windows installer framework, скорее всего так и есть В кьюте, к слову, в комплекте сразу под все оси, прошу прощения за пошлость
>>3123471 >modern development experience for XAML > UI is similar to WPF, Уж лучше электрон
Неужели до сих пор не придуман способ подсунуть текстовой файл в компаилтайме как литерал? я знаю про юниксовую утилиту xxd но она какую то хуйню выдает. Зачем мне const char COPYNG[] нельзя что ли сделать просто # define COPYNG " COPYNG \n\n ...\nEND"
чтоб я сам где мне надо сделал: static const char copyng_inf[] = COPYNG;
>>3123854 Чел, там сейчас QML, который на опенгл-ном контексте рисует охуенные контролы, и весь View (в терминологии MVC) можно написать на этом QML + немножко джаваскрипта. И вся эта штука относительно прозрачно стыкуется с С++ (или с питоном, если С++ не мил) в котором кишки и связь с бекэндом.
>>3123854 >что есть в С++ куте - то UI на С++ писать не надо. Qt это не UI а фреймворк, в котором есть аж два UI - QML и QWidgets
Даже не смотря на то что сам дотнет есть не везде, а qt собирается даже под гайку и эльбрус, в дотнете нету никакого ui из коробки, и ты предлагаешь какой то левый уй написанный непонятно кем и который неизвестно в каком состоянии будет завтра.
>>3123897 Начальная поддержка DX12 только в октябре прошлого года появилась, допиливать хуй знает сколько ещё будут, по дефолту всё ещё DX11. Вообще qt по производительности рендеринга очень сильно от дотнета отстаёт, WinUI 3 вообще космос.
>>3123890 Потому что есть кьют. Бесплатный. В нем идеальный баланс между OSI-апрувд кодом, который писал студент с сдвг, но перестал поддерживать потому что ему стало похуй и умеренным влиянем бабок со стороны дядек. ничего против кода от студентов с сдвг не имею, работает лучше коммерческих решений, но это либа в лучшем случае, а не фреймворк
Вот чего-чего, а Телеграм у меня будет жить только в мобиле и вкладке бразуера. Устанавливать его на комп никогда не буду. Слишком мутная история с ним.
>>3124024 Причем здесь диды и 70, есть гну мейк есть куча юниксовых утилит сделать строку и сунуть в препроцессор проще простого, казалось бы, но до сих пор приходится изъебываться..
>>3124769 Раньше он свободно скачивался, а сейчас они спрятали все ссылки на скачивание, требуют регистрации, а в РФ вообще недоступен. Хотя один из принципов оперсорса, что не должно быть ни каких ограничений и дискриминаций.
>>3124883 Сорцы где-то можно скачать, инфа девяностодевятка. Где-нибудь по торрентам лежат и качать их законно (собирать придется самому)
А вот собранные бинари, да еще с инсталлером и апдейтером - это уже сервис, который, как сам знаешь "частный бизнес, кого не хочу, того не обслуживаю".
>>3124899 Не все же супер-линуксоиды и умеют собирать из сырцов. Многие просто по гайду изучают Qt, а там всегда вариант только с установкой через инсталлер.
>>3124906 Для суперлинуксоидов это задачка недели на две. У меня на прошлой работе творился этот пиздец регулярно. Собирать надо было кросс-тулзами для винды, мака и линукса (предварительно собрав сами кросс-тулзы).
Если для одной системы и нативными средствами, может повезти и соберется за денёк. Это еще более-менее.
Бинарники делают либо маинтейнеры дистрибутивов (как обычно у них каждый qml модуль выделен в отдельный пакет из за чего жопа постоянно подгорает)
Либо есть в сторонних пакетных менеджерах типа homebrew/linuxbrew, там как правило самый свежий, но но лично у меня их qt не работает и при сборке чего либо с ней выазят матюки на ABI glibc, короче не умеют там собирать.
>>3101419 (OP) Анончики, может кто-то внятно объяснить, чем был так плох std::allocator? https://cpp-lang.net/docs/std/memory/allocator_traits/ В C++11 ввели allocator_traits, кода придется писать больше: теперь std::allocator_traits<decltype(allocator)>::allocate(...); вместо allocator.allocate(...);
>template< class Alloc > >struct allocator_traits;(since C++11)
The allocator_traits class template provides the standardized way to access various properties of Allocators. The standard containers and other standard library components access allocators through this template, which makes it possible to use any class type as an allocator, as long as the user-provided specialization of std::allocator_traits implements all required functionality.
>>3121007 >>3123385 >>3123396 Спс за инфу. Бля, сорян, я пиздец торможу с ответами. На самом деле по той же причине я вообще хз, когда доберусь до написания этой проги.
>>3123385 В том то и дело, что это не моя программа. Мне нужно чтобы прога видела другое системное время, когда запускается. При чем желательно +- то, на котором она закончила работать. Пока меняю вручную, но, когда окончательно доебет, мб автоматизирую а мб и нет, посмотрим
>>3123541 Ты хуету несешь братан. Ботов для тг ты можешь писать на чем угодно, хоть на дедушкиных сях? Берешь хттпклиент и шлешь запросы согласно апи. Все методы в апи get. Опрашиваешь сервер методом апи гетапдейт, диспатчишь хуятчишь, двигаешь офсет, обрабатываешь ошибки ибо они будут, флудвейты всякие ... получаешь респонс джсоном, десеришь его в модельку, передаешь в хэндлер ... короче на какую архитектуру говна у тебя фантазии хватит. Есть готовые либы и да на питоне либы популярны потому что пайтон дзен хуе мое, боты в пару строк, школотрон разберется. И главное ни какой еботы со строками и кодировками - как я либу для тг ботов на плюсах писал на голом винхттп.
>>3123541 Десктопная телега написана на кутах. Есть ли там какие скрипты какая логика на пайтоне? Возможно, почему нет. Но никакого отношения к ботапи. Помимо ботапи у тг есть еще юзерапи и да оно доступно. Ничто не мешает тебе написать свой клиент телеги под любую ось.
>>3125809 Ты написал выше: >>Я слышал что у телеги боты на петухоне Создай бота через фазера сейчас. Открой любой браузер и напишу api.telegram.org/bot<токен твоего бота>/sendMessage?user_id=<твой айди>&text=<любой текст>
Поймешь как это работает. Как ты надеюсь понимаешь хттп запросы к апи ты можешь слать на любом языке. Хоть на асе.
>>3125809 Апи на стороне бекенда. А десктопка просто шлет к юзер апи запросы, получает ответы а потом рендерит все это говно на экран. Ты нажал кнопочку чата, отправился запрос, прилетел ответ джсончиком, контролы построились хуяк муяк. Конечно там еще ебота с шифрованием, в отличие от бот апи. Боты это точно такие же чаты иерархически. На чем написан бекенд телеги? Да кто знает. Может и на питоне.
>>3125686 >Мне нужно чтобы прога видела другое системное время когда запускается. При чем желательно +- то, на котором она закончила работать поэтому надо пользователю программно все поотрубать нахуй
>>3125950 Не понятна суть спора. Что то про эксепшены и ретерны и путаница с понятиями блок / стек
Блоки есть не только в коде но и в ассемблере, и стеком иминуют не только какой то аппаратный стек, но иногда и локальный контекст в языках программирования.
По первому впечатлению нижний выглядит меньшим долбоебом чем верхний но оно может быть обманчивым скорее всего оба долбоебы одинаковые.
>>3126030 Нижний долбаёб говорит что эксепшены всегда привязаны к блокам кода и их можно ловить сразу после ретурна. Но это нихуя не так, в сишке эксепшены никак к языковым конструкциям не привязаны, а есть даже платформы с аппаратными эксепшенами.
>>3126187 >Нижний долбаёб говорит что эксепшены всегда привязаны к блокам кода и их можно ловить сразу после ретурна. Нижний вроде говорит что ретурн - это одно, а выход по эксепшену, это уже не ретурн. Сложно понять, о чем именно срач.
>>3126187 Нижний мудрый человек, во-первых не доебался что в Си нет эксепшенов, чем сразу бы срезал верхнего долбоеба.
Во-вторых, грамотно пояснил, что эксепшены выходят за семантику ретурнов, и они нихуя не ретурны. Происходит что-то вроде аварийного останова, который потом хендлится путём вызова обработчика исключения.
>>3126286 Опять таки может они спорят про эльбрус в котором нельзя просто так прыгнуть куда то там в обработчик, так как там адреса возвратов в отдельном аппаратном стеке и они автоматически добавляются/выбиваются по мере углубления/возврата. Поэтому даже на какой то конференции рассказывали что отматывают стек до обработчика именно возвратами.
>>3126303 Я смотрел этот конкретный спор, но он начался где-то раньше в твиттерах или типа того. На самих "дебатах" они просто начали сразу кидаться говном друг в друга (особенно волосатый товарищ) - и это была просто схватка двух бабуинов за доминирование, а не спор. В чём был изначальный предмет спора вообще нихуя не понятно из видео.
>>3126261 Есть функционал для работы с ними. А иначе как работать с платформами, где есть аппаратные эксепшены. >>3126286 > в Си нет эксепшенов А SEH что тогда?
>>3126363 > майкрософтовская хуета В пердоликсе точно так же аппаратные эксепшены ловятся, просто они строго в ядре и в юзерспейс вместо SEH кидаются сигналы. > Покажешь стандарт Си с эксепшенами? А сам не можешь посмотреть в стандарт? Или загляни в fenv.h, например, увидишь там функцию для кидания эксепшена - feraiseexcept. В сишке просто нет специального синтаксиса для них, но эксепшены всегда были там.
>>3126380 >А сам не можешь посмотреть в стандарт? Зачем? Я знаю что эксепшенов там нет. Ты говоришь что есть, значит можешь найти стандарт и показать где они там.
>>3126418 Это ты тупостью траллишь. try точно так же оставляет флаги, которые чекаются в catch. В стандарте это всё называется эксепшенами - что в сишке, что в крестах.
>>3126442 Какое отношение try имеет к эксепшенам? Это детали реализации как их кидают и ловят. В питоне вот нет catch, что это меняет? Ты уже реально на траллинг перешёл.
>>3126497 Съебите в lit, господин гуманитарий и там с единомышленниками хоть всю википедию исчертите на тему упоминаний эксепшенов в документации к си, или жизни на луне.
>>3126645 Философ в программировании по определению шарлатан, ибо философия о людях, а не о технике. В программировании могут быть парадигмы, это не философия. Тут шарлатаны используют слово "философия" чтобы придать веса своей брехне.
Знает ли кто-нибудь как заставить приложение использовать тёмное оформление из aero.msstyles без зашивания в код значений цветов? Чисто винапи, без сторонних библиотек, uwp и кастомной отрисовки через GDI и пр.
>>3126945 В NeXT c Objective-С тоже так было И в Амиге так было, вообще все родные американские операционные системы (за исключением unix world) пилили свое подмножество системного языка, свои скриптовые языки, свой неPOSIX итд. Майкрософт чуть ли не самая последняя компания которая пошла по этому пути, но уже в отличии от других гейтс добавил к этому агрессивный маркетинг воспитывающий мысль что MSVC = Си, Windows = Стандартная ОС на компьютерах.
Сейчас майкрософту времена режима билла отвратного тяжело аукаются, они хотят раст, хотят джаваскрипт в качестве интерфейсного скрипта, но удаленность винды от позикс вынуждает майкрософт самой все это добавлять а потом еще поддерживать как старое говно. А винда давно уже столько не приносит, битва за серверы пройграна, за суперы даже никто не пытался воевать, остались только офисы которые с радостью бы сидели до сих пор на виноус хр/7 если бы их не заставляли обновится.
Единственное спасение для винды - убрать все досовское наследие и сделать как эпл юниксовый юзерспейс с позикс совместимостью. Полумеры и перетягивание одеяла на себя которые предпринимает мс как не приносили эффекта так и не принесут его в будущем.
>>3127081 Двачую адеквата. > CMake гавнооо рРЯЯЯЯЯЯЯЯЯЯ Ни одного аргумента почему. Утята не могут объяснить в чем их неприязнь. > УДАЧИ ХЕЛЛОУВОРЛДЫ СОБИРАТЬ УИИИИИ ХРЮЮЮ Firefox CMake-ом собирается кст.
>>3127088 Что значит не нужно? Такая система команд проще, чем писать эти душные макефайлы, в которых чёрт ногу сломит. Мало того их надо каждый раз дописывать, если в проект добавляются новые файлы. Если у тебя 100500 файлов и 100500 файлов заголовков, то сиди и прописывай ручками 201000 строк в макефайл. Интересно, какова вероятность ошибки при этом?
>>3127090 Какие крестовые ИДЕ вообще существуют? Вижла - только под винду, платная, тяжёловесная, тормозящая, с зондами от микрософт Клион - платная, тормозящая, жрущая озу как не в себя КуТэ Криейтор - условно-бесплатная, кривой интерфейс из 90-х, ноль кастомизации, сборщик свой QMake, а не CMake Коде::блок - устаревшая, надо вручную всё донастраивать, постоянно что-то отваливается, не работает как надо
В итоге, лучше писать код в текстовых редакторах с подсветкой синтаксиса и собирать в консольке.
>>3127059 аутизм + ретроградство ты даже если прямо сейчас напишешь ИДЕАЛЬНУЮ сборку, то вся индустрия будет еще лет 15 сидеть на симейке а тебя говном поливать
>>3127100 Visual Studio и RAD Studio. CLion жирная и пердопараша, но если это не проблема, то думаю можно пользоваться, судя по WebStorm и PyCharm от той же конторы которые лично немного юзал, действительно работает. >КуТэ Криейтор Куте это говно-язык сам в себе, не С++, так что нахуй. >Коде::блок Убогий блокнот не ИДЕ, с таким же успехом можно вим дрочить.
>>3127059 Потому что никто не осилил. Слишком сложно. Только в плюсах есть 100500 компиляторов, линкеров, менеджеров зависимостей, исторических систем сборок и уже написанных либ, которые всё это говно используют. Никакого стандарта нет (только стандарт самого языка). Те же header-only либы появились не от хорошей жизни. Похожая картина в JS, но там всё это написано не по необходимости, а потому что так хочется макакам.
>>3127059 Потому что такое может себе позволить только раст, хаскел и прочий ноджс, так как: 1. они все нужные для работы библиотеки собирают и таскают с собой, тогда как си и плюсы часто линкуются с какими то сторонними библиотеками, зачастую даже закрытыми-проприетарными. 2. на их поле нет других систем сборок и альтернативных репозиториев. У си и плюсов нет репозиториев а систем сборки более одной и за каждую топит отдельная группа пользователей.
Упомянутый выше cmake это вообще не система сборки, это конфигуратор сборки проекта. Этакий препроцессор для GNU Make на своем языке. Помимо GNU Make есть еще Ninja Build который предпочтительнее для крупных проектов, так как make - тормоз.
>>3127109 Симейк может запустить скрипт на пистоне, собрать инкскейпом битмап из векторов, или даже ttf шрифт с монохромными иконками. Причем при пересборке проекта это все пересобирать не нужно, так как симейк это не система сборки, это конфигуратор проекта, и он идеально сочетается с git репозиториями.
Карго же представляет из себя npm-подобие что на мой взгляд огромный просчет разработчиков этой системы.
Как человек пришедший в плюсы из мира джаваскриптов ответственно заявляю что npm-подобные репозитории это устаревший архаизм времен распространенности svn и роста популярности таких вещей как Packagist из php. Там неудобно размещать и обновлять свои пакеты, из за этого версии там постоянно отстают от гитхабовских.
Там постоянная проблема с версиями и совместимостью, через год уже ничего толком собрать невозможно. Гит лешен всех этих проблем, там можно форкнуть себе конкретный комит конкретного бранча, форка оригинального проекта и включить в свой проект. Гит репозиторий может размещаться на локальном компьютере, корпоративном хабе или еще где то, абсолютно похуюгде. По словам Торвальдса они и пытались победить проблемы контроля версий с чем успешно справились, но люди которые пишут менеджеры пакетов продолжают думать в более простой парадигме svn и поэтому адок продолжается.
>>3127331 Это наверное на уровне заводов или даже хуже. Половину времени будешь ебаться с багами этого куска говна, вторую половину будешь ебаться чтоб qt не тормозило на планшете за 10к дерева.
>>3127100 Вижуал студия бесплатная для домашнего использования, и она в разы пизже чем все остальное, вместе взятое. Для работы - контора мне лицуху купила без проблем.
Если у тебя проблемы, что она ТЯЖЕЛОВЕСНАЯ И ТОРМОЗНАЯ - то ты студент с 2мя гигами и 2мя ядрами ноутпуком для учебы, и твое мнение не учитывается. Можешь хоть в фар менеджере свои хелловорлды шлепать, только не надо писать свое охуенное мнение где-либо
>>3127827 >Если у тебя проблемы, что она ТЯЖЕЛОВЕСНАЯ И ТОРМОЗНАЯ - то ты студент с 2мя гигами и 2мя ядрами ноутпуком для учебы Блять, 64 битную версию последнюю поставил, уже проц обновил, оперативку побыстрее разогнал, м2 ссд купил А go to file все еще ТОРМОЗИТ, я начинаю вводить название файла, а он только через секунду появляется
Ну вот что еще мне сделать можно?
ui кстати кал говна, поскорей бы майки научились в него
>>3127929 У меня не тормозит. Вообще. Приукрашиваю. Если дотнет проект собирается, то относительно долго. Можно успеть прочитать твойо ответ, возразить не успею. При этом собирается достаточно проект большой - нечто уровня "энтерпрайз" (как там оно в корпоративной среде назыввется?).
А ежели С++ проект, то в этом режиме Вижуал Студия работает как интепретатор. Нажал F5 и оно тут же в режиме отладки стартануло. Если не трогал заголовочных файлов, то проект компилируется в миг.
> А go to file все еще ТОРМОЗИТ Чую это у тебя не Visual Studio тормозит, а MS Windows. По какой причине - не знаю. У меня так на старом железе было. Допускаю что занёс какую-то заразу. Новое железо с новой лицензионной ОС - ничего не тормозит. Впрочем, "новое" железо не товое и новое, гарантийный срок прошёл давным давно.
>>3128950 Не смог привыкнуть к интерфейсу. Список открытых файлов, а не вкладки как везде. Нет функции автосохранения файлов, надо жать ctrl+S как 20 лет назад. Нет интегрированной консоли. Работа с гит тоже прикручена для галочки, пользоваться неудобно.
>>3128953 Только под винду, тормозная, устаревший монструозный интерфейс.
>>3128995 Автосейв кода чаще раза в минуту очень важун для программиста да, иначе твои пару строк хэлоуворда пропадут. Особенно на фоне утверждения о том что автосейва и терминала нету
>>3129062 Вс код скачиваешь просто и работает, а клион надо на торрентах искать версию и активировать по всяким мутным схемам. Вс код занимает со старта 200 Мбайт, с открытым проектов где-то 500Мбайт, а продукция жидбрейнс сразу отжирает 3-4гига. Не на все компах есть столько ОЗУ. Также клион грузит процессор перманентно, постоянно что-то там делает. Такое ощущение, что там майнер встроен.
>>3129379 > надо на торрентах искать версию Зачем? Качай просто с сайта джетмозга. > активировать по всяким мутным схемам Просто спизди у китайцев ключ. Или поставь сервер лицензирования, он на всех их IDE сразу будет работать. > с открытым проектов где-то 500Мбайт, а продукция жидбрейнс сразу отжирает 3-4гига Вот не пизди. Пикрилейтед один и тот же проект открыт, что за 10 процессов электрона висит одному хрому известно. Он ещё и врам жрёт больше чем полноценный хром. > постоянно что-то там делает Потому что это IDE, а не текстовый редактор. Сейчас там даже построчный автокомплит встроенной мелкой нейросеткой есть. По подсветке синтаксиса Нова ебёт всё остальное, clangd и интелисенс даже рядом не валялись, это по сути правильный решарпер, а не как в студии костылями пришитый. Я как попутно питонист-млщик вообще никогда с чарма не слезу уже, слишком уж большой отрыв по функционалу от всего остального, в крестах ещё можно подумать чтоб на студии сидеть, но обоссаный интелисенс уже бесит.
>>3129412 По силиону по большей части согласен. Опять же качается с офф сайта и активируется фри ключем. Нова, когда крайний раз пробовал, не корректо отображала тред локал и атомики, в отличии от клангд.
>>3129978 Это не вопрос,а желание сбайтить кого нибудь на написание скрипта вместо тебя.
возьми какой нибудь проект (например ggml) скопируй оттуда симейкфайл к себе в проект, поправь то что нужно, убери то что не нужно, , пробуй собрать. Лезут ошибки - гугли, смотри в документации как и что.
>>3129988 >>3129988 >Это не вопрос,а желание сбайтить кого нибудь на написание скрипта вместо тебя. Мне это в хуй не упало, я сам хочу такую залупу писать. Просто хочу понять с чего начать >возьми какой нибудь проект (например ggml) скопируй оттуда симейкфайл к себе в проект, поправь то что нужно, убери то что не нужно, , пробуй собрать.
>>3129594 > в отличии от клангд clangd как минимум на майковской STL отрыгивает которая на шланге без проблем собирается даже под линукс и в модули плохо умеет. У Новы нет проблем ни с чем из этого.
>>3130190 >ненужной модульности Она нужна, просто MSVC говно ебаное. >нн..ноо... стандарты быстрее реализуются кому не похуй, а? Самое в таких вещах главное это стабильность. GCC, в отличие от ненужного проприетарного кала которым только виндузятни пользуются(ака MSVC) компилирует реальные вещи на которых весь современный мир работает, например ядро пердоликса.
В Clang С++17 работает, в GCC C++20 реализован, чем хороши эти два компилятора у них уже оч давно стабильный ABI(уже 15 лет как один и тот же Itanium ABI).
Тем временем MSVC обоссаный не может даже стандартизировать свои интрисиксы, в то время как в Itanium компиляторах все лаконично и понятно, есть приставка __builtin
>>3130208 > В Clang С++17 работает, в GCC C++20 реализован, чем хороши эти два компилятора у них уже оч давно стабильный ABI(уже 15 лет как один и тот же Itanium ABI). > тем временем шел уже 2024 год
>>3130208 Вот пример. >_BitScanReverse(result_ptr, mask) И что это за говно? Вот нахуя здесь указатель блять? Нахуй мне указатель для ебаного числа? >result = __builtin_clz(mask) Я реально не знаю как можно проще и понятнее написать. Разработчики GCC продумали всю эту хуйню на годы вперед и оно работает пизже и стабильнее.
Тем временем аж до 2015(!) у MSVC не было стабильного ABI, из версии в версию совместимость херилась
>>3130209 любитель словить сегфолт, ты? Никогда ничего не писал кроме хелловорлда? Написал std::println("Hello World"); как в новой книжечке и радуешься жизни, да?
Что такого в C++23 что тебе ЖИЗНЕННО необходимо прям сейчас и похуй на баги?
Ах да, GCC и <stack_trace> реализует, которого до сих пор у мелкомягких фанатиков ИТТ до сих пор нет. С++23 же, че они так?
>>3130208 > чем хороши эти два компилятора у них уже оч давно стабильный ABI При этом в шланге С++20 такой забагованный, что они некоторые фичи просто выпилили, например корутины. Ахуеть стабильность. Сразу видно лучше майков.
>>3130247 > простую и удобную систему сборки как у шарпа Проиграл. Ты видимо никогда не сталкивался со сборкой огромных фреймворков, там если что-то с зависимостями происходит, то ты просто нахуй идёшь, даже руками это говно не накостылить. И про удобство XML ты явно троллишь, потому что в дотнете всё в XML, даже Аллах на XML написан.
>>3130230 Ну кланг это же корпопотивная параша на подсосе гкгла и эпла. Не стоит ожидать. Кланг нужен для клангд и флрмата. ну и каксть ллвм для друших говноязыков. Как компилятор си спп есть гцц
Технический собес уже завтра вечером на позицию джуна Меня трясет просто ужас, хотя уже весь интернет перерыл с самыми распространенными вопросами по плюсам
>>3130577 Как бороться с ромбовидным наследованием. В каком порядке вызываются конструкторы и деструкторы при наследовании. Чем map отличается от unordered_map. List от vector, array, span. Ну и дебильные вещи, которые я надеюсь тебя не спросят: Сколько памяти занимает пустая структура? А если отнаследована? А если у родителя есть виртуальные методы? Почему make_shared предпочтительнее, чем shared<T>{new T} Как вызвать ошибку pure_virtual_call
>>3130247 >почему для крестов нельзя создать такую же простую и удобную систему сборки как у шарпа? А с чем сравниваешь? Какая именно система сборки для крестов тебе не понравилась?
>>3131316 Обычно за него по рукам ещё на этапе архитекторного планирования пиздят. Этот вопрос чисто узнать, знает ли человек про виртуальное наследование или нет. И если знает, то как оно устроено и какие подводные камни. Но такое спрашивать - чисто самоутверждение.
>>3130657 > Как бороться с ромбовидным наследованием. Чето про виртуальное наследование. Не помню, ниразу в коде этого не видел за 11 лет, что я программист.
> В каком порядке вызываются конструкторы и деструкторы при наследовании. Не помню, вроде база -> наследный создание, наследный -> база разрушение. Опять же похуй, если честно.
> Чем map отличается от unordered_map. Алгоритмическими сложностями операций.
> List от vector, array, span. Тоже самое
> Сколько памяти занимает пустая структура? По моему 1 байт, т.к. нельзя 0. Но там какая-то хуйня в стандарте есть с no_unique_address, тогда может и ноль в определенных кейсах.
> А если отнаследована? sizeof(void)
> А если у родителя есть виртуальные методы? Тоже sizeof(void) ? Или там 2 указателя? Хотя какая разница.
> Почему make_shared предпочтительнее, чем shared<T>{new T} Хуйня аллоцируется рядом вроде. Но там какая-то чушь что с С++хуйзнаеткакого это уже вроде не работает, хз.
> Как вызвать ошибку pure_virtual_call в душе ниибу
Я с кути дел давно не имел, но вот взялся собрать проект с опциональным гуи. Собралось норм но при запуске крашится где то до входа в мейн что то типа qinitresouce... нагкглить толком не вышло. Что еще интереснее, ломает сам факт линковки с кутивиджетс. Ни нклюдов ни вызова. с кутикоре и гуи проблем нет Сталкивался кто с такой дичью?
>>3133140 Разумеется на ровноме месте в кути пробелм нет, хотя я им и не пользуюсь на постоянной основе, но пару проектов старых собрались пошли легко, проблема с конекретным проектом. Повторюсь, никаких вызовов кутишного в сборке нет. Ломает сам факт линковки с кутивиджетс. Но вообще делал я это из праздного любопытства, это не моя работа и не моя проблема. подозреваю что то не так с прагма вик
>>3130657 >В каком порядке вызываются конструкторы и деструкторы при наследовании. В таком в котором подразумевает парадигма ООП, скомпилируй с -O0 и посмотри >Чем map отличается от unordered_map. Тем что не гарантирует упорядоченность данных при перечислении. >Сколько памяти занимает пустая структура? Нисколько >А если отнаследована? Столько сколько унаследованная. >А если у родителя есть виртуальные методы? Размеры указателей.
Поясните, я гуглил, но не понял до конца. Указатели на методы класса/функции нужны потому что иногда нужно указывать на методы в скомпилированном бинарнике?
>>3133418 Нет, их используют, когда у тебя одна функция зависит от другой, причём заранее неизвестной. Может, эти функции в разных либах, а может, есть сложное условие выбора нужной функции из десятка возможных. И в таких случаях просто передают указатель на нужную функцию в качестве аргумента. Это было особенно актуально в сишке, но в плюсах есть другие способы косвенной передачи управления, например, через виртуальные методы. Но ты вряд ли до них дошёл.
>>3133482 Я вообще пересаживаюсь с питона и матлаба, в том же питоне нет указателей и он с памятью не работает вообще никак. Там внутри одной функции можно сразу вызывать функцию.
>>3133506 В питоне вместо указателей используются ссылки ровно с той же целью. Вместо указателя на функцию тупо передаётся ссылка на функцию. > он с памятью не работает вообще никак В модуле ctypes это есть, там тебе и указатели, и утечки памяти, и UB, и сегфолты.
>>3133512>>3133506 Ссылка и указатель разные вещи - ссылка указывает на стекпоинтер в конкретной процедуре которая запущена; указатель указывает на адреса функций или данных в памяти.
Все функции во время запуска приобретают адреса (указатели) Если функция имеет внутри статичные переменные либо как в плюсах обращается к данным в private секции, то передача адреса функции например библиотечной функции не будет иметь доступа к static переменным внутри функции (это в Си) или private части (в плюсах), так как они находятся на стеке и не доступны никому извне, поэтому в таких случаях вместо адреса функции (то есть просто имени в коде) нужно передать ссылку: SetCallback( &my_callback_fn_with_statics, arg1, arg2); QtConcurrent::run(this, &MyClass::method, arg1, arg2);
Что бы библиотека дергала не просто какую то функцию из памяти которая будет работать в своем контексте, а возвращалась сюда же в этот контекст. Разумеется лучше таким не злоупотреблять.
Что касается ссылок в питонах и пхп то там они могут означать все что угодно, ведь там как правило эмулируется стек некой стековой машины (виртуальной машины) и реализован контекст может быть как угодно.
>>3133595 > ссылка указывает на стекпоинтер Чел. Ты даже не неправ. > указатель указывает на адреса функций или данных в памяти. Вот тут норм. > Все функции во время запуска приобретают адреса (указатели) Школьник своими словами об auto.
>>3133605 Какую то хуйню вообще написал. Сдается мне ты пытаешься понимать адреса, ссылки и указатели (внезапно все трое абсолютно разные ипостаси одного и того же) с точки зрения языковой абстракции, тем более такой высокоуровневой как плюсы (кто бы что не говорил). Забудь об этом, это все сугубо низкоуровневая поебень из области ос+железо.
>>3133664 >>3133665 вот и нахуй они тогда нужны если не заменяют однобитный флаг. в чем сложность добавить в стандарт добавить булку как отдельный тип, что бы не заниматся написанием вот этих flags |= 0x1, flags &= ~0x4
Все пашет как и представлялось. В который разубеждаюсь что диды еще сто лет назад все предусмотрели.
не уверен нужен ли тут юнион мне кажется что без выравнивания компилятор будет каждый бит пихать в регистр и сравнивать с единичкой, а не байт с байтом по битовой маске. Надо будет проверить.
>>3133780 Смысл в том что бы как раз не использовать битовые операции проверяя значение в конкретном бите, пусть этим занимается компилятор. И пусть flags не сбивает с толку он не будет использоватся по факту. А если ты подразумеваешь что флаги могут залезть на второй байт, то нет, такого не может произойти.
>>3133817 ну во первых юнион по идее не позволит, в нем данные располагаются строго определенным образом. А во вторых мне то как раз все равно где он их захочет расположить, поэтому юнион убрал нахуй.
>>3134351 Будет уб, если у тебя динамическая библиотека сделана одним компилятором, и программа, которая ее использует - другим, и там в интерфейсе битфилды. Если ты не вылезаешь за пределы своей экосистемы то канеш пофиг.
>>3134606 компилятор генерирует машинный код, который либо будет исправно работать на целевой машине либо не будет. И абсолютно поебать что ты там другими компиляторами накомпилируешь, они точно так же либо рабочий код выдадут либо не рабочий.
>>3133684 на сегодня вроде бы осталось одно практическое применение объединений - а именно когда требуется получить побайтовый доступ к примитивным типам
>>3135009 >а именно когда требуется получить побайтовый доступ к примитивным типам а именно когда требуется получить побайтовый доступ к внутреннему содержимому примитивного типа
>>3134682 >они точно так же либо рабочий код выдадут либо не рабочий. Это равнозначно тому, что у крестов есть стандартный ABI для каждой системы, которого придерживаются все компиляторы. Что не так. Следовательно ты пиздобол. Opinion discarded.
>>3135013 >вроде бы осталось одно практическое применение объединений - а именно когда требуется получить побайтовый доступ к примитивным типам
Ты трактуешь юнионы как какую то объектную плюшку языка, что нормально для программиста на ооп плюсах. Но люди которые придумывали Си они создавали чуть более высокоуровневый ассемблер а не язычек с плюшками-хуйнюшками. Если ты будешь в си делать побитовые операции например над флоатом, то компилятор сделает преобразование в инт, битовую операцию, и преобразование во флоат во флоат. При этом на ассемблере ты можешь просто скопировать вещественное число на целочисленный или какой нибудь общий регистр и просто вызвать команду (например and чтоб знак убрать).
Второй пример - если ты будешь знаковый инт шифтить вправо то, он подставит арифметический сдвиг с учетом знака, а не простой.
Что бы всего этого не происходило тебе надо выразить в коде что переменную следует воспринимать как union uni_t { floar f; int i; unsigned u; }; union uni_t a, b;
в ассемблере а и б будут простые числовые переменные, которые будут загружатся из памяти в целочисленные регистры и после битовых операций копироваться в вещественные и сравниваться вещественным сравнением. Без вызова команды преобразования которая нам все испортит.
>>3135240 ля, челик у тебя нет другого способа получить побайтовый доступ к содержимому примитивных типо, только через объединение вот и все зачем еще что то выдумывать сверху
>>3135375 указателем можно. В принципе и флоат можно указателем переинтерпритировать в целочисленный, просто указатель тебя наебет с порядком байт, а в юнионе байты будут слева направо для программиста, а для машины согласно ее порядку.
>>3135961 > синий экран В винде такого не может быть из юзерспейса. Винда кинет SEH эксепшен да-да, в сишке не существует эксепшенов о некорректном доступе к памяти, если его поймаешь процесс даже не крашнется. Если у тебя случается BSOD, то это всегда в ядре что-то отъёбывает, в теории оно и из-за твоих действий в юзерспейсе может отъебнуть, например если кернелспейс драйвер хранит какие-то данные в юзерспейсе и крашится при их повреждении, но это тогда вопросы к криворуким драйверописакам.
>>3136007 Исключения (эксепшены) это то что обычно указывает на место спровоцировавшее либо выбросившее его, включая весь стек вызовов. Аварийный останов или что там операционная система делает это не исключения.
>>3136057 Чел, прекращай бредить. Никакого останова не происходит там, в винде именно системные эксепшены кидаются ядром при некорректном обращении к памяти. Процесс крашится с Access Violation только если такой эксепшен не обработан. https://learn.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-exception_record > If the process is not being debugged, or if the associated debugger does not handle the exception, the system attempts to locate a frame-based exception handler by searching the stack frames of the thread in which the exception occurred. The system searches the current stack frame first, then proceeds backward through preceding stack frames.
>>3136069 >ns-winnt-exception_record Ну так это системная хрень причем здесь си? Но интересно, теперь критиков эльбруса можно макать ебалом в винду где обработка исключений тоже через ядро реализована. Хотя кстати они возможно и делали ее для итаниума тоже.
>>3136228 > причем здесь си? А причём он тут, в самом деле? Зачем ты вообще про него вспомнил? >>3136230 Ты никогда не видел как софтовые дебаггеры делают? обычный аппаратный дебаг палится слишком просто Например в том же Cheat Engine. Там просто ставят на участок памяти запрет на обращение к ней и при первом же обращении летит EXCEPTION_ACCESS_VIOLATION. Точно так же можно любые сегфолты ловить. Минусы естественно есть - оно пиздец медленное, один раз можешь такое сделать, но тысячи эксепшенов в секунду уже будут тормозить дико.
>>3136738 Рисовал школьник. NULL TERMINATOR Звучит конечно угрожающе но на деле это всего лишь нулевой символ который разрывает строку и раскидывает ее кишки по округе то есть обозначает ее окончание. И актуально это только для сишки, в плюсах и работа со строками на уровне скриптовых языков и nullptr_t из коробки есть.
>>3136277 k&r читаешь два раза от корки до корки, приложение А в книге читаешь столько раз пока не снизойдет озарение, обязательно выполняешь все упражнения после этого можешь приступать к изучению с++
Cап, программисты. Суть такова, я совсем нихуя не шарю, но пытаюсь написать расширение для существующей программы. Есть исходный код программы, он собирается и работает. Расширение должно использовать код из этих исходников, так что я беру добавляю специально заготовленный файл заголовков, PluginAPI.h. И пытаюсь дёргать функции, которые определены в исходной программе. Получаю ошибку "ссылка на неразрешённый внешний символ", которые собственно и указывают при этом на функции из исходной программы. В ссылки я добавил зависимости от этой программы, студия не ругается, не подчёркивает ничего красным. Но при компиляции получаю ошибки. Попытался это исправить через "добавить существующий файл" и закидывать в проект файлы с этими функциями. Естественно, это не работает, т.к один файл тащит за собой другой и ошибок вместо шести становится сорок. Теперь вопрос. Мне что, перетащить в код плагина всю исходную программу? Или это фиксится менее ебанутым способом?
>>3137604 Это не для винды это кросплатформенный тулкит. >>3102519 Сдается мне ты делаешь что то неправильно. то что WxWidgets поддерживает utf-8 не значит что его в код на плюсах можно пихать. Ну то есть пихнуть то можно, но любая русская буква будет как два символа вместо одного. Тебе нужно делать как предлагает тулкит, то есть в какой то языковой фаил писать строки на кириллице и какому шаблону они соответствуют.
Здраститя. Я тут это, ну это... Хочу понять, как переводить число в двоичное или поразрядно обращаться максимально быстро.
Думал, в низкоуровневых крестах есть какая-то встроенная библиотека для этого, но поиск в инете выводит на разного уровня костыли типо пикрила - то раздели, это раздели, дополнительную память выдели.
Нахуя это все, если число по умолчанию в компе хранится в двоичном виде. Ну ок, к битам обращение дольше чем к байтам, но неужели дольше чем вот таким говнокодом переводить десятичное в двоичное. Или всю двоичную дрочь люди оставляют в инстиутах, а на работке она редка, и потому забивать хуй на производительность нормально но кресты же про производительность.
>>3137917 Какие десятичные в какие двоичные? >Думал, в низкоуровневых крестах Не правильно думал: 1) кресты высокоуровневый ООП язык. 2) в низкоуровневых языках никогда ничего нет, на то они и низкоуровневые.
>>3137925 >Какие десятичные в какие двоичные? Вводит пользователь для своего удобства десятичное число. Программист обращается к нему типа number или func(number, i), чтобы получать bool значение двоичного разряда, и чтобы летало нахуй. >кресты высокоуровневый ООП язык Самый низкоуровневый из высокоуровневых.
>>3138018 Натуральное десятичное число можно представить как сумму 2 в натуральной степени 0, 1, 2... То есть суммой 1, 2, 4, 8..., где слагаемое либо входит (1), либо не входит (0). Здесь цикл остатком деления проставляет коэффициенты существования или нет этих слагаемых (0 или 1) по возрастанию.
Например, массив 0101 значит 01 + 12 + 04 + 18 = 10 в десятичной
Есть какие-нибудь книжки статьи гайды туториалы по многопотоку в приложениях с гуем? Ну не могу я заблокировать поток чтобы дождаться, пришло что-то с другого потока или нет. Не проверять же мне это каждый кадр.
>>3138244 Ну так представить можно и бабу у себя в кровати, только по факту то все числа на машине являются двоичным кодом его не нужно ни конвертировать ни декодировать. Команды сравнения или побитовые операции есть чуть ли не в каждом языке. Я не понимаю что к этому еще можно добавить. >>3138259 В приложениях с гуем обычно используется асинхронное многопоточное программирование
>>3138268 > асинхронное многопоточное программирование Как мне его на коленке реализовать то? Я приложения с гуем только на котлине писал, но там всё за меня уже реализовано.
>>3138298 про битовые операции слышали даже бабки у подъезда твоей мамаши, когда твой батя к ней цикличные сдвиги делать ходил. А вот про юнионы знают не все.
>>3138707 добавлю в юнион шорты и чары добавлю лонг и всего подва раза если прям вот пиздец никак без 64битных чисел
Если у тебя вопрос только к трудоемкости написания, то замечу что битовые операции тебе никак жизнь не облегчат а только усложнят. Если ты хоть где то на бит наебался или перепутал тип у тебя вся программа идет по пизде и ты не знаешь где твой косяк. Здесь такого не произойдет потому что телебоньканье битами берет на себя компилятор. Более того он может и векторные подставить, тогда как ты будешь по одному байту на регистр ложить и шифтами туда-сюда дрочить еще возможно и не правильно.
Начал изучать с++ в 23. Просто по приколу, т.к. юольшую часть времени сижу за компом, дота надоела, а бассейн и качалка не занимает много времени. Я же смогу шабашить по 20 минут в день и зарабатывать по 1к долларов в месяц?
>>3140388 >Я же смогу шабашить по 20 минут в день и зарабатывать по 1к долларов в месяц? 10k часов и может быть начнешь что-то зарабатывать а может не повезет и не начнешь мне не повезло
Пытаюсь собрать окамл и с в один бинарник. Но почему то когда я добавляю файл bindings.o который был получен компиляцией исходника ocaml, вся сборка начинается выжирать 100Гигов оперативки (и больше). Как так получается, что попытка добавить один объектный файл приводит к такому результату?
>>3140980 Почему? Я решил, что это базовый язык, пускай просто для понимания как работает комп буду учить. А насчёт фриланса, так разве в нём не должно быть меньше конкуренции?
>>3141734 Работа во фрилансе больше похожа на 1с бухгалтерию, знать как работает компьютер не нужно, и даже вредно, совсем другая работа и другой менталитет требуется.
>>3141734 >для понимания как работает комп Кресты относительно высокоуровневый язык, но даже знание ассемблера тебе не даст понимания работы современного компьютера. Читай Таненбаума для начала.
Как же хочется нормальный, компилируемый в машинный код, язык. В крестах вроде язык норм, но всё вокруг языка днище ебаное. У раста архитектура въёбана напрочь с мусорным синтаксисом и кучей заразных абстракций, страдаем как в крестах, но безопасно. Зиг пилят пердоли для пердолей по всем канонам пердолестроения, язык-троллинг. Где нормальный стул, без хуёв и пик?
>>3142867 В идеальном случае не делает ничего, просто свапается указатель на внутреннюю кучу пежду двумя объектами, в осбых случаях подставляются сгененрированные функции вроде ::move_allocator<Т> там их несколько штук, вроде для массивов специальный предусмотрен и еще для каких то
>>3142908 в чем он не прав тут надо просто отличить ид от другой валидной конструкции языка. невалидная и без тебя не сконпелировается только не говори что принялся бы тут полноценный парсер qualified-id пердолить
>>3143464 Не понял в чем проблема. Вообще как я понял из доков обе функции определяют является ли символ буквой алфавита или номером в таблице символов. В таблице символов которая задается сетлокалом, понятное дело такое при компиляции не вычисляется.
Надо использовать какую то функцию для валидации хэшайди ну или тупо написать if (!(str >= '0') || !(str <= ':') || !(str >= 'A') || !(str <= 'z') || !(...))
так даже лучше будет для бранчпредиктора и для оптимизаций.
>>3144129 Проблема в том что все либы написаны на полном зоопарке стандартов от сишки до С++17, стиль кода везде разный, системы сборки разные, API такое разное что часто надо писать обёртки на обёртки сишных либ, кроссплатформенность везде номинальная, часто у либ ебанутые зависимости типа буста или гну-пердолиб. В итоге ты знаешь что хочешь написать, ты знаешь как написать, но сидишь и ебёшься со всем этим говном вместо написания кода. Ну или сам пишешь велосипед на чистом std, теряя кучу времени на бойлерплейт, хотя в большинстве языков этот велосипед уже в std или в std-подобных либах. Мне иногда хочется взять написать простенькую утилитку на крестах в пару сотен строк, но потыкавшись в либы и оценив перспективы ебли с ними я просто иду и пишу тормозной говнокод на питоне за 15 минут или на шарпе, если надо немного производительности.
>>3144442 >Проблема в том Проблема в том >я просто иду и пишу тормозной говнокод на питоне что в ситреде питоноговно серет. Настряпало свой питоно говнокод за 15 минут, а остальные 24 часа серет с ситреде.
Сап анончики, мучает один вопрос. Большая часть плюсовых вакансий это эмбедед дрочь разного вида. В моем стереотипном представлении встроенная разработка это сложная и унылая хуйня для задротов, воняющая заводом и совком. Насколько это правда?
>>3145463 Ну вообще нет. Хорошие вакансии есть и не эмбед. Да и эмбед разный бывает - я в свое время с большим интересом писал лютую прошивку для многотерабитных роутеров. Но так же работал и с полной хуйней, типа микроконтроллеров - там рили скучная залупа, к программированию отношения имеющая немного.
Если ты ВКАТУН - твоя задача год-два поработать на любой работе, а потом идти в яндекс или кашпировский, и учиться нормальному С++
>>3145669 Хуй знает где там вообще в яндексе плюсы. На серваке у них джава наверняка, веб на жабаскрипте. Приложения - аналогично.
Может в нейросетке (которая нихуя найти не может) есть что то на плюсах но сама библиотека наверняка на си.
Вотчина плюсов это прикладное ПО и Игорь. А так же хайлоад и прочий HPC. Из нестандартного - ядра ОС и эмбедщина. В хуяндексы меилрушки за плюсами идти бессмысленно, надо идти в Unigine Gaijin или в госы на Qt под линукс писать.
>>3145712 Без понятия, но думаю если ты будешь активно контрибьютить в их движок (они его на хитжаб выложили) то тебя всяко разно оценят и возьмут. А так может и нет. >>3145709 Ну хуй его знает я слышал что им еще завалишин серверную часть писал, Хотя может как раз с переходом на нейросети переехали на плюсы.
Можно как-то нормально определить приватные методы в .cpp, а не в .h? Сам нашел какой-то способ через приватную структуру, но выглядит всё равно как какое-то уёбство
>>3146989 > STL Забавно, что эту часть стандартной библиотеки всё время обособляют, будто надо учить отдельно. Вот прям будут происходить челы, которые специально не учили STL, если в вакансии забыть его упомянуть.
>>3147440 > >STL не в библиотеке находится а в компиляторе > > STL в его плюсовом фронтенде > Ты сам то понял что сказал? Да он вообще пряник. Буилтины с плюсовой либой перепутал. я уже молчу что линковка стандартной либы по умо лчанию видна в флагах компилятора
двач, я долбоеб, что я не так делаю? пытаюсь в vs code поставить OpenCV, оно требует Cmake устанавливаю расширение, а оно не работает любая команда в консоли пишет, мол, нет такого
>>3147555 Я не про билтины а про то что в "стандартной библиотеке" в основном низкоуровневые функции для реализации ввода-вывода, выделения/освобождения памяти итд. Это важная библиотека без которой плюсы не смогут даже хеловорлд в консоль вывести, но это строго говоря не libboost и не фреймворк. Да с фронтендом компилятора я тоже слегка сиранул, но только потому что я имел в виду собственно темплейты и константные выражения (кто же знал что STL не про них вообще).
Как же бесят линуксоиды в крестах, у которых кроссплатформенность - это работает на любой гну-системе. Сейчас пытался найти нормальную либу для https клиента, так там везде в зависимостях OpenSSL. Нихуя с виндовой шинелью нет, при этом в расте/шарпе оно есть, в нескольких вариантах. Блядский OpenSSL весит 7 мб, мне что его таскать с собой ради пары запросов в рест-апи?
>>3147690 Ну давай на раст посмотрим. Сходу две либы нашёл: https://github.com/seanmonstar/reqwest https://github.com/http-rs/surf Обе умеют в нативный TLS без зависимостей, итоговые бинарники по 1.5 мб. Есть ещё несколько либ поменьше, но лень проверять. На шарпе в стандартной либе поддержка всего этого есть, при АОТ-компиляции в машинный код дотнета в зависимостях нет бинарник 5 мб, всё ещё меньше крестов, лол. > Может тебе еще интернет эксплорер поддерживать, wmf и директикс? Для начала бы перестать городить костыли вместо использования функционала ОС.
>>3147662 К сожалению таков с++ путь. Казалось бы, совсем не веб макаки а умные настоящие программисты, но на какие библиотеки и инструменты не посмотри то сплошное говно Вон, даже анончики готовы это защищать с пеной у рта
Вобщем самый простой способ это взять 7мб ОпенССЛ и не париться, с++ это тяп ляп либо всё делаешь сам
>>3147769 Да мы все поняли семен. Плюсы говно и библиотеки все говно и программы говно, иди лучше шарпи на пидарасте, в сто раз веселей и библиотеки не скучные.
Объективно, зачем в 2к24 вообще нужны плюсы, если есть раст? Что есть в расте, что есть в плюсах? Все. Что есть в плюсах, что есть в расте? Ничего. Раст - это весь функционал плюсов и еще тысяча мощнейших фич и оберток + разнообразных крейтов на любой вкус. А главное - если так хочется писать код уровня си без удобных растовских абстракций и библиотек, как на плюсах, пожалуйста, тебя никто не заставляет. Но зачем?
>>3149003 В крестах хоть нет боровчекера и unwrap. Уже это ставит кресты на голову выше пидораста. Единственный плюс раста - это либы в репозитории, ставящиеся без ебли. Хотя это тоже отчасти минус, потому что в любой либе ещё 50 либ зависимостей.
>>3147769 яп и инфраструктуре вокруг него скоро пол-века будет; в конце девяностых к примеру ты мог просто поставить с++ builder и у тебя сразу же был компилятор, отладчик, ide, с системой проектов и системой сборки, а более того проблема сторонних либ в том числе решалась и компонентами, которые ты тоже тупо устанавливал в ide и уже через пару секунд ты мог использовать этот компонент накидывая себе на форму приложения, либо используя именно как либу; более того все компоненты с дельфи ты мог использовать и в билдере а там их было сотни и тысячи и это всего лишь один пример в истории с++ а были и qt, и решения от майкрософт, и gtk... те это для тех нытиков-ньюфагов которые думают что у с++ не было комплексных решений "из коробки", они были и есть! но сегодня подход так называемого modern с++ в котором вам да, придется поебаться собирая свой паровозик из опенсорсных либ, причем используя или нет понравившиеся вам системы автоматизации сборки и пакетные менеджеры, причем на тех редакторах и отладчика которые вам нравятся; но за гибкость нужно платить
>>3149040 Вот кстати сразу видно кодера, а не залетного. Еще понятно когда либы зааисят от всяких злиб зстд фритайп де факто стандарт ... , но когда что то абстрактное пихают, особенно а как правило так и бывает это не дает никаких примуществ, это бесит.
>>3149025 Зачем нужны темплейты, когда есть трейты? >>3149040 Что плохого в unwrap? Ты в курсе что специально чтобы контрить борров чекер придуманы тысячи оберток на указатели на любой вкус?
>>3149188 В душе не ебу что такое траитсы >>3149040 >это либы в репозитории Вот это одна из главных ошибок в восприятии его инфраструктуры, там в репозитории не либы, а исходные тексты которые собираются в монолитный проект с межмодульной оптимизацией. Что само по себе конечно хорошо, но шаг вправо-влево - расстрел. Раст почему то физически не заточен на то что его библиотека будет поставляться в бинарном виде и к ней придется динамически линковаться, в нем проще прилинковаться с сишной/плюсовой библиотекой через прокладку чем со своей.
Его инфраструктура заточена на монолитные консольные программы, а сам язык заточен на динамические парсеры xml/html/css/svg/yaml и прочие деревья. Там нет указателей, ведь хранить указатель в постоянно меняющихся деревьях проблемно, там при любом обращении к списку осуществляется обход всегодерево, нельзя сохранить итератор с какой то позицией, потому что движок браузера может в любой момент может все либо часть данных переносить и у них поменяются указатели. Но как обычно какие то ушибленные фанаты перелезшие с js-фреймворков на теперь бегают с ним как с серебряной пулей.
>>3149188 > Что плохого в unwrap? То что это очередная текущая абстракция. Литералли каждый вызов функции требует от тебя обработать ошибки этой функции. Даже дефолтного поведения нет, только unwrap, вызывающий панику. Точно так же как голые указатели текут и перекладывают обязанность менеджмента памятью на высокоуровневый код, так же и в расте куча подобного говна, посылающего нахуй любую инкапсуляцию. > контрить борров чекер Боровчекер это очередная текущая абстракция, требующая выстраивать архитектуру высокоуровневого кода в зависимости от низкоуровневых реализаций. Если я хочу передать мутабельную ссылку, то меня обязывают сделать это особым способом. Особенно хуёво когда боровчекер триггерится при изменениях в существующем коде и надо менять все места использования этой переменной.
>>3149245 > В крестах хотя бы можно не использовать их И как ты собираешься мув семантику не использовать? Да даже вся стл это большая протекшая абстракция > В отличи от раста так не используй ни unwrap ни borrow checker, пиши как на сишке с классами
>>3149048 > в 90-е что то было, щас этого нет, вместо этого зоопарк компиляторов, систем сборок чтобы совладать с которыми приходится делать отдельные команды для сборки проекта спасибо за гибкость
>>3149247 > пиши как на сишке с классами Чел, ты точно раст видел? Если бы можно было написать fn unsafe main() { } и писать всё как на сишке, то никто бы и не жаловался на всё это говно.
>>3149280 Ну смотри, у меня к тебе простой вопрос: Как тебе бороу чекер мешает на расте писать как на си с классами? Если на него не отвечаешь, то считай что слит
>>3149282 > Как тебе бороу чекер мешает на расте писать как на си с классами? Передать один объект в разные функции? Передать по ссылке? Или ты предлагаешь всё указателями обмазывать? Тогда я делаю вывод что ты и сишку никогда не видел.
>>3149285 >Передать один объект в разные функции? Ну и вспомни как это в си с классами делается - правильно, через указатели А так как они стирают лайфтам до тебя борроу чекер не доебется Твой референс это буквально указатель с привязанным лайфтаймом
> Или ты предлагаешь всё указателями обмазывать? > сишку никогда не видел это шутка такая?
>>3149287 > правильно, через указатели Неправильно. Иди нахуй уже, хуесосина тупая. > это шутка такая? Это у тебя надо спросить нахуя ты предлагаешь передавать всё по указателям, выкидывая производительность нахуй.
>>3149298 >Что предлагаешь делать если у объекта из либы нет копи-трейта? То это не си с классами Ты когда в си пишешь a = a у тебя что бля происходит?
>>3149291 А есть какая то возможность посмотреть что в ассемблере делается? Оно алоцирует структуру как объект что ли или что, почему данные на стеке функцией то съедаются
>>3149311 > А есть какая то возможность посмотреть что в ассемблере делается? Конечно есть, у себя скомпиль и посмотри, хзы может аналоги godbolot есть
> почему данные на стеке функцией то съедаются Считай что тут структуру а мувнули в функцию b, а раст следит чтобы после мува ты не мог трогать эту переменную
>>3149313 Ты реально тупой или не понял что я тебе в сообщении написал?
>>3149320 > как писать на си с классами и использовать библиотеки которые не си с классами Никак, пишешь на си с классами, значит и используешь сишные или подобные либы
>>3149325 Т.е. писать на расте без раста? Заебись ты придумал, с учётом того что даже в std много чего не умеет копироваться. И это всё ещё не объясняет зачем мне раст с derive-костылями и оборачиванием объектов во всякое говно в попытках обойти боровчекер, если в крестах можно без этого.
>>3149336 > Т.е. писать на расте без раста? то есть писать на расте как си с классами, что как ты говорил невозможно, и борроу чекер нас убьет > зачем мне раст я ебу зачем тебе раст?
>>3149344 > то есть писать на расте как си с классами Ты так и не показал как это сделать без derive-костылей. А для передачи по указателю ты наверное Rc притащишь, да? Я уже молчу про типы. Все эти классические "2 плюс 2 равно пошёл нахуй" - прям как в сишке, да.
>>3149314 Раст нельзя просто взять и скомпилировать как си или плюсы, надо ставить rustup и настраивать проект. >Считай что тут структуру а мувнули в функцию b, а раст следит чтобы после мува ты не мог трогать эту переменную Структура (в си) это просто метаинформация для компилятора о размере и составе куска данных. Как в данном примере она может влезать в одно машинное слово и представлять из себя обычную числовую переменную в 4 байта.
Создатели раста судя по всему представляют структуры как именованные списки в js/typescript (типа let a = { a: 123, b: "ABC" };), что в принципе выдает в них js-макак и так же как в js где все объекты передаются только ссылками, авторы раста впиздячили глобальные правила на копирование/перемещение и возможность их задания для конкретного объекта.
>>3149454 > по волшебству В сишке не существует некопируемых типов. В крестах для этого явно надо удалять конструктор копирования. А вот растокостыли - это реально волшебство издевательства над людьми.
>>3149539 >Числовые переменные копируемы Таким образом приходим к пониманию что "структура" в расте это js-object подобие а не си-подобная структура. > буквально две разные вещи под нодой разумеется имелся в виду npm который и пакетный менеджер и инсталер/билдер/ранер.
>>3149550 >под нодой разумеется имелся в виду npm тогда у нас получается все нормальные пэкедж менеджеры это нода > Таким образом приходим к пониманию что "структура" в расте это js-object подобие а не си-подобная структура. ты сам то понимаешь что говоришь?
>>3149552 нет это хуевый менеджер где постоянный адок с версиями и зависимостями. >ты сам то понимаешь что говоришь? Структура в си могут быть локальными, могут быть глобальными, могут быть вообще объявлены приватно внутри конкретных процедур. Структура (как я и сказал) это просто метаинформация о размере данных и размерах сегментов из которых они состоя. Можно и обычное число интерпритировать как структуру при условии разумеется что их размеры совпадают.
В джаваскрипте "структуры" это алоцированные в памяти объекты со скрытыми атрибутами, в расте же "структуры" это типы со скрытой метоинформацией. Разница только в том что у первого атрибуты появятся только непосредственно во время создания объекты и могут быть изменены во время исполнения, у второго же статично приколочены к типу.
>>3149780 С рантаймом раст библиотеки весят по 10-40мб Без рантайма 1,5 >>3149785 А как по твоему рантайм работает если он не имеет информации о типах? Или по твоему он заголовочный фаил (которых у раста кстати нет) читатет/парсит?
>>3149868 Ну я то провожу аналогию с виртуальными машинами, разница лишь в том что VM это обычно байткод и стековая машина его исполняющая. В расте ничего подобного нет, тогда остается только проверка границ массивов, правильность обращения к ним, ну и менеджмент памяти и указателей. А теперь объясни как не имея на руках информацию о типе рантайм будет что то проверять? Как без информации о копируемости/перемещаемости "структуры" он будет очищать после нее память?
Не, одно дело когда просто в машинный код просто все подставляется (как в плюсах ну и в расте без рантайма) но мы то говорим именно про рантайм.
>>3149883 > проверка границ массивов, правильность обращения к ним не нужна информации о типе вообще, просто машинно проверяет чтобы ты не вылез за границы памяти
> менеджмент памяти и указателей. Всё в компайл тайме, рантайм этим никогда не занимается Сам подумай, если тебе бороу чекер выдает ошибки в КОМПАЙЛ ТАЙМЕ, то за каким хуем и главное чем будет заниматься рантайм?
> А теперь объясни как не имея на руках информацию о типе рантайм будет что то проверять? Со стека всё само удаляется, с кучи программист явно или неявно
> Как без информации о копируемости/перемещаемости "структуры" он будет очищать после нее память? Точно также как и в плюсах, только компилятор явно знает где можно вызывать деструктор, а где не надо В плюсах например если ты сделаешь b = std::move(a); у а все еще вызовется деструктор, и да их вызовется два
> как в плюсах В плюсах как раз таки есть информация о типе в рантайме - RTTI
>>3149887 > рантайм этим никогда не занимается Вот тут ты пиздишь, любая динамическая память управляется в рантайме. Зеро-кост памяти тоже не существует, ты везде одинаково платишь за алокации/освобождение. > то за каким хуем и главное чем будет заниматься рантайм Оно в компайл-тайме только определяет момент уничтожения объекта, сама память в райтайме освобождается. Ты не поверишь, но даже джаваговно в некоторых ситуациях может в компайл-тайме определить что объект не нужен и удалить его без сборки мусора. > у а все еще вызовется деструктор Чем дальше читаю твою поеботу, тем тупее она становится. При муве деструктор не вызывается, что произойдёт со старым объектом ты сам решаешь в мув-конструкторе. Именно поэтому использование объекта после мува это UB, а не гарантированное уничтожение.
>>3149887 >Со стека всё само удаляется, с кучи программист явно или неявно >не нужна информации о типе вообще, просто машинно проверяет чтобы ты не вылез за границы памяти Не понял вот этого виляния жопой причем тут стек? Если раст мувает "структуру" то она явно не на стеке, а в памяти, нельзя убрать или переместить данные со стека если они там объявлены. >Всё в компайл тайме, рантайм этим никогда не занимается А чем он тогда занимается? Что ты имеешь в виду под рантаймом? Я имею в виду рантайм библиотеку раста а не условный железный рантайм. >Сам подумай, если тебе бороу чекер выдает ошибки в КОМПАЙЛ ТАЙМЕ, то за каким хуем и главное чем будет заниматься рантайм? Он как раз выдает ошибки в рантайме, у раста есть такая возможность, он сходу собирает всю информацию о типах и тут же тебе подсвечивает то что обычный синтаксический парсер отследить не в состоянии, о том что переменная объявленная выше перемещена. Си и плюсам надо зупускать препроцессор компилять объектные файлы и даже когда он все скомпилирует он не увидит ошибки в том что данные куда то перемещены а ты к ним обращаешься у них нет рантайм информации об этом, это будет понятно только по фапкту происшествия. Так уж си/плюсы устроены.
>>3149919 Чел, std::move ничего не перемещает, лол. Ты просто скастовал a в r-value. Всё. Естественно оба объекта вызвали свои деструкторы при выходе их main. Более того, в твоём коде вызвался конструктор копирования, а не мув, потому что если ты написал деструктор, то должен и мув-конструктор написать. > If no user-defined move constructors are provided for a class type, and all of the following is true: > ... > - there is no user-declared destructor > Then the compiler will declare a move constructor ... С какими же даунами сижу в одном треде.
>>3149994 Ты реально тупой? Ты а не перемещаешь никуда. Схуяли у него должен перестать вызываться деструктор? Молодец хоть со второй попытки вызвал верный конструктор, но это ничего не меняет, в мув-конструкторе ты перемещаешь внутренности объекта, а не объект.
>>3149999 Даже для людей не разбирающихся в ассемблере думаю будет понятно.
Твоя ошибка в том что ты думаешь будто деструктор уничтожает объект но на самом деле это просто код который запускается перед уничтожением объекта и в данном случае уничтожение это просто выход из main.
>>3150082 у тебя деструктор Movable вызвался после деструктора А Ну и самая главная проблема в твоем коде в нем ничего никуда не переносится, потому что просто нечего. Возможно компилятор вообще его нахуй выбросил. В моем переносится строка, точнее const char[] алоцированная где то в памяти.
>>3150116 >>3150063 В твоем случае вызывается деструктор у стринг 3 раза Посмотри что у тебя в деструкторе ~A вызывается вызывается деструктор стринг И чтобы это тебе показать я и сделал Movable, потому что ты даже в 100 строчках сумел проглядеть их
анончик, я тебя уже носом тычу, ты что, совсем слепой?
> Возможно компилятор вообще его нахуй выбросил. Два вызова &&Movable в выводе тебя не смущают?
Ты ведь помнишь что ты пытаешься доказать, да? Что после мува деструктор у смувленного обьекта не вызывается деструктор, ты ведь все еще это доказываешь?
>>3150125 Блять ты жирный пиздец. В конструкторе вызывается вот это (пикрелейтед):
remove_reference()
basic_string() // constructor
так как внутри класса объявлен свой объект строки.
локальные объекты.структуры данные нельзя переместить со стека, они там выделены хардварно. Переместить можно только указатель на какие то внутренние данные как в данном случае и происходит.
>>3150299 > Ты ведь помнишь что ты пытаешься доказать, да? Что после мува деструктор у смувленного обьекта не вызывается деструктор, ты ведь все еще это доказываешь?
>>3150301 Деструктор это семантика ООП, они вызываются не потому что что то важное делают а потому что так правила диктуют, понимаешь или нет? Нет такого правила в ООП что деструктор вызывается после перемещения объекта, наоборот это против правил ООП вообще и плюсов в частности, это в расте перемещение правилами определено, а в плюсах это просто костыль для улучшения производительности чтоб не пришлось расчехлять memcpy или цикл с копированием.
>>3150309 >Нет такого правила в ООП что деструктор вызывается после перемещения объекта Да, он вызывается в конце скоупа для любой переменной, даже котору смували Ты мне второй день пытаешься доказать что это не так
Кратко ответь: в твоем примере вызовется 3 деструктора? Ты понимаешь почему?
>>3150310 Потому что создается три объекта string - один внутри main и два внутри классов. В самом ассемблере при этом все конструкторы деструкторы вызываются поражником просто симулируя работу ООП. Если включить оптимизации он просто вместо деструкторов подставит код который внутри них прописан
>>3150310 > даже котору смували Чел, ты хоть и переключился на срач с другим челом, но тебе ещё раз скажу это - ты никуда их не мувал. Каким же дауном надо быть, чтоб не понимать этого.
Анон, нужна помощь с CMake. Мой проект состоит из библиотеки mylib и примеров ex1, ex2. Есть option сборки каждого примера, типа BUILD_EXAMPLE1.
В скобках if(BUILD_EXAMPLE1) я хочу определить define для сборки mylib это настройка лога. Я делаю через команду
target_compile_definition(mylib PRIVATE ENABLE_LOG1) далее линковка проекта: target_link_libraries(ex1 PRIVATE mylib)
Так вот, если я включаю несколько option, то все define для mylib сохраняются, и каждый ex1, ex2 будет собран с флагами "предыдущего".
В целом, с точки зрения CMake все верно, но я не могу понять, как мне правильно решить мою задачу, чтобы разные примеры компилировались с библиотекой, которая собрана с разными флагами? Есть вариант делать разные библиотеки для разных флагов, но это как-то странно.
>>3150557 Это не проблемы симейка чел, он тут не причем. Но анон ниже правильно сказал но не обязательно статик, если нет других нг и если. Собираешь свою либу. В ней в лог.н пишегь ифндеф логлвл дефайн логлвл дефаултлоглвл. Соответсвенно определяешь дефолт и не определяешь лвл. Сои экзаплы собираешь с таргет компиле дефенишн логлвл. Или просто дефайн логлв перед включением лог.н
>>3152149 > Какой у вас стаж 4 года, девопс, полностью удалённо. > чем занимаетесь Фактически нихуя не делаю, работаю 12 дней в месяц, последние месяцы 95% рабочего времени скролю двачи. > сколько получаете 120к. > мне кажется, что меня на работе немного наебывают Если приходится думать на работке и за это не платят хотя бы 150к, то это пиздец.
>>3152149 Получаем бонусы на карту петерочка когда отбиваем пиво на занятые у мамки деньги. Иногда по ебалу, но в последнее время редко. Стаж большой. >меня на работе немного наебывают. Так тебя и дома наверняка наебывают, сходи сделай наебышам днк тест.
>>3152149 Посмотри на разных сервисах отзывы коллег о своей шаражкиной конторе, изучи вилки которые предлагают и слитые зепки. В этом надо так разбираться, а не сравнивать сколько сеньеры пиздаболы с двачей получают, главным образом дело в том что разброс деятельности слишком большим может быть
>>3152149 Всего сотыга. Для моего недомиллионника норм вроде. Но нам добивают социалкой: дмс со стоматологией, корпоративная пенсия капает, 80% скидка в ведомственный санаторий на черном море, 50% оплачивают любые другие санатории, бассейн, спортзал. Гарантированная 13я зп. В последнее время особо ничего не делаю, немного работы есть, но вообще не запарно.
Всех приветствую. Вопросы тем кто пользуется IDE CLion под Linux. Как продлить лицензию? Не нашел торренов под Линукс, либо пишут, что кряк не работает. Как вариант может официально оплатить, но пройдет ли оплата в нынешних условиях? Заранее спасибо, если кто подскажет по данному вопросу.
>>3153937 Для состоятельных джентльменов - оплата картой любой неподсанкционной страны через vpn, либо через помогал на авите. Для остальных - 3.jetbra.in
>>3156167 Ну, дык я спрашиваю, какую отвертку взять. Чтобы просто вкрутить этот шуруп.
Я просто вот гуглю: С++ HTTP SERVER!!!!
Мне гугл какие-то невразумительные видяшки выдает про сокеты-хуекеты, сервер фром скреч и прочую поебистику. Ок. Я в свое время слышал про буст, гуглю буст, там та же хрень, но в профиль, типа да, сокеты-хуекеты, но еще вот такенный мануал как там каналы какие-то и прочее.
А мне просто надо на железке запустить веб-сервер, который будет уметь в HTTPs и позволять из бравззера железку включить-выключить, какие-то настройки железки поменять, может быть какую-то админскую хуйню сделать, типа сжать логи и выгрузить и т.д. Воооот.
Шарп в железку не влезает, пхп - тоже( Питон - тоже((( В СДК вендора - никаких веб-серверов нету.
>>3156228 А я не уверен что у тебя в железку влезет жирный плюсовый сервак. Ищи какие нибудь тини серваки, это нишевая хуйня. Ну или сам на коленке собери, тебе же не нужен рпс, как я понимаю.
>>3157083 Нода тоже не предназначена, это просто библиотека предоставляющая доступ к стандартным функциям ОС втиснутая жабаскриптовую VM. Что бы писать на ней веб надо к ней всякие фреймворки устанавливать
>>3158514 на плате есть dsp-процессор с микроядерной осью в набортной памяти, который работает уже когда просто провод включен в розетку. Называется Intel Managment Engine
>>3158733 Это понятно, но я думал это только на полноразмерных коипах, а не таких куда дот нет не влезает... Какие тогда вообще у тебя параметры железки?
Бля, какой же кал ваш cmake. Через add_custom_command генерирую файл, который потом должен быть обработан cmake-либой, дальше выхлоп линкую через target_link_libraries. Так вот в этой параше никак не удаётся сделать корректный порядок выполнения шагов. Я уже даже всё в разные таргеты вынес, прописал add_dependencies, но один хуй эта пидорасина не хочет зависимость собирать до сборки основного. И самое пиздецовое в этой параше то что с генераторами ninja и MSVC оно имеет разное, но в обоих случаях нерабочее, поведение. Уже всё перегуглил, пробовал BYPRODUCTS и DEPENDS пердолить - всё так же нихуя. Я ебал, пойду сейчас читать доки мезона и пытаться в нём запилить сборку, если нихуя - msbuild, там-то с этой дриснёй нет никаких проблем, есть нормальные вызовы команд перед сборкой в нужном порядке.
>>3160155 Все твое говно читать смысла нет, обсер в первой же строке. эдд кастом команд выполняются линейно. Их так не используют. Для генерации/модификации чего либо до/после непосредственно сборки цели/целей используется эдд кастом таргет и добавляется зааисимость. В таком случае порядок комманд сборки будет коректным.
>>3160184 > эдд кастом таргет и добавляется зааисимость Ты читать не умеешь? Я так и делал. Всё равно эта пидорасина не выполняет команду раньше. Вот упрощённый вариант, что за пердолинг тут ещё нужен? Есть таргет shaders с указанием что он зависит от сгенерированного файла, явно указано что main зависит от shaders. Но по факту main собирается ДО shaders. Это с генератором ninja. С MSVC оно вообще не работает. Я тебе больше скажу, видишь там PRE_LINK? Так вот на деле оно уже ПОСЛЕ линковки выполняет эту команду. Как я должен понять что с этой парашей надо делать, чтоб она заработала? Пробовал в add_custom_command таргет main, пробовал add_custom_target позже вызывать - нихуя не меняется. Кеш естественно чищу после изменений.
>>3160341 У тебя всё это из-за последней строчки. Он сначала линкует ресурс, а потом уже начинает сборку всего остального, в том числе и выполнение команд, уже не важно кто от чего зависит. Как пофиксить не знаю, писать скрипты на симейке ублюдство ещё то.
Ты делаешь что то не правильно с самого начала. cmake это конфигуратор (скриптов автосборки) проекта, а не скрипт сборки.
add_custom_target как я понимаю это ты добавляешь альтернативный таргет к текущему проекту, тебе оно не нужно если у тебя единый проект с библиотеками. Тебе нужен add_subdirectory() и понимание что cmake работает покаталожно.
>>3161043 > Тебе нужен add_subdirectory() И зачем он мне, если у меня файл шейдера тут же лежит? Вопрос же совсем не в этом. В текущем варианте сборка работает, но не в правильном порядке. Мне сейчас надо два раза жать сборку - первый раз он линкует старый ресурс и уже потом собирает новый, второй раз нужный. От того что я выношу сборку шейдера в отдельную папочку и делаю add_subdirectory ничего не меняется, подпапка всё так же собирается после. > это конфигуратор (скриптов автосборки) проекта Заебись, и как мне заставить его выполнять скрипты в нужном мне порядке, а не как он решил? А ведь эту задачу можно решить батником за наносекунду, хули в симейке так сложно.
>>3161073 >задачу можно решить батником Так и решай батником нахуя ты взял симейк? >Мне сейчас надо два раза жать сборку - первый Тебе надо лечится от ожирения Все левое (не Cmake) добавляется через модуль ExternalProject_Add()
>>3161099 > нахуя ты взял симейк? Действительно, зачем я взял симейк вместо системы сборки. > Все левое (не Cmake) У меня и нет такого, это тебе надо лечиться. Чтоб добавлять внешние проекты надо чтоб они были.
Почему програ крашится вместо обработки эксепшена в catch? 1) Вызываю delete pPeFile 2) Внутри деструктора pPeFile делаю throw new FileException(...) 3) Конструктор класса исключения отрабатывает 4) Вместо того чтобы пойти в catch, вылетает ошибка MVC++, программа крашится.
>>3161280 Потому что у тебя деструктор не вызывается в обработчике исключений, шизик.
У тебя в обработчике лежат try { SectTest(); print(); myObj::operator_delete(); print(); } С чего ты взял что тут где то скрыто должен деструктор пристроится? Это тебя раст к такому додумыванию приучил или майкрософт. Вызывай деструктор явно или опиши правило для delete откуда выкидай исключение.
>>3161300 Не надо выделять эксепшн на куче. Ты кидаешь указатель, а пытаешься поймать ссылку. Ещё он мог бы утечь, но так как прога крашится на это похуй.
new в крестах и new в шарпах это совершенно разные вещи. Иди учи основы, потом возвращайся.
пометь деструктор noexcept(false) если очень надо но ебало тебе все равно оторвет рано или поздно кидать эксепшены из деструкторов нельзя. это классика это знать надо
Вопрос тупой, но буду благодарен за помощь. Нужно написать прогу на C++, которая использует библиотеку для считывания штрихкодов ZXing, которая требует стороннюю библиотеку для работы с изображениями (я нагуглил OpenCV). В плюсах вообще не программировал, да и вообще проще будет сказать что опыт околонулевой. Получилось через CMake прицепить OpenCV, как сделать тоже самое с ZXing не понимаю. Дайте наводку как это правильно называется и как подобное гуглить. Я так понял что-то типа "Подключение сторонних библиотек в проект"
>>3161280 Вроде в плюсах throw без new используется, не? А если используется new, то это значит «бросается» наверх указатель на выделенную память в куче типа, заданного после new? То есть, в данном случае FileException?
>>3162532 подачки умным дурачкам чтобы с голоду не сдохли алсо как это получилось что многие огромные корпорации используют бесплатный софт написанный лошками
>>3163526 Да это не так критично. Спартак был рабом. А вот современные в целом кодерки это толстожопые никчемные кнопкодавы, которых за пределами офиса не существует, их нет нахуй. И я думаю что когда ты такая вот чмоха остальное принимается уже не так критично. Рабы, тоже мне
вроде бы всё понимаю из учебника Но какое же блядь дикое отторжение я ощущаю, буквально потеря человечности. Хочется делать что угодно, кроме вникания в эти стейтменты и алгоритмы. инб4 пуссибой
>>3164899 по крайней мере они работают за деньги, а не бесплатно а опенсорс умные дурачки убивают индустрию и да особенно мне печет с бесплатной opencv и других библиотек на ее основе потому что позволяют нахаляву всякому быдлу решать проблемы связанные с комп зрением
Бля, clion сломался нахуй. Сначала вылезло предупреждение что плагин крестов повреждён, предложил восстановить и ребутнуть ide. Не помогло. Кеш чистил. Подсветка не работает, вообще нихуя не работает, как в блокноте всё, ошибок самого клиона никаких не вижу. Пидорская хуита.
>>3101419 (OP) Пытался собрать собственную либу с помощью g++, получаю ошибку. Где почитать как билдить код? В книгах об этом почти не пишут. В статьях поверхностно.
>>3170004 Не нужен мне make. Мне надо разобраться с темой в общем. Статические и динамические библиотеки, компоновка и сборка вообще. Вот это вот всё. Чтобы понять почему у меня ошибка. Почему то в книгах по линуксу и C++ это обходят стороной.
На этапе преобразования объектного файла в либу создаю .so файл, а не .dylib, так как под линукс. Все этапы проходят нормально, но либу не видит. Даже если в том же каталоге все проделать.
Ребят, помогите тупой женщине (мне). Научиться быстро (а то сижу 30 минут на изи и более часа-полтара на мидиум) и правильно решать? Просто заебалась истерить что я тупая. Скиньте инфы реально полезной, ну на крайняк, если есть время и силы, может кто то захочет помочь посмотреть ход моих мыслей в дискордике. Заранее спасибо гении лучшего языка!
>>3170276 110. Balanced Binary Tree 113. Path Sum II
Чет тут дикий тупняк с деревьями всегда. Я знаю умею проходится по дереву. Но на моменте подсчета суммы из за использования рекурсий вообще все не сходится и даже сложно в голове понять что не так. Помогает только тогда, когда реально сажусь дебажить пошагово. И вопросы а как возвращать а что возвращать, что сделать итд итп. И только когда посмотрю в решение - а да, все логично и понятно. А вот так сама зависаю на пару часов.
Всем привет уважаемые доны, ситуация патовая. Пишу свой вектор. Второй день не могу найти ошибку, StackOverFlow говорит все ок. Я уже карандашиком на листочек весь процесс через gdb c адресами выписывал. все куски кода ниже исправлены и упрощены class vector T arr; int size; int capacity;
Вектор у меня пушит объекты простейшего класса T с ресурсом (new). class T: int res; // тоже работает new int size;
Суть: Внутри метода push_back использую placement new. //vector -> метод reserve T arr = reinterpret_cast<T>(new char[capacity sizeof(T)]); //выделяю "сырую память" под (object_T capacity)
//vector -> метод push_back new (arr + index)T(obj); //в "сырой" участок памяти отрабатывает конструктор копирования.
внутри класса T также динамически выделяется память через new auto* res = new size_t [obj.N];
так вот когда отрабатывает деструктор vector (в цикле проходит все объекты) он успешно вызывает деструктор класса T в куче! (arr + i)->~T();
но уже сам деструктор класса T выдает ошибку! delete[] a; munmap_chunk(): invalid pointer Program received signal SIGABRT, Aborted.
по отдельности все куски кода работают нормально. косяков в самом классе T вроде нет
>>3170931 держи няша class A{ public: size_t a; size_t N;
public: explicit A(size_t n): N(n) { a = new size_t [N]; }
~A(){ delete[] a; }
A(const A& obj) { auto tmp = new size_t [obj.N]; copy(tmp, tmp+ obj.N, obj.a); this->a = tmp; this->N = obj.N; } перемещения/присваивания не стал кидать, т.к. не ипользуются в данном кейса
Суть: в векторе через прошу "сырую память" T newarr = reinterpret_cast<T>(new char[sz_cap * sizeof(T)]);
далее туда со стека через placement new --> констуктор копирования собсно глубоким копированием копирую объекты new (arr + index)T(obj); затес из этой же памяти --> arr вызываю деструктор (arr + i)->~T(); деструктор класса Т начинает отрабатывать, но когда дело доходит до удаления ресурса самого объекта Т ~A(){ delete[] a; } munmap_chunk(): invalid pointer по отдельности тестил сам класс, ну все норм вроде
>>3170959 > суть то не в этом Суть в том что сколько ты выделил в new, столько и должен удалить. Ты не можешь сделать 3 new и потом одним delete удалить все три куска, даже если они лежат последовательно.
>>3170964 вектор содержит три объекта класса А каждый обеъект имеет ресурс --> массив int в куче затем при вызове деструктора vector в цикле вызывается --> деструктор каждого объекта этот деструктор удаляет этот массив int деструктор вызывается для каждого объекта
вот так все работает! int main() {.. A arr = reinterpret_cast<A>(new char[2 sizeof(A)]); A obj1 = A(3); A obj2 = A(4); //конструкторы копирования new (arr)A(obj1); new (arr + 1)A(obj2); //деструкторы и в них нормально delete[] отрабатывает arr->~A(); (arr + 1)->~A();
хотя нихуя, переписал констуктор копирования протестил сам класс все работает: консрукторы и деструкторы
но когда пуляю эти объекты в вектор через emplacment new опять при удаления объектов "munmap_chunk(): invalid pointer"
причем деструктор первого объекта срабатывает норм, а второго нет [отя два одинаковых объекта в куче лежат видимо как говорил дон выше --> проблема в align
>>3170967 Забудь про new[] и delete[], выделяй sizeof(T) * N. Плейсмейнт сам вычислишь? ты знаешь как delete[] работает? Код практически не читал, мне похуй
>>3171067 >Забудь про new[] и delete[], выделяй sizeof(T) N. Плейсмейнт >сам вычислишь? так я так и делаю. T arr = reinterpret_cast<T>(new char[sz_cap sizeof(T)]); А выделяю char, чтобы конструктор по умолчанию не вызывался. потом уже привожу к Т* >ты знаешь как delete[] работает? ты про то что в куче лежат структуры перед самими данным в которых -> указатель (то что вернул new) + размер массива. и когда я вызываю delete[] arr кучевед ищет этот адрес в этих структурах + размер массива ну и удаляет. Вроде так
вообщем проблема пока не решена, вечером буду дебажить одним способом
>>3170314 Это задачи из области моченых в говне аспирантов. Раскрашивать клеточки с бобрами и заниматься прочими очень важными математическими проблемами лучше всего на пистоне, во первых быстрей и проще, а во вторых только jit может хоть как то этот пиздец соптимизировать https://algo.monster/liteproblems/110
В крайнем случае можно сначала на скрипте отработать потом на плюсы перенести, хотя я не вижу смысла такой хуйней на плюсах не занимаются.
>>3171345 не знаю как щас но 10 лет назад на всяких олимпиадах питухонщики сидели под одной шконкой с жабопидорами а тру пацаны вращали деревьями на цпп или вообще си
>>3171345 Да понимаю, многие уже сказали мол херней не страдай с этими задачами, лучше просто работай. Но блин все же это важная херня которую спрашивают практически все компании при найме. И им пофигу на твой стек, опыт. Но с другой стороны это уж лучше чем потратить неделю на реализацию тестового проекта с нуля типа сервер-клиент под хотелки или программа которая делает один два три … сто крутостей. Спасибо за сайт не знала. Но хотя и в решениях на лите тоже пытаются объяснения давать, но выходит зачастую у всех через жопу типа - отвечаю так работает как к этому прийти додумать хз, но у мяработает.
А по поводу писона - не изучала и не собираюсь пока. Все же звездочки стрелочки природнились. А экспириенс после джунов-студентиков питонщиков чет не очень по этому скрипт языку. Мб не права, но энивей лучше даже го изучу, чем это.
Понимаю что проще использовать яп, где уже все написано как раз для наиболее безболезненного решения алгоритмов, но я мазохистка, буду ебаться с си плус плус
>>3172305 Слушай, анончик, там разница меж изи и мид очень большая, если работа со структурами, а не строки. Таки так и делаю, точней в таком же направлении и двигаюсь.
>>3174279 У тебя в массиве вектор лежит. Ещё раз [0] попробуй в конце. Я в душе не ебу как оно у тебя должно работать, но он тебе человеческим языком пишет что возвращает вектор объектов, а не объект.
Приветствую всех. Вопрос к практикующим программистам. Сейчас слушаю лекции из цикла: "С++ продвинутый уровень". Кому не тяжело, можете подсказать (пометить в списке ниже) a) темы, которые стоит особо пристально изучить (можно пометить !) b) темы "какие хорошо бы знать", но на практике такое редко встречается (можно пометить + или *) c) ну и на какие темы можно пока что просто забить (можно пометить "минус" или никак не помечать) сам плейлист (кому интересно) https://www.youtube.com/playlist?list=PL4_hYwCyhAvYTzwME4vQoDO8ZINM5trra
список тем из плейлиста (список лекций идет с 20-ой, так как это вторая часть курса): C++ 20. Итераторы, виды итераторов. С++ 21. Const-, reverse-, output-итераторы. Потоковые итераторы. C++ 22. Внутреннее устройство vector C++ 23. Внутреннее устройство list, map, unordered_map C++ 24. Перегрузка new и delete. Аллокаторы C++ 26. scoped allocator, выравнивание, aligned_alloc C++ 27. move-семантика, move-конструкторы C++ 28. Виды value, rvalue-ссылки, универсальные ссылки С++ 29. Perfect forwarding, xvalues, reference qualifiers C++ 30. move_if_noexcept. auto, decltype, decltype(auto) C++ 31. Structured bindings. common_type, declval. unique_ptr C++ 32. Внутреннее устройство shared_ptr, weak_ptr C++ 33. enable_shared_from_this. Юнионы, std::variant C++ 34. Реализация std::variant, функция std::launder C++ 35. Реализация std::any. Идиома type erasure C++ 36. Лямбда-функции C++ 37. Лямбда-функции (продолжение). std::function C++ 38. std::bind, std::invoke, SFINAE C++ 39. std::enable_if, std::is_constructible
>>3174315 Весь список надо обязательно знать. Как ты собрался кодить, если основ не знаешь? >>3174329 Чел, стрелочку -> используй. Или как настоящий пердоля: (⚹govno).mocha()
всем привет. в вакансиях часто просят Qt. Так вот, c++ и stl вроде как освоил так вот такой глупый вопрос, но тем не менее за сколько можно освоить "базовый" Qt, чтобы найти работу где это требуется. P.S. всю подноготную библиотек Qt знаю: сети, базы данных, графический стек Linux, ОС и т.д. (долгое время изучал Computer Science). GUI на Xlib могу создать
>>3174558 В qt очень хороший хелп, если у тебя нет проблем с английским то очень быстро все находишь. Скользкие моменты давно обсосаны на стаковерфлоу. Я когда устроился профессионально программистом "на завод" у меня первое задание было в одиночку запрограммировать бортовую железяку для тестовых полетов на qt - сделал за два месяца, хотя про кют вообще до этого не слышал.
ну вообщем меня и интересует смогу ли это "на базовом" уровне за месяц освоить, из ответов выше понял, что да. ты тут еще? хотел кое-что еще спросить про рабочие моменты уже "на заводе", да в целом про рабочие моменты в любой конторе
>>3174624 Считаешь локальные координаты точки относительно центра. Умножаешь на матрицу поворота и преобразуешь назад в глобальные. Если глобальная система координат с перевёрнутой осью y, как и большинство экранных ск, то преобразование в локальную выглядит следующим образом: y_local = y_center - y_global, вместо x_global - x_center у координаты x соответственно.
Аборт вызывается при создании экземпляра `obj_t` на строчке 120. Вообще задумался может самому переписать, а не использовать Kaitai Struct плюс код поверх... https://paste.techedubyte.com/y5ndaqiebw
Пацаны, выручайте. В вузе послали на практику на завод. Там, от не🌶 делать сказали сделать таймер на плюсах. Типа: задается задержка, передается что надо выполнить. В ВУЗе у нас все на Java было.
Я вот написал https://pastebin.com/wS2Bj1HW но это не компилируется. Я в душе не понимаю, что я делаю не так( Какие-то undefined reference to `Timer::__timer_worker_thread' но в самом VSCode - все нормально, ниче красненького. Я реально не понимаю...
>>3176800 Альтернативой было - на кафедре, либо самому искать. Я ебал кафедру, потому что в прошлом году - "практика" была в том, чтобы помогать отчеты составлять преподам; Сам искать - я не знаю как. А на заводе хоть какой-то кодинг. Просто я почему-то думал, что навучат, а там просто сказали: вот задание, как сделаешь - приходи, подпишем тебе дневник по практике.
>>3176824 >>3176832 На самом деле нейронка наёбывает и можно просто переменные сделать inline static, тогда оно будет работать без выноса их из класса. Но это только с С++17 будет работать. >>3176837 В /ai/ иди.
Кто подскажет как правильно эту 🌶ту прочитать? PID записан в uint32_t, если лень читать - то нужно прочитать первый байт как одно число, а третий и четвёртый байт как другое.
Блядь, хули этому говну не нравится? Подключил библиотеку к проекту которая использует ZLib и всё, пиздец, ни🌶 не собирается, хотя сама библиотека подсасыает Zlib из vcpkg и собирается.
>>3177643 >>3177909 Вот эти строчки удали, они тебе не нужны, ты ведь не линкуешь его никуда. Буквы умеешь читать, которые в ошибке написаны? Тебе же трутайпом по серому написано чего ему не хватает.
>>3178185 Ну либа не линкует его за тебя. OpenSSL тоже всегда надо самому линковать, если какая-то либа его использует. Это тебе не раст, в котором ставишь либу, а она попутно автоматом 250 зависимостей тащит с собой. > пишет что не найден Zlib Иди гуглить как zlib подрубить.
>>3178191 Так мне линковать Zlib и к моей проге, получается? А гугление мне ничего не дало по итогу, как только не извращался, может дашь какую-то ссылку?
Завтра второе в жизни собеседование Первое было год назад, тотальное унижение, но все же на троечку справился. Сейчас конечно поднаторел. Контора какая-то полуГос, производители оборудования. Резюме такое себе, все по верхам, но базу хорошо знаю (ОС, сети, архитектра, кодинг, ООП). Qt - нет, а там вроде как надо. Готовлюсь к ебке. Мысленно ищу отговорки, чтобы не ехать, но поеду в любом случае. Написал, чтобы "выговориться".
Происходит какой то блядский цирк, пытаюсь реализовать силу трения и происходит пик2, числа просто каждые 2 кадра теряют знак минуса без какой либо причины, игрока от этого знатно колбасит. В normalize проблем нет, в остальном коде на первый взгляд тоже, утечек тоже. Где я мог наговнять?
>>3101419 (OP) Здравствуйте, стоит ли вкатываться в c++ для создания ботов для игр , автоматизации или с этим справится лучше другой язык программирования? Обычно я занимаюсь перепродажей валюты, но захотелось занюхать эту сферу жизни.
>>3181622 > создания ботов для игр , автоматизации Смотря какие боты и автоматизация. Если ничего нагруженного не требуется, то лучше взять питон или говно
>>3181622 Мне кажется это личные предпочтения. Я ещё использую жс, питон, сишку, легаси на шарпе, но большие проекты мне проще воспринимать именно на крестах.
Всех приветствую. Как часто вы используете Boost? Например для решения "стандартных" задач: работа с файлами, алгоритмы, многопоточка. Или используете только в случае специфических задач: когда нужны, регулярные выражение и т.д.
>>3182266 ну го по сути - это взято все лучше из С++, убрано лишнее. как по мне это хороший рестайлинговый С++ а то заебали эти костыли начиная с 17 стандарта
>>3182753 Лол. В говне взято всё самое худшее из сишки, из крестов там нет вообще ничего. И по сравнению с современными крестами говно как будто для студентов делалось, сплошные сложности на ровном месте ради "простоты".
Здравствуйте всем. У меня такой дилетантский вопрос. Вот написал я приложение : в нем я использую какую-то стороннюю библиотеку (например boost или даже Qt). Как мне теперь это грамотно распространять? Например мое приложение нужно скачивать с сайта. Как я это вижу. 1. Надо написать некий скрипт (bash?), который проверит - установленна ли у пользователя эта библиотека, и если нет то скрипт скачает ее. 2. Сразу распространять ПО с нужной библиотекой. А если у пользователя она уже есть?
>>3183269 Под популярные дистрибутивы линукса линкуй динамически и собирай пакеты, у которых в зависимостях нужная версия твоей либы. Под все остальное или линкуй статически, или поставляй вместе с либой.
>>3183291 >где-то ебанутые делают рекурсивные типы на них ну да я. что меня выдало еще фолд експрешонами сверху полирнуть template<template<class...> class C, class... TS> requires (!(... && Govno<TS>)) void zaulpa(C<TS...>&&) {} УХ БЛЯ
Друзья, что по поводу исключений в современном С++? Какие-то компании запрещают их использовать...
Так по итогу можно(или может даже нужно) использовать или нет? Если нет, то какие альтернативы?
Еще такой момент, после выделения данных в куче, достаточно будет проверить?: new ptr ... = bla bla bla ... if( ptr != nullptr ) { cout "Неудалость выделить память"; exit(1) // или даже бросить throw; } вообщем как лучше быть?
>>3184845 Текущая абстракция, поэтому лучше не надо, но есть нюанс. > Если нет, то какие альтернативы? И этот нюанс - отсутствие нормальных альтернатив. Только если коды ошибок или монады, но это сорта. Без шуток, goto самая адекватная альтернатива для обработки ошибок, но за него тебя на любой работке обоссут, т.к. его надо использовать с умом.
>>3184860 Они облегчают кодинг, так сказать. В идеале лучше не использовать ничего что хуже дефолта. На практике же их использют регулярно потому что банально улобнее. Особенно в настоящих проектах.
Дано: говорят какое-то зарубежное измерительное оборудование. для него кем-то (давно) написано desktop-приложение, (GUI, интерфейс под Windows). Надо написать/переделать это ПО (информация скудная, но что-то можно нарыть. например какие библиотеки использовались)
>>3187223 Ну если код есть, то все возможно. Я как-то переписывал проект на крестах на шарп, все доки были пиздец, ориентировался только на код. Сейчас наоборот шарп у нас легаси, а новье на крестах.
>>3187247 дружище, кода то нет. Но в целом там нужно реализовать простое GUI Меня смущает только драйвера или как там нам этом станке происходит взаимодействие ОС Win с самим оборудованием...
>>3187285 Тогда хз, кроме протоколов общения с оборудованием есть какбэ и логика работы, которая в них не входит. Я бы не брался, пока все досконально не распишут (но это не реально, лол).
>>3187496 У меня были и утилитки по паре сотен строк. А большой проект будет включать кучу строк не на си++. Тебе даже наличие строк никто не гарантирует. У нас например есть визуальный язык программирования, который потом компилируется в байткод и исполняется на виртуальной машине на плюсах в ос реального времени. Ни одной строки.
Есть указатель на структуру GIGA_STRUCT_MONSTER_BIBA Нужно прибавить к нему n байт(n - DWORD) и получить указатель на RESULT_MEGA_STRUCT_COCOCO Как это сделать лаконично? Я делал так, но выглядит не очень: PRESULT_MEGA_STRUCT_COCOCO res = (PRESULT_MEGA_STRUCT_COCOCO)((PCCH)pGigaStructMonster + n)
>>3191773 Чел из покон веков все делали так: (Uint8t *)target + offset , оффсет целое, получаешь свою ебу. Так работает со все велючая мемцпи и подобное. Шизов с уб мозга недоразвитого не слушай.
>>3187223 Если нет сорцов и у тебя нет опыта реверс-инжиниринга windows приложений и бинарных протоколов (скорей всего там такой), то однозначно - нет. Опыт реверс-инжиниринга года три минимум нарабатывается.
Сап, анон, вопрос про контейнеры и списки. В моей проге много логики связано с перемещением объектов, то они меняются, то сортируются, то разделяются. Логично использовать std::list + partition + sort + splice. Не move элементов в список, он медленнее splice. Произвольный доступ к элементам отсутствует, для работы со списком использую алгоритмы типа transform, any_of и for_each.
Щас на тестах эти списки небольшие, до 10 элементов.
И вот проблема: прога в дебаге прям пиздец медленно рабоатет в vs2022, причем в линуксе на гцц в дебаге все быстро летает, как и должно. Моих знаний отладки и профилирования не хватает, чтобы понять, почему такое говно происходит. Я виню работу списков, так как предыдущая реализация, где были векторы и move, работала быстрее.
В чем может быть проблема? Норм ли вообще splice? Как по мне, он быстрый пиздец, так как это два присвоения указателей, если данные нужным образом разделены.
Использую различные учебные примеры, в основном с MSDN. В различных IDE работают, даже в C-ной Pelles, а на Visual Studio упорно отказываются собираться. При этом дефолтные примеры Visual Studio нагроможденные.
>>3195858 Ахххаахах блять, а чего это тебя так порвало? Ты думаешь, что кто-то будет гадать, что у тебя там не собирается по абстрактному описанию проблемы? Наверняка ты проебал какие-то библиотеки, не выставив пару чекбоксов в своей студии aka интерфейс макака-машина. Продолжаем жать на кнопочку билд алл.
>>3196014 >Пиздец. такова жизнь, абстрагироваться от железа на котором работаешь не получится, так что даже если по теории алгоритмическая сложность меньше, это не значит что будет работать быстре
> Имхо убогая реализация в стл ты про мапу? ну ее в основном все и переписывают постоянно но для общего случая не так уж и плохо
>>3196110 C++ своим синтаксисом и развитием всем показывает, что главное - архитектура, а тут блядь на, надо про кеши и память знать. Это не должно быть проблемой в 2024. Какие проблемы сделать эффективный выровненный list, либо скрывать под листом вектор? Нахуя мне в 2024 знать, что лист не эффективен? Причем уверен, что есть реализации от васянов, которые уменьшают эти проблемы. Тот же Eigen мог бы стать частью стандарта
>>3196124 >C++ своим синтаксисом и развитием всем показывает, что главное - архитектура ты новенький, да? никогда такого не было, в плюсах самые протекающие абстракции, где если ты не знаешь наверняка что происходит под копотом, то зеро кост моментально улетучивается
> Какие проблемы сделать эффективный выровненный list ничем не поможет > либо скрывать под листом вектор тогда это перестает быть листом
> Нахуя мне в 2024 знать, что лист не эффективен? чтобы писать хороший код, ты еще скажи что тебе не нужно знать как там в кишочках каждого контейнера происходит > Тот же Eigen мог бы стать частью стандарта может заняться этим, свой порпозал написать и обьяснить тупым дедам почему это нужно добавить в стандарт
я если что вобще мимо, и даже не тот анон которому ты отвечаешь, но думаю он просто тебя обзовёт в ответ
sup. До санкций устанавливал qt creator и на нём прогал на C++ и C. Раньше qt ставил через онлайн установщик, у меня есть такая версия на ноутбуке, на нём нормально пашет. На пк же сносил систему убунту и онлайн установщик не хочет ставить qt с рос. айпи. Сейчас могу поставить qt только из магазина приложений. Не хочу через впн. Может чё настроить можно чтобы заработало как раньше? QT creator не видит почему-то стандартные сишные библиотеки, а также не может сбилдить прогу.
Что читать для изучения языка, практики и best practice, если это не мой первый ЯП? Начал со Страуструпа "Программирование. Принципы и практика использования C++" (2016), но уже за двесте страниц читаю графоманию для первокурсников компутер саенса.
>>3197136 > это не мой первый ЯП Пиздишь, студентик. У любого адекватного кодера даже вопроса такого не возникнет - он нагуглит документацию по языку за 30 секунд и пойдёт её читать.
Тред наверное не для этого, но я начал учить с++ первым языком, еще не дошёл до ООП и вижу одну математику, так как тогда работает реальный софт? Когда я начну это понимать?
Может мне стоит пойти почитать какие нибудь исходники с гитхаба чтобы это понять?
>>3197362 >учить с++ учи дальше, математика как примеры обучения чтобы надрочил язык. Учись работать со строками. Калькулятор пиши вот реальный софт. Хорошо прокачаешь строки если напишешь консольный калькулятор, считающий типа такого ./calc 2+2*2 и функционал скобок ещё не забудь.
>>3197570 proxy. quterussia. ru порт 31031 первая же ссылка в яндексе показывает этот прокси, но хз вдруг они мне модифицируют бинарники, встроят туда вирюсню?
Мужики, делаю инвентарь аля диабло на одном движке. Есть двумерный массив булов 15 на 20 (вся сетка инвентаря), и предметы, (условно могут занимать 2 на 6 элементов), как можно без ебанутых переборов быстро выставлять что определённые клетки заняты и также быстро находить занятые/свободные? Пробовал что-то придумать, но пока лишь подсказали что можно не всю сетку перебирать если она 10x10, а предмет 2x3, то можно лишь 8x7 от левого края, а вот как место находить - так и не могу понять как оптимизировать.
>>3197653 можно но при использовании из другого цппшника конпелятор не сможет инстанциировать шаблон и придется делать это руками в цпп с реализацией для каждого типа
Так что у Qt второе перерождение? после добавления возможности пилить под мобилку. смотрю видосиков по тематике на ютубе за последний год все больше и больше
Мужики, как можно эту хуету оптимизировать? Сервак охуевает и вырубает выполнение скрипта из-за длительности более секунды. Задача: перебор занятых слотов в инвентаре по предметам из него чтобы найти место для нового предмета. https://paste.techedubyte.com/ddt4oylucg
>>3198326 За наводку конечно спасибо, но прикол в том, что в движке где пишу - Angelscript, это типа плюсы, но с кучей оговорок, и там 90% std - тупо нет, только лютый базис.
>>3198390 так оно у тебя может зависнуть в бесконечном цикле если слот занят: > > for(uint x = 0, y = 0; x < 15 - itemWidth && y < 20 - itemHeigth;) > { > if(busy_slots[x][y]) continue;
разве не? Плюс внутренний цикл почему то двигает xx++ yy++ то есть как бы по диагонали
>>3198662 10 лет опыта, проходил недавно собес в YADRO на 300к+, вопросы по ощущению были джуниорские. Спрашивали про сети, про linux (и там и там я мало что ответил, т.к. я qt-шник формошлеп), затем спрашивали C++, вот там-то я все хорошо и подробно поотвечал, не зря все-таки 5 книг по плюсам прочитал.
Оффер сделали, но я его не принял, т.к. и сейчас не намного меньше получаю, но работы на полчаса в день
>>3199435 >Оффер сделали, но я его не принял, т.к. и сейчас не намного меньше получаю, но работы на полчаса в день Бля жиза, сейчас так же хожу по собеседованиям и время от времени получаю офферы, но потом понимаю что там будут ебать первые пол года и отказываюсь..
Вижу тенденцию вакансий, где требуется связка питона с плюсами. Чем там вообще занимаются? инб4 хуйней Если я хочу в резюме напиздеть, чтобы попасть на такую позицию, то о каком опыте можно на уши сесть эйчарке инб4 об опыте вертения хуями
>>3200905 Да скорей всего датасайнс ебучий. Не еби себе мозги, в тему с заднего входа не влезешь. Щас по этой спецухе тыщи студентиков выпускают в россии которые потом хуй без масла будут есть
>>3199515 Да ладно, за полгода анальной ебли у тебя даже все еще сфинкер будет какашки держать.. Так чтож почему бы и не попробовать. За такие то деньжищи!
>>3199498 Не гони на сбер, его ядро хоть немного прикормит чутка голодных крестовиков, а то бля с голодухи тут пухнем уже. Кому то повезет, хватит на хлеб с маслом, может быть даже с тяночкой потрахается, потому что денежки появятся.. Не все явашникам со сбера денежку сосать.
>>3203628 Вызываешь CoCreateInstance() и погнали. Примеры не ищутся, потому что: 1. Мало кто автоматизирует работу в MS Office на сишке/плюсах, поскольку будет сплошная ебля с дёрганьем WinAPI, заполнением бесчисленных структур из 10 полей и проверки возвращаемых кодов ошибок, как будто пишешь драйвер, а не работаешь с текстом. Чаще для этого берут шарпы, там не так больно. 2. Вместо OLE надо гуглить COM, при этом нужно по отдельности читать про работу с COM из плюсов и документацию COM-интерфейса офиса.
>>3203588 Не вижу связи. Сбер это дядя с деньгами, а ядро это чья-то (мантурова-чемезова) частная присоска к деньгам госкомпаний. Если бы сбер думал о том, что завтра ксеоны ультраголдэжишн с экзабайтом памяти не удастся закупить, а жаба на прошлом поколении с 500терабайт памяти уже грустит, *а от отечественного железа вообще падает в обморок), то Сбер волей неволей сам бы нанимал плюсовиков что бы хотя бы частично какие то ядра своих сервисов переписать на плюсы, перелапатить архитектуру сервера в целом, но вместо этого ядро их активно подкармливает свежим импортом и джавакодеры сидят на жирных жопах ровно.
>>3203892 Да, тут срачкочат и конфа. Тред на главной странице видят всякие шарпобляди и растопидоры, которым сразу надо зайти и высраться. Тегами и избранным большинство из них не умеет пользоваться, так что тред в бамплимите от них защищён.
> Мало кто автоматизирует работу в MS Office на сишке/плюсах, Угораздило меня это сделать. Ебусь с экселем(через библиотеку), Word хер заполнишь. Переписывать 3 года работы на C# чёт влом...
При этом COM интерфейс оутлука вполне себе лёгкий, когда пример перед глазами видишь.
>>3203710 У сбера вообще раньше была децентрализованная структура. Вернее иерархически устроенная. Примерно 4 ступеньки. Все работало как часы. Потом они решили все сломать и сделать все в одном месте. И до сих пор ебутся с этим. Это если совсем широкими мазками.
>>3204749 > Все работало как часы. Да, вот это были времена, не то что теперь, ни интересных велосипедов в каждом тербанке, ни пересылки выгрузок операций в CSV по почте и сетевым дискам, ни крутых двухзвенок с бизнес-логикой на хранимых процедурах в БД, ни десктопных клиентов на Delphi и Borland C++. Скучно стало.
>>3204749 >У сбера вообще раньше была децентрализованная структура. Вернее иерархически устроенная. Примерно 4 ступеньки. Все работало как часы. Не работало. Было куча тербанков как отдельные юрлица для каждого региона. Т.е. Среднерусский Банк Сбербанка России ОАО, Северо-Западный Банк Сбербанка России ОАО и т.д. И центральный банк на Вавилова в ДС. Причем головной офис Среднерусского банка был тоже в Москве. И у каждого банка было все свое - своя велосипедная система документооборота, свои сайты без общего дизайна, свои продукты, свои услуги. Поэтому и шутка была, что в каком отделении карточку выпустили, туда и обращайтесь. В целом оно работало как часы только до конца нулевых, пока все ходили ногами в сберкассу за квартиру платить. Когда у всех смартфоны появились, работать перестало.
>>3204697 Разобрался. Настройка внутри qt появилась, use internal terminal - и она не работает. Ну то есть совсем. Насколько я понял, идея была в том, чтобы содержимое терминала внутри ide отображать, но по какой-то причине перехватить содержимое консольки оказалось слишком трудно, и аж с 11 версии это починить не могут.
Как сильно флаги компиляции и вообще компиляция под конкретное железо может повлиять на производительность. Интересует, потому что все распространяют свои программы скомпилированными так, чтобы работало везде. Не теряется ли из за этого значительная часть производительности?
На первом пике создаю именованный пайп, жду пока к нему подключатся, пишу в него байтики На втором пике (из другого процесса) делаю WaitNamedPipeW, потом CreateFileW, потом ReadFile В этот момент ReadFile фейлится, GetLastError выдает 6 (ERROR_INVALID_HANDLE)
Где ошибка может быть?
ЗЫ на пикчах вырезаны проверки возвращаемых значений, но они есть
>>3206356 Смотря какие программы. В десктопе/играх/серверах речь обычно о долях процентов, которые и не заметит никто. А если это софт для суперкомпьютеров, там скорость работы может отличаться в разы, но там и пишут всё под конкретное железо, а не для массового распространения.
При реализации конструктора перемещения и оператора перемещения, чтобы грамотно "перенести" члены типов классов из стандартной либы, нужно использовать move, как во втором скрине для всех членом?