Вы видите копию треда, сохраненную 6 октября в 14:26.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Вместо шапки:
⚹ https://github.com/sosachbot/cppthreadhat
⚹ Для кусков кода: https://0bin.net/
Ответы на вопросы:
⚹ https://en.cppreference.com/w/
⚹ https://www.cplusplus.com/reference/
Для указателей: ⚹
Прошлый тред: >>3101419 (OP)
Ты ведь в курсе, что перемещаются внутренности объекта, а не объект? Получается ты насрал в тред, пидор?
Вам плятят мало или чем вы не довольны?
Надеюсь ты в курсе, что никакого перемещения там нет - а есть приведение к rvalue.
есть ли какой-то способ отправить несколько запросов в разные места памяти?
Хочу алгоритм бинарного поиска ускорить в не таком уж маленьком массиве ~ 5000-20000 элементов
Я побовал astyle. То ли я с ним не разобрался и надо долго его настраивать. Для сравнения, для тайпскрипта линтеры чуть ли жопу не подтирают...
Code cleanup в вижуалстудии.
Такова воля аллаха заказчика. Нужно превзойти std.
Ну, это конкурсное задание. Конечно, никто на этом не заработает
Можно прикрутить чтобы он базовые вещи сам исправлял сразу
сам же про линтер написал, если только форматинг нужен то clang-format
Каких запросов, шиз? Нужно из кеша читать, а не делать кешмиссы обращениями хуй пойми куда. Взял что-то из памяти и дальше до конца кешлайна ебашишь не отклоняясь в сторону. Каждый кешмисс - платишь в 5 раз больше за чтение из памяти. То что ты хочешь сделать - это наоборот уронить производительность.
плюсаноны, два вопроса:
- как часто вам нужно юзать rule of five?
- есть ли какие-то путь писать без заголовков и с декларативными, а не скриптовыми билдами?
> как часто вам нужно юзать rule of five?
Если ООПорождённый или пишешь либу для людей, то всегда. В других случаях никогда.
> путь писать без заголовков
Модули используй. Но нормальная поддержка есть только у майков. У шланга оно кое-как работает, gcc вообще на стандарты ложит хуй.
Помогите пожалуйста прояснить: вот есть например класс А с виртуальной функцией f, от него производный класс B, у которого перегрузка на f, а также своя виртуальна функция f1
Когда мы создаем B b, у нас в переменной будет два vptr’a, один указывает на таблицу для A, Другой на таблицу для B. Вопрос: когда вызываем метод B::f через А⚹, как рантайм определяет правильный указатель? Если второй vptr относится к собственным полям B, как указатель B⚹ его “видит”?
Рантайм ничего не определяет, определяет компилятор исходя из правил языка, и криворукий программист который накидал везде виртуальных грабель и пришел на двощь удивляться как это они так не ебнули по башке ниразу.
>Нужно из кеша читать,
Массив достаточно большой и отсортированный.
Такая постановка задачи в бинарном поиске.
Я подозреваю, что есть какие-то распараллеливающие чтение по указателям инструкции. Допустим, я хочу сделать 8 чтений параллельно по равномерно размазанным адресами в массиве. Это возможно с помощью каких-нибудь инструкций?
Я уже попробовал очевидные варианты полностью последовательной работы - недостаточно быстро, хотя в маленьком массиве прирост есть .
Ты можешь:
1. Разделить большие данные на блоки, послать эти блоки ядрам на обработку (openmp)
2. Ты можешь прокачать данные в кэш (__builtin_prefetch() и только на интелах) и тащить на регистры большими блоками и обрабатывать параллельно векторными командами. Естественно данные должны лежать определенным образом.
3. Ты можешь комбинировать верхние два способа.
Всё.
Либо, если у тебя эльбрус, надо пошаманить в коде, приписать указателям рестрикты, убедиться что в цикле есть счетчики и они знаковые,
указать прагмой что это овер1000 цикл и тогда компилятор подставит команды которые асинхронно считывают элементы массива прямо из памяти аки fifo и помоему еще и писать могут туда же. Работает это естественно только с массивами.
> по равномерно размазанным адресами в массиве
У тебя неэффективное хранение данных. Надо структуру оптимизировать, а не код. То что ты хочешь невозможно, данные должны читаться последовательно, всё остальное очень неэффективно. Можешь конечно в 8 ядер, но скорее всего соснёшь на многопоточном оверхеде, многопоток уже на 4 ядрах упрётся в шину.
Гугли манглинг
рано перекатили надо было до 2,5к постов посидеть чтоб вкладка падала когда в тред заходишь
Затык сейчас в чем, кэш-промахи?
Инструкций таких нет и смысла они не имеют.
Разбей массив на куски в одну страницу и сделай для них индекс второго уровня, который сам уместится в страницу. Если нет, добавляй уровни.
Что у Джуна/стажировщика могут спросить из самого каверзного?
Самое главное это первое впечатление, когда заходишь тебе кинут под ноги эксепшн - переступи и иди уверенно садить. Будут задавать вопросы в стиле "есть два класса: в одном виртуалы точены, в другом темплейт методы дрочены какой наследовать станешь, какой из листа поинтеров достанешь?" Отвечай: уберу виртуалы точены, сяду на хуи дрочены.
Очень зависит от компании. Одни джуном считают любого кто знает в чем разница new и malloc, другие на собесе дрочат реализацией std::move, самописными шаред поинтерами, фолс шерингом, стрикт алиасингом и подобным. У знакомого в интел на летнюю стажировку натурально спрашивали за модель памяти и возможные отношения между событиями (типо рассказать про happens-before и total-order). Но я бы сказал так, что чем сложнее собес (если там не 3 алгосекции из хардов) тем лучше компания и тем быстрее ты будешь там расти, поэтому если есть возможно выбирать то ориентируйся и на это тоже. Иначе рискуешь попасть в ООО "КабанАйтиСолюшенс" где ты через пару лет забудешь всё что знал и будешь вынужен учиться заново чтоб прыгнуть в нормальную компанию.
Мы откуда ебем? Тут по-твоему тред ведунов или мы тут кости бросаем что там у тебя спросят?
> модель памяти и возможные отношения между событиями (типо рассказать про happens-before и total-order).
Кашмар
Спасибо за ответ, то есть у крутых кампаний можно вобще что угодно ожидать
вот бы только не харды с литкода были, быстро решить, тем более прямо на собесе, врятли смогу
>>06829
Ты сам что-ли на Джуна не собесился? Или тебе на собесе вопросов технических не задавали?
Так, давайте обсудим более предметно
вот я запускаю непосредственно тестовый пример, в котором удалил свои потуги, но оставил std::binary_search и получаю пикрелейтед
К сожалению, не гарантирую, что мой несвежий сервер-хуйнанан на Xeon v4 ведет себя так же как тестовый, а тестовый в плане предсказаний переходов едет себя вполне определенным заданным образом - это эмулятор Bochs
Дайте тактический совет!
>Кашмар
Ну для справедливости это была стажировка для работы над onetbb, там без глубокий знаний многопотока делать нехуй
Что непонятного? У тебя кеш-миссов ебануться сколько много. Как уже и говорили - делай чтение более линейным, а не занимайся извращениями. Меньше операций в алгоритме не всегда быстрее.
Практический совет: освоить gnu perf
А не считать такты процессора на высокоуровневом коде обмазанным библиотеками.
Тебе вообще надо один раз в этом массиве искать или много? Если много, то это совсем другая задача - там можно предобработать, построить какие-то карты этого массива, предсортировать удобно для кэша, но для этого всего массив надо один раз пройти целиком. Для однократного поиска это теряет смысл, поскольку сам этот поиск, пусть и с промахими кэша все равно быстрее полного пробега по массиву. Боюсь, ничего нельзя сделать, сама суть всяких бинарных и фибонначей - дерганье из разных мест. Смысла распараллеливать по ядрам тоже нет - у одного ядра и там много cache line, только лишние беды с синхронизацией.
сложно сказать. Тестовый код есть, но я там не все понимаю.
Похоже, что считается единичная операция поиска. Этот тест делается много раз чтобы качество алгоритма можно было оценить надежно.
Скорость считается через std::chrono::high_resolution_clock
3 раза - это 3 раза !
Если много раз, то сделай тумбнейл массива в маленький массивчик размером ну пусть N1=256. Он как раз в линию кеша может влезть или в две. Первый поиск в тумбнейле, потом на N2=256 рядом расположенных элементов исходного массива, что тоже влазит в линию кеша (однако оно и при просто бинарном поиске ближе к финалу поиска будет все рядом). Так можно работать N1*N2 с 65526 элементами.
как я понял тест, массив каждый раз меняется.
В общем, придется самому изучать эти штуки и тут времени на месяц.
Какой то хуйней занимаешься чесслово. Если это задание на профпригодность то тебе поди и надо свою функцию написать. Что вообще такое бинарный поиск? Это поиск в мешанине байт строк с кодировкой или что?
Не понял как оно может быть быстрей линейного поиска особенно на больших данных, ну да похуй вот тут рекомендация есть как с этим говном работать:
>Binary search is faster than linear search except for small arrays. However, the array must be sorted first to be able to apply binary search. There are specialized data structures designed for fast searching
Чтобы построить эти specialized data structures, тебе надо пробежать по всему массиву, но за этот пробег ты можешь просто найти в нем нужное значение, так что binary search становится уже не нужен.
>3207274
Какой то хуйней занимаешься чесслово.
Ты прав.
Просто подумал, что такое необычное задание народ, занимающийся в основном крудошлепством и синхронизацией рассинхронизированного, развлечет и я буду в выгоде.
Пока придется отложить
Ты можешь просто в 8 потоков сделать отдельно поиск по каждой 1/8 массива. А потом из найденных 8 значений выбрать наилучшее.
Нет, скорее всего cpu один.
Но я могу имитировать 8 указателей. Будет ли это параллельно читать из кеша?
С чего начать писать?
Это какие то институтские задания что ли? По мне это все задачки не для плюсов, а для питонов и прочих скриптовых руби у которых джит который все это говно через профелировку очень хорошо оптимизирует. Плюсы и си это статиктайм компайл и в них все то что делают джиты на лету надо закладывать и задумывать заранее, для этого то тут всякие constexpr restrict inline и прочее, объясни своим преподавателям что это не фортран, не питон, пусть остановятся, подумают блять на чем задачи дают. В джите если код соптимизировался слишком агрессивно, то его откатят а здесь двести тысячь ключей оптимизации которые порвут любой код в клочья блять если их все включать.
В процессоре только два юнита лоад/стор и ограниченное число регистров.
Но ты можешь грузить 1 сегмент по 128бит, это уже другое дело.
но ведь из памяти все равно читается крупными блоками.
Кстати, какими? Каково оптимальное число параллельно сдвигаемых указателей ?
Оптимальное число это 1.
А дальше играться с компилятором, оптимизациями, таргет цпу, профилировкой (найдешь в интернете гайд) и #pragma loop-unroll
Память читается 8-16-32-64 бит в большинстве процессоров, наличие 128бит и более одного юнита не гарантируется
64байта это 512бит, возможно у интелов с avx512 есть инструкция грузящая вектор такой длинны но я выше sse интринсиков в интеле команды не использовал, ну вообще то не только интелом единым, есть арм есть риск-v.
Я рассуждаю могу ли я решить задачу поиска в уже отсортированном массиве путем псевдораспараллеливания чтения на N указателей и как построить эти циклы
Мы не спорим он какой то алгоритм пишет с большим циклом, спрашивает сожно ли по восьми поинтерам грузить данные.
Формально то можно но быстро от этого не станет, плюс появится оверхэд вычисляющий границу поиска по 8и элементам и еще в конце надо будет обрабатывать возможно не попавшие в восьмерку хвосты, от 1 до 8. Если уж и идти на это то ради векторных комманд.
У х86 кэш-лайн 60 байт. И чтение всегда идёт в такой размер. По этой причине и дрочево на стеке такое быстрое - мы в кэше сидим. И при спекулятивном выполнении можно несколько чтений из кеша за цикл делать.
>Формально то можно но быстро от этого не станет
Почему?
>плюс появится оверхэд вычисляющий границу поиска по 8и элементам и
А это, кстати, хуйня. Тестирование идет на массивах кратных 512 (кажется)
Я не понимаю причем здесь кэшлайн, что бы работать с данными 8бит например их надо положить на регистры. Для этого есть команды лоад/стор на конкретный размер данных, а управлением памяти кэшей занимается внутренняя логика и программисту она не доступна, там помоему даже контроллер с прошивкой есть через которую тестируют выключают битые линии.
У интела мув-хуюв сегментные адреса но это больше историческое наследие и все эти пуши хуюши якобы со стеком превращаются в телебоньканье значений на регистрах которых в микроархитектуре овер 170и а так загрузка из L1 на регистр 5-7тактов, какое нахуй быстро может быть. Плюс конвеер гиганский пока это все говно загрузится он простаивать что ли будет 20тактов? Конечно нет, там декодер только видит команды работы с памятью/стеком сразу их гонит вперед спекулятивно.
> Я не понимаю причем здесь кэшлайн
При том что память напрямую из ОЗУ в регистры не ложится, это слишком медленно.
> загрузка из L1 на регистр 5-7тактов
У тебя какая-то инфа из начала нулевых. За один такт может быть несколько mov. TP в пикрилейтеде - это количество тактов на выполнение инструкции, ЦП может в одном такте 2-3 такие инструкции выполнить, если они идут последовательно или если у их инпутов нет зависимостей от других инструкций, планировщик может перепрыгнуть через несколько инструкций и выполнить их вне очереди.
> 20тактов
В случае кэш-мисса как раз и будешь стоять 10+ тактов, в ожидании чтения из памяти.
Откуда вы лезете, я уже 5ый год работаю на qt/c++. Я ваще не ебу что такое фалс шеринг, стрикт алиасинг, хепенс бефор, тотал ордер. Т.е почти за пол десятка лет мне вообще ни разу не пригодилась эта хуета. Ты компиляторы пишешь? В комитете новые стандартные разрабатываешь? А может быть ты просто жопоголвый хер, который обмазывается нахуй не нужной инфой вместо разработки софта?
>Поделитесь опытом, к чему быть готовым на собесе?
Спроси у потомственной гадалки. Все люди разные. Психология у всех разная. Требования у всех разные. Проекты у всех разные. Бюджеты тоже разные. Одни щепетильные, другие распиздяи. Одни требовательные, другие нет. Нет единого стандарта "чё могут спросить на собесе". Кроме сколько лет опыта, какие проекты делал, и т.д.
С ростом частот/удлиннением конвеера растет и число тактов нужное для выполнения той или иной операции. Это известно даже школьникам из железяча, которые наблюдают это в таймингах оперативной памяти которую меняют каждые пол года, но внезапно не известно тебе, погромисту на более менее близком к железу си плюх плюх, мриющем о муве за один такт, тебе не стыдно? 10-15 тактов это только доступ к L2, L3 в зависимости от удаления банка и все 30, а память вообще за сотку.
Это не для работы нужно, а для смотрин, благопристойное оправдание спровадить неугодных, ведь нельзя через семь секунд сказать "вы нам не нужны, уходите", они порвутся и будут требовать объяснений почему, вот им их и дают, просто валят надуманными вопросами чтобы съебал уже и не возникал.
Фраза поделиться опытам буквально значит расскажи что спрашивали у тебя и у твоих знакомых
вы совсем асоциалочи?
> память вообще за сотку
Хватит бредить, манька. Я тебе принёс реальные замеры чтения из кэша, а ты серишь шизой из нулевых времён пентиумов третьих.
Зачем отвечаешь шизу?
Хуй будешь, клован?
Ты даже не понял что ты принес, долбоеб, там написано что декодируется в один микрооп и за 0.33/0.55 тайм декодинг (что бы это не значило). Всё. Больше там ничего нет.
Это ты клован, сам хоть видишь что у тебя на пике написано? Какое отношение то что ты притащил имеет к одиночному чтению из кэша?
> тайм декодинг (что бы это не значило)
Пикрилейтед что это значит.
Твой протык тут вобще причем?
Все это классно, но я по-прежнему не могу придумать чем это побить (
Сколько можно делать параллельных _mm_prefetch ?
Делаешь статический массив из четырех пар итераторов.
while (!(в каждой паре begin == end)) {
for (int i = 0; i < 4; ++i) {
один_шаг_бинарного_поиска_для_пары(i);
}
}
Работает збс, на некропроцессоре ускорение было больше шести раз.
Бессмысленно. Вместо log N шагов будет 4 * ((log N) - 2). Можно вместо отсортированного массива использовать дерево Ван дер Как Его Там Не Ебу, он лучше с L2 кешом работает, но если данные не контролируешь, то увы.
Побил все бенчмарки. Маленькие массивы на AVX2, большие через более конвееризированное чтение.
Удивительно, что такой баянный алгоритм можно ускорить в 3 раза просто снихуя. Ну, то есть, я знал что люди это в принципе делают, но никогда не рассчитывал, что это буду именно я.
нагуглил подробное исследование именно этого алгоритма и там все давно разжевано.
>>08718
Интересно, выглядит разумно, но в другой раз.
Вообще, изначально, я хотел бы просто узнать про Gather
https://www.intel.com/content/www/us/en/docs/cpp-compiler/developer-guide-reference/2021-8/intrinsics-for-int-gather-and-scatter-ops.html
Есть такой тип инструкций.
Но из-за ботленека с памятью, наверное это все херово работает
Ты имеешь в виду цитату или ответ на цитату?
>>08872
Интересную тему поднял. Я думал, это вообще нельзя оптимизировать. Сейчас у себя попробую с поиском минимума суммы интегралов на убывающем массиве на 400М элементов. В принципе оно и так быстро, но теперь вот стало интересно, можно ли вашими способами в т.ч. >>08718 процент cache-miss снизить.
Я имею ввиду не гринтекст, а ответ порриджа у которого в башке хлебушек от тиктокцыган. Если бы я имел ввиду оригинальный пост, я скинлу его.
>цыган
Их расстреливать нахуй надо. Надувают на своих курсах вкатунам наглости в жопу, те потом спамят вакансии, возможно, мешая пробиться умным но скромным ребятам.
Пиздос
Этому >>09017 не верь, он не понимает о чём говорит.
Си очень простой язык, плюсы от него ушли очень далеко, и учить их нужно годами, тогда как обычный Си учится ну максимум за месяц.
Если собираешься учить плюсы, то учить Си перед ним я особо смысла не вижу.
Нахватаешься лишнего (любые виды макросов, б-гмерзкие тайпдефы, c-style преобразования типов), потом ещё и переучиваться придётся.
>плюсы от него ушли очень далеко, и учить их нужно годами, тогда как обычный Си учится ну максимум за месяц.
И как это отменяет факт, что си во многом подмножество крестов? У тебя с логикой проблемы.
Подовляющее большинстао того чтл собирается си, соберется и плюсовым компилятором. Больше 95% точно.
а то что ты не можешь макросы и трясештся от кастов, ну это твоя проблемы и факта не отменяет
> Си очень простой язык, плюсы от него ушли очень далеко, и учить их нужно годами, тогда как обычный Си учится ну максимум за месяц.
Хуйню написал, плюсы это оопшная нахлобучка на Си, учить "годами" может только человек не знакомый с ооп вообще, и базовыми объектами типа string, map и regexp. Для остальных тут вообще ничего нового (кроме темплейтов и прочих костылей для статической оптимизации) даже поскуднее чем в базовых библиотеках других языков.
Прючем тут адепт не адепт, если это Си с плюсами а не d.
И вообще съеби нахуй отсюда в свой шарп тред, петух.
Ну ты реально долбоёб, а шарп в жопу себе запихай, говно тупое))
На заводах!
Че все так не хотят назавод идти-то?
Сидишь-пердишь, пишешь очередную хуитку для работы с блютусом, GSM, WiFi-ем, говнокодишь, все свои проебы - сваливаешь на тех кто прикладной софт для работы с твоей хуюткой использует валишь.
Никто тебя уволить даже за большие проебы не пытается, ведь хуй даже такого найдешь.
>НАсколько сильно отличается c от c++? Стоит ли учить c, чтобы потом перейти на плюсы или это два принципиально разных языка?
Сильно отличается.
Особенно в современном мире, когда плюсовики, из-за комплексов решили, что нужно делать вот чтобы максимально нечитаемое говно было, ведь "мы вам не си с классами". Но и сишники тоже - из-за желания поднасрать плюсам - решили вносить в новых стандартах несовместимости, на радость разработчикам компиляторов.
Ну. Типа, давай разбираться.
1. Темплейты для всего и вся. При том что темплейты в плюсах - говно ебаное.
2. Лямбды. Через жопу.
3. new, который максимально уебищно сделанный, что в 95% случаев - плюсовики его не рекомендуют использовать.
4. std - говна. Когда вроде все есть, но все - говно и надо все равно свою реализацию писать.
5. Постоянный непонятный дрочь в сторону функциональщины. В результате, начиналось как ООП расширение Си, но на деле - говно говна какое-то, и если ты таки хочешь в ООП стиле кодить - будь добр это говно говна обернуть во что-то более пристойное.
6. Как бы есть обратная совместимость с си, но на деле - хуй ты соберешь большую часть сишного кода под плюсы. И из-за этой шизи крайне веселая ситуация - говнорешения комметета объясняются обратной совместимостью в том числе с сями, но если тебе реально нужна обратная совместимость - ты собираешь сишную часть отдельно. А плюсовую - отдельно, желательно конкретной версией компилятора, иначе может быть пизда.
И это я только про плюсы высрался.
А если я еще навалю кучу про разные стандарты Сей. Ух. Тут с обоих сторон гореть будут.
Но все это не так важно. Си - учить нужно, потому что это лучший способ понять как твоя программа работает. Без всей этой фенси хуйни, которую от тебя прячут современные языки. После того как освоишь это и сможешь применять в чем-то реально полезном - освоить кусочек плюсов, жавы или любого другого языка - не составит особых проблем.
> отдельно, желательно конкретной версией компилятора
Для начала покажи компилятор сишки, лол. Их в природе не существует уже, все современные компиляторы сишки - это компиляторы крестов.
>непонятный дрочь в сторону функциональщины
Дурачок, сторонником функциональщины и противником ооп был первоначальный автор stl Степанов, это было в первом же стандарте. Кресты изначально не чистый ооп язык, просто может поддерживать эту концепцию.
> Кресты изначально не чистый ооп язык
> просто может поддерживать эту концепцию
Разве под определение ооп языка не понимается что это язык который поддерживает ооп?
Он еще что то делать должен?
1. Аппеляция ко мнению петуха - делает тебя петухом.
2. Из-за раздутости возможностей - плюсы превратились в говно. С этим спорить будет только дурак.
3. Язык - приобрел популярность как раз во времена, когда воспринимался как "Си - с классами". И большая часть кода, который наговнокодили в период 90е - 10е - это как раз ООП наиклассическое. И именно этот пласт кода - не дает языку сдохнуть, так что прояви уважение, без него - плюсы бы уже давно валялись на свалке истории, как неудачный эксперимент.
Двойное подчёркивание есть, так что все элементы ООПа там есть. Значит по твоей логике питон это ООП язык.
ну если ты так инкапсуляцию интепретируешь, то есть
хотя у дедов наследование и полиморфизм в языках с динамическими типами не по канону, но если тоже взять за должное то да, питон поддерживает ооп
> тру ооп
Флешбеки с университета со старыми пердунами преподами и их шизойдными определениями в том числе ооп
Не увиливай, разговор идёт про ООП. Многострочных лямбд в питоне нет и никогда не будет из-за убогого синтаксиса с отступами вместо божественных фигурных скобок.
А что не так с private? Они вместе с protected настолько хороши, что их даже в Kotlin оставили https://kotlinlang.org/docs/visibility-modifiers.html
Всё с ними так, просто в каких-то ООП языках их нет, а в каких-то они есть.
>Многострочных лямбд в питоне нет и никогда не будет из-за убогого синтаксиса с отступами
Вау, первый раз вижу объективный плюс питона. Оказывается и у убогого синтаксиса бывают серьезные преимущества. Слава питону, лол.
> Из-за раздутости возможностей - плюсы превратились в говно. С этим спорить будет только дурак.
> Лямбды. Через жопу.
> 3. new, который максимально уебищно сделанный, что в 95% случаев - плюсовики его не рекомендуют использовать.
Опять сишарпер в говне измазался.
Иди изучай си и низкий уровень, долбоебок тупой. Объекты созданные через new это долгоживущие объекты, в сишарпах/джавах с этим нет проблем так как их удаляет сборщик мусора, в плюсах класс представлен структурой поэтому не позволить выделить ее локально, либо статично глобально а заставлять только алоцировать в памяти через new это было бы идиотией.
Лямбды реализованы как обычная функция по имени либо как функция по адресу со стека, если включен контекст.
Я не вкатун, я занимаюсь прикладным по и библиотеками. Это раз.
Два - видимо кто то не знает (пальцем не буду показывать) иначе бы не писал хуеты про то что new какой то не такой и что плюсы и си разошлись
Специально для таких как ты есть D кстати. Очень кстати странно что на него мало обращают внимания, я так понимаю игнорят за то что в нем из коробки gc и нет управления памятью.
При этом оно и не ооп вовсе, а object-friendly функциональщина.
Все просто, у нас в треде определение ооп и ФП эзотерические и метафизические
Человек выше вобще ооп язык определяет как какую-то отдельную от ооп сущность
this->c++;
Не считает. Ты можешь и монады на крестах фигачить, и классы делать.
Можно ли на винде что то сделать или только добавлять пути в PATH/таскать DLL с экзешниками?
Можно. Взять и выкинуть из винды dos трупченый и заменить на posix точеный как это сделано у mac os например.
При реализации конструктора перемещения и оператора перемещения, чтобы грамотно "перенести" члены типов классов из стандартной либы, нужно использовать move, как во втором скрине для всех членом?
Также скорее всего для структуры тоже надо
В винде есть "установка" dll ещё со времён Windows 2000, лежать они могут где угодно. Используй regsvr32. Как же хуею с дебилов, не могущих даже загуглить перед тем как писать.
https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/regsvr32
Алсо, всегда можно включить ленивую загрузку dll и подгружать их вручную из кода, хоть зашифровав dll или положив как ресурс в экзешник.
> И именно этот пласт кода - не дает языку сдохнуть
Плюсам не даёт сдохнуть скорость выполнения скопиленого кода.
> Из-за раздутости возможностей - плюсы превратились в говно. С этим спорить будет только дурак.
Ебать пафосные заявления, жалко, что всего лишь
>пук
>Плюсам не даёт сдохнуть скорость выполнения скопиленого кода.
Да-да-да.
Только код на си и расте - быстрее.
Если бы не было миллиардов строк кода, который уже написан на плюсах - он бы уже давно сдох, уступив место более лаконичным в своей сути языкам.
А точно код на расте быстрее?
Смотрел видос Антона из яндекса и комитета, он там хихикал над этим
Где быстрее?
Мимо просто для развития кругозора
> Только код на си и расте - быстрее.
Лол, нет. В вычислениях сишка сосёт у крестов уже давно, раст плюс-минус как кресты, но никак не быстрее.
Там буквально bsd юзерспейс в котором в корне лежат дополнительно аналоги /Windows /Program Files макосные родные приложения игнорят позикс, юникс приложения видят никсовый юзерспейс и кладут болт на родной макосный и соответственно библиотеки в /usr/lib и /System/Libraries несовместимы хоть и имеют одно и то же расширение.
Это адовый гибрид но он решение как внести позикс в не позикс систему, которое бы могло вытащить винду на качественно новый уровень.
Да там в макоси есть какая то шиза что если в /usr/lib/gcc лежит стоковый то никаким переназначением патча эту хуйню не переназначить, а с какой то версии там еще чрут запротекчен подписью что его даже рутом не поменять. В принципе правильно ибо нехуй в чрут рутом лезть, но вот то что патчем нельзя поменять это бесило пиздец. Понятно что это сделано что бы у соевика после умных советов с реддита и запуска каких то скриптов не перестал xcode например работать, или другие приложения зависящие от unix shell но тем не менее этот зонд в жопе рано или поздно любого заебет.
Я перешел на линупсы о чем ниразу не жалею, разве что не могу найти хороший графический редактор, krita хуевая а гимп еще хуже.
> Только код на си и расте - быстрее.
Проблема ровна одна - на примере gcc - невозможно писать поддерживаемый код на Си.
> Если бы не было миллиардов строк кода
А все решает не язык, а библиотеки и компиляторы - а для того же раста в ближайшие годы этого не предвидится. Да и судя по servo в крупных проектах с ним все очень хуево. А так да, если да кабы.
От Си бы давно уже отказались, но проблема в том что libstdc++ очень толстая и не влазит туда где влазят самые кострированные библиотеки на си.
Хотя в прошлом году слушал какое то видео с конференции по плюсам там какая то компания то ли написала патч то ли что то такое для сборки плюсовой либы без всего ненужного, получилось у них около 450кб, в два раза больше чем сишный минимал, но в их задачи влазин.
А что у раста с этим? Сколько весит его библиотека (которая маллок-хуяллок делает)?
> невозможно писать поддерживаемый код на Си
Так я примерно про то же и говорю, лол. Дело не в скорости плюсов, а в плюшках, которые сверху накатили.
ООП дал плюсам возможность наростить ОГРОМНЫЕ кодовые базы. Которые разрослись как раз в период активного использования плюсов и поддерживаются до сих пор.
И пока плюсы оставались Си с классами - все было заебись.
Но современные плюсы - это какой-то мутант-выродок ебаный. В котором дохуища ненужного, при этом - если что-то нужное и появляется, то далается МАКСИМАЛЬНО уебищно, чтобы этим никто в здравом уме не мог пользоваться, или если пользовался, то в стиле: write only. Написать - забыть как страшный сон.
Основная причина по которой с жив это его стабильный abi. Почти все интерфейсы между языками делаются через него. Если ты хочешь из проги на шарпе использовать либу на крестах, ты на с++ делаешь к ней сишный интерфейс, на шарпе делаешь к нему биндинги и всё работает. У крестов abi нет, точнее есть но если даже разные версии одного компилятора по нему несовместимы это кек.
> очень толстая и не влазит туда где влазят самые кострированные библиотеки на си.
А кто заставляет тащить всю библиотеку шаблонов? SerenityOS вполне себе живёт на своём варианте С++.
Если ты о линаксе то там три условия почему с++ до сих пор не в ядре:
1. Упоротость Торвальдса.
2. И главное. В то время когда он начинал было море кода которое ему IBM в портки залил на Си.
3. Опять же в то время не было нормального g++, он был тормознее чем gcc. А для чувака который начал на i386 это было пиздец как критично.
> решение как внести позикс в не позикс систему
В винде всё же лучше решение - сделать второе ядро в системе. И сейчас нормальная интеграция в винду есть - можно из виндовой консольки вызывать линуксовые утилиты, можно наоборот, есть поддержка линуксового гуя как обычных виндовых окошек, поддержка гпу в линуксе. По итогу сейчас в винде поддержка линуксоидного софта выше чем в макоси.
> Ядро это не библиотека, шизойд.
Спасибо за напоминание, шизоид.
> Это работающая программа со своим контекстом,
И дальше что? Под неё нельзя писать самописные шаблоны, деревья или что?
>из ко орой торчат функции по статическим адресам.
Нихуя он умный. Только нахуя там полиморфизм реализуют на Си в vfs?
Или ты ебанашка из соседнего треда, которого предпод по С++ изнасиловал и он теперь шаблоны с жопотрахом ассоциирует?
> Так в винде то нормальных прав и путей нет
Что не так с ними? Вот линуксовые команды из PowerShell, с виндовыми файлами работают без проблем.
Это алиасы для повершел комманд с похожими названиями. Они даже не соответсвуют ни по опциям ни по формату вывода.
например ls это алиас Get-Items емнип
Причем тут линупс?
Чел, это команды линукса, никаких алиасов там нет.
мы вам перезвоним
В крестах структуры и классы это одно и то же. Если внутри есть уникальные захваченные ресурсы, то мувать. Для простых наборов данных типа sockaddr_in это бессмысленно.
я говорю про изменение путей и прав на файлы в самой винде, а так же добавление чрута и прочего. Что бы в винде были нормальные стандартные косые линии, поддержка симлинков и возможность поиска библиотек в стандартных местах.
Не писать больше отдельных сценариев сборки под винду, не экранировать десятью символамиаиндовые слэши.
Пидор очкастый специально в свое время так делал что бы программы для винды было максимально трудно куда то портировать а форматы винды минимально совместимы с чем либо, он даже си и плюсы изуродывал своими нестандартными типами.
Но он уже давно из компании выпизжен, а винда уже давно начала ломать совместимость с дремучим софтом, чуть ли не через аналог вайна его запускае, ну так и все остальное пора выкинуть уже, самим же лишняя работа и нам держать код отдельно для винды гемор.
А повершел с убунтой в виртуалке мог только пидорас-некрософт придумать
> прав на файлы
Пикрилейтед, чмод работает без проблем на виндовых файлах. Можешь любой линуксовый файлменеджер использовать.
> поддержка симлинков
Уже давно есть поддержка даже в проводнике.
> возможность поиска библиотек в стандартных местах
Тоже не проблема. Как на ХР ставили либы, так и сейчас можно в любые пути.
> ломать совместимость с дремучим софтом
Сейчас бы сравнивать с линуксом, где через год бинарники протухают и без пересборки не работают. А в 11 винде всё ещё 90% софта с ХР работает, а если не работает - решается подкидыванием либ с ХР.
> с убунтой в виртуалке
Я тебе тайну открою, в винде точно так же и ядро самой винды в гипервизоре сидит. В линуксе под виндой сейчас есть вообще всё с полной интеграцией в винду, разве что кроме звука. Даже можешь подменить рабочий стол на линуксовый DE.
То что некрософт для разработчиков приоткрыл форточку в мир нормальных операционных систем, это прекрасно, но
это все только в рамках данной подсистемы, которой у обычного пользователя нет.
> которой у обычного пользователя нет
Из стора ставиться одним нажатием. Гуевый софт прям в пуске висит и запускается как любой другой.
Я и так пользуюсь, в вс-коде ахуенная поддержка есть, даже дебаг работает. Код пишешь на винде, запускаешь/дебажишь в wsl. Заодно можно несколько дистров параллельно держать и на лету переключаться между ними.
Лично для меня сперма умерла 7 лет назад, когда я перестал играть в игры и появились нормальные облачные офисные пакеты.
Да равносильно на самом деле. Я на дваче только несколько тредов 1-2 раза в неделю мониторю, а на остальной борде даже ридонли не сижу, потому что там сплошной мусор.
>>11734
>Идеальный уход от реальности.
А зачем? Хотя я своим делом тоже по сути от реальности убегаю, так что не в праве осуждать.
> Эта хуйня написана на С++ ибо не вывезли разрабы писать это на чистом Си.
И? Пусть хоть на джаваскрипте пишут, это все равно будет компилятор си, а не крестов
Си - отсталая хрень нужная лишь для сборки ядра линукса. Если git, тоже сделанная для ядра, всё же не была говном и пригодилась помимо ядра, то сишка бесполезна по определению когда есть плюсы.
Кстати, по этой причине в ядро легко допустят питон с жабаскриптом, но плюсов там никогда не будет, потому что стоит только разрешить кресты, сишка сразу поделится на ноль и сдохнет потеряв последний смысл существования. то есть, сишка и так мертвое ненужное говно, лишь поддерживаемое искусственно как зомби каким-то недобросовестным скотом по личным ребяческим причинам или коррупция или еще какое говно.
У меня две версии одна современная плюсовая, вторая сишная, те под линукс птхред под винду свое.
Алгоритмически верно, все результаты совпадают.
Но сишная версия работает более менее одинаково на линуксе и винде на вмнде всегда чуть медленнее, но списывпю на системное говно винды а вот плюсовпя версия отличается колосально. Опять же результат тот же, но вот время на порядок хуже.
Никто с таким не сталкивплся?
> в ядро легко допустят питон с жабаскриптом
Да да, как только они отвяжутся от libc и собственного рантайма.
>>10910
Иди помангли имена своих фунций дегрод.
>>08888
Сейчас - это языки с разными областями применимости. Люди учат языки чтобы на них читать и писать то что им блядь интересно. Скажи что ты хочешь написать и тебе скажут что учить.
>Как же много вкатывальщиков молодых
Радует что в России столько много обеспеченных молодых людей, готовых изучать то что никогда не принесет им зароботка, ну либо небольшой зароботок. Скажем спасибо нашим бабушкам и дедушкам наоставлявшим нам квартиры и рождаемости в 1.4! Можно тратить свою жизнь на всякую хуйню, тч на изучение этого эзотерического яп.
Я - сделал игрушку.
Использваол SDL2.
Запаковал в zip - кинул кенту посмотреть.
У него прикриплейд.
Че я должен сделать, чтобы он мог просто взять и запустить игрушку распаковав из zip-архива?
лучше б в доту играли
Если кодер конвертирует годы жизни в корпоративное легаси, то он просто низшая форма жизни - червь-пидор, живущий в кишке. Технологии двигают увлечённые люди, а не макаки в корпорациях. Даже ЯП этого треда - продукт идеи одного человека. Литералли все ЯП, родившиеся в корпорациях - это безыдейная строгая ООП-параша типа джавы/сишиарпа/пхп, где троекратно переваренный кал пиздят друг у друга из жопы.
Ой, а чего это ПХП не нравится? Делал как раз один человек, загоревшийся идеей дать людям вменяемый инструмент, чтобы быстро сделать бекенд, а не ебаться как раньше с сокетами-хуекетами на сишке.
Этого мало. Есть ещё библиотеки в PATH и в системных папках Windows, которые у тебя есть, а у него нет. У тебя из вариантов либо линковать библиотеки статически, тогда DLL-ек потребуется минимум (но есть нюансы с лицензиями), либо читать документацию к компилятору и либам, где описано, откуда что копировать для сборки дистрибутива программы. Ну и можно пойти по-тупому, развернуть виртуалку с чистой виндой (либо Windows Sandbox), скопировать туда экзешник, запустить, получить ошибку с названием недостающей либы, найти эту либу на основной системе, скопировать в виртуалку, опять запустить экзешник, получить новую ошибку и т.д, пока не запустится. Хотя это тоже может не сработать с либами, которые грузятся в рантайме через LoadLibrary, там программа может тупо крашнуться без вменяемой ошибки. Enjoy your C++.
> скопировать туда экзешник, запустить, получить ошибку с названием недостающей либы, найти эту либу на основной системе
Пиздос, ты как из палаты сбежал?
https://lucasg.github.io/Dependencies/
А я и не сбегал, мне и здесь хорошо.
>Самое то для нуба (в плюсах, но не в программировании вообще)
Для нуба в низком уровне, а не в плюсах.
Я могу добавить еще рекомендаций: все методы а так же конструкторы с деструкторами которые занимаются простым присвоением/сравнением/возвратом значений и другими незначительными операциями, писать либо в хидер класса что бы они инлайнились. Либо выписывать присвоение таких методов в отдельный исходник и вместо компиляции инклюдить прям сюда же в заголовок. Так будет убираться не только пустой деструктор но и конструктор и любой другой метод который call+ret делает дольше чем операции которые он содержит.
Как сложно найти РАБоту? Почти дочитал learncpp, последняя глава осталась. Кажется этого мало, чтобы кабанчик захотел мне платить.
Здравствуй коллега, сам сейчас в поиске работы в дс2
Если кратко то пиздос, вакансий маловато куда джунов берут. Сейчас большинство стажировок и тд закончились, набирать начнут в следующем году.
Мое резюме с оконченной вышкой, парой петов и без опыта получает отказы за отказом, даже без приглашения на разговор с херочкой
Пиши петы, дрочи литкоды, дрочи смежные темы ос сеть и прикладные области
С одними знаниями плюсов вообще никуда не уехать
Я вообще ради геймдева начал плюсы учить. На хх вакансии только в Мир Танков есть на плюсах. Ещё есть на какой-то клон сампа, но там нужен сеньор движкодел с 5л+ опытом.
> геймдев
Ну плюсы в геймдеве не сказать что самый нужный навык
Те кто делают свои движки единицы, попасть к ним будет сложновато
Остальное это вакансии как то связанные с анриалом
А что надо?
>Кажется этого мало
Бля что значит МАЛО. Ты пещерный человек что ли? Не знаешь, что существует гугол. Ну вот ты начал делать проект какой-то. И застопорился. Что тебе мешает загуглить твою траблу? Или хотя бы поискать примеры кода на гитхабе?
>Как сложно найти РАБоту?
На самом деле ОЧЕНЬ ЛЕГКО. Я не знаю почему все помешались на этом ёбанном гемдеве. Есть миллион вариантов работы на с++. Но всем именно игрульки подавай.
Ты сам то пробовал вбивать?)
>Глаза-то разуй, вбей с++ в поиск на хх.
Вбил. Да, вакансих реально дохуя.
Но есть нюанс. А именно - задачи и проекты, куда требуются С++ программисты. И знаешь что?
С++ охуенный язык. Один лучших, а может быть даже самый лучший из существующих. Но вот проекты, которые на HH.ru... Как бы это сказать... В общем, это показательно. С моей точки зрения ни одного мне интересного проекта. А с точки зрения пользы ну может быть 1ГИС.
Даже немного сожалею что полез туда - такей чувство что окунулся в дырку сельской параши. А просмотрел я штук эдак 25 ывкансий.
Параша - все кабанопроекты. Не параша только свой личный проект. Пора бы уже взрослеть.
Вот я делал свою игрушку.
И меня начало смущать, что все исходники и заголовки в папке src.
Вернее не это, а что она линейная.
Я решил сделать подпапочки и по ним распихать.
Но увидел беду. Теперь, я должен как дебил добавлять ../DirName/HeaderName
А я хочу просто DirName/HeaderName
Вот как добиться этого, не вынося все хедеры в отдельную папку для хедеров?
предположим у тебя cmake
Можешь сделать симлинк на директорию src куда-нибудь в ${CMAKE_BINARY_DIR}/include/game
В СMakeLists.txt пропишешь
target_include_directories(game PUBLIC ${CMAKE_BINARY_DIR}/include) где game - твой target
Будешь подключать хидеры везде как
#include <game/path/to/header.h>
>хидеры
Да блять, это произносится и пишется хедер, а не хидер.
Отдельно бесят уникумы, у которых query читается как кьюри.
Марья Ивановна, может трайбан поставите и я в ПТУ пойду, не буду вас мучать в следующем году...
Это жаргонный сленг, и грамматика русского языка здесь не работает.
Хочешь говорить по русски чисто используй:
- заголовочные файлы
- шаблоны
- область видимости
- (пере)выделение памяти
- стек
- поток
- ссылка/адреc/указатель
- вещественное
- - одинарной точности
- - двойной точности
- целое
- - слово
- - полуслово
- - байт
- - - знаковое(ый)
- - - без знаковое(ый)
- вызов
- - системный
- возврат
- конвейер
- - общий
- - устройств
- такт
Кути
>Это жаргонный сленг, и грамматика русского языка здесь не работает.
>Хочешь говорить по русски чисто используй:
>- заголовочные файлы
Заголовочные картотеки
>- стек
Стопка
>- вещественное
Нет таких в компьютере, есть с плавающей точкой.
>- - - без знаковое(ый)
Слитно пишется
>- конвейер
Перевозчик
>с плавающей точкой
Значение знаешь?
Число вещественное (Real Number),
а float только говно в скобочках, как говорят метематики.
Я прекрасно знаю, что это всё значит.
В компьютере нет никаких real/вещественных чисел, есть только подмножество рациональных (Q, quotient). Представление с плавающей точкой не содержит ни одного иррационального числа. Более того, там только конечные двоичные дроби.
Рациональных чисел счётное количество, действительных континуальное. Счётные множества каким-то образом ещё можно представить в компьютере, даже всё множество целиком при бесконечной памяти, а несчётные нельзя. Это легко доказывается математически.
Поэтому называть числа с плавающей точкой действительными некорректно.
Пиздец с какими даунами сижу в треде. IEEE 754 - это стандарт арифметики вещественных чисел. Через IEEE 754 невозможно рациональное число выразить. Что ты там математически доказывать собрался, студентик, если даже не знаешь о чём говоришь?
Тролить хуетой это совсем не весело.
Покажи как будет выглядеть рациональное число 1/3 в крестах, посмеёмся всем тредом.
>Пиздец с какими даунами сижу в треде. IEEE 754 - это стандарт арифметики вещественных чисел.
Ага, только в стандарте вещественные числа ни разу не упомянуты, ни в названии, ни в тексте. Исключительно плавающая точка. Беда.
>Через IEEE 754 невозможно рациональное число выразить.
Ты дурак? Число 1 рациональное. Его можно точно выразить через float? Да, можно.
Число sqrt(2) иррациональное. Его можно точно выразить через float? Нет, нельзя.
>Что ты там математически доказывать собрался, студентик, если даже не знаешь о чём говоришь?
Я не студентик, я диплом больше 10 лет назад получил. Я вот ты, видимо, вообще школьник, раз не знаешь, что любое число, выражаемое через float, является рациональным.
>Несчётность $R$ тут лишнее.
Совершенно не лишнее. При бесконечной памяти ты можешь все числа из Q записать в память, а из R не можешь, потому что ячеек памяти всё равно будет счётное количество. Только не надо про контнуальную память, пожалуйста
Гораздо интереснее задача хранения алгебраических чисел в компьютере. ЕМНИП, никто ещё не придумал, как это нормально сделать, хотя теоретически это вполне возможно. Это позволило бы сделать много методов вычисления точнее.
>>12878
Дебил, ты всё перепутал. Число 1 не рациональное. Возвращайся в школу, долбаёб.
> в стандарте вещественные числа ни разу не упомянуты
В первом же абзаце стандарта, клован:
> IEEE 754 specifies three types or Formats of floating-point numbers
> Each format has representations for NaNs (Not-a-Number), ±¥ (Infinity), and its own set of finite real numbers
> Число 1 не рациональное. Возвращайся в школу, долбаёб.
Я даже больше скажу. Число 1 гиперкомплексное.
А как 1/10 будет выглядеть в памяти компьютера?
>>12888
Несчетность тут оверкилл.
Тебе достаточно двух фактов
1) Если число выражается конечной или переодической дробью, то оно рациональное
2) обратный нему
Тогда для записи иррационального числа потребуется бесконечная непериодическая дробь. Памяти не хватит.
>>12889
Кретин, рациональные числа = дроби. $1=\frac{a}{a}$.
а, я жопой читаю. Ну при условии бесконечных ячеек да, можешь все дроби записать, а вещественные нет.
>Так ты не можешь вещественное число записать, они бесконечной непереодической дробью представляются.
Во первых речь про комплюктеры
https://en.wikipedia.org/wiki/Fixed-point_arithmetic
https://en.wikipedia.org/wiki/floating-point_arithmetic
Во вторых до появления хоть какой то поддержки хоть какого то формата вещественных чисел (а это наверное только пентиум какой нибудь), народ все равно умудрялся считать координаты на сетке и вершины на графечто бы играть в дум с музыкой. Как? да вот так
https://en.wikipedia.org/wiki/A-law_algorithm
https://en.wikipedia.org/wiki/Μ-law_algorithm
и до сих пор для компрессии данных (не только аудио но и например данных нейросетей и прочего машинного обучения) используется записывание графа целочисленными интервалами
Смешно как анон вобще не понимает о чем речь, отвечает какой то левой пастой, так ещё и искренне думает что кроме него эту инфу тут в треде видимо никто не знал
аббревиатур*
Выгнали тебя шизика от туда? Или нубские вопросы задавал в чатике для крутышей?
Вообщем написал небольшое приложение-GUI на Qt.
Там всего пару кнопок, поля для ввода, передача данных по сети через сокеты. Короче код на пару строчек(утрированно).
Собрал динамически (вышло со всем библиотеками 30Мб).
Говорят: "Дохуя, приложение небольшое и столько весит,какого хуя? как его по сети передовать"
Начал линковать статически, но на Qt это дикая ебка --> нужно весь фреймворк Qt перекомпилировать. Пробовал не получилось, там гемор.
Что делать?
какие я вижу сейчас варианты.
1)Писать на WinAPI (никогда не писал, я вообще линукоид), но разберусь.
2)Компилировать Qt статически, честно не очень хочу заниматься эти гемором.
Какие еще ест варианты?
Сделать веб интерфейс + приложение как локальнй сервер
vs
Сделать полноценное веб приложение
У тебя же не игра, нах другие варианты.
RAD Studio, бывший C++Builder, короче дельфи, но C++. Рисуешь гуи мышкой как положено, линкуется статически в экзешник на пару мегабайт. Других нормальных вариантов нет, можно еще в Visual Studio на MFC, но оно геморное писать кодом, мышкой не порисуешь.
>на Qt это дикая ебка --> нужно весь фреймворк Qt перекомпилировать
В линуксе нет системного гуи, поэтому маленьких гуевых программ не бывает, всё жирное, и естественно сборка этого добра под винду точно такая же жирная. Нормальные гуевые программы только под ОС с гуи - винду, и обязательно нативные, а не порты с линукса.
Тебе нужен supapro - чат для более приземленных вопросов. В прошке сидят скуфы обсасывающие цитаты из стандарта и обсуждающие зачем нужны юнит тесты.
Спасибо за развернутый ответ няша
>В линуксе нет системного гуи
но в винде же есть, через WinApi, я правильно понимаю?
если так, то что лучше(а точнее быстрее и проще) через WinApi или RAD Studio?
мне надо считать данные с GUI и отправить по сокету через локалку на оборудование
> а на чем писать веб-интерфейс под винду на плюсах
Не на плюсах, а на нормальном веб-стеке. Я в студенчестве был крестошизом и хотел использовать его везде - и бек и фронт и мобильные приложения и игры (скрипты не признавал впринципе) и всё что только можно. Сразу скажу что это хуевый подход и лучше так не делать.
>а на чем писать веб-интерфейс под винду на плюсах?
На node.js, оно поддерживает плюсы. Другой вопрос, зачем плюсы в веб-говне.
>>13154
Правильно. Дельфи/сибилдер используют VCL, вижуалстудия имеет MFC, это всё обертки над Winapi, то есть нативные компактные быстрые приложения. Просто VCL удобная, похоже на qtcreator, а MFC не визуальная и не удобная.
Для промки всегда делай веб приложение. Особенно для госухи где всегда любители из одной шкуры семь шапок получить.
>Другой вопрос, зачем плюсы в веб-говне.
А зачем нет. Зачем нодежс. С нодой надо будет кучу говна таскать, а на плюсах будет один бинарь, а браузер чтобы кнопки отображать у всех есть.
>Для промки всегда делай веб приложение.
я в веб-разработке не шарю, но видимо надо осваивать
вот к примеру клиент загрузил винду, открыл екзешник, ввел IP-локальный, ввел данные и пакет полетел на оборудование (условно в этом же помещении).
А если через веб-приложение, то оно все равно будет весить дохуя же, а мне надо что эту маленькую программу клиент мог отправить кому то по сети и они просто взяли ее открыли и проделали тоже самое
вообще видимо тут вариант только RAD Studio
ну и да веб тоже надо осваивать, чтобы больше такого гемора не было
>а браузер чтобы кнопки отображать у всех есть.
этот вариант хороший.
Вот написал я бек на С++ (сокеты, логика).
Сам интерфейс через бразуер будет, ОК
а как его открывать?
То есть мой с++ "сервер" должен иметь уникальный локальный IP. Клиент должен ввести этот IP в браузере и в ответ мой бек отрузит ему красивый веб-интерфейс.
так это работает?
и затем уже общение с оборудованием будет через мой "сервер"
Почему оно будет весить дохуя? у тебя будет консоное приложение - сервер что будет открывать страницу в брауере и обслуживать апи, и фронтент на html + js. Не надо всякие фреймворки тащить. Хватит HTMX, а для наведения красоты какой нибудь тайлвинд взять (это просто css фреймворк, а еще он умеет вырезать неиспользуемые классы из html во время сборки). Потом государственные мужики захотят централизованный сервер, а у тебя уже почти все для этого есть...
Щас бы на шарпе писать пром хуню во время, когда санкции наваливают каждый день на ограничение доступа к ит технологиям в промке.
>MFC не визуальная
А это тогда что?
Конечно сложный интерфейс так не сделаешь, но это анону и не требуется.
>сервер что будет открывать страницу в брауере
спасибо, что гуглить по этой тематике?
там явно же какая-то библиотека нужна чтобы при откытии екзшника у меня в браузере страничка открывалась
вообще не ебу как это происходит
Компилятор шарпа в опенсорсе, шиз. Qt так-то более анальное, чем дотнет, у которого всё под MIT.
>делай как все нормальные люди
Аргументы "всё как у людей" уровня бабки-сраки, вернись на базар семками торговать, животное.
>А это тогда что?
Это хуйня, просто ресурс винапи, тебе придется всё делать кодом, попробуй, увидишь.
Даже в гос.структурах пишут на шарпе. Из того что знаю - в Росалкотабакконтроле половина софта на нём, в Госуслугах есть некоторый софт на нём. Сейчас бы брать qt под проприетарными лицензиями и рассказывать про санкции на шарп, лол.
>>13196
> не хочу использовать подходящий инструмент, хочу пердолиться
Ясно.
вместо громоздкого QT когда надо создать что-то простенькое
>проприетарными лицензиями
Зачем? Пока у тебя не статистика и оригиналы библиотек - он бесплатный.
>2025
>30Мб).
>Говорят: "Дохуя, приложение небольшое и столько весит,какого хуя? как его по сети передовать
Вали оттуда
>>13214
А как ты тогда собрался шарп запрещать, если не лицензиями? У него так же - пока если либы дотнета, он работает. Сейчас вообще можно статично собрать в машинный код со всеми нужными либами и получить один файл, работающий везде без зависимостей. Пикрилейтед, кроме libc и winapi он ничего не дёргает.
Проблема санкций не в том что запрещают, а ты как послушный мальчик не используешь. Проблемма в тех поддержке. Сегодня есть винда, а завтра нет винды.
> завтра нет винды
Куда она денется? В обоpонке даже её используют, есть отдельная рeдакция для китайского правительства без зондов. А активировать винду в ра_шке уже давно нельзя легально.
Бля, да что тут в спамлисте?
>а завтра нет винды
Завтра нет линукса. Уже сегодня он в винде, скоро совсем исчезнет с компьютеров, будет только в виртуалках.
Наоборот, понадобилось собрать прогу, я сначала как дебил поставил убунту и там пытался в блокнотике код редактировать, такой трындец, господибоже, потом поставил ту же убунту в WSL и до сих пор стыдно за этот ламерский позор с установкой на комп. Последний раз линуксом пользовался на github actions, вот там ему и место, тыкать на кнопку на сайте и смотреть лог если сборка обосралась, Пусть работает на хрен знает каком облаке майкрософт который его и собирает и настраивает, главное чтобы мне не надо было этого дерьма касаться лишний раз, жизнь не бесконечная тратить впустую.
Сейчас любой загон с регистрацией это сёрклджерк полтора ебланов которые там обосновались и насасывают друг другу по кругу. Всех остальных модерация фильтрует, им там не рады. Этот сраный ботосайт лучшее из имеющегося, вот до чего докатились интернеты.
Все программисткие коммунити токсичные, кроме, внезапно, джавистов. И, может быть, пхп слоняр.
Что конкретно тебя там не устроило? Я зашел последние постов 30 пролистал, обычное обсуждение плюсов. Там конечно не любят когда задают вопросы, на которые есть ответ по первой ссылке гугла, но ты же такое не задаешь?
Если ты не понимаешь что там написано то я бы тем более рекомендовал туда зайти и время от времени почитывать
Зашел посмотрел. Какой-то долбоеб советует тне оставить программирование ему. Лучше уж дискорд на английском...
мимо
пиши игру мечты...
Ну как что, кресты учить.
Зачем? Язык мало того что неинтересный, так ещё и не нужен никому. Нет никаких особенностей, кроме того что к нему Александреску любовь питает.
Так и есть, так и есть.
>1)Писать на WinAPI (никогда не писал, я вообще линукоид), но разберусь.
И получишь разницу в размере в 1024 раза.
В рользу WinAPI.
>std::launder
В ответ могу только нахуй послать.
Хотя нет, не только. Еще могу стол перевернуть и ебало собеседующему набить.
И буду прав.
От 50к до 200к. Расклад примерно такой.
>И получишь разницу в размере в 1024 раза.
да я тоже уже думал написать на WinApi.
POSIX хорошо знаю, да и там разберусь
Но все таки решил на RAD Studio запилить (он же Builder).
ну и в дальнейшем двигаться в сторону GUI веб-интерфейса, как анон советует.
Да я не против и за 20к поработать, на самом деле. Потому что сейчас получаю 30к, при этом не вбивая символы в комп, а на ногах 10ч гну спину.
> прочитал учебник по c++ , а что дальше
Смотря зачем тебе ц++
Мне, вот, интересен виндовый десктоп и приходится осиливать базу из MFC, COM & ATL по древнючим книгам.
вижу следующее:
Платформа написана на C++ (Runtime), C#
Что значит Runtime на С++ - это сам движок (код) который будет выполняться при запуске игры.
А что тогда пишется на С# и зачем использовать два языка?
Visual Studio использует MFC
что тогда посоветуешь вместо?
нативный WinApi (GUI) вообще стоит изучать разработчику на С++ под винду?
Ну, смотри. Рантайм - среда выполнения. Че эт значит в контексте двигла? Это значит - что есть некоторый набор "окружения", которое будет запускать остальной код, и что-то с ним делать(скорее всего запускать и исполнять, кек). Для примера, вот есть жава, есть ее жава-рантайм, жаварантаймы - могут быть написаны на чем угодно, их цель - получить на вход "программу" на жаве в виде жавовского JAR'ника, и выполнить ее. Можешь для простоты воспринимать это как тот же интерпритатор питона, допустим, или, если когда-нибудь калькулятор на писал - твой самый калькулятор: вход какой-то текст, и погнали.
Почему она написана на плсюах - потому что плюсы - это тот самый язык, который в вузах преподают, а как мы все знаем - юнити делали 3,5 студента миску карри.
Других причин использовать плюсы - нет.
Далее. Зачем два языка. Потому что даже индус, который писал юнити - понимает, что чтобы запрогать движение твой тетрамины влево-вправо и на спейс - поворот - плюсы там не всрались. Чтобы кнопочка при ховере синенькой становилась - плюсы не всрались.
Плюсы вообще - никому кроме студентов вчерашних, которым монстра под названием C/C++ и аутистов так-то не врались.
Плюс - плюсы, в своей сути - это крайне мерзкий язык, с кучей нахуй не всравшихся возможностей, способов прострелить колено себе и остальным, и самое главное ТРЕБУЮТ ПЕРЕКОМПИЛЯЦИИ, а потому - ты, в случае если тебе просто надо скорость падения твоей тетрамины уменьшить - должен перекомпилировать все это говно, или изъебства придумывать с хотрелоадом.
Ну и да. Рантайм жс в бравзерах - тоже на плюсах написан, но ты ж не задаешь вопросы - чому бы в бравзерах анимацию дрожания кнопки не делать плюсами, если рантайм-то плюсовый.
Эти движки начинали создаваться лет 15+ назад, менять стек с таким легаси просто невозможно. Я не вижу причин, почему невозможно написать движок на жабе или сишорпе, но сейчас впринципи нет причин писать свои игровые движки.
99% игровых движков, за исключением юньки - это анриал, всякие форки квейкэнжин, и фростбайт.
Теперь разбираем.
Анриал - писался вчерашними студентами, которые ничего кроме C/C++ не знали
Квекйкэнжн - писался вчерашними студентами, которые ничего кроме C/C++ не знали
Фростбайт - писался теми же индусами-студентами, что и юнити.
Все остальное - так же пишут вчерашние студенты.
Ну камон. Ну чел. Ты серьезно думаешь, что у плюсов в игровых двиглах есть какое-то реальное преимущество, кроме того что си/плюсы шли как основной язык для вузов?
Да нихуя.
В плане перформанса - паскаль(ака дельфи), по бенчмаркам того времени - ебал плюсы во все щели по перформансу. Но борланд, ебанаты и просрали все полимеры. А в вузах, за пределами Европы - паскаль нахуй не уперся, и потому - его тупо не знали в тех же штатах.
В плане удобства - то же самое - паскаль в 90х это просто будто из 30 века спустившееся на землю чудо было. Количество фишек и лаконичность, на тот момент - охуенное.
Потом - да, ебантяи которые должны были отвечать за паскаль - просрали все полимеры.
Факт просто в том, что игрульки в плане разработки - как были, так и есть развлечение для вчерашних студентов, и ебантяев, у которых попа в детство играет. Эти студенты - не знают нихуя, кроме плюсов(их они тоже так себе знают, но хоть что-то писать уже могут).
Блядь. Да о чем говорить, если в 2024 году - на всяких геймдев конференциях говорят о юнит-тестах, как о каком-то откровении, ебать его в сраку. Прикиньте, код можно тестировать не только руками и командой из 100500 тел, которые в стену будут прыгать! Прикиньте еще, можно настроить прогон тестов при сборке, чтобы случайно обновлением новых багов не завести! И при этом большая часть крупнейших игроков рынка - все еще это нахуй шлет(понятно почему, геймеры - говноеды, и могут только в интернете плакать, как все плохо, но будут все равно отдавать деньги за свое дрочиво ебаное)
Самое показательное в плане ебантяйства геймдева - постоянные просирания исходников, которые НА ДИСКАХ И ДИСКЕТАХ хранятся. Позорище, блядь. Просто пиздец.
99% игровых движков, за исключением юньки - это анриал, всякие форки квейкэнжин, и фростбайт.
Теперь разбираем.
Анриал - писался вчерашними студентами, которые ничего кроме C/C++ не знали
Квекйкэнжн - писался вчерашними студентами, которые ничего кроме C/C++ не знали
Фростбайт - писался теми же индусами-студентами, что и юнити.
Все остальное - так же пишут вчерашние студенты.
Ну камон. Ну чел. Ты серьезно думаешь, что у плюсов в игровых двиглах есть какое-то реальное преимущество, кроме того что си/плюсы шли как основной язык для вузов?
Да нихуя.
В плане перформанса - паскаль(ака дельфи), по бенчмаркам того времени - ебал плюсы во все щели по перформансу. Но борланд, ебанаты и просрали все полимеры. А в вузах, за пределами Европы - паскаль нахуй не уперся, и потому - его тупо не знали в тех же штатах.
В плане удобства - то же самое - паскаль в 90х это просто будто из 30 века спустившееся на землю чудо было. Количество фишек и лаконичность, на тот момент - охуенное.
Потом - да, ебантяи которые должны были отвечать за паскаль - просрали все полимеры.
Факт просто в том, что игрульки в плане разработки - как были, так и есть развлечение для вчерашних студентов, и ебантяев, у которых попа в детство играет. Эти студенты - не знают нихуя, кроме плюсов(их они тоже так себе знают, но хоть что-то писать уже могут).
Блядь. Да о чем говорить, если в 2024 году - на всяких геймдев конференциях говорят о юнит-тестах, как о каком-то откровении, ебать его в сраку. Прикиньте, код можно тестировать не только руками и командой из 100500 тел, которые в стену будут прыгать! Прикиньте еще, можно настроить прогон тестов при сборке, чтобы случайно обновлением новых багов не завести! И при этом большая часть крупнейших игроков рынка - все еще это нахуй шлет(понятно почему, геймеры - говноеды, и могут только в интернете плакать, как все плохо, но будут все равно отдавать деньги за свое дрочиво ебаное)
Самое показательное в плане ебантяйства геймдева - постоянные просирания исходников, которые НА ДИСКАХ И ДИСКЕТАХ хранятся. Позорище, блядь. Просто пиздец.
>Эти движки начинали создаваться лет 15+ назад
да и современные все на плюсах пишутся
на расте и зиге может быть еще парочка написаны
>>14237
>что у плюсов в игровых двиглах есть какое-то реальное преимущество
конечно нет, просто вся индустрия решила писать ВСЕ движки на плюсах, надо бы им рассказать что движок можно писать на питоне джаве и шарпах чтобы они все посмеялись с тебя
> Все остальное - так же пишут вчерашние студенты
очень интересный тезис, жаль ничего общего с реальностью не имеет
Какой же ту пиздец тупой. Просто даже слов не подобрать.
1. Индустрия "РЕШИЛА" писать движки на плюсах, потому что, блядь, в 99% того что использует "индустрия", ты найдешь корни id-tech, потому что эти черти - раздавали свой движок во все стороны, куда только можно. Реально свои движки - были у единиц.
2. Ты просто на средний возраст разработчика из "индустрии" посмотри. 30 лет в гейдеве разработчик - это в большинстве случаев нонсенс. Разрабы - это сплошь хуилы, которые в лучшем случае коммунити каледж закончили.
3. Преимуществ писать даже движки на плюсах - нет о слова совсем. Ну просто нет их.
Не слушай дебилов. Игровой движок нельзя написать ни на чём кроме крестов. Игры требуют низкоуровнего доступа к графике, звуку, вводу, да и в целом операционной системе. Все эти апи - сишные/плюсовые, иначе быть не может, это простой факт. Так что написать игровой движок например на шарпе нереально, у шарпа тупо нет доступа, придется дичайше изъебываться для каждой пиздюльки, и то многое не выйдет в принципе. А про качество работы такого высера лучше даже не представлять, это будет дичайшая абоминация. Всё что не кресты это лишь скрипты управляющие движком, но не сам движок, так не бывает.
> Анриал - писался вчерашними студентами, которые ничего кроме C/C++ не знали
Ахуительные истории рассказываешь. На мент первого инриала это был самый технологичный движок, там даже и не пахло студентами, его писали олды. Сейчас в команде уе сидят топовые кодеры геймдева, бабла в разработку двигла влито больше чем в ААА игры. И там например прекрасно знают шарп - на нём их собственная система сборки написана.
> Квекйкэнжн - писался вчерашними студентами
И именно поэтому это был самый технологичный движок своего времени? Где таких студентов искать?
> В плане удобства - то же самое - паскаль в 90х это просто будто из 30 века спустившееся на землю чудо было.
Даже в нулевых паскаль был диким говном. Он сдох не из-за борланла, а потому что был никому ненужным говном. Ты бы ещё про перл вспомнил. Если язык хороший и интересен людям - в опенсорсе без проблем пишут свой компилятор, а то и не один. Тот же хачкель два компилятора имеет, один вплотную к сишке по производительности, оба написаны энтузиастами.
Чтобы меньше пропуков было при рендеринге это разве не причина? Индустрия решила что вычислять изменения на экране - это хуйня и такое видимокарточки не поддерживают. Поэтому надо из кормить одним и тем же 60 раз в секунду минимум. А у видимокарточки еще и ротик маленький. Поэтому надо быстро быстро работать чайной ложечкой.
мимо
На расте разве не писали что то? Толи аметист толи ещё как то назывался .
Я же даже мемы слышал что игровых движков на расте написано больше чем самих игра на расте
>>14285
> 1
Дохуя движков писалось с нуля без помощи ид
> 2
Студентов которые пишут не на плюсах не существует?
Где студентов джависты/шарписты с их движками?
> 3
Какие альтернативы предлагаешь? Раз нет преимуществ значит есть япы у которых их множество. Приведи пару примеров языков и их преимуществ для движков
Про мемы смешно конечно, но я тебе скажу лично, пишу простые приложения под винду на шарпе, ничего особенного, но надо делать простейшие мелкие вещи, и в шарпе нихуя нет, приходится лезть в винапи, а поддержки-то нет, там надо каждую залупу вручную переопределять, такой гемор. Тупой бред, дикость страшная, когда в крестах просто берешь и пользуешься готовым. И это лишь самые примитивнейшие сишные винапи функции, а в играх куда более заёбные вещи используются, там повешаешься, даже представить страшно. А если вспомнить что шарп язык динамический со сборкой мусора, получаешь непредсказуемые баги из за непредсказуемости исполнения кода.
> Чтобы меньше пропуков было при рендеринге это разве не причина?
Ну, смотри. Давай вспомним железо какой-нибудь ноклы из начала нулевых. И вспомним, что там была жава. Если какие-то пиздецкие преимущества от плюсов имелись - зачем тогда игрульки и остальные приложения - уже тогда на жаве писали там? Просто потому что там - еще не было уже наговнокожено студентами. Потому - можно было взять и с чистого листа начать.
С бравзерами - тоже можно вспомнить эпоху флеша. Когда так же, не было кучи говнолегаси, и охунно на акшонскрипте писались игры.
>>14291
> На мент первого инриала это был самый технологичный движок
> И именно поэтому это был самый технологичный движок своего времени
Чтобы писать технологичные вещи - не обязательно быть каким-то там олдом или еще кем-то, лол. Достаточно иметь доступ к статьям и прочему. Тот же Кармак - вполне честно рассказывал, как "придумал" использовать bsp - спиздив идею из статьи, которую прочитал. А bsp - не в гейдеве - уже хуй знает сколько лет использовали. Гейдев - вообще такая хуйня, которая относительно компуктурных технологий отстает всегда. Ведь чтобы делать игрульки - не технологичность нужна, а чтобы всякие дети просили родителей купить им.
> Даже в нулевых паскаль был диким говном
Именно потому, дельфи - до сих пор никак сдохнуть не может по всей европе.
Дельфи - как раз преподавали в вузах европы, ну и у нас. И на нем наговнокодили дохуя и больше.
И как язык - оно было заебись. Лучше си-плюсов того времени. Но РЫНОЧЕК ПОРЕШАЛ, потому что с одной стороны - появилась жава, с другой - плюсы, а борладны сиськи мяли.
>>14294
> Дохуя движков писалось с нуля без помощи ид
Если говорим про ИНДУСТРИЮ, то нет. Id'шный движок лицензировался во все стороны, все кто только можно его использовали, или анриал. Если говорить про запад.
Нихонцы - до ПС4 - писали на си/ассемблере, лол.
А если про самое большой рынок игр(мобилки) - там до того как туда влез анриал с юнькой - как раз на жаве и писали.
> Студентов которые пишут не на плюсах не существует?
Когда актуальна была разработка движков - вузы США и их саттелитов преподавали си/сиПэПэ,
Сейчас - разрабатывать движок студенту - не особо целесообразно. Ну, вот разработаешь ты его. Че дальше? Никому оно не всралось. Дохуя работы проделано. Даже если это будет лучший движок в истории движков - миллиард макак, которые на анриале блюпринтами ворочают - ты не пересадишь на свое. Будет валяться где-то на гитхабе и сдохнет бесславно.
> Где студентов джависты/шарписты с их движками?
Движков на жаве-шарпе полно, просто они никому не всрались. Потихоньку гниют, или перепрофилируются под ВР какой-нибудь или для всяких индустрий закрытых(те же скады-хуяды, цифровые двойники, прочая залупень индустриальная)
А студенты массово - просто идут в нормальную АйТишку. Кранчить за лоупрайс, когда можно не кранчить за хайпрайс - это таки нормальное поведение.
> Какие альтернативы предлагаешь?
Литерли - любой язык не будет хуже плюсов, если кококодер имеет возможность контролировать сборку мусора и возможность пользоваться сишным abi.
> Чтобы меньше пропуков было при рендеринге это разве не причина?
Ну, смотри. Давай вспомним железо какой-нибудь ноклы из начала нулевых. И вспомним, что там была жава. Если какие-то пиздецкие преимущества от плюсов имелись - зачем тогда игрульки и остальные приложения - уже тогда на жаве писали там? Просто потому что там - еще не было уже наговнокожено студентами. Потому - можно было взять и с чистого листа начать.
С бравзерами - тоже можно вспомнить эпоху флеша. Когда так же, не было кучи говнолегаси, и охунно на акшонскрипте писались игры.
>>14291
> На мент первого инриала это был самый технологичный движок
> И именно поэтому это был самый технологичный движок своего времени
Чтобы писать технологичные вещи - не обязательно быть каким-то там олдом или еще кем-то, лол. Достаточно иметь доступ к статьям и прочему. Тот же Кармак - вполне честно рассказывал, как "придумал" использовать bsp - спиздив идею из статьи, которую прочитал. А bsp - не в гейдеве - уже хуй знает сколько лет использовали. Гейдев - вообще такая хуйня, которая относительно компуктурных технологий отстает всегда. Ведь чтобы делать игрульки - не технологичность нужна, а чтобы всякие дети просили родителей купить им.
> Даже в нулевых паскаль был диким говном
Именно потому, дельфи - до сих пор никак сдохнуть не может по всей европе.
Дельфи - как раз преподавали в вузах европы, ну и у нас. И на нем наговнокодили дохуя и больше.
И как язык - оно было заебись. Лучше си-плюсов того времени. Но РЫНОЧЕК ПОРЕШАЛ, потому что с одной стороны - появилась жава, с другой - плюсы, а борладны сиськи мяли.
>>14294
> Дохуя движков писалось с нуля без помощи ид
Если говорим про ИНДУСТРИЮ, то нет. Id'шный движок лицензировался во все стороны, все кто только можно его использовали, или анриал. Если говорить про запад.
Нихонцы - до ПС4 - писали на си/ассемблере, лол.
А если про самое большой рынок игр(мобилки) - там до того как туда влез анриал с юнькой - как раз на жаве и писали.
> Студентов которые пишут не на плюсах не существует?
Когда актуальна была разработка движков - вузы США и их саттелитов преподавали си/сиПэПэ,
Сейчас - разрабатывать движок студенту - не особо целесообразно. Ну, вот разработаешь ты его. Че дальше? Никому оно не всралось. Дохуя работы проделано. Даже если это будет лучший движок в истории движков - миллиард макак, которые на анриале блюпринтами ворочают - ты не пересадишь на свое. Будет валяться где-то на гитхабе и сдохнет бесславно.
> Где студентов джависты/шарписты с их движками?
Движков на жаве-шарпе полно, просто они никому не всрались. Потихоньку гниют, или перепрофилируются под ВР какой-нибудь или для всяких индустрий закрытых(те же скады-хуяды, цифровые двойники, прочая залупень индустриальная)
А студенты массово - просто идут в нормальную АйТишку. Кранчить за лоупрайс, когда можно не кранчить за хайпрайс - это таки нормальное поведение.
> Какие альтернативы предлагаешь?
Литерли - любой язык не будет хуже плюсов, если кококодер имеет возможность контролировать сборку мусора и возможность пользоваться сишным abi.
Неправильно.
> Нихонцы - до ПС4 - писали на си/ассемблере, лол.
А потом перешли на плюсы, тоже ид насрали?
> Когда актуальна была разработка движков - вузы США и их саттелитов преподавали си/сиПэПэ,
Ох уж эти студенты, запрещали другие япы учить
> Движков на жаве-шарпе полно, просто они никому не всрались.
Есть хоть один работающий? Джава и шарпы пару лет назад появились?
За столько времени могло появится огромное количество работающих движков
> А студенты массово - просто идут в нормальную АйТишку.
Ага, а вот раньше каждый второй был геймдевом, да? Веб появился пару лет назад наверное, до этого вся айтишка на играх держалась
> Литерли - любой язык не будет хуже плюсов
Джава будет хуже, шарпы будут хуже, питон будет хуже и все остальные
Если у тебя нет примеров реальных языков с преимуществом то считай что ты в лужу пукаешь
> если кококодер имеет возможность контролировать сборку мусора
То есть вырубить ее нахуй и самому все чистить?
Признайся, ты же троллишь?
Для ноклы все самое мощное писалось на плюсах под симбиан. Я даже помню какое отношение было. Фу jme! Ого Симбиан!
> А потом перешли на плюсы, тоже ид насрали?
Кто-то перешел на плюсы, некоторые на инхаус решениях сидит.
> Есть хоть один работающий?
Зайди на википедию или гитхаб да посмотри. Полно. Но они нахуй никому не сдались, потому что ты, за пределами дома что-то сделать или для геймджема какого-то нихуя больше применить знания этих движков не сможешь.
Плохие ли это движки - да не то чтобы.
> За столько времени могло появится огромное количество работающих движков
Их и так огромное кол-во.
> Ага, а вот раньше каждый второй был геймдевом, да
Не каждый второй, но это было более распространено из-за романтики самого гейдева. Вот, ты игрался в змейку, а теперь ты сам игры делаешь. Мечта, нахуй.
> Джава будет хуже, шарпы будут хуже, питон будет хуже и все остальные
Чем, лол? Плюсы - ни в чем не лучше этих языков, для разработки движка. Чтобы сделать дроукол через апи деректикса/опенгл - никаких плюсов не нужно, чтобы проиграть sfx через звуковое апи - тоже, чтобы отправить пакет по сети - нахуй не нужны плюсы. Физон - 99% игр никакого физона не имеют.
Давай, поясни, что тебе плюсы в плане движка дадут-то?
> некоторые на инхаус решениях сидит.
Кто и на каких решениях?
> Зайди на википедию или гитхаб да посмотри. Полно. Но они нахуй никому не сдались, потому что ты, за пределами дома что-то сделать или для геймджема какого-то нихуя больше применить знания этих движков не сможешь.
Я конечно скажу сумасшедший мысль, а игры на этих движка кто то писать собирается?
Понятное дело если студент на втором курсе решил что напишет свой анриал, на пол пути пукнув после себя оставляет нерабочий репозиторий на гитхабе
На твоих движках пишут игры? На твоих движках хоть что то делают?
> Их и так огромное кол-во.
Так покажи их, хоть какой то который будет не выглядеть не как полузаконченная лаба студента
> Не каждый второй, но это было более распространено из-за романтики самого гейдева. Вот, ты игрался в змейку, а теперь ты сам игры делаешь. Мечта, нахуй.
Статистика взятая из головы
> Физон - 99% игр никакого физона не имеют.
Бля, каждый пост все более шизойдный и шизойдный
> Чем, лол?
Тем что они медленнее в разы
Тем что ты не управляешь памятью, попробуй на джава что то на стекле выделить
Тем что в этих япах на уровне апи даже не предполагается что кто то захочет в контейнерах аллокатор поменять
Тем что в этих языках ты хуй что векторизуешь
Тем что в игровом движке тебе надо нахуй gc выкинуть и управлять всей памятью руками, а оказывается что во многих языках это либо нереально, либо гемор больше чем в плюсах
Да уж не говоря о том что половина языков даже не компилируемые
Туда же модель многопоточности и памяти
Ты хоть представляешь количество оптимизаций которые ручками делают на плюсах, которые на большинстве языков вообще нереально сделать?
> некоторые на инхаус решениях сидит.
Кто и на каких решениях?
> Зайди на википедию или гитхаб да посмотри. Полно. Но они нахуй никому не сдались, потому что ты, за пределами дома что-то сделать или для геймджема какого-то нихуя больше применить знания этих движков не сможешь.
Я конечно скажу сумасшедший мысль, а игры на этих движка кто то писать собирается?
Понятное дело если студент на втором курсе решил что напишет свой анриал, на пол пути пукнув после себя оставляет нерабочий репозиторий на гитхабе
На твоих движках пишут игры? На твоих движках хоть что то делают?
> Их и так огромное кол-во.
Так покажи их, хоть какой то который будет не выглядеть не как полузаконченная лаба студента
> Не каждый второй, но это было более распространено из-за романтики самого гейдева. Вот, ты игрался в змейку, а теперь ты сам игры делаешь. Мечта, нахуй.
Статистика взятая из головы
> Физон - 99% игр никакого физона не имеют.
Бля, каждый пост все более шизойдный и шизойдный
> Чем, лол?
Тем что они медленнее в разы
Тем что ты не управляешь памятью, попробуй на джава что то на стекле выделить
Тем что в этих япах на уровне апи даже не предполагается что кто то захочет в контейнерах аллокатор поменять
Тем что в этих языках ты хуй что векторизуешь
Тем что в игровом движке тебе надо нахуй gc выкинуть и управлять всей памятью руками, а оказывается что во многих языках это либо нереально, либо гемор больше чем в плюсах
Да уж не говоря о том что половина языков даже не компилируемые
Туда же модель многопоточности и памяти
Ты хоть представляешь количество оптимизаций которые ручками делают на плюсах, которые на большинстве языков вообще нереально сделать?
В частности, если возможно, хочу ускорить саму сборку проекта. Пока прочитал, что можно создать прекомпилированные хедеры, поиграться с модулями когда перейдем на С++20 и что-то ещё.
Сам проект на С++, собирается симэйком, стандарт вообщем. Подскажите, может есть ещё что, что можно применить?
Повыность что можно в отдельные шаред либы.
> эмбеддед
> куда большей зарплатой
лол
> В геймдев идут только неучи
по твоей логике вобще в плюсы идут только неучи, потому что в других местах в индустрии платят больше
В плюсах вполне себе достойные зарплаты, если не работать в аналоговнетных компаниях и геймдеве. ФААНГ европейский если что прямо сейчас плюсовиков ищет, в гуголе мидлам 7к евро на руки платят - больше чем senior graphics programmer в EA в великобритании. При том что на собесе даже каких-то доменных знаний не нужно, стандартные фаанговские интервью с алгосекциями, сисдизом и бихейвиролам. Вот представьте себе опытного программера 10+ лет опыта из Польши, который между оффером в гугл на 110к евро и cd projekt red на 70к евро выбирает второе, кранчит, выслушивает требования отбитых дизайнеров и мидлманагеров, и днями пердолит легасную проприетарную поделку с 3 слоями кодгена, которую все гордо именуют "движок".
Эмбедщикам в Европе если что тоже достойно платят, не на уровне hft конечно, но вполне себе средняя по рынку
>В плюсах вполне себе достойные зарплаты
чел, мне очень интересно твое МНЕНИЕ, но есть факт в виде статистики
в плюсах платят меньше чем во многих других сферах
> В геймдеве сидят самые отбитые на голову программисты
Я примерно про это же и говорю.
Там либо ебантяи с жопой в детстве, которые ИГРЫ ХОТЯТ ДЕЛАТЬ, ума допереть, что программер там - это сорт водопроводчика, а игру делают дизайнеры, художники и прочие нормальные люди - ему не хватает, ведь все знания об области у него из статей в духе игромании, где сказали: ну, программисты короче, они там коды пишут, и игра получается.
Либо те кто от скуки делал что-то параллельно основной работе - и иногда это выстреливает(сорт оф нотч и прочие).
Либо вчерашние студенты, которые на саммер вакатион - вкатились после какого-то буткемпа, из-за того что никуда в нормальные места не смогли проскочить.
Причем тут статистика? В целом да, если опытный плюсовик зарабатывает меньше фронтендера то он неуч, хули тут думать.
> Причем тут статистика?
У меня пост буквально состоит из двух строчек, напряги извилины хоть немного
Ладно, давай еще раз
>по твоей логике вобще в плюсы идут только неучи, потому что в других местах в индустрии платят больше
Правда. Туда где платят меньше рынка идут только неучи. Нормальные программисты ищут места где платят сытнее. То что "в среднем" зарплата у плюсовиков меньше (мне лень проверять так ли это) означает что неучей стремящихся во всякий геймдев и НИИ в этой сфере больше.
> Туда где платят меньше рынка идут только неучи.
При этом в плюсах платят меньше
Значит тут тред неучей, вы зачем в плюсы пришли?
Если чел долго учился и мало зарабатывает то он лох, но не неуч. Если чел мало учился то он неуч, но не лох. Если чел мало учился и много зарабатывает, то он ероха
Так я и не иду туда где мало платят, у тебя проблемы с логическим выводом или что?
Ты тупой и реально не понимаешь что статистика значит? Не неуч, загугли уже распределение зарплат по языкам
Или ты реально думаешь что топ плюсерам платят больше ВСЕХ по рынку?
>Или ты реально думаешь что топ плюсерам платят больше ВСЕХ по рынку?
Ну да, так и есть. FAANG + NVIDIA, HFT и хедж фонды это топовые зарплаты на рынке программистов, выше разве что в каком-то Blackrock платить будут. Только я не понимаю почему ты опираясь на статистику записываешь всех плюсовиков в лохов? Что ты хочешь сказать? Если выбрал сферу где средняя зп меньше то ты неуч, даже если получаешь в 3 раза выше этой средней?
> FAANG + NVIDIA, HFT
Я тебя наверное удивлю, но на зарплатных пиках в этих кампаниях не плюсовики ты в каком манямире вобще живешь?
> Если выбрал сферу где средняя зп
как насчет посмотреть на другие параметры статистики, например на распределение?
> даже если получаешь в 3 раза выше этой средней?
сз = средння зарплата
сз гошера > сз плюсовика
3-х кратная сз гошера > 3-х кратная сз плюсовика
> Только я не понимаю почему ты опираясь на статистику записываешь всех плюсовиков в лохов?
Извини меня, а как ты определяешь в какой сфере ты будешь получать больше? По погоде? По картам таро?
Ты мне говоришь что зарплаты плюсовиков выше чем у кого либо другого, ты на основе чего это говоришь?
через несколько лет всё соевое говно с сайтоделием и разработкой воздуха в виде банковских приложений схлопнется, и останится только эмбед.
Ага, смейся. Почитай, что такое bullshit jobs. Абсолютное большинство т. н. софтваре инженеров как раз этим и занимаются, т. е. не умеют абсолютно нихуя и не обладают компетенциями. То, что они хорошо оплачиваются, это такой своего рода прикол, который скоро всем надоест. Отсюда и этот копиум-кейдж, в котором сидят эти макаки, рассказывая друг-другу про то, что вышка не нужна, не нужны вообще никакие компетенции и можно вкатиться с улицы.
>как насчет посмотреть на другие параметры статистики, например на распределение?
Ладно ты заебал меня со своей статистикой, я реально зашел и посмотрел. Где?
> java top 10% 180k
> django top 10% 187k
> c++ top 10% 189k
то есть буквально на фреймворках для макак платят сопоставимо, а ведь еще приплюсовываем сюда что плюсовиков меньше, а еще что это стата по штатам
делаем вывод: не лохи и с++ отличный вариант для зарабатывания бабла
>для зарабатывания бабла
Главное не ввязятся в геймдев или аналоговнетный бизнес от ИП Маркирасян, а становиться software engineer, учить англюсик и сисдиз.
Это из разряда 640 килобайт. Пока автоматизация автоматизации только уменьшает производительность труда.
>В геймдеве сидят самые отбитые на голову программисты
>Я примерно про это же и говорю.
Ты скозал?!
В отличие от вас дебилов-крудошлепов, у них хоть идея какая то своя есть. Пусть кривая и косая но своя. А вы выучили шаблоны для макак и считаете что делаете что то важное, хотя по сути генерируете говнокод. Поссал Вам на ебало.
Мимо SQL-орангутанг
Нативный (cjdhtvtyysq) у них сейчас на моно и электроне.
Qt Widgets, WxWidgets если тебе нужен классический гуй.
Сейчас сишарп стало модно прекомпилировать в с++
что бы не носить с собой рантайм.
I2СPP или как то так оно называется.
Это костыли из юнити. В шарпе уже есть компиляция сразу в машинный код.
>> Дохуя движков писалось с нуля без помощи ид
>Если говорим про ИНДУСТРИЮ, то нет. Id'шный движок лицензировался во все стороны
Поридж вещает тупость как обычно. Да, дебил, да, когда вышел дум поперла волна думоклонов, каждая собака делала свой думоклон и все они были сделаны самостоятельно, никаких движков не было и думовсекий никто не использовал, кроме Raven Soft.
Куски id'шного двигла считай во всех игрульках от активижн, половине игрулек от ea до того момента как они решили фростбайт пилить, в сурсе - куски id'шного двигла. Из крупных разработчиков-издателей - только убисофт вроде и не шкварились об id'шный движок.
Но да. Все, блядь, писали с нуля. Ведь в индустрии - ебантяи, которым делать нехуй, только блядь, писать движки, вместо того чтобы к рождеству релиз успеть сделать, чтобы в сезон подарочков мамки купили дитятку игрульку.
Блядь. Я криворукое хуйло, не смог полноразмерную картинку запостить(
Други тут такое дело. Очень хочу навасянить в kigo чтобы при каждом ходе проигрывался звук но не знаю как ибо в Qt ничего не понимаю. Если у кого есть время может подскажите какую строчку куда вписать?
https://github.com/KDE/kigo/tree/master/src/gui
Вот кстати целый гайд как легаси софт на MFC в Wxw портировать:
https://www.youtube.com/watch?v=f3wgn6vP_XQ
Тебе эти библиотеки-прослойки не нужны, но ты можешь посмотреть аналоги функций api которые ты уже выучил.
Легаси на MFC надо просто пересобрать с новым MFC если уж так надо надо, нафига куда-то портировать, тем более на васянство. Не скажу ничего плохого про wxWidgets, но на винде оно не нужно, всё равно убогая васянка, документации нет, поддержки IDE нет, и всё такое прочее. Пердулькать в блокнотике методом тыка, вот что настоящее легаси, давно мертвое кстати.
Васянокодинг это как раз напяливаться анусом на проприетарные гуи скаченные с торрентов не читая лицензий, условий и законности передачи/публикации иcходников.
Я как раз предлагаю легальное ПО для разработки классик гуя для винды и не только.
> operator[](index)
> auto a = begin() + sindex; a < end(); a++
второй в моем случае предпочтительнее так как у индекса тип меньше чем size_t.
Изначально так и было, но из за того что
от него очень много кто зависит пришлось вынести его вверх что бы компилятор не ругался на неполный тип и было принято решение убрать все операторы конструкторы, просто сделать вектор расширеный буквально двумя методами.
В D реализовано, а в плюсах классы это сахарок над структурой.
С++ноны, у меня есть вопрос, учил плюсы ради алгосов(хотел на олимпиады школьные попасть и т.п), но меня это заебло, из плюсов знаю только базу по стл и ООП, посоветуйте куда дальше разиваться и чему мне еще надо научиться для настоящего плюсовика?
>посоветуйте куда дальше разиваться
в геймдев
>чему мне еще надо научиться
системные апи (винапи\посикс)
графические апи(вулкан\директх)
анреал
спасибо тебе добрый анон!
Я тот субботний анон, что вопрошал советы по GUI для Виндовс
Коротко суть:
Сам я линуксошиз, байтоёб.
На работе дали задание запилиит небольшое ПО под винду.
Там минимум GUI, сокеты и отправка команд на оборудование по локалке.
Сказали, делать на QT. Все сделал быстро , работает заебок.
Затем толдычат, дохуя весит (40 Мб лол), делай в один екзешник.
Но если QT, то это надо пересобирать весь фреймоврк в статику...
Скомпилил (1.5 часа на 4 ядрах), гемор.. собирается, но при запуске, не сходится уже со стандартными либами. Короче забил.
да и "сроки" ебут.
В субботу аноны посоветовали RAD Studio (Builder) или в микросервисы делать (веб-интерфейс).
Потыкал и то и то вечером. Второй подход заебок, интересный, но на работке скипнут.
Вообщем сегодня начал перепиливать на RAD Studio. Вроде норм фреймворк, но документации, примеров почти нет (или есть на делфи).
В std::out, error сообщения вывести я хз как. Wireshark еще нихера не отображает, но времени с ним разбираться уже не было.
Нихера не понимаю, что уходит, что приходит. Данные не выводятся. Тупо тыкаю уже, копи паст, лишь бы хоть что-то заработало
Чую меня скипнут,возможно даже завтра - типа лох с таким заданием не справился,ну или я сам их нахуй пошлю.
Так то жалко конечно, но с другой стороный найду другую, главное чтобы деньги заплатили, что официально по тд идут.
Ну а вообще настроение пиздец паршивое и кажется завтра я снова облажаюсь. Так то понимаю, что это во многом это все из-за суеты.
По-хорошему надо сесть спокойно, разобраться. И вот даже не знаю, грустить или радоваться в случае чего.
> В std::out, error сообщения вывести я хз как.
Как вариант, можно взять винапишную WriteConsole(), либо записывать в файл.
> Wireshark
Если подключаешься к локальному сокету, помнится, там был нюанс, что без установки специального адаптера перехватить ничего не удастся.
Бля я хз, я не шарю за вижул студию.
А так да, аноны писали про МФЦ. Но но говорят типа там все Gui от руки надо писать.
Завтра по дороге на работку посмотрю видосик про МФЦ. Походу это единственный вариант, который у меня остался. А советы там как? Winsock?а то я сегодня и советы в билдере нативные писал.
Пиздос, я бы тебе даже унитаз помыть не доверил.
40 мб - это можно взять 2D-игровой движок и сделать гуй на встроенном фреймворке гуя, будет и то меньше весить.
Можно на winapi - будет меньше 1 мб весить.
Можно на imgui - будет 3-5 мб.
Можно на дотнете - те же 40-50 мб в статичном билде.
MFC лучше не трогай, это пиздец кал.
Веб-парашу не бери - она требует веб-вью в системе или 100 мб хрома, лучше уж дотнет.
Алсо, куте не должно больше 25 мб весить, если просто пара окошек.
Я думал про винапи, я вообще люблю все нативное. Но думал что буду долго в нем разбираться.
CheckBoxы я тебе как на винапи буду делать или радибуттоны
Чел, прокачивай софтскиллы.
Тебе нужно просто пояснить начальству что на винде меньше не будет ибо дотнет весит столько же при этом он не кросс-платформенный, а если писать на винапи то кто будет эту прогу поддерживать? Ты то конечно сможешь на винапи но где они потом будут тебе замену искать. Про Рад вообще смешно учитывая его стоимость, сразу нет, ты же не пират какой-нибудь.
С 2002 по 2016, лол.
Ну ладно, уже кросс-платформенный. Тогда тем более на нем надо и писать, а не на винапи и прочем.
>Я думал про винапи, я вообще люблю все нативное
Работа с гуем на винапи - это рвота кровавым поносом. Сообщения летят куда попало, типа нотифай в wndproc родительского окна, что в нем нажата кнопка, что за кнопка и client_data (= this / self) - выдергивай из lParam / wParam. Да, а еще эту client_data / this / self можно захуячить через кастомные свойства окна типа SetWindowLong. Буээээээ. Это только в кресты перезашивать, иначе пиздец. Оно просто не предназначено, чтобы сложные интерфейсы на нем делать.
>Оно просто не предназначено, чтобы сложные интерфейсы на нем делать.
Как ассемблер не предназначен для сложных программ, но все программы всё равно сводятся к ассемблеру без которого никуда, это база, основа всего. Вот и с винапи та же история, это железная идеальная основа для всего, но это не значит что надо на ней делать всё. Кое что слишком трудоемко, для этого и существуют в случае гуи библиотеки-обертки. В голый винапи надо лезть когда в обертке что-то не сделано, такое происходит часто, ибо винапи это бог, он описывает всё сущее, начиная от каждой живой твари и заканчивая каждой песчинкой и даже воздухом вокруг. Никакая обертка такое не воспроизведет никогда, они все очень серьезно ограничены.
И тут я напоминаю, что данный интерфейс - сишноплюсовой, остальные языки соответственно пролетают, а значит сосут бибу на уровне жалких оберток. Но если на крестах можно обратиться напрямую мимо обертки когда её возможностей не хватает, то другие языки сами по себе обертки и никуда ты не денешься с подводной лодки, навечно ограниченный калека.
А как же тогда современные кросплатформенные гуи на opengl работают? Они же сами все рисуют кроме бордера окна с заголовком и ивентов. Майки сами наверно жалеют что встроили гуй в систему. "База" от которой вся система висла на мертво, когда DVD вставляешь. Поэтому на веб все переписали, а винапи твое только для совместимости еще живет.
> современные кросплатформенные гуи на opengl
Какие же они современные, если используют графическое API чуть ли не старее winapi.
> вся система висла на мертво, когда DVD вставляешь
А при чём тут гуй? Это проводник не умеет в асинхронное IO, а не гуй. У winapi всё в порядке с многопоточностью.
> Поэтому на веб все переписали
Кто переписал? В винде сейчас нативный гуй - WinUI 3. Веба нигде нет.
Почитал https://learn.microsoft.com/en-us/windows/apps/winui/
Но почему тогда говно из Microsoft Store выглядит как вебговно, а не нативно? Огромные произвольные падинги, огромные кнопки и меню как в вебе.
Как ты умудрился по дизайну определить реализацию?
Ну короче понятно. Это в майкрософте от современных тенденций в линуксе заразились https://fluent2.microsoft.design
Хотя можно понять этот трюк. Из-за обилия экранов разных разрешений стало трудно поддерживать старый "плотный" интерфейс. Поэтому везде понапихали пустого пространства.
Пидоры. Откуда эти ебучие дизайнеры вообще знают, как мне надо? Мне может надо, чтобы было одинаково (но по десктопному) на десктопе и мобиле, а в кнопочку я палочкой попаду уж как-нибудь сам и их это ебать не должно. Перебрал как-то десяток ssh-клиентов для ведроида, потом вспомнил - еба! А нет ли FileZilla под него? Оказалось, есть, но прога полностью угроблена в сторону мобильного интерфейса, то есть, просто переделана по-уебищному, одно название осталось, и там люди в комментах в play store плюются от этого.
Я не про это, а про то что для разных девайсов нужен принципиально разный интерфейс. Иначе поешь говна в обоих случаях, если только ты не любитель двухкнопочной мобильной параши без пкм и хоткеев.
"Юзер может пользоваться нашим гуём на любой платформе, если эта платформа – десктоп."
– Генри Форд
Перепиши на Tcl/Tk чтобы они офигели и больше не приставали.
Кроссплатформенность это не кроссэргономика, это про возможность собираться и рисовать одни и те же окна с кнопками независимо от операционной системы.
>А как же тогда современные кросплатформенные гуи на opengl работают?
Так же как вебня, кроссплатформа означат скриптомакакинг.
Видишь, ли, не существует кроссплатформенных программ, это противоречие мулитиплатформа не программы, а ограниченные "приложения" уровня вебни и сама вебня. Когда пишется не под операционную систему, а под некую абстрактную "виртуалку", и не важно какую, хоть браузер, хоть Qt, это не программа, а обгрызенное приложение. Макака пишущая приложения не знает систему под которую пишет, ей плевать, это совсем другой менталитет и парадигма написания кода, чем программист пишущий программу под систему. Программист управляет машиной, это тонкий специалист как часовой мастер, а макака с мультиплатформой это скриптовик срущий кодом который он сам не понимает как работает, и ему норм, ему похуй, скрипты на то и скрипты, что насрать как они работают, главное чтобы результат выдавали как-нибудь.
Так что, если ты видишь таких
>>15847
>системное апи такое говно, ебля, фу!
знай, перед тобой макака, обычный индус.
Размер дистрибутива это шиза какая-то, а скорее просто предлог чтобы деньги не заплатить. В госучереждениях как не странно прицип действует "без лоха и жизнь плоха". Могут доебаться до несущественнх вещей, чтобы нагреть на бабки., а потом судись с гос учреждением.
>арря ты индус
Тут всего два варианта - либо ты не делал на WinAPI (или на Xlib - прыщеиндусы тоже бывают) ничего сильно сложнее Hello World, либо тебе нравится сам процесс разработки говна в собственном очке.
>Когда пишется не под операционную систему, а под некую абстрактную "виртуалку"
ОС - это просто слой абстракции, такая же "виртуалка". WinAPI - кусок древнего кала. Ни один нормальный человек под это писать не будет, особенно в 2024, когда винда особого веса уже не имеет, как было в 2004.
Да. Есть Авалония - кроссплатформенный WPF, работает на линуксе/винде/маке/мобилках/WebAssembly. Есть MAUI от майков, работает на винде/мобилках/маке.
https://www.avaloniaui.net/
https://dotnet.microsoft.com/en-us/apps/maui
>их убогое индусское webapi
>наше православное sperm32api.dll
Каким образом дрочка высокоуровневых функций тебя делает выше макаки?
Это уже не говоря о том что webapi это открытый стандарт который разрабатывает консорциум, а выньапи высирал индус на аутсорсе подсматривая в проприетарные гуи для юниксов.
Если кто-то сделал WPF капабилити фреймворк, это не значит что сам WPF становится автоматом кросплатформенным.
А что это значит? От того что его пилят не индусы его теперь нельзя использовать? Я и второй пример привёл - MAUI, если хочется прям официальное от индусов, а не какой-то опенсорс.
Это можно. Много онлайн игр сделаны на пхп. Ты недооцениваешь мощь простых инструментов.
Они в лучше случае (в лучшем для кросплатформы) сделаны на жс. А в хужшем на тех же дотнетах с плюсами, где под винду сделан клиент. А пыха корее всего только как фронтенд к калькулятору урона, который микросервис на плюсах. Лол обычно в вакансиях гейконтор так и пишут НА ФРОНТЕНДЕ ПЫХА
Значит что сторонняя ит компания, плотно видимо напялившаяся на толстый wpf с дотнетом решила вытаскивать его из себя медленно и со смазкой чтоб не порвать себе бизнес об поддержку приложух для разных платформ с разыми гуями и библиотеками.
Ну а MAUI (Metro App UI) даже на венде никому не нужен. Это мертворожденное поделие которое зачем то держат на искуственном жизниобеспечении.
> Значит что сторонняя ит компания
Это опенсорс-проект. Начинался как ответвление mono, чтоб притащить гуй в линукс, сейчас их финансируют куча корпораций. Алсо, WPF с нами надолго, так же как и WinForms, альтернатив ему фактически нет.
> Это мертворожденное поделие которое зачем то держат на искуственном жизниобеспечении.
При этом тут внезапно оказывается что в его разработке в 20 раз больше активность по сравнению с нативным гуем винды. Значит оно нужнее чем всё остальное.
>активность
Нативный гуй винды разработан 30 лет назад. Вон в пердюликсах уже 30 прошло, а воз и ныне там, в жопе, ни на сантиметр не продвинулись, зато активности полно, каждый день что-то высирают, такое же кривое и ненужное как всегда.
Хз, может нативный гуй давно разработан уже, вот и низкая активность в разработке.
У гоев активность не разработка, у них активность это выкидывание/ломание и героическое исправление наломанного переписывание выкинутого, что конечно же не удается в полном объеме, приходится бросать не дочинив не допереписав, этим наломав еще больше, и дальше чинить-переделывать, и так далее, нисходящая спираль, распила бабла видимо, результатов никто не ждет всё равно.
>У гоев
Почему-то любовь к устаревшим технологим, желание писать на ассемблере, винапи, идет вместе с пристрастием к конспирологии, тайнам пирамид, уринотерапией...
Раздался голос со стороны параши в которой гуя никогда не было, кроме браузера, вот и озлоблены вечно, мечтают как бы винда сдохла, а она даже не думает сдыхать, так что приходится её объявлять мертвой хотя бы на словах, хоть какое-то удовлетворение попущенного чухана.
>Это опенсорс-проект. Начинался как ответвление mono,
И что? Ты думаешь опенсорс это когда васян после смены на заводе под охоту крепкую комитит что ли? Сегодня опенсорсными проектами занимаются все и большие и малые компании, не говоря уже про гуглы и эплы.
Сегодня вообще такая ситуация сложилась в мире ит что для сокрытия исходников нужна уважительная причина.
Сперма дяди билли на губах, как у отечественных ит кабанчиков таковой если что не является.
Разработка под винду:
https://product-downloads.atlassian.com/software/sourcetree/windows/ga/ReleaseNotes_3.4.18.html
Что-то правят, что-то добавляют, нормальный процесс.
Пердосраньё вместо разработки:
https://product-downloads.atlassian.com/software/sourcetree/ReleaseNotes/Sourcetree_4.2.8.html
Обрати внимание на плашки в восклицательными знаками. У ебланов постоянно тикает таймер отвала софта, вот так, нихуя не делаешь, просто дни идут и софт отваливается. Как там у раковых корпопидарастов в методичке? Запланированное устаревание? Легаси? Нинужно? Прогресс? Свиноскот в говне, а не люди, откуда там софт, даже не смешно.
Пиздатый в линуксах гуй, винде до такого расти и расти, даже макось поражавшая в середине нулевых своими фичами сегодня представляет из себя субстанцию из которой эти фичи выпиливаются с каждым релизом, а вот новые завозятся со скрипом.
>https://product-downloads.atlassian.com/software/sourcetree/windows/ga/ReleaseNotes_3.4.18.html
лол
>Пиздатый в линуксах гуй
В линуксах НЕТ гуя, только имитация уровня пикрил. Чтобы узнать что такое гуй надо знать винду, не как тупая скотина на ютубе, а как грамотный пользователь и программист. У винды нет аналогов, это космос, остальное просто грязь несравнимая совершенно. Но ограниченные животные не видели, не знают и не могут вообразить что такое настоящий гуй и вообще грамотно сделанная рабочая система, а не куча кривых костылей к которым убогие привыкли.
Тебе Билл Гейтс пенсию по шизе платит что ли?
>Но ограниченные животные не видели, не знают и не могут вообразить что такое настоящий гуй и вообще грамотно сделанная рабочая система, а не куча кривых костылей к которым убогие привыкли.
Ага, это когда тебе вместо привычного дизайна менюшек лепят модную кастрированную ЛГБТ хуйню с 2.5 пунктами, а затем, когда ты хочешь достать нужную функциональность и нажимаешь на пункт "дополнительно", то тебе посреди МоДнОгО интерфейса рисуют окно из win95. Вот это действительно грамотно сделанная система, а не куча костылей.
>>16504
>В линуксах НЕТ гуя
В линуксе дохрена ГУЯ, в том числе можешь свою ВМ/ДЕ написать при желании.
> ле пук
Линукс это не FreeBSD, который не желает быть чем-то иным кроме клона дедовского безоболочечного юникса.
Каждый дистрибутив жну/линукс это операционная система где гуевая оболочка и библиотеки приводятся к замороженному стабилизированному состоянию и фиксятся только минорными патчами. Если ты думаешь что в винде и макоси это как то иначе все то земля тебе бсодом.
https://www.youtube.com/watch?v=AnNx-Se9wkc
> можешь свою ВМ/ДЕ написать при желании
Да можно и ОС свою написать. Проблема пердоликса как раз и есть в том что каждый пердолик тянет в разные стороны. В итоге имеем десять DE и все они даже базового функционала для десктопа не имеют.
>У винды нет аналогов, это космос
Особенно у 11. Прямо через экран чувствуешь весь индусский космос.
>В итоге имеем десять DE и все они даже базового функционала для десктопа не имеют.
Каждая из них имеет десктопный функционал на десятилетия опережающий винду лол. Голая винда без сторонних прог - это неюзабельный пиздец, ухудшающийся с каждой версией. Эксплорер - кусок гниющего кала. Панель пуск с рекламой, кривой поиск, неубиваемый кривой эдж, настройки раскиданные по десяти приложениям да еще редактор реестра - это прямо цитадель из говна.
Особенно когда покупаешь ноут, а там Windows S без возможности устанавливать программы по дефолту.
Реально аналоговнет лул.
> функционал на десятилетия опережающий винду
А сколько десятилетий потребуется пердоликсу чтоб запилить фичи винды, просто работающие уже 5+ лет? Вот небольшой список - HiDPI, HDR, VRR, отсутствие тиринга, запись экрана/скриншоты без мокрописек, OCR, поиск по системе. Или всё это ненужно?
> цитадель из говна
Лучше расскажи про стабильность графической подсистемы пердоликса. Что-то падает - все сессия похеривается без возможности восстановления. В иксах вообще одно зависшее окошко ложило всю графическую подсистему.
В то время как в винде оно неубиваемое. Падает видеодрайвер из-за железа - просто мигает экран и продолжаем работать. Убивается оконный менеджер - мигает экран и продолжаем работать. Падает/убивается рабочий стол DE - ничего не ломается, сейчас даже открытые окошки проводника не пропадут. Встаёт раком окошко с кривым софтом - ничего рядом не ощущает этого даже.
> Панель пуск с рекламой
Кто тебе мешает поставить какую-нибудь EG-редакцию, если так мешает предустановленная косынка? Про рекламу ты уже перетолстил.
> неубиваемый кривой эдж
Система без веб-вью - кастрат. А нестандартные веб-вью - проблемы с совместимостью или необходимость таскать с собой Хром, как это делает электрон.
> настройки раскиданные по десяти приложениям
Уже давно всё в одном месте, "панель управления" выкинута. Для дебилов есть копилот, помогающий нажать пару кнопочек на запрос "сделай мне заебись".
> редактор реестра
Всё ещё лучше тысячи размазанных по системе конфигов, которые могут лежать начиная от etc/хомяка до usr.
>HiDPI, HDR, VRR, отсутствие тиринга, запись экрана/скриншоты без мокрописек, OCR, поиск по системе.
Это уже лет пять везде есть, кроме всяких обскурных тайловых wm, но и там можно сделать. На винде, кстати, HiDPI выглядит суперуродливо, в отличие от других ОС.
>Что-то падает - все сессия похеривается без возможности восстановления. В иксах вообще одно зависшее окошко ложило всю графическую подсистему.
Когда это было, в нулевых?
> Это уже лет пять везде есть
Везде это где? Назови хоть одну DE, умеющую в дробный скейл интерфейса без поломок, как 5 лет назад гном ломал qt, а кеды gtk, так и сейчас. Про HDR вообще молчу, оно нигде не работает, его вяленый в принципе не поддерживает.
> но и там можно сделать
Ты уже определись, у тебя этот функционал из коробки есть или надо пердольные мокрописьки ставить себе в систему чтоб хоть что-то заработало.
>отсутствие тиринга
Столкнулся. Адаптировал свой микрогуй на крестах под winapi и xlib. В winapi это из коробки, а под xlib надо тащить аж opengl (glx), чтобы отследить момент "обратного хода луча", но это все равно не гарантируется и зависит от драйвера. Но на самом деле проблемы были и с адаптацией под wasm / html5 canvas, то есть современные на тот момент вещи - в Firefox невозможно было точно определить положение baseline шрифта. У всего свои проблемы есть на самом деле. Хз, почему люди просто не соберутся и не сделают вместе что-то поближе к идеальному. С конфигами в линуксе беда - у них у всех разный язык, так что реестр может даже чем-то лучше. И со свинапи была сложность - ни один крестовый компилер, кроме VS не может протащить исключения через проприетарные либы винды. Это на самом деле хуево, потому что Clang весьма достойный компилер. Ну я просто вынес тогда абстрактный цикл обработки событий в свой код и в него максимально быстро и просто прокидывал все из цикла винды, чтобы там никакие исключения и не могли возникнуть. У xlib тоже были проблемы с обработкой событий - она нагромождает сотни событий XConfigure, когда ты еще прошлые не успел обработать.
Да, забыл, со всякими "сделать окно без тайтла и на весь экран" в xlib это жестокое bdsm через перехват каких-то событий-уведомлений по сравнению с winapi.
>В то время как в винде оно неубиваемое.
Ну хуй знает, на линуксе хотя бы просто сервер умрет(иксы) или композитор(вяленый), а на винде сразу система в БСОД улетает, потому что видеоподсистема в ядре находится.
> система в БСОД улетает
Только если у тебя с железом проблемы, упавший WDM-драйвер уже давно не ложит систему. У куртки даже если карта отъёбывает и драйвер падает, то ничего не происходит, он просто рестартится с миганием экрана. Никаких бсодов нет.
>Лучше расскажи про стабильность графической подсистемы пердоликса.
Мне посрать на стабильность графической системы линукса. Самое главное - линукс не перезагружается самостоятельно, чтобы апдейт поставить, в отличие от.
Второе это то что есть растровые шрифты и есть терминалы и текстовые редакторы способные его отразить. По итогу у тебя шрифт будет гореть пиксель в пиксель без всех этих костылей типа сглаживания, засечек и еще какой то хуеты. На винде хуй такое сделаешь.
>>16767
А я 15 лет назад уронил ноут, у него отказала крайняя полоска на экране. На тот момент никакой возможности купить новый ноут или комп не было, но оказалось, что в конфиге Openbox можно просто отступы любые установить. Все же линукс намного более адекватен в том смысле, что не навязывает тебе стандарты, найденные на фокус-группах для домохозяек. Хотя в линуксе тоже куча проблем.
В следующий раз используй Motif. Говорят это будущее графического дизайна и скоро никто уже не будет мучаться с чистым xlib. Кстати скоро выходит Windows 95 с новым инновационным интерфейсом, советую установить.
Ну а какое будущее у графического дизайна? Показывать гуппи то, что они уже забыли?
Так ты будешь Windows 95 покупать или как? Смотри не пропускай модные тренды сидя со своим xlib.
Модный (уже не очень) тренд это WASM и раздача более тяжелого кода либо нейросеток через WebRTC. Но почему-то моднявые гуи и до этого не дошли пока что. Или?
Как оплата компенсирует нашу потребность в социальном взаимодействии? Это же двощ, форум друзей.
MIT-MAGIC-COOKIE-1 понравился этот пост.
еще учил веб, но спустя год забил хуй на программирование. Теперь почему-то решил вернуться в это дело
Привлекает только низкоуровневое программирование (дада, я знаю что спп - высокий), нравятся все эти указатели, байты, ассемблерные вставки и тд. Нравится, что занимаешься чем-то сложным (ну, относительно сложным)
Но вот понял, что по сути работу найти будет очень трудно. Конкретно для джуна вообще почти нереально, потому что в сфере C++ в основном всякие старички, которые давно уже не джуны. То есть толковых погромистов с боагатым опытом на крестах овер дохуя.
По сути, у C++ нет перспектив в плане работы, если его доучивать сейчас?
>По сути, у C++ нет перспектив в плане работы, если его доучивать сейчас?
да
если сравнивать с другими индустриями, можешь сам посмореть по вакансиям на хх ру состояние индустрии
Да, на плюсах сейчас только петпроекты писать, и, если это что-то уберкрутое и полезное, надеяться на донаты.
Да ты бы с таким же успехом прошел мимо айти, как сделало большинство скуфов, и побежал вкатыватся, только когда айти стали рекламировать из каждого утюга. Это психологический феномен такой: каждый верит в свою уникальность и каждый, когда делят пирог считает, что кусок пирога должен ему по справедливости достаться. То что тебе -10 лет, это преимущество, а не недостаток. Просто прими одну мысль: никакой вселенской справедливости нет и все что ты хочешь - это твоя личная проблема добыть это.
Вырастешь - поймёшь.
Нужно знать что не знаешь. Когда знаешь что искать, конкретные вещи гуглятся за 30 секунд. Нет таких вещей которые не надо знать, какое-то всратое говно - это пример на будущее как не надо делать.
Слишком общий вопрос, поэтому могу посоветовать вот что:
1) Определяешь, что тебе интересно в ИТ и чем бы ты хотел заниматься
2) Смотришь совпадает ли работа в этой сфере с твоими финансовыми ожиданиями
3) Если да, то все все хорошо. Если нет, то подбираешь профитную для себя область, а область с интересом превращаешь в хобби.
4) Ознакамливаешься со стеком технологий, который используют в этой(профитной) области
5) Идешь и учишь этот стек.
Каких-то метагайдов для ТРЪ программистов не существует.
спасибо анон!
Я тот линуксоеб, что просил советов по "лекговесному" Gui на виндовс.
В итогу запилил на winapi, не так страшно как казалось, да кода когда конечно сильно больше после Qt, но пох.
За вчера-сегодня бахнул всю основу.
Понимаю, что всех заебал, но все спрошу по одной проблеме.
Почему спрашиваю, завтра сказали доделать и сдать, как я заебелся. Помощь сильно сэкономит мне нервы и время завтра, хотя чую никуя не успею...
Вообщем в основном окне есть всякие комбобоксы, чекбоксы и т.д.
Ввожу(или выбираю): IP, порт, команду -> в комбобоксе(в Edit, etc), нажимаю кнопку отправить, сокеты/логика отрабатывают, получаю ответ, все ок.
Делаю второй раз, только НАВОЖУ И НАЖИМАЮ мышкой на комбокc (или же поле ввода данных, вообщем любой виджет кроме чекбоксов), прога сразу слетает.
Конечно завтра прогоню все через дебагер. Но все же если, что то подскажет куда копать буду признателен.
Надо какие-то события обработки мыши добавить? дело же в главном цикле должно быть..
По идее цикл обработки событий бесконечно крутиться, но почему он второй раз при тех же вводных слетает.
Пишу на винапи первый раз. Сори за сумбур, голова квадрат, спать рубит.
Да
Твой протык.
>сам я шкила
хуй знает стоит ли вообще тебе в айти вкатываться.. ну закончишь ты вузик через 3-5 лет.. а через пятилетку вообще непонятно насколько нужны будут кодеры, с учетом того что их и так уже дохуя расплодилось
Действительно нужен 1С. И вуз выбирай такой, где ему учат, на втором курсе сразу работать сможешь.
А про
> системные/графические апи
забудь вообще, лол. Эти твои системные и графические апи нужны только:
1. борщехлебам аутистам с пенсией по шизе;
2. очень крупным компаниям.
Как ты понимаешь, если у тебя нет шизы, то тебе это не нужно, потому что в крупные компании просто гигантский конкурс, и ты явно не на его первом месте. В основном туда идут олимпиадники с красными дипломами и кучей проектов за спиной. Да и ты бы в этом случае не на дваче хуйню писал, а уже давно бы знал, что тебе надо учить, и занимался этим.
>По сути, у C++ нет перспектив в плане работы, если его доучивать сейчас?
В целом да. Я в Яндексе работаю и даже тут С++ сильно сдал позиции в пользу go/java для бекенда в последние годы. Вообще основной язык для бекенда теперь у нас go вроде как, во всяком случае в моем бизнес юните это так.
Для С++ сделали userver и до сих пор в компании есть большое cpp сообщество, но даже это нихуя не спасает, так как userver нормально использовать и чувствовать себя человеком можно только вместе с инфрой яндекс.такси, что не совсем актуально для всего остального яндекса и тем более для внешних разработчиков не из яндекса.
Но в целом ты по-прежнему можешь выучить кресты и попробовать вкатиться на стажировку в это самое такси, а может быть даже и в YT/YDB, там от С++ уже никогда не откажутся. Ну и попердывать на легаси в поиске тоже можно, но новых вещей там не то, чтобы много делают по словам знакомых оттуда.
Вне яндекса в конторах с баблом - Авито, Сбер, Озон, VK кресты почти что нигде не встречаются, там го, либо джава везде.
В целом тренд такой, что индустрии нужен язык по типу джавы, простой, тупой, легко читаемый, но компилируемый, желательно в бинарь, и без хуиты вроде наследования. Гоуленг, какой бы парашей с if err != nil не был, на российском рынке сейчас кажется самый популярный язык для новых проектов в крупняке.
>А что случилсь? Лет 5 назад же всё более менее было
Да вроде уже тогда говорили, что нахуй кресты. Плюс проектов на российском рынке поубавилось из-за ухода западных кабанов и галерок.
Сейчас вообще не вижу рвать жопу ради крестов. Раньше хоть в нвидию можно было попасть, как известный господин из этого треда в 2016 году. Сейчас же с крестами только оборонка, либо яндекс, либо какие-то конторы связанные с компьютерным зрением и видеонаблюдением.
> как известный господин из этого треда в 2016 году
Вот как он точно не надо. Его выпиздовали куда-то в Грузию и он жил на чердаке, а потом и вовсе пропал из треда.
>графические апи надо сейчас изучать
Их не нужно изучать. Весь графический интерфейс нынче делается фронтенд разработчиками на js. Окошки на плюсах тоже есть, Qt называется. Учить это не стоит.
Еще есть компьютерная графика, игровые движки, тени, рейтрейсинг итд, вот это вообще не актуально для России сейчас. Максимум стоит поверхностно изучить как треугольники в opengl рисовать и этого будет достаточно.
Не, он в швейцарии был в прошлом году. Вообще нвидия это на самом деле топовая контора в плане условий труда, у меня знакомый после вмк мгу пошел туда ml макакой, около года посидел в армении и тоже в швейцарию свалил.
>xlib
Господи, зачем насиловать это окаменелое говно мамонта? Ни документации вменяемой нет, ни примеров, по сути, как этой библиотекой пользоваться знают только 1.5 калеки, которые делали поддержку иксов для qt и gtk.
Хуй знает, я бы не назвал вынужденную релокацию хорошими условиями. А при той же ЗП переезд в европку - это наоборот срезание дохода.
Джунам всегда тяжело было, в мое время в миллионнике было 2 стажировки, еле пробился. Но если залетишь куда-то и 3+ года продержишься то окажешься на рынке с гораздо меньшей конкуренцией
Да мне в целом похую, макака я или нет, работа это кал говна в любом случае. Только сейчас я попердываю на жысонах, а в геймдеве меня калом нагрузят за меньшую зп. А если еще вспомнить, что геймдева конкретно в России больше не осталось, то нужно еще ебстись с переездом куда-то на кипр или в сербию ради работы за рыбную котлету и кранчи, ну его нахуй.
Да, для игрулек нужна идея + сюжет, дизайн, художественная составляющая, модельки, текстуры, музыка. Само программирование тут как бы просто нужно чтобы заставить все работать воедино. Собсна всякие блюпринты и луа скрипты так популярны в геймдеве чтобы не сильно заебываться все на крестах вручную делать.
Конкретно у него там 150к+ зп в год по его словам. Что для швейцарии не особо много на самом деле. Нвидия вообще предоставляла выбор локации, в целом можно было и в армении остаться попердывать или сделать визу в UK или попробовать в сша перебраться по L1 визе.
В фаангах вроде как похуй на стек технологий, вообще для бекендов там гоуланг, питон, джава. це крос крос скорее как легаси из прошлых времен. Это если джейсоны рассматривать.
HFT и хедж фонды это вообще другой мир, чтобы туда попасть нужно не только кресты знать, а еще быть ёбырем в олимпиадном программировании. Условно, если ты задаешься вопросом как попасть в хфт или хедж фонд, но при этом не дрочишься сутками на codeforces и ты старше 15 лет и не выиграл всерос или хотя бы перечневую олимпиаду по программированию, то ты уже отсосал и никогда туда не попадешь.
Алсо сама работа довольно паршивая, да, там платят бабло, но ебут в сраку с размаху и 60 часовые рабочие недели это не редкость, как и тяжелые испытательные сроки. Плюс помимо того, что нужно быть ёбырем в крестах + алгоритмах, нужно еще нихуево так шарить за устройство cpu или сетей, в кишочках до деталей, в вузах такому нигде не учат, это нужно самому брать и ковыряться.
> но при этом не дрочишься сутками на codeforces и ты старше 15 лет и не выиграл всерос или хотя бы перечневую олимпиаду по программированию, то ты уже отсосал и никогда туда не попадешь.
Пиздец манямир, этих hft в питере и соскве насрано десятками, на собесе спрашивают два литкод медиума и общие вопросы по плюсам, рабочая неделя часов ~50. Это конечно не уровень Citadel или RT, но выше рынка получьку платят, и имея пару лет стажа в одном работает как магнит для хрюш из других хфт.
Выше рынка это сколько? Тыщ 600-700 рублей хотя бы плотят мидлу?
В оптивире у анальников в 2021 премка годовая была под лям баксов. Вот ради этого стоит заебаться капитально, а за 400-450 кусков можно и в банке втб иннотех xml в джейсон гонять и обратно на java8 + spring.
Чел ты почему-то ориентируешься на лучших. Какая нахуй премия в лям баксов? Может еще посмотришь на нетворс стаффов из нвидии после взлета акций? Платят там 400-800к, думаю если прямо очень перформить то можно и больше делать. Это очень хорошая зп для те требования что они выставляют. Ты не математик, не опытный синьор с 20 годами опыта в лоу-латенси, не математик, не олимпиадник, почему ты ориентируешься на зп лучших из лучших?
Нвидия это вроде и не хфт и тем более не хедж фонд? А обычная контора, которая по зп была примерно как фаанг, мб на уровне интела или амд.
>>17882
>почему ты ориентируешься на зп лучших из лучших
Ну а смысл ебашить как проклятый и в итоге рыбную котлету получать? Не, мне-то нравится читать всякие умные книжки и в свободное время, в удобном для меня темпе, неспешно кишочки ковырять. Я сам никакого отношения к хфт и большим зарплатам не имею, просто интересуюсь, стоит ли овчинка выделки.
>стоит ли овчинка выделки
Если просто максимизируешь зарплату то конечно стоит, без крутого бекграунда я других путей и не знаю. Подрочить литкод в любом случае лишним не будет, можно будет в фаанги/стартапы европейские потом походить пособеседоваться. Опять такие в реально крутые хедж фонды тебе быстрый вход уже (скорее всего) закрыт, остался только вариант становиться крутым сеньором и к 35 улетать в Дубай на 350к нет.
Мне бы в своем мухосранске найти работу на плюсах тысяч за 70, чтобы не ебаться в МоДнЫх и МоЛоДеЖнЫх каллегтивах и не торчать на созвонах, и я бы уже был счастлив...
Литкод сейчас и так везде нужен даже в сраном сбере, не говоря уже про яндекс, а там зп не то, чтобы были сильно выше рынка.
Литкод вообще сейчас везде спрашивают, так как на позиции мидлов приходит много мусора с накрученным опытом, и пока что лит это хороший способ отсеивать таких пассажиров.
А тебя это ебать не должно.
спасибо за помощь анон!
а вообще, не в пустую ли я потратил время ~с ноября по сей день, изучаю плюсы и учясь кодить на них, если действительно мне нужен 1С?
блять, а куда мне идти то(только не нахуй) если я хочу сидеть и прогать на плюсах, чем занимаются на плюсах взрослые дядьки?
Ты где живешь? В какой стране? РФ это страна-сервис, страна-услуга. Кресты нужны там, где создают продукт. Никто здесь не создаёт продукт, потому что население нищие. Создают только сервисы и услуги, чтобы отнимать последнее.
> Никто здесь не создаёт продукт, потому что население нищие.
Да иди нахуй. У кого не спроси зп выше 150к. Все пьют дорогущий кофе, одеваются в цумах гумах хуюмах, едят в охуенно дорогих рестиках. Как не зайду в магазин там людей до пизды у всех телеги заполнены до краев, чеки, блять, по 10 тысяч.
Как не приду в универ — все тян сидят с этим кофе ебучим по 200 рублей за стаканчик 2 глотка.
И это даже, блять, не ДС.
да,рф(мелкий город в сибири), блять, теперь я понял, спасибо, это многое мне объяснило
ну,вообще он прав, если как ты говоришь все живут в достатке и у всех зарплата(скорее всего тебе лет 20-22, поэтому скажем что у твоих ровесников и старше тебя) 150к, а значит люди могут(скорее всего как ты сказал) повзолить покупать себе продукты, то тогда бы продукт не уступал услугам и сервису, а это не так, из своего небольшого опыта жизни как для школяра, действительно услугами и сервисом пользуется сука ВСЕ!(сужу по пиздюкам примерно моего возраста в основном, но не только, и это я про айти рынок только все говорю), но чтобы купить/покупать продукт денег то особо ни у кого не находится, ни чтобы покупать игрушки, софт и тд и тп, поэтому я считаю что твоя ситуация мега идеальная какая то, может тебе так повезло попасть в такое общество, короче, хз, но считаю что анон с тезисом что россия-страна услуга, прав
Видимо ты живешь в какой-то паралелльной реальности. У меня зп 30к. У большинства знакомых не больше 50к. Есть два счастливчика, один около 100 получает, работая круглые сутки, а другой 200-300 приблизительно, он хороший продажник и работает фактически так же без выходных и в двух местах.
>Как не зайду в магазин там людей до пизды
При этом ты не почему-то не берешь во внимания работников этого магазина, которые там батрачат за тысяч так 40.
Кресты нужны чтобы создавать тяжеловесный полезный софт, от игр до автопилотов на самолётах и программ для мед. оборудования. Ничего подобного в РФ не производится и производится вряд ли будет. Раньше покупали у Джонов, теперь будет у тех же Джонов через параллельный импорт, так у же у Нефритового стержня.
В РФ развито веб, чтобы запускать интернет-казино, и приложения, чтобы население брало в них кредиты. В эти области и нужно идти в ит, чтобы получать деньги.
576x1024, 3:19
Да, реальность отличается. Я закончил вуз в ДС и сейчас в ойти работаю. Все знакомые тоже в ойти. Людей с зп меньше 100к в моем кругу окружения просто нет.
Если ты в замкадье живешь и всю жизнь по дно работам перебиваешься, то понятно почему у тебя не больше 30к зп.
И к чему ты мне своё досье рассказываешь? Как это опровергает что я написал, что кресты в РФ не нужны и не нужны будут в коммерческом секторе, где деньги и водятся? А нужна будет жава, скотлин и прочие вещи, нужные для написания банковских приложений, чтобы проще давать кредиты?
>И к чему ты мне своё досье рассказываешь
Просто так. К слову у меня есть знакомые крестовики из яндекса, кто больше 30к зарабатывают. Ты просто лох...
о, да ну, в яндексе плюсовики зарабатывают больше 30к? а много ли яндексов и подобных у нас? а рабочих мест на этих плюсах?
>тратить свою жизнь на написание сервисов
Я уж лучше дворником буду работать, и в свободное время делать что мне нравится, чем заниматься откровенно вредоносной деятельностью.
блять,короче, я понял, пойду вкатываться в гошку,жаву, или что там сейчас самое передовое в вебе, спасибо что направил на путь истинный
ладно, тут уже верю тебе, нахуй веб, буду педалить легаси на qt
>Родина ценит таких идейных как ты.
Родина ценит тех, кто кибергулаг строит и помогает закредитовывать, закрепощать население. Потому и платят щедро.
Если бы мне было плевать на происхождение денег, то пошёл бы в криминал. Там хотя бы урон наносишь конкретным людям, а не обществу в целом.
можно даже согласится, не думаю что какой то челикс на жаве которые работает средненьким прогером в сбере например, думает о том что надо завтра покушать, да и сказатть что кодерам которые делают онлайн разводняк не хватает где то денег, ни у кого бы языке точно не повернулся...
Два чаю, всегда тошнило с этого:
>гугл/яндекс/мейлру - злые карпарации, гниды, черви, всем портят жизнь!
>как вкатиться на работу в гугл/майкрософт/яндекс/мейлру???
>и я!
>и я тоже!
>меня возьмите, ну плииииз!
Мрази.
>Никто здесь не создаёт продукт, потому что население нищие.
Охуенное заявление, конечно. Основное число ПО делается не для физиков, а или для внутреннего использования, или для продажи бизнесу. Для физиков, сейчас почти все в вебе, где плюсы снова очень актуальные с учетом WASM. Ну и для десктопа в России продуктов хватает: буквально десятки всяких КАДов, универсальных и узкоспециализированных, игры, антивирусы.
>Опять такие в реально крутые хедж фонды тебе быстрый вход уже
Хэдж-фонды разве HFT занимаются? Это самой сути хэдж фонда противоречит. Или зачем там плюсы вообще могут быть нужны?
>гугл/яндекс/мейлру - злые карпарации, гниды, черви, всем портят жизнь!
Вкатился бы в Яндекс или Сбер чисто чтобы ебало набить менеджерам, которые за их мобильные приложения отвечают.
Да очередной синьер пиздобол на дваче, не корми.
После ухода западных компаний объективно рынок сдулся.
И зарплаты которые просто в долларах индексировались со 100k сдулись до 60и (у московских около макак конечно же).
Ну а узкоспециализированным на таком микрорынке как рф с полтора госкомпаниями просто тяжело найти.
Мне один раз предложили что то там с бигдатой вот этим всем (для госов естественно) но я что то ебало тогда скрючил, не знаю даже. (Не хочется мне в сетевое говно лезть, я больше по прикладому, библиотекам и эмбедщине).
И да про зарплату обычно никогда разговоров не идет. Думаю вышеназванная контора много не заплатит, так как ее до московских/федеральных тендеров хуй кто допустит, максимум в областные органы и компании что то там поставляет вместо ушедших ораклов и цисок. Плавали знаем, будешь наглеть и пробиваться вообще без бизнеса останешься.
может кто то сильно на анриале сидит или вобще со своим движком?
так, и, получается нет смысла в рф оставаться на плюсах? значит нужно вкатываться во всю эту залупу с жавой и прочей гавной чтобы зарабатывать деньги?
Unigine и Улитка
>может кто то сильно на анриале сидит
Анриал это не про плюсы а про визуальное кликанье в редакторе, сам движок с технической точки зрения лютая говнина созданная быть тормозной. Но из за того что есть магазин асетов и редактор модный, все соевые с бородой на анриал надрачивают.
> сам движок с технической точки зрения лютая говнина созданная быть тормозной
Попизди тут ещё. УЕ5 - это самый технологичный реалтайм рендерер в геймдеве. Из недавнего есть Senua - никаких тормозов и графон отвал пизды. То что говнокодеры убиваются об кресты и выдают тормозящее говно не значит что это движок виноват, это виноваты дурачки типа тебя, думающие что можно хуяк-хуяк без скиллов и будет заебись. Об это в любом стороннем движке говноделы убиваются, думая что раз есть готовый движок с редактором, то можно взять полтора кодера-студента и будет норм. На деле все эти движки экономят время, а не скиллы - кодеры всё так же грамотные нужны, просто они меньше времени потратят. А редактор и прочее это вообще не для них, это инструментарий для дизайнеров, кодеры не должны трогать это. Когда кодер пользуется инструментами для дизайнеров - это верный признак умственной отсталости.
>не значит что это движок виноват
Там базовый класс объектов - AActor, у него инстанс весит больше килобайта, а его исходник - единый файл размером под 10к строк (с адовыми костылями в некоторых местах). Сам подумай, насколько оно быстро будет работать, если логику в лоб на этой фигне делать.
>Из недавнего есть Senua - никаких тормозов и графон отвал пизды.
Там все уровни кишка-кишка-корридор, еще бы оно тормозило.
>может кто то сильно на анриале сидит
Много кто сидит. Не геймдев, а около того. Визуализации, ВР, всякий интерактив и мультимедия: шоу-румы, виртуальные экскурсии, простые тренажеры.
>это виноваты дурачки типа тебя, думающие что можно хуяк-хуяк без скиллов
Дурачков много, и они дешевые, а скилловых мало, и на абы какой проект они не пойдут. Ну и плюс сейчас требования совсем не как в нулевых, когда пара человек могла базу игры с нуля за полгода написать. Сейчас даже гениальный суперзубр вряд ли на 100% будет все детали того же анрила понимать.
>А редактор и прочее это вообще не для них, это инструментарий для дизайнеров, кодеры не должны трогать это
Ахахаха, ебать ты наивный. Там чуть шаг в сторону, и надо уже в деталях понимать, как потроха редактора работают, как блюпринты устроены, чтобы дизайнерам какую-нибудь фичу в редактор из плюсов прокинуть. А документации нет никакой, ботай все сам, читай исходники.
ну, так стоит соваться в плюсах в геймдев, в частности на ue5? возможно не прям как проф.деятельность а хобби?
>А редактор и прочее это вообще не для них, это инструментарий для дизайнеров, кодеры не должны трогать это. Когда кодер пользуется инструментами для дизайнеров - это верный признак умственной отсталости.
как понять что человек о разработке игр слышал от знакомых
Выбери что-то одно, либо движок готовый в котором разработки минимум только плагин какой нибудь дописать с чем справится 3d моделер с гуглом, либо городить движок с нуля с использованием всяких библиотек и только в этом случае в геймдеве нужен человек умеющий писать код и не умеющий в геймдизайн.
Единственное исключение это IdTech так как его продавали в виде голого исходника который предлагалось допиливать под себя. Кармак был как раз программистом и наивно считал что главное в движке это технологии которые он разработал, вроде динамических теней в третьем думе которые по сути из себя представляют что-то типа ретрейсинга только не требующий rtx и directx150. Но вот гейм-дизайнерам до пизды все эти технологииесли нет готовых пресетов.
Какую же вы хуйню несёте про трудоустройство на плюсах в РФ. Просто с потолка берёте и рассуждаете сами не понимая о чём.
Суйся, если интересно.
>динамических теней в третьем думе которые по сути из себя представляют что-то типа ретрейсинга
huh
> на самолётах
>в РФ не производится и производится вряд ли будет
Например, софт для самолёта мс-21 работает на процах армовской архитектуры, написано на си.
Для мцст надо пилить бекэнд компилятора.
Вообще, эмбеденщины дофига в россии.
Твой высер - как с луны
> как потроха редактора работают, как блюпринты устроены, чтобы дизайнерам какую-нибудь фичу в редактор из плюсов прокинуть
Для этого подобные движки и существуют, чтоб дизайнеры не ебали разработку, а разработка не ебалась с инструментами для дизайнеров. Как правильно слепить класс, чтоб его могли подтянуть из редактора - это 30 минут чтения доков.
> документации нет никакой
Как будто в любом геймдеве у тебя будет документация, когда ты придёшь на проект. Так же посадят читать исходники, только там будет стандартный вырвиглазный пиздец, а не как в UE.
>>19225
> только в этом случае в геймдеве нужен человек умеющий писать код и не умеющий в геймдизайн
Даже в разработке на UE/юнити тебя никто не допустит к геймдизайну, если ты кодер. Такое может быть только в инди или если ты непосредственно на геймплее, но тогда тебя наоборот к движку и низкоуровневым вещам не подпустят.
1252x940, 1:05
RTX On/Off
качество конечно пиздец но ебаться энкодерами нету желания, лучше самому собрать да посмотреть если интересно. Я вот охуел от того что оно не просто работает а заебись работает на моем дно пк с дно картой. Хотя в свое время оно конечно ставило все на колени.
>Как правильно слепить класс, чтоб его могли подтянуть из редактора
Это как раз самое простое и очевидное. Только дизайнерам нужны не просто в проперти эдиторе параметры класса дергать, а сразу требуются кастомные тулзы для редактора. Например, надо редактор окон и дверей, чтобы дизайнер не из ассетов их набирал по кускам, а манипуляторами все задавал прямо в сцене. Сразу нужны кастомные ноды для блюпринтов. Сгенерированные часто не подходят, приходится кодить их вручную. И в УЕ это все очень неочевидно и черезжопно сделано (в отличие от юнити, кстати, где кодить под редактор легко и приятно).
>только там будет стандартный вырвиглазный пиздец, а не как в UE.
УЕ каким-то особым качеством кода тоже похвастаться не может. Такие же напластования из говна, прямо видно, как они там в некоторых местах хуяк-хуяк к релизу, а потом оно сломалось, и пришлось костылей поверх налепить.
Там трафаретные тени. У каждого кастера ищутся ребра крайние относительно источника света, меш по ним разрезается и растягивается, а потом рисуется особым образом в стенсил буфер. Никакого RTX, а также лучей/рейкастинга/рейтрейса ни в каком виде там нет.
Реально? Дум наверно последняя большая игра с трафаретными тенями. Я вообще думал их к 2004 уже не использовали. Как раз тогда объем видеопамяти дошел до размера чтоб в него влез буфер глубины или на чем там отложенное освещение делают. А количество полигонов уже начинало ставить раком алгоритмы всяких там теневых объемов.
>Я вообще думал их к 2004 уже не использовали.
Там еще относительно немного полигонов в кадре было, чтобы их использование было оправданным. Потом шедоумапы стали рулить.
>Как раз тогда объем видеопамяти дошел до размера чтоб в него влез буфер глубины или на чем там отложенное освещение делают.
Тогда для этого еще пиксельные шейдеры еще не завезли (дум без них работал, кстати, чисто на мультитекстурах и texture_env_dot3).
Интересный момент, в думе тот же трафаретный алгоритм используется для рисования декалей: кровища от монстров проецируется на уровень через стенсил, например, если стоит стул, то кровища будет только на нем рисоваться, а на полу под стулом ее не будет.
Так кто ж спорит что тут простые скучные алгоритмы, а там нескучные фирменные технологии, с этим не поспорить.
> ищутся ребра крайние относительно источника света, меш по ним разрезается и растягивается, а потом рисуется особым образом в стенсил буфер.
Заебись вам на высоком уровне все само ищется само разрезается.
А главное быстро все.
Да я честно говоря вообще не особо понял что у тебя там делится и какие в пизду трафаретные тени, разговор был про динамическое освещение (которое в самом движке значится как "Shadows") и реализовано оно векторами-лучами которые через всю карту идут до границ пересекают все сюрфейсы, учитывают дальность/размываемость.
И все это в риалтайме и без тормозов.
https://www.youtube.com/watch?v=ivM405e3LLM
Насколько я помню сам алгоритм был под патентом поэтому кармак когда исходники открывал он ее убрал оставив просто софтшадоус. А вернули уже сообщество когда видимо срок действия патента иссяк.
Ты какую-то хрень несешь. Никаких лучей там нет. Stencil shadows/shadow volumes - это чисто фреймбуферный алгоритм. Придуманный еще в 1977 году, как нам говорит вики:
https://en.wikipedia.org/wiki/Shadow_volume
У Кармака немного измененная версия алгоритма была, чтобы избежать патента, который был у Creative (Creative все равно начали бычить, Кармак в ответ убрал объемный звук из дума, потом они договорились).
> учитывают дальность/размываемость
Выглядит всё это очень всрато. В первую очередь в тени надо запускать GI, а уже потом сами тени трогать. Да и рассеивание света на тенях только недавно научились делать нормально, а не как блюр на краях.
Нет ты просто отказываешься слушать либо понимать, тени это то что рендерится на поверхностях, да наверное кучей разных способов, ну и причем здесь это? Ей все равно кто то должен сказать где и когда это делать и это уж работа динамического освещение, которое хочешь не хочешь из лучей состоит, ну или из векторов если угодно которые считают расстояние и все что угодно пролетая через них, если в думе уебать по ящику то тень от него тоже будет кувыркаться. все в реальном времени.
Это невозможно не протянув длинный вектор, который пересекая ящик в определенных местах абсолютно точно сосчитает какая тень на каком расстоянии будет.
Минус тут возможно просто в том что на маленьких локациях как в думе это еще более менее , а на больших это будет экспансионально убивать производительность. в idTech5 уже были гиганские карты, но вот какие там тени я не помню. В любом случае рейтресинг это не что то принципиально другое, это то же самое только для подсчета отражений. RTX недвусмысленно намекаеет на ray tracing extensions то есть аппаратную поддержку векторных функций для непосредственно обсчета такого вида векторов. ну и продала пользователям как будто изобрела что то крутое (походу у интела научились)
>В первую очередь в тени надо запускать GI, а уже потом сами тени трогать.
>>19679
>тени это то что рендерится на поверхностях, да наверное кучей разных способов, ну и причем здесь это? Ей все равно кто то должен сказать где и когда это делать и это уж работа динамического освещение
Это gpt-бот что ли? Или ребенок из /v? Какой-то бессмысленный набор слов.
> Ей все равно кто то должен сказать где и когда это делать и это уж работа динамического освещение, которое хочешь не хочешь из лучей состоит
У тебя геометрия на пиксели тоже лучами проецируется, шизик? В трафарете тоже не надо никаких лучей, это совсем разные вещи.
>>19680
Ты вообще рот не открывай, пока взрослые разговаривают.
Проецируешь мань, иди в вг посонам меши растягивай, а здесь у нас про скучные вычисления и вот это все.
>У тебя геометрия на пиксели тоже лучами проецируется,
Во первых тут уже тригенометрия, так как тут оси три.
Во вторых ее не нужно ни на что проецировать ее нужно применять.
>я хочу сидеть и прогать на плюсах
надо иметь 3 квартиры - в одной живешь, две сдаешь, и на эту ренту у тебя будет время для "прогать на плюсах";
работу в 2к24 на крестах ты не найдешь в россии
Нет, именно хфт. Можешь ради эксперимента сделать себе в линкедыне профиль и добавить туда 1-2 года опыта в яндексе и 2-3 года в NDA HFT Fund, каждую неделю будут хрюши из других нда хфт писать. На хехе.ру вакансий не очень много.
>Я уж лучше дворником буду работать
У тебя не будет жены и детей, не будет нормальной жизни. Да и секса не будет.
htf же вроде только на нескольких оче крупных мировых биржах есть
для московской бирже не нужен htf она медленная
что тогда делают эти десятки компаний которые делают htf если они в принципе с февраля 22 должны быть отрезаны от крупных бирж
Мимо чучуть шарю за системное адм. Линуксойд
Что ты несешь поехавший с 22года количество плюсовых вакансий выросло раза в 2.
и нахуя такой класс нужен, который нельзя смувать?
Ноль умножить на два равно нулю
причем ещё и самые топовые работадатель сьебались, нвидия, Интел и тд
согласен
первое же собеседование и взяли, даже с учетом того, что я нихуя не знаю стек на котором они пишут.
Вакансий много, каждый день новые. Это я говорю как человек который мониторил рынок и искал работку еще месяц назад.
https://stackoverflow.com/questions/14323093/are-there-any-use-cases-for-a-class-which-is-copyable-but-not-movable
Короче может быть полезно в очень редких случаях отладки, не более того.
опять выходишь на связь, шизойд?
ты сначала научись в осмысленную тиерминологию потом приходи тралеть хетой.
Таблетки прими.
>Есть ли хоть один сценарий где удаление мув конструктора/мув оператора у класса оправдана?
Например, если все такие классы всегда лежат в хипе, и надо обеспечивать валидность указателей на них. Пример - QObject в Qt.
По-моему ты снова запутался
Ты про то что после мува смувленный объект будет невалидным?
auto a = std::move(b); // b is in invalid state
Ну можно же в деструкторе проверить в валидном ли мы состоянии или этот объект смували
>Ну можно же в деструкторе проверить в валидном ли мы состоянии или этот объект смували
У тебя есть только указатель. Как ты по нему узнаешь, живой с той стороны объект или там мусор, или какой-то другой объект уже создан по этому адресу. Проще просто мув запретить. Тем более, что такие объекты обычно все равно уникальные и в контейнерах не лежат.
1С
>Проверить на нуллптр?
>Если нуль то объект кто то смувал
С++ - не managed язык. Указатель - это просто число, адрес памяти. Он не обнулится, когда объект, на который он указывает, будет удален. Просто полутся dangling pointer - указатель, который указывает на мусор.
Ну так надо его загулять в мув операторе/конструкторе
Копируешь поля из одного объекта в другой, а в замувленном все обнуляешь
Foo(Foo&& other){ this.ptr = std::exchange(other.ptr, nullptr); }
shared_ptr + weak_ptr. Кому бы и зачем потребовалось работать с сырыми указателями дальше хелоуворда?
Ловите сишника!
1) Старые либы/код
2) Сишные либы
3) Экономия на спичках. Смарт поинтеры дорогие
4) Экономия на спичках. Если твой класс инкапсулирует указатели, эти указатели дальше твоего кода не используются, то ты можешь решить, что смарт поинтеры не нужны, и ты сам достаточно смарт, чтобы управлять указателями.
>сырыми указателями дальше хелоуворда
А нахуя мне твой оверхедный шаред поинтер с атомарным счетчиком ссылок?
>сап плюсач, куда стоит вкатываться сейчас на плюсах на нашем убогом рф рынке, что изучать чтоб не проебать жысь?
Я не из РФ, а что мешает вкатиться в какой-то яндекс? У меня есть штук 10 знакомых из Россиюшки, часть вкатывались через дногалеры + срыгос оттуда через год, часть в основном из топ вузов через яндекс, один еще какой-то умудрился удаленку на Европу найти, но это ковидобесие было.
Лоу лэвл программирование вообоще легаси. Настоящему инженеру не нужно знать, как ам в памяти всё лежит.
Так-то да, JIT с GC вплотную по производительности к крестам, но есть проблема с жором памяти. В шарпе это решается AOT-компиляцией вполне неплохо. А со стороны железа шина не даёт наращивать память вёдрами. Как наконец станут делать пропускную способность памяти выше, так и сдохнут низкоуровневые языки. Ждём релиза CAMM2, может будут движения в нужную сторону.
jitы могут превосходить и си и плюсы так как у него есть рантайм информация о программе которой нет в статике.
GC наоборот предотвращает растекание памяти и вот это все
Минусы: время компиляции у jit в рантайме сильно ограничено, поэтому все что он охватывает jit это маленькие блоки кода, на анализ всей программы как в статике попросту нет ни ресурсов ни времени.
Про высокопроизводительный код с обработкой массивов >10000 с этой парой можно просто забыть.
> jit это маленькие блоки кода
Из JIT работающего с AST кода разве что жс есть. Даже питоныч сначала компилируется в байткод, а потом уже JIT с ним работает. Никаких проблем с большими кусками кода нет, потому что байткод уже оптимизирован, JIT только локально оптимизирует под конкретную архитектуру/окружение. Алсо, не надо думать что GC это просто референс каунт с проходами очистки, в жабе/шарпе RAII так же может отрабатывать, когда при компиляции известно что можно удалить объект сразу.
жс давно уже тоже байткод.
>потому что байткод уже оптимизирован, JIT только локально оптимизирует под конкретную архитектуру/окружение
Под конкретную архитектуру/окружение оптимизирована платформозавимая виртуальная машина и интерпритатор байткода, jit в этой схеме вообще тогда не нужен. Пиздуй изучать матчасть.
Вопрос по плюсам: если у меня в объекте в приватной части висит поинтер на данные созданные через new char[n] при чтении из файла, мне их надо очищать в деструкторе или нет? Просто я пишу а оно падает нахуй, может я что-то не то делаю, или что то недопонимаю. Например то что new это не обязательно выделение в памяти.
> А нахуя мне твой оверхедный шаред поинтер с атомарным счетчиком ссылок?
Читал я Страуструпа - такого лютого говнокода я не видел давно, такое чувство что пишет чувак со нашего срадика курса. Но не суть. Вот в его библиотеке на fltk нет умных указателей, нет деструкторов. И потому это лютое говно приходится прибивать ручками, после исчезновения окошка. А так конечно похуй какими указателями ты пользуешься, если твоё код никто кроме тебя не юзает.
>нет деструкторов
Так нахуя они нужны?
Это чисто костыль для сишных библиотек, (например SDL) подчищать указатели, запускать дестроеры.
> Так нахуя они нужны?
Тебе ни нахуя, продолжай говнокодить и я с бОльшей вероятностью вкачусь.
Тебе знакомо такое слово "семантика"? Понимаешь что я могу не обмазывать все свои классы шаред поинтерами, а отдавать наружу просто сырой указатель выражающий семантику не-владения?
Говнокод это когда шизик вроде тебя тыкает везде деструкторы виртуальные методы мувы-хуювы не особо задумываясь как его говно будет вести себя в рантайме, но при этом абсолютно уверен что он все делает правильно, примерно так почувствовал.
нод жс? а нахуя? речь же диет просто про передачу страничек в браузер... пишешь кот, суешь в nginx и в хуй не дуешь
ты дух бесплотный еще выбирать хочешь? ну флаг в руки
без рофлов, чтобы что то выбирать, ты должен быть тем, кто может что то предложить рынку, а судя по твоему вопросу...
и реализацию напишите
слышал тейк что winapi старый кусок говна, это правда? стоит ему вообще уделять время на обучение, и если нет то чему лучше посвятить драгоценное время?
программировать системщину под виндовс интересно
но к сожалению если ты в россии то это малоактуально уже
изучай линуксы в общем такой совет можно дать, как там драйвера писать и все такое, сетевой стек, системы виртуализации и прочее
пригодится
Нах вы читаете относительно свежие книги Страуструпа. Он их наотьебись написал, типо по статусу положено было че то там сделать. Дедушка уже старый, работает в морганстенли на непыльной должности, лутает овер лям баксов в год. Бля да у него на офф сайте написано что больше всего ему нравится проводить время в кругу семьи и друзей, бухать жрать и разговаривать. Он давно уже остыл.
У него есть пара относительно збс книжек, вернее даже можно сказать что одна. Первая это "Дизайн и эволюция с++" в которой он рассказывает о том как проектировал язык, ну и это одно из самых полезнейших чтений что можно найти, потому что понимаешь чем обоснован был выбор тех или иных решений в языке. Вторая это "Язык программирования с++. Четвертое специальное издание". Книжка эта могла бы стать второй K&R, но Страус все таки не выдержал (потому что он все же по большому то счету мудачек). И поэтому там есть предельно лаконичные насыщенные инфой главы в стиле k&r, но и несколько "разговорных" глав где страуструп рассуждает о дизайне программного кода, о архитектуре и прочей поеботе (хотя сам он ни одной крупной системы не написал кеееек). Ну и приложения к книге слабенькие. Хотя в том же k&r приложение А где дается формальное описание языка - это настоящий шедевр, образец как нужно писать техническую литературу, а приложение Б где описывается стандартная библиотека си - образец как нужно писать доку к либам соответственно. Но в книге страуса есть и одна из сильных сторон - а именно список задач-упражнений, решая и закоживая которые, можно действительно разобраться с темой главы после которой идут эти упражнения.
Ну а новые книги страуса, повторюсь говнище.
А самое говнище это та книга которую он написал типа для новичков, где еще этот самый фуллтик используется для упражнений и примеров.
спасибо за совет, а , ничего если я на винде, а делать все это буду например ну в виртуальной машине?)
Просто есть класс который записывает данные определенно структурированым образом а потом эти данные надо просто изъять из объекта и все.
>>21449
Типа в других странах винда не только для кадов/офиса.
> А можно ли смувать приватный вектор во внешний?
std::vector<int> getVector() {
return std::move(privateVector_);
}
Но хз, может у возвращаемого параметра нужно указать, что он rvalue ссылка. А может и не нужно. Майерс вроде писал, что не нужно.
так будет копирование скорее всего.
пока написал вот так вот, там посмотрим
public:
void moveDataTo(std::vector<unsigned char> &output) {
output.swap(std::move(m_data));
}
> Короче как я написал, так нельзя
Ещё бы, в твоём случае нужно было написать output = std::move(m_data);
так тогда смысла нет аргументом передавать, лучше и чище просто возвращать.
> Нах вы читаете относительно свежие книги Страуструпа.
Хотел почитать что-то о новом стандарте(от с++11 начиная) от "создателя" языка. Так или иначе тот же Столяров генерит гораздо более приятный код, и в разы понятнее объясняет. Упражнения да, там качественные но после обычно блевотной главы, на них уже не стоит.
Так или иначе кроме мейерса ничего нормального по С++ я не нашёл.
У Страуструпа есть приятная книжка, название точно не помню, но вроде A Tour Of C++.
Ну и ещё та знаменитая книга про шаблоны он Вандевурда и Йосьютиса хотя мне и Майерса хватило.
> А можно ли смувать приватный вектор во внешний?
Можно
class VectorContainer {
....
public
const std::vector<int>& getVector() const & {
return m_vector;
}
std::vector<int> getVector() && {
return std::move(m_vector);
}
}
Будет корректно работать когда твой класс временный
https://onlinegdb.com/_RaO3XE65
Только перегрузка референс квалификатором && несовместива с валуе квалификатором
>когда твой класс временный
когда объект твоего класса временный
фикс
ну и нельзя просто мувать мемберы потому что это по стандарту UB
https://en.cppreference.com/w/cpp/utility/move
Unless otherwise specified, all standard library objects that have been moved from are placed in a "valid but unspecified state", meaning the object's class invariants hold (so functions without preconditions, such as the assignment operator, can be safely used on the object after it was moved from):
std::vector<std::string> v;
std::string str = "example";
v.push_back(std::move(str)); // str is now valid but unspecified
str.back(); // undefined behavior if size() == 0: back() has a precondition !empty()
if (!str.empty())
str.back(); // OK, empty() has no precondition and back() precondition is met
str.clear(); // OK, clear() has no preconditions
https://wiki.sei.cmu.edu/confluence/display/cplusplus/EXP63-CPP.+Do+not+rely+on+the+value+of+a+moved-from+object
То есть ты хочешь мувать мембер объекта, а потом объектом пользоваться - плохо
Если ты муваешь мембер временного обекта, как я показал - норм
Да пох. Сначала мувнул состояние, а потом им пользуешься. Говнокодиной воняет в любом случае. Это как ебаться с пустыми яицами...
>ничего если я на винде, а делать все это буду например ну в виртуальной машине?
для обучения это, пожалуй, один из лучших способов
как минимум очень помогает механизм снапшотов
так же для изучения сети или сетевого программирования так же можно запустить несколько виртуалок одновременно и организовать между ними сеть и дальше уже экспериментировать
так же в виртуалку легко протянуть выход в инет, так чтож внутри нее не будешь испытывать дискомфорта
ну и есть механизм расшареных папок между хостом и виртуалкой, плюс работает copy-paste между хостом и виртуалкой, так чтож тут тоже все довольно удобно
>Хотел почитать что-то о новом стандарте(от с++11 начиная) от "создателя" языка.
Есть просто охуительная книга по 11-14 стандарту языка - это Майерс "эффективный и современный с++ 42 рекомендации по использованию c++11 и c++14". Рекомендую. Получил удовольствие когда ее читал.
>>322220
понял, спасибо =)
Поищи на ютубе туториал, как пользоваться толковым словарём. Не раз пригодится в жизни, отвечаю.
за 50k пошел бы писать интересные прикладное ПО и библиотеки.
Ты крутой
>плюсы снова очень актуальные с учетом WASM
О, классика в треде. Мне в этом же треде в 2016 году затирали про то, как C++/WASM убьет js, но оказалось, что wasm - это жидкий пук, который на рынке никому не нужен, так как рынку нужен обычный фронтенд, а не попытка сожрать жопой арбуз с целью запускать САПР в браузере...
>получается нет смысла в рф оставаться на плюсах? значит нужно вкатываться во всю эту залупу с жавой и прочей гавной чтобы зарабатывать деньги
Да, это тупо база треда. Надо в шапку положить.
>софт для самолёта мс-21 работает на процах армовской архитектуры, написано на си
И че, сколько нынче плотят в Иркуте/Госнииасе? В мое время там только студенты работали, которые потом бежали в нормальные места устраиваться бекенд макакичами.
Так-то один хуй, МС-21 серийных нет в производстве, только обещания что вот в 25-26 году что-то полетит. А МЦСТ это it's over, производство было все в тайване.
>в других странах винда не только для кадов/офиса
Это так, но так как офисных манек, которые в экселях считают баблишко или которые печатают какие-то NDA документы, очень дохуя, то нужны всякие тулзы слежки, антивирусы, файерволы - и все это под винду разумеется. А, ну и куда же без драйверов под всякое железо. NVIDIA-кун подтвердит.
В РФ винда ВСЕ, с нее все госучреждения слазят и переходят на аналоговнеты на линухе. Прямо сейчас начинать учить винапи для работы в РФ это пустая трата времени.
Да и славабогу, все крупные корпорации включая оракл самые главные спонсоры коррупции. Это видно даже по работе ФАС которая начала разводить бюрократию усматривать под микроскопом неравномерные закупки и доступ участников.
Почему то когда госструктуры закупали майкрософты с ораклами мы про этот орган вообще ничего не слышали, а сейчас тамошние чиновники решили тоже видимо импортозаместить доходы намекая видимо что надо просто нормально сделать и тогда нормально будет, получите госзаказ, а конкуренты получат хуй бланк печать в пятницу вечером.
>Почему то когда госструктуры закупали майкрософты с ораклами мы про этот орган вообще ничего не слышали, а сейчас тамошние чиновники решили тоже видимо импортозаместить доходы намекая видимо что надо просто нормально сделать и тогда нормально будет, получите госзаказ, а конкуренты получат хуй бланк печать в пятницу вечером
Лул, в нулевые дяди из оракла чемоданы с долларами заносили в это самое фас и другие гос.учреждения. Как бы про коррупцию в РФ со стороны оракла уже давным давно известно и куча слухов ходит.
Сейчас просто дяди не из оракла, а из других конторок, размером чуть поменьше. Но сами дяди могли и не поменяться, кстати.
Дяди то не поменялись, а атмосферный фронт в рф изменился сильно, те сами заносили а с наших региональных голодранцев и московских разводил приходится буквально тряст, а лишние вибрации рано или поздно сдвинут стоющую в углу швабру.
> госучреждения
ВСЁ только лицензии, теперь вместо покупок ключей кмс-активаторы, легально. В госах может и есть опасность что в винду новые зонды спешал фор pа_шка завезут, но в большинстве компаний совершенно поебать на то что ключи не купить, даже проще стало сейчас. Куча pашкинского софта просто не работает за пределами винды, всякие крипто-про и гос системы на нём тоже только под винду. У нас в конторе например два года назад последние терминалы на пердоликсе уничтожили, всё на винде/ведроиде. Алсо, ещё в pa_шкинской разработке есть тенденция что с некроязыков типа паскаля перекатываются на шарп, в том числе и госы так делают. Алсо, недавно имел дело с одним режимным объектом конструкторского бюро оно под персональными санкциями так-то - там тоже везде винда, просто везде анальный касперыч какая-то особо анальная версия для госов и нет никакого выхода во внешнюю сеть, кроме разве что почты, в которой даже файлы прикрепить нельзя.
Да.
поток который ты создаешь он никакого возврата в main не ждет поэтому может висеть.
>>23006
>нет никакого выхода во внешнюю сеть, кроме разве что почты, в которой даже файлы прикрепить нельзя.
В именитых западных компаниях та же хуйня, даже телефоны чтоб маме позвонить не разрешают, это только в "рашкинских" кабан-айти-солюшнс такое распиздяйство и анархия
https://onlinegdb.com/MM5B8fgqM
Если удалить конструкторы копирования и перемещения то в С++17 компилируется и работает, а в С++14 нет. Если закоментировать удаление конструкторов и раскоментировать
кастомные конструкторы то будет компилится и работать в С++14 тоже, но кострукторы вызываться не будут в обоих случаях
Хуже всего в с++14 Конструктор нельзя удалить, но он не используется
что сейчас самое востребованное пишут на плюсах в рф?
Unigine, мир танков
Читы для игр
Как ни зайдешь на любой английский форум с читами, там 50% разрабов русские. А зарабатывают они больше, чем НИИ и прочее говно
Некоторые даже официальные ООО в РФ регают и похуй им
Но вкатываться уже поздно
эх, жаль, а ты меня заинтересовал, ну видимо буду в сетевое программирование вкатываться, линуксы хуинуксы изчуать, по моему кроме этого и программирования всякой мелкой залупы(на заводе например =)) вариантов то не осталось
>как C++/WASM убьет js
Он и не убъет, форомчки со свистелками на js делать всяко удобнее. WASM нужен, чтобы делать аналоги тяжелого десктопного софта. Фигма на плюсах, райв на плюсах (https://rive.app/). То есть С++ c WebGL мордой сейчас востребован.
Если под винду, то проще всего через C++/CLI. Хотя может в неткор уже тоже поддержку добавили.
> на js делать всяко удобнее
Он может и неплох как скриптовый язык, но вот npm - это пизда, волосатая и вонючая. Особенно когда на TS пишут, там вообще пиздец, какой-то ебучий компилятор из TS в JS, сборка миллиона зависимостей в одну огромную простыню, ебануться.
нужно как-то заполнить структуру sockadd_in доменом
Никак, в 2024 большинство хостов откажутся тебе отвечать без шифрования. Под пердоликсом бери OpenSSL, под виндой шинель.
1) Сборка зависимостей в протыню это вебпак или подобное, к тс отношения не имеет.
2) Ты же не жалуешься что "какой-то ебучий" линковщик все собирает в одну "огромную простыню"
3) Сгенерированный жс не нужен для чтения человеком потому что тс включает в себя жс синтаксис. Он не является чем-то иным чем типы добавленные в жс
4) Ты же не читаешь asm файлы сгенерированные компилятором.
5) Жаловаться на синтаксис тайпскрипта за нечитаемость и любить при этом с++. Это смешно.
Для винды ты имеешь ввиду это?
https://learn.microsoft.com/en-us/windows/win32/winsock/using-secure-socket-extensions
Везде пишут, что нужно включить эти хедеры.
Где их взять?
#include <ComObj.hpp>
#include <utilcls.h>
Хуй проссышь, че ты там хочешь.
Берешь и получаешь IP из строки.
https://learn.microsoft.com/ru-ru/windows/win32/api/winsock/nf-winsock-gethostbyname
Они входят в C++ Builder
Для VS вот:
https://learn.microsoft.com/en-us/cpp/mfc/ole-in-mfc?view=msvc-170
Перемещением.
Переоцененная проблема и не самая страшная, хайп по которой появился относительно недавно, так как использовался в пиар-кампании растоговна. Буквально как петушки по всему интернету с этой методичкой начали носиться.
В целом, все проблемы плюсов переоценённые. Просто кому-то наскучило писать на одном и том же языке.
Как только что-то больше чем Laba2 решишь писать.
1. Нет нормального пакетного менеджера
2. Нет нормальной системы сборки
3. Ебанина с hpp, cpp, xpp, и прочей хуйней
4. Единственный доступный человеческий дебагер - у майков, почти все остальные - либо за пейволлом, либо хуйня, либо gdb
5. Коммунити хуесосво, одна половина будет любую хуйню в плюсах оправдывать, ведь думают, что их говно хулят не те кто ежедневно на плюсах пишет, а "неосиляторы" какие-то а не люди, которых это все говно уже давно заебало просто; вторая половина - ебланы, которым кто-то рассказал когда-то что плюсы - быстро, они ничего не писали кроме laba2, но при каждом удобном случае будут пиздеть, что надо писать на плюсах, даже сайт визитку, блядь, нахуй.
6. Куча велосипедов - все кривые-косые, потому - пиши свой)
7. Ебанутость стандарта
8. Ебанутость коммитета по стандарту
9. Переусложненность языка там где не надо
10. Примитивность языка там где не надо
11. Ебанутость коммунити, да-да, два раза, потому что коммунити ебанутое именно настолько, что в 2024м, прийдя на плюсовый проект - ты будешь видеть очередную реализацию строк, которую добавили, чтобы UTF8 поддержать на микроконтроллере каком-нибудь, но там короче утечки будут, если неправильно инициализируешь, а потому - если тебе UTF не нужен - лучше не пользуйся)))
12. 1000 и 1 способ прострелить колено в хелловорде
13. Ебанутность коммунити в вере в священный компилятор, который их говнокодище с n! сложностью сделает быстрее чем log(n) код на пистоне
14. Высокие требования к кококодеру за пределами языка, чтобы писать нормальный код, как только тебе надо будет чтобы твоя ебанина запустилась на ляликсах, или еще чем-то, тебе придется изучить эти ляликсы вдоль и поперек, и написать x10 кода сверху, чтобы оно нормально работало, в обратную сторону, если с ляликса на винду решишь переносить - так же работает, будешь изучать как там с путями, хуями и прочим заставить это говно работать и проклинать вторую систему, ведь на предыдущей вроде все работало.
15. Каждый дрочит - как хочет. В результате - ты можешь считать себя охуенным гуру плюсов в своем проекте, но открыв чужой - ты будешь ООООООООООООООООООООООООООООООООООООООООООООООООООЧЕНЬ долго и вдумчиво каждую строку смотреть, чтобы тупо понять, что тут происходит, потому что один ебланище - все через дефайны переопределил, второй ебланище инклудит CPP прямо в main, третий ебланище на темплейтах все решил сделать, четвертый из жавы.
16. Собрать чужой ЦэПэПэ проект - это квест, который иногда сравним по сложности с полностью переписать с нуля.
Как только что-то больше чем Laba2 решишь писать.
1. Нет нормального пакетного менеджера
2. Нет нормальной системы сборки
3. Ебанина с hpp, cpp, xpp, и прочей хуйней
4. Единственный доступный человеческий дебагер - у майков, почти все остальные - либо за пейволлом, либо хуйня, либо gdb
5. Коммунити хуесосво, одна половина будет любую хуйню в плюсах оправдывать, ведь думают, что их говно хулят не те кто ежедневно на плюсах пишет, а "неосиляторы" какие-то а не люди, которых это все говно уже давно заебало просто; вторая половина - ебланы, которым кто-то рассказал когда-то что плюсы - быстро, они ничего не писали кроме laba2, но при каждом удобном случае будут пиздеть, что надо писать на плюсах, даже сайт визитку, блядь, нахуй.
6. Куча велосипедов - все кривые-косые, потому - пиши свой)
7. Ебанутость стандарта
8. Ебанутость коммитета по стандарту
9. Переусложненность языка там где не надо
10. Примитивность языка там где не надо
11. Ебанутость коммунити, да-да, два раза, потому что коммунити ебанутое именно настолько, что в 2024м, прийдя на плюсовый проект - ты будешь видеть очередную реализацию строк, которую добавили, чтобы UTF8 поддержать на микроконтроллере каком-нибудь, но там короче утечки будут, если неправильно инициализируешь, а потому - если тебе UTF не нужен - лучше не пользуйся)))
12. 1000 и 1 способ прострелить колено в хелловорде
13. Ебанутность коммунити в вере в священный компилятор, который их говнокодище с n! сложностью сделает быстрее чем log(n) код на пистоне
14. Высокие требования к кококодеру за пределами языка, чтобы писать нормальный код, как только тебе надо будет чтобы твоя ебанина запустилась на ляликсах, или еще чем-то, тебе придется изучить эти ляликсы вдоль и поперек, и написать x10 кода сверху, чтобы оно нормально работало, в обратную сторону, если с ляликса на винду решишь переносить - так же работает, будешь изучать как там с путями, хуями и прочим заставить это говно работать и проклинать вторую систему, ведь на предыдущей вроде все работало.
15. Каждый дрочит - как хочет. В результате - ты можешь считать себя охуенным гуру плюсов в своем проекте, но открыв чужой - ты будешь ООООООООООООООООООООООООООООООООООООООООООООООООООЧЕНЬ долго и вдумчиво каждую строку смотреть, чтобы тупо понять, что тут происходит, потому что один ебланище - все через дефайны переопределил, второй ебланище инклудит CPP прямо в main, третий ебланище на темплейтах все решил сделать, четвертый из жавы.
16. Собрать чужой ЦэПэПэ проект - это квест, который иногда сравним по сложности с полностью переписать с нуля.
И что плохого?
Я вот написал генератор статических html-страничек на основе .md заметок(некоторого подмножества) и это только начало...
Понимаю, что есть наверно какая-нибудь функция типа сплит(), но такого не было в уроке.
Типа разобрать строку на число и единицу измерения?
Ну, например, вот так (ниже)
Естественно способов самых разных может быть миллион разных
void parseInput(const std::string& input, double& value, std::string& unit) {
// Найти индекс первого символа, не являющегося числом
int i = 0;
while (i < input.length() && isdigit(input)) {
i++;
}
// Извлечь число
value = stod(input.substr(0, i));
// Извлечь единицу измерения
unit = input.substr(i);
}
input - ссылка на строку, которую разбиваем
value - ссылка на double-переменную, куда запишем числовое значение
unit - ссылка на строку, куда запишем единицу измерения
Большое спасибо. Попробую разобраться с этими ссылками и амперсандами после типов. Главное, что узнал про isdigit().
А зачем первый параметр константой? То есть моя строка обязательно должна быть константа?
Да можно и без ссылок. Тогда придется возвращать значения через return. Строки и другие большие объекты, массивы и тд принято передавать по ссылке, а не по значению, потому что это быстрее (не происходит копирования)
Если не понятно, как использовать, вот полный код main():
setlocale(LC_ALL, "Rus");
std::string inputString = "105ft";
double number;
std::string unit;
parseInput(inputString, number, unit);
std::cout << "Число: " << number << std::endl;
std::cout << "Единица измерения: " << unit << std::endl;
return 0;
>>27868
Нет, передавать можно и не константу (смотри выше на код). Просто, принимая параметр по ссылке, мы используем const, чтобы "пообещать" тому, кто будет использовать функцию, что мы будем только читать его строку и ничего с ней не сделаем.
Вообще так принято. Упрощает написание документации и использование функции - сразу видно, что переменную только прочитают, даже с учетом того, что мы отдаем ссылку на нее. Зачем передать по ссылке написал выше
Потому что unit мы изменяем в функции (unit = input.substr(i);). Если бы приняли по константе, то не смогли бы изменить
Еще раз повторю: мы принимаем по константной ссылке, чтобы явно указать, что наша функцию НЕ будет (и не сможет) изменить значение переменной (что было бы возможно, если бы const отсутствовало бы). А сама передача по ссылке нужна, чтобы было быстрее
Когда юзаешь функцию из какой-то либы и видишь, что передаешь по константной ссылке, сразу понимаешь, что передаешь только "Для чтения". Помогает в том числе в отладке
Я писал один раз HID-драйвер, но это самое конченное что можно придумать. Работать драйверописакой наверное даже зашкварнее чем на заводе работать. А сверху ещё бонусом необходимость подписывать драйвера.
>необходимость подписывать драйвера
Это же вроде несложно. Там в самой IDE все делается вроде как
Или вопрос в стоимости? Но вроде как если пишешь для фирмы, то они и платят. А "для себя" можно и маппером каким-то
И еще забыл спросить. Вот касаемо isdigit. На сайтике тут написано что она принимает int а мы каким-то образом передаем туда string. Это как?
Я ошибся. Надо передавать не input, а input
Тогда мы передаем char (поскольку std::string - это, грубо говоря, обертка над массивом char[]), а сам char - это на самом деле uint8. То есть он хранит не некую сущность в виде символа, а ASCII-код
>>27846
Анон, скорее всего у тебя не работает щас. В цикле замени isdigit(input) на isdigit(input)
Ну мы же оба понимаем, что принимать ей int нет смысла, потому что тогда это будет функция тождественно равная true
Поганый двач форматирует квадратные скобочки. Кароче, вместо isdigit(input) надо isdigit(input.at(i)), иначе работать не будет
Ок, заменю, спасибо. Глаза сломал, ища разницу в двух одинаковых строках, а это двач шалит :3
int isdigit ( int ch );
Просто происходит ub, если аргумент не может быть представлен как unsigned char, потому что сама функция предназначена для проверки, является ли символ цифрой (0-9), а не числа
>Мне нужно именно программирование с нуля
Щас тебе насоветуют, что C++ не подойдет в качестве первого языка и тд, не слушай
Я лично рекомендую начать с уроков на ютубе. Это ведь и правда гораздо наглядней, понятней и удобней, особенно для новичка. А книжки можно на потом оставить
Рекомендую плейлист по C++ от #simplecode. Там и язык весь и STL немного, и многопоточность даже. ООП, насколько помню, он очень хорошо объяснял, указатели - тоже. Короче, рекомендую реально начать с него
> Щас тебе насоветуют
И сам насоветовал говна.
>>28015
> Мне нужно именно программирование с нуля, не справочник по языку.
Слушай сюда, сынок. Качаешь учебник Столярова и учишь его. Хейтеров Столярова не слушай. Да и самого Столярова — тоже. Полезной информации в его книге очень много, ещё и написано так, чтобы полный новичок понял, но временами проскакивает шиза. Как только чувствуешь, что прочитал какую-то хуйню, лучше зайди в тред и переспроси, так оно или нет.
Да, начать надо с Паскаля.
> Мне нужно именно программирование с нуля, не справочник по языку.
Очевидный Столяров, код у него кстати, как небо и земля отличается от Страуструпа, без колхозинга ебучих библиотек на дефолтых сишных структурах на С++. Простой и понятный с почти нормальным неймингом. С понимание зачем нужно ООП и АТД на порядки лучше чем написано у страуструпа. Читаешь по С++ включительно, решаешь задачки, асемблер и функциональные языки не нужны. Функциональщина - резвлекуха для деферов. Асм при понимании языка Си нах не упал.
Далее как только понял что он там пишет, столярова откладываешь и начинаешь учить алгосы. Параллельно с Мейерсом и многопоточкой.
Я тебе гарантирую займёт у тебя времени раза в два меньше, чем ты будешь читать ту пургу которую этот кончелыжный мудак страуструп там не написал, не описав даже умные указатели толком.
>функциональные языки не нужны.
Лолват. Кресты вообще то мультипарадигменные. Первоначальный разработчик stl Степанов так-то был противником ооп и топил за функциональщину. Да и шаблоны тоже функциональный язык по-сути.
Заранее спасибо
Да кресты какбэ именно к теории мало какого отношения имеют, из теории в общем ты больше наберёшься из книжек фаулера и мартина. И вообще мне кажется ты не представляешь, сколько реально хорошему программисту прочесть.
Я исключительно интересуюсь тут потому что с++ тир1 олимпиадный язык и мне надо по учебе в вузе подготовить вопросы с залезанием в залупу за 1 курс алгоритмов.
Для олимпиадного программирования 95% крестов вообще не нужно. Тебе достаточно си. Там же упер в алгоритмы, а не всякую абстракцию и управление сложностью, чем кресты занимаются.
> Первоначальный разработчик stl Степанов так-то был противником ооп и топил за функциональщину.
Твой протык?
>stl
Топить за это кривоватое нечто и воздвигать его на пьедестал не слишком умно, на мой взгляд.
> Да и шаблоны тоже функциональный язык по-сути.
С кучей побочных действий в ф-циях.
Дорогой друг, я на 3 курсе, мне 21 год. Я хочу стать практиком в своем вузе, ибо мне нравится объяснять вещи людям. Я попросил замудрённые вопросы в алгоритмах, потому что это идиотское задание для становления практиком. Я уже набросал свои и просто хотел услышать что-нибудь по-настоящему интересное здесь.
Иди нахуй
>С кучей побочных действий в ф-циях.
Я бы попросил код с мутабельными шаблонами в студию, но я знаю такого нет за пределами костыльных способов, которые комитет признал arcane а ты, тупой малолетний дебил, не знаешь о чём говоришь.
Никогда хейта к Паскалю не понимал. Крутой же язык для обучения. Правда я учил его не по Столярову, а по "Песни о паскале". Кресты учил по гайдам с ютуба, автор ChiliTomato или так как-то.
clang поддерживает в "экспериментальном" виде начиная с 11.0
Кто-то сказал "школа плохо", и быдло отнесло к плохому всё, что тем или иным способом с ней связано.
>комбинаторика
Какая жуть. Я даже задачи для школьников-имбецилов решить не могу. При количестве вариантов больше двух все плывет и паника. Поэтому наверно я нихуа не могу купить на маркетплейсах.
Но пишет интересно.
А тебе зачем?
Хуя ты дегрод. Функция возвращяет либо воид либо инт реткод. Остальное от лукавого.
>хейта к Паскалю
Вирт после Паскаля сделал еще Модулу, Модулу 2, Оберон, Оберон 2. Можешь для интереса чутка почитать про эти языки, чтобы понять насколько "сырой" был Паскаль. А этой хуетой пичкали школьников 50 лет подряд и до сих пор пичкают.
>stl Степанов так-то был противником ооп и топил за функциональщину
в stl скорее ключевая идея это возможность композиции, можно вообще сказать что это библиотека композиционного программирования
>>stl
>Топить за это кривоватое нечто и воздвигать его на пьедестал не слишком умно
как правило, челики, пишушие подобное, на практике обходят циклом контенеры, считая что они "используют" stl и имеют право на критику
> контенеры
Шёл 2024 год, "it-шники" так и не научились в спелчекер в браузере.
> считая что они "используют" stl и имеют право на критику
Вы просто слаще морковки ничего не видели.
Там анон писал не про хейт паскаля, а про то что Столяров ёнбулся на почве хейта js. В целом типичный буржуазный приспособленец - хейтить какие-то частности, но никогда не пытаться даже косо посмотреть на систему.
Тут надо отличать преподавателя Столярова и те знания и методику преподавания которые в него вдолбила исчезнувшая ныне система образования, и мелкого хозяйчика Столярова, в этой своей ипостаси он максимально гаденький тип боящийся даже пукнуть в сторону крупного капитала, вышвырнувшего его из вуза.
Че поздно то гейткипер сраный. Но работка и правда говно, уж лучше на завод чем так
Хуипер.
ставь дос
Есть виртуалки, есть msys2, freepascal тот отдельно ставиться на венде.
>Че поздно то
Рыночек уже переполнен всевозможными читиками. Зарабатывают только те, кто открылись давно
https://www.youtube.com/@tilir/playlists
Столяров для нубов, а, судя по названию видосов, твой Владимиров для магистров мипта.
>В вузике учили читать по диагонали несколько учебников по теме
Все правильно. В вузике учат, что один надо проработать досконально , а два других "по диагонали". Поэтому учебная литература в вузе различается по типу учебник - учебное пособие.
Пролистал первую книгу. Не понравилась. Ощущение что обо всём и ни о чём. И структирование неудачное. Например о лог. операциях можно рассказать не вначале книги, а в середине, когда они нужны будут в программах. Устройство компьютера объяснять не вначале книги, когда это забудется, а выделить уж отдельную главу на написание эмулятора процессора, ну или сделать его в каком-нибудь logisim.
А в чем вопрос, собстна?
CMake, например
# Nuklear
set(NUKLEAR_DIR "/path/to/nuklear")
include_directories(${NUKLEAR_DIR})
# SFML
set(SFML_DIR "/path/to/sfml")
include_directories(${SFML_DIR}/include)
link_directories(${SFML_DIR}/lib)
В VS еще проще, просто в свойствах проекта подключаешь все
C++ 1763 вакансии
PHP 1488 вакансии
C# 1372 вакансии
Golang 894 вакансии
Если во всей РФ, то
C++ 4053 вакансии
PHP 3684 вакансии
C# 3466 вакансии
Golang 1514 вакансии
По коэффициенту ДС/всяРФ хорошо заметно, что C++ юзается во всяких иркутских ННИ-говнах. Стоит ли их считать вообще за вакансию? ЗП 70к даже миддлу, петрович-начальник, скотское отношение и прочие сладости
C++ - 2,2
Go - 1,6
как написать свот торрент клиент, что для этого нужно? и вообще, возможно ли заработать на написании читов, репаков и прочей хуйни?
поясните долбаебу(мне)
>как написать свот торрент клиент
Ну есть всякие либы для чтения .torrent файлов. Начать можно с bencode
>заработать на написании читов
На этом да и не мало. На репаках и прочей хуйни не очень
Но ты не сможешь на читах заработать, потому что у тебя не получится его сделать. Кроме написания самого чита надо еще драйвер писать, чтобы обходить античит - а это совсем пиздец. Реверсить, дампить всякое говно, что искать оффсеты и тд
благодарю, а есть дока по bencode? или норм ресурсы чтобы в ней разобраться? и, еще хотел спросить, вроде как же нужно пару классов из буста знать?
Ну Bencode - это часть libtorrent. По идее все там и есть. Я, честно говоря, никогда этим не занимался
Примеры использования есть здесь https://github.com/arvidn/libtorrent/tree/master/examples
понял, спасибо большое ;3
> 70к
Пиздос, в ДС/МО даже выездные руки больше получают, где от тебя требуется только приехать куда-то и суметь сделать что-то по инструкции/документации/объяснениям.
Бро так можно сказать буквально литературно про что угодно
Загляни в platform.h
>во всяких иркутских ННИ-говнах. Стоит ли их считать вообще за вакансию? ЗП 70к даже миддлу, петрович-начальник, скотское отношение и прочие сладости
Откуда вы это берёте? Мимо 130к джун в нии.
просто попробуй дойти хотя бы на парочку тех собесов с этих вакух с плашкой с++; и поймешь что к чему
>свот торрент клиент, что для этого нужно?
ничего не нужно, достаточно знаний на уровне прочитал и прорешал упражнения k&r
далее берешь спецификацию протокола и хуяришь по ней свою реализацию, сверху гуй натягиваешь
ну и по результату научишься кодить, а не решать дебильные задачки на литкоде (хотя и их все же неплохо порешать, штук 250-300)
одно дело сидеть пусть и в воняющем чужими пуками офисе, а другое мотаться по всему городу или еще как калымить
не говоря уж о всяких вахтах и стройках-хуейках и старых советских заводов с петровичами
>джун
джунов с++ не бывает, ты нам пиздишь тут
пруфай тогда свое безгеморройное (пока) очко, может быть и поверим
Под джуном я имел в виду, что работаю чуть меньше года. Залетел на последнем курсе вузика.
Это бесполезно объяснять людям, никогда на подобных работах не работавших, которые прошли путь школа - универ - офис. Всегда когда "высоко"-квалифицированный петух начинает возмущаться, почему у работяги зп к его приближается, хочется переебать ему с вертухи. Такие люди вообще не думаю, что кроме зп есть условия труда, и если нет кредитов-семьи, то многие предпочтут за 15к сторожем работать, чем въебывать за 100-200-300 на стройках, вахтах и прочем.
> кредитов-семьи
Нахуя заводить семью, если не тянешь, а потом жаловаться, что денег на кредиты не хватает?
232 нарешал, спасибо за ответ, анон
k&r ет книга такая, надо будет все это на си хуярить? что такое спецификация протокола и откуда ее взять? гуй на чем хуярить?
я долбаеб. нихуя не понял
Забей, бери свой любимый ЯП питон, я угадал? качай для него биндинги к libtorrent, делай свой красивый необычный интерфейс с нескучными обоями и будешь доволен.
просто перестань позорится, в этом треде не все тупые валенки сидят
"высеры" Вирта повлияли на все современные императивные языки программирования, его теоретические и практические работы важны для cs и для теории яп в частности
> "высеры" Вирта повлияли на все современные императивные языки программирования
При этом ты засрал его же Паскаль. Вот он хороший язык, нашёл применение на практике. Какое применение нашел обсерон?
Нет, не оно.
-----------------------------------------------
Я пытаюсь записать gltf модель из своих входных данных, у меня есть класс кости, в котором есть массив этого-же класса для дочерних костей, в модели есть начальная кость от которой уже идут все остальные, дочерние.
Вопрос: как мне проитерироваться через всю иерархию, и записать все кости + их индексы добавить в список дочерних костей? Мне нужно как-то сначала записать все дочерние кости текущей кости, а потом для дочерних костей сделать тоже самое.
Ты буквально сейчас алгоритм обхода графа расписал. Это ровно то, что написано в моём посте.
В твоём случае обход в ширину уместнее.
> Нужно перебрать так, что составить иерархию, так что рекурсивно не варик
А чё не варик то? Рекурсивную структуру не варик обходить рекурсивно? С ума сошел?
Нет.
Спасибо, открыл америку
только что от туда
бамп вопросу
Соглы, по цифрам на хх вроде бы не плохо, но по ощущениям, на какую-нибудь жаву в моем миллионнике в разы больше вакансий
>самому в коде это проверить лень?
Думалось, что есть какой-нибудь трюк/препроцессор для такого.
Не слушай лабописца, он нихуя не знает. Возвращаемые типы виртуальных функций контравариантны, то есть если виртуальная функция базового класса Base возвращает указатель/ссылку на объект какого-то класса A, то в наследнике класса Base, переопределяющем эту функцию, можно в качестве возвращаемого типа указать указатель/ссылку на объект любого класса, который открыто наследуется от A.
> есть какой-нибудь трюк/препроцессор для такого
Если тебе нужна такая штука статически, а не динамически, то там вообще всё можно. Ну там и наследников не будет, просто специализируешь класс как хочешь, и он что угодно возвращает. Но, как я понял, тебе нужно не это.
Да конечно, расскажешь. Ты ещё скажи что похуй, потом всё равно в машинный код транслируется, а там типов нет.
Статические типы разные. Потерялся, лох.
template<class... Ts>
struct overloaded : Ts... { using Ts::operator()...; };
// explicit deduction guide (not needed as of C++20)
template<class... Ts>
overloaded(Ts...) -> overloaded<Ts...>;
???
Майерса почитай, Константина Владимирова посмотри там
Благодарю
>Что почитать про шаблоны, в районе 17 го стандарта
Для начала Вандевурд Шаблоны С++ 2е издание, всего то 840 страниц, переведено на руssкий достаточно качественно
>OLE сервер Word
Заставил меня взгрустнуть. Как же было прикольно четверть века назад во всем этом было разбираться.
Я не мужик, яйца у меня есть, но я (не)ебаное скулящее животное, лох, чмо. Так чтож ответа не будет.
только почему то здеся это не обсуждают
поэтому делаем вывод что этот тредик дно
Зачем, когда можно обсудить лабы и вопросы по синтаксису?
Работы нет, плюсовиков тоже, актива соответственно также
Может твой чатик переживет темные времена
А работать твои яйцеголовые не пробовали?
576x768, 0:40
Бля не поверишь, недавно только в б в треде про С++ спрашивал у анонов как сделать сетевую часть. Парсер бенкода уже написал.
Продублирую здесь, может подскажут местные эксперты.
Короче планировал я устанавливать HTTPS соединения с трекером - это либа openSSL и голые линуксовские сокеты. Список трекеров я получил, но как теперь качать/пытаться подключиться ко всем одновременно?
Треды, корутины, какая ни будь библиотека буста?
Помогите перваку, я только в универе сессию сдал БФС на экзамене написал и решил свой проект запилить.
>как теперь качать/пытаться подключиться ко всем одновременно?
а в чем собственно проблема?
ты не понимаешь как можно распаралеллить это всё?
сначала реализуй самый тупой вариант, для каждой таски std::thread спавни, потом думай как асинхронно переделать, посмотри либо в boost::asio либо в std::coroutines
Мой ебальник на пикриле, потому что на текущей галере всё написано на C++11 с ёбаными виртуальными граблями
Какие требования? Что надо знать?
Я не тот чел.
Прогаю на С++ уже года 2(любительски). Знаю темплэйты. Работал с std:thread, напрямую с памятью, с интернетом(http запросы).
Есть шанс в джуны вкатиться?
откопай код,поделись, нигде нет
В итоге переделал всё на VBA для мини проекта. Не смог функцию "Search and replace" нормально вызвать.
Но в мой основной проект, который уже дждва года пишу всё равно хотелось бы включить MailMerge.
COleVariant sVariable(L"HAHA");
COleVariant sReplaceText(L"");
COleVariant replace((long)2);
COleVariant varBoolTrue;
varBoolTrue.boolVal = true;
COleVariant varBoolFalse;
varBoolFalse.boolVal = false;
COleVariant wdContinue((long)1);
VARIANT result;
VariantInit(&result);
OLEMethod(DISPATCH_METHOD, &result, pFind, L"Execute", 11, sVariable, varBoolFalse, varBoolFalse, varBoolFalse, varBoolFalse, varBoolFalse, varBoolFalse, varBoolFalse, varBoolFalse, sReplaceText,replace);
И главное что каким-то хуем эта строчка работает ищет текст "HAHA" в файле.
Но порядок аргументов не соответствует описанию функции.
https://learn.microsoft.com/en-us/office/vba/api/word.find.execute
OLEMethod(DISPATCH_METHOD, &result, pFind, L"Execute", 8, wdContinue, varBoolTrue, varBoolFalse, varBoolFalse, varBoolFalse, varBoolTrue, varBoolFalse, COleVariant(L"HAHA"), replace);
Ты совсем себя не ценишь? Я когда на работу пришёл, знал только Си, и писал весь код в си-стайле. Платили 50 со старта. Через полгода уже сотыгу.
Не угадал, нытик. В 2023 дело было.
Тебя серьёзно рвёт от осознания того, что можно зарабатывать чуть больше развозящего еду точика?
>Курьеры больше 100к получают)
100к это вообще прожиточный минимум уже
Если я скину скрин банковского приложения, то ты извинишься за свою тупость? Хотя я подумал, что у вкатунов действительно скилов может не быть. У меня-то вышка ивтшная. Мб ещё в магу пойду.
>Если я скину скрин банковского приложения, то ты извинишься за свою тупость?
хуя даун, нахуй мне твое банковское приложение?)
ты там уже в 3 постах потерялся и не понимаешь что пишешь?
Ладно, ванёк, гуляй. Мудрость на сегондя закончилась.
Зарабатываю сейчас 140к гросс(как мидл, верно понимаю?).
Но прогать хотелось бы, особенно какую-нибудь технику.
Проблема в том, что я - ебаный гуманитарий, а на С++ везде хотят технаря или выпускника ВУЗа по профессии программист.
>как мидл, верно понимаю?
Не знаю. Что-то на соевом. Как ты определяешь что такое мидл?
>С++ везде хотят технаря или выпускника ВУЗа по профессии программист.
Это так.
>Не знаю. Что-то на соевом. Как ты определяешь что такое мидл?
https://ardecs.com/blog/23-02-2017/?lang=ru
140к - это техподдержка в интеграторе, где даже кодить не надо. Для кодинга это реально днище работать за такие деньги.
ну имба же имбовая или не?
не теговое говно по типу XAML/WPF
А нормальный человеческий декларативный язык с
интеграцией JavaScript и C++.
Писал кто-нибудь уже под мобилку на этой шарманке?
Какие подводные?
Слишком много деанона.
Подводные такие что куты слишком жирные. Захочешь ты написать крестики нолики, а в итоге высрешь 50 мб нечто.
Куты нужны только в одном месте - это софт от студентов под кеды и эмбедед где распаяли чуть больше памяти чем обычно. В остальном технологию надо подбирать под задачу
Остальное это что? Если ты про мобилки то конечно есть варианты намного лучше
я тот анон, что ебал неделю тут всем головы насчет лекговесного GUI для несложного ПО под винду (в идеале кросс)
какие выводы я сделал:
winapi - норм (под несложные задачи), но на 11 винде отлетает из-за постоянных ошибок при работе с паматью(кучей).
MFC/VCL - галимые рудементы, особенно VCL
WinForms - не пробовал, не знаю. Но отзывы на форума были не самые лучшие.
Qt - лучший вариант однозначно, но блять
"А че весит так дохуя? ты программист или хуй собчай? Тогда перекомпилируй весь фреймфорк в статику, мы так делали когда-то.." уебки...
В итоге запилил на WPF(Avalonia) на С# сука...на C# который я первый раз в глаза видел, благо задача несложная была..
и то заебался с этими биндингами.
Как вариант еще делать через микросервисы (Web-интерфейс), но на работке старперы даже рассматривать такой вариант не стали.
Все правильно тебе петровичи сказали. Ты программист или хуй собачий? Гитгуд. А то тебе так и продолжат лапшу на уши вешать как они че то там делали заебися, а ты и развесишь свои лопухи и мычать в ответ будешь.
Вообще я когда куты в статике под линукс собирал, у меня стрипанутый бинарь в релизе получился в районе 30 мб и с огромным количеством зависимостей.
Под винду это будет скорее всего пожирнее, ну 100МБ скажем, но раз дело на пк и если петровичей это устраивает, то почему и нет.
А вообще я хз кого ты тут ебал, но тебе должны были посоветовать амгуи какой-нибудь и все дела
>Вообще я когда куты в статике под линукс собирал
ты сейчас попробуй собери 6 кут в статику под 11 винду
что за амгуи?
Блять зачем мне это нахуй надо? В чем проблема просто пиши словами...
Люди собирают же, когда установщик прикрыли, я свечку не держал, но что там? Ошибки компиляции? Как тогда они просто либы распространяют?
ImGUI
Ну ты тип какой то странный. Пишу не первый, но о чем речь ты не понял.
В том что она подходит под твой реквест, че за вопрос блять еще один? Я тебе продавец какой то что ли, впариваю что то тут?
да, ладно просто же спросил
Может кто то тут собесился на qt формошлебство на плюсах, что примерно у вас спрашивали по ним?
сигналы/слоты по теории и то это врядли
а так спросят, что конкретно на кутях делал и все..
ну максимум какие модули использовал: сокеты, базы данных
хз че там спрашивать даже
про многопоточку разве что еще
Если целевая винда 10 или 11 то вообще то приложения UWP в основе которых лежит WinRT, можно писать на обычном с++ (те не нужны специальные расширения языка).
Если нужно поддерживать старые версии винды, то есть еще библиотека wxWidgets.
Сегодня это называется у них C++/WinRT, и при написании приложений ты используешь "обычный" (без расширений) с++17.
штука годная, не спорю
но как теперь во всей этой херне разобраться?
Посмотреть в примеры
Понял спасибо
Вроде бы все это знаю, но все равно трясусь весь
Самими кутями не пользовался с курса второго
да на кутя похуй, изи фреймфорк
Я тоже пришел когда, им нужен был кодер на кутях
я сказал кутя не знаю...похуй освоишь
ну и освоил, да там осваивать нечего так то
>няшики
ты дурак что ли (бака)?
какие тебе тут няшики
лично у меня к примеру глаза на выкате, зрение -8, сутулая спина (как у драного пса), и два подбородка и геморрой
Ну я няшик например.
Используем на проекте Gtest/Gmock/Gunit. И если писать полный тест типичной функции, то это - протестировать что при плохом результате в функции, она выходит, потом тоже самое только для строчки ниже, потом снова и снова...
Есть ли какой-то выход из ситуации, чтобы не писать 10000 ctrl-c ctrl-v тестов? Мб посмотреть какой-то другой тестовый фреймворк.
В идеале, указать какие вызовы что должны возвращать при правильной работе, а тесты на говно как-то подстраивались сами.
> Есть ли какой-то выход из ситуации, чтобы не писать 10000 ctrl-c ctrl-v тестов
Wishmaster 3.0
есть у меня скачанный шланг, но вот понадобилось мне получить ir из сишного кода, ок, получил его через ключик "-S -emit-llvm" (или asm просто -S), а вот как мне теперь из ir получить бинарник? Т.е. чтобы не сразу main.c в main.exe грубо говоря, а из main.ll получать. Везде пишут, что для этого используется компилятор IR, т.е. llc.exe, но в скачанном шланге такой инструмент не наблюдается как отдельный. Нужно саму LLVM выкачивать с сайта еще или все же в шланге есть этот файл или ключики волшебные, чтобы такое провернуть?
Компилятор состоит из фронтенда и бакенда.
фронтенд(ы) это программа которая парсит и разбирает конкретный язык, переводя его в некое общее представление, дальше это представление передается в бакенд (llvm) который во первых делает сложные оптимизации а во вторых переводит все в коды целевой машины.
По идее без бакенда никак нельзя но если оно выдает ажассемблер то я даже и не знаю, или оно выдает некий абстрактный ассемблер с абстрактными регистрами?
про энды - да, я в курсе
ну вот я могу получить ir и выхлоп ассемблера видимо сразу на целевую платформу,
видимо ручками собирать llvm, чтобы llc.exe тоже был или скачать у них с сайта релиз, может там есть
у кого стоит на линуксах может, посмотрите пожалуйста у вас в каталоге llvm/bin есть llc
теперь llc встроен в clang в релизных сборках, но из исходников можно собрать как отдельную тулзу
для сборки из ir (файлов ll или bc) просто скармливаем его теперь clang, например:
clang main.ll -o main.exe
Ну тогда компиляй ассемблер чем нибудь, нельзя так?
Будет конечно -O0 но тебе наверно похую на оптимизации?
Нет. Полная ерунда план. Почитай лучше какую-нибудь кс фундаменталочку: сети, операционные системы, алгоритмы, дизайн. Плюсы это так, хуйня, просто язык ведь, ты его сейчас выучишь, а через пол года хелоуворд простой не поймешь без постоянной практики. А вебмакакой тебя сделала твоя доменная область, соответственно просто расширяй кругозор
Соглы с аноном выше, если уже так хочешь пониже спуститься в системщину, то это можно и комфортно на го сделать
Посмотришь как сети\ОС и тд устроено
>Какие требования?
Почти никаких, устраивался ещё пока был студентом, наличие высшего образование не обязательно.
>Что надо знать?
Да собственно ничего, всему можно научиться прямо на месте работы. А так там Qt основной фреймворк, он простой в большинстве случаев.
Выручайте. Когда создаю экземпляр NavObstacleHandler и передаю в него указатель на NavGraph, то во время выполнения конструктора этот указатель валиден. А после выполнения конструктора уже нет. Есть ли ошибка в SetupGrid функции?
Не до конца понял как это работает, но вопрос решил создание экземпляра NavObstacleHandler через new. В самом SetupGrid обращение к ObstacleHandler выдавало нужный результат, т.е. экземляр создается и копируется в переменную, но после завершения блока функции, почему-то в нем все переданные указатели слетают в nullptr.
че хуже ue, qt или с++/cli
где осталось меньше от крестов
В лучших традициях крестов со времён CFront.
>с++/cli
Сейчас под винду есть то что называется C++/WinRT, на нем ты пишешь любые приложения в тч и гуй на с++17.
Пидора ответ.
Лично мой путь был js -> php -> C -> C++
Php меня научил ООП, плюс у него охуенная документация и при том на русском. Но в плюсах в итоге не оказалось полноценного ООП с абстрактами и интерфейсам, в плюсах ООП буквально такой же как в жаваскрипте - прототипированная структура с функциями, разница только в том что в js она динамически изменяемая/расширямая с гетерами сетерами, а в плюсах поведение объекта задается декларативно через операторы. Почему джаваскриптовый объект Date при выводе в консоль печатает строку а при сложении выдает миллисекунды? Потому что в плюсовом интерпритаторе вызыватся соответствующий класс-оператор при чем с конкретным шаблонным типом
Date::operator+(Number)
Если сложить Date с массивом или чем то ещё что явно не прописано, тогда вызывается оператор класса от которого он унаследован, то есть Object::operator+(Object). Все объекты в js наследуются от базового и собстрнно поэтому там такая магия с операторами и происходит, js и задумывался как быстроинтерпритируемый язык он построен не на стеке и байткоде как джава а на плюсовых классах и шаблонах. Динамическая надстройка над плюсами, в пользу этого еще говорит такая вещь как передача любого объекта строго ссылкой
А вот php как раз динамическая-ООП надстройка над Си, там и массив по сути куча без параметров строки и массивы вычисляются функциями count() и внезапно strlen(), и любые аргументы любой функции можно передать ссылкой. Тогда как в js ссылкой передаются конкретные типы, что опять же говорит в пользу foo(Object&) подобной семантики.
Так что если наверное изучение плюсов позволит лучше разбираться по крайней мере в js.
> Но в плюсах в итоге не оказалось полноценного ООП
В плюсах ООП самое что ни на есть полноценное. Полноценнее некуда, очень мало есть языков, которые могут похвастаться наличием множественного наследования
> с абстрактами и интерфейсам
Да ты ахуел. Есть абстрактные классы, они поддерживаются языком (класс у которого есть хотя бы одна чисто виртуальная функция), и интерфейсы, они не выделяются в отдельную сущность, НО как концепция их вполне себе можно реализовать.
Ну по сути ведь так и есть, плюсы это шаблоно-ориентированный язык с совсем другой парадигмой. Просто страуструп не был мудаком и сделал так что они легко парсятся в си и компилируются как си, это в свое время позволило без всяких llvm использовать оптимизации сишных компиляторов, и с другой пользоваться сишным кодовым добром.
quickcheck, лол
и делать упражнения,для начала) но я сам работаю на швиндовс. Виртуальные машины не подходят из-за того что они бля мега неудобные, был еще варик про WSL но я не уверен, будет ли он работать на пиратской версии винды. Также варианты с установкой второго диска(который я кстати купил уже, но обосрался) на которые накатывается линукс и юзать таким образом два диска с виндой и линуксом из-за того что я криворучка ебаная и риск наебнуть материнку и че то еще слишком высок. Что можете посоветовать?
wsl
>будет ли он работать на пиратской версии винды
Будет.
> из-за того что я криворучка ебаная и риск наебнуть материнку и че то еще слишком высок
Материнку не наебнёшь никак, только если физически, наверное. Но это совсем криворуким быть надо, чтобы SATA провод подключить так чтобы всё сломалось.
Проблема может быть разве что с тем, что ты EFI-раздел наебнёшь, но он не должен наебнуться, если ты сделаешь всё правильно, да и фиксится это легко.
В моем понимании "полноценное" это когда реализованы и/или задокументированы все ооп-конструкции. В cpp ООП своеобразное, оно декларирует правила наложения/вложения структур и гарантирует безопасное обращение к их сегментам, тем самым вносит некоторый порядок в сишный хаос довольно таки неоптимальный для исполнения/оптимизаций.
>Материнку не наебнёшь никак, только если физически, наверное.
Quick CPU — это приложение, разработанное для точной настройки и мониторинга производительности процессора, параметров питания и напряжения, таких как: парковка ядер, масштабирование частоты, Turbo Boost, C-States, Speed Shift и FIVR Контроль, а также некоторые другие возможности.
> -- Этот Кусок Кала мне запарковал на смерть 6 ядер на старом ноуте и что теперь делать удалил и уже купил процик б.у вот так что. Товарищи не паркуйте ядра не будьте Мудаками как я.
> -- Замена bitsum только намного опаснее. Может завесить ваше железо как два пальца об асфальт. Осторожно!
Это звучит как комментарии к файлам на сайте rghost
> не качайте это вирус у меня от этой хуйни брат умер!
> реализованы и/или задокументированы все ооп-конструкции
Документацию от ISO пробовал читать, клован?
> В cpp ООП своеобразное
Никого не ебёт что ты там нафантазировал себе. Есть чёткое определение ООП, кресты реализуют все его составляющие.
Да, всё так и есть, но зачем визжать, что в другом языке всё не так, как ты ожидал?
>>48020
Визжишь тут только ты, шизик порвавшийся. Если в языке А нет конструкций абстрактных классов и интерфейсов, то значит их нет, кого ебет что ты там себе имитируешь (и главное зачем)?
Кто тебя вообще научил чуть что виртуальные методы использовать? Еще и не определенные, тебя же вообще к плюсам подпускать нельзя, ебанутый.
> С++
> нет конструкций абстрактных классов и интерфейсов
Это нормально, наверное вы ещё на лекциях просто до них не дошли, можешь попросить своего препода о них рассказать
Пхп-макака, зачем ты про ООП рассказываешь, если даже не знаешь что это такое? Твои интерфейсы в ООПе называются полиморфизмом. То что ты изобрёл какой-то свой ООП с полиморфизмом обязательно как в пхп лишь показывает твой низкий уровень интеллекта. Алсо, в отличии от отсталого пхп, в крестах есть статический полиморфизм через шаблоны и концепты. Динамический полиморфизм сейчас почти не используется в компилируемых языках, потому что медленный.
Я понял что твои религиозные чувства задеты тем, что кто-то посмел сказать что в плюсах чего-то нет или реализовано не в полной мере.
Я не понял какое отношение это все имеет ко мне и моему посту, иди плачься об этом своим друзьям в протыкласники.
Нет, нам и под водой хорошо.
лень те даже отвечать, ибо в башке у тебя полная каша
не ведемся на провокации нам тут еще 100 постов сидеть а это неделя примерно
Ну что тредовские, как вам новый стандарт?
Чего ждёте больше всего?
Комитет по плюсам это такое же сборище уровня нашей госдуры, принимают, принимают, а лучше бы отменяли. Но ладно эти хотя бы понимают.
Постоянно завозят в стандарт говно уровня как написать одно и то же 1000 разными способами или у нас есть проблема пиздец глобального уровня от нее страдает 1 человек, мы её решили.
А лучше б завозили как раз то чем занимается большинство быдлокодерков вроде местных двачунов, те как удобно писать ио код, как раз планировщики, сеть, корутины, но не, это же сложно, поэтому и нахуй надо
Да я посмотрел. Они их поддержали в компиляторе, но чтоб их хоть как то минимально использовать ты все равно идешь за какой-то либой на гитхабе от васи васечкина и надеешься что в ней нет говна и что вася не забросит её через год после того как наиграется (а он забросит)
Проблема в том что все что не касается каких то абстракций или кроссплатформенно или же просто по мнению таких плюсовичков не соответствует их эстетическому дрочу то просто обходится стороной по причине: деталь реализации, разбирайтесь сами. На самом деле эти люди просто не хотят писать настоящий бизнес код который решает не абстрактные, а реальные задачи. Не хотят по причине "код некрасивый получается"
Там сидят в основном инженеры с 20+ годами опыта, при этом учитывая что работа комитетчиков не оплачивается, большинство там находится за счет крупных компаний (майкрософт, яндекс, гугл, нвидия и т.д), которые занимаются созданием кода для других разработчиков (SDK, библиотеки, апи и т.д) - отсюда и такой упор в метапрограммирование (средство в первую очередь для разрабов библиотек) и на абстрактные вещи типо корутин или экзекьюторов.
С++ это язык для крупного энтерпрайза, и комитет действует в первую очередь в его интересах. Рядовые разработчики без проблем могут себе сделать библиотеки со всеми удобностями, для этого комитет не нужен.
Вот именно что там сидят всякие ебанутые задроты которые пишут мировой хайлоад и делают язык под себя, и еще парочку ученых для престижа взяли. В общем собралась кучка говноедов умников и присвоила все права на язык себе, а на смертных заводчан вроде нас им похуй.
Посмотри хотя бы что они с буста в стандарт тащут десятилетиями, это максимальные декларативные синтаксически нагруженные абстракции. Они язык делают полностью под себя, те да для написания кор библиотек типо асио, прото и прочего такого, при чем специально переусложняя. Потом ты смотришь на такую либу на 23 стандарте и просто идешь нахер. А как речь заходит о какой то более конкретной вещи, которая действительно нужна многим, то выходит комитетчик и говорит: бля туда даже не смотрите, вот наша поделка, юзайте просто её. Это норм по-твоему?
И нет, плюсы не только про бигтех. На плюсах пишется огромное количество прикладных программ, эмбеда очень много стало. Но этот класс проблем просто игнорируется, а запрос есть, а у самого комитета очень однобокий взгляд на плюсы, поэтому никто решать их не торопится
Еще забили хуй на энтерпрайз, из-за чего кресты в энтерпрайзе почти сдохли уже, на них нихуя не пишут крупных новых проэктов с системой расширяемости (плагины), ибо это все требует откатываться на 40лет назад и хуярить либо сишные интерфейсы на границах загружаемых модулей либо городить очередной самопальный СОМ.
Но стандартизации загрузки-выгрузки классов даже в пропозалах нету. Просто потому что это гиморно с организационной точки зрения и не весело. Тк энтерпрайз это вообще не весело. Зато денежно. И эту нишу кресты полностью проебали жавке и частично шарпу. В которых есть загрузка-выгрузка классов из дин. модулей, и в которых есть генерики вместо шаблонов которые этому всему не мешают.
Хотя тут есть интересное замечание - а именно крестоблядки вообще предпочитают не замечать проблемы лол.
>На плюсах пишется огромное количество прикладных программ, эмбеда очень много стало.
Не пишется. Используется приплюснутая сишка, а не кресты.
Один из маркеров, к примеру, как используется STL. Крутят векторы в циклах по итераторам и делают лесенки из ифов. Позорище.
Я именно такой даун который так и делает, и че ты мне сделаешь? Покукарекаешь что это никруто?
Вообще именно об этом я и говорил, писать одно и то же 1000 разными способами, при том это ни на что это не влияет, что ты в императивном стиле что-то дристанешь, что в декларативном, даже строчек кода столько же, а читаемость пиздец как ухудшается, потому что сам такой стиль выглядит убого по сравнению с удобными языками, которые под это проектировались.
Да и писать декларативно на плюсах имеет смысл как раз начиная со старших стандартов, с 23-26 уже да
Да для вас даже синт сахарок завезли - псевдо лямбды. Ну и семантику перемещения, чтобы за счет этой магии вообще просадок в производительности по скорости не было. Но нет, блядь, будем крутить циклы по контейнерам и лесенки из ифов как деды которым лень было книжку по STL открыть.
Псевдолямбды?) Братуха а что б что? Возьмем 17 стандарт который сейчас берет в разработку большинство. У тебя половина проекта будет в стл стиле, другая в "приплюснутом", просто потому что языка не хватает. Так и че толку? Если ты увидишь как я напишу через цикл, а не через алгоритм у тебя температура на пол градуса поднимется или давление? Какая хуй разница литературно, но вот лестницы из твоих лямбд сидеть читать вот это трушно, по зумерски недидово? Да попустись, надо попроще быть
>Если ты увидишь как я напишу через цикл, а не через алгоритм у тебя температура на пол градуса поднимется
да
Ты что, совсем сумасшедший?
Если стл не использовать, то из пустоты материализуются препод и как даст тебе по лбу! Так ещё и плохую оценку поставит и наругает
В java можно внутри конструктора вызвать другой конструктор, который будет работать с тем же объектом посредством this(список параметров/аргументов). Есть ли что-то подобное в c++ или придется что-то изобретать?
Какой препод? Тот, который запрещал юзать STL и заставлял всё реализовывать с нуля?
гугли делегирующий конструктор
У нас видимо были разные преподы
Неужели у вас не было этой хуйни по типу:
- в по не должно быть сырых циклов
- ахуенные истории о том что ты на самом деле не нужен
- тру стори про настоящее ооп и функциональщину
То есть конструктор по умолчанию работает, если не пишешь никаких конструкторов и просто создаешь объект типа Person p1.
Так же работают конструкторы со множеством аргументов синтаксиса вида Person p1(аргумент1, аргумент2, ..., аргументN).
Азалупа вида Person p1() не работает, хотя для нее выделен на пике конструктор без аргументов. Как билят использовать конструктор без аргументов?
Компилятор думает, что Person p1() это объявление функции, которая не принимает аргументов и возвращает Person. Либо пиши Person p1{}, либо вообще скобки не пиши.
Я там опечатку сделал, указав тип данных перед переменной name в конструкторе. Убрал это, все равно шляпа. Вот без опечаток.
У тебя даже в тексте ошибки то же самое написано. Советую читать что тебе пишет компилятор. Иногда полезно.
Спасибо. Я пробовал это, и у меня не работали методы, будто конструктор проигнорировался. Но сейчас снова попробовал, и заработало (все как всегда через очко).
Ну тогда вопрос - почему синтаксис скобочек не работает, это бы явным образом показывало, что в классе работает не конструктор по умолчанию, а самописный нами, переопределенный короче.
То есть написали мы простой конструктор без аргументов, чтобы счетчик какой увеличивал о создании объекта. А шоха рангом пониже гадает, это просто туполобный копирователь полей, или он что-то еще делает.
>почему синтаксис скобочек не работает
Во-первых, работает, если скобочки фигурные — {}.
Во-вторых, если бы оно работало так, как ты хочешь, ты бы не смог сделать объявление функции, которая возвращает объект класса и не принимает аргументов.
Инициализация это одна из проблем C++. Я не знаю, почему тупые дегенераты из комитета не смогли просто сделать унифицированный синтаксис с фигурными скобками — нет, нужно было всё испортить с этим ебучим std::initializer_list.
В результате имеем:
auto foo = { 42 };
auto bar { 42 };
Хочешь сам угадай в чём подвох, хочешь посмотри под спойлер.
у foo тип std::initializer_list<int>, у bar — int
Ну не только для бигтеха, но там больше всего денег и челленжей. Написать функцию для разбиения строки по токенам ты можешь и самостоятельно, а вот задизайнить фреймворк для многопоточности это уметь надо.
Спасибо за большой развернутый ответ. Я уже придумал сам себе контраргумент - инкапсуляция. Не зачем другим вообще задумываться о реализации твоего кода (т.к. по фигурным скобкам не различить переопределенность конструктора, их можно и с конструктором по умолчанию ставить, значит и не надо, раз умные дяди сказали).
Как это правильно называется и куда гуглить? Появилось желание доделать проект для души, там пиксельная бродилка обычная.
Скорее всего, думал какой-то умный термин для этого есть. Спасибо, буду пробовать
Структура проекта это не преждевременная оптимизация, а просто здравый смысл. Пусть сразу привыкает к нормальному подходу, потом со временем хуевые решения будут интуитивно восприниматься негативно.
Надо сначала набить шишки, чтобы самому понять что это не прикол, не изуверство, а реальная необходимость, не засирать пространство имён.
> не изуверство, а реальная необходимость
Чел, у него видимо вся игровая логика в одном файле лежит
И персонаж, и геймплей и все остальное
У плюсов свой синтаксис у си совместимого кода свой, хули не понятного? Плюсы и D это си совместимый язык но сам по себе это не си, у него другие правила.
Чё за хуйню ты высрал и зачем?
Дворником.
Учи эмбедед/qt и сиди как пол треда на заводах чиль
ну или учи графику/системщину/комп зрение и сражайся за 2 вакансии джуна
Объясните,пожалуйста, что такое этот ваш ЕМБЕДДЕД и как его учить, я глупенький просто, ничего не понял. И как вы вообще находите работы на заводе, типа, ну они же не на хед хантере вакансии публикуют, да?)
когда нужно выделить память и конструировать на этой памяти элемент T
Только в одном случае - при реализации смартпоинтеров.
int main(int i, char c)
{
fignya &v=new fignya();
delete v;
}
Почему так нельзя? Что можно вообще передать оператору delete?
Оператору delete нужно передавать указатель (звёздочка), а не ссылку (аперсанд)
Более того оператор new также возвращает указатель, а не ссылку
Читай ошибки компилятора, более чем уверен он тебе должен был написать в чем ты не прав
ну или научись чат гопоту спрашивать
1. При обсуждении того, что представляет из себя понятие sequentially consistent, используют 3 других понятия: modification order, synchronization order и happens before. Modification order дает гарантию того, что для каждого атомика в отдельности существует история его изменений, synchronization order - что такая история существует для всех атомиков в совокупности, гарантия happens before означает, что, если событие записи happened before события чтения, то при чтении гарантированно прочитается записанное значение, при этом событие А happens before Б, если а) для одного треда - А написано раньше Б в тексте программы б) для разных тредов - в Б читается значение, записанное событием А.
После этого говорится, что при флаге std::memory_order::memory_order_seq_cst даются гарантии synchronization order и happens before (то есть дают программе последовательную согласованность), при memory_order_acquire и release - modification order и happens before, memory_order_relaxed - только modification order.
Только я не понимаю, почему modification order и synchronization order вообще дают какие-то гарантии? Ну то есть, есть какая-то история, и что? Как она используется, она хранится где-то что ли? Или я где-то не так понял?
2. Я правильно понял, что volatile int и std::atomic<int> при использовании методов с флагом memory_order_relaxed это одно и то же? Потому что ключевое слово volatile означает, что обращения к памяти не будут переупорядочиваться, про атомарность операций ни слова, а modification order как будто дает такую же гарантию.
Помогло. Спасибо.
Можно, только что затестил
>Только я не понимаю, почему modification order и synchronization order вообще дают какие-то гарантии? Ну то есть, есть какая-то история, и что? Как она используется, она хранится где-то что ли? Или я где-то не так понял?
Конкретная имплементация этих гарантий дается аппаратной платформой, в основном это барьеры памяти. Чтобы понять как барьеры связаны с "историей изменения" нужно понимать из-за чего вообще возникает ситуация, когда порядок операций может измениться (это не связано с оптимизациями компилятора).
> Я правильно понял, что volatile int и std::atomic<int> при использовании методов с флагом memory_order_relaxed это одно и то же
Нет, это вообще ортогональные вещи. volatile работает с компилятором, atomic работает с процессором. На х86 например из-за самой платформы все сторы работают как memory_order_aquire, а все чтения как memory_order_release, а все rmw как seq_cst. Т.е можно хоть везде relaxed писать и все будет работать, но когда ты это портируешь на арм то все взорвется.
Рекомендую лекции (а лучше весь курс) Романа Липовского на ютубе, по модели памяти там есть 2 огромных лекции и семинар + десяток статей. А по честному рекомендую забить на это всё хуй потому что это нужно в 1-2 компаний на всей планете
Ты что-то неправильно делаешь
Только ifdef'ами
Но так или иначе, в каждое единице трансляции у тебя у каждого метода/функции должна быть только одна реализация
хотя есть и исключения, прочитай про odr и какое к нему отношение имеет inline
> Рекомендую лекции (а лучше весь курс) Романа Липовского на ютубе
Я как раз после той самой трехчасовой лекции №7
> нужно понимать из-за чего вообще возникает ситуация, когда порядок операций может измениться
Они возникают на уровне процессора, потому что он пытается оптимизировать обращения к памяти так, будто код однопоточный. Барьеры указывают процессору, в каких границах перестанавливать обращения к памяти можно, а в каких нельзя. Так ведь?
Я видимо не так вопрос сформулировал, я не имел в виду "Как реализуются гарантии на разных архитектурах процов", у разных процов разные команды, используемые как барьеры, это ясно. Я имел в виду, что формулировка "для атомика есть история изменений" невнятная. Факт наличия истории изменений сам по себе не влияет на работу проца, ее же надо как-то использовать. Условно, если бы формулировка была "у каждого атомика есть история изменений и при каждом его чтении возвращается то значение, которое должно возвращаться согласно истории", это заставляло бы проц менять свое поведение и оптимизировать в меньшей степени
> volatile работает с компилятором, atomic работает с процессором
Воо, что-то такое я и хотел прочитать, спасибо за ответ. Как эту жесть вообще в голове держать
> рекомендую забить на это всё хуй
Так и сделаю, походу на собесе это никто не спросит, раз почти никто не знает
>Барьеры указывают процессору, в каких границах перестанавливать обращения к памяти можно, а в каких нельзя
Процессор ничего сам не перетасовывает, он даже не знает о том что у тебя там в коде написано. Просто он может батчить определённые вычисления на одном ядре, и при этом без синхронизации эти вычисления какое-то время не будут видны другим ядрам. Для того чтобы быть уверенным, в том что ядро точно выполнило отправленные на него операции ты ставишь барьер, и процессор перед выполнением следующей команды обязан обрабоать предыдущие инструкции, а не просто где-то себе их "запланировать".
Вот это "перестанавливать" это просто наблюдаемое поведение и так оно выглядит со стороны, на деле просто ядра не синхронизируются друг между другом и получается как получается.
>Так и сделаю, походу на собесе это никто не спросит, раз почти никто не знает
Могут спросить в некоторых компаниях (в интеле над onetbb работают например), но просто углубляться в эту тему бе зкакой-то конкретной цели (типо "попасть в интел в команду onetbb") я бы точно не стал. Я сам вьебал на это пару месяцев и так и не применял на практике, да и даже на собеседованиях ни разу не спрашивали.
электротурбозумер
Читани у Рихтера "Программирование серверных приложений Windows" вторую главу "Ввод-вывод и межпотоковое взаимодействие". Будет примерно понятно на чем все это основано. В линуксе похожие механизмы сделаны.
большие массивы 1000+ держать на стеке не очень разумно.
Впрочем у плюсовых массивов и так алокаторы вызываются всегда, на стеке только локальные параметры объекта и указатель на данные.
Так что совет такой:
std::vector<char> - никогда (в идеале)
new char[N]; - по ситуации.
Мэттью Фаулер - Asyncio и конкурентное программирование на Python
Простой пример. Иместся несколько стратегий. Стратегии используются в пределах одного сервиса для обработки данных. Стратегии удобно сделать в виде классов переопределяющих чистый виртуальный метод. Зачем мне городить что-то кроме как new SomeStrategy()?
Думаешь, кроме использовать new или использовать стек других вариантов не существует?
> вызываются всегда, на стеке только локальные параметры объекта и указатель на данные
Скажи-ка мне дружок пирожок где лежит std::string("xuy")
Другой пример и кьюта со сборкой мусора через отношение родительский - дочерний объект. Указатель на парент добавляется в конструктор QObject. При уничтожении парента уничтожаются все дочернии кьюобжекты.
Продолжите программу. Прочитайте из входного потока целые числа в переменные var_1, var_2 и var_3, записанные в одну строчку через запятую. Побайтно занесите их значения в массив типа char (в порядке var_1, var_2, var_3). Выведите в одну строчку через пробел по порядку значения массива в виде беззнаковых десятичных чисел.
Вот три числа 7356, 6575729, 100433564
Объявил их и считал как short, int, long long
Въебал указатели типа char на каждый из чисел
Въебал массив char'ов длинной 14 (2 + 4 + 8)
На пикриле код.
Как я понимаю, должно работать так:
Я прохожу побайтово чаровским указателем по каждой переменной и значение конкретного байта заношу в массив.
Но нормально кладется только первое short число, а дальше хуйня какая-то.
Мб напутал с индексацией в массиве самом?
Кто знает, подскажите пожалуйста
Блядь на пикриле типизация наебана, это я уже ковырялся, вдруг прокнет
по сути там
short var_1
int var_2
long long var_3
@@@
далее в проэкте используешь только одну стратегию
>Как это правильно называется и куда гуглить?
Некуда гуглить. Это только с опытом приходит. Стены, которые надо проломать головой, чтобы опыт был, это обычно: прога в 2000-5000 строк, потом 20-50 тысяч, потом несколько сотен тысяч, после этого уже размер не важен. На каждом этапе принципиально ломается стиль, да и вообще подход, понимаются все более глубинные вещи. Сотни тысяч-миллионы строк - это уже командная работа, конечно.
дебил бля
Короче на пикриле суть. Структура A содержит структуру B, и одновременно с этим B также содержит структуру A. Как бы взаимозависимые классы, должны давать ошибку, точно из-за бесконечной рекурсии при инициализации. Но если как на пикриле именно в классе B создать не объект A, а указатель на него, то эта бадья компилируется.
Что это вообще такое, где-нибудь применяется этот акробатический трюк? Или это типо баг такой, который находят лишь пытливые говнокодеры, и так писать не надо?
рекурсинвые зависимости в классах плохо
иногда без этого никак, и иногда это применяется
когда оно тебе понадобиться, ты сам поймешь что нужно делать
>где-нибудь применяется этот акробатический трюк?
Везде применяется, только В обычно темплейтные. Например, B - это список, а А - ноды дерева.
дебил бля
Никакого вката в плюсы нет, забудь об этом.
Все хорошо
Из вакансий qt/эмбедед, на одну вакансию по 200 откликов
Если с Москвы то есть варианты получше
Пробовал через cmake вместе с conan в роле пакетного менеджера, но вся эта хуйня порушилась. Походу с новым релизом conan. Да и в принципе cmake видится настолько ебаным болотом, что страшно даже начинать что-то писать, потому что быстро приходит осознание, что если это хоть что-то кроме минимального проекта без зависимостей, то на еблю с cmake уйдут часы. Даже cраный JS в этом плане на голову выше. Обидно
Как вы с этой хуйней справляетесь? Может я долбаеб просто и что-то упускаю?
То, что у тебя всё порушилось при обновлении conan - вина conan, а cmake, ёбаный ты утёнок. Попробуй другой пакетник взять, vcpkg например
> Есть ли в плюсах стабильный пэкедж менеджер
Нет, носи все зависимости с собой
Cmake + git submodules
Если не доверять пакетным менеджерам, то, видимо, и правда это лучший вариант.
Ну а вообще аноны, как вы у себя эти задачи решаете? На производстве там, в личных целях. Хочется узнать побольше о том, как анон в своей массе собирает проекты
Никакого секрета нет. Каждый раз ебёмся несколько часов, сторонние либы юзаем по минимуму, либы храним в репозиториях проекта, тащим header-only либы.
>Если не доверять пакетным менеджерам
Как вообще в принципе можно доверять пакетным менеджерам от васянов?
Может они тебе троянов наустанавливают? Это ж не линукс, где ты можешь прописать зеркало, и скачиваться будет ТОЛЬКО оттуда откуда ты прописал.
Хуею с маковского homebrew. Откуда-то хер пойми вразнобой скачивает свои бутылки водки ебаные, как проконтролировать что не говна наинвестировал мне в систему - хз.
Да батек твой пидор дырявый
Аноны тут обсуждали реверс инжиринг и там с анонами отсуждали античиты и проч дарйверы дебагерры...
Куда это все похерилось нахуй
Обсуждай, долбоеб. Кто тебе не дает? Пиздец даун
std::weak_ptr
>Это ж не линукс, где ты можешь прописать зеркало, и скачиваться будет ТОЛЬКО оттуда откуда ты прописал.
А ты conan вообще пользовался, сынок? Там вполне можно такое сделать и развернуть локальный сервер с пакетами. Пиздуй доку читать, хуйло ленивое
>реверс инжиринг дарйверы дебагерры
Сомнительно. Я бы подальше держался от всей этой хуйни
>>55855
Васян, спок
>>55868
Не пользовался, внучок, и не собираюся.
>локальный сервер лисапедов
Да, заюш, буду ща серверок пилить для этой параши, мне ж заняться нечем больше. А завтра им приспичит все улучшить, и мой серверок нахуй попиздохает.
Тоже решил поковырять попробовать плюсы, 2 часа пердолился с симейком, компиляторами, гсс так и не установился, не понял в чем проблема, ладно хуй с ним, поставил кланг, заебись, начал билдить, вылезла ошибка, что-то связано с nmake, спросил у жпт, он сказал, что это дефолтный генератор, который был встроен в вижуал студио, поставил другой - ninja, в итоге разобрался, но все равно, такое чувство, что постоянно придется что-то пердолить, как-то все не для людей сделано
В жаве с этим намного проще, просто собрал через мавен и в отдельный xml файлик пишешь зависимости
дебил бля
Я сейчас прохожу курс C++ Developer Professional от компании otus и мне нравится, что там учат создавать приложения, а не только языку. Там сложные домашки на разработку архитектуры и нетривиальных алгоритмов. Книги такого не дают.
Есть книги уровня этого курса + Qt + QML? Если что, я не новичок, у меня 5 лет опыта работы на Java. А работать на C++ все равно не берут.
Книги по плюсам, неожиданно рассказывают о плюсах
Если ты хочешь узнать как проектировать приложения, иди читай паттерны
Если хочешь узнать инструменты для создания приложений иди читай книжки по qt хотя я так и не видел в своей жизни хоть одной полезной, которая не была бы просто бумажным справочником
> чтобы на вопрос на собеседовании, какие книг я читал, было что ответить
Напиздеть не варик?
ну, почитав ответы анонов, действительно, да. Но че вместо плюосв придумать?) ну если они умирают, смысла вкатываться нет, то что тогда можно предложить на замену?? я подумав своим крошечным мозгом не нашел ничего подобного крестам что можно было бы любить как кресты, так шо хуй знает, лучше плюсов для меня ничо нет
> лучше плюсов для меня ничо нет
При этом ты даже на плюсах то не программировал толком, клоун.
Может ли быть переполнение стека при вызове деструктора?
>Когда вызывается деструктор, он выполняется в том же потоке, где вызывается, или для него создаётся отдельный поток?
Неявно новый поток не создаётся. В другом потоке объект может умирать, только если ты его через std::shared_ptr между потоками в пуле раскидал. А так вызов стека происходит в том же потоке, в котором создавался объект
>Может ли быть переполнение стека при вызове деструктора?
Если ты еблан, то чё угодно может быть (буквально толкование UB - кровь кишки распидорасило)
>Не пользовался, внучок, и не собираюся
Ну и съеби тогда, если не знаешь, как оно работает
>Да, заюш, буду ща серверок пилить для этой параши, мне ж заняться нечем больше
Долбоёб? Этим у вас в конторе девопсы должны заниматься, как и всем связанным с artifactory, если в этом появляется надобность. Аргумент был про зеркала ЖМУ/Пинус - мань, а локальное зеркало всей этой поеботы разворачиваешь, получается?
>съеби тогда
Я смотрю, у тебя файррезист задействовался.
Терпи маленький, хочу и сижу тут.
>локальное зеркало всей этой поеботы разворачиваешь
Эта поебота не загружает хуй пойми что хуй пойми откуда, манюнь. Ты не понял нихуя, о чем речь идет. О навязывании привычки устанавливать себе на машину какую-то левую хуйню.
То, что эти качалки в принципе можно перепердолить так, чтобы она качала только откуда положено, вообще не ебет. Речь о ТЕНДЕНЦИИ.
ну да, я
Это жидбрейнвская залупа? У тебя какая то старая версия, в гугл картинках она посвежее выглядит. Да, это получше.
Мне нравится студия визуально, сам в основном пишу в вскоде, но вскод неполноценная среда, поэтому приходится доставать из загашника креатор
>О навязывании привычки устанавливать себе на машину какую-то левую хуйню
Сук, так если ты любым зеркалом пользуешься для своей дистропараши, то ты по умолчанию хуй знает откуда качаешь хуй знает какой кал. К чему тогда аргумент про зеркала был? Вот только не пизди, что всё из исходников собираешь. Да даже если сам собираешь, опять же для конана можно развернуть сервак с собранным калом и ходить исключительно в него
Никогда
Попенсорс + qt
Даже если они прямо сейчас захотят сделать 10/10 конфетку, хоть какой то выхлоп жди лет через 5
что я должен успеть сделать до конца недели?
Ну представь, у тебя есть std::vector, и хочешь ты его передать в конструктор какого-то класса, но он тебе как бы уже и не нужен, но и копировать ты его не хочешь, да, и кидаешь ты его своему классу в конструктор с помощью std::move. В этот момент у тебя тупо свапнутся местами указатель на данные, capacity, size и вот эта вся стдлибовская поебота. По сути ты перемещаешь данные из одного объекта в другой, при этом пользовать объектом, который ты мувнул, уже нельзя
Совершенный в своей говнистости.
До этого писал компилятор (профит).
Сейчас попытался, влезть в OpenGL, но это ебола настолькл несовместима (а именно различные библиотеки), что я просто забил на это дело.
Что посоветуете? Какие либо многопоточные сервера с достпупом к базам данных?
Напиши свою борду на userver
Напиши рендер на вулкане/директХ
Напиши на qt настольный вьювер двача, с возможностью прокрутки к нему других борд
с сетями и эмбедедом что то в голову ничего не приходит
>Напиши свою борду на userver
идея хорошая, а где взять хотя бы какой-нибудь гайд по этому фреймфорку?
А, понятно. Иди лучше анимца посмотри
а чо документация уже на ГАЙД?) я просто на сайт зашел там все по полчкам разложено, читай - нехачу
3. build and start hello service
make build-release && \
make service-start-release
у меня тут ошибки выскакивают, т.е. фреймворк не установить
как это заебало...
без негатива, это к лучшему
можно, у них beast есть или как его там
Какой проект запилить, может кто предложит что-то, что уже делал. Полезное, интересное, дельное.
Планирую использовать gRPC + Protocol Buffers от гугла.
Userver говно поганое так и не встал на мою убунту/
всем добра, жду ващих советов
Борду сделай, аналог двача
Попытайся сделать не монолитку
Потом будешь прикручивать микросервисы как фичи
а вобще советовал бы все таки userver использовать, просто если ты даже установку не осилил, то дальше будет проблемы сложнее и сложнее
как понять не осилил
я его ставил, компилил, но в конце ошибка установки...
и что делать в такой ситуации?
class color_object: public object {...}
Я редкостный
> вместо обычных указателей были пердольные
Хорошо быть нюфаней и не подозревать, какой ад ожидает тебя впереди, где "обычные" указатели окажутся куда пердольнее "пердольных".
там сайт откуда все продукты JetBrains можно на халяву качать
бля ты это я
те же самые мысли
вот как раз сейчас userver устанавливаю, вроде должен встать
если не встанет, то буду тоже gRPS юзать
у тебя есть какие-нибудь гайды по разработке микросервисов?
а блять, это я и писал, ну писдец
пиздец это сложный фреймворк, как в нем разобраться вообще
ты писал на нем?
Какой ни пиши, всё будет вредно и скучно.
Устраивайся на галеру, там подскажут
>каки купят себе дизайнера и сделают наконец нормальную иде, ну невозможно смотреть на эту древнюю хуйню мамонта
Пчел если бы ты знал что последние года происходит в компании qt то ты бы не задавал таких вопросов
Блядь, у тебя самого каша в голове. Нука, долбоеб, попробуй в качестве упражнения написать такой код когда с помощью move ты "отдаешь" на владение vector. Просто попробуй описать свою шизу в коде.
челика который в фю аргументом передает контейнер, а не итераторную пару, а потом обходит этот контейнер в дедовском цикле я могу только обоссать, а не че то там советовать
А что происходит. Ты возьми да и раскрой тайну
Кинул, проверяй личку
Здравствуйте, двач. Начинаю изучать c++, у меня вопрос к тому, как std::cout обрабатывает символы, следующие за бэкслешем. Вот пример:
>std::cout << "\141";
В ответ я получаю символ, соответствующий ВОСЬМЕРИЧНОМУ значению 141 из таблицы ascii, то есть a. Собственно, почему компилятор visual c++ принимает именно восьмеричные значения? А если я хочу указать десятичное значение, почему c++ шлет меня нахуй при попытке написать что-то вроде:
>std::cout << "\97";
Это прикол компилятора visual s++ или стандарта? Почему эта тема почти везде не раскрывается? Алсо, реквестирую материалы по сабжу
А, добавлю. Я читал, что восьмеричные значения требуют нуля в начале, чтобы отличатся от десятичных. 10 в десятичной системе отличается от значения 010 в восьмеричной. Почему это сейчас не необходимо? Даже более того, если я напишу 0141 вместо 141, я получу символ с кодом 014 и 1
Привет. Бро а 97 это че такое в восьмеричной? А 0141 это конпилятор думает 0 или 0141? Или 01? Или 014?
Да это просто приколы, не стандарта и не конпилятора
> как std::cout обрабатывает символы, следующие за бэкслешем
Никак они их не обрабатывает, это делает компилятор. Для std::cout это всего лишь байты, '\141' ничем не отличается от 'A'.
> почему компилятор visual c++ принимает именно восьмеричные значения?
Потому что создатель языка так захотел.
> А если я хочу указать десятичное значение, почему c++ шлет меня нахуй
Потому что создатель языка решил, что никому не понадобится записывать коды символов десятичной системой счисления.
> Это прикол компилятора visual s++ или стандарта?
Стандарта.
> Почему эта тема почти везде не раскрывается?
Раскрывается очень подробно в самых первых главах любого учебного материала.
> Алсо, реквестирую материалы по сабжу
Читай шапку.
Тебе то что до 20-летних скуфов?
>Бро а 97 это че такое в восьмеричной?
Как раз таки 141, я про это знаю. Просто интересно было, чому так.
>Раскрывается очень подробно в самых первых главах любого учебного материала.
Я имел в виду, что просто по запросу в гугле не нашел подробного описания. Везде описываются управляющие последовательности типа \a, \n, никто не пишет про возможность выводить таким образом символы ascii.
Ладно, всем спасибо за ответы, я походу жопой вчера учебник читал
Долбоёб? Ну давай посмотрим реализацию у жму пинус:
https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/bits/stl_vector.h#L102-L108
Вот у тебя нахуй в наглую копируются указатели из пришедшего объекта, при этом в самом объекте эти указатели зануляются. Это то, о чём я говорил - буквально передаётся владение объектом (у гнутых в реализации вектора это указатели на память, где он может делать грязь хранить объекты). Вот тебе описание моей шизы кодом в виде move-конструктора класса, который используется внутри вектора
А, ну ясно, всё такое же месиво из темплейтов как и было 20 лет назад. Не то что у нас на расте.
А что можно писать на расте? Можно написать язык программирования? А ОС? Может хотя-бы игровой движок?
ну да
ну да
Переписывать остальной кал, написанный на Си, чем они и успешно занимаются, вон, свой гит пишут: https://github.com/Byron/gitoxide
Правда, до сих пор не добавили возможность коммитить, но скоро выкатят в релиз - заживём!
Твой что-ли?
Ну, уже получше. Даже асинхронщина есть, уже нехилая такая претензия на около-нормальность.
в твоих 8ми строчках стандартная реализация конструктора перемещения, и че.
при чем здесь std::move.
Ну есть 2 варианта: промышленный код, то это будет тупо приплюснутый си, выглядит довольно уродливо и примитивно.
Второй вариант это околоакадемическая дрисня и выебоны, можешь заглянуть в бустовые библиотеки например (за исключением азио), выглядит уродливо и непонятно.
а, первый вариант, "промышленный" код, это к примеру исходники браузеров на основе хроминиума, прямо образец того когда надо писать на крестах промышленный код и как это уебанство начинает выглядеть на дистанции 15+ лет
асио норм не гони
Синтаксис сишки и так рассказывают в первых нескольких главах любой книги по плюсам. Не расскажут только про стандартную библиотеку сишки, всякие scanf/strcpy/malloc/fopen, только там и учить особо нечего.
Удивительно, как быстро два шизика успели высраться. Не даёт им покоя, что кто-то собирается учить плюсы вместо говнораста.
> искренне советуешь человеку не повторятт твоих ошибок и не тратить время на язык с ебнутым синтаксисом и с отсутствием нормальных вакансий
> называют шизиком
Классика.
бекендом
> Не даёт им покоя, что кто-то собирается учить плюсы вместо говнораста.
Я не топлю за раст. Я учил плюсы больше четырех лет, прочитал кучу книг, курил стандарт, но когда я смотрю на ту хуйню, которую люди пишут на этом говноязыке, у меня просто опускаются руки.
Этот язык просто провоцирует тебя писать говнокод.
Двачую.
Ну ты и хуесос и тут своим растоговном насрал. Ну как там, blazingly fast, уёбок?
С появлением концептов может быть и можно. Удачи попытаться что-то понять при ошибке в шаблоне на C++11
какая то несмешная шутка
1. qmltc
2. no qmltc
Или наборот, мне похуй. Хуй знает зачем вам эта инфа, ну пусть будет
Хотя я даун, че я сравниваю. Вся память ушла на инциализацию плагинов. Поэтому пару кмл файлов транслирующихся в спп не хватает показать разницу, если она вообще есть и в ту сторону.
Наверное все это имеет смысл если собираешь фоллианты кмл кода. Но учтите что это говно динамическую парашу не поддерживает (а это то за что мы любим кмл) так что львиную долу проекта придется переписать
Нет.
try{
UserClass1* qwe=new UserClass1;
//Фигня, что бросает исключение Exception
delete qwe;
}
catch(Exception e)
{
//Обработка исключения
}
Вопрос: будет ли удален объект, на который ссылается qwe?
Ничего ноэксептного в этом мире не существует. Эксепшен может кинуть даже комментарий.
Главное, что у недолбоёбов вся вселенная коллапсирует от единственного эксепшена, ведь трайкетч писать лень и нинужно.
Не будет, исполнение кода же не добралось до delete и прыгнуло в catch. В будущем осиль умные указатели и никогда не используй new/delete напрямую, подобные проблемы исчезнут.
Опция 1: дебаггер
Опция 2: std::cout (просто выведи что то из деструкторе класса да погляди вызывалось ли это)
Вот для вас же долбоёбов придумали RAII и умные указатели, вот объясни мне, нахуя ты сырые new-delete используешь?
Очевидно вкатун просто хотел разобраться как работает try catch
Сложно наверное две извилины для этого напряч
Боже мой. Какая же скучная пораша этот вас с++. Как не интересно в это вникать.
Почему нельзя вещи делать просто и красиво как Игорь Сысоев. Код nginx'а читается как роман
Нет, читай отдельно книги по плюсам и Qt.
>>17838
>>17849
вот это поворот, меня помнят даже. Но да, двач чето уже далеко не так интересен как раньше, по-этому захожу раз в пятилетку.Да и ебучая обезьяна забанила вообще все швейцарские айпи, но это отдельная проблема
Ну начнем с простого. Зарплаты чето типа 220к в год + стоки гросс. Со стоков в этом году хуйнуло примерно +250к, ну и то что у меня было - подросло. Налогов на эту хуйню много - в районе 40% в кантоне Цюрих. Так что да, у среднего работника нвидии состояние измеряется в миллионах долларах у меня их всего 2, т.к. не очень умный. Может домик где-то в Швейцарских пердях куплю попозже
Вынужденная релокация в каком варианте она была у нас - это охуеть не встать как здорово, выбирай любую страну и получай рабочий контракт, хоть штаты, хоть швейцарию, хоть кринжовую корею. Хоть оставайся в Армении и живи там, как Пашинян. Уволиться тоже можно было, давали год ЗП за это.
Можете задавать свои вопросы. На С++ уже практически не пишу, кстати.
Я из-за тебя в студенчестве начал учить плюсы. Потом почти год сидел без работы, пока не выучил нормальный язык.
ITS OVER
>>75994
сейм, в студенчестве ахуел от того насколько тут крутые аноны сидят и решил всё таки в плюсы пойти
теперь работаю qt макакой
Требования к кандидату:
3+ коммерческого года опыта в С++
Уверенное знание CMake/Make
Знание Git
Коммуникабельность и опыт работы в команде
Захотелось побаловаться своими идеями для клеточных автоматов, а хорошо известный мне питон слишком медлителен для этой цели. Соответственно пробую освоить плюсы, и с самим языком проблем вроде не возникло, зато возникли проблемы с непривычностью для меня работы с компилируемым языком. В частности, я не совсем понимаю, как мне использовать готовые библиотеки и как обустраивать не однофайловые проекты. Я правильно понимаю, что если я хочу использовать чью-то готовую библиотеку, то мне нужно каждый раз непосредственно качать ее исходный код? А как это все работает с зависимостями? Если я хочу использовать библиотеки А и Б, каждая из которых использует библиотеку В, то я В скачаю дважды? Вряд ли это так должно выглядеть. Я так понимаю, к этому всему еще имеет отношение так называемый cmake, но я без понятия, как оно работает.
Дополнительно спрошу относительно IDE. Мне пока лишнего функционала не хотелось, так что решено было начать с VS Code, но там как раз таки многофайловые проекты одним нажатием кнопки у меня почему-то компилироваться не хотят(если кто-то согласится и с этим помочь, то вообще супер будет). А вот в Visual Studio все работает, но меня пугает перегруженность, в частности создание миллиона файлов в проекте, предназначение которых я не понимаю. Стоит ли мне пытаться углубиться все же?
В общем, характер моих проблем, надеюсь, понятен. Будет здорово, если кто-то укажет, в каком направлении копать. А то в материалах, что я нахожу, либо учат писать условный хелло ворлд, либо рассматривают эту тему, как само собой разумеющееся.
> Я правильно понимаю, что если я хочу использовать чью-то готовую библиотеку, то мне нужно каждый раз непосредственно качать ее исходный код?
Нет, тебе нужно помимо плюсов выучить CMake и поебаться с тем, чтобы прикрутить к нему vcpkg или не страдать хуйней и взять xmake, но суровые плюсисты тебя осудят за то, что ты пошёл по лёгкому пути
> Стоит ли мне пытаться углубиться все же?
Стоит
>>77707
В телеграме можно, @supapro, оттуда уже отправят куда надо, в частности — нахуй, там в последнее время один (а может, и несколько) админ озлоблен на всех ньюфагов, конкретно по этому вопросу, в @probuildsystems
> xmake
Впервые слышу. Обычно все симейком пользуются. Чем эта хуйня лучше? Не окажется так что я заюзаю, а потом это говно просто забросят а симейк продолжит развиваться?
Это примерно как писать на Rust/Vlang/Zig, когда есть плюсы.
Спасибки!
Спасибо тебе!
> Чем эта хуйня лучше?
Синтаксисом и тем, что всё искаропки. Со смаком поди ещё разберись.
> Не окажется так что я заюзаю, а потом это говно просто забросят а симейк продолжит развиваться?
Может и окажется, кто знает.
И такой код
Widget w({1,2,3});
будет переаллоцировать массив вместо того чтоб его мувнуть в переменную класса? А че за пиздец, я думал на такое точно есть оптимизация
> Widget w({1,2,3});
Такой код, скорее всего, сработает как-то вот так:
1. Сначала вызовется конструктор из initializer_list для вектора в аргументе
2. Затем вызовется мув-конструктор для того, чтобы перенести его в поле класса Widget
Не знаю, про какие переаллокации ты говоришь, у тебя изначально никакого вектора нет, и создать его в любом случае придётся. Дальше уже сам решаешь, жалко тебе переплачивать один вызов мув-конструктора или нет.
Как раз нет, я тоже думал что как у тебя написано, но нет, не оптимизируется такой код. Две аллокации, для даты и для х. Там скорее всего оптимизация мож асемблерная будет какая, а на уровне плюсов неа
Не буду читать, сначала исправь свой код, потом поговорим
>Те если писать без мува в конструкторе
Или ты, написав это, имел в виду то, что напрограммировал? Тогда не понимаю, что тебя не устраивает. Сам вызываешь копи-конструктор, игнорируя мув-конструктор, и жалуешься, что он не вызывается?
Еще один баран
> деструкторо-шизик все пытается смувать данные со стека
Слежу. Приходится. Хотелось бы следить за чем-то другим, но увы.
Не лезь в то чего не понимаешь. Это не стандарт языка или что то такое, это вспомогательные средства для оптимизации программ, и если твой уровень познания низкого уровня пока не позволяет понять что и для чего перемещают, то и нехуй это делать. Нехуй пытаться подражать расту или чему ты там подражаешь, раст во всем пытается удобно лечь на архитектуру LLVM, c/cpp на абстрактное железо.
Тред утонул давно как ты так "мимо проходил"?
Перекат тут: >>3248820 (OP)
https://2ch.hk/pr/res/3248820.html (М)
Иди нахуй со своим перекатом.
int b[]{1,2};
int i{0};
При a=b[i++]; вывод a[] : 0, 1 - тут всё понятно.
При a[i++]=b; вывод a[] : 2, 0 - совсем непонятно.
Помогите новичку понять плз.
a[итое]=b[i++] и a[i++]=b[итое]
Для чтения бинарного файла таскаешь за собой какую-то блять локаль. codecvt и прочую непонятную тяжеловесную хуету
lvalue\xvalue = n // референс
ТУТ ТЕБЕ УКАЗЫВАЮТ МАНИПУЛЯЦИЮ НА ОБЬЕКТ.
когда допустим твой компилятор видит валу хуйференс он понимает что время в жизни твоей драгоценной пробатюшкиной он ведь понимает что время жизни и этого обьекта скоро
ИСТЕЧЕТ. Так что он может спокойно мувать не копируя. Значит физически с референсов ничего не происходит, мы просто тип помещаем информацию о времени жизни обьекта
Судя по твоей воле, мы свойственны превратить из 1 в 2 а тепепрь давай я тебе поставлю просто гайд.
по моим концепциям белого движка, у нас создал обьект
в скопе
В ФУНКЦИИ
я передаю ссылку на него куда нибудь в другой поток при выходе из 1 он разрушится, И ДРУГОМУ потокоу будет плохо а раньше такой обьект создавался через new() и указатель ПЕРЕДАВАЛСЯ В ДРУГОЙ ПОТОК
и там потом жил пока его не делитнут.
нужно подсказать компилятору что 1 или 2 больше не нужен
и можно подсказать компилятору что 1 или 2 БОЛЬШЕ НЕ НУЖЕН. И МОЖНО передать владение его данных другому.
MyFrame frame = new MyFrame("ТВОЁ ПРИЛОЖЕНИЕ");
Можно ли wxwidgets использовать просто std::string без всякого конвертирования в std:wstring
ТОЕСТЬ
MyFrame frame = new MyFrame("ТВОЁ ПРИЛОЖЕНИЕ") отображается как прикрелейт
ибо всех заебало переводить в wstring Я ВОТ ДАЖЕ В JSON храню инфу
и достаю оттуда как ебанный string потом перевожу в wstring чтобы использовать в wxwidgets а потом сохраняю в базу и опять wstring перевожу в string и нихуя НЕПОНЯТНО ВАМ. НО Я ЗАДАМ ЗА ВАС ПИШУ ЧТО WXWIDGETS ПОДДЕРЖИВАЕТ ЮНИКОД. А почему тогда символы вместо & букв? ЭТО НЕ ЮНИКОД.
Тут вы ответите мне скорее всего то что мне мол нужно просто включить UTF-8 В ВИНДЕ\MSVC
а я вам отвечу
ТО ЧТО ВЫ ЕБАНАТОРЫ И ВСЁ ПОЧЕМУ? ПОТОМУ ЧТО ПРОБЛЕМА НЕ В ЭТОМ. ДОПУСТИМ, ВОТ ПОЖАЛУЙСТА. КОД И СОДЕРЖИМОЕ ФАЙЛА
std::ifstream t("ПУТЬ");
std::string
str(std::istreambuf_terator<char>{ t }, {});
MyFrame frame = new
MyFrame(str.c _str()); ГДЕ ВЫ НАХУЙ ВКЛЮЧИТЕ ЭТОТ UTF-8?
ДОПУСТИМ UTF-8
ЕГО МОЖНО ВКЛЮЧИТЬ В КОНСОЛИ КАК ЭТО ЧАСТО ДЕЛАЮТ АКА
#if _WIN32
SetConsole(65001);
SetConsoleOutput(65001);
#endif
этого будет достаточно
И ДОПУСТИМ ЭТА ХУЙНЯ НЕ ИМЕЕТ ВОЗМОЖНОСТИ ПОД СКРОЛЛИНГ
А ВНЯТНЫЕ НЕ ГУГЛЯТСЯ.
Есть методы которые относятся к пересчёту координат. И твой скроллбар должен кидать события. Как спроектируешь - всё в руках. Минимум событий. Это клик по стрелкам, клик по области выше или ниже скроллбара. Можно добавить событие перетаскивания скроллбара. Реализовать тоже можно разными способами - можно в одном окне и самому считать и рисовать, но проще будет и чуть-чуть медленнее (незаметно для глаза) под каждый элемент скроллбара своё окно. Затем нужно создать виртуальное окно, которое будет ловить события от скроллбара. И тут ТОЖЕ ВАРИАНТЫ))))))))))
САМОМУ ПРОВЕРЯТЬ ПОЗИЦИЮ ЭТОГО ВИРТ.ОКНА И УЧИТЫВАТЬ ПОЗИЦИИ ПРИ ОТРИСОВКЕ КОНТРОЛОВ ИЛИ ОТДАТЬ ЭТО ОКОННОМУ МЕНЕДЖЕРУ ОС. КАК БЫСТРЕЕ И ПРАВИЛЬНЕЕ ИДЁТ В РАЗНЫЕ СИТУАЦИИ.
ОДНАКО ПОМИМО ЭТОГО НАПИШУ, ПОНАДОБИТСЯ АНАЛИЗИРОВАТЬ ОЧЕРЕДЬ СООБЩЕНИЙ И УДАЛЯТЬ ИЗ НЕЁ ПРОМЕЖУТОЧНОЫЕ СООБЩЕНИЯ С ИНФОЙ О ПЕРЕТАСКИВАНИИ СКРОЛЛБАРА МЫШЬЮ, ПОТОМУ ЧТО ТАКИЕ СОБЫТИЯ ПРИХОДЯТ ОЧЕНЬ ЧАСТЬ И КАРТИНКА ЗАЛУПА ЕБАННАЯ НАХУЙ, ХУЕСОСАМИ ПРИДУМАННАЯ, НЕПРИЯТНО ДЁРГАЕТСЯ
А НА СЛАБОМ ЗАМЫЖЕННОМ ЖЕЛЕЗЕ МОЖЕТ И ПЕРЕРИСОВЫВАТЬСЯ УЖЕ ПОСЛЕ ПЕРЕТАСКИВАНИЯ.
иными словами.
не надо гадать, получается никому не нужная хуйня. Не ликвидная хуйня, И ВОПРОС КАСАТЕЛЬНО ЮНИКОДА. КОТОРЫЙ Я ТОЖЕ САМОСТОЯТЕЛЬНО И НЕЗАВИСИМО ОТВЕЧУ, ПОСКОЛЬКУ ВЫ НЕ ДОДУМАЛИСЬ ОТВЕТИТЬ НА НЕГО.
UNI CODE - УНИверсальная КОДировка, что она в себя включает, подумайте). Символы сука всех ЕБАННЫХ ЯЗЫКОВ, ЧТОБЫ НЕ НАДО БЫЛО ЕЁ ПЕРЕКЛЮЧАТЬ ДЛЯ РАЗНЫХ ЯЗЫКОВ - ОДНА КОДИРОВКА
ДЛЯ ВСЕХ.
Любая такая кодировка называется ЮНИКОД, да они бывают разные, но в WWW и далее везде, сейчас это СТАНДАРТ.
С ТОЧКИ ЗРЕНИЯ АДЕКВАТНОГО ЧЕЛОВЕКА - есть 2 типа 1. char. 2. wchar_t. (широкий символ \ 2 байта)
Ну второй под UTF16, да похуй.
По поводу момента с char UTF-8 в винде она нахуй не нужна, не то. В винде char это легаси ANSI, а char utf-8 софта нет, этой опции никогда и не было, она появилась недавно. Единственно зачем она нужна, так напохуй) чтобы работал
КАЛОВЫЙ
СОФТ
С
ЛИНУКСА
ВЫСИРАЮЩИЙ UTF-8 В КОНСОЛЬ.
ОГРАНИЧЕННОЕ СПЕЦИАЛЬНОЕ ПРИМЕНЕНИЕ ДЛЯ УЗКОГО КРУГА ЗАДАЧ, ПРИЧЕМ, НАПОМНЮ, ЭТО СИСТЕМНАЯ НАСТРОЙКА А ЗНАЧИТ ВЕСЬ НОРМАЛЬНЫЙ СОФТ
НАХУЙ ОТВАЛИТСЯ.
ОТЫКВИТЬ СИСТЕМУ РАДИ ПОЛТОРЫ КАЛЕЧНЫХ ПОДЕЛКИ, СВОЕГО РОДА ЭМУЛЯЦИЮ ЛИНУКСА В УЗКОЙ ЗАДАЧЕ. ДЛЯ КАКИХ-ТО ЕБАННЫХ СЕРВЕРНЫХ ИЗВРАЩЕНИЙ ЭТО И НАДО, НО ДЛЯ ЛЮДЕЙ И СОФТА - НЕТ.
Ладно специально распишу.
ЕБУЧИЕ ВЧАРЫ ↓↓↓↓
const char a = "чары, НАХУЙ dksfopsdjfjpisdf\n";
std::string b = "А ЭТО СТРИНГ dflsjkflsdjfs\n";
const char* wa = "ОПЯТЬ чары, НАХУЙ dksfopsdjfjpisdf\n";
std::string wb = "ОПЯТЬ ЕБУЧИЙ СТРИНГ dflsjkflsdjfs\n";
MessageBoxA(nullptr, a, b.c_str(), MB_OK);
MessageBoxW(nullptr, wa, wb.c_str(), MB_OK);
СВЕРХУ ВСЁ ЧТО ВЫ ВИДИТЕ СТОИТ ПЕНДОСКАЯ ЛОКАЛЬ, ПОСЛЕ ВКЛЮЧЕНИЯ UTF-8 В ВИНДЕ ОБЫЧНЫЙ ЧАР ПРЕВРАЩАЕТСЯ В
МУЛЬТИБАЙТ. wchar работает только если один язык в тексте, с китайским он выдает хуйню, только один язык РАБОТАЕТ АДЕКВАТНО С WCHAR
ОБОСНУЮ ЧТО ОБЫЧНЫЙ ЧАР ЭТО И ЕСТЬ МУЛЬТИБАЙТ
ЧАР, ЭТО ПОЛНЕЙШАЯ ХУЕТЕНЬ. ПО НЕМУ НЕПОНЯТНО КАКАЯ КОДИРОВКА В ТВОЕМ ФАЙЛЕ ИСХОДНИКА ЧТОБЫ ЗАПИХНУТЬ В БИНАРНИК, НИ ВИНДА НЕ ЗНАЕТ ИЗ КАКОЙ КОДИРОВКИ ЭТО ГОВНО КОНВЕРТИРОВАТЬ
wchar
Конвертировать wchar чтобы вывести на экран, обьективно поймите что это высер говнаря-ублюдка. ВЫ В КУРСЕ ЧТО В ТЕКСТОВЫХ ФАЙЛАХ НЕТ МЕТАДАННЫХ?
УКАЗЫВАЮЩИХ КОДИРОВКУ?
ТАК КАКИЕ БАЙТЫ ТОГДА ИЗ НЕГО ПОЛУЧАЕТСЯ ЗНАЕТЕ? НИКАКИЕ НАХУЙ
рандом зависящий от всего, начиная от уебищного и закачивающийся настройками винды как твоими для компиляции, так и другого кто запустит этот экзешник.
Если вы дадите исходник другому с другим настройками винды то он и скомпилирует сразу непрофитный мусор и текста уже никто никогда не увидит..
В общем если вы, умы читаете это. Не следуйте за ебанами которые тыкают вслепую САМИ НЕ ЗНАЯ ЧТО
Мозгов у которых нет даже читать готовое.
Для тех кто пока не стал ебанатом, это тоже многобайтная кодировка. Построенная по принципу UTF-8, только в ней "словом" является 16-бит (ахуеть да ебать). А ЕЩЁ ЕСТЬ 16-битный юникод с фиксированным размером символа (16 бит ахуеть, да?). И ИМЕННО ЕГО ИСПОЛЬЗУЕТ ВИНДА, И ДЛЯ НЕГО НАДО ПО-ПРЕЖНЕМУ ПОСТОЯННО ПЕРЕКЛЮЧАТЬ ЛОКАЛИ. ВОТ ТАК, ЕСЛИ ВНУШИТЕЛЬНО НАПИСАТЬ С АПЛОМБОМ - все верят в любую хуйню.
В винде UTF-16 подразумевает ФИКСИРОВАННЫЕ ЧАРЫ, А НИКАКОЙ НЕ МУЛЬТИБАЙТ а то что там в говностандартах ассоциации юникода - ПО-ХУ-Ю, разговор не про НИХ, а про винду, да.
UTF-8 У ВСЕХ БУДЕТ ОДИНАКОВО ВЫВОДИТСЯ, ЕСЛИ ВКЛЮЧЕН ВЫВОД В НЁМ. В ВИНДЕ НЕТ НИКАКОГО ЛЕГАСИ-ANSI в режиме UTF-8
Там только одна кодировка может быть в utf-8 в ней не надо переключаться на разные страницы. В винде можно просто в манифесте выставить ActiveCodePage в utf-8 и оно будет работать ВЕЗДЕ.
Будет только весь процесс разработки, компиляции и выполнения будет полностью в UTF-8, такое бывает только в линуксе, на винде дефолтные кодировки могут быть какие УГОДНО, У КАЖДОГО ЧЕЛОВЕКА СВОЯ. ТАК ЧТО ГОВНОБАЙТОВЫЙ ТЕКСТ CHAR превращается в залупу в 99 случаях из 100 работает это только у тебя - лично и больше НИ У КОГО.
Кстати пометка. Манифест всегда имеет приоритет над окружением. Алсо, рекомендую хотя бы иногда заглядывать в доки майков, чтоб знать чё меняется со временем в XP. Но проблема линукса в том что там нет проблем с кодировками, поэтому линуксоид нахуй даже не думает, У НЕГО ПРОСТО РАБОТАЕТ ВСЕГДА И ВЕЗДЕ, ПОЭТОМУ ОНИ ТУПЫЕ.
СОВЕРШЕННО НЕ ПОНИМАЮЩИЕЕ КАК ЭТО РАБОТАЕТ, ПОТОМУ ЧТО В ЭТОМ У НИХ НЕТ НЕОБХОДИМОСТИ - ПОНИМАТЬ У НИХ НЕТ.
Проблема сои, у них "кроссплатформенность" это линукс и линукс, и в крайнем случае ещё макос, а винда это ересь, из платформ выписана. Но вслух этого не говорят, а лицемерно делают как УЕБАНЫ НАХУЙ ВИД ЧТО ИХ ПОДЕЛКИ "кроссплатформа"
мать у них кроссплатформа нахуй
НА САМОМ ДЕЛЕ ДЕЛАЮТ ТОЛЬКО ПОД ОДНУ ПЛАТФОРМУ - ЛИНУКС, И ОТ СИЛЫ ЕГО ПРОИЗВОДНЫЕ, ГДЕ ТРЕБУЕТСЯ ТОЛЬКО КОНФИГ СБОРКИ ЧУТЬ ПОДПРАВИТЬ.
ЭТО ФАКТИЧЕСКИ СОЕВАЯ ХУЙНЯ.
Взять всё хорошее (винда) и изгадить нахуй опустив на свой уровень. Софт делается с оглядкой только на линукс, винда не уважвается, игнорируется, если в винде что-то устроено не так как в линуксе, ЭТО ЗНАЧИТ ВИНДА ГОВОН ИД АЖЕ ПОД НЕЁ НАДО ДЕЛАТЬ ВСЁ РАВНО КАК И В ЛИНУКСЕ, ВО СЛАВУ СВЕТА ИСТИНЫ ПРАВИЛЬНОСТИ.
ОТСЮДА И ПОЛУЧАЮТСЯ ЭТИ ОРАТОРЫ
КОТОРЫМ ГОВОРИШЬ В ВИНДЕ НЕТ UTF-8 А ТЕ КТО КОПРОТИВЛЯЮТСЯ ПЫТАЯСЬ ВСРАТЬ ЕГО ВОПРЕКИ ВСЕМУ.
ПОЧЕМУ НИГДЕ НЕТ ЕБЛАНОВ ВИЗЖАЩИХ ЧТО В ЛИНУКСЕ НАДО ОТМЕНИТЬ UTF-8 И СДЕЛАТЬ UTF-16 КАК В ВИНДЕ?
ПОТОМУ ЧТО ВСЕ ПОНИМАЮТ ЧТО ВИНДА ГОВНО, А ЛИНУКС ЛУЧШЕ?
КОНЕЧНО НЕТ СУКА, ПРОСТО ЛЮДИ НЕ ЛИНУКСОВЫЕ СОЕВЫЕ ДЕГЕНЕРАТЫ, А УВАЖАЮТ ВЕЩИ ВОСПРИНИМАЯ ИХ ТАК КАК ОНИ СУКА ЕСТЬ, А НЕ КАК ОБЬЕКТ КИШЛАКСКИХ ВОЙН ГДЕ ЕСТЬ ТОЛЬКО МОЁ И НЕПРАВИЛЬНОЕ. СКОТ НАХУЙ.
Жду тейки от соевый хуесосов.
Вот представьте, если есть некое кол-во платформ больше чем одна, и есть одна которая отличается от них всех. Естественно что всё стремиться к УНИФИКАЦИИ, а тут есть вторичная не очень важная, платформа, на которое все не так просто потому что когда-то в 80-х были приняты УЕБАНСКИЕ решения (нормальные в 80-х, но в 20-х определенно ебланские). что UTF-8 ЭТО СТАНДАРТ ИНДУСТРИИ И ВЕСЬ ВЕСЬ ВЕБ РАБОТАЕТ НА UTF-8
MyFrame frame = new MyFrame("ТВОЁ ПРИЛОЖЕНИЕ");
Можно ли wxwidgets использовать просто std::string без всякого конвертирования в std:wstring
ТОЕСТЬ
MyFrame frame = new MyFrame("ТВОЁ ПРИЛОЖЕНИЕ") отображается как прикрелейт
ибо всех заебало переводить в wstring Я ВОТ ДАЖЕ В JSON храню инфу
и достаю оттуда как ебанный string потом перевожу в wstring чтобы использовать в wxwidgets а потом сохраняю в базу и опять wstring перевожу в string и нихуя НЕПОНЯТНО ВАМ. НО Я ЗАДАМ ЗА ВАС ПИШУ ЧТО WXWIDGETS ПОДДЕРЖИВАЕТ ЮНИКОД. А почему тогда символы вместо & букв? ЭТО НЕ ЮНИКОД.
Тут вы ответите мне скорее всего то что мне мол нужно просто включить UTF-8 В ВИНДЕ\MSVC
а я вам отвечу
ТО ЧТО ВЫ ЕБАНАТОРЫ И ВСЁ ПОЧЕМУ? ПОТОМУ ЧТО ПРОБЛЕМА НЕ В ЭТОМ. ДОПУСТИМ, ВОТ ПОЖАЛУЙСТА. КОД И СОДЕРЖИМОЕ ФАЙЛА
std::ifstream t("ПУТЬ");
std::string
str(std::istreambuf_terator<char>{ t }, {});
MyFrame frame = new
MyFrame(str.c _str()); ГДЕ ВЫ НАХУЙ ВКЛЮЧИТЕ ЭТОТ UTF-8?
ДОПУСТИМ UTF-8
ЕГО МОЖНО ВКЛЮЧИТЬ В КОНСОЛИ КАК ЭТО ЧАСТО ДЕЛАЮТ АКА
#if _WIN32
SetConsole(65001);
SetConsoleOutput(65001);
#endif
этого будет достаточно
И ДОПУСТИМ ЭТА ХУЙНЯ НЕ ИМЕЕТ ВОЗМОЖНОСТИ ПОД СКРОЛЛИНГ
А ВНЯТНЫЕ НЕ ГУГЛЯТСЯ.
Есть методы которые относятся к пересчёту координат. И твой скроллбар должен кидать события. Как спроектируешь - всё в руках. Минимум событий. Это клик по стрелкам, клик по области выше или ниже скроллбара. Можно добавить событие перетаскивания скроллбара. Реализовать тоже можно разными способами - можно в одном окне и самому считать и рисовать, но проще будет и чуть-чуть медленнее (незаметно для глаза) под каждый элемент скроллбара своё окно. Затем нужно создать виртуальное окно, которое будет ловить события от скроллбара. И тут ТОЖЕ ВАРИАНТЫ))))))))))
САМОМУ ПРОВЕРЯТЬ ПОЗИЦИЮ ЭТОГО ВИРТ.ОКНА И УЧИТЫВАТЬ ПОЗИЦИИ ПРИ ОТРИСОВКЕ КОНТРОЛОВ ИЛИ ОТДАТЬ ЭТО ОКОННОМУ МЕНЕДЖЕРУ ОС. КАК БЫСТРЕЕ И ПРАВИЛЬНЕЕ ИДЁТ В РАЗНЫЕ СИТУАЦИИ.
ОДНАКО ПОМИМО ЭТОГО НАПИШУ, ПОНАДОБИТСЯ АНАЛИЗИРОВАТЬ ОЧЕРЕДЬ СООБЩЕНИЙ И УДАЛЯТЬ ИЗ НЕЁ ПРОМЕЖУТОЧНОЫЕ СООБЩЕНИЯ С ИНФОЙ О ПЕРЕТАСКИВАНИИ СКРОЛЛБАРА МЫШЬЮ, ПОТОМУ ЧТО ТАКИЕ СОБЫТИЯ ПРИХОДЯТ ОЧЕНЬ ЧАСТЬ И КАРТИНКА ЗАЛУПА ЕБАННАЯ НАХУЙ, ХУЕСОСАМИ ПРИДУМАННАЯ, НЕПРИЯТНО ДЁРГАЕТСЯ
А НА СЛАБОМ ЗАМЫЖЕННОМ ЖЕЛЕЗЕ МОЖЕТ И ПЕРЕРИСОВЫВАТЬСЯ УЖЕ ПОСЛЕ ПЕРЕТАСКИВАНИЯ.
иными словами.
не надо гадать, получается никому не нужная хуйня. Не ликвидная хуйня, И ВОПРОС КАСАТЕЛЬНО ЮНИКОДА. КОТОРЫЙ Я ТОЖЕ САМОСТОЯТЕЛЬНО И НЕЗАВИСИМО ОТВЕЧУ, ПОСКОЛЬКУ ВЫ НЕ ДОДУМАЛИСЬ ОТВЕТИТЬ НА НЕГО.
UNI CODE - УНИверсальная КОДировка, что она в себя включает, подумайте). Символы сука всех ЕБАННЫХ ЯЗЫКОВ, ЧТОБЫ НЕ НАДО БЫЛО ЕЁ ПЕРЕКЛЮЧАТЬ ДЛЯ РАЗНЫХ ЯЗЫКОВ - ОДНА КОДИРОВКА
ДЛЯ ВСЕХ.
Любая такая кодировка называется ЮНИКОД, да они бывают разные, но в WWW и далее везде, сейчас это СТАНДАРТ.
С ТОЧКИ ЗРЕНИЯ АДЕКВАТНОГО ЧЕЛОВЕКА - есть 2 типа 1. char. 2. wchar_t. (широкий символ \ 2 байта)
Ну второй под UTF16, да похуй.
По поводу момента с char UTF-8 в винде она нахуй не нужна, не то. В винде char это легаси ANSI, а char utf-8 софта нет, этой опции никогда и не было, она появилась недавно. Единственно зачем она нужна, так напохуй) чтобы работал
КАЛОВЫЙ
СОФТ
С
ЛИНУКСА
ВЫСИРАЮЩИЙ UTF-8 В КОНСОЛЬ.
ОГРАНИЧЕННОЕ СПЕЦИАЛЬНОЕ ПРИМЕНЕНИЕ ДЛЯ УЗКОГО КРУГА ЗАДАЧ, ПРИЧЕМ, НАПОМНЮ, ЭТО СИСТЕМНАЯ НАСТРОЙКА А ЗНАЧИТ ВЕСЬ НОРМАЛЬНЫЙ СОФТ
НАХУЙ ОТВАЛИТСЯ.
ОТЫКВИТЬ СИСТЕМУ РАДИ ПОЛТОРЫ КАЛЕЧНЫХ ПОДЕЛКИ, СВОЕГО РОДА ЭМУЛЯЦИЮ ЛИНУКСА В УЗКОЙ ЗАДАЧЕ. ДЛЯ КАКИХ-ТО ЕБАННЫХ СЕРВЕРНЫХ ИЗВРАЩЕНИЙ ЭТО И НАДО, НО ДЛЯ ЛЮДЕЙ И СОФТА - НЕТ.
Ладно специально распишу.
ЕБУЧИЕ ВЧАРЫ ↓↓↓↓
const char a = "чары, НАХУЙ dksfopsdjfjpisdf\n";
std::string b = "А ЭТО СТРИНГ dflsjkflsdjfs\n";
const char* wa = "ОПЯТЬ чары, НАХУЙ dksfopsdjfjpisdf\n";
std::string wb = "ОПЯТЬ ЕБУЧИЙ СТРИНГ dflsjkflsdjfs\n";
MessageBoxA(nullptr, a, b.c_str(), MB_OK);
MessageBoxW(nullptr, wa, wb.c_str(), MB_OK);
СВЕРХУ ВСЁ ЧТО ВЫ ВИДИТЕ СТОИТ ПЕНДОСКАЯ ЛОКАЛЬ, ПОСЛЕ ВКЛЮЧЕНИЯ UTF-8 В ВИНДЕ ОБЫЧНЫЙ ЧАР ПРЕВРАЩАЕТСЯ В
МУЛЬТИБАЙТ. wchar работает только если один язык в тексте, с китайским он выдает хуйню, только один язык РАБОТАЕТ АДЕКВАТНО С WCHAR
ОБОСНУЮ ЧТО ОБЫЧНЫЙ ЧАР ЭТО И ЕСТЬ МУЛЬТИБАЙТ
ЧАР, ЭТО ПОЛНЕЙШАЯ ХУЕТЕНЬ. ПО НЕМУ НЕПОНЯТНО КАКАЯ КОДИРОВКА В ТВОЕМ ФАЙЛЕ ИСХОДНИКА ЧТОБЫ ЗАПИХНУТЬ В БИНАРНИК, НИ ВИНДА НЕ ЗНАЕТ ИЗ КАКОЙ КОДИРОВКИ ЭТО ГОВНО КОНВЕРТИРОВАТЬ
wchar
Конвертировать wchar чтобы вывести на экран, обьективно поймите что это высер говнаря-ублюдка. ВЫ В КУРСЕ ЧТО В ТЕКСТОВЫХ ФАЙЛАХ НЕТ МЕТАДАННЫХ?
УКАЗЫВАЮЩИХ КОДИРОВКУ?
ТАК КАКИЕ БАЙТЫ ТОГДА ИЗ НЕГО ПОЛУЧАЕТСЯ ЗНАЕТЕ? НИКАКИЕ НАХУЙ
рандом зависящий от всего, начиная от уебищного и закачивающийся настройками винды как твоими для компиляции, так и другого кто запустит этот экзешник.
Если вы дадите исходник другому с другим настройками винды то он и скомпилирует сразу непрофитный мусор и текста уже никто никогда не увидит..
В общем если вы, умы читаете это. Не следуйте за ебанами которые тыкают вслепую САМИ НЕ ЗНАЯ ЧТО
Мозгов у которых нет даже читать готовое.
Для тех кто пока не стал ебанатом, это тоже многобайтная кодировка. Построенная по принципу UTF-8, только в ней "словом" является 16-бит (ахуеть да ебать). А ЕЩЁ ЕСТЬ 16-битный юникод с фиксированным размером символа (16 бит ахуеть, да?). И ИМЕННО ЕГО ИСПОЛЬЗУЕТ ВИНДА, И ДЛЯ НЕГО НАДО ПО-ПРЕЖНЕМУ ПОСТОЯННО ПЕРЕКЛЮЧАТЬ ЛОКАЛИ. ВОТ ТАК, ЕСЛИ ВНУШИТЕЛЬНО НАПИСАТЬ С АПЛОМБОМ - все верят в любую хуйню.
В винде UTF-16 подразумевает ФИКСИРОВАННЫЕ ЧАРЫ, А НИКАКОЙ НЕ МУЛЬТИБАЙТ а то что там в говностандартах ассоциации юникода - ПО-ХУ-Ю, разговор не про НИХ, а про винду, да.
UTF-8 У ВСЕХ БУДЕТ ОДИНАКОВО ВЫВОДИТСЯ, ЕСЛИ ВКЛЮЧЕН ВЫВОД В НЁМ. В ВИНДЕ НЕТ НИКАКОГО ЛЕГАСИ-ANSI в режиме UTF-8
Там только одна кодировка может быть в utf-8 в ней не надо переключаться на разные страницы. В винде можно просто в манифесте выставить ActiveCodePage в utf-8 и оно будет работать ВЕЗДЕ.
Будет только весь процесс разработки, компиляции и выполнения будет полностью в UTF-8, такое бывает только в линуксе, на винде дефолтные кодировки могут быть какие УГОДНО, У КАЖДОГО ЧЕЛОВЕКА СВОЯ. ТАК ЧТО ГОВНОБАЙТОВЫЙ ТЕКСТ CHAR превращается в залупу в 99 случаях из 100 работает это только у тебя - лично и больше НИ У КОГО.
Кстати пометка. Манифест всегда имеет приоритет над окружением. Алсо, рекомендую хотя бы иногда заглядывать в доки майков, чтоб знать чё меняется со временем в XP. Но проблема линукса в том что там нет проблем с кодировками, поэтому линуксоид нахуй даже не думает, У НЕГО ПРОСТО РАБОТАЕТ ВСЕГДА И ВЕЗДЕ, ПОЭТОМУ ОНИ ТУПЫЕ.
СОВЕРШЕННО НЕ ПОНИМАЮЩИЕЕ КАК ЭТО РАБОТАЕТ, ПОТОМУ ЧТО В ЭТОМ У НИХ НЕТ НЕОБХОДИМОСТИ - ПОНИМАТЬ У НИХ НЕТ.
Проблема сои, у них "кроссплатформенность" это линукс и линукс, и в крайнем случае ещё макос, а винда это ересь, из платформ выписана. Но вслух этого не говорят, а лицемерно делают как УЕБАНЫ НАХУЙ ВИД ЧТО ИХ ПОДЕЛКИ "кроссплатформа"
мать у них кроссплатформа нахуй
НА САМОМ ДЕЛЕ ДЕЛАЮТ ТОЛЬКО ПОД ОДНУ ПЛАТФОРМУ - ЛИНУКС, И ОТ СИЛЫ ЕГО ПРОИЗВОДНЫЕ, ГДЕ ТРЕБУЕТСЯ ТОЛЬКО КОНФИГ СБОРКИ ЧУТЬ ПОДПРАВИТЬ.
ЭТО ФАКТИЧЕСКИ СОЕВАЯ ХУЙНЯ.
Взять всё хорошее (винда) и изгадить нахуй опустив на свой уровень. Софт делается с оглядкой только на линукс, винда не уважвается, игнорируется, если в винде что-то устроено не так как в линуксе, ЭТО ЗНАЧИТ ВИНДА ГОВОН ИД АЖЕ ПОД НЕЁ НАДО ДЕЛАТЬ ВСЁ РАВНО КАК И В ЛИНУКСЕ, ВО СЛАВУ СВЕТА ИСТИНЫ ПРАВИЛЬНОСТИ.
ОТСЮДА И ПОЛУЧАЮТСЯ ЭТИ ОРАТОРЫ
КОТОРЫМ ГОВОРИШЬ В ВИНДЕ НЕТ UTF-8 А ТЕ КТО КОПРОТИВЛЯЮТСЯ ПЫТАЯСЬ ВСРАТЬ ЕГО ВОПРЕКИ ВСЕМУ.
ПОЧЕМУ НИГДЕ НЕТ ЕБЛАНОВ ВИЗЖАЩИХ ЧТО В ЛИНУКСЕ НАДО ОТМЕНИТЬ UTF-8 И СДЕЛАТЬ UTF-16 КАК В ВИНДЕ?
ПОТОМУ ЧТО ВСЕ ПОНИМАЮТ ЧТО ВИНДА ГОВНО, А ЛИНУКС ЛУЧШЕ?
КОНЕЧНО НЕТ СУКА, ПРОСТО ЛЮДИ НЕ ЛИНУКСОВЫЕ СОЕВЫЕ ДЕГЕНЕРАТЫ, А УВАЖАЮТ ВЕЩИ ВОСПРИНИМАЯ ИХ ТАК КАК ОНИ СУКА ЕСТЬ, А НЕ КАК ОБЬЕКТ КИШЛАКСКИХ ВОЙН ГДЕ ЕСТЬ ТОЛЬКО МОЁ И НЕПРАВИЛЬНОЕ. СКОТ НАХУЙ.
Жду тейки от соевый хуесосов.
Вот представьте, если есть некое кол-во платформ больше чем одна, и есть одна которая отличается от них всех. Естественно что всё стремиться к УНИФИКАЦИИ, а тут есть вторичная не очень важная, платформа, на которое все не так просто потому что когда-то в 80-х были приняты УЕБАНСКИЕ решения (нормальные в 80-х, но в 20-х определенно ебланские). что UTF-8 ЭТО СТАНДАРТ ИНДУСТРИИ И ВЕСЬ ВЕСЬ ВЕБ РАБОТАЕТ НА UTF-8
Я пожилой человек, мне 24
Ты про учебу? Лекций на Ютубе дохуя, причем даже русскоязычных, литературы дохуя, практиковаться можешь хоть на чем, тут лишь твоя фантазия ограничение
Или ты про работу? А тогда хуй соси и дрочи куте, чтобы формошлепить говнокод на с++11 для военки на заводах, неиронично хуже фронтенда
Двагис, целых три вакансии
Чел, в одном яндексе дохуища плюсовых вакансий всегда нужно.
Вообще просто лень мозг было напрягать:
1) мцст, ядро, байкал
2) иннотех, сбер, яндекс, тинькофф, авито, кассперский
3) bell-интегратор, сиСофт
+ куча всяких продуктовых компаний, ноунейм компании.
Я, например, работаю в ноунейме за 350к. До этого тоже в ноунейме работал. Проекты норм
так много вакансий, но в треде килограммы плюсовиков без работы. Скинь хотя-бы пару подобных, а то может это мы долбоеба и плохо ищем
Первая часть понятна: создаём две переменные типа int с именами "a" и "b", пишем в цикле while условие cin >> a >> b, дальше в теле выводим a и b.
Вопрос в том, как мне выйти из программы с помощью символа "|", а не любого другого и как мне продолжить выполнение программы, если символа "|" я не нашёл во вводе? В самой главе этот вопрос не обсуждается.
Я прочитал главу 10.6 и ничего не понял, помогите.
Спасибо за список, теперь сколько из них набирают без опыта или хотя бы хантят с универа?
Да и тем более, нахуй мне с тобой спорить, любой анон ищущий работу может сейчас спокойно хх ру открыть и посмотреть на ситуацию
но ведь объект это именованная область памяти, как мы можем переместить область памяти?
Я думаю дохуя хантят, если ты не долбоёб. Хотя в свою бытность трудился в мцст - там трудились студенты и даже долбоёбы. Всё в твоих силах
В моих силах что? Я уже год батрачу
Лучше пожелай удачи тому анону что в плюсы вкатываться собрался надеюсь он хотя бы в дсах живёт
>В моих силах что? Я уже год батрачу
>теперь сколько из них набирают без опыта или хотя бы хантят с универа?
У тебя айкью низкий. Физмат тоже, видимо, не заканчивал. Ты сеня спросил хантят ли студентов. Я тебе ответил.
Тупорылый, ты git log используешь вообще? Дерево коммитов розумишь? Последовательность коммитов и за всё такое в курсе? иди нахуй. РЕально, где таких тупорылых берут
лучше по одному дергай символы из потока ввода с помощью cin.get(). Каждый символ в цикле проверяешь на I
блять чел, ну ты хоть одну извилину напряги
ты ирл также как имбицил общаешься?
СМЫСЛ СВОЕГО ПОСТА НАПИШИ, ЗАЧЕМ ТЫ МНЕ ПИШЕШЬ, ЧТО ТЫ ХОЧЕШЬ ШИЗОЙД
теперь расскажи про смысл этого поста и какой ты не тупой и не замечаешь вопросов об этом посте, делая вид как будто дело не в нём
иди нахуй, дегенерат
Спасибо
Вы видите копию треда, сохраненную 6 октября в 14:26.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.