>>3250122 Отсутствие микробиблиотеки для эмбедщины, или хотя бы каких то опций сборки стандартной, чтоб например только vector и и все что ему нужно собиралось и все. А так я считаю хорошо что у плюсов те же корутины реализованы как костыль, а не как асинхронный блок кода.
>>3250593 Пиздец шиза. Ещё и написана русским шизиком из Черногории. У него даже SSL нет, а его веб-сервер на сишке формирует простой HTML целых 150 мс.
Пытаюсь собрать утилитку для прошивки отечественного контроллера от отечественных же разработчиков. Конпелятор жалуется, что ua.a возможно не инициализирована. Это С, не С++. Смотрю этот файл, а там пикрелейтед. Члены ua действительно не инициализируются, зато инициализируется "recursion_protector", после чего его значение сразу же проверяется, не стало ли оно внезапно больше 6. Это норма для AVR? Я чего-то не понимаю?
>>3255901 % - остаток от деления, <<= - битовый сдвиг с присвоением (left shift assignment). Непонятно именно зачем он двигает данные в неинициализированной переменной. И где тут рекурсия. Ни далее в теле функции, ни в eeprom_read_block она не вызывается. Можно было бы свалить на неудачный пуш в CMS, но это код из тарболла, лежащего довольно давно на официальном сайте.
>>3255828 Переменная не инициализирована, это так. Но судя из кода она в первую итерацию цикла присваивается. Остаток от 3 по 14 будет 2 (14 -12). Но в целом плохо работать с не инициализированными переменами. Ну сам код кхм в плане чтения тот еще шифр.
>>3256466 Это не то что плохо, это самое настоящее UB. В эльбрусе в защищенном стеке работа с неинициализированными данными или мусором, например запрещена вообще, будет прерывание.
>>3255901 А чё такова, я так и пишу. Удобно же. Я правда перед логическими операциями выражение в отдельные скобки пихаю типо (i%3) == 0 а, то вдруг он случайно посчитает i%(3 == 0) то есть i%0. Че такова?
>>3256767 С конечно же. С++ я не знаю, если честно, но впринципе слышал немного. И скажу так: С++ это что-то типо сиквела-ремейка к С. Сам по себе язык С довольно простой. Он поэтому и называется "низкоуровневым", потому что тут много чего нет. Тут нет массивов, тут нет строк, тут нет констант, тут нет операций возведения в степень, тут даже модульности нет. Язык С - это как бы отличная подготовка для перехода в С++. Изучая С, станет понятно в чем суть некоторых выражений.
>>3256787 >С++ это что-то типо сиквела-ремейка к С Хуёв там. Классо-ориентированность создаёт 98% сложности и материала для изучения (ёбаными годами блядь) современных крестов. Остальные 2% это как раз и есть база в виде C.
>>3256903 Если ты не можешь въехать в язык написанный специально для облегчения написания софта то наверное лучше сменить сферу деятельности. Потому что если годами постигать ооп, то конкретные задачи вроде 3d графики, криптографи нейросетки, hpc, придется видимо веками постигать.
>>3256924 Хуйня типа сайд-эффектов крестовых лямбд очень быстро из башки выветривается при неиспользовании, поэтому читать приходится все время. А еще там дохуя тонкостей, что в какой версии есть, типа гетерогенных лукапов или atomic wait with timeout и как эту версию у себя в компилере сделать. Половина из тех, кто пиздит, что это просто, просто не знает на самом деле нихуя из этого и думает, что ооп заканчивается на std::move. А вторая половина и до этого не дошла и думает, что std::unordered_map быстрее, чем std::map. В крестах дохуища просто тонкостей и если для тебя это все просто, то велика вероятность, что ты просто пиздишь.
>>3256934 И да, забыл. Если у тебя не дай бог два рабочих инструмента, а не только кресты, ну допустим, +питон, то всё, пизда, можешь забить хуй на художественную литературу и прочую личную жизнь.
>>3256934 > А вторая половина и до этого не дошла и думает, что std::unordered_map быстрее, чем std::map Причем здесь объекты стандартной библиотеки и нахуя ты все это учишь ебанутый?
Ты хоть понимаешь что в языках более высокого уровня ещё больше всего, там xml парсеры, вебсерверы в стандартной библиотеке, ты все это постигать собрался? Нахуя? Зачем?
>>3257103 Ну хз, для меня знание языка, это всё таки небольшое знание синтаксиса + знание стандартного библиотеки. Синтаксис С же очень прост. Но что можно сделать без функции malloc? без работы с файлами? без fork? Ясно, что так то можно ими и не пользоваться, но тогда си превращается в ассемблер просто.
>>3257261 > Синтаксис С же очень прост. Но что можно сделать без функции malloc? без работы с файлами? без fork? можно попросить операционную систему напрямую, в винде или эмбедщине glibc не используют.
>>3257766 В винде нет libstd там свои библиотеки visual c++. Ну и вообще в плюсовой библиотеке находится совсем не то что ты думаешь. Все вот эти объекты map/set/promise и их методы в заголовочных файлах и все это включается в твою программу. В библиотеке только системо-зависимые подпорки для этого всего.
>>3257828 В либе тоже часть функционала, по крайней мере в линуксных компилерах. Когда линкуешь clang с его libc++ вместо дефольной гццшной libstdc++, то многие фичи С++20/23/2c начинают работать. Почему ж оно так, если там в хедерах все?
>>3258000 Потому что путь линукса - держать миллион либ разных версий в окружении. А путь психически здоровых людей - всё нужное хранить в бинарнике. На винде из внешнего только есть вцрантайм на 120 кб, но его можно и статически линкануть с /MT. Сам STL всегда статически собирается.
>>3258040 В смысле? В линуксе тоже можно статически собирать и часто так и делают, единственное что glibc (это не кресты), лучше статически не линковать. Ты хуйню какую-то написал, не забыв при этом разделить людей на психически здоровых и нездоровых.
>>3258064 >у винды много недостатков Это каких, лол? Единственная вменяемая ос для ПК, остальное сорта прошивок для той или иной залупинской задачи, не более.
Только не подумай неправильно, я понимаю корпораборв присосакшихся к кормушке клепания прошивок кабанам, но бабло это бабло, а ос это ос, совсем разные вещи. Если что-то прибыльно для кого-то (мало кого, ведь корпораб это 1 из 100000 людей), не значит это что-то хорошее, полезное.
>>3258000 Хорошо, но как это противоречит тому что я сказал? >>3258040 Майкрософт для винды свой софт точно так же собирает, вынося все в библиотеки и линкуя с ними программы и точно так же как на динуксе некоторые библиотеки не включены в дистрибутив их надо выкачивать с сайта Майкрософт.
Просто на винде сложилась такая культура таскания своих библиотек из за генетической памяти, когда все прибивали софт гвоздями к wmp shell32 из виндовс xp а потом хуяк и в висте все поменялось. Плюс винда уже давно сдала все позиции по всяким wmv ie (сейчас уже никто и нипомнит что они доминировали когда то) и в целом все пришло к тому что пользоваться чем то из состава винды кроме гуя это примерно то же самое что в линуксе привязывать по ко всяким сервисам типа phonon из KDE. Просто в линуксе (и кстати макоси) помимо сервисного разного говна есть и нормальные библиотеки вроде zlib libssl а в винде квадратно-оконный велосипед от ms.
>>3258246 Пипец, тупое животное, не видит космической разницы в устройстве винды и линукса. Вот до чего доводит привлечение в программирование свиней охочих до денег.
Сап анон, прошу помощи по ебучему спп, третий рабочий день не могу отловить утечку памяти.
У меня есть класс, который принимает извне шаред_птр по значению, далее этот шаред_птр идёт в два члена, один хранится по значению, второй по шаред_птр. Проблема: при работе класса, у меня меняются те значения, которые вообще никак меняться не должны. Бул инкрементируется блядь. Смотрел в отладке, на Винде (msvc 2022) и дебиане, выводил в консоль - одинаково плохое поведение.
Что характерно, при вызове конструктора в проблемном месте, конструктор не меняет значения, что вообще пиздец какой-то. Понятно, что конструктор работает до обработки (сама обработка - заполнять буфера), и здесь выход за границы массива маловероятен.
Я тестировал валгриндом и санитайзером в Винде - начего. В других местах программы используется asio, есть места с использованием atomic. Программа в одном потоке. Ещё, винда показывает, что память растёт, хотя по коду ничего такого быть не должно, и это очень похоже на ту же ошибку.
Я воооообще не понимаю, как отловить баг, все мои знания закончились. Я даже часть кода переписал, думал, что проблема из-за шаредптр, в итоге упростил часть с ссылкой классов друг на друга. Если класса разбросать на компоненты, инициализация и рвота корректная.
>>3258507 А вообще сам понимаешь, сложно по твоему описанию что-то предположить. Ну чисто наотъебись может у ASIO настройка неправильная размера буфера или типа данных сигнала (вроде там float32, не помню точно уже) и он переписывает твои данные звуком.
На C++ можно запилить свою программу на Windows для обработки и визуализации данных? Понятно, что такого и так много, но хочется для себя кое-что попробовать сделать.
Это надо сначала чистый C++ учить, а потом какой-то фреймворк? Какую литературу про такие задачи можно почитать?
>>3258509 Вотчпоинты (смотрю в отладке в интерфейсе msvc) меняются. Либа asio не про звук, а Boost::asio - про асинхронное выполнение. В целом, либа очень надежна, и вряд-ли в ней проблема. Переменные меняются, как в вотчере, так и в выводе в консоль.
Для меня наибольшая загадка, почему в конструкторе члены при инициализации не меняются. Да, ещё забыл сказать, что один из мутных классов шаблонный, и наследуется от нешаблонного интерфейса. Я предположил, что где-то как-то vtable поехал или типа того, но вроде все делаю корректно.
И вообще, sanitizer в новой msvc вроде мощный инструмент в поиске утечек. Пример: я сделал вектор<чар> в(4), далее указатель на чар* птр = в.дата(), и записал птр[4]=10. Санитайзер это нашел и заорал, а обычное выполнение эту часть пропустило.
>>3258580 Не совсем "чистый" c++, смотри Qt. Это очень хороший фреймворк, нормально скилл с ним развиваешь. Начинаешь с чего-то простого, потом все сложнее и сложнее штуки делаешь. В какой-то момент без проблем сможешь любые сторонние либы подключать, и писать жирный визуал на опенгл/вулкане.
Для начала, для формочек сойдёт штатный функционал с графиками и пеинтером.
Минус куте в лицензии, за что его красноглазики не любят, но они идут нахуй.
>>3258671 Qt параша подходит только для хеллоуворлдов или проектов попила бабла типа KDE, где занимаются переписыванием: Qt N -> Qt N+1 -> Qt N+2 -> Qt N+3 -> Qt N+4 ... Разработка? Это что такое? Нам некогда, там новый Qt вышел, надо на него переписывать. Ты понимаешь, что даже мелкая программа разрабатывается годами, за это время выйдет несколько новых Qt превращая твой код в тыкву. Никакой разработки быть не может если у тебя нет галеры рабов задача которых постоянно переписывать на новый Qt что уже давным-давно написано, иначе это будешь делать ты, то есть разработка не сдвинется с мертвой точки.
Бля разбираюсь с корутинами в С++20, это просто пиздец, нахуй было так нагруженно и сложно делать. Я имея опыт разработки на С++ уже вот как 16-й год, дрочу это говно который день, еле еле понимая, что там откуда вызывается и как работает. Ну ладно если вы хотели предоставить низкоуровневый интерфейс кому это возможно понадобится ( очень сомневаюсь в этом ), так нужно было запилить тогда и более высокоуровневое API, чтоб можно было просто без лишнего гемора клепать корутины как во всех нормальных языках. Просто блять мудаки из коммитета, насрали говном, а там уже разбирайтесь как хотите, похуй. Сука какое же говно с++ я в ахуе куда бы схебаться с него....
Нихуя не вкуриваю, пишу парсилку для одного древнего формата графики одной игры, надо из файла слизывать строчки, строчки обычные ASCIIшные, ничё особенного, единственно хранятся как std::string, тоесть сначала идёт размер в u32, а потом сама строка, не как в сишном формате, читаю через свою функцию для чтения строк иии... На выходе она какого-то хуя больше чем должна быть, блядь, и там какие-то абсолютно левые данные, харкач, где я проебался? Actual Size всегда разный, как будто я где-то из нулевого указателя читаю.
>>3258836 1. Без полного кода и примера формата файла нихуя не понятно 2. Ты говоришь сначала идет размер u32 то есть в бинарном виде? Если так то тут влияет endianness. В остально твой высер не читал
Ну не важно, смысл главное понятен я думаю. По хорошему конечно такие методы надо делать инлайновыми, что бы не парится о трейтах которые там вызываются при возвращении объектов и не заморачиваться мувами.
>>3259061 > По хорошему конечно такие методы надо делать инлайновыми И каким же образом ты это будешь делать, так чтобы тебя рандомно компилятор нахуя не послал
>>3258671 По чатужпт. Книги всё хуйня, только опыт. Для начала, сформируй свою хотелку, что ты хочешь, накидай этапы. Это реально важно. Нормально, что первый этап "запустить хеллуворлд", это уже достижение.
Потом, если у тебя нормальная задача, типа матана, то тут надо понять, что тебе нужно. С++ нужен для скорости и создания такого визуала, который другие средства предложить не могут. Но с++ срано подходит для мат. разработки, он не скриптовый, и вывод произвольных данных или картинок сильно затруднен.
Для матана лучше использовать матлаб или питон. Предположим, ты хочешь сделать супер алгоритм сжатия картинки. Вот у тебя есть lena.jpg и наброски алгоритма, типа каждый четный пиксель удаляем. Алгоритм прост в реализации как и весь матан, поэтому его лучше сделать на питоне. Он тебе даст постой способ загрузки джпега с переводом в пиксели, и даст такой же простой вывод. С чистым с++ ты потратишь день на вкат в смаке и поиск либы.
Зачем тогда C++? Для реализации например http сервиса, который примет от миллиарда клиентов картинку и сожмет ее. Но и тут прикол в том, что многие другие языки отлично подходят для конкретно этой задачи
>>3259078 1. Добавить прямо в объявление класса 2. После объявления класса добавить в заголовок #include inline_methods.cpp 3. Прописать метод как inline и использовать lto.
>>3258593 >Для меня наибольшая загадка, почему в конструкторе члены при инициализации не меняются. Может объект где-то скопироваться успел? cout << this то одинаковое везде? Ну я хз вообще, у тебя там сложная какая-то ситуация, ее словами не объяснишь даже особо.
>>3259316 this я не везде вывел, но спасибо за подсказку. Я удалил конструкторы присвоения и копирования в мутных классах на всякий случай.
Вообще код очень типовой, типа в классе А создаётся shared_ptr<B>, который передается (по значению) в конструктор класса C: c_(b_ptr_). Порядок инициализации верный.
Собственно всё, но я щас объяснил с точки зрения на подозрение, что проблема где-то в шаред_птр. Ещё я упростил передачу шаред_птр и отказался от ссылок друг на друга, хотя такое допустимо.
Меня беспокоит другое, я не знаю, какими средствами запустить диагностику. Я далек от флагов компиляции, обычно пользуюсь дебаг/релиз и редко чем-то другим.
>>3259362 Всякая технологическая залупа, которую не часто ирл встретишь, типа >>3259368. Куте хорошо подходит, из коробки есть работа с сериал портом, модбасом, сильная библиотека по работе с 2д графикой. Достаточно просто накидать утилитарный ui, но делать красиво уже дроч, хотя куте всячески продвигает QML.
QT сильно кроссплатформенный, а так как кресты, то ещё и быстрый, что позволяет собрать форму с кнопками доильного аппарата на говнопланшете, который имеет старое железо, зато сенсорный дисплей, и работает -50..+70.
Сам qt намекает на использовании в серьезном проме, типа делать кнопки и графики на ртос QNX, где надёжность и рилтайм. Или спидометр машины. Не пробовал, но интригует. Ява сосет и хуйня, вебоговно очень прожорливое и нестабильное, винда масдай и нахуй не нужна во встройке, когда есть линукс и андроид. Получается, qt чуть ли не единственный вариант для не мощных систем с графикой, а кроссплатформа дает не самый мозгоебальный перенос своей программы на разные ос.
>>3259362 >Программа для настройки доильного аппарата Никогда не знаешь, что придумают эти юзеры.
>>3259374 Я только помню, что для gcc/clang для максимума отладочной информации -ggdb и -O0, а то все переменные будут <optimized out>. Но это для отладчиков на основе GDB. Для DWARF там какие-то свои флаги. А под виндой я тем же clang пользуюсь на основе mingw, хоть это и не совсем правильно.
>>3259427 Да делают так, хоть это и неправильно и против всех стандартов. Оператор [] возвращает ссылку на char из реально внутреннего буфера. Указатель на ссылку это законно.
>>3259386 > Достаточно просто накидать утилитарный ui, но делать красиво уже дроч, хотя куте всячески продвигает QML. Какашка та еще. Не понимаю зачем надо было эту хуйню выдумывать когда в кюте есть xml.
Кстати годная идея, сделать этакий аналог Qt, без qt легаси на 20+ стандарте. Вместо виджетов и qml реализовать веб-стек html+css+svg+js, для утилитарного гуя можно просто накидать стандартных элементов которые будут забинжены на системные чекбоксы-хуексы, для верстальщиков и вебдесигнеров дать css+js, только скрипты сделать компилируемыми как в qml, это можно сделать через ноду путем js->AST->macroasm.cpp + macroasm.h, последнее тоже можно выдрать из какого нибудь браузера.
Естественно о полной поддержке вебстека не может быть и речи, всякие jquery и js+фреймворки идут нахуй, полные стандарты тоже поддерживать ни к чему. В любом случае это будет в 1000 удобней чем qml портянки с мьютабл свойствами и нестандартным ecmascript -ом.
>>3259654 Какая ирония, ведь сишарп это как раз то, на что тебе надо бы обратить внимание. Тебе компилятор в том месте >>3259542 три раза написал, что ты уёбище, а ты отмахнулся преобразованием типов. В результате наиболее вероятно, что uncompress просто увидела по адресу packed_data какую-то хуйню, ведь это не байты строки, а байты объекта string, и не стала вообще ничего писать в unpacked_data. Но если бы стала, то ты бы ещё и затёр объект unpacked_data и еще что-то дальше него в памяти на какую-то глубину.
Вопрос по теме OpenGL, я не совсем вкуриваю, как мне несколько текстур использовать? У меня есть окна ImGui, куда я рендерю две несвязанные текстуры, а в них пихаю каждый таймер изменения кадра набор пикселей для определённого кадра, вот только оно нихуя не работает потому что я криворукий мудак, в итоге у меня две пустые текстуры и glBindTexture перед обновлением текстуры не помогает.
>>3259698 Инклюдить cpp все равно не нужно, или хотя бы переименовать его в inc, это кстати по крестовому стайлгайду гугла, чтобы у тебя сломалась подсветка синтакса в ide и ты задумался, на правильном ли ты пути. А по расширению cpp могут определяться например списки целей в Makefile, и прочая хуйня. Лучше в хедеры тогда свой говнокод пихайте.
>>3259717 Ну, это я знаю, я хуй знает вообще откуда взялось про inline_functions.cpp, это не мой файл и я ничё подобного не скидывал, в треде тоже не видел.
>>3259802 Ну, сгенерил через glGenTexture, сохранил в GLUint, потом вызываю glBindTexture с этим GLUint, по итогу получаю пустую текстуру. ЧСХ если вызывать glBindTexture один раз и сразу после glGenTexture - всё работает, но тогда я меж текстур переключаться не могу.
>>3259717 > Инклюдить cpp все равно не нужно, или хотя бы переименовать его в inc, это кстати по крестовому стайлгайду гугла Что бы что? Что бы OS/хиджаб и редактор кода не могли понять что это такое и как это воспринимать?
> чтобы у тебя сломалась подсветка синтакса в ide и ты задумался, на правильном ли ты пути. А по расширению cpp могут определяться например списки целей в Makefile
Допустим у тебя проект, в котором есть модули:
format_abc.cpp format_cdf.cpp
Каждый для своей os/подсистемы/конфигурации сборки. Как ты один из них предлагаешь исключить из "списка целей" при твоем подходе? Предлагаешь их тоже слить в один фаил и под блоки препроцессора загнать?
Не контролировать процесс сборки, не знать какие цели у тебя собираются в бинарник - вот подход который надо менять.
>>3259899 >Как ты один из них предлагаешь исключить из "списка целей" при твоем подходе? Причем тут я вообще. Это не мой подход, но я видел как это делают другие - делают папку generic, папку unix и папку windows. Ну например.
>>3259921 Ожидаемо. А если у тебя скажем под одну операционку несколько разных подсистем и одна из них для некоторых совпадает как быть?
Я понимаю что хочется сделать просто %.cpp и не думать о файлах но в нормальных не студенческих проектах так не делается.
Вообще конечно можно .hpp/.hh файл с методами назвать не принципиально, просто потом вдруг понадобится эти функции в объектный фаил скомпилировать (как обычно) а фаил заголовочный. Впрочем в моем случае предполагается что есть не инлайн методы и можно в этом случае туда инклюдить.
>>3259954 Другой вариант - называешь файлы вменяемо, а не abcd блядь. А то потом весело будет кому-то за тобой твою писанину разбирать, если они у тебя еще и переинклюжены все друг в друга.
По итогу выложил проект чтобы не ебаться с кусками кода и быстро задавать вопросы, https://github.com/APAmk2/FORT/blob/master/FORT/Fonline/Fo2D.cpp#L170 почему вот тут glBindTexture не работает, а если его сунуть в initWindow (ниже в файле) после glGenTexture - оно работает? В initWindow оно мне не нужно т.к. у меня несколько текстур между которыми надо переключаться, вторая текстура в FT/FTSprite.(h/cpp).
>>3260886 Имею опыт только в браузерном gl и шейдерах. Главное что уяснил это то что все это говно исполняется на GPU и все данные тоже сидят/должны сидеть в видеопамяти, и все это очень аккуратно надо мешать с кодом и данными которые исполняются на процессоре что бы не получилось так что данные туда сюда копируются или что данные в обычной памяти, а ты как долбоеб пытаешься с ними работать в контексте видеокарты.
>>3260886 Х.з. проверь что биндится и генерируется действительно один и тот же номер текстуры. Сразу после gen то оно понятно, что так, а вот как там у тебя методы выдываются, это сложно понять. В общем репортни его через cout (дебаг может наебнуть взаимодействие с gl).
А вот в строке 229 что за безобразие? Ты номер текстуры превращаешь в intptr_t. Так делают, когда хотят какую-то арифметику с адресами сделать сложнее +-, например, выровнять адрес. Во-первых, номер текстуры это вообще не указатель, а во вторых ты его без всякой арифметики сразу конвертишь в void ptr. Может так и надо канеш, но это как-то необычно.
Хочу учить с++ вначале для десктопа, бекэнда, а потом перекатиться на разработку игорей, т.к думаю с играми вряд-ли сразу что то получится: не развито и очень мало вакух... или я ошибаюсь?
Какие книжки посоветуете для начала?
Или мне стоит учить только то, что требуется в вакансиях на ХХ для стажеров/джунов? Как адекватно это воспринимать, если количество необходимых условий или навыков "слишком" много/мало в вакансии? Нужен отдельный ноут с линуксом?
Поступил на заочку околопрограммисткую, т.к уже заканчивал магу по другой специальности. Диплом и 2 статьи пилить... по ит для меня это новое и выглядит довольно странно( хотя и в теплотехнике формул хватало из книжек 20-50 летней давности) мне 31
>>3261482 Не так ты подходишь к реализации цели. Купи ВПН, зарегайся в чатжпт и начни делать игру. Определись, что ты хочешь, механику, лор, это самое важное. С++ всего лишь инструмент, как молоток, а чатжпт - сосед Вася, у которого есть молоток и который за тебя может гвоздь забить правда, хуево.
Ты хочешь изучать С++ так, как старперы в книгах и на форумах описывают. Так вот, это всё хуйня, это неэффективно, отрывает от реальной современной разработки и тупо устарело. Я знаю о чем говорю, на работе меня окружают такие ламеры-пердуны, которые блядь младше меня, но для которых СЛОЖНО изучить новый язык ради простого скрипта.
Программирование не цель для большинства разработчиков. Если оно действительно как цель, то это академическое изучение и тема выходит из математики.
гребаные двачеры отговорили меня от вката в мобильную разработку под андроид. так что остаюсь на плюсах. С# не хочу, хз душа не лежит, хотя на последней работе приходилось и на нем писать. Других вариантов не вижу. Игори хз, тоже не особо тянет.Чисто для ознакомления писал движок на OpenGL, но эта еботня с библиотеками заебала. Они у них по кд что-ли API переделывают. Так что буду пилить проект-микросервис на userver по совету анона и уныло искать работу хотя бы за 150к всем бобра
Как решить проблему на Ubuntu пакет curl установлен последней версии проверено через: curl --version но когда устанвливаю userver пишет: Loading failed: Cannot start component http-client: Unsupported libcurl 7.88.1, в чем проблема, куда копать, гугл молчит
>>3250607 > xmake, а не обоссанным б-гмерзким цмейком Ох уж этот юношесский максимализм. Проблема в том, что все эти новомодные *make'и выходят постоянно как грибы после дождя уже который год, и который год CMake остается основной билд системой для плюсов. Да, он далеко не идеален и пользоваться им не самое простое занятие, есть много нюансов и т.д. Но все уже привыкли и научились. Но прыгать на каждую новую вышедшую билд систему это бред. Вот если это говно будут использовать в качестве дефолтной билд системы основные IDE на рынке, тогда еще можно ее рассмотреть. А так это просто пыль, которая не стоит и наносекунды внимания.
Все эти "Вышла убийца Х" как правило мертворожденное говно, которое никому не нужно кроме парочки фанатиков, которые используют это с своих пет проектах. Гляньте сколько уже убийц С++ вышло и где они все? Даже пресловутый раст. Ну да он занял свою какую-то нишу, но не заменил С++, как об этом многие трубили. А тем временем С++ всё развивается и улучшается. Посмотрим конечно что гугл сделают со своим Carbon, такие корпорации обладающие анлимом бабла на пиар и разработку действительно могут сместить баланс системы, но что-то я пока в этом очень сильно сомневаюсь что это станет настоящей заменой С++.
Короче не гонитесь вы за новомодной хуйней, не тратьте своё время на это, само по себе время покажет стоит ли оно того или нет.
Как блять менять работу на не трешовую и не охуеть?
На первой работе тимлид писал код типа: void MyClass::safeExec(const std::function<void(std::vector&)&> func) { std::lock_guard lock(mutexMember_); func(vectorMemberOfMyClass_); //внутри себя создает потоки и работает с переданным вектором, читая из него //По замыслу создателя, мьютекс должен был защищать коллекцию } Причем я, джуниор, должен был этот баг фиксить, т.к. ПО вылетало.
Поменял работу, вырос в зп значительно. Сложный шаблонный код тупо не нужен, многопоточность пригодилась раза 2, все хуячится в 1 потоке. Сеньоров тупо нет, по сути стартап с джунами, максимум мидлами. Все стараются, но никто никогда не работал в местах, где были сеньоры. В проекте все методы noexcept и физическая константность. На собеседовании в серьезные места задают охуительные вопросы про многопоточность, про шаблоны, про всякую хуйню малафью. Я могу запомнить что-то о технологиях, которые мне никогда не пригождаются, но если меня спросят что-то вглубь, станет очевидно, что я это не использовал. Как я блять для себя должен хуячить пет-проект с кучей шаблонного кода и многопоточностью? Да еще и с бустом, да под линукс? И когда?
>>3263491 Накопить на год сычевания и сесть и написать движок для спрайтовой ммо. Пол гда на чтение, пол года на писание кода. Если у тебя есть сила воли не потратить гэпчик на аниме и двачевание вместо чтения джосатисов и писания ммо двигла...
>>3263507 Звучит как хуйня совет, потому что валидировать написанное некому. Можно писать полную хуйню в стол хоть десятилетиями, и оно даже будет работать. В говноконторах так пишут
>>3263513 Еще вадидировать можно в сообществах. Например есть большой с++ сервер в дискорде. Там куча народу каждый день текстом и голосом общаются на ангельском.
>>3263513 Что-то мне подсказывает, что в 99% случаев человек месяца 2 пыхтит, потом просто вола ебет, потом устраивается на дноработу опять >>3263519 Бесплатно тебе максимум на стековерфлоу ответят, потому что некоторые люди любят медали за участие в коммьюнити. Никто блять не будет валидировать архитектуру твоего кода в дискорд-сообществе, по крайней мере, ничего путного там не скажут. Будет ли человек после работы пастись в таком соо, чтобы смотреть говнокод других людей? Нахуя?
>>3250170 Корутины там реализованы, внезапно, как безстековые корутины. Кроме того, что выполнение можно суспендить и резюмить (кооперативная многозадачность) там ничего и не нужно. Асинхронщину можно и без них вообще делать. Ничего тебе не мешает намутить очередь событий, и плясать от коллбеков. Но нахуя когда есть Boost.Asio?
>>3250170 > Отсутствие микробиблиотеки для эмбедщины, или хотя бы каких то опций сборки стандартной, чтоб например только vector и и все что ему нужно собиралось и все. Что это значит вообще? У тебя код генерируется только для инстанцированных шаблонов. Если используешь только вектор, то и код будет только для инстанцированных векторов.
>>3250122 >Какой по вашему мнению фатальный недостаток C++? Всё окружение нужно пердолить самому с нуля. Начиная от мейкфайлов, линтеров, пакетных менеджеров, юнит тестов, генерации документации ну и так далее короче. Каждая мелкая хуйнюшка ебёт мозги. 100500 разных систем и ни одной шоп из каропки сразу и без головняка как в расте или golang.
>>3259520 > Кстати годная идея, сделать этакий аналог Qt, без qt легаси на 20+ стандарте. Вместо виджетов и qml реализовать веб-стек html+css+svg+js Это называется Chrome. Ставишь электрон, пилишь фронтенд на вебморде. Если хочется функционал именно нативно на плюсах писать, то делаешь на них бекенд с FFI прослойкой.
>>3263907 >Это называется Chrome. Ставишь электрон, пилишь фронтенд на вебморде. Если хочется функционал именно нативно на плюсах писать, то делаешь на них бекенд с FFI прослойкой. Электрон это браузер + нода + нативные библиотеки в комплекте с приложением, там джаваскприпты запускаются в виртуальной машине, поддерживается целиком весь Web стек с генерацией html и скриптов и стилей из строк. Моя же идея состоит в том что бы сделать как в Qt/QML с генерацией из html+css+js плюсового кода и последующей компиляцией в натив. Естественно при таком подходе никаких динамически генерируемых скриптов/стилей/деревьев из строк не может быть, CSS3 анимации не будут поддерживаться, веб-объекты целиком не будет поддерживаться, вебпаки/js-фреймворки идут нахуй
В общем стандартный c++ стандартный js+html+css который в совокупности должен обеспечить то же самое что qt и даже немножко больше. Резон: куча скопившегося легаси в самом qt и сомнительная политика головного разработчика.
>>3263940 Это для твоей программы генерируется, а библиотека нужна в самой embedded системе, в памяти висеть и предоставлять программам функции вроде мемори алокатора и чтения/записи файлов. Последнее к слову на эмбедщине не нужно и вот без них например и хотелось бы иметь параметры сборки.
Поскольку ты константную строку пихаешь в неконстантный буфер, очевидно оно разворачивается в побайтное копирование либо вызывается копи треит какой нибудь.
>>3269187 array это куча, дословно. И да куча навоза тоже array. Но именно навоза и именно большая куча, человеческие экскременты (типа как твой пост) кучей на считается, а зовется просто pookp.
ну допустим масса подходит этот лингвистический факт однако не отменяет того что если ты в приличном обществе назовешь массив кучей то тя обоссут кстати это произошло прямо сейчас
>>3269362 > в приличном обществе назовешь массив кучей то тя обоссут Это в обществе джава-петухонщиков что ли? Вот туда и съеби гыгыкать с единомышленниками, а здесь изволь всасывать термины из мира С/C++.
>>3269414 сынидзе наху в с++ хип/куча это либо динамическая память либо древообразная структура данных газуй усваивать термины утром экзамен со сложными вопросами
есть но в юзерспейсе тебе никто даже физический адрес не скажет не говоря про контроль где че выделять в виртуал_аллок конечно есть смешные флаги но это не то
>>3269431 То есть все таки слово "куча" есть, (на швабре нагуглил, молодец).
Только вот в плюсах никаких хипов и "динамической памяти" нет, это речь как раз про стек высокоуровневых "безопасных" языков джавы, и "кучей" оно обзывается потому что там сишными "массивами" все реализовано. Естественно в памяти потому что процедурном стеке такие вещи не делают.
>>3269468 никто и не говорил что нету че ты затрясся так я говорю что массив и куча ето разные вещи никто и кроме тебя шиза его так не называет так что давай тащи ссылки на литературу где ты этой хуйни начитался или обтекай inb4 хранение бинарной кучи в векторе не считается
>>3270565 Стек (процедурный) это механизм железа, он будет внезависимости от того что ты с ним и с данными на нем делаешь, помоему был даже раньше такой хак через расширение стека, но что то давно уже про эксплуатацию таких дыр не слышал.
>>3269460 ну дык вспомни про двухканальный режим работы памяти (во всех бытовых компьютерах), теоретически увеличивает пропускную способность в два раза, практически - от 10 до 70% в зависимости от того какое приложение используется; на серверах есть 4х канальный режим работы памяти, ну и так же в зионовских материнских платах с али которые переделаны с серверных компов тоже есть 4х канальный режим (но не навсех матплатах) с другой стороны ничего тебе не мешает почитать о физическом устройстве оперативной памяти, как она работает, вплоть до разводки на плате и то как работает контроллер оперативной памяти
Плюсовых программистов хлебом не корми дай пописать шаблонного говна Весь этот сложнейший синтаксис, шаблоны (кто бы что не говорил, а плюсовые шаблоны это антипаттерн, не контроллируемый комитетом [см. лупхолы], открывающий дорогу к метапрограммируемой нечитаемой лапше), комитет, занимающийся какой-то хуйней, зоопарк билдсистем, из которого долбаебы выбрали самую хуевую и назвали её «де факто стандартом», два пакетных менеджера, один из которых разработан на ПИТОНЕ, а второй курируется майкрософтом, умопомрачительно долгая компиляция, и, как вишенка на торте, отсутствие модулей (они, если что, даже в фортране появились 30 лет назад)
Поэтому, ищем альтернативу.
C — очевидно, нет. Достоинств меньше, недостатков больше. Те же проблемы с модулями, системами сборки, к которым добавляется отсутствие каких либо удобных способов обработки ошибок, почти полное отсутствие стандартной библиотеки, отсутствие неймспейсов, необходимость говнокодить макросы.
D — непонятно чего блять нахуевертили, попытались сесть на все хуи сразу и порвали жопу. Какая-то помесь говна и желание угодить всем. Есть GC, заявляется, что можно писать и без него, по факту на него опирается половина стд. Не знаю даже что ещё написать, на язык дрочит Александреску, а значит вместо написания кода на нем нужно дрочить метапрограммирование в присядку.
Zig — уже лучше. Есть модули, есть своя система сборки (пока вроде бы без пакетного менеджера, но вроде бы обещают добавить). Комптаймы вроде бы лучше шаблонов. Нет нормальной работы с ошибками, банально нельзя передать вместе с ошибкой какую-то доп. информацию. В каком-то из issue на их гите прямо говорится, что можно костылить Rust-way с самодельным Result<T, E>. Непонятно только, нахуя при этом нужна обработка ошибок, предоставляемая языком, если для консистентности во всём проекте нужно будет использовать эту. И использовать её будет не так удобно, потому что поддержки в языке нет. При этом язык пока слишком молодой, и всё может измениться. Задел хороший, нужно ждать.
Hare — язык от Дрю ДеВолта. Насколько я понимаю, наполовину спизжен с Зига, и наполовину с раста. Стандартной библиотеки почти нет, каких-либо дженериков нет совсем, пока что не понятен роадмап развития языка, об этом даже написано на официальном сайте. Но обработка ошибок уже лучше чем в зиге. Язык ещё моложе, чем зиг, так что пока тоже ничего не ясно, придётся ждать.
Rust — не рассматриваем, те кто хотел, давно на него пересели. Те, кто захотел сейчас — клуб кожевенного ремесла на два треда ниже.
Знающие, напишите про остальных возможных кандидатов. Таких как Cabron, Odin, Nim, AsmX, и всё остальное, о чем я не упомянул.
>>3272911 > сложнейший синтаксис Ты совсем хлебушек? Пиши на си с классами, если так сложно. Тебя заставляет кто-то пользоваться всем сразу? В либах даже дженериков часто нет. > Zig — уже лучше Мразотное говно от пердолей, рулит всем идейный борец за швабодку. Решения принимает естественно не в пользу кодеров, а в пользу свой шизы. Чего только стоит тот пиздец с неиспользуемыми переменными, был дикий шитшторм, но он всё равно сказал идите нахуй, я за вас уже решил как вам лучше. > есть своя система сборки Лучше бы не было. То что в симейке делается стройкой кода - в зиге парой десятков. Писать скрипты сборки зига на зиге - это пиздец. > Комптаймы вроде бы лучше шаблонов Зиговский комптайм это аналог крестового consteval. В сложных задачах по производительности медленнее крестов, потому что не умеет в то что умеет constexpr. > можно костылить Rust-way с самодельным Result<T, E> > потому что поддержки в языке нет Так и в расте нет никакой системы обработки ошибок. Все дрочат как хотят и костылят свои реализации монад, в либах часто несовместимые с Result типы. Обработка ошибок через паттерн-матчинг - это вообще пизда. > Cabron Единственная потенциальная замена крестов, потому что полностью совместима с ними. Так же как было с жаба-котлин. Но зная гугл ждать чего-то хорошего не приходится. Особенно если они будут пытаться сделать из него ГОвно или внезапно похоронить. > Nim Вместо синтаксиса костыль на костыле. Мертворождённое говно.
>>3272911 > Весь этот сложнейший синтаксис, шаблоны (кто бы что не говорил, а плюсовые шаблоны это антипаттерн Понимаешь, хороший язык это не тот который что то лучшее новейшее высрал, а тот кто дал то что заказывали. Раньше в Си через препроцессор имитировали темплейты то есть через дефайны задавали имена функций инклюдили код меняли дефайн, можно много по разным проектам до сих пор найти этот способ, писать 500 дублированных функций и потом их дружно править это прямая дорога к ошибкам. В плюсах сделали темплейты которые делают именно то же самое и даже чуть больше. Не нужны темплейты не используй, они нужны для генерации двух и более типизированных функций. Понятно что долбоебы ими все обмазывают. Ну так дураку и виртуальный хуй дали он его везде начал сувать. Что поделаешь.
>>3273056 Че мне вообще надо. Хочу в пет проект openssl впихнуть. Естественно мне не нужно подгружать разные провайдеры, фетчить какие то конкретные реализации. Еще я очень не хочу руками память чистить. Поэтому хотел взять какую нибудь обертку в которой хотя бы RAII есть. Но гуглеж не выдает ничего современного.
>>3273063 Может использоваться вперемешку с обычным кодом и умеет в бранчи между константными/неконстантными данными. Не надо дрочиться с этим, компилятор сам выжмет всё что можно.
>>3272911 > плюсовые шаблоны это антипаттерн > нечитаемой лапше Шизик, антипаттерн - дублирование кода. Лапшу ещё 15 лет назад придумали как победить, в отличии от раста. Сейчас можно вообще типы в большинстве случаев не писать. > комитет, занимающийся какой-то хуйней Он по крайней мере развивает язык. > самую хуевую Только с точки зрения неграмотного дебила. Симейк ахуенная система сборки, позволяющая делать много вещей в пару строчек. Он стал стандартом потому что удобный. > два пакетных менеджера В 2024 году в симейке отлично работает установка либ напрямую по ссылке на гит. > умопомрачительно долгая компиляция Ты из 2005 капчуешь? Даже огромные проекты с миллионами строчек кода собираются за пару минут на современном железе. А дальше инкрементальная сборка работает, пересобирается за секунды. > отсутствие модулей Куда они делись? Даже std переведён на модули уже.
>>3273126 > Ты из 2005 капчуешь? Даже огромные проекты с миллионами строчек кода собираются за пару минут Ну учти, про миллионы строк кода спизданул не я. Сколько там LLVM собирается? > Даже std переведён на модули уже. Ты из 3005 капчуешь? Либо путешественник во времени, либо шиз. Чьих будешь? Хотя, судя по > Он стал стандартом потому что удобный. ответ очевиден
>>3273067 > Компилятор сам Хехе, ну надеюсь не будет такой ситуации когда компилятор по какой то собственной причине ничего не сказав просто перестанет это делать, такого же не случится, да?
>>3273130 > Сколько там LLVM собирается? А сколько компилятор раста собирается? > Ты из 3005 капчуешь? Из 2024, С++23 требует std на модулях. Хотя есть компиляторы, до сих пор даже С++20 не поддерживающие шланг. > ответ очевиден Про тебя всё стало очевидно когда ты написал что система сборки зига лучше симейка. >>3273133 Нет, конечно. Есть стандарт, у компиляторов нет на этот счёт своих собственных причин перестать выполнять код во время компиляции.
>>3273150 >А сколько компилятор раста собирается? Причём здесь вообще раст? Давай я придумаю гипотетический язык PENIS--, который собирается год. Смотрите, C++ лучше чем PENIS--.Так и победим. > С++23 требует std на модулях А, так мы в принципе обсуждаем гипотетический язык, которого в природе не существует?
>>3273130 > Ну учти, про миллионы строк кода спизданул не я. Сколько там LLVM собирается? Я не он, но ты хоть понимаешь что ты сейчас пускаешь себе подливу в штаны? Это как доебываться до того что av1 или h265 долго кодируют, вон xvid все быстренько делал.
>>3273161 Ты какой то ебанутый, если нельзя положится на компилятор, то тогда что кроме ручных оптимизаций в принципе поможет? У какого языка выхлоп будет "оптимальный" вопряки тому что компилятор не справился? Ассемблер что ли предлагаешь?
>>3273158 > Давай я придумаю гипотетический язык Тогда зачем ты пиздишь про медленную сборку? Медленную по сравнению с чем? С джавой, шизик? Или ты примерно почувствовал? > обсуждаем гипотетический язык, которого в природе не существует? Если у пердолей нет компиляторов, то это не значит что он не существует. У всех остальных уже есть полная поддержка С++23. У msvc реализация стандартной библиотеки на модулях есть ещё с 2020. >>3273161 > И что стандарт говорит про то когда компилятор обязан выполнять констэкспр в компайлтпйме? Почитай его. Ты совсем пирипизднутый, раз приходишь и просишь процитировать стандарт? Если вкратце - всё поведение constexpr стандартизировано, там нет "может оптимизирует, а может нет". В стандарте чётко указано когда код выполняется при компиляции, а когда в рантайме. Выше про "компилятор сам разберётся" имеется в виду что тебе не надо жестко разграничивать констевал от рантайма как в зиге, но если ты не понимаешь как оно будет работать - это ты долбаёб, не знающий крестов, а не компилятор в штаны насрал.
>>3273165 >если нельзя положится на компилятор, то тогда что кроме ручных оптимизаций в принципе поможет? Ничего, ты бля никогда код чтоли не перфил? Берешь вилку и чистишь то что медленно работает, иногда поглядывая что тебе компилятор на выхлоп дает и направляя его в правильную сторону
>>3273183 > Ничего, ты бля никогда код чтоли не перфил? > Берешь вилку и чистишь то что медленно работает Что чисти блять? Как ты будешь циклы то чистить если у тебя оттуда колы лесенкой идут? Они должны были синлайнится но нет, константы должны были вычислиться но нет и оно это делает на каждой итерации. А еще у тебя restrict стоит но компилятор не понимает что это такое, ему похуй.
Если у меня отберут оптимизирующий компилятор я лично выхода кроме перехода на сишные дефайны и темплейт-файлы другого не вижу.
>>3273177 > У всех остальных уже есть полная поддержка С++23 У кого всех остальных? > У msvc реализация стандартной библиотеки на модулях есть ещё с 2020. Где?
>>3273177 >Медленную по сравнению с чем Как минимум, с паскалем. Возможностей в нём не в 100 раз меньше, а компилятор собирает себя меньше чем за минуту.
>>3273241 Смысл что если на компилятор нельзя положится в части каких то конструкций например инлайн или прагмы или константные выражения, то придется это либо вручную делать либо вспоминать дедовские хитрости с препроцессором. А как иначе? Что там можно чистить то?
Наслушался охуительных истории о скоростных плюсах. Выучил. Переписал скрипт с нумпая на xtensor. И не дождался пока скрипт выполнится, который в питоне за 5 секунд выполнялся.
>>3273598 > xtensor Так ты возьми нормальную реализацию матриц на крестах. Где ты это говно откопал? Ясен хуй нампай быстрее, потому что он на крестах и написан. Бери хотя бы eigen, а лучше ggml, если реальная скорость нужна.
>>3273749 > C 35% Ты потролить просто зашел да ведь? Ты же не знаешь ни си, ни плюсов, ни про библиотеку нампи.
Библиотека содержит низкоуровневые оптимизации под процессоры и видеокарты (вроде даже под эльбрус есть, но не факт что это принято в маинлайн), разумеется не на питоне а на си с интринсиками и ассемблерными вставками. На плюсах написано высокоуровневое API которое пробрасывается в питон и далее питонья библиотека реализует комплексные функции потому что на питоне кодят в основном ученые и математики которые далеки от всяких там обработок массивов/тензеров в цикле, им нужна просто функция которая дает результат
>>3273598 Я как-то сделал программу на С, которая работала целых 32 секунды. Я хуй знает что я намудрил, но она внатуре пиздец как долго выполнялась. Потом подправил немного - стала за доли секунды работать. Так что проверь может у тебя в коде ошибки просто.
>>3274088 >api на плюсах >пробрасывается в питон пруфца бы. есть мнение что апи на крестах там только для использования в крестах и вообще любое апи на крестах годится только для использования в крестах
>>3274226 Шизик, все либы для вычислений на питоне написаны на сишке/крестах. Питон только как скриптовая обёртка там. В каком-нибудь торче вообще JIT свой собственный есть, как и в numba.
>>3274362 CоСи буквально все может взаимодействовать. Только в нумпае не питон считает матрицы ls -l lib/python3.12/site-packages/numpy.libs libgfortran.so.5.0.0 libopenblas64.dev.so libquadmath.so.0.0.0
>>3274362 В api на си будут просто функции с причудливыми названиями, а что бы сделать объект/класс с методами нужно писать на плюсах. Питоновый интерпритатор (и jit) в конце концов на плюсах написан.
>>3274366 нет ты шизик я про то что интерфейс с питухоном там через сишку а не кресты как и вообще интерфейс чего угодно с чем угодно потому что у крестов abi нет например манглинг тупо не стандартизирован а может и не документирован
>>3274536 > у крестов abi нет Ты так говоришь как будто оно есть у сишки, лол. И всё это не вина крестов, а вина сишки. У того же раста всего лишь 170 вариаций ABI, даже под виндой целых 3 штуки. Просто потому что все обязаны взаимодействовать с окружением через сишное ABI, которого не существует в едином виде. И поэтому приходится таскать с собой компилятор сишки всегда, даже яблоко не осилило написать FFI и пользуется шлангом для парсинга сишного кода и генерации биндингов в свифте.
>>3274519 Не будет, твёрдо и чётко. И этот высер похоже даже в серьёз не рассматривали, потому что на летнем съезде комитета не вижу никаких упоминаний про это. Про безопасность комитет рассматривает только компайл-тайм контракты - https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3297r1.pdf Это намного мощнее инструмент, потенциально позволяющий как раз контрактами чекать дыры, и не только в памяти. И я уверен что комитет никогда не станет рассматривать "небезопасную память" как то что надо точечно фиксить одним сложным инструментов. Дурак-чеккер всегда будет стоять рядом с GC, поддержку которого несколько стандартов назад окончательно вычистили, чтоб ни у кого даже желания не возникло этим обмазываться. В крестах собираются дать базовый инструмент для решения проблем с безопасностью, а не заставлять пить магические таблетки от проблем с башкой как в дурке.
>>3274697 > ассерт Это вообще про другое. В аде они действительно как просто ассерты работают, поэтому и не нужны. > Растеры тряситесь Им только и остаётся это делать, потому что их дурак-чекер даже не рассматривают как что-то полезное и пилят нормальную реализацию без анальных ограничений.
>>3274569 >пользуется шлангом для парсинга сишного кода и генерации биндингов в свифте. неплохой подход, ибо многие до этого аналогичную проблему решали (и решают) ручным кодингом
>>3273598 Просто ты криворукая макака. Выучил он С++, сука я 15 лет на с++ программирую коммерчеки и не могу сказать, что я его идеально знаю, а он блять выучил наскоком чтоб говно свое питоновское переписать, ну-ну.
>>3272911 >C++ — говно Согласен, но что есть то есть. Альтернативы еще кратно хуже. Единственная надежда на Carbon, но что-то тоже есть сомнения. Ну либо ждать коммитета, пока язык допилят до современного уровня, но учитывая скорость разработки новых стандартов, хз сколько еще десятков лет придется ждать.
>Плюсовых программистов хлебом не корми дай пописать шаблонного говна >Весь этот сложнейший синтаксис Ну хз, раньше да, разбирать шаблонный код было тем еще занятием не для слабонервных, но сейчас то с появлением концептов, ренджей и прочих улучшений, шаблоны стали довольно приятными, единственное пока компиляторы не очень хорошо выдают ошибки в концептах, выдавая простыню разного рода из ошибок, причиной которого может быть просто несоответствие типа концепту. Но это поправят еще думаю.
>комитет, занимающийся какой-то хуйней Ну хуйней не хуйней, а язык пилят постепенно. Другой вопрос скорости разработки и решений предлагаемых коммитетом, вот к примеру мне не ясно почему корутины вылезли такими сложными и не было более высокоуровнего интерфейса к ним, чтоб можно было легко пользоваться прям сразу, но нет, надо познать ебейший дзен чтобы разобраться в них и соорудить что-то что будет их использовать.
> зоопарк билдсистем, из которого долбаебы выбрали самую хуевую Ну как зоопарк, по факту есть только 2, make и cmake.Остального говно не используется. Ну да цмейк не особо удобный, синтаксис немного ебанутый, но все привыкли и научились. Да и лучших альтернатив тупо нет.
> один из которых разработан на ПИТОНЕ, а второй курируется майкрософтом тут не особо понял про что ты, что из них на питоне и что курируется майкрософтом? И что плохого в том что курируется майкрософтом? Я хоть и яро ненавижу винду, но не весь майкрософт такое лютое говно, вот к примеру пару лет назад я пересел с жидбреинсов на вскод и доволен как слон.
>умопомрачительно долгая компиляция Бля, ты попробуй какой-нибудь проект средней велечены хотя бы скомпилировать на расте, там еще дольше это все. А на хаскеле? Тоже долго Да и не сказал бы что в С++ прям очень долгая, конечно сравнивая с Си да, тут си очень быстро компилируется, но сам должен понимать что любой высокоуровневый ЯП будет относительно долго компилироваться. Хотя даже не сама компиляция настолько долгая как линковка, работал я как-то на проекте, там компилировался весь проект с нуля 40 минут, из которых минут 20 только занимала линковка. Но там конечно крахово все было еще и под винду...
>и, как вишенка на торте, отсутствие модулей Ну модули уже есть, не знаю если честно какое их состояние на данный момент, но пока что-то руки не дошли затестить. Но в любом случае в скором времени допилят и все будут на них переходить.
Так что не пизди и пиши на С++, других вариантов нету.
>>3274978 Достаточно раз в месяц перечитывать стандарт и через год будешь "знать". Вся "сложность" крестов из-за того что вместо стандарта все читают какую-то жёлтую поеботу. В других языках официальная документация фактически и есть стандарт, но в крестах нет документации, а читать стандарт неподготовленный человек не может.
>>3275239 Ой бляяя... кукаретик, ты хоть раз сам то пробовал "раз в месяц" перечитывать стандарт и вообще читать его? Стандарт не для изучения языка, а для формализования правил и согласований написанный очень сухим формальным языком, который "просто читать" нереально, можно к нему обращаться для выяснения поведения по стандарту в какой-либо ситуации, но изучать с++ читая стандарт это все равно что пытаться жрать жопой.
>крестах нет документации Есть cppreference, чем тебе не документация?
>>3275273 > "просто читать" нереально Вот поэтому у таких как ты и нереально знать кресты. > Есть cppreference, чем тебе не документация? Это документация по стандартной либе, а не языку. Ты либо читаешь стандарт, либо пытаешься урывками из статеек выхватывать инфу по крестам и рассказывать как 10 лет не хватает на изучение языка.
>>3275358 >Это документация по стандартной либе, а не языку Уебище, не позорься. Судя по твоим высерам, ты вообще нихуя не знаешь С++ даже близко, и никогда не читал ни стандарт ни даже цппреф.
Разговор с таким тупым животным, как ты, на этом окончен.
>>3275419 В общем иди нахуй в тред какой-нибудь джавы, раз не умеешь читать стандарт. На твоём cppreference нет даже о каких-то базовых вещах типа UB, только один абзац короче википедии и всё. Там даже по свежей стандартной либе всё очень плохо - даже уже реализованные хедеры нормально не задокументированы.
>>3275440 Ты просто выблядок тупой шлюхи, сука желаю тебе больше никогда не прикасаться к программированию, а лучше вообще к компьютеру, раз ты настолько тупая скотина, которая в самом знаменитом сайте по С++ не может разобраться, при этом животное аппелирует к стандарту, на сайте которого есть прям ссылка на этот сайт, мудило гороховое, это ты нахуй пошел от сюда бездарь тупоголовый. Я блять анус ставлю, что твои познания в стандарте просто равны нулю нахуй, ты ебучий фантазер школьник, который пытается быть вонаби экспертом С++ по факту ты нулина тупая. У тебя нету ни работы по с++ ни знаний по нему. При этом мелкий сопливый выблядок, еще имеет дерзость спорить со знающими людьми с опытом. Просто ахуй с этого треда.
>>3275452 Да я просто в ахуе с интеллекта этого дауна, который на вопрос "Как выучить С++?" советует каждый день штудировать стандарт. Просто фейспалм нахуй. Тупее ничего нельзя придумать. Это совет из разряда, чтобы выучить новый разговорный язык, зубрите каждый день словарь, без понимания вообще чего либо. Ахуенно пиздец
>>3275447 Чел, хватит позориться. Стандарт не читал, а уже вдруг стал знать язык и учить чему-то, хоть секунду назад пиздел что это невозможно. Выключай режим сверхманёвренности.
>>3275461 > словарь Для конченых дебилов показываю стандарт С++23 по ссылке - https://timsong-cpp.github.io/cppwp/n4950/draft.pdf Это нормально написанный текст, структурированный начиная от базы и далее к сложным вещам, с примерами кода. А ты как раз предлагаешь шариться по каким-то рандомным статейкам на cppreference.
>>3275481 >>3275484 Ты просто идиот ебаный, который ни строки не прочитал оттуда, но который продолжает дристать говном и вилять жопой пытаясь делать вид, что он не обосрался. Все что ты можешь - это повторять мои же фразы, тупоголовый лоу айкью школьник. Кто тебе сказал, что я не читал стандарт? Я этого не говорил, идиотина ебаная. Я-то читал его частями, когда надо было. Мне уже давно не требуется "изучать С++", я на нем уже 15 лет пишу коммерчески,в отличии от тебя безработного дауна, который только мысли чужих людей на дваче может транслировать, бездарность. Ты тупоголовый отброс, даже не знаешь, что такое cppreference, а уже споришь тут и затираешь что-то про стандарт, который ты даже не читал, еблан. Бля короче, кукаретик хуев, пока ты не скинешь сюда свою трудовую, где не будет хотя бы лет 5 стажа С++, можешь мне больше сюда не кукарекать ничего, твои высеры просто посмешище и ты меня уже заебал своей невменяемой тупостью. Над тобой кто-то прикололся, сказав, что С++ надо начинать изучась с чтения стандарта, а ты еблан, принял это за чистую монету и теперь транслируешь это везде с умным видом, хотя сам ты этого никогда не делал. Короче заебал иди нахуй.
>>3275072 Да лучше на писоне/джава/пхп. Ибо в приложениях где основное время занимают чтение/запись всякие запросы по сети, выйгрыш от времени исполнения плюсов трудно разглядеть даже под микроскопом.
И даже на самом деле языки с jit в таких задачах сильно предпочтительнее статик-компаил программы, потому что там как правило большое количество бранчей/свитчей/вызовов с которыми в статике ничего нельзя сделать, а у джаст ин тайм есть возможность собрать статистику по горячим следам и выпилить то что редко или никогда не используется.
На плюсах пиши сервисы кторые какие то быстрые задачи выполняют например хэшсуммы вычисляют/сравнивают, картинки сжимают, архивы проверяют, подписи делают итд итп. Вызывай из питона/пхп и всё.
>>3272911 >Поэтому, ищем альтернативу. Альтернативы нет, если тебе надо делать продукт, а не изобретать велосипеды. С/С++ однозначно решают по поддержке языка на всем возможном железе, и количеству библиотек для всего, чего угодно. В результате зачем мне ебаться с кривыми биндингами и взаимодействовать с откровенными шизами из коммьюнити мелкоязыков, если все уже и так есть?
Так, я решился на путь самурая и снова подключаюсь к вам 3 заход на плюсы Что меня толкает на это: 1) Один хуй отсутствие работы анальником, сижу пержу на насиженном месте за приятный прайс 2) Самые интересные проекты с открытым кодом 3) Люблю страдать
Как же ахуительно продуманы корутины в цпп ДЦП. Деструктор не может быть корутиной. То есть все это тупо ломает всю парадигму С++ с RAII, блять ахуенно! Нахуй мне теперь эти классы вообще нужны, если я должен писать goto _destroy в каждом его методе и обрабатывать все возможные ошибки и эксепшены что могут стрельнуть, чтобы не дай бог не проебать закрытие ресурса? ПРОСТО БЛЕСК! Браво!
>>3282811 Ты совсем долбаёб? Корутина это просто promise-объект с состоянием фрейма функции для возможности её остановки/возобновления, там нет никакой магии. Так же у промиза вызывается unhandled_exception() если из корутины пытается вылететь эксепшен, после чего освобождает ждущего. У объекта, методы которого корутины, деструктор вызывается штатно - когда он выходит из зоны видимости, а не когда тебе захочется. А если ты хочешь уничтожать объект асинхронно т.е. когда-нибудь потом, то тебе надо к психиатру.
>>3282873 >А если ты хочешь уничтожать объект асинхронно В WinAPI и liburing отмена асинхронной операции сама по себе асинхронная операция. Поэтому деструктор может резко заблокировать весь поток. У Rust такая же проблема.
>>3282873 Долбоёбина это ты, я и без тебя знаю что такое корутина и как она перехватывает эксепшены. Вопрос совсем в другом. Посмотри на этот код и больше не неси хуйню, долбоеб.
>>3282887 Да я как раз на liburing делаю. Там проблема не в отмене, а том что в принципе невозможно провести асинхронную операцию в деструкторе ( по крайней мере получив результат выполнения ). Я просто не понимаю в чем проблема была сделать возможность объявлять деструктор асинхроныным, который бы просто вызывался бы c co_await в конце скопа внутри корутины, как к примеру у самой корутины вызываются тот же final_suspend. Блять как же я заебался от этого С++ с его ебаным комитетом.
>>3282902 В чём проблема выполнить close синхронно в деструкторе? >>3282937 > не понимаю в чем проблема была сделать возможность объявлять деструктор асинхроныным Потому что корутина это объект. Деструктор не может вернуть ничего, и самое главное куда ему возвращать таск.
>>3282937 Про ABI слышал? Комитет молодцы что не ломают его. Логика очень простая - ты можешь использовать либу на корутинах даже если твой компилятор не поддерживает их. Допустил у тебя есть проприетарная асинхронная либа, асинхронные методы будут возвращать простую структуру и ты можешь синхронно выполнить корутину, даже не зная как там оно работает. Тот же шланг 5 лет их запилить не мог без багов, так что это актуальная тема.
>>3283003 Да аби это хуйня, кто хочет тот поддерживает. Вон майкрософт не парится и хуярит новое аби каждую версию компилятора. Ладно аби, если аби не нарушается для обычных функций, то почему оно бы нарушилось для корутинных деструкторов? Деструктор это точно такая же функция, которую вызывает компилятор после окончания времени жизни объекта.
>>3283002 Так ты перестанешь вилять жопой и объяснишь почему вот так тебе не подходит? Если тебе не нравится что закрытие блокирующее, то ты тогда в любом случае пердолишь многопоточные корутины, напердоль и close в отдельном потоке. Или либу возьми с тред-пулом для корутин.
>>3283015 > Деструктор это точно такая же функция, которую вызывает компилятор после окончания времени жизни объекта. И в каком месте она выполняется? Как ты будешь контролировать выполнение того что выполняется за пределами области видимости? Корутина должна вернуть поток выполнения, деструктор куда вернёт? Это уже похоже на GC, когда у тебя в неизвестный момент начнут деструкторы мусор чистить.
>>3283021 Ты реально дурачек или как? У меня и так close в отдельном потом в тред пули в нижестоящей либе закрывается, проблема в другом, боже блять какой же ты тупой. Если ты еще скажешь что ты кем-то нанят я точно ахуею с того какие у нас кадры в айти работают. Ты понимаешь что мы обсуждаем проблему нарушения RAII концепции в корутинах из-за невозможности асинхронно вызвать деструктор?
>>3283023 В смысле, ты о чем вообще? Деструктор просто вызывается как прописано в стандарте после жизни объекта. Что куда вернет? Вернет тому откуда вызывалось.
>>3283040 Блять, дебил, ты вообще понимаешь как корутины работают? Корутина это не функция, тупой ты дегенерат. co_await это ебучий сахар над return task и task.resume(). Если у тебя нет task, то и корутины нет. Чтобы твои бредни работали деструктор должен возвращать task, который впоследствии возобновляется. Причём он возобновляется руками или либой, если ты сам не писал реализация рантайма, компилятор ничего не делает за тебя, корутина магическим образом не выполняется сама. В твоём шизоварианте деструктор возвращает в никуда таск, который мгновенно уничтожается и деструктор никогда не выполнится. И никакой RAII не нарушается, все объекты вызывают свои декструкторы, а корутины не имеют никакого отношения к объекту, методы которого ты сделал корутинами.
>>3283076 Просто веб-макаки приходят из жс и считают что корутины это как у них асинхронные функции, лол. А потом пытаются деструкторы сделать асинхронными.
>>3283076 Ты меня уже заебал своей тупорылостью. Я в доль и поперек знаю как корутины устроены, а ты похоже что вообще не понимаешь.
>Корутина это не функция А что это по твоему, поехавший? Пиздец. >A coroutine is a function that can suspend execution to be resumed later.
>деструктор возвращает в никуда таск, Ебланище тупоголовое сука блять, деструктор возвращает таск, как я написал в примере возможной реализации, в вызывающую его корутину, еблан ты это осознаешь сука собака тупая? Понимаешь? Внутри корутины вызывается деструктор объекта который внутри неё же и создается и она же его и co_await'ит, понимаешь это сын ебучей собаки? Ты шакал, осознаешь что у тебя корутина вызывает в конце final_suspend которую она же и co_await'ит? Но ты этого не видешь. Ты в курсе про это, идиот? Так вот дебил, слушай дальше, тоже самое могло быть и со всеми обхектами с автоматическим лайвтаймом внутри корутины.
>И никакой RAII не нарушается, все объекты вызывают свои декструкторы Спасибо, нахуй не надо мне деструкторы с блокирующим кодом.
>а корутины не имеют никакого отношения к объекту, методы которого ты сделал корутинами. Еще скажи что корутины вообще не имеют отношения к объектам которые ты объявил внутри них.
Ты просто ноль ебаный не отвечай мне больше ничего сюда, вести диалог с нулем мне нахуй не надо время тратить только.
>>3283137 > А что это по твоему Тупая макака, твоя "корутина" ничем не отличается от обычной функции, совсем. Что по твоему на пикрилейтеде является корутиной и почему авайтится просто таск? Корутина это структура, в которой сохранён приостановленный фрейм функции. > деструктор возвращает таск > в вызывающую его корутину Вот же ты дегенерат. Деструктор выполняется ПОСЛЕ выхода из области видимости корутины, а не в ней. Корутина его не вызывает. > Спасибо, нахуй не надо мне деструкторы с блокирующим кодом. Еблан, корутины это не многопоточность. Нахуя ты пытаешься добиться результата не предназначенным для этого инструментом? Деструктор по определению должен выполняться сразу, а не как ты хочешь откладывать его выполнение. Для неблокирующего выполнения есть многопоточность. Точно так же как у тебя реализована многопоточность в примизе, так же и реализуй её в close.
>>3283184 Ты просто неадекватно туп, даже отвечать тебе ничего по теме не буду, это все равно что биться головой об стену, пытаясь обсуждать С++ с приматом из зоопарка, и то эффект наверное будет лучшим с приматом, чем с тобой. Ты несешь полнейшую хуйню, не понимая как работает С++ вообще, просто в голове каша из каких то фрагментов знаний.
>>3283285 Да пока они починят там все, я уже на пенсию уйду, лол. Стандарт выходин раз в 3 года, в с++26 я не примопню, чтоб что-то с корутинами делали, значит как минимум ждать до 29 года
>>3283285 >>3283727 В С++29 не планируют ABI менять, значит ничего не будет. И в С++32 тоже не станут, пока сишка не сдохнет ABI будет стабильным. Единственные за его изменение были Майки, но у них только один человек в комитете сейчас, столько же сколько и от Яндекса. Так что смиритесь, отдельных асинхронных функций не будет никогда, только корутины в текущем виде.
>>3283743 А почему не будет и почему это поломка ABI? В джаваскрипте же есть async function() которые промис-объект возвращают, логично то же самое сделать в плюсах что бы не ебаться с интерпритацией, так же собственно как это сделали с корутинами.
То есть например asyncmyFunct() -> int { return 1; } будет аналогично std::promise<int> myFunct() { return std::promise<int>(... [] () { _ return 1; _ }) }
>>3284720 Я ведь не требую в стандарте его, мне хоть какую-то реализацию бы. Но ведь нихуя нет, только на ассемблере писать. Алсо, у растанов даже вроде что-то есть.
Как наличие векторных инструкций для упакованых f16 значений поможет с одиночным f16 типом, шизик растанутый? Этот формат используется в квантовании/нейросетках чисто что бы f32 массивы сжимать, не нужно на нем вычисления делать, хотя в матбиблиотеки вроде добавлен round16, есть наверно и конвертер, используй их.
А под avx надо так и так на ассемблере хуячить, кокпелятор по части автовекторизации очень ограничен, это считай задача уровня планирования кода для vliw.
>>3284748 Майки решили что им не нужен стандарт, у них компилятор не поддерживает его и они не собираются реализовывать этот хедер в STL. >>3284763 > не нужно на нем вычисления делать GPU уже 20 лет делают вычисления на нём, AVX512 умеет в операции над ним. > кокпелятор по части автовекторизации очень ограничен uint128_t же завезли, а ведь это ещё более "ненужная" хуйня.
>>3284704 Так если ты на AVX2 пишешь, используй интрисикты, там должно быть, один хуй это все векторные инсрукции и ты там не должен оперировать обычными скалярами. Но если ты такие вопросы задаешь, то скорее всего тебе это точно не нужно.
Так я и не понял нахуя этот стринг вью нужон. Кто-нибудь полноценно пользуется в своих проектах этим классом или это опять решение какой то проблемы какого то одного человека из комитета как и остальное многое что попадает в стандарт? Зачем он нужен, если рефернс\мув семантика все и так покрывает? Я чего то не понимаю?
>>3284859 > тебе это точно не нужно Мне и не нужно. Я просто разобраться хотел как с системщиной в системном языке. Вот надо будет что-то сделать, а тебе челики из комитета говорят пиздуй на ассемблере писать.
>>3284834 avx это не скалярные операции над числом, а специализированные операции над векторами. Прежде чем на них ссылаться изучи документацию что они делают, более чем уверен там наборы операций для ускорения свертки нейросетей, что бы не simd под них подстраивать как с sse/neon, а уже сразу в simd -е были нужные наборы операций. Это то чем интел занимается все последние года, да и gpu тоже туда идет. Что касается int128 то он как бы нужен для перемножения лонгов, и в железе с ним вопросов меньше так как 128b векторные регистры и поддержка f64*f64 это на сегодня векторный минимум.
>>3285139 > Прежде чем на них ссылаться изучи документацию что они делают Я же и кинул список инструкций AVX512, не ебись в глаза, а лучше сам загляни туда.
В любом случае avx это упакованый тип vf16x12 (под 256 регистр), который можно сложить или что-то еще сделать только с таким же типом, семантика языка не позволяет вводить такие типы потому как набор операций и результатирующий выхлоп строго зависят от конкретной реализации конкретного процессора например может быть mul(vf16x12, vf16x12) -> vf32x6 а может и не быть или быть иначе, как вендор решит так и будет.
А ты просишь тип что бы строчить: f16 a = 1.0fc; a += (f16)b; Мотивировав тем что ну вот там есть же векторные операции какие то.
Это так не работает, можно ввести тип он будет конвертироваться в f32 туда и обратно, иначе человек который сейчас хочет скалярный f16 следующим шагом захочет заполнять им структуры, писать в юнионы итд.
>>3285349 > он будет конвертироваться в f32 туда и обратно Лол, чел, прекращай. Там операции над упакованными f16, без всяких конверсий. Если инструкции как ты описываешь, но есть и без конверсии.
>>3284914 >Так я и не понял нахуя этот стринг вью нужон Потому что без него контейнер<стд::стринг> будет тебе при каждой сраной проверке существования такого ключа ебашить аллокацию с копированием.
>>3285599 >Верим Долбоеб? То есть, если ты чего-то не понимаешь в С++, как это использовать, значит и другие, по твоему мнению, так же должны не понимать и не использовать это?
Алсо, буквально сейчас написал парсер json на стринг вьюхах.
>>3285653 Да нет же. Ты же просто тупой, как тебе можно верить что ты там что то понимаешь в плюсах и пишешь парсерсы если ты даже вопрос распарсить не можешь. Банально однозначное айкью вот и все как бы
>>3285660 Братишка не рвись. Кто виноват что ты придурковатый клоун который непонятно зачем берется на вопросы отвечать в которых он сам не разбирается? Ладно на двачах ты не понятно нахуй полез, а если например ирл кто? Ты же опозоришься перед людьми. Так что ты можешь пойдешь чего по вьюхам почитаешь?
>>3285667 Нет. Ты просто хронический пиздабол который пиздит и пиздит. Когда ты свое ебало раскрываешь тебе никто всерьез не воспринимает, обрати внимание на это, на двачах да это все хуйня, а ирл ты тот еще клоун конечно
>>3285670 Прикольные у тебя фантазии конечно, это ты свои комплексы проецируешь сюда? Жаль тебя, униженца.
Алсо, ирл ты бы очень быстро от меня в ебало получил, за такой базар. Хотя нет, ирл ты бы смотрел в пол и боялся бы сказать что-то не то, чтобы ненароком не разозлить кого-нибудь, чтобы не получить пизды, как это было с тобой в школе.
тих тих маленькие пиздец наху 2025 год крестотред троллят стрингвьюхами итоги или вы оба на самом деле один шизик который тут уже про мув конструкторы и делет без деструктора высирался
>>3285678 Вот уже много лет здесь единственный анон создаёт иллюзию того, что в этом треде сидит куча анонов и обсуждает плюсы. Но почти все посты написаны одним и тем же аноном.
>>3285712 Есть мнение что тег специально не добавлен что бы в него не перекатывалось все вот это ноющее вахтерное говно, которое перепутало тематический тред про программирование со своим калфо-чатом.
А если серьезно, обезьяна вас больно избалывала, мы при педалине все руками искали и ничего, а у вас без тега уже вой и паника. Мама не разрешает за первую страницу гулять, там наркоманы и детей похищают.
Короче нахуй, я съебоваю с этого треда, просто блять помойка с нулями. Что тут обсуждать - я хз. Тут либо сидят нули которые фундаментальных основ которые даже джуны обязаны знать, не знают. Либо какие-то троли, которые тролят тупостью. Нахуй нахуй. Лучше пойду обсирать пидоrust'ов. Там хотя бы весело бывает, чем тут унылая помойка с 2.5 шизоидами с нулевым скилом.
>>3286144 Дебилоид, у тебя string создается неявным образом из сишной строки, потому что find принимает const string&. Тебе надо тогда либо const char* делать в качестве ключа либо string_view, но ты понимаешь, что это будет работать только для статических строк, которые зашьются в память твоего бинарника.
У тебя стрингвью не может хранить сам объект строки с динамической памятью и если ты такое провернешь создав string и присвоишь его в мапу со string_view где то в функции то по окончанию функции у тебя эта строка станет невалидной т.к. память очистится.
string_view можно использовать в качестве ключей, до тех пор пока память указывающая на эти данные валидна.
>>3286144 > ле пук Ясно >>3286165 Константы никто не алоцирует, в данном случае find вообще проинлайнится и будет побайтово/повекторово сравнивать строки с текст-литералом. Ну это в идеале конечно
>>3286185 А нахуя мне сам поиск, у меня не волшебнве винт/сеть, которые сразу данные хранят в виде std::string. И речь-то о недостатке крестов, исправленном в более поздних стандартах вьюхами и гетерогенными лукапами, а не о алгоритме поиска.
>>3286188 Какой недостаток крестов со стрингами? Вьюхи тебе тут как помогут вообще? Тебе эти строки в любом случае где-то надо хранить. Если не хочешь даже единоразово копировать строку храни shared_ptr<string> в качестве ключа тогда или сделай свою CoW строку, но в любом случае тебе её нужно хранить где-то в памяти, вьюхи тут тебе никак не помогут.
>>3286198 >строки в любом случае где-то надо хранить А они уже прочитаны в память и хранятся себе, даже если это const char. Вообще такое ощущение, что я объясняю какие-то очевидные вещи, но при этом и мне объясняют какие-то очевидные вещи. И это при куче конрструкторов. Блеск и нищета. Теперь я понимаю козлов, которые назло всем придумывают новые языки.
Можете скринить, в -std=c++2030 будет интернинг строк по умолчанию, а вы прямо в этом треде будете с седыми бородами объяснять "ньюфагам", что это правильно, что это так и надо.
>>3286200 >А они уже прочитаны в память и хранятся себе Ну допустим, тогда тебе нужно следить за тем, чтобы твои строки не подохли раньше чем мапа в которой ты хранишь указатели на эти строки через sv или const char. Просто то, что ты описываешь можно было решать и до стрингвью довольно просто, храня конст чар зведочка, вью же решают проблему некопирования строки при передачи её в какие-нибудь функции и т.д. где время жизни объекта предопределено стеком. С вьюхами удобно работать потому что у тебя есть строка либо фрагментр со всеми вытекающими функциями типа поиска и т.д. и ты его можешь практически бесплатно скопировать или делать так value = value.substr(0, value.find('something'); у тебя не будет лишних копирований памяти а копироваться будут только указатели и размерности объектов sv. Но использовать стринг вью в качестве ключей мапы можно, нонужно это делать очень осторожно.
>>3286209 Очевидно, что куча конструкторов - это плохой путь, который плохо описывает то, что должно происходить. Но это теперь навсегда с нами, потому что кресты это инструмент, которому в ряде случаев замены просто нет. Создатели stl наверняка периодически испытывают отчаяние, если они не совсем бездушные твари, от того, что они сделали это все именно так.
>>3284914 >Так я и не понял нахуя этот стринг вью нужон. Нужен, очевидно, чтобы работать с кусками строк без копирования. До этого приходилось даже в станадартной либе лепить костыли вроде str, str_end в strtof. Сейчас можно (и нужно) во всех функциях, принимающих константную строку, делать это через string_view.
>>3286198 Правильно блять еще шаредпоинтерам на строки шизика научи. Не надо лезть в низкий уровень хуй пойми зачем и для чего, пишите с копированием перекопированием, это будет все равно гораздо меньше по ресурсам занимать чем джава какая нибудь. Когда до приличных массивов дойдете которые которые на копировании обходе все колом ставят, тогда и занимайтесь экономией и оптимизациями.
>>3286297 Так я и пишу с копированием где нужно, мне похуй что там скопирутеся пару раз че-то, это никак на общей производительности программы не отразится и я не страдаю шизой с преждевременной оптимизацией.
>>3286397 Ну да, только не чуточку, а во много раз быстрее, и для этого не нужны оптимизации, просто пишешь без задней мысли и всё. Оптимизации нужны только когда ты хочешь написать на крестах быстрее написанного тоже на крестах.
>>3248820 (OP) Только начинаю вкатываться в это ваше настоящее программирование и у меня, как у математика, сгорела задница от непоследовательности синтаксиса. Почему указатели инициализируются через , хотя наоборот является оператором превращения указателя в значение? Т.е разве не логично бы было иметь int a = 5; int& b = &a; вместо int a = 5; int b = &a; ??? И да, какого-то фига этот синтаксис используется для ссылок, хотя для них можно было бы использовать освободившиеся или вообще какой-нибудь $ чтобы явно обозначить то, что это совсем другая концепция.
Еще меня слегка взбесило то, что операция % не работает как это должно было бы работать в циклической группе, но это хотя бы технически оправдано, насколько я понимаю.
>>3248820 (OP) >>3286819 (⚹ вставлены) Только начинаю вкатываться в это ваше настоящее программирование и у меня, как у математика, сгорела задница от непоследовательности синтаксиса. Почему указатели инициализируются через ⚹, хотя ⚹ наоборот является оператором превращения указателя в значение? Т.е разве не логично бы было иметь int a = 5; int& b = &a; вместо int a = 5; int ⚹b = &a; ??? И да, какого-то фига этот синтаксис используется для ссылок, хотя для них можно было бы использовать освободившиеся ⚹ или вообще какой-нибудь $ чтобы явно обозначить то, что это совсем другая концепция.
Еще меня слегка взбесило то, что операция % не работает как это должно было бы работать в циклической группе, но это хотя бы технически оправдано, насколько я понимаю.
>>3286822 Делай свой яз. Сейчас благодаря LLVM это просто. Да даже сама ниша LLVM существует - ты же не будешь тащить 200 мегабайт, чтобы преобразовать свой код в условный WASM, который и сам выполняет задачи преобразования кода, это я про JIT. А где компилер?
>>3286822 Проблемы си плюс плюсеров. Говорят же вам, не ебите мозги, возьмите другой язык - rust или golang. А вы неееет, это база! Ну получайте свою базу. Где-нибудь среди тысяч строк поставишь не там амперсанд или звёздочку и будешь миллион лет гадать, почему программа крашится. Чего никогда не случится в том же расте, так как он показывает где ссылка и на что.
>>3286819 >в это ваше настоящее программирование Про "настоящее программирование" это вообще пушка. Если программа/сайт/приложение работает - какая хуй разница, на чём они написаны, на языке си плюс плюс или на языке коровьих лепёшек? Двач вообще по-моему на пёрле написан и чё?
>>3286830 Чуть более сложные проблемы и растом не решаются. Я вот спросил у них в треде, как раст помогает разрулить простую ситуацию, что кнопка может быть уничтожена в обработчике события onDown, после чего onUp это будет хуже UB. А никак. Ну и зачем мне ебаться с растом тогда.
>>3286838 Ты задал какой-то вопрос и тут же слился через 2 миллисекунды. Все языки будут хуёвые если сливаться при малейшей трудности со словами "фу развод". Почему не решаются? Это твоё такое мнение?
>>3286829 Та не, в остальном мне скорее даже нравится, по крайней мере пока. Хотя разобраться с тем, что из себя представляет линковка и как нормально использовать чужие библиотеки у меня все еще получается лишь частично.
>>3286836 Мой родной питон просто не вывезет вычислять симуляцию, которая меня интересует. Я не хочу ждать результата несколько недель.
>>3286847 >что из себя представляет линковка и как нормально использовать чужие библиотеки Это вопрос зубрежки. У вас же в матане бывает так, что простой принцип основан на куче материала, которую надо просто выучить. Ну и тут так же.
>>3286850 >отвечай на вопрос тогда Не-не, стоп нахуй. Ты про какую вообще кнопку говоришь? Их миллион. Откуда интерфейс? Веб? Эмбеддед? Десктоп? В каждом по 100500 разных фреймворков. Я тебе могу навскидку перечислить egui, slint, lvgl, tauri, dioxus... И в каждом своя реализация кнопок. И в каждой реализации свой набор методов, надо документацию открывать и смотреть.
>>3286847 > Мой родной питон просто не вывезет вычислять симуляцию, которая меня интересует. Я не хочу ждать результата несколько недель. Только хотел предложить питон Что за привычка хвататься сразу за указатели? У тебя в пистоне они были? Нет? Так за каким хуем ты переписывая с пистона на плюсы начинаешь код обмазывать указателями?
>>3286851 > У вас же в матане бывает так, что простой принцип основан на куче материала, которую надо просто выучить Не, в математике учить почти ничего не надо. Одни принципы выводятся из других принципов. Главное выработать понимание с опытом.
>>3286852 >Змеюка хотя бы умеет в realloc Моих знаний пока не хватает, чтобы полностью тебя понять.
>>3286883 >Что за привычка хвататься сразу за указатели? Потому что про них часто говорили, та и вообще это оказалось довольно базовой и простой штукой. В отличие от линковки. У меня все еще травма от того, что я не могу нормально даже график нарисовать в плюсах.
>>3286984 >Таблетки прими, если ты такая нервная сучка. Что за таблетки :3 >на питоне на изи можно вычислительную программу не медленее чем на С++ написать. Ого, и как же на питоне написать, например, эффективный клеточный автомат типа GoL на 100000x100000 ячеек на 1000000 итераций? Использовать numpy? >всем похуй на твои говно пет проекты, где ты числа Фибоначчи вычисляешь. Ну так я для себя этим занимаюсь. Пока, п крайней мере.
>>3287147 > вообще это оказалось довольно базовой и простой штукой. Для плюсов это не базовая штука, это низкоуровневая архаика для совместимости с си. То что ты на плюсах в линковку не можешь говорит о том что ты в принципе не понимаешь как адреса работают, и берешь стекпоинтер и говоришь что это база. Это пиздец, а не база.
>>3286822 >Почему указатели инициализируются через ⚹ Это не инициализация, а объявление переменной. Т.е. int ⚹a означает, что объявлена переменная a, такая, что у ⚹a будет тип int. Немного странная логика, но она тут есть. Это исторически из си пришло. С синтаксисом ссылок уже Страуструп налажал.
>>3287240 >Это не инициализация, а объявление переменной. Уместное замечание, я действительно имею ввиду именно объявление. >объявлена переменная a, такая, что у ⚹a будет тип int Ну, действительно не бессмысленно, но по-моему это все равно пипец, а не адекватный синтаксис.
>>3287256 >но по-моему это все равно пипец, а не адекватный синтаксис. В Паскале примерно так же, объявление a : ^integer, дереференс a^ := 10, адрес a = @b. Скорее всего это из какого-то более древнего языка пришло и в си и в Паскаль.
>>3287147 >Ого, и как же на питоне написать, например, эффективный клеточный автомат типа GoL на 100000x100000 ячеек на 1000000 итераций? Использовать numpy? numpy, cython, numba еще хуева туча jit компиляторов. Используй че хочешь
>>3287346 Какие еще свойства переменной, наркоманище. Переменные распределяются по регистрам. b - это переменная. int - размер данных выделяемых на стеке (4 байт). xa переменная с адресом на данные (размера адресов в адресном пространстве ос, обычно это 32-64бит). int - размер данных расположенных по адресу.
auto c = xа + b; - сложение целых типов (размером в слово).
Что бы генерировать машинный код нужно строго знать размер сегментов и какие конкретно операции подставлять, без этого ничего работать не сможет. В самом языке никаких свойств переменных нет это формула для генерации корректного машинного кода.
Пришёл с немного нестандартным вопросом: Как вынести из проекта код в библиотеку на манер второго квейка? Там при запуске движка оно идёт искать .dllку по игровым папкам, и потом подгружает через LoadLibrary, получает функцию-геттер через GetProcAddress, а потом дёргает её чтобы получить АПИшку. Щас сижу как еблан на эти исходники в си смотрю и не пынямаю как такое на плюсах сделать.
>>3289743 > Лучше бы Мозила, кстати, за браузером следила, чтобы он не оказался среди практически неиспользуемых. Что интересно, отсутствие раста не помешало хрому, который-то сделан на сложных неудобных крестах, выбросить фаерфокс на свалку. Так пидорастеров выгнали из мозилы.
>>3289702 Посмотри первые эпизоды handmade hero, там делают игровой движок исполняемым файлом, а игровой код дллкой. И еще реализуют горячую перезагрузку игрового кода.
>>3289726 > го Ну какой го блять. Я понимаю если бы я спрашивал... Хз, на что заменить питон, тогда может быть го и прокатил бы. Но какой нахуй го как замена плюсам?
>>3289783 А вообще ведь да, я наглухо забыл что только в бфг по уёбищному игровая либа статически линкуется с экзешником движка если дефайн _DOOM_DLL_ не задефайнить, спасибо ещё раз что напомнил.
Как же комитетные дауны в очередной раз обосрались выкатив говно под названием std::filesystem от которого толку нет, один хуй приходится системные api юзать чтобы получить полные атрибуты файла типа atime и т.д. Нахуй они выкатывают говно неюзабельное из коробки? Бля С++ реально язык мем нахуй, такой помойки как в С++ нету ни в одном языке пожалуй. Сейчас я услышу вскукареки петушков о несовместимости различных систем, но пошли вы нахуй блять, в питоне и других языках вполне себе есть все атрибуты файлов в их стандартных кроссплатформенных либах. Просто пиздец, реально С++ захватили дауны с отрицательным IQ. Уж лучше бы нихуя не делали и это говно бы уже давно сопкойно умерло никому не мешая и уже давно бы придумали его саксесора типа карбона, но пидарасы комитетные давали иллюзию что язык якобы развивается, но по факту это фейковое развитие, большинство функционала не нужно либо не юзабельно в полной мере из коробки. Желаю С++ скорой и мучительной смерти, надеюсь в один день все резко забудут о таком уебищном высере даунидзе страуструпа как С++. Который из коробки заслуживал смерти. Вспомните С++98, этож блять не язык а говна кусок вообще. Я не понимаю как такое уебище вообще в свет можно было выпускать. Как можно было проектировать язык так безграмотно, что в нем есть миллионы UB, куда не плюнь - это UB разве так должен работать современный язык? Десятки лет потребовалось долбоебу страуструпу и его даунской команде, чтобы допилить язык до с++11, на котором стало проще писать, и я считаю на этом нужно было закончить развитие языка, потому что он был все еще невозможно уебищным, но для поддержки легаси говна упростили немного жизнь, а нужно было проектировать новый язык с нуля, на котором бы писали уже все новые проекты, а не делать вид что ебать у нас "коммитет эспертов С++" "коммитет решил" да вы хуесосы позорные, которые нихуя в языках не понимают, которые нихуя не могут сделать с языком. Вот реально если взглянуть трезво правде в глаза, С++ жив только и только потому, что есть огромная база легаси кода. Даже сейчас раст уже отбирает у С++ неплохую долю на рынке, хотя раст по мне тоже еще то говно на костылях, но это все равно в 10 раз лучше чем С++. С++ язык ущерб, язык пидор, язык гной.
>>3289915 Я согласен, что раст тоже говно, но он хотя бы намного более грамотно был спроектирован на самом начальном этапе, хоть и не без косяков. Но мой тезис заключался в том, что нахуя было """"развивать"""" дальше с++, вместо того, чтобы сидеть и пилить ему замену? Почему карбон только сейчас стали пилить? Чем думали последние десятки лет? Все нравилось писать на этом кривом раздутом говне с кучей UB? При чем многие же писали свои стандартные либы, потому что понимали что стандартная либа из коробки - кусок говна. Многие использовали только сабсет из языка типа там всяких MISRA C++. Я думаю ответ очевиден, что толкало их на такие решения - с++ сам по себе раздутое, неюзабельное из коробки говно с кучей UB, которое просто не подходит для проектирования серьезных систем. Ты прав вменяемых альтернатив практически нет, писать на чистом си - еще более опасно и долго. Раст слишком поздно появился, D умер из-за GC, что там еще было ну понятно что все языки с GC мы не берем в расчет. Да альтернатив не было в те времена. Но неужели всем так нравилось жрать говно наебовая свои велосипеды на с++? Вопрос риторический. Эта индустрия проклята
>>3289949 Система сборки в расте, кстати, одна огромная дыра, потому что build.rs выполняется на твоей пеке при сборке либы, т.е. там может быть какой угодно зловредный код. Точно так же как в npm и питоне уже напарывались на подобное говно, когда сборка проекта целенаправленно ломает систему/ставит вирус. >>3289954 > Я говорю про сам язык. Про realistic subset или нет, лол? А то ведь в безопасном расте без проблем реализуются небезопасное обращение к памяти. Как и UB достаточно из-за дырявой системы типов и мисскомпиляции. Я уже молчу про то что каждая либа тянет ещё сотню либ, половина из которых содержит ансейф и безопасность фактически только локальная, да и то если используешь только realistic subset без попыток провернуть что-то за пределами описанного в доках. https://github.com/Speykious/cve-rs
>>3289980 А тебе кто-то обещал что нельзя? Вот раст много чего обещает и ничего по факту не выполняет. Если бы растаны на каждом углу не пиздели про безопасность, то и к ним не было претензий. А по факту раст просто безопаснее крестов, но ни разу не безопасный, в том числе и в работе с памятью. При этом куча шизиков ещё рассказывают что безопасность работы с памятью в расте формально доказана, хотя в этом доказательстве не про весь раст, а некий realistic subset, лол.
>>3289976 Так никто не спорит, что в расте куча дыр, но в сравнении с с++, где на каждом шагу UB и в котором даже нету намека на безопасность по памяти, раст выглядит как относительно безопасный неплохо спроектированный язык с хорошим функционалом и современной системой типов. Лучше ли раст С++? Да Буду ли я переходить с С++ на раст? Нет Вижу ли я будущее у раст? Нет Вижу ли я будущее у с++? Сомнительно
>>3289999 > на каждом шагу UB Не на каждом. И всё UB задокументировано стандартом. Это не дыры как в расте, которые могут отстрелить тебе ногу пока ты думаешь что в безопасности.
>>3289954 > Я говорю про сам язык. Нормально спроектированный язык к одному компилятору и репозиторию исходников прибит гвоздями быть не может.
Я уже не говорю про совместимость с библиотеками и вообще отсутствию в расте понимания что библиотека может быть частью операционной системы а не репозитория, кроме того она может быть проприетарной (т.е. без исходников). Этот язык с его ограничениями физически не может заместить си и плюсы, его соперники это го и свифтами но пидорастеры со своей хуйней поперлись в системный уровень и библиотеки, щас мы их мол перепишем и хорошо будет. А лоу левел оптимизации под симды хуимды подвезете? Какие ещё оптимизации, у нас все llvm сам сделает.
>>3248820 (OP) Хочу почитать про винапи. Чтобы восполнить пробелы в образовании. Нашёл книжку Джефри Рихтера, 4 издание, переработанное и дополненное. А там говорится, что есть три ядра, вин95, вин98 и самое новое, заморское, вин2000. И упоминается, что появились 64-битная версия. Вот и возникла мысль, а может быть есть литература посвежее или получше?
> отсутствию в расте понимания что библиотека может быть частью операционной системы Во-первых, что значит частью операционной системы? Ядро ОС - это как правило тупо монолитный бинарник, и чтоб он запустился никакие библиотеки не нужны, ну кроме загрузчика. Во-вторых, допустим ты имеешь ввиду библиотеки которые ты\кто-то другой уже установил в твою систему, на сколько я помню раст конечно же не может напрямую цеплять сишные либы как и любые другие языки кроме С++, поэтому в нём предусмотрен FFI. Так что не особо понятна твоя претензия.
> его соперники это го и свифтами Бля ну тут ты вообще мимо нахуй, это абсолютно другие языки для другой прикладной деятельности, как минимум из-за наличия у обоих GC. Наличие GC в языке в корне меняет его применимость где-либо.
>поперлись в системный уровень и библиотеки, щас мы их мол перепишем и хорошо будет. Так раст и был задуман как системный язык изначально, алло нахуй. Что там кто переписывает я хз, и главное зачем, ты наверное путаешь обертки FFI с полным переписыванием библиотеки.
>А лоу левел оптимизации под симды хуимды подвезете? С этого вообще выпал, что тебе мешает использовать симды в расте?
>Какие ещё оптимизации, у нас все llvm сам сделает. Ты о чем вообще, ну да llvm может наверное что-то векторизовать если увидит возможность. Так же как и в GCC и в других компиляторах. Думаешь в С++ твой говнокод с вычислениями автоматом векторизуется как надо и будет использовать новейшие симд иснструкции? Хуй там. Только ручками.
>>3290080 Так винда уже сто лет работает на последнем ядре NT это и есть твой вин2000. И естественно уже столет 64 битное. Хз я не эксперт в виндокале, я линуксоид, но вроде у них даже на MSDN если вся необходимая инфа. Кстати вспомнил на работу 5 лет назад покупали кижку по виндовому апи, но не помню как называлась, я её открыл 1 раз чтобы доказать одному дауну, что я прав.
>>3290080 MSDN почитай. Полнее документации не найдёшь. Примеры кода на стаке загуглить можешь. >>3290086 > Так винда уже сто лет работает на последнем ядре NT это и есть твой вин2000. Так-то с 2022 винда перешла на модульное ядро, а драйвера на WDF. Просто индусы беспокоятся об обратной совместимости, в отличии от линуксоидов, и все переходы происходят незаметно для юзера.
>>3290098 >Так-то с 2022 винда перешла на модульное ядро, а драйвера на WDF. Просто индусы беспокоятся об обратной совместимости, в отличии от линуксоидов, и все переходы происходят незаметно для юзера. Неудивлен даже, Поэтому она такая лагучая? У меня она стоит на ноуте второй осью, сидеть на винде это вечный лагодром, все медленно грузится, постоянно поттупливает - просто пиздец. Хотя железо у меня хорошее, ноут игровой asus rog strix. Возвращаешься на линукс, просто шик, все летает, все плавно работет, ничего не поддупливает, просто блеск.
>>3290108 > все медленно грузится, постоянно поттупливает > железо у меня хорошее 2 ядра 2 гига из 2005 - это не хорошее железо. Алсо, если у тебя система не на SSD, то можно только посочувствовать твоему слабоумию.
>>3290083 > Во-первых, что значит частью операционной системы? Операционная система это дистрибутив состоящий из многих компонентов и библиотек оттестированных и стабилизированых. Так не только в линуксе но и в маке и в винде и в андройде.
Для предоставления программам api используются заголовочные файлы библиотек/фреймворков, это в винде/макоси. В линуксе большой пласт софта требующий зависимостей вроде gtk4, вяленда, systemd итд, который, судя по флатпакам, будучи собранным не мамнтейнером а васей залупкиным под свой core-i9 x9999 на тестовом ведре, у других либо отказывается запускается либо работает нестабильно.
Некоторые вещи в принципе нельзя в пространстве пользователя пускать я говорю про контейнеры виртуалки и 3d контекст, нужна библиотека из пространства системы работающая с привелегиями. > цеплять сишные либы как и любые другие языки А свои либы оно может цеплять внешние? Не может так как нет заголовков система сборки сама находит модули, как ей предоставить информацию о модулей который будет снаружи подцеплен не прдумали, в npm на джаваскриптах у парней таких проблем не было. > это абсолютно другие языки для другой прикладной Именно что оно, для "безопасного" приклада, сидели бы там и конкурировали но нет. > С этого вообще выпал, что тебе мешает использовать симды в расте? Так нет заголовков и билтинов, или ты сишный код вставляемый в виде строки в раст записываешь? > Ты о чем вообще, ну да llvm может наверное что-то векторизовать если увидит возможность Именно в том что даже умный компилятор для эльбруса предупреждает что возможности по автовеаторизации у него крайне ограничены и надо подключать ручки.
Какие инструменты раст предлагает для ручной векторизации при помощи интринсиков? Блок строки на си? Знаешь на джаваскрипте тоже можно код на GLSL в строке писать, там обработку картинок в цикле, переворот, фильтры вот это все, очень быстро работает на gpu, можно наверное и математику считать какая разница. Но только это не делает жабаскрипт системным или прикладным языком. Тем более заменой плюсов на которых его виртуальная машина написана и оный компилятор glsl.
>>3290169 Выкуси, а. Просто винда - худшая, тормозная, неудобная, напичканная анальными зондами. ос. Которая еще будет пытаться быть умнее тебя. Ну для овоща с отрицательным IQ норм вариант.
А виндовое API... это пездец. Я как-то разрабатывал пол винду, тормозящие алокаторы плохо умеющие в многопоточность, говенный сложнейший дизайн апи, куча багов в компиляторе msvc и многое другое
Системные библиотеки сейчас делаются в виде тонких обёрток над dbus api. Уникумов вроде pcscd можно не учитывать, там лучше самому apdu коды слать, чем их либу семе мапить.
>>3290211 > Так нет заголовков и билтинов, или ты сишный код вставляемый в виде строки в раст записываешь? Да как это нет https://doc.rust-lang.org/core/arch/x86_64/index.html А даже если я где-то обосрался, что-то не дочитал и их на самом деле нет, то есть асм вставки
>>3290226 Похуй что ты визжишь, намного важнее что сам Линус говорил про десктоп линукса - он считает что надо как на винде, а не как у криворуких дистроклепателей, тянущих каждый в свою сторону. И он всегда признавал что десктоп линукса кал с нулевым юзерэкспириенсом. Алсо, забавно слышать про скорость от тех, у кого второй язык в системе - это питон. > напичканная анальными зондами Раз уж ты линуксоид, то надо придерживаться Линуса. Он за нормальную бинарную дистрибуцию софта, а не миллион репозиториев и компиляцию всего по часу. > Которая еще будет пытаться быть умнее тебя. Опять же, пердоль обоссывает сам Линус, говоря что если кто-то умеет пердолиться, то это ещё не значит что его надо заставлять тратить своё время на это, софт должен просто работать из коробки.
>>3290252 > Он за нормальную бинарную дистрибуцию софта, а не миллион репозиториев и компиляцию всего по часу. Нормальная дистрибюция это когда библиотеки vcredist за весь 2000-2010-2020 надо из интернпта доустановить, Нет.Срамворк, directx online installer, power shell - это вот это нормальная дистрибъюция я правильно понимаю?
Пинус торвальдс сам не добавил в ядро никаких модулей с api как в винде и макоси, а ждет что маинтейнеры как то на своем уровне договорятся о стандартизации юзерспейса что бы программы были совместимы. Но линукс как был программой из которой просто функции торчат так и будет
>>3290275 Я правильно понимаю, что нормальная дистрибуция по мнению пердолика это установка из интернета сотни зависимостей перед тем ставить нужные пакеты, а потом сборка из исходников того что нет в репе? Нормальная дистрибуция когда ты не можешь установить разные версии пакета? > библиотеки vcredist за весь 2000-2010-2020 надо из интернпта доустановить choco install vcredist-all > Срамворк, directx online installer, power shell В системе уже есть. Если надо старый, то choco install dotnetfx
>>3290252 Че несешь, спермохлеб? 1.Пруфы что Линус так говорил. 2. Даже если это так, мне похуй как он говорил или говорит, я пользуюсь свободным ПО и я в состоянии настроить систему так, как мне нужно и не испытывать с ней никаках проблем, потому что IQ у меня не отрицательный как у некоторых. 3. Ядро линукса != вся система. Не зря говорят GNU/Linux. Линукс это только ядро. Так что твои вскукареки про Линуса я хз вообще нахуй тут нужны, ты только позоришься открывая свой рот. 4. Судя по твоим изречениям, своего мнения у тебя нету и ты как ведомая обезьяна вынужден опираться только на чужое. Неудивительно, что ты защищаешь индийский член у себя в жопе.
>>3290304 Так винда с собой тащит огромный пласт легаси говна, поэтому и весит уже сколько там 10 гб в чистом виде? + еще и лагает как мразь на современном железе.
Короче бля, хуже чем спермоглоты я даже хз кто, наверное только дауны js'ники. Я лучше на маке буду сидеть, это хотя бы имеет юникс корни и работает шустро.
Алсо, про линукс, наверное поэтому валв решила не виндос накатывать на свой дек, а пилить линукс так, чтобы там работали все игры. Наверное люди там понимают что винда куча говна лагающего, поэтому в условиях ограниченного железа это не вариант. И то что они сделали с протоном это уже огромный успех, потому что игры под ним зачастую работают быстрее чем на обоссаной винде.
>>3290304 > , что нормальная дистрибуция по мнению пердолика это установка из интернета сотни зависимостей перед тем ставить нужные пакеты Официальным пакетником из официального репозитория, а не васянским как ты предлагаешь. Ни винда, ни макось ни тем более линукс не включают весь дистрибутив из коробки, они его делят на библиотеки/программы (внезапно) и предлагают их доустановку, в линуксе из репозитория, в макоси сперва через кнопки (буквально кнопки в меню были установить mac-jdk/xcode-sdk) сейчас через апстор, но разработчики все равно пользуются васянским brew, ну а в винде некрософт предлагает на сайт к ним идти искать скачивать. На уровне интуиции догадыватся что msvc100.dll это из состава пакета vcredist2012 смотри не перепутай. А там есть еще vbredist, юникс шелл, нет.срамворк 3 и 3.5, потом 4 и 4.5 причем как отдельные пакеты.
И самое главное: ты предлагаешь все это решить сторонним пакетником и говоришь - вот достижение винды, пакетник в стиле линупс от васянов.. Совсем с башкой плохо что ли?
>>3290330 > Официальным пакетником из официального репозитория Ох лол, ещё расскажи что майнтейнер это разрабы этого софта, а не просто васяны. > а в винде некрософт предлагает на сайт к ним идти искать скачивать В msix всё само ставится. Это если софт упакован в непонятно что, то при запуске бинарника он ткнёт носом и скажет идти по ссылке. Искать никогда не надо, сейчас всегда прямая ссылка на нужный дистриб в ошибке. > сторонним пакетником choco в винду встроен из коробки, он не сторонний, лол. Майнтейнеры так же как и в пердоликсе рандомные челы, но сейчас часто сами разрабы выкладывают туда свой софт. Если тебе хочется пря от майков репу, чтоб ни один васян не притрагивался, то всегда есть вингет, тоже в системе из коробки: winget install Microsoft.VCRedist.2015+.x64 > причем как отдельные пакеты Ты лучше расскажи как поставить условный питон на пердоликс и чтоб потом не приходилось доустанавливать пакеты. Он разбит на 50 пакетов за каким-то хуем, хотя у мака/винды просто один пакет. То же самое про CUDA - миллион пакетов на каждую отдельную либу. Хочешь поставить сраный neofetch - 30 пакетов зависимостей. При этом в момент когда ты захочешь поставить свежую версию пакета, а не двухлетнюю из репы, то дико отсосёшь из-за зависимостей.
>>3290327 >Обтекай. Лол, еще раз во-первых, похуй что он там говорит, его там только ядро. во-вторых, при чем здесь вообще это нахуй, дебил? Разговор о том, что винда сосет по всем фронтам, при чем тут ты высрался с Линусом, с какими-то пакаджами, нахуй ты это принес? Да хуй с ними. Это никак не улучшает ситуацию с тем, что винда говно, которое лагает, которое неудобное, которое с анальными зондами и кривым неудобным апи? А? Говноед? Ответь мне на вопрос: Почему спермобляди так яростно оправдывают член господина у себя в анусе? Ну хочешь ты поглощать говно с членом в жопе окей. Я выбираю свободный и быстрый софт. Если бы даже мне запретили использовать линукс я бы лучше стал макойобом, выучил свифт или че он там юзают и пересел бы на макбук. Чем был бы членоглотателем индийского высера под названием windows.
>>3290354 >Ряяяя, нет тыыыыы. Ну дебилушка, что сказать. Сиди дальше сперму глотай, анскил ебаный. Я уверен, что ты даже не настоящий программист, а сидишь тут просто так срешь своим бредом на всей доске.
>>3290356 Так ты реально долбаёб, защищаешь линукс хуй пойми зачем, он тебе еблану всё правильно объясняет, что с одной стороны копроративный виндогной, что с другой стороны открытая линуксойдная моча без внятной экосистемы, и что там, что тут - страдаешь.
>>3290346 >питон на пердоликс и чтоб потом не приходилось доустанавливать пакеты. >Он разбит на 50 пакетов Ты реально такой анскил? Что за бред ты несешь я в ахуе. Какие 50 пакетов. Таблетки прими. Питон вообще предустановлен зачастую на многих дистрах. А идет он одним пакетом python3 какой-нибудь и все.
> То же самое про CUDA Куда тебе до куды? Судя по твоим изречениям, ты вряд ли что-то сложнее хелоу вордов пишешь, если вообще пишешь что-то. По теме твоего высера про куду, это называется метапекедж, и то что каждая либа разбита на отдельный пакет это очень правильное решение. И вообще твоя претензия тут не к разработчикам дистров должна быть а к нвидиа, но они молодцы все правильно сделали. Это я тебе говорю как чувак, который под куду много чего написал.
>neofetch Понятно, дауненок из десктоп треда. Ты че тут забыл, реально? Ты походу тредом ошибся.
>зависимостей А ты как хотел? Чтоб каждая сраная утилита в 200 строк кода, паковала каждый раз кучу зависимостей в один большой условный бинарник и весила пару сотен мегабайт? Ну в макоси так сделано и всякие флетпаки и снапы похожим образом работают, поэтому их все хуесосят.
>При этом в момент когда ты захочешь поставить свежую версию пакета, а не двухлетнюю из репы, то дико отсосёшь из-за зависимостей. Ты про себя очень точно сказал, ты отсосешь, но не потому что линукс плохой или разработчики пакета, а потому что ты криворукий далекий от разработки даун. Ну давай разберем тобою написанное: 1. Пакеты двухлетней давности это только в каком-нибудь дебиане. Ставь дистр с ролинг релизами и будет тебе счастье все самые новые пакеты. 2. Реальная необходимость в новом пакете встречается довольно редко. Но если таковая реально есть, то можно просто этот пакет собрать из сорцов и установить куда-то не в систему. 3. Ты просто дауненок, который не разделяет системные пакеты от локальных. Потому что ты не разработчик, если бы ты был реальным разработчиком, то такую хуйню ты бы уже давно знал как решать. 4. Когда я работал над виндовым проектом, там знаешь как делали? Просто абсолютно все зависимые либы хранили в одном огромном архиве, который очень редко обновлялся, потому что если ты что-то обновишь то зачастую это может поломать весь проект. Ты просто не раработчик, поэтому с этим не сталкивался и не знаешь что да как делается на практике. А на практике делается так: Работает - не трогай.
>>3290379 > А идет он одним пакетом python3 какой-нибудь и все. Вот ты явно никогда его не трогал, чухан. Банально pip или venv - это отдельные пакеты в пердоликсе. Прям так и называются python3-pip и python3-venv. > но они молодцы все правильно сделали Кто они, шизик? Нвидиа не мейнтейнит свои либы в репах дистров, они же не ебанутые.
>>3290346 > choco в винду встроен из коробки, он не сторонний, лол. Майнтейнеры так же как и в пердоликсе рандомные челы, но сейчас часто сами разрабы выкладывают туда свой софт. Куда "туда" выкладывают? В пакетник что ли? Школьник ты дрищешь.
>>3267691 > Так это достоинство. Нет, иногда нужен барский сапог, чтобы была хоть какая-то стандартизация, отталкиваясь от которой ужe можно пилить комьюнити велосипеды под свои хотелки. Если бы был барин, то хуита ввиде cmake, который изначально был костылем для красноглазого мейка, не получила бы такое распространение
>>3290385 >python3-pip и python3-venv. Это системные пакеты. Точно не помню пип вроде и так идет с питоном вместе, но ты манька, плохой тон ставить все в систему, обычно делают локальный venv и туда пипом все ставят. Не понимаю твоего бугурта, на счет этого.
>Нвидиа не мейнтейнит свои либы в репах дистров Да ты что? Алёша, а как на счет нвидивских реп, прямо у них на сайте, когда ты хочешь куду с сайта установить? Кто это меинтейнит по твоему?
>>3290574 Это неверное та тян которая про воксели хороший ролик сняла? Узнал ее по шизойдным высерам интересу к 3d графике, она редкое явление и ей не само программирование итересно. >>3290560 > Это системные пакеты. Спермошкольник считает что системные скрипты это вижуалбейсик и повершел скрипт, а если обкусаный питон или руби (как в макоси) то это тупые юниксойды неправильно скачали/собрали.
>>3289926 >Но мой тезис заключался в том, что нахуя было """"развивать"""" дальше с++, вместо того, чтобы сидеть и пилить ему замену? Замену в какой области лол? Раст начали пилить разработчики браузера, потому что С++ их не устраивал именно для разработки браузера. Есть куча других областей, где требования совсем другие, и С++ там норм. Тот же раст для микроконтроллеров сейчас - далеко не идеальный вариант, хотя бы потому, что там динамических аллокаций обычно нет, а со статической памятью раст работает не лучше плюсов (и гораздо хуже, например, Ады). С++ очень гибкий, можно писать в любом стиле от процедурщины и функциональщины на темплейтах до классического ООП в стиле джавы. Раст же предлагает только один, одобренный партией путь, а это далеко не всем подходит. Ну и наконец, раст это идеологически тот же наследник Алгола и батч-процессинга на мейнфреймах IBM. Предлагает разработку в стиле 60-х годов, как будто не было лиспов и смолтолка. В результате вонючее мыло предлагается обменять на кривое шило. Чтобы что?
>>3291759 > потому что С++ их не устраивал именно для разработки браузера Там история такая что в фаирфоксе очень много легаси чуть ли не с нетскейпа. Именно в самом коде браузера, если вспомнить сколько раз его целиком переделывали с нативного на XUL/COM потом на Quantum-хуянтум, теперь сделали как в вивалди максимально где возможно на html+js, где невозможно gtk библиотека затыкает.
Хотели просто перелопатить код браузера, но какая то умная голова посоветовала создать альтернативу blink да на особом языке ну и в итоге все это вылилось в servo, который застыл в разработке т.к. в коде стало сложно разбираться.
>>3291792 >в итоге все это вылилось в servo, который застыл в разработке т.к. в коде стало сложно разбираться. Лоботрясы-попильщики потому что, работать им нет смысла, надо наоборот нихуя не делать и резину тянуть. И такой весь линукс, вон посмотри, вышла новость, что Валв скооперировалась на разработку Арч-линукса, и сразу подняли вой, про "плохих корпорастов". Ну для начала, Валв не корпорация, но что важнее это тоже компания которой нужен рабочий продукт, а значит надо пинать жопы чтобы работали и делали как следует, а не как привыкли в этих пердуликсах хуи пинать говно говнять.
>>3291792 >сколько раз его целиком переделывали с нативного на XUL/COM потом на Quantum-хуянтум Кстати, смешно, что в результате сделали специально для браузера язык, в котором удобной работы с XML нет, и удобной работы с UI тоже нет. Да и вообще, каличный и нерасширяемый синтакс.
>>3291759 Да хуй с ним с этим растом. Уже 10 раз тут обсудили, что это примерно такое же говно как с++. Запилите нормального наследника С++, чтоб было с кайфом на нём писать жи эсть нахуй.
>>3291795 Ебать, как же тебя трясет до сих пор... Чем же тебя так линукс-то обидел, что ты готов даже не в тему просто отвечать, зацепившись за какую-то хуйню, высрать очередной гневный пост о линуксе? Тебя что линуксойды в школе головой в унитаз мокали? лол
>>3291864 > Запилите нормального наследника С++, Это так не работает, высрали плюсы и джаваскрипт в бородатые времена, в джаваскрипт какой то наркоман запилил prototype отдельной библиотекой, в плюсы другой наркоман stl, люди приняли как стандарт дефакто следом подтянулся консорциум, и вот так вот языки развиваются. По другом не получится твой красивый язык с правильными идеями нахуй никому не нужен кроме кучки верующих, разработчики решают практические задачи и им нужен инструмент с доступной и понятной механикой, а не дзен-буддизм с книгой мантр и священником наставником.
Поэтому популярные языки обречены быть свалкой инструментов.
>>3291935 > им нужен инструмент с доступной и понятной механикой, а не дзен-буддизм с книгой мантр и священником наставником Как раз таки поэтому плюсам и ищут замену
Аноны, вот зумеры носятся со своим растом и его безопасностью. Что в нем такого особенного? Какие он дает преимущства в сравнении с повсеместным обязательным использованием умных указателей и избеганием сишных функций, через которые можно утечь? Сам язык не трогал и сложил впечатления о нем лишь мельком почитывая тред.
>>3292313 >обязательным использованием умных указателей и избеганием сишных функций Проорал с этого эксперта по безопасности
> Почему все носятся с растом Многих заебали плюсы, некоторым просто интересно что то новое в системщине, кто то шизит по мемори сейфти и пытается спасти мир Знаю людей которым нравится по языкам прыгать, сегодня Раст, завтра зиг, после завтра ещё что то
>>3292728 Животное - это твоя мать, которую пьяные разнорабочие изнасиловали, что появилось такое, чмо, как ты. А я уважаемый господин, Senior C++ Developer. Обтекай.
>>3292753 Да это намного приятнее чем городить обосранные try..catch блоки везде, ну либо вообще забивать и ловить экспепшен в main где-нибудь, но это тоже хуевый путь. Жаль только с++ понадобилось 30 лет чтобы дойти до expected.
>>3292758 У эксепшенов только устаревший джава-синтаксис плохой, а так он сильно лучше возвращаемой ошибки. Хотя try-функции немного решает всратость синтаксиса.
>>3292764 Они вообще наоборот сильно хуже, если у тебя частая ошибка возникает. Поймать эксепшн довольно дорогая операция. А проверить еррор код - дешевая. Ерроркод находится сразу в кеше и то что там даже будет бранч-миспредикшн это хуйня, по сравнению таблицей эксепшенов которые вряд ли вообще в каком либо кеше будут находиться.
>>3292777 > частая ошибка возникает Когда у тебя код из сплошных ошибок состоит, то тут только эвтаназия спасёт. Нормальные люди сначала проверяют, а потом делают что-то. Если ты сделал что-то не глядя, поймал ошибку и после обработки начал делать это заново, то уже потратил кучу производительности впустую.
>>3292777 > Они вообще наоборот сильно хуже, если у тебя частая ошибка возникает. Поймать эксепшн довольно дорогая операция. Именно поэтому она и называется исключительной ситуацией, что происходит редко. Если она у тебя происходит часто, то ты долбаёб и делаешь что-то не так.
> А проверить еррор код - дешевая. Да конечно. Когда исключения не кидаются, код с ними ПРОИЗВОДИТЕЛЬНЕЕ, и не засоряет кэш (с чем ты и сам согласен)
> и то что там даже будет бранч-миспредикшн это хуйня Ахуенно. Съеби короче.
>>3292777 Ловить исключение, да, дорогая операция, а обходить аппаратное исключение например при делении на ноль и протягивать через весь код проверки с бранчами - это дешевая операция? Я понимаю динамический язык, там хотя бы jit есть который весь холодный и маловероятный код выкидывает нахуй, но у вас то статик компаил блять, надо все заранее продумать, нахуй его ловить это исключение, если что то происходит неправильно программа должна завершатся и все, ну для дебага можно исключения кидать чтоб стек вывесть ну и все.
>>3292820 Нет, проблема в том, что долбоебы разработчики С++ распихали экспепшены как попало, куда по кайфу. Вот возьмем никогда не возникающий на практике эксепшн bad_alloc? Нахуй он нужен? Зато я обязан это учитывать в теории. Ясен хуй что всем похуй на него. А какие-ниудь out_of_range? Вот мне ахуенно не нравится эксепшн в string_view//string - substr блять вы ахуели? Нахуя так делать? И таких примеров сотни. Где неоправданно может выброситься эксепшн и ты должен это говно учитывать.
>>3293056 Зачем тебе это все учитывать? Что ты там делаешь, ебанутый?
> bad_alloc? Нахуй он нужен? Бывает железо без mmu, вполне себе актуальное. Наверное для системщиков-пидорастеров открытие что мир состоит не только из десктопных core i7, но их еще будет много таких на пути.
>>3293231 Ты умственно отсталый? Приложения для ТВ пишут в большинстве своем на джава\котлине ибо весь андройд на этом работает. Под эпл на свифте. Ты бредишь.
>symbian Лол, и где сейчас этот симбиан?
Низкоуровневый код в основном не пишут на С++. Либо пишут с огромными ограничениями по использованию всего и получается что-то типа си с классами. А уже потом создают фремворки на более высоуровневых языках в т.ч. и С++. для прикладного использования.
>>3293286 >Приложения для ТВ пишут в большинстве своем на джава\котлине ибо весь андройд на этом работает. >Низкоуровневый код в основном не пишут на С++. А джава и скотлин на чем написаны? Виртуальная машина и компилятор это высокоуровневый код или нет
>>3293056 >Вот возьмем никогда не возникающий на практике эксепшн bad_alloc? Нахуй он нужен? Только в твоих лиллипутских программульках не нужен. Какой-нибудь научный софт легко всю память съест на симуляции FEM или CFD. У меня лет 10 назад блендер только так вылетал с 8Гб памяти на рендере тяжелых сцен.
>>3292820 >протягивать через весь код проверки с бранчами >там хотя бы jit есть который весь холодный и маловероятный код выкидывает нахуй JIT - это буквально бранч на бранче. На каждый вызов проверка - запускать jit вариант или поднимать интерпретатор, или, наоборот, компилировать кусок кода, если трейс больше заданного. Он работает быстро потому что бранч-предиктор.
>>3292777 >>3292820 >>3293368 Кстати можно использовать [[likely]] в еррор кодах, чтобы оптимизировать бранч-предикшн. Интересно, оптимизатор вообще может так оптимизировать expected добавляя неявный likely в то что не будет ошибки...
>>3293368 >а каждый вызов проверка - запускать jit вариант или поднимать интерпретатор, или, наоборот
Вот ты вызвал функцию и там вместо 2х стало 3 проверки и 3 путя: 1. прыгнуть в цикл 2. прыгнуть в конец к ret 3. прыгнуть в код интерпритатора
Это все более менее совмещается по времени и ошибка предсказания при допустим внезапном откате в интерпретатор незаметна, и даже полезна в каком то смысле полезно ибо нехуй кэш занимать.
У тебя же в цикле проверки на каждой итерации что бы отловить и опередить исключение, прям как в интерпритированном коде.
>>3293564 >У тебя же в цикле проверки на каждой итерации что бы отловить и опередить исключение Эксепшени как раз и нужны, чтобы не в цикле ошибку ловить, а где-то выше.
>>3293660 Я хуйню не несу, в отличии от тебя. Так что сиди, молчи и учись, джун, пока тут сеньоры общаются на концептуальные темы. Потом пойдешь учить что такое SFINAE или что ты там сейчас проходишь на каком-нибудь скилбоксе, лсина...
>>3296206 >будто подразумевают что у тебя может прон с конями в хроме открыться вместо обычного сегфолта Еще раз: это не джава где защищен стек и контролируются границы. UB это то что выходит за рамки языка и зависит от реализации ОС и железа.
>>3296394 > выходит за рамки языка и зависит от реализации ОС и железа Чел, нет. Есть unspecified behavior - это когда стандарт не определяет конкретное поведение, но оно обязано быть определено компилятором. А undefined behavior - это когда даже в рамках одной программы поведение может быть любым в зависимости как в конкретном месте компилятор пожелает. У компиляторов обычно есть куча флагов чтобы второе сделать первым, например для переполнения и границ массивов.
>>3296440 Разговор был про сегфолт, то есть рантайм ошибка, которая, будь она гарантированно поведением железа, не было бы UB как его нет в джаве и ее виртуальной машине, например.
>>3296617 > Актуально сейчас Майерса читать? Актуально > Или есть какие то кор книги по 20-23-26 плюсам? Да ты ахуел, какие книги по C++26? По 20 Tour of C++ Страуструпа
>>3296712 У Майерса последняя книга по 11-14. У языка такая же разница как с 98. Сейчас уже 24 год, стандарт вышел год назад, а нормальной книги так и нет? Страуструпа я бы не стал читать тоже. Он давно не коммерческий программист, да и вообще очень старый уже, ему 70 лет нахуй, какое программирование, да и к современным плюсам он отношения никакого не имеет
>>3296870 > У Майерса последняя книга по 11-14 И? Если ты не знаешь 11-14 (а ты, судя по всему, их не знаешь), то тебе рано учить фичи из 20+, ты их просто не поймёшь.
>>3296875 У тебя неверный подход к изучению языка. Ты как в том тиктоке, где чела попросили попить воды, он начал изучать биохимические процессы. Потому что по твоей логике я и 11\14 не пойму потому что до этого не прочитал 98\03.
А если я действительно не пойму фичу из современных плюсов, то это потому что в книге это херово объяснено. Мне например не нужно читать про thread и практику его применения если уже есть join thread. Если в книге кратко упомянут про различие в поведении деструктора этого будет вполне достаточно. Еще есть такие вещи как референсы, знания у людей всегда тянутся от чего то, ты если посадишь читать каменного человека Майерса он не поймет нихуя. А раз я спрашиваю за 20\23, то у меня есть некий понятийный аппарат чтобы проскочить ненужную информацию по старым стандартам или хотя бы достанет навыка пойти быстренько почитать что то, особенно будет круто если такой рефернс будет прямо в книге на какую-нибудь крутую лекцию\главу книги того же Майерса например. Это хороший подход к изучению.
А читать все подряд это, извини, всей жизни не хватит
>>3296748 Скажем так, госпраша госпараше рознь. Да и что сейчас в рахе не госпараша? Сбербанк, ВК, Яндекс это госпараши? Если же мы говорим про такой эталонный совок с дидами, то там тебе и зарплату то платить не будут, будешь сидеть на хлебе. А еще есть параши посовременней укомплектованные молодежью, там и зп побольше, но и упахиваться придется, требуется обязательное образование и прочие атрибуты так же присутствуют в виде жополизания, анального рабства, че мы мужики начальника что ли подведем и прочее такое говно. Но все равно ЗП в любой госпараше будет ниже рынка всегда, это аксиома. Проекты еще говно не особо интересные, как правило это шиза всяких конторских шизиков, будете делать софт аля на кутах на 11, максимум 14 стандарте под астру жрать кмльное говно и это самое интересное будет твое занятие. Есть еще всякая военка, но это я тут обсуждать не буду.
В целом почему я написал не советую, потому что нормальные люди таким не занимаются. Пройти там стажировку - нуууу ок, если очень хочется посмотреть на это всё, но обязательно обрати внимание чтобы коллектив разработчиков при этом был в среднем до 30. Оставаться дальше там - нет. Особенно если у тебя хороший вуз вроде физтеха или мгу. То на последних курсах сходи на стажировку в госуху и съебывайся сразу же желательно в другую страну
>>3296617 Актуально, книжки сперма это просто сборник best prwctices, а не краткое повествование фичей языка
>>3296891 Ага, как будто фичи из старых стандартов в новых куда то пропадают Не говоря уже о том, что как анон выше написал, большая вероятность ковырять с++11-14, а о двадцатом стандарте только мечтать
Ну так или иначе, в книжке Майерса нет ничего такого что устареет через n стандартов да и что там читать, студентотой прочитал и разобрался за несколько недель
>>3296904 >Сбербанк, ВК, Яндекс это госпараши? Под госпорашей имеется в виду какое нибудь ВГУП НИИ ЦКБM где нет этих ваших менегмента и корпоративной этики а есть руководитель, задачи государственной важности, маленькая зарплата, и полная свобода в выборе инструментов и библиотек.
Яндекс и ВК и близко не госпараша ни по одному параметру, Сбербанк сложнее, я бы сказал так: это частная параша с "эффективным" менеджментом от госчиновников как ныняшний автоваз примерно, то есть смесь если не всех то самых едких говен из двух миров.
>>3297152 Нии это нии и отдельные мемы, хотя тоже госуха. И я уже написал что госуха госухе рознь. Касперский анти бпла и анти дроны делает, инфа открытая, где они применяются тоже ходить к гадалке не нужно. Задачи гос важности? Сто проц, как и весь их остальной подряд про который мы даже не слышали. Подозреваю что и инструменты они там самые новые используют, это тебе не совковые диды в нии, и менджмент у них там госчинуши на бнв и мерседесах катаются и про аджайл со скрамом думается они тоже чето слышали. Времена поменялись, совок разворачивается во все поля, так что "ни по одному параметру" это ты постесняйся так писать
Может кто про кэш линии и false sharing пояснить? Вот как у этого типа в одной книге укладывается имплементация этой очереди и комментарий в конце главы с советами. Получается эта лок фри очередь будет постоянно генерировать обновления кэша то есть false sharing или я не понял как это работает?
>>3297381 Процессор всегда читает память размером с кеш линию, сколько бы байт ему не требовалось прочитать минимальный размер чтения 64 байта ( х86 ). И во-первых, у тебя сама очередь в одной кеш линии будет, то есть все эти счетчики. А во-вторых, сами элементы в очереди, если будут например меньше 64 байт, то могут попасть в одну кеш линию и если к соседним элементам нужен будет доступ из разных потоков, то тоже будешь фолс шаринг, поэтому предлагается выровнить их alignas'ом по размеру кеш линии и тода каждый из них будет распологаться в памяти с таким оффсетом что гарантирует их "несоседство".
>>3272911 >Сложнейший синтаксис Лол, у какой-нибудь Джавы/Сишарпа синтаксис и читабельность кода гораздо сложнее, особенно если смотреть энтерпрайз код - там настоящий классовый хаос, где обычное наследование превращают нетривиальную задачу в громоздкую pajeet shitting factory. В противовес этому, хороший с++ код читается как книга.
Вопрос из разряда "абстрактных", с плюсами лишь связан реализацией на них. Делаю всякие конвертеры для старых игр в своё удовольствие, понадобилось сделать конвертер png в текстуру для первой кваки (.lmp), как можно цвет конвертировать в индекс палитры? Каким образом сравнивать? Гуглил, но инфы не нашёл, может жопой искал? Это не какая-то специфичная инфа вроде-бы.
>>3298207 читаешь каждый пиксель, ищещь в таблице индекс кладешь в вектор и вот так вот набираешь массив индексов в палитре. Самое сложное это алгоритм сжатия если оно там используется
>>3298241 Добавь эпсилон в сравнение цвета на канал и найди условный диапазон палитр который попадает в px_col + eps < palit_color && px_col - eps > palit_color , там уже эвристически найди jlby наиболее подходящий.
>>3298241 В сложной математике я профан, но что то мне подсказывает что определить что цвет тот же просто другой градации можно вычислить как abs(a - b) == abs(b - a) или (a - b) / (b - a) == 1
>>3298278 >abs(a - b) == abs(b - a) или (a - b) / (b - a) == 1 Так у тебя же тогда будет RGB(1,0,0) от RGB(0,1,0) и RGB(0,0,1) будут одинаковыми. Это не будет так работать.
>>3298321 > Это какой-то говнокод на си, к с++ не относящийся. Плюсы это тот же си в котором данные обернуты в классы а с работа с полями структуры происходит через безопасные методы. Если ты не можешь представить как сишный код переложить на плюсы, то не знаешь с++ и не понимаешь зачем он придуман.
union color_t { 🕳️ struct { uint8_t R,G,B,A; } m_v; 🕳️ struct { uint32_t color:24, alpha:8; } m_fill; public: 🕳️ color_t(uint8_t r, uint8_t g, uint8_t b, uint8_t a = 255) { 🕳️ 🕳️ m_v.R = r, m_v.G = g, m_v.B = g, m_v.A = a; 🕳️ } 🕳️ bool isOnColorGrade(color_t &c) const { 🕳️ 🕳️ int a = m_fill.color, 🕳️ 🕳️ b = c.m_fill.color, 🕳️ 🕳️ r = (a - b) / (b - a); 🕳️ 🕳️ return r == 1 || r == -1; 🕳️ } };
>>3298478 >Плюсы это тот же си в котором данные обернуты в классы а с работа с полями структуры происходит через безопасные методы На это спасибо, мы вам перезвоним
>>3298478 >Если ты не можешь представить как сишный код переложить на плюсы, то не знаешь с++ и не понимаешь зачем он придуман. Сказал он с умным лицом и высрал уб.
>>3298949 >Для особо одаренных пикрил Пикрил красноречиво подтверждает что ты залетный и в языке не разбираешься. >у тебя сам алгоритм неверный. В чем именно не верный?
>>3298962 >Пикрил красноречиво подтверждает что ты залетный и в языке не разбираешься. Ухахаха лол, лсина которая не может самостоятельно осилить алгоритм квантования решила вместо признания своей ошибки, дальше закапывать себя, выдавая отборнейший бред. Но если стандарт языка для тебя ничего не значит, нахуя ты нас тут тогда что-то спрашиваешь, делай как считаешь нужным. Всем настрать вообще на тебя и твои детские поделки.
А есть какой-то новомодный STDшный эквивалент сишному fprintf в плюсах? Ну или какой-то работающий с ofstream. Не очень хочется к себе тащить сишные функции.
>>3300862 QtCreator > Когда имеет смысл Когда много больших файлов и нужно чтоб все изменения где то наверху мнгновенно подсвечивали все участки требующие правки.
>>3300862 >Когда имеет смысл пользоваться IDE? 1. Дебаг. В студии удобно мышкой тыкать и смотреть значения. Для GDB в некоторых редакторах есть интерфейсы не хуже, но там надо почти всегда пердолить, и все равно часто через командную строку с ним работать. 2. Рефакторинг в большом проекте. Через LSP оно работает только для простых случаев, и часто глючит. У джетбрейнса же очень богато все сделано. 3. Плагины для всяких штук. Для студии, эклипса обычно делают плагин под всякие библиотеки, системы сборки для микроконтроллеров, и т.д. Если оно коммерческое и непопулярное, то без ИДЕ там очень много пердолить надо.
>>3300901 Криэйтор довольно убогий, а qmake - жопная параша говна мочи. Проще чисто QtDesigner поставить для формочек, а код писать где удобно. В cmake и студии сейчас есть поддержка Qt, можно с pro вообще не заморачиваться. Криейтор нужен только если под линукс/мак кодишь, и ничем другим пользоваться не умеешь.
>>3298962 >В чем именно не верный? Цветовые значения - трехмерные, их надо сравнивать как евклидовы дистанции в 3Д (лучше в цветовом пространстве Lab). Твой код работать не будет совсем никак, сама идея сравнивать цвет в целочисленных значениях максимально тупая: между соседними значениями по R целочисленная разница будет в 16 миллионов, а по B - в 256.
>>3301006 Я вроде и не говорил что это хороший алгоритм или что он пригоден для решения задачи того анона, просто привел пример алгоритма который определяет если картинку просто затемнили. Есть конечно более лучшие математические алгоритмы, но они сложные и зачастую избыточны.
>>3301687 >должен, но не обязан Даже, если указаны флаги оптимизации?
>в некоторых случаях подобные оптимизации нужно делать вручную Мда, существуют десятки разных оптимизаций, еще и комбинировать их нужно. Переписывать код потыщу раз и тестить производительность, такое себе.
Эти оптимизации делает компилятор, при указании определенных опций либо при указании групповой опции -O1/2 Бывают случаи когда компилятор не может использовать оптимизации потому что в определенных случаях может сломаться программа, для таких есть как отдельные опции типа -fno-finite-math так и групповая -O3 для агрессивного оптимизирования.
Так же компилятору для раскрутки циклов нужно примерно представлять сколько там итераций примерно, для таких случаев можно юзать прагмы для подсказок:
#pragma loop-count(1024) for (...) { #pragma loop-unroll(8) for (...) }
ну и писать так чтоб компилятору было доступно больше информации, гадать по указателям и состояниям переменных он не может.
Линуксоиды-эмбедщики на месте? Я правильно понимаю что взаимодействие с USB-устройствами в линуксе - это чтение/запись в /dev/xxx? Или может есть какой-то более низкоуровневый вариант через ядро? Меня беспокоит производительность, которой у меня нет.
А есть способ кастануть std::vector<uint8_t> в std::vector<color>, где color это struct из 3/4-х uint8_t? Заебался с lodepng в еблю со смещениями играть, итак дохуя цифр просчитывать приходится, а это вообще с толку сбивает нахуй.
>>3303640 >А если это конвертер? Нахуя мне OGL/SDL2 в обычной читалке/экспортилке pngшек? Ну в консольной экспортилке может и не нужно, но если ты ее еще выводишь то есть смысл считать то что ты там считаешь прямо на видюхе
>>3300862 Так есть же божественный vscode, последние 2 года на нем сижу на всех языках ( основной конечно с++, пользуюсь clangd + свой самопальный плагин для всякой мелочевки ). Раньше сидел много лет на CLion но потом когда осознал настолько жидбреинсы пидарасы слез с этого говна и доволен, вскод лучше и гибче. Единсвенный минус у кода - слабоватый отладчик, но нахуй он нужен если отлаживается все логами.
>>3304252 > GCC делает какие-либо оптимизации Делает > насколько он хуже LLVM Лучше. LLVM есть смысл использовать только если тебе лицензия жмёт, и жопа горит от моих базированных расширений. А так GCC компилирует и быстрее, и производительнее.
Что эта хуйня от меня хочет? Как понять где PsGetThreadTeb еще объявлен? Почему PsGetProcessPeb нормально объявляется, а PsGetThreadTeb нет? в driver.h есть только #include <ntifs.h> и больше нихуя
>>3304770 Это как раз ты шиз. LLVM околопроприетарный кусок говна, в котором нахуевертили низкоуровневых слоев подразумевая видимо какую то модульность и универсальность для статических и динамических языков. По факту имеем второй gcc с непереносимыми фронтендами непригодный ни для чего кроме компиляния бинарников. При этом еще с архаичной внутренней архитектурой, где разработчики языка или архитектуры находятся находятся в крайних положениях от господина компиляторщика, первый ему код на правильном блюде подает (ака LLVM IR), а второй выносит горшки с говном (Machine IR). А llvm-сударь только жует и похваляется смотрите мол как я циклы умею разворачивать, а как я сложение с умножением векторизовал видали? Да вы очень мудр (говорит фронтенд), а можно я вместо LLVM IR другие представления выдавать скажем Gimple или AST? Чтооо? Ах ты мразь такая, забыл кто тут хозяин на тебе, на тебе, блядина.
Примите беженца с iOS, оттер глаза от капель мочи 5 лет это говно ел
Пока думаю вкатиться в связку C++ + unreal engine ну и если что пойду на оборонку если совсем гойда
Мне стал 31 и чувство что тут конкуренции меньше в силу панического страха зумеров при упоминании С++ и все хотят что-то модное молодежное да и в iOS прут всякие зумеры выпускники с универов готовые работать за еду и сильно демпингуют рынок что просто невыносимо да еще и работать они готовы по 16 часов в сутки
>>3305922 >мало вакансий, хуй найдешь работу, про минусы работы в каком нибудь геймдеве сам думаю должен догадываться У нас сейчас не в геймдеве вакансий на анрил, думаю, больше. Геймдев за границу уехал. На анриле делают всякие интерактивные туры, ВР-шоурумы, симуляторы комбайнеров и т.д.
>>3305922 Формошлепаю на qt, дружу с паяльником. Все нравится. Считаю что это вот и есть то самое тру программирование и петушки пишущие бэк для свох говноподелий(или че вы там без железа делаете я хз) должны уважительно привставать, когда я в треде.
>>3306018 Даже от этого поста несёт тру программированиемговнокодом В одной такой конторе работал, с тремя другими приходилось взаимодействоать
хотя вам я слышал сейчас зп начали сильно поднимать, хоть какой то плюс
>>3305948 63 вакансии на всю россию все еще очень не густо
> На анриле делают всякие интерактивные туры, ВР-шоурумы, симуляторы комбайнеров ну если их вместе сложить то возможно будет больше геймдева, но по отдельности это очень маленькие сферы
>>3305922 >а если собираешься в десктоп, то там вобще пиздец, qt-формошлёпы хуже жс макак
я щас выбирал себе ide решил использовать qt пиздец пиздец пиздец пиздец какое-то ишачное поделие уровня жет брейнс
- по дефолту весит 4гб с какой-то вкрученной говной, отключил вроде стало 1гб - просит регистрацию с заполнением анальных данных чтобы скачать иде - при российском ip показывает хуй и не дает ниче скачать
ебать я ахуел с вашей швабодки, вспомнил что хКод можно заюзать под с++ завел его и сижу довольный
Кстати, даже хкод можно просто так скачать без такой анальщины да и с рф айпишника без проблем хоть там и есть куча санкций от эппла
>>3306063 Вендопроблемы. На линуксах, маках одной строчкой из репы ставится. Под виндой можно через vcpkg установить либы, qtdesigner (это отдельная тулза для лепки формочек), и спокойно работать из студии или вскода.
>>3305922 >qt-формошлёпы хуже жс макак Зависит от конторы. Есть конторы, в которых, как мне кажется, qt-формошлёпство вышло на высший уровень - огромные проекты с ООП во все поля, дизайн, генерации формочек без использования .ui файлов - прям макакингом не назовёшь, прямо скажем
>>3304860 >а можно я вместо LLVM IR другие представления выдавать скажем Gimple или AST Я не понял, ты хочешь, чтобы LLVM работал не только с LLVM IR, но и с другими IR?
>>3306137 Нет про то чтоб фронтенды работали не только с LLVM На самом деле все это нытье только по поводу clang, другие языки вроде котлина, хаскеля и zig и так свои компиляторы на базе llvm-овских кусков нагородили и генерируют во что им удобно.
>>3306299 >Нет про то чтоб фронтенды работали не только с LLVM Зачем? Насколько я понимаю, почти все создатели компиляторов приходят к тому, что LLVM IR их ограничивает, там каких-то возможностей нехватает, для некоторых оптимизаций надо лезть глубже, и пилить свой форк. Так что фронтенд LLVM делать универсальным смысла особого нет.
>>3306480 Так я об этом и говорю. высрали хуйню которая не работает как задумывалась. Фронтендщики забили хуй и форкают, а бакендщикам что делать? Им тоже недостаточно того что компилятор высирает но ничего не поделаешь приходится изъебываться.
>>3248820 (OP) Анончик, расскажи как называет процесс получения изображения прям с экрана? Например когда работает экранная лупа, она выбирает увеличиваемую область с самого верхнего окна, учитывая так-же наложения интерфейсов или окон других программ. Как такие программы получают изображение от монитора и как мне это повторить для себя? ну или как сформулировать запрос в поиск на стек оверфлоу?
Как же заебал cmake и пердоликс. Стоит gcc 14, всё работало. Потом открываю другой проект, запускаю генерацию проекта в cmake и теперь вообще нихуя не работает. В любом проекте получаю: > "__CMAKE::CXX20" target exist, but it was not provided by the toolchain. Что это блять значит и почему мне всё нахуй сломало? Пришло время переустанавливать пердоликс?
>>3313213 нихуя. память конечно освободится а вот всякие графические контексты хуйтексты могут и остаться я себе так однажды чето в вулкане наебнул пришлось перезагружать шиндовс
Эмбедщики есть тут? Пердолю HID-устройство, не могу понять как нормально дескриптор сделать. Снял дамп дескриптора с реального устройства через wireshark, в HID Descriptor Tool с usb.org слепил дескриптор по подобию, на выходе получаю пикрил залупу, нихуя не работает. Есть какие-то гайды для совсем дебилов как корректный дескриптор запилить? Или может я в байтах проёбываюсь где-то. В винде не могу даже свойства устройства открыть и посмотреть что ему не нравится, настолько его впердоливает.
>>3313415 >Как же заебала моя криворукость, рандомно что-то сделал заработало, потом своими культяпками сделал опять какой-то рандом и ФСЁ СЛАМАЛАСЯ. Дебил, иди руки чини.
Почему проекты, написанные на C++ имеют звезды на гитхабе с гулькин хуй?
В вузике и дома пишу с огромнейшим удовольствием на C++, и я не понимаю, почему выбирают прожорливую Java, в которой единственная вменяемая иде платная, или тот же обосанный Go, в котором все надо самому велосипедить.
До божественных крестов пробовал ноду, питон, раст, го и жабу и я нихуя не понял почему этот кал на костылях так нахваливают и облизывают со всех сторон.
Разве нельзя все на свете, включая backend любого уровня, писать на современных плюсах, где безопасность, про которую так любят везде визжать, можно довести до уровня ничуть не хуже, чем на жабе.
Может я чего-то нихуя не понимаю или ит индустрия действительно так сильно зависит от моды? Ведь объективно современные кресты ничуть не сложнее шарпа или джавы.
>>3315270 >безопасность, про которую так любят везде визжать, можно довести до уровня ничуть не хуже, чем на жабе. к 26/27 году государство обязало вычистить плюсы из госухи США. плюсы стали ненужны, с приходом пидоrustеров.
малолетние дебилы убегают на динамопарашу, потому что бизнес важнее.
>>3315270 Индустрия зависит от среднего айсикью по палате, а он довольно низкий, поэтому >нельзя все на свете, включая backend любого уровня, писать на современных плюсах
>>3316205 >Зачем эти говнолибы нужны? Например, тебе надо из МРТ скана построить изоповерхность, потом построить разрез и на нем показать плотность цветовой картой. Или у тебя есть 3Д сетка от с результатами от CFD, и надо нарисовать течение газа вокруг объекта. Или у тебя есть данные по странам, и надо на карте нарисовать какие-то пай-чарты для каждой страны. По туториалам с ютуба будешь это делать?
>>3315747 >к 26/27 году государство обязало вычистить плюсы из госухи США. Им это не поможет, у них проблема не в языке. После первого же аутсорса в Бангалор, старый код на плюсах будет выглядеть как вершина вменяемости по сравнению с тем, что высрут индусы на расте.
>>3317415 >Возьму питон У которого внутре будет та же плюсовая либа, только теперь нельзя будет залезть в потроха, и сделать что-то не предусмотренное питоновой оберткой.
Почему единственная нормальная IDE только под винду? Как быть дебилианисту?
1. Qt creator ебаная, неудобная, сделанная через жопу лажа 2. Clion, Eclipse, NetBeans жручий джавакал 3. VS Code костыль, сделанный через жопу(electron), 4. KDevelop вечно ломающаяся хуета
Неужто остается разве что только сосать хуй, пользуясь вимом с плагинами либо же садиться на анальные зонды ради вменяемой IDE? Правда есть еще Zed, который на порядок лучше vs code, но он еще очень сырой; пользуюсь чисто как блокнотом
>>3318531 Clion скачай и мозги не еби. Если ты работаешь, а не хуи пинаешь, то у тебя должна быть достаточно хорошая машина, чтобы запустить 10 clion'ов, 1000 вкладок в хроме и не ныть. Если не работаешь (да и если работаешь тоже), то code oss + компиляция из консольки
>>3318531 >VS Code костыль, сделанный через жопу(electron), Что значит костыль? Код полноценная IDE которая еще и всяким цлайонам в рот даст.
>Zed, который на порядок лучше vs code ахах смешная шутка нет Это дерьмище от нитакусиков написанное на пидорасте, которая нихуя не может, кроме подсветки синтаксиса.
>Неужто остается разве что только сосать хуй Такому уебищу, как ты - да.
>>3318585 > Код полноценная IDE Хорошая шутка. Редактор кода это не IDE. Где хотя бы хот-релоад/профилирование? Дебаг тоже говно - в вскоде он примитивный, просто брейкпойнты, даже условие нельзя указать. Поддержки даже С++20 нет в вскоде.
>Где хотя бы хот-релоад/профилирование? Какой нахуй хот релод на С++, манька? Иди нахуй в свою дотнет парашу за таким. Профилирование? Дебил умственно отсталый, для этого есть perf.
> Дебаг тоже говно - в вскоде он примитивный, просто брейкпойнты, даже условие нельзя указать Примитивный твой мозг, а условия в брекпоинтах можно ставить.
>Поддержки даже С++20 нет в вскоде. Дебилоид, схуяли ты такое высрал вообще? Поддержка С++20 уже сто лет как там есть, и С++23 даже есть.
Блять, серьезно, дебилёнок, покинь этот тред и С++ заодно, ты невероятно тупорылый малолетний недоносок, я тебе 1000% гарантию даю ты ничего не добьешься в карьере с++ разработчика с твоим уровнем интеллекта.
>>3318602 > Какой нахуй хот релод на С++, манька? В студии уже давно есть для крестов, клован. А ты дальше сиди в текстовых редакторах и пересобирай при каждом изменении кода. > для этого есть perf О чём и речь - вместо IDE пользуешься пердольной консолькой. > Поддержка С++20 уже сто лет как там есть Как там модули поддерживаются, которые в студии уже 3 года как работают?
>>3318613 >В студии >в студии Так и сиди тогда на своей студии, спермаглот форточный, хуль ты ноешь тогда тут, даунёнок.
>вместо IDE пользуешься пердольной консолькой Точно малолетний дебил. Тебе еще красивые кнопачки надо нарисовать как для умственно отсталых даунов, чтоб ты этим мог пользоваться и не обшиться?
И знаешь, что еще самое смешное? Что ты даже со всеми этими свистоперделками останешься нулём, а красноглазый пердолик с консолькой и текстовым редактором будет способен решить любую задачу. И угадай кого возьмут на высокооплачиваемую должность: тебя недоноска или красноглазика с текстовым редактором? Я думаю, ответ очевиден.
Так что дружеский совет: забей на С++ ты тут ничего не добьешься, тут много сложностей и много "пердолинга", и как мы уже видели, ты на такое не способен.
> мам, я в интернете видел все крутые прогеры сидят в блокнотах, а еще они все пользуются линуксом, а еще они все говорят что жс и питон это для некрутых, а я крутой. Если я стану фанатиком этих вещей я тоже стану крутым как они? > всмысле пердолинг конфигов, покупка крутой клавы и срачи в тредах не сделают из меня тру прогромиста??????? ряяя
>>3319106 Лол, даунёнок ты всё коупишь? Я понимаю, что тебя сейчас переполняет обида из-за совей никчемности и разум пытается найти оправдания этому, что не ты такой, а просто все другие не правильные. Но не расстраивайся так сильно, может быть даже тебя когда-нибудь наймут джуном в дноконтору, будешь сидеть как блондинка секрутутка и нажимать красивенькие кнопачки как ты любишь.
С глаголом "коупить" что-то все достаточно просто, это прямая калька от английского "соpe with", что означает справляться с чем-то, вытерпеть, перенести что-то. А вот короткое слово "коуп" может выражать и просьбу о прощении, и пожелание терпения, стойкости,и уверенность в том, что человек обязательно справится. Наиболее близким по значению будет что-то вроде известной присказки "Терпи казак, атаманом будешь".
>>3319106 Соглы, надо ровняться не на каких то борщехлебов показушников, а на реально успешных людей Возьмём хотя бы нвидия куна, самый успешный и умный в треде, на плюсах давно уже не пишет. Вот пример для подражания
>>3319222 >Возьмём хотя бы нвидия куна >самый успешный и умный в треде С чего ты это взял? Тот нвидиа кун вроде что-то тривиальное делал там. Тем более откуда ты знаешь где другие работают, что делают и какую квалификацию имеют? То что тут в треде 95% долбоебов даже не работающих на плюсах это факт, конечно среди них даже обычный мидл будет самым успешным. Но это так себе заслуга.
Вообще, кстати говоря, подумал и пришёл к такому умозаключению, что если ты кто-то больше джуна, то сидеть тут - тешить своё ЧСВ за счёт других недоразвитых индивидуумов. Это знаете как парадокс красавицы и её уродливой свиты, на фоне своих подружек даже самая обычная тян будет касаться ахуеть какой красивой, поэтому они так и делают, создавая себе выгодное окружение. Так же и тут, если этот тред использовать не как туалет, куда можно насрать, то это может означать только одно - компенсация своих комплексов неполноценности за счет лоу айкью обезьян и вкатывальщиков.
Так что пошли вы нахуй, я сваливаю. За многие месяцы тут ни одного полезного поста не было, что уж говорит об конструктивных обсуждениях С++ и смежных этому тем. Сидеть тут нормальному разрабу = деградировать среди даунов
Кто-то может объяснить почему если я делаю конструктор вот так: > A() { try { код } catch (...) { } } То размер бинарника как положено 10 кб. А если вот так: > A() try { код } catch (...) { } То он весит 130 кб. Что там блять происходит, что он аж 120 кб высрал?
>>3319578 В том то и дело, что код генерит он одинаковый. Если этот класс не использовать, он его вообще оптимизирует, его нет в бинарнике. Но 120 кб насрано.
>>3317114 >Посоветуйте либу для Digital Signal Processing в эти годы ответ зависит от того на каком железе ты это хочешь запускать, тк у нас ренессанс специализированных железяк и процов
>>3316928 Неиронично но это будут упраженения из K&R и упражнения из книжки страуструпа "язык программирования с++ 4е специальное издание" (но НЕ других книжек страуструпа).
>>3315747 хуй знает, вот если подумать что если твоя команда решила писать софт, например, для реконструктивной томографии, то ты так будешь думать думать и придешь к выводу что лучше всего такое писать на плюсах
Сап двач что закончил читать книгу Стивена Пратта и хотел бы получить совет. Собираюсь заняться пет-проектами, чтобы набраться опыта. Какие проекты лучше реализовать и как? Стоит ли параллельно читать что-то еще? Ну и еще вопрос по части лени. Я оказывает 6 месяцев ебланил и не занимался, только щас заметил этот летний перерыв. Короче как держать себя в руках и скатится?
Там есть такая хуйня class Message { friend class Folder; public: void save(Folder& f); private: std::set <Folder*> folders; }; void Message::save(Folder& f) { folders.insert(&f); f.addMsg(this); }
Вот этот момент в функции сейв folders.insert(&f); приводит к ошибке при закрытии программы. И я чет не очень понимаю, почему она выскакивает. Выглядит как будто уничтожается указатель, переданные в инсерт и при попытке очистить память после окончания программы происходит ошибка.
>>3320758 > в целом по айти сейчас так В девопсе даже лучше сейчас стало, когда свинявые убежали из рашки, а западные сервисы стали отваливаться от бизнеса. Можно выбирать из кучи вариантов, в том числе на полной удалёнке. Рубль конечно тонет, но и зарплаты ползут вверх норм, явно лучше нищенских 130к в крестах.
>>3320729 Нормально если аутсорсишь на запад либо разрабатывает графику. В остальной сфере мрак. Платят столько же, сколько фронтэнд макака после онлайн курсов.
Как тебе такая вакансия?
Москва. полный день, 5/2, удаленка З/П: 160-200к
Должностные обязанности: - Разработка и проектирование ПО контроллера автоматики ОВиК - Разработка схемотехники и топологии печатных плат - Разработка КД и пользовательских инструкций свободной формы (нет ЕСКД) - Сопровождение и подготовка к производству
Знание/опыт: - Уверенное владение C/C++ - Навыки работы с Git - Навыки работы с CMake - Знание FreeRTOS - Опыт в разработке многофункциональных устройств с пользовательским интерфейсом - Опыт в разработке промышленной автоматики
Условия труда: Небольшая компания, находящаяся в интенсивном росте. Возможно гибко договориться о условиях сотрудничества.
Вот ещё примеры мрака за зарплату чуть большую чем у фронтэнд Джуна:
АО «НТЦ «Атлас», Москва, полная занятость от 180000Руб
Должностные обязанности: - Разработкой управляющих прошивок для высокоскоростного шлюза VPN (10Gbe, PCI Express); - Разработкой модулей ядра linux для взаимодействия с аппаратной частью маршрутизатора; - Участие в проектировании ПО; - Разработка и тестирование ПО; - Документирование собственной разработки; - Отладка и профилирование ПО на оборудовании.
Что нужно знать:
- Знание принципов работы микропроцессорных RISC ядер; - Умение пользоваться git и ведения работы в gitlab; - Понимание принципов работы компилятора, компоновщика; - Понимание принципов автоматизированного тестирования ПО; - Понимание принципов работы ядра linux; - Опыт работы с интерфейсами UART, SPI, I2C; - Умение работать в команде. Будет плюсом: - Опыт проектирования встраиваемого ПО; - Опыт написания модулей ядра linux; - Базовые знания схемотехники; - Умение читать Verilog/SystemVerilog будет плюсом; - Опыт работы с сетевой и pcie подсистемами.
У меня есть функция, которую надо вызвать до мейна. __attribute__(constructor) справляется с задачей, но есть другая беда - я хочу влинковывать ее. То есть сделать статик либу, которую если захочу - влинкую и функция вызовется. Не захочу - не влинкую, функции не будет в итоговом бинаре.
Но сделал напрямую, к сожалению не вызывается и в бинаре нету соответствующего символа. Как это правильно обставить чтобы было как я хочу?
>>3320992 Если плюсы, а не си, то можно сделать конструктор у глобальной переменной. Они вызываются до main. Главное, чтобы линкер потом ее не отрезал как неиспользуемую.
>>3320876 >Нет уж, в стране где все хуево с инженерией и являющейся ресурсной державой, в плюсах ловить нечего Просто продуктов мало, зарубежные компании ушли, на плюсах теперь пишут во всяких НИИ, и это обычно приложение к какой-то железке. Соответственно, у кодера там зарплата примерно как у инженера. А у инженеров во всем мире зарплаты ниже, чем в ИТ, хоть в Штатах, хоть в Европе.
>>3248820 (OP) Ананасы, хочу написать отображение ртсп видео на оранже с минимальной возможной задержкой, но совсем не понимаю, какими средствами, куда двигаться, на что смотреть. Может, встречали минимальные подобные проекты с открытыми исходниками.
Господа, такой вопрос. Имеется map и цикл, который итерирует по ней и может добавлять в неё элементы. Нужно сделать так, чтобы цикл итерировал только по тем элементам, которые существуют в map на момент начала цикла. Есть ли какой-то изящный способ это сделать без костылей вроде дополнительного вектора указателей и тому подобного?
>>3321583 При этом ебли там в десять раз больше чем у фронтэнд макаки/CRUDошлепа и значит надо больше - схемотехнику, физику, уметь вычислять в маткаде сигналы и преобразования, знать сетевые протоколы, ЕСКД, иметь базовые знания Unix систем.
Но зато как говорят кабаны в эмбеде есть ДУША и задачи интересные, а в 40-50 лет тебя не пропрут с работы в яндексе как старого скуфа.
>>3321612 Кому вообще он нужен? Туда студентов набирают в основном, и платят соответствующе. Веб на крестах - это уже как анекдот. Я бы в России на сишке/крестах в военку целился, там хоть интересно будет. Вон в Ланцетах аж Нвидия Джетсон разработанная на деньги Дарпы, лол стоит для машинного зрения.
>>3315270 Потому что ты не писал крупнее чем лаб1 и лаб2. Когда у тебя крупное приложение оно покрыто абстракциями для решения разного типа задач и твоей целью становится бизнес логика, трахаться с указателями или баран-чеккером в этот момент меньшее что хочется.
>>3321612 В Яндексе после IPO в 11 году корпоративного маразма все больше с каждым годом. Им сейчас нужен исполнительный винтик со знанием стандартов и паттернов, который будет таски закрывать, и выдавать 150 строчек энтерпрайз кода в день. Человек-оркестр с пика (паяльник, эмбед, UE, Qt) там может только куда-то в рисеч устроится, но там уже своих кодеров хватает, у которых при этом еще научные степени и статьи. Такому надо в стартап или небольшую контору, которая за берется за все, что закажут: сегодня ВР на анриле, завтра робохомяк, потом дроны какие-нибудь с машинным зрением.
>>3321691 Мой знакомый на Юнити работу найти не мог, все что было доступно - мобильная параша 3 в ряд. Всякие норм проекты (даже инди) требовали 5+ лет опыта либо имели под 500 откликов за пару дней.
Алсо, помню как давным давно по приколу прошел онлайн олимпиаду от Сбера на плюсах. У них какой-то ивент тогда был. Спустя пару дней мне на почту лично написала HR Сбера с предложением поработать у них. Ну там наверное собес ещё должен был быть. Я им отказал, ибо было сытно уже на своем месте.
Сейчас такого уже никогда не будет, увы. Никто не кинет тебе предложение работы просто по факту решения олимпиадки. Никто не будет тебя хантить за красивые глаза. Дефицит кадров уже давно прошел, тем более на плюсах.
>>3320845 не боги горшки обжигают, в данном случае нужен драйверописатель под линукса если уже умеешь кодить на си, то читаешь пару книжек по ядру линупса и драйверописанию, делаешь пет прожект и все в принципе ты готов
>>3322051 не, там у тебя будет коллега (коллеги) электронщик, но нужно просто понимать че он тебе будет говорить; опять же достаточно прочитать пару книжек по теме, это блядь займет неделю другую максимум а так на таких должностях 90% задачь если обобщить это ввод-вывод, сеть или файловая система, точно так же как по ява-макак говорят что они тупо круды пилят, тут то же самое
>>3322052 Какие задачи нужно тебе решить, которые не может решить современный шарп с ансейвом или со спанами или рефами? Я уверен что натягивая какие-то гига-либы типа Qt ты просаживаешься по производительности до какой-нибудь авалонии.
>>3322214 Я сейчас один эмбеддед и системный код пишу. Тут никому сишарп не нужен. Меня в дырку сдадут если начну писать код на нем, причем неважно для чего - для микроконтроллеров, драйверов или процессоров
Решил потрясти старыми мудями. Изучал плюсы раньше и решил вот вкатиться повторно, может что и получится.
Так вот вопрос такой, тут на гитхабе из последнего Бьерн СтрауструпПрограммирование. Принципы и практика использования C++2016. А есть что-то поновее или этого достаточно для ньюфага, чтобы подливы не напустить в штаны? Или что-то еще менее мудовое, типа годного видеокурса с торрентов, мне все-таки не прямо с нуля учить а вспомнить старое.
Ну и второй вопрос куда после этого двигаться, что еще почитать/смотреть?
>>3322246 https://www.learncpp.com/ читай, делай отжимания, присед, на турничке виси. Параллельно сразу книгу по доменной области бери, которая тебя интересует и дрочи до посинения свои проекты или что ты там хочешь сделать.
>>3322272 Как минимум половину из этого я и так знаю, а есть какое-нибудь русскоязычное комьюнити в дискорде? А то у того же страуструпа половина книги водичка, а из 800 оставшихся страниц мне нужны примерно 500.
>>3322303 >Вот на STM32/ARM все на реальных плюсах пишется. Под STM с гитхаба какую либу не откроешь, там почти всегда сишка, иногда адовая вроде имитации темплейтного списка макросами. Под ардуиной чисто по ощущению плюсов больше. Но я не настоящий сварщик, это вроде хобби.
>>3322214 >шарп с ансейвом можно, делай на явке тоже можно тут уже скорее респект тебе что ты знаешь что не обязательно пилить либу на сях-крестах чтобы потом ее вызывать из манаджед кода, когда можно ансейв расширениями попробовать сделать и не просесть в производительности/реакции
>>3322246 >куда после этого двигаться помечаешь на своем районе все пятерочки-магниты, смотришь с задних дворов на какие помойки они коробки выносят и в какое время обычно, формируешь маршрут обхода, ну и пара часов у и тебя всегда будет что покушать! ну а чем будешь заниматься в остальное время уже тебе решать
>>3322370 >формируешь маршрут обхода Сложность: medium
Антон - опытный программист на С++. Он запомнил на своем районе все пятерочки и помойки, куда из пятерочек выбрасывают продукты, а также точное время выброса. Помойки располагаются по углам кварталов: координаты помойки x y означают что до неё от точки 0 0 идти х кварталов на восток и y кварталов на север. Антон проходит один квартал за одну минуту и может ходить только по улицам, так что время составит х + у минут. Находясь рядом с помойкой Антон получает 1 единицу продуктов в минуту. Но конкуренты не сидят сложа руки, поэтому через 10 минут после выброса все продукты разбирают, независимо от того, находится Антон рядом или нет. Таким образом с одной помойки можно добыть 10 единиц, если прийти ровно в момент выброса. Помогите Антону собрать как можно больше продуктов, чтобы он мог посвятить освободившееся время программированию на С++. (он выходит из дома в t=0 минут, и его дом находится в точке с координатами 0 0)
Входные данные: N - количество помоек следующие N строк: два числа xi yi - координаты i-й помойки M - количество пятерочек следующие M строк: два числа ki - номер помойки, куда из i-й пятерочки выносят коробки (нумерация с 0) и ti - время в минутах, когда это происходит
Выходные данные: P - максимальное количество продуктов, которое Антон сможет добыть за один обход.
Ограничения: 0 <= M <= N <= 1000 -1000 <= xi, yi <= 1000 0 <= ti <= 1000
Изучаю c++, увидел такой пример в книге Праты: auto pc = &a; const double ((pd) [3]) (const double , int) = &pa; Это блять вообще нормально? Так реально пишут?
Пишу одну прогу-комбайн для себя (если вкратце - кучу тулзов для старых игр в одном месте), на Dear ImGui + SDL2. Имею класс-интерфейс для окон в программе, массив указателей на который дёргается для рендера и всяческого обновления. Узнал что оказывается можно не выводить отдельной кнопкой в интерфейс показ-скрытые окна, а передать в функции на открытие окна в ImGui указатель на бул, регулирующий видимость окна, и тогда у созданного окна появится кнопка для закрытия переводящая переданный бул в false. Вопрос - почему я иду нахуй? Базовый класс ведь для меня публичный, чому я не могу его приватные члены использовать если он для меня публичный?
>>3324084 Ты неправильные вопросы задаешь: не что означает, а зачем это было сделано? А сделано это было с целью software obfuscation, чтобы челики подобные тебе тратили свое время (и жизнь) на разгадывание ребусов, а не на решение практических задач.
>>3324178 Но зачем? Вот я стал плюсы после c изучать. И заметил, что C в целом лаконичен, а вот в c++ зачем-то запихивают все и вся в надежде, что хоть какие-нибудь конструкции будут использоваться.
>>3324494 Константин Владимиров как-то говорил, что много кто считает, что в C++ есть лишние вещи, но на самом деле у каждой мелочи есть своё предназначение и место в языке. Вот какие конструкции ты считаешь бесполезными?
>>3324501 гарбадж коллектор наверно имел охуительно важное предназначение так жаль что его выпилили да жозенько а че делать такова жизнь хорошо что сейчас точно ничего ненужного не осталось
>>3324501 главная проблема с++ сообщества разработчиков языка это то что они концентрируются на мелочах, причем тратя на реализацию таких фичей гигантские усилия при этом то что действительно нужно было сделать, чтобы хотя бы удержать на какое то время часть рынка, не делаются к примеру, не захотели работать дальше над опциональным сборщиком мусора в языке а о том чтобы стандартизировать abi и вообще не хотят слушать, по итогу проебали весь энтерпрайз сектор а сейчас проябывают и все остальное помаленьку
>>3324501 >Константин Владимиров Алсо, поменьше уважения к таким челикам. Потому что если ты не из мифи или бауманки, то ты для них будешь хуже говна на тратуаре, в лучшем случае брезгливо обойдет, если заметит вовремя. А может и наступить.
>>3248820 (OP) Хочу попробовать написать экранную лупу. Подскажите пожалуйста как или через что можно получить картинку с экрана? Виндовская лупа и Magnifixer получают картинку с самого верхнего окна из всех открытых. Даже игры в режиме полноэкранного окна воспринимает. Хз даже как это гуглить. C++ screen capture?
Есть какой-то материал чтобы почитать по парсингу текстовых файлов? Конкретно интересует как правильно парсить файлы с не строгой структурой (например вместо пробела местами может быть таб, никаких особых правил расстановки - нет).
>>3326934 Парсинг текстовых файов звучит странно. Под твое описание подходит вообще любая программа на плюсах которая что либо из внешнего мира в виде текста читает. А так, бери курс по формальным языкам
>>3326997 Нормально, это полноценное иде. Но выглядит как говно, поэтому если ты сидишь пирдишь на стуле и просто пишешь код и конпилируешь то для этого и обычного вскода хватит
>>3326997 Как редактор кода не очень как IDE збс Особенно заебись что qtсreator сам корректный cmake генерирует, его остается только подправить ну и дописать правила для подкаталогов и все.
>>3328222 По объявлению, без шуток. Ждёшь годами когда появятся места в какую-нибудь военную корпорацию, можешь заранее с отделом кадров наладить контакт и оставить свои контакты на будущее, там как в совке бабки сидят, напоминать о своём существовании условно раз в пол года. Это ничем не отличается от попадания на завод, просто заводов много, а кодеров в военку много не надо. Я с конструкторским бюро Туполева пересекался, туда все ровно так и попадали. Из минусов - скорее всего будешь невыездным.
>>3328162 Если ты топ 5% то хоть куда, яндексы, yadro, военка, геймдев
Если ты обычный чел, то qt-формошлёпство. Если хорошо алгосы позадрочишь то можешь пойти в яндекс, но там будет обычный бэк на плюсах, стоит ли оно того - думай сам
Ребятушки, есть ли способ как-то изнутри класса узнать, является ли его объект константным или нет? Хочу написать deque, и, чтобы при вызове некоторых методов от константного объекта использовать константный итератор, а от неконстантного - обычный, написать что-то такое: using it_t = std::conditional_t<std::is_const_v(*this), const_iterator, iterator>; Но это не компилируется, потому что this нельзя вызывать не в теле методов. К тому же, непонятно, будет ли this иметь тип с const или нет. Это вообще возможно сделать?
>>3328560 Как ты собрался обращаться к экземпляру объекта, который не существует при компиляции, шиз? > константным или нет Используй constexpr метод и внутри делай if consteval.
>>3328571 > Как ты собрался обращаться к экземпляру объекта, который не существует при компиляции, шиз? То есть это только в рантайме можно узнать, или как? Сори если это тупой вопрос, мне это не очевидно > Используй constexpr метод и внутри делай if consteval. Вот я что-то похожее написал, но в обоих случаях выводятся нули: struct S { constexpr bool objectIsConst() const { if constexpr(std::is_const_v<decltype(*this)>) return true; return false; }; }; int main() { S s1; std::cout << s1.objectIsConst(); const S s2; std::cout << s2.objectIsConst(); }
Сосачик, падает одна прога-сервак на линупсах под Wine, нету возможности подебажить нативно под виндой т.к. краш очень специфичный и ловится лишь на сервере с игроками. Не вкурил по итогу как использовать Winedbg, но смог снюхать один из дампов, неполный, но хоть какой-то. А что мне собсна с этим дальше делать? Не сидеть-же ебаться с IDA, может как-то студии можно эти адреса скормить и человеческие ссылки на исходники получить, или тут нету нужной инфы?
>>3329047 Побитовые операции в процессорах есть только над 32битными числами. 64+ это уже при наличии векторных расширений вроде mmx/sse В любом случае указатель это тип задаваемый операционной системой, он может быть 32/48/64 битным или вовсе 96/128 битным дескриптором
Допустим, что у меня есть такие макросы: #define P1 23 #define P2 32 #define P3 20
Теперь пусть где-то вызывается таким образом функция: f(P1,P2+P3), что аналогично f(23,32+20). Вопрос: 32 + 20 будет складываться на этапе работы gcc/g++ или это будет уже складыватсья на железе в процессе выполнения программы?
>>3329217 Не понял к чему тут макросы, они буквально ни на что не влияют в данном случае. Это обычный constant propagation, не уверен, что по стандарту компиляторы должны это делать, но все современные это точно сделают в compile time.
>>3323620 Нет - это ссанина коня. Некоторые действительно любят ссанину коня, но норм челики пишут без этих ебаных звёздочек, за исключением ситуаций низкоуровневой работы с памятью. Юзай контейнеры, их рефы и move семантику, и пизди всех, кто до сих пор мыслит поинтерами, как C-макака
>>3329810 Челик из разработчиков стандарта сделал публикацию с названием "UB Question" и его забанили за то что название кому-то напомнило фразу австрийского художника "еврейский вопрос". Теперь все смеются над тем что UB это жидовское изобретение.
>>3331485 Между тем в нашей реальности в С++26 придумали залупу "valueless after move". Это типа как null у указателей, но у переменных. И эти шизы предполагают что мы должны теперь чекать значения на валидность, так же как деды чекали указатели на null. Логика у этих шизов такая - переменные не могут быть null, поэтому выдумаем новую хуйню под названием valueless. А обращение к valueless это естественно UB, как же по другому. Боров-чекер изобрести или его альтернативу - это для пидоров. Пока чуханы не решат дропнуть совместимость с сишкой так и будем жрать вот такой пиздец.
В каких случаях имеет смысл делать огромную структуру данных объявляя в ней массив на несколько килобайт, вместо того, чтобы выделять память нужного размера при необходимости?
>>3333227 Это сишарпер-пидорастер-спермораб пришел пояснять за мув вызывающий деструктор. Скорее всего он вообще к программированию не имеет отношения просто срет сидит, в разные треды причем.
>>3333230 > Both indirect and polymorphic have a valueless state that is used to implement move. The valueless state is not intended to be observable to the user. There is no operator bool or has_value member function. Accessing the value of an indirect or polymorphic after it has been moved from is undefined behaviour. We provide a valueless_after_move member function that returns true if an object is in a valueless state. Не ну а что, одним UB больше, переживём. Язык по дизайну UBлюдочный.
> #include should not be used in a module unit (outside the global module fragment), because all included declarations and definitions would be considered part of the module. Instead, headers can also be imported as header units with an import declaration:
Как это должно заменить pch, как мне сфмл тот же подключить с их помощью?
>>3327041 >да не хочу я этих пидаров кормить !!1 C++ мусор слабее JS-макаки, спешите видеть. Давно уже есть способы накатить патч и не платить, которые даже JS-мартыхи осилили
Нужен добрый человек который шарит в с++, алгоритмах (особенно в динамической проге). Я учусь на 1 курсе в хорошем вузе, по этому предмету у меня плачевная ситуация, нужно срочно решить лабораторку (11-12 задач) по теме динпрога). Я конечно ничего в этой теме не понимаю и вообще тк.к. эта лаба дополнительная, задачи там повышенной сложности. (Я её должен решить потому что пропустил несколько пар в начале года). Проблема в том, что во всем вузе эти задачи сможет решить человек 15 от силы, из них примерно 0 готовы помочь. Если есть добрые люди, отзовитесь Прикрепил одну из задач. ТГ для связи - @djboner
>>3340331 >учусь на 1 курсе в хорошем вузе >в хорошем вузе >у пети было 777 1 >он решил распечатать машу >напишите это на плюсах с динамическим управлением памятью >в хорошем вузе
Треды или корутины надо использовать что бы добавить васю параллельно распечатывать другой оутпат? А то из задачи непонятно. Пиздец короче
>>3340331 Ты бы хоть лекции повторил пропущенные. Это классическая задача на поиск прямоугольника максимальной площади. 99% вы такую разбирали на практике
Посоветуйте ide на мак для с++. Сейчас пишу в xcode, но он слишком много памяти занимает и я хочу чтобы было меньше подсказок. Потом на vim перейду, сейчас лень.
>>3351716 >Посоветуйте ide на мак для с++ JetBrains CLion всегда всем смело рекомендую. На маке никогда не сидел, но на линуксе все хорошо. >Потом на vim перейду Крайне не рекомендую тратить время на эту хуйню
>>3248820 (OP) Господа. расскажите пожалуйста в чем разница между Make, CMake и Meson. И почему при использовании мезона выходит такая ошибка на шаблоне Hello world? Meson это подобие Conda или Pip для питона? IDE Eclipse 2023
Вопрос не про IDE, так что утруждайтесь писать про VS и VS Code.
>>3358071 >Плюс разработки в IDE в том, что можно годами, как пиявка, высасывать из организации зарплату за то, что через те же Make скрипты-сборки можно сделать максимум за 3-4 месяца. Именно по этой причине embedded стартапы и не используют IDE, а используют, как раз, именно самописные скрипты сборки (Make, CMake, Ninjia, Meson и прочее). https://habr.com/ru/articles/794206/
Выходит это просто программы/утилиты для формирования шаблона проекта и его изменения, при помощи скриптов? Насколько понял, все те шаблоны что есть в STM IDE или Espressif IDE можно написать и себе, просто сделать собственные скрипты и вызывая их через Make/CMake/Meson. Верно ли это?