Вместо шапки:
⚹ https://github.com/sosachbot/cppthreadhat
⚹ Для кусков кода: https://0bin.net/
Ответы на вопросы:
⚹ https://en.cppreference.com/w/
⚹ https://www.cplusplus.com/reference/
Для указателей: ⚹
Прошлый тред: >>3203818 (OP)
Он ещё и тег проебал.
Че ты мало полезных ссылок указал.
Двачую, даже нет ссылки на стандарт.
Неочевидная полезность для кабанов
Отсутствие полезности для кабанов
Отсутствие микробиблиотеки для эмбедщины, или хотя бы каких то опций сборки стандартной, чтоб например только vector и и все что ему нужно собиралось и все.
А так я считаю хорошо что у плюсов те же корутины реализованы как костыль, а не как асинхронный блок кода.
Да, не конфа, а чятик.
И что для тебя эталонная реализация корутин?
Пиздец шиза. Ещё и написана русским шизиком из Черногории. У него даже SSL нет, а его веб-сервер на сишке формирует простой HTML целых 150 мс.
Что такое жизнь без MMU
Члены ua действительно не инициализируются, зато инициализируется "recursion_protector", после чего его значение сразу же проверяется, не стало ли оно внезапно больше 6. Это норма для AVR? Я чего-то не понимаю?
Говнокод ебаный. Пойди сам догадайся что значит if (i % 3 == 2) или ua.a <<= 4. Оторвать бы руки программисту который писал ЭТО.
% - остаток от деления, <<= - битовый сдвиг с присвоением (left shift assignment).
Непонятно именно зачем он двигает данные в неинициализированной переменной. И где тут рекурсия. Ни далее в теле функции, ни в eeprom_read_block она не вызывается. Можно было бы свалить на неудачный пуш в CMS, но это код из тарболла, лежащего довольно давно на официальном сайте.
Переменная не инициализирована, это так. Но судя из кода она в первую итерацию цикла присваивается. Остаток от 3 по 14 будет 2 (14 -12).
Но в целом плохо работать с не инициализированными переменами.
Ну сам код кхм в плане чтения тот еще шифр.
Это не то что плохо, это самое настоящее UB. В эльбрусе в защищенном стеке работа с неинициализированными данными или мусором, например запрещена вообще, будет прерывание.
А чё такова, я так и пишу. Удобно же.
Я правда перед логическими операциями выражение в отдельные скобки пихаю типо
(i%3) == 0
а, то вдруг он случайно посчитает i%(3 == 0) то есть i%0.
Че такова?
С конечно же.
С++ я не знаю, если честно, но впринципе слышал немного. И скажу так: С++ это что-то типо сиквела-ремейка к С.
Сам по себе язык С довольно простой. Он поэтому и называется "низкоуровневым", потому что тут много чего нет. Тут нет массивов, тут нет строк, тут нет констант, тут нет операций возведения в степень, тут даже модульности нет. Язык С - это как бы отличная подготовка для перехода в С++. Изучая С, станет понятно в чем суть некоторых выражений.
Лучше обои клеить учись. Этим сможешь хоть женщину лет 40-50 поразить
я старался
>С++ это что-то типо сиквела-ремейка к С
Хуёв там. Классо-ориентированность создаёт 98% сложности и материала для изучения (ёбаными годами блядь) современных крестов. Остальные 2% это как раз и есть база в виде C.
Если ты не можешь въехать в язык написанный специально для облегчения написания софта то наверное лучше сменить сферу деятельности. Потому что если годами постигать ооп, то конкретные задачи вроде 3d графики, криптографи нейросетки, hpc, придется видимо веками постигать.
Хуйня типа сайд-эффектов крестовых лямбд очень быстро из башки выветривается при неиспользовании, поэтому читать приходится все время. А еще там дохуя тонкостей, что в какой версии есть, типа гетерогенных лукапов или atomic wait with timeout и как эту версию у себя в компилере сделать. Половина из тех, кто пиздит, что это просто, просто не знает на самом деле нихуя из этого и думает, что ооп заканчивается на std::move. А вторая половина и до этого не дошла и думает, что std::unordered_map быстрее, чем std::map. В крестах дохуища просто тонкостей и если для тебя это все просто, то велика вероятность, что ты просто пиздишь.
И да, забыл. Если у тебя не дай бог два рабочих инструмента, а не только кресты, ну допустим, +питон, то всё, пизда, можешь забить хуй на художественную литературу и прочую личную жизнь.
Мозги мамке еби.
> А вторая половина и до этого не дошла и думает, что std::unordered_map быстрее, чем std::map
Причем здесь объекты стандартной библиотеки и нахуя ты все это учишь ебанутый?
Ты хоть понимаешь что в языках более высокого уровня ещё больше всего, там xml парсеры, вебсерверы в стандартной библиотеке, ты все это постигать собрался? Нахуя? Зачем?
>А вторая половина и до этого не дошла и думает, что std::unordered_map быстрее, чем std::map.
А что, не быстрее?
Ну хз, для меня знание языка, это всё таки небольшое знание синтаксиса + знание стандартного библиотеки.
Синтаксис С же очень прост. Но что можно сделать без функции malloc? без работы с файлами? без fork?
Ясно, что так то можно ими и не пользоваться, но тогда си превращается в ассемблер просто.
Ща тебе расскажут про O(2n).
Там такая же тема как и с linked_list и vector
Даже с лучшей ассмптотиках на определенных значениях, лучше выбирать худший варик
> Синтаксис С же очень прост. Но что можно сделать без функции malloc? без работы с файлами? без fork?
можно попросить операционную систему напрямую, в винде или эмбедщине glibc не используют.
Зато на крестах это в стдлибе уже все запрограммировано за тебя и под win, и под lin, и даже под браузер. Зачем самому ебаться.
В винде нет libstd там свои библиотеки visual c++. Ну и вообще в плюсовой библиотеке находится совсем не то что ты думаешь. Все вот эти объекты map/set/promise и их методы в заголовочных файлах и все это включается в твою программу. В библиотеке только системо-зависимые подпорки для этого всего.
В либе тоже часть функционала, по крайней мере в линуксных компилерах. Когда линкуешь clang с его libc++ вместо дефольной гццшной libstdc++, то многие фичи С++20/23/2c начинают работать. Почему ж оно так, если там в хедерах все?
Потому что путь линукса - держать миллион либ разных версий в окружении. А путь психически здоровых людей - всё нужное хранить в бинарнике. На винде из внешнего только есть вцрантайм на 120 кб, но его можно и статически линкануть с /MT. Сам STL всегда статически собирается.
В смысле? В линуксе тоже можно статически собирать и часто так и делают, единственное что glibc (это не кресты), лучше статически не линковать. Ты хуйню какую-то написал, не забыв при этом разделить людей на психически здоровых и нездоровых.
Психически стабильный человек никогда не выберет коляску вместо удобной ОС. Не понимаю в чём упрёк.
У линукса много недостатков, у винды много недостатков. Операционки все еще в бронзовом веке, к сожалению. А ты просто ёбнутый.
>у винды много недостатков
Это каких, лол? Единственная вменяемая ос для ПК, остальное сорта прошивок для той или иной залупинской задачи, не более.
Только не подумай неправильно, я понимаю корпораборв присосакшихся к кормушке клепания прошивок кабанам, но бабло это бабло, а ос это ос, совсем разные вещи. Если что-то прибыльно для кого-то (мало кого, ведь корпораб это 1 из 100000 людей), не значит это что-то хорошее, полезное.
Домохозяйка съеби в /s со своей прошивкой для игр. Или в /gd Прошивка для сервера хотябы к тематике относится
>glibc (это не кресты), лучше статически не линковать.
Поч? Единственное что стабильно статично линкуеттся
Хорошо, но как это противоречит тому что я сказал?
>>58040
Майкрософт для винды свой софт точно так же собирает, вынося все в библиотеки и линкуя с ними программы и точно так же как на динуксе некоторые библиотеки не включены в дистрибутив их надо выкачивать с сайта Майкрософт.
Просто на винде сложилась такая культура таскания своих библиотек из за генетической памяти, когда все прибивали софт гвоздями к wmp shell32 из виндовс xp а потом хуяк и в висте все поменялось. Плюс винда уже давно сдала все позиции по всяким wmv ie (сейчас уже никто и нипомнит что они доминировали когда то) и в целом все пришло к тому что пользоваться чем то из состава винды кроме гуя это примерно то же самое что в линуксе привязывать по ко всяким сервисам типа phonon из KDE. Просто в линуксе (и кстати макоси) помимо сервисного разного говна есть и нормальные библиотеки вроде zlib libssl а в винде квадратно-оконный велосипед от ms.
Чел, линукс - это софтина из винстора. Нахуя её на голое железо ставить и ебаться с консолькой, если можно пользоваться линуксом из винды?
Ды мы все поняли, съеби уже.
Под эльбрус уже можно наноядерную ос на плюсах писать, но нету сырья и кадров.
Пипец, тупое животное, не видит космической разницы в устройстве винды и линукса. Вот до чего доводит привлечение в программирование свиней охочих до денег.
У меня есть класс, который принимает извне шаред_птр по значению, далее этот шаред_птр идёт в два члена, один хранится по значению, второй по шаред_птр. Проблема: при работе класса, у меня меняются те значения, которые вообще никак меняться не должны. Бул инкрементируется блядь. Смотрел в отладке, на Винде (msvc 2022) и дебиане, выводил в консоль - одинаково плохое поведение.
Что характерно, при вызове конструктора в проблемном месте, конструктор не меняет значения, что вообще пиздец какой-то. Понятно, что конструктор работает до обработки (сама обработка - заполнять буфера), и здесь выход за границы массива маловероятен.
Я тестировал валгриндом и санитайзером в Винде - начего. В других местах программы используется asio, есть места с использованием atomic. Программа в одном потоке. Ещё, винда показывает, что память растёт, хотя по коду ничего такого быть не должно, и это очень похоже на ту же ошибку.
Я воооообще не понимаю, как отловить баг, все мои знания закончились. Я даже часть кода переписал, думал, что проблема из-за шаредптр, в итоге упростил часть с ссылкой классов друг на друга. Если класса разбросать на компоненты, инициализация и рвота корректная.
>у меня меняются те значения, которые вообще никак меняться не должны
Нельзя watchpoint поставить и посмотреть, каким кодом это значение меняется? Вроде вочпоинты неплохо работают, я так делал в gdb и в инструментах разработчика в Хромиуме для WASM.
https://sourceware.org/gdb/current/onlinedocs/gdb.html/Set-Watchpoints.html
А вообще сам понимаешь, сложно по твоему описанию что-то предположить. Ну чисто наотъебись может у ASIO настройка неправильная размера буфера или типа данных сигнала (вроде там float32, не помню точно уже) и он переписывает твои данные звуком.
Это надо сначала чистый C++ учить, а потом какой-то фреймворк? Какую литературу про такие задачи можно почитать?
Вотчпоинты (смотрю в отладке в интерфейсе msvc) меняются. Либа asio не про звук, а Boost::asio - про асинхронное выполнение. В целом, либа очень надежна, и вряд-ли в ней проблема. Переменные меняются, как в вотчере, так и в выводе в консоль.
Для меня наибольшая загадка, почему в конструкторе члены при инициализации не меняются.
Да, ещё забыл сказать, что один из мутных классов шаблонный, и наследуется от нешаблонного интерфейса. Я предположил, что где-то как-то vtable поехал или типа того, но вроде все делаю корректно.
И вообще, sanitizer в новой msvc вроде мощный инструмент в поиске утечек. Пример: я сделал вектор<чар> в(4), далее указатель на чар* птр = в.дата(), и записал птр[4]=10. Санитайзер это нашел и заорал, а обычное выполнение эту часть пропустило.
Не совсем "чистый" c++, смотри Qt. Это очень хороший фреймворк, нормально скилл с ним развиваешь. Начинаешь с чего-то простого, потом все сложнее и сложнее штуки делаешь. В какой-то момент без проблем сможешь любые сторонние либы подключать, и писать жирный визуал на опенгл/вулкане.
Для начала, для формочек сойдёт штатный функционал с графиками и пеинтером.
Минус куте в лицензии, за что его красноглазики не любят, но они идут нахуй.
По каким материалам изучать Qt, чтобы научиться разрабатывать приложения, а не просто поделия уровня laba2 под диктовку?
Qt параша подходит только для хеллоуворлдов или проектов попила бабла типа KDE, где занимаются переписыванием: Qt N -> Qt N+1 -> Qt N+2 -> Qt N+3 -> Qt N+4 ... Разработка? Это что такое? Нам некогда, там новый Qt вышел, надо на него переписывать.
Ты понимаешь, что даже мелкая программа разрабатывается годами, за это время выйдет несколько новых Qt превращая твой код в тыкву. Никакой разработки быть не может если у тебя нет галеры рабов задача которых постоянно переписывать на новый Qt что уже давным-давно написано, иначе это будешь делать ты, то есть разработка не сдвинется с мертвой точки.
Ты портфель собрал уже? А летние задания сделал? Проверь еще раз.
Actual Size всегда разный, как будто я где-то из нулевого указателя читаю.
А, написал довольно косноязычно, нужный текст в прочитанной строке таки есть, но вот после него абсолютно левые данные.
Бля, подозревал что-то такое, но слишком тупой чтобы пробовать такое, спасибо, возьму на заметку.
std:vector<char> buf();
buf.capacity(len);
_File.read(buf, len);
return std:move(
std:string(buf.begin(), buf.end())
);
Вот так надо это делать на плюсах.
Притворяюсь что ничего не видел, иду пить кофе.
1. Без полного кода и примера формата файла нихуя не понятно
2. Ты говоришь сначала идет размер u32 то есть в бинарном виде? Если так то тут влияет endianness.
В остально твой высер не читал
> По хорошему конечно такие методы надо делать инлайновыми
И каким же образом ты это будешь делать, так чтобы тебя рандомно компилятор нахуя не послал
По чатужпт. Книги всё хуйня, только опыт.
Для начала, сформируй свою хотелку, что ты хочешь, накидай этапы. Это реально важно. Нормально, что первый этап "запустить хеллуворлд", это уже достижение.
Потом, если у тебя нормальная задача, типа матана, то тут надо понять, что тебе нужно. С++ нужен для скорости и создания такого визуала, который другие средства предложить не могут. Но с++ срано подходит для мат. разработки, он не скриптовый, и вывод произвольных данных или картинок сильно затруднен.
Для матана лучше использовать матлаб или питон. Предположим, ты хочешь сделать супер алгоритм сжатия картинки. Вот у тебя есть lena.jpg и наброски алгоритма, типа каждый четный пиксель удаляем. Алгоритм прост в реализации как и весь матан, поэтому его лучше сделать на питоне. Он тебе даст постой способ загрузки джпега с переводом в пиксели, и даст такой же простой вывод. С чистым с++ ты потратишь день на вкат в смаке и поиск либы.
Зачем тогда C++? Для реализации например http сервиса, который примет от миллиарда клиентов картинку и сожмет ее. Но и тут прикол в том, что многие другие языки отлично подходят для конкретно этой задачи
1. Добавить прямо в объявление класса
2. После объявления класса добавить в заголовок #include inline_methods.cpp 3. Прописать метод как inline и использовать lto.
Молодой человек, на пересдачу
Битовые операции иди выучи, потом придешь за препроцессор пояснять.
>Для меня наибольшая загадка, почему в конструкторе члены при инициализации не меняются.
Может объект где-то скопироваться успел? cout << this то одинаковое везде? Ну я хз вообще, у тебя там сложная какая-то ситуация, ее словами не объяснишь даже особо.
this я не везде вывел, но спасибо за подсказку. Я удалил конструкторы присвоения и копирования в мутных классах на всякий случай.
Вообще код очень типовой, типа в классе А создаётся shared_ptr<B>, который передается (по значению) в конструктор класса C: c_(b_ptr_). Порядок инициализации верный.
Собственно всё, но я щас объяснил с точки зрения на подозрение, что проблема где-то в шаред_птр. Ещё я упростил передачу шаред_птр и отказался от ссылок друг на друга, хотя такое допустимо.
Меня беспокоит другое, я не знаю, какими средствами запустить диагностику. Я далек от флагов компиляции, обычно пользуюсь дебаг/релиз и редко чем-то другим.
Всякая технологическая залупа, которую не часто ирл встретишь, типа >>59368. Куте хорошо подходит, из коробки есть работа с сериал портом, модбасом, сильная библиотека по работе с 2д графикой. Достаточно просто накидать утилитарный ui, но делать красиво уже дроч, хотя куте всячески продвигает QML.
QT сильно кроссплатформенный, а так как кресты, то ещё и быстрый, что позволяет собрать форму с кнопками доильного аппарата на говнопланшете, который имеет старое железо, зато сенсорный дисплей, и работает -50..+70.
Сам qt намекает на использовании в серьезном проме, типа делать кнопки и графики на ртос QNX, где надёжность и рилтайм. Или спидометр машины. Не пробовал, но интригует. Ява сосет и хуйня, вебоговно очень прожорливое и нестабильное, винда масдай и нахуй не нужна во встройке, когда есть линукс и андроид. Получается, qt чуть ли не единственный вариант для не мощных систем с графикой, а кроссплатформа дает не самый мозгоебальный перенос своей программы на разные ос.
Вроде телеграм десктоп на куте. Вроде qbitorrent.
>Программа для настройки доильного аппарата
Никогда не знаешь, что придумают эти юзеры.
>>59374
Я только помню, что для gcc/clang для максимума отладочной информации -ggdb и -O0, а то все переменные будут <optimized out>. Но это для отладчиков на основе GDB. Для DWARF там какие-то свои флаги. А под виндой я тем же clang пользуюсь на основе mingw, хоть это и не совсем правильно.
>ресайзил обе строки под один размер
Если ты их так копируешь, то надо бы глянуть, как ты их ресайзишь, а то мало ли...
Да делают так, хоть это и неправильно и против всех стандартов. Оператор [] возвращает ссылку на char из реально внутреннего буфера. Указатель на ссылку это законно.
Ага, а еще нельзя забывать про охуенный operator= и ебейший конструктор копирования.
> Достаточно просто накидать утилитарный 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 -ом.
string это не тот тип где предполагается работа с байтами. Используй array<char, N> или vector<char> и используй .copy() либо итератор.
И? Кто-то cpp заинклюдил, бывает, к ответам это как относится?
Какая ирония, ведь сишарп это как раз то, на что тебе надо бы обратить внимание. Тебе компилятор в том месте >>59542 три раза написал, что ты уёбище, а ты отмахнулся преобразованием типов. В результате наиболее вероятно, что uncompress просто увидела по адресу packed_data какую-то хуйню, ведь это не байты строки, а байты объекта string, и не стала вообще ничего писать в unpacked_data. Но если бы стала, то ты бы ещё и затёр объект unpacked_data и еще что-то дальше него в памяти на какую-то глубину.
Инклюдить cpp все равно не нужно, или хотя бы переименовать его в inc, это кстати по крестовому стайлгайду гугла, чтобы у тебя сломалась подсветка синтакса в ide и ты задумался, на правильном ли ты пути. А по расширению cpp могут определяться например списки целей в Makefile, и прочая хуйня. Лучше в хедеры тогда свой говнокод пихайте.
Ну, это я знаю, я хуй знает вообще откуда взялось про inline_functions.cpp, это не мой файл и я ничё подобного не скидывал, в треде тоже не видел.
Ну, сгенерил через glGenTexture, сохранил в GLUint, потом вызываю glBindTexture с этим GLUint, по итогу получаю пустую текстуру.
ЧСХ если вызывать glBindTexture один раз и сразу после glGenTexture - всё работает, но тогда я меж текстур переключаться не могу.
> Инклюдить cpp все равно не нужно, или хотя бы переименовать его в inc, это кстати по крестовому стайлгайду гугла
Что бы что? Что бы OS/хиджаб и редактор кода не могли понять что это такое и как это воспринимать?
> чтобы у тебя сломалась подсветка синтакса в ide и ты задумался, на правильном ли ты пути. А по расширению cpp могут определяться например списки целей в Makefile
Допустим у тебя проект, в котором есть модули:
format_abc.cpp
format_cdf.cpp
Каждый для своей os/подсистемы/конфигурации сборки. Как ты один из них предлагаешь исключить из "списка целей" при твоем подходе? Предлагаешь их тоже слить в один фаил и под блоки препроцессора загнать?
Не контролировать процесс сборки, не знать какие цели у тебя собираются в бинарник - вот подход который надо менять.
дебил бля
>Как ты один из них предлагаешь исключить из "списка целей" при твоем подходе?
Причем тут я вообще. Это не мой подход, но я видел как это делают другие - делают папку generic, папку unix и папку windows. Ну например.
> Эти номера еще надо в параметры шейдера вроде пропихивать
Накой чёрт? Я-же не использую шейдеры.
Ожидаемо.
А если у тебя скажем под одну операционку несколько разных подсистем и одна из них для некоторых совпадает как быть?
Я понимаю что хочется сделать просто %.cpp и не думать о файлах но в нормальных не студенческих проектах так не делается.
Вообще конечно можно .hpp/.hh файл с методами назвать не принципиально, просто потом вдруг понадобится эти функции в объектный фаил скомпилировать (как обычно) а фаил заголовочный. Впрочем в моем случае предполагается что есть не инлайн методы и можно в этом случае туда инклюдить.
Другой вариант - называешь файлы вменяемо, а не abcd блядь. А то потом весело будет кому-то за тобой твою писанину разбирать, если они у тебя еще и переинклюжены все друг в друга.
Имею опыт только в браузерном gl и шейдерах. Главное что уяснил это то что все это говно исполняется на GPU и все данные тоже сидят/должны сидеть в видеопамяти, и все это очень аккуратно надо мешать с кодом и данными которые исполняются на процессоре что бы не получилось так что данные туда сюда копируются или что данные в обычной памяти, а ты как долбоеб пытаешься с ними работать в контексте видеокарты.
Х.з. проверь что биндится и генерируется действительно один и тот же номер текстуры. Сразу после gen то оно понятно, что так, а вот как там у тебя методы выдываются, это сложно понять. В общем репортни его через cout (дебаг может наебнуть взаимодействие с gl).
А вот в строке 229 что за безобразие?
Ты номер текстуры превращаешь в intptr_t. Так делают, когда хотят какую-то арифметику с адресами сделать сложнее +-, например, выровнять адрес. Во-первых, номер текстуры это вообще не указатель, а во вторых ты его без всякой арифметики сразу конвертишь в void ptr. Может так и надо канеш, но это как-то необычно.
Абля, я мудило, там типа так и положено костылиться по ману с этим ImGui.
Какие книжки посоветуете для начала?
Или мне стоит учить только то, что требуется в вакансиях на ХХ для стажеров/джунов? Как адекватно это воспринимать, если количество необходимых условий или навыков "слишком" много/мало в вакансии?
Нужен отдельный ноут с линуксом?
Поступил на заочку околопрограммисткую, т.к уже заканчивал магу по другой специальности. Диплом и 2 статьи пилить... по ит для меня это новое и выглядит довольно странно( хотя и в теплотехнике формул хватало из книжек 20-50 летней давности)
мне 31
Не так ты подходишь к реализации цели. Купи ВПН, зарегайся в чатжпт и начни делать игру. Определись, что ты хочешь, механику, лор, это самое важное. С++ всего лишь инструмент, как молоток, а чатжпт - сосед Вася, у которого есть молоток и который за тебя может гвоздь забить правда, хуево.
Ты хочешь изучать С++ так, как старперы в книгах и на форумах описывают. Так вот, это всё хуйня, это неэффективно, отрывает от реальной современной разработки и тупо устарело. Я знаю о чем говорю, на работе меня окружают такие ламеры-пердуны, которые блядь младше меня, но для которых СЛОЖНО изучить новый язык ради простого скрипта.
Программирование не цель для большинства разработчиков. Если оно действительно как цель, то это академическое изучение и тема выходит из математики.
так что остаюсь на плюсах. С# не хочу, хз душа не лежит, хотя на последней работе приходилось и на нем писать.
Других вариантов не вижу.
Игори хз, тоже не особо тянет.Чисто для ознакомления писал движок на OpenGL, но эта еботня с библиотеками заебала. Они у них по кд что-ли API переделывают.
Так что буду пилить проект-микросервис на userver по совету анона и уныло искать работу хотя бы за 150к
всем бобра
пакет curl установлен последней версии проверено через:
curl --version
но когда устанвливаю userver пишет:
Loading failed: Cannot start component http-client: Unsupported libcurl 7.88.1,
в чем проблема, куда копать, гугл молчит
Тебе буквально написали в чем проблема
Сиди, дед. Говнокодить можно и макаку научить, навык как у лифтера кнопки нажимать
Заставь макаку говнокодить - так она будет менять капчу каждые полгода.
Попробовал сегодня, кайфанул чёт жёстко.
> 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 и физическая константность.
На собеседовании в серьезные места задают охуительные вопросы про многопоточность, про шаблоны, про всякую хуйню малафью. Я могу запомнить что-то о технологиях, которые мне никогда не пригождаются, но если меня спросят что-то вглубь, станет очевидно, что я это не использовал. Как я блять для себя должен хуячить пет-проект с кучей шаблонного кода и многопоточностью? Да еще и с бустом, да под линукс? И когда?
void MyClass::safeExec(const std::function<void(std::vector&)> & func)* фикс
Накопить на год сычевания и сесть и написать движок для спрайтовой ммо. Пол гда на чтение, пол года на писание кода. Если у тебя есть сила воли не потратить гэпчик на аниме и двачевание вместо чтения джосатисов и писания ммо двигла...
Звучит как хуйня совет, потому что валидировать написанное некому. Можно писать полную хуйню в стол хоть десятилетиями, и оно даже будет работать. В говноконторах так пишут
Еще вадидировать можно в сообществах. Например есть большой с++ сервер в дискорде. Там куча народу каждый день текстом и голосом общаются на ангельском.
Что-то мне подсказывает, что в 99% случаев человек месяца 2 пыхтит, потом просто вола ебет, потом устраивается на дноработу опять
>>63519
Бесплатно тебе максимум на стековерфлоу ответят, потому что некоторые люди любят медали за участие в коммьюнити. Никто блять не будет валидировать архитектуру твоего кода в дискорд-сообществе, по крайней мере, ничего путного там не скажут. Будет ли человек после работы пастись в таком соо, чтобы смотреть говнокод других людей? Нахуя?
Корутины там реализованы, внезапно, как безстековые корутины. Кроме того, что выполнение можно суспендить и резюмить (кооперативная многозадачность) там ничего и не нужно.
Асинхронщину можно и без них вообще делать. Ничего тебе не мешает намутить очередь событий, и плясать от коллбеков. Но нахуя когда есть Boost.Asio?
> Отсутствие микробиблиотеки для эмбедщины, или хотя бы каких то опций сборки стандартной, чтоб например только vector и и все что ему нужно собиралось и все.
Что это значит вообще? У тебя код генерируется только для инстанцированных шаблонов. Если используешь только вектор, то и код будет только для инстанцированных векторов.
А зачем системному вызову быть частью стандартной библиотеки? Кому-то и на CreateProcess норм.
>Какой по вашему мнению фатальный недостаток C++?
Всё окружение нужно пердолить самому с нуля. Начиная от мейкфайлов, линтеров, пакетных менеджеров, юнит тестов, генерации документации ну и так далее короче. Каждая мелкая хуйнюшка ебёт мозги. 100500 разных систем и ни одной шоп из каропки сразу и без головняка как в расте или golang.
> Кстати годная идея, сделать этакий аналог Qt, без qt легаси на 20+ стандарте. Вместо виджетов и qml реализовать веб-стек html+css+svg+js
Это называется Chrome. Ставишь электрон, пилишь фронтенд на вебморде. Если хочется функционал именно нативно на плюсах писать, то делаешь на них бекенд с FFI прослойкой.
>Это называется Chrome. Ставишь электрон, пилишь фронтенд на вебморде. Если хочется функционал именно нативно на плюсах писать, то делаешь на них бекенд с FFI прослойкой.
Электрон это браузер + нода + нативные библиотеки в комплекте с приложением, там джаваскприпты запускаются в виртуальной машине, поддерживается целиком весь Web стек с генерацией html и скриптов и стилей из строк. Моя же идея состоит в том что бы сделать как в Qt/QML с генерацией из html+css+js плюсового кода и последующей компиляцией в натив. Естественно при таком подходе никаких динамически генерируемых скриптов/стилей/деревьев из строк не может быть, CSS3 анимации не будут поддерживаться, веб-объекты целиком не будет поддерживаться, вебпаки/js-фреймворки идут нахуй
Идея в том чтоб вместо вот такой вот хуйни:
main.qml ```
import Qt.platform.moduleA
ApplicationWindow {
_ id: win1
_ width: 640
_ height: 480
_ property var col1: "black"
_ property var str1: ""
_ Text { color: col1; text: str1 }
_ function test() {
__ str1 = "hello world!"
__ col1 = "green"
_ }
}
```
сделать по стандартному:
package.json ```
"window": {
_ "width": 640
_ "height": 480
}
```
index.html ```
<!DOCTYPE html>
<html>
<head>
__ <title>test application</title>
</head>
<body>
__ <div id="txt1"></div>
__ <script src="main.js"></script>
</body>
</html>
```
main.js ```
import "js/modules/A.js"
const txt1 = document.getElementById('txt1');
function test() {
__ txt1.textContent = "hello world!";
__ txt1.style.color = "green";
}
```
В общем стандартный c++ стандартный js+html+css который в совокупности должен обеспечить то же самое что qt и даже немножко больше. Резон: куча скопившегося легаси в самом qt и сомнительная политика головного разработчика.
>Это называется Chrome. Ставишь электрон, пилишь фронтенд на вебморде. Если хочется функционал именно нативно на плюсах писать, то делаешь на них бекенд с FFI прослойкой.
Электрон это браузер + нода + нативные библиотеки в комплекте с приложением, там джаваскприпты запускаются в виртуальной машине, поддерживается целиком весь Web стек с генерацией html и скриптов и стилей из строк. Моя же идея состоит в том что бы сделать как в Qt/QML с генерацией из html+css+js плюсового кода и последующей компиляцией в натив. Естественно при таком подходе никаких динамически генерируемых скриптов/стилей/деревьев из строк не может быть, CSS3 анимации не будут поддерживаться, веб-объекты целиком не будет поддерживаться, вебпаки/js-фреймворки идут нахуй
Идея в том чтоб вместо вот такой вот хуйни:
main.qml ```
import Qt.platform.moduleA
ApplicationWindow {
_ id: win1
_ width: 640
_ height: 480
_ property var col1: "black"
_ property var str1: ""
_ Text { color: col1; text: str1 }
_ function test() {
__ str1 = "hello world!"
__ col1 = "green"
_ }
}
```
сделать по стандартному:
package.json ```
"window": {
_ "width": 640
_ "height": 480
}
```
index.html ```
<!DOCTYPE html>
<html>
<head>
__ <title>test application</title>
</head>
<body>
__ <div id="txt1"></div>
__ <script src="main.js"></script>
</body>
</html>
```
main.js ```
import "js/modules/A.js"
const txt1 = document.getElementById('txt1');
function test() {
__ txt1.textContent = "hello world!";
__ txt1.style.color = "green";
}
```
В общем стандартный c++ стандартный js+html+css который в совокупности должен обеспечить то же самое что qt и даже немножко больше. Резон: куча скопившегося легаси в самом qt и сомнительная политика головного разработчика.
Это для твоей программы генерируется, а библиотека нужна в самой embedded системе, в памяти висеть и предоставлять программам функции вроде мемори алокатора и чтения/записи файлов. Последнее к слову на эмбедщине не нужно и вот без них например и хотелось бы иметь параметры сборки.
А что именно? Разве можно инициализировать массив указателем, если нет то это просто опечатка в книге?
Массив это и есть указатель
Это не массив, это куча на стеке.
Поскольку ты константную строку пихаешь в неконстантный буфер, очевидно оно разворачивается в побайтное копирование либо вызывается копи треит какой нибудь.
это я навалил
такая хуйня прокатит только при инициализации
и раньше думал что только с литералами а вон оно че
array это куча, дословно.
И да куча навоза тоже array. Но именно навоза и именно большая куча, человеческие экскременты (типа как твой пост) кучей на считается, а зовется просто pookp.
этот лингвистический факт однако не отменяет того что если ты в приличном обществе назовешь массив кучей то тя обоссут
кстати это произошло прямо сейчас
> в приличном обществе назовешь массив кучей то тя обоссут
Это в обществе джава-петухонщиков что ли?
Вот туда и съеби гыгыкать с единомышленниками, а здесь изволь всасывать термины из мира С/C++.
> Массив это куча
А ведь учебный год только начался...
сынидзе наху в с++ хип/куча это либо динамическая память либо
древообразная структура данных
газуй усваивать термины утром экзамен со сложными вопросами
в виртуал_аллок конечно есть смешные флаги но это не то
То есть все таки слово "куча" есть, (на швабре нагуглил, молодец).
Только вот в плюсах никаких хипов и "динамической памяти" нет, это речь как раз про стек высокоуровневых "безопасных" языков джавы, и "кучей" оно обзывается потому что там сишными "массивами" все реализовано. Естественно в памяти потому что процедурном стеке такие вещи не делают.
никто и не говорил что нету че ты затрясся так
я говорю что массив и куча ето разные вещи никто и кроме тебя шиза его так не называет
так что давай тащи ссылки на литературу где ты этой хуйни начитался или обтекай inb4 хранение бинарной кучи в векторе не считается
никто не мешает выделить кусок памяти на стеке и использовать его как кучу с кастомным аллокатором
Пиздец у тебя каша в башке. Стек - это уже выделенная память. То что ты там рядом выделишь уже не будет стеком.
Стек (процедурный) это механизм железа, он будет внезависимости от того что ты с ним и с данными на нем делаешь, помоему был даже раньше такой хак через расширение стека, но что то давно уже про эксплуатацию таких дыр не слышал.
ну дык
вспомни про двухканальный режим работы памяти (во всех бытовых компьютерах), теоретически увеличивает пропускную способность в два раза, практически - от 10 до 70% в зависимости от того какое приложение используется;
на серверах есть 4х канальный режим работы памяти, ну и так же в зионовских материнских платах с али которые переделаны с серверных компов тоже есть 4х канальный режим (но не навсех матплатах)
с другой стороны ничего тебе не мешает почитать о физическом устройстве оперативной памяти, как она работает, вплоть до разводки на плате и то как работает контроллер оперативной памяти
На четвёртый день индеец Соколиный Глаз заметил, что в сарае, куда их заперли, не хватает одной стены.
- Вот тут у нас багов много, понимаешь?
- Давай я вот тут хип навалю, и мы их разом и убъем.
Шиит Г. Принципы и основы Java. (Глава 2. причины появления)
Плюсовых программистов хлебом не корми дай пописать шаблонного говна
Весь этот сложнейший синтаксис, шаблоны (кто бы что не говорил, а плюсовые шаблоны это антипаттерн, не контроллируемый комитетом [см. лупхолы], открывающий дорогу к метапрограммируемой нечитаемой лапше), комитет, занимающийся какой-то хуйней, зоопарк билдсистем, из которого долбаебы выбрали самую хуевую и назвали её «де факто стандартом», два пакетных менеджера, один из которых разработан на ПИТОНЕ, а второй курируется майкрософтом, умопомрачительно долгая компиляция, и, как вишенка на торте, отсутствие модулей (они, если что, даже в фортране появились 30 лет назад)
Поэтому, ищем альтернативу.
C — очевидно, нет. Достоинств меньше, недостатков больше. Те же проблемы с модулями, системами сборки, к которым добавляется отсутствие каких либо удобных способов обработки ошибок, почти полное отсутствие стандартной библиотеки, отсутствие неймспейсов, необходимость говнокодить макросы.
D — непонятно чего блять нахуевертили, попытались сесть на все хуи сразу и порвали жопу. Какая-то помесь говна и желание угодить всем. Есть GC, заявляется, что можно писать и без него, по факту на него опирается половина стд. Не знаю даже что ещё написать, на язык дрочит Александреску, а значит вместо написания кода на нем нужно дрочить метапрограммирование в присядку.
Zig — уже лучше. Есть модули, есть своя система сборки (пока вроде бы без пакетного менеджера, но вроде бы обещают добавить). Комптаймы вроде бы лучше шаблонов. Нет нормальной работы с ошибками, банально нельзя передать вместе с ошибкой какую-то доп. информацию. В каком-то из issue на их гите прямо говорится, что можно костылить Rust-way с самодельным Result<T, E>. Непонятно только, нахуя при этом нужна обработка ошибок, предоставляемая языком, если для консистентности во всём проекте нужно будет использовать эту. И использовать её будет не так удобно, потому что поддержки в языке нет. При этом язык пока слишком молодой, и всё может измениться. Задел хороший, нужно ждать.
Hare — язык от Дрю ДеВолта. Насколько я понимаю, наполовину спизжен с Зига, и наполовину с раста. Стандартной библиотеки почти нет, каких-либо дженериков нет совсем, пока что не понятен роадмап развития языка, об этом даже написано на официальном сайте. Но обработка ошибок уже лучше чем в зиге. Язык ещё моложе, чем зиг, так что пока тоже ничего не ясно, придётся ждать.
Rust — не рассматриваем, те кто хотел, давно на него пересели. Те, кто захотел сейчас — клуб кожевенного ремесла на два треда ниже.
Знающие, напишите про остальных возможных кандидатов. Таких как Cabron, Odin, Nim, AsmX, и всё остальное, о чем я не упомянул.
Плюсовых программистов хлебом не корми дай пописать шаблонного говна
Весь этот сложнейший синтаксис, шаблоны (кто бы что не говорил, а плюсовые шаблоны это антипаттерн, не контроллируемый комитетом [см. лупхолы], открывающий дорогу к метапрограммируемой нечитаемой лапше), комитет, занимающийся какой-то хуйней, зоопарк билдсистем, из которого долбаебы выбрали самую хуевую и назвали её «де факто стандартом», два пакетных менеджера, один из которых разработан на ПИТОНЕ, а второй курируется майкрософтом, умопомрачительно долгая компиляция, и, как вишенка на торте, отсутствие модулей (они, если что, даже в фортране появились 30 лет назад)
Поэтому, ищем альтернативу.
C — очевидно, нет. Достоинств меньше, недостатков больше. Те же проблемы с модулями, системами сборки, к которым добавляется отсутствие каких либо удобных способов обработки ошибок, почти полное отсутствие стандартной библиотеки, отсутствие неймспейсов, необходимость говнокодить макросы.
D — непонятно чего блять нахуевертили, попытались сесть на все хуи сразу и порвали жопу. Какая-то помесь говна и желание угодить всем. Есть GC, заявляется, что можно писать и без него, по факту на него опирается половина стд. Не знаю даже что ещё написать, на язык дрочит Александреску, а значит вместо написания кода на нем нужно дрочить метапрограммирование в присядку.
Zig — уже лучше. Есть модули, есть своя система сборки (пока вроде бы без пакетного менеджера, но вроде бы обещают добавить). Комптаймы вроде бы лучше шаблонов. Нет нормальной работы с ошибками, банально нельзя передать вместе с ошибкой какую-то доп. информацию. В каком-то из issue на их гите прямо говорится, что можно костылить Rust-way с самодельным Result<T, E>. Непонятно только, нахуя при этом нужна обработка ошибок, предоставляемая языком, если для консистентности во всём проекте нужно будет использовать эту. И использовать её будет не так удобно, потому что поддержки в языке нет. При этом язык пока слишком молодой, и всё может измениться. Задел хороший, нужно ждать.
Hare — язык от Дрю ДеВолта. Насколько я понимаю, наполовину спизжен с Зига, и наполовину с раста. Стандартной библиотеки почти нет, каких-либо дженериков нет совсем, пока что не понятен роадмап развития языка, об этом даже написано на официальном сайте. Но обработка ошибок уже лучше чем в зиге. Язык ещё моложе, чем зиг, так что пока тоже ничего не ясно, придётся ждать.
Rust — не рассматриваем, те кто хотел, давно на него пересели. Те, кто захотел сейчас — клуб кожевенного ремесла на два треда ниже.
Знающие, напишите про остальных возможных кандидатов. Таких как Cabron, Odin, Nim, AsmX, и всё остальное, о чем я не упомянул.
> сложнейший синтаксис
Ты совсем хлебушек? Пиши на си с классами, если так сложно. Тебя заставляет кто-то пользоваться всем сразу? В либах даже дженериков часто нет.
> Zig — уже лучше
Мразотное говно от пердолей, рулит всем идейный борец за швабодку. Решения принимает естественно не в пользу кодеров, а в пользу свой шизы. Чего только стоит тот пиздец с неиспользуемыми переменными, был дикий шитшторм, но он всё равно сказал идите нахуй, я за вас уже решил как вам лучше.
> есть своя система сборки
Лучше бы не было. То что в симейке делается стройкой кода - в зиге парой десятков. Писать скрипты сборки зига на зиге - это пиздец.
> Комптаймы вроде бы лучше шаблонов
Зиговский комптайм это аналог крестового consteval. В сложных задачах по производительности медленнее крестов, потому что не умеет в то что умеет constexpr.
> можно костылить Rust-way с самодельным Result<T, E>
> потому что поддержки в языке нет
Так и в расте нет никакой системы обработки ошибок. Все дрочат как хотят и костылят свои реализации монад, в либах часто несовместимые с Result типы. Обработка ошибок через паттерн-матчинг - это вообще пизда.
> Cabron
Единственная потенциальная замена крестов, потому что полностью совместима с ними. Так же как было с жаба-котлин. Но зная гугл ждать чего-то хорошего не приходится. Особенно если они будут пытаться сделать из него ГОвно или внезапно похоронить.
> Nim
Вместо синтаксиса костыль на костыле. Мертворождённое говно.
> Весь этот сложнейший синтаксис, шаблоны (кто бы что не говорил, а плюсовые шаблоны это антипаттерн
Понимаешь, хороший язык это не тот который что то лучшее новейшее высрал, а тот кто дал то что заказывали. Раньше в Си через препроцессор имитировали темплейты то есть через дефайны задавали имена функций инклюдили код меняли дефайн, можно много по разным проектам до сих пор найти этот способ, писать 500 дублированных функций и потом их дружно править это прямая дорога к ошибкам. В плюсах сделали темплейты которые делают именно то же самое и даже чуть больше. Не нужны темплейты не используй, они нужны для генерации двух и более типизированных функций. Понятно что долбоебы ими все обмазывают. Ну так дураку и виртуальный хуй дали он его везде начал сувать. Что поделаешь.
Че мне вообще надо. Хочу в пет проект openssl впихнуть. Естественно мне не нужно подгружать разные провайдеры, фетчить какие то конкретные реализации. Еще я очень не хочу руками память чистить. Поэтому хотел взять какую нибудь обертку в которой хотя бы RAII есть. Но гуглеж не выдает ничего современного.
Может использоваться вперемешку с обычным кодом и умеет в бранчи между константными/неконстантными данными. Не надо дрочиться с этим, компилятор сам выжмет всё что можно.
> один из которых разработан на ПИТОНЕ
Что за пакетник?
Все правильно сделали, современные пакетники на скриптах и надо писать.
> плюсовые шаблоны это антипаттерн
> нечитаемой лапше
Шизик, антипаттерн - дублирование кода. Лапшу ещё 15 лет назад придумали как победить, в отличии от раста. Сейчас можно вообще типы в большинстве случаев не писать.
> комитет, занимающийся какой-то хуйней
Он по крайней мере развивает язык.
> самую хуевую
Только с точки зрения неграмотного дебила. Симейк ахуенная система сборки, позволяющая делать много вещей в пару строчек. Он стал стандартом потому что удобный.
> два пакетных менеджера
В 2024 году в симейке отлично работает установка либ напрямую по ссылке на гит.
> умопомрачительно долгая компиляция
Ты из 2005 капчуешь? Даже огромные проекты с миллионами строчек кода собираются за пару минут на современном железе. А дальше инкрементальная сборка работает, пересобирается за секунды.
> отсутствие модулей
Куда они делись? Даже std переведён на модули уже.
> Ты из 2005 капчуешь? Даже огромные проекты с миллионами строчек кода собираются за пару минут
Ну учти, про миллионы строк кода спизданул не я. Сколько там LLVM собирается?
> Даже std переведён на модули уже.
Ты из 3005 капчуешь? Либо путешественник во времени, либо шиз. Чьих будешь?
Хотя, судя по
> Он стал стандартом потому что удобный.
ответ очевиден
> Компилятор сам
Хехе, ну надеюсь не будет такой ситуации когда компилятор по какой то собственной причине ничего не сказав просто перестанет это делать, такого же не случится, да?
> Сколько там LLVM собирается?
А сколько компилятор раста собирается?
> Ты из 3005 капчуешь?
Из 2024, С++23 требует std на модулях. Хотя есть компиляторы, до сих пор даже С++20 не поддерживающие шланг.
> ответ очевиден
Про тебя всё стало очевидно когда ты написал что система сборки зига лучше симейка.
>>73133
Нет, конечно. Есть стандарт, у компиляторов нет на этот счёт своих собственных причин перестать выполнять код во время компиляции.
>А сколько компилятор раста собирается?
Причём здесь вообще раст? Давай я придумаю гипотетический язык PENIS--, который собирается год. Смотрите, C++ лучше чем PENIS--.Так и победим.
> С++23 требует std на модулях
А, так мы в принципе обсуждаем гипотетический язык, которого в природе не существует?
> Есть стандарт
И что стандарт говорит про то когда компилятор обязан выполнять констэкспр в компайлтпйме?
ты либо наивный, либо н когда не смотрел на выхлоп компиляторов на чем то кроме синтезированный бенчмарков
> Ну учти, про миллионы строк кода спизданул не я. Сколько там LLVM собирается?
Я не он, но ты хоть понимаешь что ты сейчас пускаешь себе подливу в штаны? Это как доебываться до того что av1 или h265 долго кодируют, вон xvid все быстренько делал.
Ты какой то ебанутый, если нельзя положится на компилятор, то тогда что кроме ручных оптимизаций в принципе поможет?
У какого языка выхлоп будет "оптимальный" вопряки тому что компилятор не справился? Ассемблер что ли предлагаешь?
> Давай я придумаю гипотетический язык
Тогда зачем ты пиздишь про медленную сборку? Медленную по сравнению с чем? С джавой, шизик? Или ты примерно почувствовал?
> обсуждаем гипотетический язык, которого в природе не существует?
Если у пердолей нет компиляторов, то это не значит что он не существует. У всех остальных уже есть полная поддержка С++23. У msvc реализация стандартной библиотеки на модулях есть ещё с 2020.
>>73161
> И что стандарт говорит про то когда компилятор обязан выполнять констэкспр в компайлтпйме?
Почитай его. Ты совсем пирипизднутый, раз приходишь и просишь процитировать стандарт? Если вкратце - всё поведение constexpr стандартизировано, там нет "может оптимизирует, а может нет". В стандарте чётко указано когда код выполняется при компиляции, а когда в рантайме. Выше про "компилятор сам разберётся" имеется в виду что тебе не надо жестко разграничивать констевал от рантайма как в зиге, но если ты не понимаешь как оно будет работать - это ты долбаёб, не знающий крестов, а не компилятор в штаны насрал.
>если нельзя положится на компилятор, то тогда что кроме ручных оптимизаций в принципе поможет?
Ничего, ты бля никогда код чтоли не перфил?
Берешь вилку и чистишь то что медленно работает, иногда поглядывая что тебе компилятор на выхлоп дает и направляя его в правильную сторону
>>73177
> "может оптимизирует, а может нет"
))
братишка раии обертки за час пишутся ты либу будешь дольше искать и в симейк себе прикручивать
> Ничего, ты бля никогда код чтоли не перфил?
> Берешь вилку и чистишь то что медленно работает
Что чисти блять? Как ты будешь циклы то чистить если у тебя оттуда колы лесенкой идут? Они должны были синлайнится но нет, константы должны были вычислиться но нет и оно это делает на каждой итерации. А еще у тебя restrict стоит но компилятор не понимает что это такое, ему похуй.
Если у меня отберут оптимизирующий компилятор я лично выхода кроме перехода на сишные дефайны и темплейт-файлы другого не вижу.
> У всех остальных уже есть полная поддержка С++23
У кого всех остальных?
> У msvc реализация стандартной библиотеки на модулях есть ещё с 2020.
Где?
>Медленную по сравнению с чем
Как минимум, с паскалем. Возможностей в нём не в 100 раз меньше, а компилятор собирает себя меньше чем за минуту.
смысл поста?
если ты не можешь положится на компилятор ты решаешься от него полностью отказаться?
ну отказывайся, я то только тут причем
Смысл что если на компилятор нельзя положится в части каких то конструкций например инлайн или прагмы или константные выражения, то придется это либо вручную делать либо вспоминать дедовские хитрости с препроцессором. А как иначе? Что там можно чистить то?
> У кого всех остальных?
У msvc, например. В 17.5 полтора года назад оно вышло из экспериментального в релиз, полная поддержка модулей и std в соответствии со стандартом.
> Где?
https://devblogs.microsoft.com/cppblog/standard-c20-modules-support-with-msvc-in-visual-studio-2019-version-16-8/
Только тогда стандартная библиотека ещё была разбита на несколько модулей std.*, т.к. ещё не было нормального стандарта.
Zero cost abstraction это такая же маркетинговая залупа как и в расте безопасность
> xtensor
Так ты возьми нормальную реализацию матриц на крестах. Где ты это говно откопал? Ясен хуй нампай быстрее, потому что он на крестах и написан. Бери хотя бы eigen, а лучше ggml, если реальная скорость нужна.
А винда написана на дотнете, да.
еще один компонент языка для эффективного soft obfuscation
> C 35%
Ты потролить просто зашел да ведь?
Ты же не знаешь ни си, ни плюсов, ни про библиотеку нампи.
Библиотека содержит низкоуровневые оптимизации под процессоры и видеокарты (вроде даже под эльбрус есть, но не факт что это принято в маинлайн), разумеется не на питоне а на си с интринсиками и ассемблерными вставками. На плюсах написано высокоуровневое API которое пробрасывается в питон и далее питонья библиотека реализует комплексные функции потому что на питоне кодят в основном ученые и математики которые далеки от всяких там обработок массивов/тензеров в цикле, им нужна просто функция которая дает результат
Я как-то сделал программу на С, которая работала целых 32 секунды. Я хуй знает что я намудрил, но она внатуре пиздец как долго выполнялась. Потом подправил немного - стала за доли секунды работать. Так что проверь может у тебя в коде ошибки просто.
>api на плюсах
>пробрасывается в питон
пруфца бы. есть мнение что апи на крестах там только для использования в крестах
и вообще любое апи на крестах годится только для использования в крестах
Шизик, все либы для вычислений на питоне написаны на сишке/крестах. Питон только как скриптовая обёртка там. В каком-нибудь торче вообще JIT свой собственный есть, как и в numba.
CоСи буквально все может взаимодействовать.
Только в нумпае не питон считает матрицы
ls -l lib/python3.12/site-packages/numpy.libs
libgfortran.so.5.0.0
libopenblas64.dev.so
libquadmath.so.0.0.0
мимо
В api на си будут просто функции с причудливыми названиями, а что бы сделать объект/класс с методами нужно писать на плюсах. Питоновый интерпритатор (и jit) в конце концов на плюсах написан.
нет ты шизик я про то что интерфейс с питухоном там через сишку а не кресты
как и вообще интерфейс чего угодно с чем угодно потому что у крестов abi нет
например манглинг тупо не стандартизирован а может и не документирован
творчество душевнобольных
> у крестов abi нет
Ты так говоришь как будто оно есть у сишки, лол. И всё это не вина крестов, а вина сишки. У того же раста всего лишь 170 вариаций ABI, даже под виндой целых 3 штуки. Просто потому что все обязаны взаимодействовать с окружением через сишное ABI, которого не существует в едином виде. И поэтому приходится таскать с собой компилятор сишки всегда, даже яблоко не осилило написать FFI и пользуется шлангом для парсинга сишного кода и генерации биндингов в свифте.
Не будет, твёрдо и чётко. И этот высер похоже даже в серьёз не рассматривали, потому что на летнем съезде комитета не вижу никаких упоминаний про это. Про безопасность комитет рассматривает только компайл-тайм контракты - https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3297r1.pdf
Это намного мощнее инструмент, потенциально позволяющий как раз контрактами чекать дыры, и не только в памяти.
И я уверен что комитет никогда не станет рассматривать "небезопасную память" как то что надо точечно фиксить одним сложным инструментов. Дурак-чеккер всегда будет стоять рядом с GC, поддержку которого несколько стандартов назад окончательно вычистили, чтоб ни у кого даже желания не возникло этим обмазываться. В крестах собираются дать базовый инструмент для решения проблем с безопасностью, а не заставлять пить магические таблетки от проблем с башкой как в дурке.
> компайл тайм контракты
Ебать! Деды ассерт придумали!
Растеры тряситесь, сейчас деды весь код контрактами как покроют!!
хуета ненужная для всяких залуп, которые и так на аде какой нибудь сидят
> ассерт
Это вообще про другое. В аде они действительно как просто ассерты работают, поэтому и не нужны.
> Растеры тряситесь
Им только и остаётся это делать, потому что их дурак-чекер даже не рассматривают как что-то полезное и пилят нормальную реализацию без анальных ограничений.
>пользуется шлангом для парсинга сишного кода и генерации биндингов в свифте.
неплохой подход, ибо многие до этого аналогичную проблему решали (и решают) ручным кодингом
Все правильно делают, безопасность должна быть на уровне железа как у эльбруса. Тогда на крестах можно будет писать быструю наноядерную ос.
Просто ты криворукая макака.
Выучил он С++, сука я 15 лет на с++ программирую коммерчеки и не могу сказать, что я его идеально знаю, а он блять выучил наскоком чтоб говно свое питоновское переписать, ну-ну.
>C++ — говно
Согласен, но что есть то есть. Альтернативы еще кратно хуже.
Единственная надежда на Carbon, но что-то тоже есть сомнения.
Ну либо ждать коммитета, пока язык допилят до современного уровня, но учитывая скорость разработки новых стандартов, хз сколько еще десятков лет придется ждать.
>Плюсовых программистов хлебом не корми дай пописать шаблонного говна
>Весь этот сложнейший синтаксис
Ну хз, раньше да, разбирать шаблонный код было тем еще занятием не для слабонервных, но сейчас то с появлением концептов, ренджей и прочих улучшений, шаблоны стали довольно приятными, единственное пока компиляторы не очень хорошо выдают ошибки в концептах, выдавая простыню разного рода из ошибок, причиной которого может быть просто несоответствие типа концепту. Но это поправят еще думаю.
>комитет, занимающийся какой-то хуйней
Ну хуйней не хуйней, а язык пилят постепенно. Другой вопрос скорости разработки и решений предлагаемых коммитетом, вот к примеру мне не ясно почему корутины вылезли такими сложными и не было более высокоуровнего интерфейса к ним, чтоб можно было легко пользоваться прям сразу, но нет, надо познать ебейший дзен чтобы разобраться в них и соорудить что-то что будет их использовать.
> зоопарк билдсистем, из которого долбаебы выбрали самую хуевую
Ну как зоопарк, по факту есть только 2, make и cmake.Остального говно не используется.
Ну да цмейк не особо удобный, синтаксис немного ебанутый, но все привыкли и научились.
Да и лучших альтернатив тупо нет.
> один из которых разработан на ПИТОНЕ, а второй курируется майкрософтом
тут не особо понял про что ты, что из них на питоне и что курируется майкрософтом? И что плохого в том что курируется майкрософтом? Я хоть и яро ненавижу винду, но не весь майкрософт такое лютое говно, вот к примеру пару лет назад я пересел с жидбреинсов на вскод и доволен как слон.
>умопомрачительно долгая компиляция
Бля, ты попробуй какой-нибудь проект средней велечены хотя бы скомпилировать на расте, там еще дольше это все. А на хаскеле? Тоже долго
Да и не сказал бы что в С++ прям очень долгая, конечно сравнивая с Си да, тут си очень быстро компилируется, но сам должен понимать что любой высокоуровневый ЯП будет относительно долго компилироваться.
Хотя даже не сама компиляция настолько долгая как линковка, работал я как-то на проекте, там компилировался весь проект с нуля 40 минут, из которых минут 20 только занимала линковка. Но там конечно крахово все было еще и под винду...
>и, как вишенка на торте, отсутствие модулей
Ну модули уже есть, не знаю если честно какое их состояние на данный момент, но пока что-то руки не дошли затестить. Но в любом случае в скором времени допилят и все будут на них переходить.
Так что не пизди и пиши на С++, других вариантов нету.
>C++ — говно
Согласен, но что есть то есть. Альтернативы еще кратно хуже.
Единственная надежда на Carbon, но что-то тоже есть сомнения.
Ну либо ждать коммитета, пока язык допилят до современного уровня, но учитывая скорость разработки новых стандартов, хз сколько еще десятков лет придется ждать.
>Плюсовых программистов хлебом не корми дай пописать шаблонного говна
>Весь этот сложнейший синтаксис
Ну хз, раньше да, разбирать шаблонный код было тем еще занятием не для слабонервных, но сейчас то с появлением концептов, ренджей и прочих улучшений, шаблоны стали довольно приятными, единственное пока компиляторы не очень хорошо выдают ошибки в концептах, выдавая простыню разного рода из ошибок, причиной которого может быть просто несоответствие типа концепту. Но это поправят еще думаю.
>комитет, занимающийся какой-то хуйней
Ну хуйней не хуйней, а язык пилят постепенно. Другой вопрос скорости разработки и решений предлагаемых коммитетом, вот к примеру мне не ясно почему корутины вылезли такими сложными и не было более высокоуровнего интерфейса к ним, чтоб можно было легко пользоваться прям сразу, но нет, надо познать ебейший дзен чтобы разобраться в них и соорудить что-то что будет их использовать.
> зоопарк билдсистем, из которого долбаебы выбрали самую хуевую
Ну как зоопарк, по факту есть только 2, make и cmake.Остального говно не используется.
Ну да цмейк не особо удобный, синтаксис немного ебанутый, но все привыкли и научились.
Да и лучших альтернатив тупо нет.
> один из которых разработан на ПИТОНЕ, а второй курируется майкрософтом
тут не особо понял про что ты, что из них на питоне и что курируется майкрософтом? И что плохого в том что курируется майкрософтом? Я хоть и яро ненавижу винду, но не весь майкрософт такое лютое говно, вот к примеру пару лет назад я пересел с жидбреинсов на вскод и доволен как слон.
>умопомрачительно долгая компиляция
Бля, ты попробуй какой-нибудь проект средней велечены хотя бы скомпилировать на расте, там еще дольше это все. А на хаскеле? Тоже долго
Да и не сказал бы что в С++ прям очень долгая, конечно сравнивая с Си да, тут си очень быстро компилируется, но сам должен понимать что любой высокоуровневый ЯП будет относительно долго компилироваться.
Хотя даже не сама компиляция настолько долгая как линковка, работал я как-то на проекте, там компилировался весь проект с нуля 40 минут, из которых минут 20 только занимала линковка. Но там конечно крахово все было еще и под винду...
>и, как вишенка на торте, отсутствие модулей
Ну модули уже есть, не знаю если честно какое их состояние на данный момент, но пока что-то руки не дошли затестить. Но в любом случае в скором времени допилят и все будут на них переходить.
Так что не пизди и пиши на С++, других вариантов нету.
Если в коде обращение к БД, файлу или в сеть, то проще код на петухоне написать, не? Что думаете?
Достаточно раз в месяц перечитывать стандарт и через год будешь "знать". Вся "сложность" крестов из-за того что вместо стандарта все читают какую-то жёлтую поеботу. В других языках официальная документация фактически и есть стандарт, но в крестах нет документации, а читать стандарт неподготовленный человек не может.
Ой бляяя... кукаретик, ты хоть раз сам то пробовал "раз в месяц" перечитывать стандарт и вообще читать его? Стандарт не для изучения языка, а для формализования правил и согласований написанный очень сухим формальным языком, который "просто читать" нереально, можно к нему обращаться для выяснения поведения по стандарту в какой-либо ситуации, но изучать с++ читая стандарт это все равно что пытаться жрать жопой.
>крестах нет документации
Есть cppreference, чем тебе не документация?
> "просто читать" нереально
Вот поэтому у таких как ты и нереально знать кресты.
> Есть cppreference, чем тебе не документация?
Это документация по стандартной либе, а не языку. Ты либо читаешь стандарт, либо пытаешься урывками из статеек выхватывать инфу по крестам и рассказывать как 10 лет не хватает на изучение языка.
Ну да, в питоне и сокеты, и sqlite из коробки.
>Это документация по стандартной либе, а не языку
Уебище, не позорься.
Судя по твоим высерам, ты вообще нихуя не знаешь С++ даже близко, и никогда не читал ни стандарт ни даже цппреф.
Разговор с таким тупым животным, как ты, на этом окончен.
В общем иди нахуй в тред какой-нибудь джавы, раз не умеешь читать стандарт. На твоём cppreference нет даже о каких-то базовых вещах типа UB, только один абзац короче википедии и всё. Там даже по свежей стандартной либе всё очень плохо - даже уже реализованные хедеры нормально не задокументированы.
Ты просто выблядок тупой шлюхи, сука желаю тебе больше никогда не прикасаться к программированию, а лучше вообще к компьютеру, раз ты настолько тупая скотина, которая в самом знаменитом сайте по С++ не может разобраться, при этом животное аппелирует к стандарту, на сайте которого есть прям ссылка на этот сайт, мудило гороховое, это ты нахуй пошел от сюда бездарь тупоголовый.
Я блять анус ставлю, что твои познания в стандарте просто равны нулю нахуй, ты ебучий фантазер школьник, который пытается быть вонаби экспертом С++ по факту ты нулина тупая. У тебя нету ни работы по с++ ни знаний по нему.
При этом мелкий сопливый выблядок, еще имеет дерзость спорить со знающими людьми с опытом. Просто ахуй с этого треда.
Да я просто в ахуе с интеллекта этого дауна, который на вопрос "Как выучить С++?" советует каждый день штудировать стандарт. Просто фейспалм нахуй. Тупее ничего нельзя придумать. Это совет из разряда, чтобы выучить новый разговорный язык, зубрите каждый день словарь, без понимания вообще чего либо. Ахуенно пиздец
Чел, хватит позориться. Стандарт не читал, а уже вдруг стал знать язык и учить чему-то, хоть секунду назад пиздел что это невозможно. Выключай режим сверхманёвренности.
> словарь
Для конченых дебилов показываю стандарт С++23 по ссылке - https://timsong-cpp.github.io/cppwp/n4950/draft.pdf
Это нормально написанный текст, структурированный начиная от базы и далее к сложным вещам, с примерами кода. А ты как раз предлагаешь шариться по каким-то рандомным статейкам на cppreference.
>>75484
Ты просто идиот ебаный, который ни строки не прочитал оттуда, но который продолжает дристать говном и вилять жопой пытаясь делать вид, что он не обосрался. Все что ты можешь - это повторять мои же фразы, тупоголовый лоу айкью школьник. Кто тебе сказал, что я не читал стандарт? Я этого не говорил, идиотина ебаная. Я-то читал его частями, когда надо было. Мне уже давно не требуется "изучать С++", я на нем уже 15 лет пишу коммерчески,в отличии от тебя безработного дауна, который только мысли чужих людей на дваче может транслировать, бездарность. Ты тупоголовый отброс, даже не знаешь, что такое cppreference, а уже споришь тут и затираешь что-то про стандарт, который ты даже не читал, еблан.
Бля короче, кукаретик хуев, пока ты не скинешь сюда свою трудовую, где не будет хотя бы лет 5 стажа С++, можешь мне больше сюда не кукарекать ничего, твои высеры просто посмешище и ты меня уже заебал своей невменяемой тупостью. Над тобой кто-то прикололся, сказав, что С++ надо начинать изучась с чтения стандарта, а ты еблан, принял это за чистую монету и теперь транслируешь это везде с умным видом, хотя сам ты этого никогда не делал. Короче заебал иди нахуй.
Нихуя как дурачка порвало, не сумевшего прочитать стандарт за 15 лет.
Да лучше на писоне/джава/пхп. Ибо в приложениях где основное время занимают чтение/запись всякие запросы по сети, выйгрыш от времени исполнения плюсов трудно разглядеть даже под микроскопом.
И даже на самом деле языки с jit в таких задачах сильно предпочтительнее статик-компаил программы, потому что там как правило большое количество бранчей/свитчей/вызовов с которыми в статике ничего нельзя сделать, а у джаст ин тайм есть возможность собрать статистику по горячим следам и выпилить то что редко или никогда не используется.
На плюсах пиши сервисы кторые какие то быстрые задачи выполняют например хэшсуммы вычисляют/сравнивают, картинки сжимают, архивы проверяют, подписи делают итд итп. Вызывай из питона/пхп и всё.
>Поэтому, ищем альтернативу.
Альтернативы нет, если тебе надо делать продукт, а не изобретать велосипеды. С/С++ однозначно решают по поддержке языка на всем возможном железе, и количеству библиотек для всего, чего угодно. В результате зачем мне ебаться с кривыми биндингами и взаимодействовать с откровенными шизами из коммьюнити мелкоязыков, если все уже и так есть?
3 заход на плюсы
Что меня толкает на это:
1) Один хуй отсутствие работы анальником, сижу пержу на насиженном месте за приятный прайс
2) Самые интересные проекты с открытым кодом
3) Люблю страдать
> сижу пержу на насиженном месте за приятный прайс
Это ты про завод? Там да, тебя за приятный прайс возьмут, для завода.
А что можно выбрать для потенциальной работы? Питон/go/js, где по паре тысяч кандидатов на вакансию?
так хоть вакансии есть
Моя точно умеет его выводить. С русским везде всё одинаковое, а тут чему отличаться?
Почему?
Почему вот это вообще работает?
Не помню, не было такого.
Есть, но в другом фрагменте документации, которого нет на скрине.
Деструктор не может быть корутиной.
То есть все это тупо ломает всю парадигму С++ с RAII, блять ахуенно! Нахуй мне теперь эти классы вообще нужны, если я должен писать goto _destroy в каждом его методе и обрабатывать все возможные ошибки и эксепшены что могут стрельнуть, чтобы не дай бог не проебать закрытие ресурса? ПРОСТО БЛЕСК! Браво!
Ты совсем долбаёб? Корутина это просто promise-объект с состоянием фрейма функции для возможности её остановки/возобновления, там нет никакой магии. Так же у промиза вызывается unhandled_exception() если из корутины пытается вылететь эксепшен, после чего освобождает ждущего. У объекта, методы которого корутины, деструктор вызывается штатно - когда он выходит из зоны видимости, а не когда тебе захочется. А если ты хочешь уничтожать объект асинхронно т.е. когда-нибудь потом, то тебе надо к психиатру.
>А если ты хочешь уничтожать объект асинхронно
В WinAPI и liburing отмена асинхронной операции сама по себе асинхронная операция. Поэтому деструктор может резко заблокировать весь поток. У Rust такая же проблема.
мимо проходил
Долбоёбина это ты, я и без тебя знаю что такое корутина и как она перехватывает эксепшены. Вопрос совсем в другом.
Посмотри на этот код и больше не неси хуйню, долбоеб.
Да я как раз на liburing делаю. Там проблема не в отмене, а том что в принципе невозможно провести асинхронную операцию в деструкторе ( по крайней мере получив результат выполнения ).
Я просто не понимаю в чем проблема была сделать возможность объявлять деструктор асинхроныным, который бы просто вызывался бы c co_await в конце скопа внутри корутины, как к примеру у самой корутины вызываются тот же final_suspend.
Блять как же я заебался от этого С++ с его ебаным комитетом.
>В чём проблема выполнить close синхронно в деструкторе?
В чем проблема перестать нести хуйню?
Про ABI слышал? Комитет молодцы что не ломают его. Логика очень простая - ты можешь использовать либу на корутинах даже если твой компилятор не поддерживает их. Допустил у тебя есть проприетарная асинхронная либа, асинхронные методы будут возвращать простую структуру и ты можешь синхронно выполнить корутину, даже не зная как там оно работает. Тот же шланг 5 лет их запилить не мог без багов, так что это актуальная тема.
Да аби это хуйня, кто хочет тот поддерживает. Вон майкрософт не парится и хуярит новое аби каждую версию компилятора.
Ладно аби, если аби не нарушается для обычных функций, то почему оно бы нарушилось для корутинных деструкторов? Деструктор это точно такая же функция, которую вызывает компилятор после окончания времени жизни объекта.
Так ты перестанешь вилять жопой и объяснишь почему вот так тебе не подходит?
Если тебе не нравится что закрытие блокирующее, то ты тогда в любом случае пердолишь многопоточные корутины, напердоль и close в отдельном потоке. Или либу возьми с тред-пулом для корутин.
> Деструктор это точно такая же функция, которую вызывает компилятор после окончания времени жизни объекта.
И в каком месте она выполняется? Как ты будешь контролировать выполнение того что выполняется за пределами области видимости? Корутина должна вернуть поток выполнения, деструктор куда вернёт? Это уже похоже на GC, когда у тебя в неизвестный момент начнут деструкторы мусор чистить.
Ты реально дурачек или как?
У меня и так close в отдельном потом в тред пули в нижестоящей либе закрывается, проблема в другом, боже блять какой же ты тупой.
Если ты еще скажешь что ты кем-то нанят я точно ахуею с того какие у нас кадры в айти работают.
Ты понимаешь что мы обсуждаем проблему нарушения RAII концепции в корутинах из-за невозможности асинхронно вызвать деструктор?
>>83023
В смысле, ты о чем вообще? Деструктор просто вызывается как прописано в стандарте после жизни объекта. Что куда вернет? Вернет тому откуда вызывалось.
Ладно вот пример как это могло бы выглядеть
Блять, дебил, ты вообще понимаешь как корутины работают? Корутина это не функция, тупой ты дегенерат. co_await это ебучий сахар над return task и task.resume(). Если у тебя нет task, то и корутины нет. Чтобы твои бредни работали деструктор должен возвращать task, который впоследствии возобновляется. Причём он возобновляется руками или либой, если ты сам не писал реализация рантайма, компилятор ничего не делает за тебя, корутина магическим образом не выполняется сама. В твоём шизоварианте деструктор возвращает в никуда таск, который мгновенно уничтожается и деструктор никогда не выполнится.
И никакой RAII не нарушается, все объекты вызывают свои декструкторы, а корутины не имеют никакого отношения к объекту, методы которого ты сделал корутинами.
Просто веб-макаки приходят из жс и считают что корутины это как у них асинхронные функции, лол. А потом пытаются деструкторы сделать асинхронными.
Ты меня уже заебал своей тупорылостью.
Я в доль и поперек знаю как корутины устроены, а ты похоже что вообще не понимаешь.
>Корутина это не функция
А что это по твоему, поехавший? Пиздец.
>A coroutine is a function that can suspend execution to be resumed later.
>деструктор возвращает в никуда таск,
Ебланище тупоголовое сука блять, деструктор возвращает таск, как я написал в примере возможной реализации, в вызывающую его корутину, еблан ты это осознаешь сука собака тупая? Понимаешь? Внутри корутины вызывается деструктор объекта который внутри неё же и создается и она же его и co_await'ит, понимаешь это сын ебучей собаки?
Ты шакал, осознаешь что у тебя корутина вызывает в конце final_suspend которую она же и co_await'ит? Но ты этого не видешь. Ты в курсе про это, идиот? Так вот дебил, слушай дальше, тоже самое могло быть и со всеми обхектами с автоматическим лайвтаймом внутри корутины.
>И никакой RAII не нарушается, все объекты вызывают свои декструкторы
Спасибо, нахуй не надо мне деструкторы с блокирующим кодом.
>а корутины не имеют никакого отношения к объекту, методы которого ты сделал корутинами.
Еще скажи что корутины вообще не имеют отношения к объектам которые ты объявил внутри них.
Ты просто ноль ебаный не отвечай мне больше ничего сюда, вести диалог с нулем мне нахуй не надо время тратить только.
>>83127
Классный самоподдув.
> А что это по твоему
Тупая макака, твоя "корутина" ничем не отличается от обычной функции, совсем. Что по твоему на пикрилейтеде является корутиной и почему авайтится просто таск?
Корутина это структура, в которой сохранён приостановленный фрейм функции.
> деструктор возвращает таск
> в вызывающую его корутину
Вот же ты дегенерат. Деструктор выполняется ПОСЛЕ выхода из области видимости корутины, а не в ней. Корутина его не вызывает.
> Спасибо, нахуй не надо мне деструкторы с блокирующим кодом.
Еблан, корутины это не многопоточность. Нахуя ты пытаешься добиться результата не предназначенным для этого инструментом? Деструктор по определению должен выполняться сразу, а не как ты хочешь откладывать его выполнение. Для неблокирующего выполнения есть многопоточность. Точно так же как у тебя реализована многопоточность в примизе, так же и реализуй её в close.
Ты просто неадекватно туп, даже отвечать тебе ничего по теме не буду, это все равно что биться головой об стену, пытаясь обсуждать С++ с приматом из зоопарка, и то эффект наверное будет лучшим с приматом, чем с тобой.
Ты несешь полнейшую хуйню, не понимая как работает С++ вообще, просто в голове каша из каких то фрагментов знаний.
Да пока они починят там все, я уже на пенсию уйду, лол.
Стандарт выходин раз в 3 года, в с++26 я не примопню, чтоб что-то с корутинами делали, значит как минимум ждать до 29 года
>>83727
В С++29 не планируют ABI менять, значит ничего не будет. И в С++32 тоже не станут, пока сишка не сдохнет ABI будет стабильным. Единственные за его изменение были Майки, но у них только один человек в комитете сейчас, столько же сколько и от Яндекса. Так что смиритесь, отдельных асинхронных функций не будет никогда, только корутины в текущем виде.
Пздц как коротка человеческая жизнь, ты меня депресанул
Никаких, разве что зашквариваешь единственный оставшийся нормальный язык вебом.
А почему не будет и почему это поломка ABI? В джаваскрипте же есть async function() которые промис-объект возвращают, логично то же самое сделать в плюсах что бы не ебаться с интерпритацией, так же собственно как это сделали с корутинами.
То есть например
async myFunct() -> int { return 1; }
будет аналогично
std::promise<int> myFunct() {
return std::promise<int>(... [] () {
_ return 1;
_ })
}
При чем тут С++ и флот16 который ни один цпу не поддерживает?
В куда компиляторе вроде есть, пользуйся.
>>84674
Аллё, AVX2 его поддерживает. В AVX512 гору новых инструкция для него и bfloat16 завезли.
https://software.intel.com/content/www/us/en/develop/download/intel-avx512-fp16-architecture-specification.html
Я ведь не требую в стандарте его, мне хоть какую-то реализацию бы. Но ведь нихуя нет, только на ассемблере писать. Алсо, у растанов даже вроде что-то есть.
>>84704
Как наличие векторных инструкций для упакованых f16 значений поможет с одиночным f16 типом, шизик растанутый? Этот формат используется в квантовании/нейросетках чисто что бы f32 массивы сжимать, не нужно на нем вычисления делать, хотя в матбиблиотеки вроде добавлен round16, есть наверно и конвертер, используй их.
А под avx надо так и так на ассемблере хуячить, кокпелятор по части автовекторизации очень ограничен, это считай задача уровня планирования кода для vliw.
Майки решили что им не нужен стандарт, у них компилятор не поддерживает его и они не собираются реализовывать этот хедер в STL.
>>84763
> не нужно на нем вычисления делать
GPU уже 20 лет делают вычисления на нём, AVX512 умеет в операции над ним.
> кокпелятор по части автовекторизации очень ограничен
uint128_t же завезли, а ведь это ещё более "ненужная" хуйня.
Так если ты на AVX2 пишешь, используй интрисикты, там должно быть, один хуй это все векторные инсрукции и ты там не должен оперировать обычными скалярами.
Но если ты такие вопросы задаешь, то скорее всего тебе это точно не нужно.
Зачем он нужен, если рефернс\мув семантика все и так покрывает? Я чего то не понимаю?
> тебе это точно не нужно
Мне и не нужно. Я просто разобраться хотел как с системщиной в системном языке. Вот надо будет что-то сделать, а тебе челики из комитета говорят пиздуй на ассемблере писать.
avx это не скалярные операции над числом, а специализированные операции над векторами. Прежде чем на них ссылаться изучи документацию что они делают, более чем уверен там наборы операций для ускорения свертки нейросетей, что бы не simd под них подстраивать как с sse/neon, а уже сразу в simd -е были нужные наборы операций. Это то чем интел занимается все последние года, да и gpu тоже туда идет. Что касается int128 то он как бы нужен для перемножения лонгов, и в железе с ним вопросов меньше так как 128b векторные регистры и поддержка f64*f64 это на сегодня векторный минимум.
> Прежде чем на них ссылаться изучи документацию что они делают
Я же и кинул список инструкций AVX512, не ебись в глаза, а лучше сам загляни туда.
Ты вообще понимаешь концепцию view?
>Кто-нибудь полноценно пользуется в своих проектах этим классом
Постоянно.
> Я чего то не понимаю?
Да, советую изучить концепцию вьюшек.
пикрелейтед.
В любом случае avx это упакованый тип vf16x12 (под 256 регистр), который можно сложить или что-то еще сделать только с таким же типом, семантика языка не позволяет вводить такие типы потому как набор операций и результатирующий выхлоп строго зависят от конкретной реализации конкретного процессора например может быть mul(vf16x12, vf16x12) -> vf32x6 а может и не быть или быть иначе, как вендор решит так и будет.
А ты просишь тип что бы строчить:
f16 a = 1.0fc; a += (f16)b;
Мотивировав тем что ну вот там есть же векторные операции какие то.
Это так не работает, можно ввести тип он будет конвертироваться в f32 туда и обратно, иначе человек который сейчас хочет скалярный f16 следующим шагом захочет заполнять им структуры, писать в юнионы итд.
> он будет конвертироваться в f32 туда и обратно
Лол, чел, прекращай. Там операции над упакованными f16, без всяких конверсий. Если инструкции как ты описываешь, но есть и без конверсии.
Короче ты походу или тролль или просто долбоеб.
>Так я и не понял нахуя этот стринг вью нужон
Потому что без него контейнер<стд::стринг> будет тебе при каждой сраной проверке существования такого ключа ебашить аллокацию с копированием.
Согласен. Хороший пример придумал
>Верим
Долбоеб?
То есть, если ты чего-то не понимаешь в С++, как это использовать, значит и другие, по твоему мнению, так же должны не понимать и не использовать это?
Алсо, буквально сейчас написал парсер json на стринг вьюхах.
Да нет же. Ты же просто тупой, как тебе можно верить что ты там что то понимаешь в плюсах и пишешь парсерсы если ты даже вопрос распарсить не можешь. Банально однозначное айкью вот и все как бы
Братишка не рвись. Кто виноват что ты придурковатый клоун который непонятно зачем берется на вопросы отвечать в которых он сам не разбирается? Ладно на двачах ты не понятно нахуй полез, а если например ирл кто? Ты же опозоришься перед людьми. Так что ты можешь пойдешь чего по вьюхам почитаешь?
Пиздец, лол, подзалупная шалупень строит из себя кого-то на двачах.
Ты с сеньором базаришь, примат тупоголовый.
Ты чего вообще в этом треде забыл? Иди в JS помойку свою, тебе там по уровню такие же даунята будут.
Нет. Ты просто хронический пиздабол который пиздит и пиздит. Когда ты свое ебало раскрываешь тебе никто всерьез не воспринимает, обрати внимание на это, на двачах да это все хуйня, а ирл ты тот еще клоун конечно
Прикольные у тебя фантазии конечно, это ты свои комплексы проецируешь сюда? Жаль тебя, униженца.
Алсо, ирл ты бы очень быстро от меня в ебало получил, за такой базар. Хотя нет, ирл ты бы смотрел в пол и боялся бы сказать что-то не то, чтобы ненароком не разозлить кого-нибудь, чтобы не получить пизды, как это было с тобой в школе.
пиздец наху 2025 год крестотред троллят стрингвьюхами итоги
или вы оба на самом деле один шизик который тут уже про мув конструкторы и делет без деструктора высирался
Крутой ты школьник
Вот уже много лет здесь единственный анон создаёт иллюзию того, что в этом треде сидит куча анонов и обсуждает плюсы. Но почти все посты написаны одним и тем же аноном.
Имеется еще подозрение, что какой-то пидоrust специально перекатил тред без тега. Потроллить, ага.
Есть мнение что тег специально не добавлен что бы в него не перекатывалось все вот это ноющее вахтерное говно, которое перепутало тематический тред про программирование со своим калфо-чатом.
А если серьезно, обезьяна вас больно избалывала, мы при педалине все руками искали и ничего, а у вас без тега уже вой и паника. Мама не разрешает за первую страницу гулять, там наркоманы и детей похищают.
Лучше пойду обсирать пидоrust'ов. Там хотя бы весело бывает, чем тут унылая помойка с 2.5 шизоидами с нулевым скилом.
Правильно, вкатывайся в раст. Сектанты обрадуются такому напористому болвану.
В дизассемблере будет call call call, и по каждому call ты опять доебешься. Поэтому, и правда, пошел ты нахуй, пидорас.
Ахахахаахх ну ты блять просто ноль ебаный. Ору с идиота.
Пиздос, клован, как ты собрался без аллокации строки искать пустоту? А строка это всегда указатель.
Дебилоид, у тебя string создается неявным образом из сишной строки, потому что find принимает const string&.
Тебе надо тогда либо const char* делать в качестве ключа либо string_view, но ты понимаешь, что это будет работать только для статических строк, которые зашьются в память твоего бинарника.
У тебя стрингвью не может хранить сам объект строки с динамической памятью и если ты такое провернешь создав string и присвоишь его в мапу со string_view где то в функции то по окончанию функции у тебя эта строка станет невалидной т.к. память очистится.
string_view можно использовать в качестве ключей, до тех пор пока память указывающая на эти данные валидна.
Скопировались они только внутрь мапы при её создании.
Сам поиск по мапе не аллоцирует никак память.
string key1 =
Вот здесь они скопировались конструктором точно, при создании карты еще раз вероятно.
А нахуя мне сам поиск, у меня не волшебнве винт/сеть, которые сразу данные хранят в виде std::string. И речь-то о недостатке крестов, исправленном в более поздних стандартах вьюхами и гетерогенными лукапами, а не о алгоритме поиска.
Какой недостаток крестов со стрингами? Вьюхи тебе тут как помогут вообще? Тебе эти строки в любом случае где-то надо хранить.
Если не хочешь даже единоразово копировать строку храни shared_ptr<string> в качестве ключа тогда или сделай свою CoW строку, но в любом случае тебе её нужно хранить где-то в памяти, вьюхи тут тебе никак не помогут.
>строки в любом случае где-то надо хранить
А они уже прочитаны в память и хранятся себе, даже если это const char. Вообще такое ощущение, что я объясняю какие-то очевидные вещи, но при этом и мне объясняют какие-то очевидные вещи. И это при куче конрструкторов. Блеск и нищета. Теперь я понимаю козлов, которые назло всем придумывают новые языки.
>А они уже прочитаны в память и хранятся себе
Ну допустим, тогда тебе нужно следить за тем, чтобы твои строки не подохли раньше чем мапа в которой ты хранишь указатели на эти строки через sv или const char.
Просто то, что ты описываешь можно было решать и до стрингвью довольно просто, храня конст чар зведочка, вью же решают проблему некопирования строки при передачи её в какие-нибудь функции и т.д. где время жизни объекта предопределено стеком.
С вьюхами удобно работать потому что у тебя есть строка либо фрагментр со всеми вытекающими функциями типа поиска и т.д.
и ты его можешь практически бесплатно скопировать или делать так value = value.substr(0, value.find('something'); у тебя не будет лишних копирований памяти а копироваться будут только указатели и размерности объектов sv.
Но использовать стринг вью в качестве ключей мапы можно, нонужно это делать очень осторожно.
Очевидно, что куча конструкторов - это плохой путь, который плохо описывает то, что должно происходить. Но это теперь навсегда с нами, потому что кресты это инструмент, которому в ряде случаев замены просто нет. Создатели stl наверняка периодически испытывают отчаяние, если они не совсем бездушные твари, от того, что они сделали это все именно так.
>Так я и не понял нахуя этот стринг вью нужон.
Нужен, очевидно, чтобы работать с кусками строк без копирования. До этого приходилось даже в станадартной либе лепить костыли вроде str, str_end в strtof. Сейчас можно (и нужно) во всех функциях, принимающих константную строку, делать это через string_view.
А определять, целая это строка или только лишь её кусок, тебе несчастный компилятор обязан?
В смысле? std::string в string_view преобразуется неявно. Для пользователя ничего не меняется.
Правильно блять еще шаредпоинтерам на строки шизика научи.
Не надо лезть в низкий уровень хуй пойми зачем и для чего, пишите с копированием перекопированием, это будет все равно гораздо меньше по ресурсам занимать чем джава какая нибудь. Когда до приличных массивов дойдете которые которые на копировании обходе все колом ставят, тогда и занимайтесь экономией и оптимизациями.
Ну ведь мы же на крестах пишем, чтобы это было чуточку быстрее и вкорячивалось куда себе сложно предствить жабу какую-нибдуь? Или?
Так я и пишу с копированием где нужно, мне похуй что там скопирутеся пару раз че-то, это никак на общей производительности программы не отразится и я не страдаю шизой с преждевременной оптимизацией.
Ну да, только не чуточку, а во много раз быстрее, и для этого не нужны оптимизации, просто пишешь без задней мысли и всё. Оптимизации нужны только когда ты хочешь написать на крестах быстрее написанного тоже на крестах.
Только начинаю вкатываться в это ваше настоящее программирование и у меня, как у математика, сгорела задница от непоследовательности синтаксиса. Почему указатели инициализируются через , хотя наоборот является оператором превращения указателя в значение? Т.е разве не логично бы было иметь
int a = 5;
int& b = &a;
вместо
int a = 5;
int b = &a;
???
И да, какого-то фига этот синтаксис используется для ссылок, хотя для них можно было бы использовать освободившиеся или вообще какой-нибудь $ чтобы явно обозначить то, что это совсем другая концепция.
Еще меня слегка взбесило то, что операция % не работает как это должно было бы работать в циклической группе, но это хотя бы технически оправдано, насколько я понимаю.
>>86819
(⚹ вставлены)
Только начинаю вкатываться в это ваше настоящее программирование и у меня, как у математика, сгорела задница от непоследовательности синтаксиса. Почему указатели инициализируются через ⚹, хотя ⚹ наоборот является оператором превращения указателя в значение? Т.е разве не логично бы было иметь
int a = 5;
int& b = &a;
вместо
int a = 5;
int ⚹b = &a;
???
И да, какого-то фига этот синтаксис используется для ссылок, хотя для них можно было бы использовать освободившиеся ⚹ или вообще какой-нибудь $ чтобы явно обозначить то, что это совсем другая концепция.
Еще меня слегка взбесило то, что операция % не работает как это должно было бы работать в циклической группе, но это хотя бы технически оправдано, насколько я понимаю.
Делай свой яз. Сейчас благодаря LLVM это просто. Да даже сама ниша LLVM существует - ты же не будешь тащить 200 мегабайт, чтобы преобразовать свой код в условный WASM, который и сам выполняет задачи преобразования кода, это я про JIT. А где компилер?
Проблемы си плюс плюсеров.
Говорят же вам, не ебите мозги, возьмите другой язык - rust или golang. А вы неееет, это база! Ну получайте свою базу. Где-нибудь среди тысяч строк поставишь не там амперсанд или звёздочку и будешь миллион лет гадать, почему программа крашится. Чего никогда не случится в том же расте, так как он показывает где ссылка и на что.
>в это ваше настоящее программирование
Про "настоящее программирование" это вообще пушка.
Если программа/сайт/приложение работает - какая хуй разница, на чём они написаны, на языке си плюс плюс или на языке коровьих лепёшек?
Двач вообще по-моему на пёрле написан и чё?
Чуть более сложные проблемы и растом не решаются. Я вот спросил у них в треде, как раст помогает разрулить простую ситуацию, что кнопка может быть уничтожена в обработчике события onDown, после чего onUp это будет хуже UB. А никак. Ну и зачем мне ебаться с растом тогда.
Ты задал какой-то вопрос и тут же слился через 2 миллисекунды.
Все языки будут хуёвые если сливаться при малейшей трудности со словами "фу развод".
Почему не решаются? Это твоё такое мнение?
Та не, в остальном мне скорее даже нравится, по крайней мере пока. Хотя разобраться с тем, что из себя представляет линковка и как нормально использовать чужие библиотеки у меня все еще получается лишь частично.
>>86836
Мой родной питон просто не вывезет вычислять симуляцию, которая меня интересует. Я не хочу ждать результата несколько недель.
>что из себя представляет линковка и как нормально использовать чужие библиотеки
Это вопрос зубрежки. У вас же в матане бывает так, что простой принцип основан на куче материала, которую надо просто выучить. Ну и тут так же.
>Мой родной питон просто не вывезет
Змеюка хотя бы умеет в realloc в отличие от крестов. Не спеши хоронить.
>отвечай на вопрос тогда
Не-не, стоп нахуй.
Ты про какую вообще кнопку говоришь? Их миллион.
Откуда интерфейс? Веб? Эмбеддед? Десктоп?
В каждом по 100500 разных фреймворков. Я тебе могу навскидку перечислить egui, slint, lvgl, tauri, dioxus...
И в каждом своя реализация кнопок.
И в каждой реализации свой набор методов, надо документацию открывать и смотреть.
Представляю, как ты ебешь мозги подчиненным, паразит.
> Мой родной питон просто не вывезет вычислять симуляцию, которая меня интересует. Я не хочу ждать результата несколько недель.
Только хотел предложить питон
Что за привычка хвататься сразу за указатели? У тебя в пистоне они были? Нет? Так за каким хуем ты переписывая с пистона на плюсы начинаешь код обмазывать указателями?
>как у математика
Ты хуй с горы
>Почему
Потому
>можно было бы
Тебя забыли спросить
>взбесило
Таблетки прими, если ты такая нервная сучка.
>>86847
>Мой родной питон
Теперь понятно откуда ноги твоего даунизма растут.
> не вывезет вычислять симуляцию,
Не вывезешь ты анскил ебаный, на питоне на изи можно вычислительную программу не медленее чем на С++ написать.
>не хочу ждать результата
Не жди, всем похуй на твои говно пет проекты, где ты числа Фибоначчи вычисляешь.
База.
> на питоне на изи можно вычислительную программу не медленее чем на С++ написать.
Напиши обработку массива на 100000+ элементов, померяем.
> У вас же в матане бывает так, что простой принцип основан на куче материала, которую надо просто выучить
Не, в математике учить почти ничего не надо. Одни принципы выводятся из других принципов. Главное выработать понимание с опытом.
>>86852
>Змеюка хотя бы умеет в realloc
Моих знаний пока не хватает, чтобы полностью тебя понять.
>>86883
>Что за привычка хвататься сразу за указатели?
Потому что про них часто говорили, та и вообще это оказалось довольно базовой и простой штукой. В отличие от линковки. У меня все еще травма от того, что я не могу нормально даже график нарисовать в плюсах.
>>86984
>Таблетки прими, если ты такая нервная сучка.
Что за таблетки :3
>на питоне на изи можно вычислительную программу не медленее чем на С++ написать.
Ого, и как же на питоне написать, например, эффективный клеточный автомат типа GoL на 100000x100000 ячеек на 1000000 итераций? Использовать numpy?
>всем похуй на твои говно пет проекты, где ты числа Фибоначчи вычисляешь.
Ну так я для себя этим занимаюсь. Пока, п крайней мере.
> вообще это оказалось довольно базовой и простой штукой.
Для плюсов это не базовая штука, это низкоуровневая архаика для совместимости с си. То что ты на плюсах в линковку не можешь говорит о том что ты в принципе не понимаешь как адреса работают, и берешь стекпоинтер и говоришь что это база.
Это пиздец, а не база.
Ну может и так... Просто мне показалось интересным и полезным.
>Почему указатели инициализируются через ⚹
Это не инициализация, а объявление переменной. Т.е. int ⚹a означает, что объявлена переменная a, такая, что у ⚹a будет тип int. Немного странная логика, но она тут есть. Это исторически из си пришло. С синтаксисом ссылок уже Страуструп налажал.
>Это не инициализация, а объявление переменной.
Уместное замечание, я действительно имею ввиду именно объявление.
>объявлена переменная a, такая, что у ⚹a будет тип int
Ну, действительно не бессмысленно, но по-моему это все равно пипец, а не адекватный синтаксис.
>но по-моему это все равно пипец, а не адекватный синтаксис.
В Паскале примерно так же, объявление a : ^integer, дереференс a^ := 10, адрес a = @b. Скорее всего это из какого-то более древнего языка пришло и в си и в Паскаль.
Проблема в том, что int* a, b объявит один указатель, и один инт. в С и С++ указатель и ссылка - это свойство переменной.
>Ого, и как же на питоне написать, например, эффективный клеточный автомат типа GoL на 100000x100000 ячеек на 1000000 итераций? Использовать numpy?
numpy, cython, numba еще хуева туча jit компиляторов. Используй че хочешь
Какие еще свойства переменной, наркоманище. Переменные распределяются по регистрам.
b - это переменная. int - размер данных выделяемых на стеке (4 байт).
xa переменная с адресом на данные (размера адресов в адресном пространстве ос, обычно это 32-64бит). int - размер данных расположенных по адресу.
auto c = xа + b; - сложение целых типов (размером в слово).
Что бы генерировать машинный код нужно строго знать размер сегментов и какие конкретно операции подставлять, без этого ничего работать не сможет. В самом языке никаких свойств переменных нет это формула для генерации корректного машинного кода.
> auto c = а[0] + b; - сложение целых типов (размером в слово).
Поправ-очка это загрузка слова плюс сложение (т.е. 2 операции)
ldw a, 0x4, %r0
addw %r0, b, c
Уважаемый синтаксический нацист, подскажите, пробелы лучше использовать или табуляцию?
>uuu
>ua
Оторвать бы руки все говнокодерам кто так обзывает переменные и типы, сука что это значит????
Ну ua это усраина, код писал какол.
canseled
Что не так? Отмываем память, чтоб компилятор не узнал откуда мы её взяли.
> Лучше бы Мозила, кстати, за браузером следила, чтобы он не оказался среди практически неиспользуемых. Что интересно, отсутствие раста не помешало хрому, который-то сделан на сложных неудобных крестах, выбросить фаерфокс на свалку.
Так пидорастеров выгнали из мозилы.
Посмотри первые эпизоды handmade hero, там делают игровой движок исполняемым файлом, а игровой код дллкой. И еще реализуют горячую перезагрузку игрового кода.
>>3289726
> го
Ну какой го блять. Я понимаю если бы я спрашивал... Хз, на что заменить питон, тогда может быть го и прокатил бы. Но какой нахуй го как замена плюсам?
А вообще ведь да, я наглухо забыл что только в бфг по уёбищному игровая либа статически линкуется с экзешником движка если дефайн _DOOM_DLL_ не задефайнить, спасибо ещё раз что напомнил.
dhewm3 не бфг, это форк ванильного двигла рассчитанный как раз на динамические моды/дополнения.
Нахуй они выкатывают говно неюзабельное из коробки?
Бля С++ реально язык мем нахуй, такой помойки как в С++ нету ни в одном языке пожалуй.
Сейчас я услышу вскукареки петушков о несовместимости различных систем, но пошли вы нахуй блять, в питоне и других языках вполне себе есть все атрибуты файлов в их стандартных кроссплатформенных либах.
Просто пиздец, реально С++ захватили дауны с отрицательным IQ. Уж лучше бы нихуя не делали и это говно бы уже давно сопкойно умерло никому не мешая и уже давно бы придумали его саксесора типа карбона, но пидарасы комитетные давали иллюзию что язык якобы развивается, но по факту это фейковое развитие, большинство функционала не нужно либо не юзабельно в полной мере из коробки.
Желаю С++ скорой и мучительной смерти, надеюсь в один день все резко забудут о таком уебищном высере даунидзе страуструпа как С++. Который из коробки заслуживал смерти. Вспомните С++98, этож блять не язык а говна кусок вообще. Я не понимаю как такое уебище вообще в свет можно было выпускать. Как можно было проектировать язык так безграмотно, что в нем есть миллионы UB, куда не плюнь - это UB разве так должен работать современный язык? Десятки лет потребовалось долбоебу страуструпу и его даунской команде, чтобы допилить язык до с++11, на котором стало проще писать, и я считаю на этом нужно было закончить развитие языка, потому что он был все еще невозможно уебищным, но для поддержки легаси говна упростили немного жизнь, а нужно было проектировать новый язык с нуля, на котором бы писали уже все новые проекты, а не делать вид что ебать у нас "коммитет эспертов С++" "коммитет решил" да вы хуесосы позорные, которые нихуя в языках не понимают, которые нихуя не могут сделать с языком.
Вот реально если взглянуть трезво правде в глаза, С++ жив только и только потому, что есть огромная база легаси кода. Даже сейчас раст уже отбирает у С++ неплохую долю на рынке, хотя раст по мне тоже еще то говно на костылях, но это все равно в 10 раз лучше чем С++.
С++ язык ущерб, язык пидор, язык гной.
Нахуй они выкатывают говно неюзабельное из коробки?
Бля С++ реально язык мем нахуй, такой помойки как в С++ нету ни в одном языке пожалуй.
Сейчас я услышу вскукареки петушков о несовместимости различных систем, но пошли вы нахуй блять, в питоне и других языках вполне себе есть все атрибуты файлов в их стандартных кроссплатформенных либах.
Просто пиздец, реально С++ захватили дауны с отрицательным IQ. Уж лучше бы нихуя не делали и это говно бы уже давно сопкойно умерло никому не мешая и уже давно бы придумали его саксесора типа карбона, но пидарасы комитетные давали иллюзию что язык якобы развивается, но по факту это фейковое развитие, большинство функционала не нужно либо не юзабельно в полной мере из коробки.
Желаю С++ скорой и мучительной смерти, надеюсь в один день все резко забудут о таком уебищном высере даунидзе страуструпа как С++. Который из коробки заслуживал смерти. Вспомните С++98, этож блять не язык а говна кусок вообще. Я не понимаю как такое уебище вообще в свет можно было выпускать. Как можно было проектировать язык так безграмотно, что в нем есть миллионы UB, куда не плюнь - это UB разве так должен работать современный язык? Десятки лет потребовалось долбоебу страуструпу и его даунской команде, чтобы допилить язык до с++11, на котором стало проще писать, и я считаю на этом нужно было закончить развитие языка, потому что он был все еще невозможно уебищным, но для поддержки легаси говна упростили немного жизнь, а нужно было проектировать новый язык с нуля, на котором бы писали уже все новые проекты, а не делать вид что ебать у нас "коммитет эспертов С++" "коммитет решил" да вы хуесосы позорные, которые нихуя в языках не понимают, которые нихуя не могут сделать с языком.
Вот реально если взглянуть трезво правде в глаза, С++ жив только и только потому, что есть огромная база легаси кода. Даже сейчас раст уже отбирает у С++ неплохую долю на рынке, хотя раст по мне тоже еще то говно на костылях, но это все равно в 10 раз лучше чем С++.
С++ язык ущерб, язык пидор, язык гной.
> Даже сейчас раст уже отбирает у С++ неплохую долю на рынке
Ты в следующий раз это пиши в начале поста, чтобы я дальше его не читал
По факту Раст это ещё более говно чем плюсы, и вменяемых альтернатив им просто нет.
Я согласен, что раст тоже говно, но он хотя бы намного более грамотно был спроектирован на самом начальном этапе, хоть и не без косяков. Но мой тезис заключался в том, что нахуя было """"развивать"""" дальше с++, вместо того, чтобы сидеть и пилить ему замену? Почему карбон только сейчас стали пилить? Чем думали последние десятки лет? Все нравилось писать на этом кривом раздутом говне с кучей UB? При чем многие же писали свои стандартные либы, потому что понимали что стандартная либа из коробки - кусок говна. Многие использовали только сабсет из языка типа там всяких MISRA C++. Я думаю ответ очевиден, что толкало их на такие решения - с++ сам по себе раздутое, неюзабельное из коробки говно с кучей UB, которое просто не подходит для проектирования серьезных систем.
Ты прав вменяемых альтернатив практически нет, писать на чистом си - еще более опасно и долго. Раст слишком поздно появился, D умер из-за GC, что там еще было ну понятно что все языки с GC мы не берем в расчет. Да альтернатив не было в те времена. Но неужели всем так нравилось жрать говно наебовая свои велосипеды на с++? Вопрос риторический. Эта индустрия проклята
> более грамотно был спроектирован на самом начальном этапе
Дай угадаю система сборки?
Которая без интернета пук и все, приехала.
Система сборки в расте, кстати, одна огромная дыра, потому что build.rs выполняется на твоей пеке при сборке либы, т.е. там может быть какой угодно зловредный код. Точно так же как в npm и питоне уже напарывались на подобное говно, когда сборка проекта целенаправленно ломает систему/ставит вирус.
>>89954
> Я говорю про сам язык.
Про realistic subset или нет, лол? А то ведь в безопасном расте без проблем реализуются небезопасное обращение к памяти. Как и UB достаточно из-за дырявой системы типов и мисскомпиляции. Я уже молчу про то что каждая либа тянет ещё сотню либ, половина из которых содержит ансейф и безопасность фактически только локальная, да и то если используешь только realistic subset без попыток провернуть что-то за пределами описанного в доках.
https://github.com/Speykious/cve-rs
А тебе кто-то обещал что нельзя? Вот раст много чего обещает и ничего по факту не выполняет. Если бы растаны на каждом углу не пиздели про безопасность, то и к ним не было претензий. А по факту раст просто безопаснее крестов, но ни разу не безопасный, в том числе и в работе с памятью. При этом куча шизиков ещё рассказывают что безопасность работы с памятью в расте формально доказана, хотя в этом доказательстве не про весь раст, а некий realistic subset, лол.
Так никто не спорит, что в расте куча дыр, но в сравнении с с++, где на каждом шагу UB и в котором даже нету намека на безопасность по памяти, раст выглядит как относительно безопасный неплохо спроектированный язык с хорошим функционалом и современной системой типов.
Лучше ли раст С++? Да
Буду ли я переходить с С++ на раст? Нет
Вижу ли я будущее у раст? Нет
Вижу ли я будущее у с++? Сомнительно
> на каждом шагу UB
Не на каждом. И всё UB задокументировано стандартом. Это не дыры как в расте, которые могут отстрелить тебе ногу пока ты думаешь что в безопасности.
>всё UB задокументировано стандартом
Ты хотел сказать, всё UB что не задокументировано стандартом.
> Я говорю про сам язык.
Нормально спроектированный язык к одному компилятору и репозиторию исходников прибит гвоздями быть не может.
Я уже не говорю про совместимость с библиотеками и вообще отсутствию в расте понимания что библиотека может быть частью операционной системы а не репозитория, кроме того она может быть проприетарной (т.е. без исходников). Этот язык с его ограничениями физически не может заместить си и плюсы, его соперники это го и свифтами но пидорастеры со своей хуйней поперлись в системный уровень и библиотеки, щас мы их мол перепишем и хорошо будет. А лоу левел оптимизации под симды хуимды подвезете? Какие ещё оптимизации, у нас все llvm сам сделает.
Хочу почитать про винапи. Чтобы восполнить пробелы в образовании. Нашёл книжку Джефри Рихтера, 4 издание, переработанное и дополненное. А там говорится, что есть три ядра, вин95, вин98 и самое новое, заморское, вин2000. И упоминается, что появились 64-битная версия. Вот и возникла мысль, а может быть есть литература посвежее или получше?
Шо ты несешь, ненормальный?
> отсутствию в расте понимания что библиотека может быть частью операционной системы
Во-первых, что значит частью операционной системы? Ядро ОС - это как правило тупо монолитный бинарник, и чтоб он запустился никакие библиотеки не нужны, ну кроме загрузчика.
Во-вторых, допустим ты имеешь ввиду библиотеки которые ты\кто-то другой уже установил в твою систему, на сколько я помню раст конечно же не может напрямую цеплять сишные либы как и любые другие языки кроме С++, поэтому в нём предусмотрен FFI. Так что не особо понятна твоя претензия.
> его соперники это го и свифтами
Бля ну тут ты вообще мимо нахуй, это абсолютно другие языки для другой прикладной деятельности, как минимум из-за наличия у обоих GC.
Наличие GC в языке в корне меняет его применимость где-либо.
>поперлись в системный уровень и библиотеки, щас мы их мол перепишем и хорошо будет.
Так раст и был задуман как системный язык изначально, алло нахуй.
Что там кто переписывает я хз, и главное зачем, ты наверное путаешь обертки FFI с полным переписыванием библиотеки.
>А лоу левел оптимизации под симды хуимды подвезете?
С этого вообще выпал, что тебе мешает использовать симды в расте?
>Какие ещё оптимизации, у нас все llvm сам сделает.
Ты о чем вообще, ну да llvm может наверное что-то векторизовать если увидит возможность. Так же как и в GCC и в других компиляторах.
Думаешь в С++ твой говнокод с вычислениями автоматом векторизуется как надо и будет использовать новейшие симд иснструкции? Хуй там. Только ручками.
Так винда уже сто лет работает на последнем ядре NT это и есть твой вин2000.
И естественно уже столет 64 битное.
Хз я не эксперт в виндокале, я линуксоид, но вроде у них даже на MSDN если вся необходимая инфа.
Кстати вспомнил на работу 5 лет назад покупали кижку по виндовому апи, но не помню как называлась, я её открыл 1 раз чтобы доказать одному дауну, что я прав.
MSDN почитай. Полнее документации не найдёшь. Примеры кода на стаке загуглить можешь.
>>90086
> Так винда уже сто лет работает на последнем ядре NT это и есть твой вин2000.
Так-то с 2022 винда перешла на модульное ядро, а драйвера на WDF. Просто индусы беспокоятся об обратной совместимости, в отличии от линуксоидов, и все переходы происходят незаметно для юзера.
>Так-то с 2022 винда перешла на модульное ядро, а драйвера на WDF. Просто индусы беспокоятся об обратной совместимости, в отличии от линуксоидов, и все переходы происходят незаметно для юзера.
Неудивлен даже, Поэтому она такая лагучая? У меня она стоит на ноуте второй осью, сидеть на винде это вечный лагодром, все медленно грузится, постоянно поттупливает - просто пиздец. Хотя железо у меня хорошее, ноут игровой asus rog strix. Возвращаешься на линукс, просто шик, все летает, все плавно работет, ничего не поддупливает, просто блеск.
> все медленно грузится, постоянно поттупливает
> железо у меня хорошее
2 ядра 2 гига из 2005 - это не хорошее железо. Алсо, если у тебя система не на SSD, то можно только посочувствовать твоему слабоумию.
> Во-первых, что значит частью операционной системы?
Операционная система это дистрибутив состоящий из многих компонентов и библиотек оттестированных и стабилизированых. Так не только в линуксе но и в маке и в винде и в андройде.
Для предоставления программам api используются заголовочные файлы библиотек/фреймворков, это в винде/макоси. В линуксе большой пласт софта требующий зависимостей вроде gtk4, вяленда, systemd итд, который, судя по флатпакам, будучи собранным не мамнтейнером а васей залупкиным под свой core-i9 x9999 на тестовом ведре, у других либо отказывается запускается либо работает нестабильно.
Некоторые вещи в принципе нельзя в пространстве пользователя пускать я говорю про контейнеры виртуалки и 3d контекст, нужна библиотека из пространства системы работающая с привелегиями.
> цеплять сишные либы как и любые другие языки
А свои либы оно может цеплять внешние? Не может так как нет заголовков система сборки сама находит модули, как ей предоставить информацию о модулей который будет снаружи подцеплен не прдумали, в npm на джаваскриптах у парней таких проблем не было.
> это абсолютно другие языки для другой прикладной
Именно что оно, для "безопасного" приклада, сидели бы там и конкурировали но нет.
> С этого вообще выпал, что тебе мешает использовать симды в расте?
Так нет заголовков и билтинов, или ты сишный код вставляемый в виде строки в раст записываешь?
> Ты о чем вообще, ну да llvm может наверное что-то векторизовать если увидит возможность
Именно в том что даже умный компилятор для эльбруса предупреждает что возможности по автовеаторизации у него крайне ограничены и надо подключать ручки.
Какие инструменты раст предлагает для ручной векторизации при помощи интринсиков? Блок строки на си?
Знаешь на джаваскрипте тоже можно код на GLSL в строке писать, там обработку картинок в цикле, переворот, фильтры вот это все, очень быстро работает на gpu, можно наверное и математику считать какая разница. Но только это не делает жабаскрипт системным или прикладным языком. Тем более заменой плюсов на которых его виртуальная машина написана и оный компилятор glsl.
> Во-первых, что значит частью операционной системы?
Операционная система это дистрибутив состоящий из многих компонентов и библиотек оттестированных и стабилизированых. Так не только в линуксе но и в маке и в винде и в андройде.
Для предоставления программам api используются заголовочные файлы библиотек/фреймворков, это в винде/макоси. В линуксе большой пласт софта требующий зависимостей вроде gtk4, вяленда, systemd итд, который, судя по флатпакам, будучи собранным не мамнтейнером а васей залупкиным под свой core-i9 x9999 на тестовом ведре, у других либо отказывается запускается либо работает нестабильно.
Некоторые вещи в принципе нельзя в пространстве пользователя пускать я говорю про контейнеры виртуалки и 3d контекст, нужна библиотека из пространства системы работающая с привелегиями.
> цеплять сишные либы как и любые другие языки
А свои либы оно может цеплять внешние? Не может так как нет заголовков система сборки сама находит модули, как ей предоставить информацию о модулей который будет снаружи подцеплен не прдумали, в npm на джаваскриптах у парней таких проблем не было.
> это абсолютно другие языки для другой прикладной
Именно что оно, для "безопасного" приклада, сидели бы там и конкурировали но нет.
> С этого вообще выпал, что тебе мешает использовать симды в расте?
Так нет заголовков и билтинов, или ты сишный код вставляемый в виде строки в раст записываешь?
> Ты о чем вообще, ну да llvm может наверное что-то векторизовать если увидит возможность
Именно в том что даже умный компилятор для эльбруса предупреждает что возможности по автовеаторизации у него крайне ограничены и надо подключать ручки.
Какие инструменты раст предлагает для ручной векторизации при помощи интринсиков? Блок строки на си?
Знаешь на джаваскрипте тоже можно код на GLSL в строке писать, там обработку картинок в цикле, переворот, фильтры вот это все, очень быстро работает на gpu, можно наверное и математику считать какая разница. Но только это не делает жабаскрипт системным или прикладным языком. Тем более заменой плюсов на которых его виртуальная машина написана и оный компилятор glsl.
Выкуси, а.
Просто винда - худшая, тормозная, неудобная, напичканная анальными зондами. ос. Которая еще будет пытаться быть умнее тебя. Ну для овоща с отрицательным IQ норм вариант.
А виндовое API... это пездец.
Я как-то разрабатывал пол винду, тормозящие алокаторы плохо умеющие в многопоточность, говенный сложнейший дизайн апи, куча багов в компиляторе msvc и многое другое
> Так нет заголовков и билтинов, или ты сишный код вставляемый в виде строки в раст записываешь?
Да как это нет https://doc.rust-lang.org/core/arch/x86_64/index.html
А даже если я где-то обосрался, что-то не дочитал и их на самом деле нет, то есть асм вставки
Похуй что ты визжишь, намного важнее что сам Линус говорил про десктоп линукса - он считает что надо как на винде, а не как у криворуких дистроклепателей, тянущих каждый в свою сторону. И он всегда признавал что десктоп линукса кал с нулевым юзерэкспириенсом. Алсо, забавно слышать про скорость от тех, у кого второй язык в системе - это питон.
> напичканная анальными зондами
Раз уж ты линуксоид, то надо придерживаться Линуса. Он за нормальную бинарную дистрибуцию софта, а не миллион репозиториев и компиляцию всего по часу.
> Которая еще будет пытаться быть умнее тебя.
Опять же, пердоль обоссывает сам Линус, говоря что если кто-то умеет пердолиться, то это ещё не значит что его надо заставлять тратить своё время на это, софт должен просто работать из коробки.
Да, есть.
> Он за нормальную бинарную дистрибуцию софта, а не миллион репозиториев и компиляцию всего по часу.
Нормальная дистрибюция это когда библиотеки vcredist за весь 2000-2010-2020 надо из интернпта доустановить, Нет.Срамворк, directx online installer, power shell - это вот это нормальная дистрибъюция я правильно понимаю?
Пинус торвальдс сам не добавил в ядро никаких модулей с api как в винде и макоси, а ждет что маинтейнеры как то на своем уровне договорятся о стандартизации юзерспейса что бы программы были совместимы. Но линукс как был программой из которой просто функции торчат так и будет
Я правильно понимаю, что нормальная дистрибуция по мнению пердолика это установка из интернета сотни зависимостей перед тем ставить нужные пакеты, а потом сборка из исходников того что нет в репе? Нормальная дистрибуция когда ты не можешь установить разные версии пакета?
> библиотеки vcredist за весь 2000-2010-2020 надо из интернпта доустановить
choco install vcredist-all
> Срамворк, directx online installer, power shell
В системе уже есть. Если надо старый, то choco install dotnetfx
Че несешь, спермохлеб?
1.Пруфы что Линус так говорил.
2. Даже если это так, мне похуй как он говорил или говорит, я пользуюсь свободным ПО и я в состоянии настроить систему так, как мне нужно и не испытывать с ней никаках проблем, потому что IQ у меня не отрицательный как у некоторых.
3. Ядро линукса != вся система. Не зря говорят GNU/Linux. Линукс это только ядро.
Так что твои вскукареки про Линуса я хз вообще нахуй тут нужны, ты только позоришься открывая свой рот.
4. Судя по твоим изречениям, своего мнения у тебя нету и ты как ведомая обезьяна вынужден опираться только на чужое. Неудивительно, что ты защищаешь индийский член у себя в жопе.
Так винда с собой тащит огромный пласт легаси говна, поэтому и весит уже сколько там 10 гб в чистом виде? + еще и лагает как мразь на современном железе.
Короче бля, хуже чем спермоглоты я даже хз кто, наверное только дауны js'ники.
Я лучше на маке буду сидеть, это хотя бы имеет юникс корни и работает шустро.
Алсо, про линукс, наверное поэтому валв решила не виндос накатывать на свой дек, а пилить линукс так, чтобы там работали все игры. Наверное люди там понимают что винда куча говна лагающего, поэтому в условиях ограниченного железа это не вариант. И то что они сделали с протоном это уже огромный успех, потому что игры под ним зачастую работают быстрее чем на обоссаной винде.
> , что нормальная дистрибуция по мнению пердолика это установка из интернета сотни зависимостей перед тем ставить нужные пакеты
Официальным пакетником из официального репозитория, а не васянским как ты предлагаешь. Ни винда, ни макось ни тем более линукс не включают весь дистрибутив из коробки, они его делят на библиотеки/программы (внезапно) и предлагают их доустановку, в линуксе из репозитория, в макоси сперва через кнопки (буквально кнопки в меню были установить mac-jdk/xcode-sdk) сейчас через апстор, но разработчики все равно пользуются васянским brew, ну а в винде некрософт предлагает на сайт к ним идти искать скачивать. На уровне интуиции догадыватся что msvc100.dll это из состава пакета vcredist2012 смотри не перепутай.
А там есть еще vbredist, юникс шелл, нет.срамворк 3 и 3.5, потом 4 и 4.5 причем как отдельные пакеты.
И самое главное: ты предлагаешь все это решить сторонним пакетником и говоришь - вот достижение винды, пакетник в стиле линупс от васянов.. Совсем с башкой плохо что ли?
> Официальным пакетником из официального репозитория
Ох лол, ещё расскажи что майнтейнер это разрабы этого софта, а не просто васяны.
> а в винде некрософт предлагает на сайт к ним идти искать скачивать
В msix всё само ставится. Это если софт упакован в непонятно что, то при запуске бинарника он ткнёт носом и скажет идти по ссылке.
Искать никогда не надо, сейчас всегда прямая ссылка на нужный дистриб в ошибке.
> сторонним пакетником
choco в винду встроен из коробки, он не сторонний, лол. Майнтейнеры так же как и в пердоликсе рандомные челы, но сейчас часто сами разрабы выкладывают туда свой софт.
Если тебе хочется пря от майков репу, чтоб ни один васян не притрагивался, то всегда есть вингет, тоже в системе из коробки:
winget install Microsoft.VCRedist.2015+.x64
> причем как отдельные пакеты
Ты лучше расскажи как поставить условный питон на пердоликс и чтоб потом не приходилось доустанавливать пакеты. Он разбит на 50 пакетов за каким-то хуем, хотя у мака/винды просто один пакет. То же самое про CUDA - миллион пакетов на каждую отдельную либу. Хочешь поставить сраный neofetch - 30 пакетов зависимостей. При этом в момент когда ты захочешь поставить свежую версию пакета, а не двухлетнюю из репы, то дико отсосёшь из-за зависимостей.
>Обтекай.
Лол, еще раз во-первых, похуй что он там говорит, его там только ядро.
во-вторых, при чем здесь вообще это нахуй, дебил? Разговор о том, что винда сосет по всем фронтам, при чем тут ты высрался с Линусом, с какими-то пакаджами, нахуй ты это принес? Да хуй с ними. Это никак не улучшает ситуацию с тем, что винда говно, которое лагает, которое неудобное, которое с анальными зондами и кривым неудобным апи? А? Говноед? Ответь мне на вопрос: Почему спермобляди так яростно оправдывают член господина у себя в анусе? Ну хочешь ты поглощать говно с членом в жопе окей. Я выбираю свободный и быстрый софт. Если бы даже мне запретили использовать линукс я бы лучше стал макойобом, выучил свифт или че он там юзают и пересел бы на макбук. Чем был бы членоглотателем индийского высера под названием windows.
>Ряяяя, нет тыыыыы.
Ну дебилушка, что сказать.
Сиди дальше сперму глотай, анскил ебаный. Я уверен, что ты даже не настоящий программист, а сидишь тут просто так срешь своим бредом на всей доске.
Так ты реально долбаёб, защищаешь линукс хуй пойми зачем, он тебе еблану всё правильно объясняет, что с одной стороны копроративный виндогной, что с другой стороны открытая линуксойдная моча без внятной экосистемы, и что там, что тут - страдаешь.
>питон на пердоликс и чтоб потом не приходилось доустанавливать пакеты.
>Он разбит на 50 пакетов
Ты реально такой анскил? Что за бред ты несешь я в ахуе. Какие 50 пакетов. Таблетки прими.
Питон вообще предустановлен зачастую на многих дистрах.
А идет он одним пакетом python3 какой-нибудь и все.
> То же самое про CUDA
Куда тебе до куды? Судя по твоим изречениям, ты вряд ли что-то сложнее хелоу вордов пишешь, если вообще пишешь что-то.
По теме твоего высера про куду, это называется метапекедж, и то что каждая либа разбита на отдельный пакет это очень правильное решение. И вообще твоя претензия тут не к разработчикам дистров должна быть а к нвидиа, но они молодцы все правильно сделали.
Это я тебе говорю как чувак, который под куду много чего написал.
>neofetch
Понятно, дауненок из десктоп треда. Ты че тут забыл, реально? Ты походу тредом ошибся.
>зависимостей
А ты как хотел? Чтоб каждая сраная утилита в 200 строк кода, паковала каждый раз кучу зависимостей в один большой условный бинарник и весила пару сотен мегабайт? Ну в макоси так сделано и всякие флетпаки и снапы похожим образом работают, поэтому их все хуесосят.
>При этом в момент когда ты захочешь поставить свежую версию пакета, а не двухлетнюю из репы, то дико отсосёшь из-за зависимостей.
Ты про себя очень точно сказал, ты отсосешь, но не потому что линукс плохой или разработчики пакета, а потому что ты криворукий далекий от разработки даун.
Ну давай разберем тобою написанное:
1. Пакеты двухлетней давности это только в каком-нибудь дебиане. Ставь дистр с ролинг релизами и будет тебе счастье все самые новые пакеты.
2. Реальная необходимость в новом пакете встречается довольно редко. Но если таковая реально есть, то можно просто этот пакет собрать из сорцов и установить куда-то не в систему.
3. Ты просто дауненок, который не разделяет системные пакеты от локальных. Потому что ты не разработчик, если бы ты был реальным разработчиком, то такую хуйню ты бы уже давно знал как решать.
4. Когда я работал над виндовым проектом, там знаешь как делали? Просто абсолютно все зависимые либы хранили в одном огромном архиве, который очень редко обновлялся, потому что если ты что-то обновишь то зачастую это может поломать весь проект. Ты просто не раработчик, поэтому с этим не сталкивался и не знаешь что да как делается на практике. А на практике делается так: Работает - не трогай.
Короче заебал ты меня. Я пошел спать.
>питон на пердоликс и чтоб потом не приходилось доустанавливать пакеты.
>Он разбит на 50 пакетов
Ты реально такой анскил? Что за бред ты несешь я в ахуе. Какие 50 пакетов. Таблетки прими.
Питон вообще предустановлен зачастую на многих дистрах.
А идет он одним пакетом python3 какой-нибудь и все.
> То же самое про CUDA
Куда тебе до куды? Судя по твоим изречениям, ты вряд ли что-то сложнее хелоу вордов пишешь, если вообще пишешь что-то.
По теме твоего высера про куду, это называется метапекедж, и то что каждая либа разбита на отдельный пакет это очень правильное решение. И вообще твоя претензия тут не к разработчикам дистров должна быть а к нвидиа, но они молодцы все правильно сделали.
Это я тебе говорю как чувак, который под куду много чего написал.
>neofetch
Понятно, дауненок из десктоп треда. Ты че тут забыл, реально? Ты походу тредом ошибся.
>зависимостей
А ты как хотел? Чтоб каждая сраная утилита в 200 строк кода, паковала каждый раз кучу зависимостей в один большой условный бинарник и весила пару сотен мегабайт? Ну в макоси так сделано и всякие флетпаки и снапы похожим образом работают, поэтому их все хуесосят.
>При этом в момент когда ты захочешь поставить свежую версию пакета, а не двухлетнюю из репы, то дико отсосёшь из-за зависимостей.
Ты про себя очень точно сказал, ты отсосешь, но не потому что линукс плохой или разработчики пакета, а потому что ты криворукий далекий от разработки даун.
Ну давай разберем тобою написанное:
1. Пакеты двухлетней давности это только в каком-нибудь дебиане. Ставь дистр с ролинг релизами и будет тебе счастье все самые новые пакеты.
2. Реальная необходимость в новом пакете встречается довольно редко. Но если таковая реально есть, то можно просто этот пакет собрать из сорцов и установить куда-то не в систему.
3. Ты просто дауненок, который не разделяет системные пакеты от локальных. Потому что ты не разработчик, если бы ты был реальным разработчиком, то такую хуйню ты бы уже давно знал как решать.
4. Когда я работал над виндовым проектом, там знаешь как делали? Просто абсолютно все зависимые либы хранили в одном огромном архиве, который очень редко обновлялся, потому что если ты что-то обновишь то зачастую это может поломать весь проект. Ты просто не раработчик, поэтому с этим не сталкивался и не знаешь что да как делается на практике. А на практике делается так: Работает - не трогай.
Короче заебал ты меня. Я пошел спать.
>Ну с линуксом можешь поебаться один раз и норм дальше сидеть
Надмозгам этого не понять.
Да и ебаться уже давно не приходится, как правило все работает из коробки.
> А идет он одним пакетом python3 какой-нибудь и все.
Вот ты явно никогда его не трогал, чухан. Банально pip или venv - это отдельные пакеты в пердоликсе. Прям так и называются python3-pip и python3-venv.
> но они молодцы все правильно сделали
Кто они, шизик? Нвидиа не мейнтейнит свои либы в репах дистров, они же не ебанутые.
> choco в винду встроен из коробки, он не сторонний, лол. Майнтейнеры так же как и в пердоликсе рандомные челы, но сейчас часто сами разрабы выкладывают туда свой софт.
Куда "туда" выкладывают? В пакетник что ли? Школьник ты дрищешь.
> Так это достоинство.
Нет, иногда нужен барский сапог, чтобы была хоть какая-то стандартизация, отталкиваясь от которой ужe можно пилить комьюнити велосипеды под свои хотелки.
Если бы был барин, то хуита ввиде cmake, который изначально был костылем для красноглазого мейка, не получила бы такое распространение
Мимо премейко-боярин
>python3-pip и python3-venv.
Это системные пакеты. Точно не помню пип вроде и так идет с питоном вместе, но ты манька, плохой тон ставить все в систему, обычно делают локальный venv и туда пипом все ставят. Не понимаю твоего бугурта, на счет этого.
>Нвидиа не мейнтейнит свои либы в репах дистров
Да ты что? Алёша, а как на счет нвидивских реп, прямо у них на сайте, когда ты хочешь куду с сайта установить? Кто это меинтейнит по твоему?
Это неверное та тян которая про воксели хороший ролик сняла?
Узнал ее по шизойдным высерам интересу к 3d графике, она редкое явление и ей не само программирование итересно.
>>90560
> Это системные пакеты.
Спермошкольник считает что системные скрипты это вижуалбейсик и повершел скрипт, а если обкусаный питон или руби (как в макоси) то это тупые юниксойды неправильно скачали/собрали.
Ты мейнтейнишь что-то? Ты хоть раз мейнтейнил в своей жизни?
Шизоид, ты опять выходишь на связь?
пик что бы не выписали в красноглазых
Так виндобоги всегда готовы хорошие идеи принять, это у жму/пидорасов религия запрещает иметь удобный десктоп. В винде даже линукс встроили.
Ну хуй знает, если ты только сидишь в игры играешь - окей
Если код пишешь, то линукс маст хев, банально докер далеко не сразу появился на винду
Или если у тебя на винде обновы отключены и ты wsl поставить не можешь - хуй тебе а не докер
>Так виндобоги всегда готовы хорошие идеи принять
Это так теперь называется ржать над прыщами мол там надо консоль пердолить чтобы софт поставить, а потом самому восхвалять winget/scoop(ф)/choco???
>то у жму/пидорасов религия запрещает иметь удобный десктоп
Не запрещает, это уже проблема в далбаёбах на разрабах оболоней
>удобный десктоп
Это точно не про винду. Там спустя 30 лет только додумались вкладки в проводнике сделать, лол.
Винда удобна только игродебилам, пару кликов мышки и играешь себе, brain load 0.0%.
Оперировать системой вообще неудобно.