>>1914169 (OP) Вопрос со звёздочкой, для экспертов B{} X:B {} Y:B { fy(B*) } Я компилирую (X, B) => x.dll, потом (Y, B) => y.dll, загружаю и то и другое завожу себе X ix; будет ли работать по понятиям fy(&ix)?
>>1914233 Потому что ты в седьмой строке кода пытаешься объявить статический массив на стэке, размер которого должен быть известен во время компиляции. Почитай о том, как функции выглядят в ассемблерном листинге и вообще пойми что есть стэковый фрейм, размер которого тоже предопределен заранее, то бишь во время компиляции.
Господа крестовики, учите ассемблер, тогда подобные вопросы вообще не будут возникать.
>>1914169 (OP) Вопрос номер 2, для волшебников Есть class X соурс которого доступен, он компилируется в dll и загружается в программу. Как вычислить все адреса инстансов X?
>>1914751 Никак. Если все инстансы на куче, то можно как-то затрейсить через LD_PRELOAD и свою реализацию маллока (найти все аллокации величиной с этот класс), но это скорее верный способ отстрелить себе не то что ногу, а пах.
>>1914855 Класс можно модифицировать, можно ли в его начале поставить поле с каким нибудь уникальным значением, а потом искать по всей куче все такие значения если нашёл значит следующие sizeof байт сам класс?
>>1914833 Проблема в том, что ты можешь изменить значение этой переменной в рантайме, а это нарушает все вышенаписанное. Объяви x константой и это заработает.
>>1914767 Блять, ты рофлишь? Еще бы попросил реализовать калькулятор, который умеет только в сложение и вычитание. Это умеет делать любой обоссаный даун, который неделю знаком с программированием.
>>1914910 Вообще, по-сути, ты можешь эти апи использовать для реализации, если очень хочется офк, но по сути, dx, vulnan opengl, всё это лишь функции передающие точки/шейдеры на граф ускоритель и в данном случае логичнее использовать апихи которые под это уже прям конкретно заточены https://www.youtube.com/watch?v=bgckX62f4EA вот тут достаточное описание пайплайна
>>1915373 >структуры и алгоритмы Что это значит? Знать, какие контейнеры в стл есть, на чем они реализованы и какая сложность у операций? >с++17 Ничего не значит. Нормальный разраб может у тебя бесконечно глубоко что-то спрашивать, пока ты не обосрешься.
>>1914754 Всё зависит от предметной области, но знать как работают сокеты и как сделать простой беспонтовый чатик используя select/poll/epoll почти везде полезно.
1. Хочу вернуть из метода или функции список или массив каких-нибудь значений, как правильно возвращать? Обязательно ли использовать темплейты, или можно вернуть условно std::vector<MyObject>? 2. Хочу передать массив, список и т.д. в функцию или метод, как правильно передавать? Раньше принимал итераторы, но там геморроя как-то многовато, нужно использовать темплейты. Принимать std::vector<MyObject> не стоит, вдруг пользователь захочет передать вещи из другого контейнера.
>>1915798 > или можно вернуть условно std::vector<MyObject>? Да >Принимать std::vector<MyObject> не стоит, вдруг пользователь захочет передать вещи из другого контейнера. Итераторы
Ананасы, как в QT рисовать в цикле? Задача проста, у меня есть массив, в который из другого треда поступают данные, я написал функцию которая в while цикле проверяет длину массива, и если она больше 0 то рисует. Но Если ее запустить в основном треде, то она его блокирует, а из других нельзя рисовать. Как быть?
Вопрос qt-водам, что производительнее для 2д игры: qtwidget, qraphicsscene, qtquick? Сцена это надстройка над виджетом и вряд ли даст бафф в фреймрейте. Кьюик где то читал по умолчанию open gl использует но можно ли в нем кодить как виджет. QML вряд ли даст возможности реализовать толком всякие анимации итд.
>>1915908 В том что он вызывается только когда просиходит какая то интеракция с гуем, например ты навел мышкой на окно. Если Убрать с гуя фокус и ничего не делать, то апдейт не происходит, видимо в целях экономии. Я по аналогии с игровыми движками пытался найти fixedUpdate, который вызывается каждый кадр например или еще как то привязан, но такого нет. С другой стороны таймер через сигнал позволяет вызывать функцию с жесткой привзякой к времени и из основного треда, что в общем то мне и надо.
>>1915919 Не пробовал, честно говоря, судя по описанию воможно он бы и сработал. С другой стороны, > Warning: If you call repaint() in a function which may itself be called from paintEvent(), you may get infinite recursion. если какой нибудь addLine вызовет ее сам, то получим трудноуловимый дедлок, что тоже нахуй не надо.
>>1915926 Таймер с нужным разрешением и вызываешь update c timerevent другого способа я не знаю. Алсо на вин 7 вроде как при сворачивании таймер останавливается. На 10 и линуксах продолжает работать.
Хочу любой (существующий) путь разбирать на путь до файла и сам файл, соответственно. C++, <filesystem>, жизнь должна быть прекрасна. [code]std::filesystem::path fullpath;[/code] [code]std::cout << fullpath.relative_path().remove_filename();[/code] // здесь по моим ожиданиям должен быть путь до директории [code]std::cout << fullpath.filename();[/code] // тут я ожидаю увидеть только имя файла.
Но когда я делаю [code]filepath = std::filesystem::current_path();[/code] fullpath.relative_path().remove_filename() возвращает мне путь к родительской папке моего рабочего каталога вместо пути к рабочему каталогу, а fullpath.filename() вместо пустой строки возвращает мне название моего рабочего каталога.
Я неправильно пользуюсь <filesystem>? Чего я не осознаю?
>>1916239 Что c++ не для тебя Что filename это то, что написано после последнего /\ Т.е. папка d:\laba считается файлом и после remove_filename останется d:\
>>1916277 > Что ты имеешь ввиду под заставлял? Медленно продвигаюсь в обучении, приходится себя буквально заставлять прочитать какой-то урок или главу. Приятнее писать что-то своё, что интересно, а не реализовывать класс для общественного туалета из книги с методами среньк и пук. В итоге в очередной раз пишу что-то уровня змейки на sdl, пропуская теорию, получается говнокод, незнание синтаксиса (до сих пор не понял многих квалификаторов), стандартной библиотеки и ещё много всего. Как бы есть понимание, что нужно сначала всю базу освоить, Майерса там навернуть и потом уже садиться своё писать что-то, но невтерпёж это всё.
>>1916303 >В итоге в очередной раз пишу что-то уровня змейки на sdl, пропуская теорию, получается говнокод, незнание синтаксиса (до сих пор не понял многих квалификаторов), стандартной библиотеки и ещё много всего. Нормальная тема, я первую книгу прочитал после 5 лет опыта коммерческой разработки
Вот вводится у меня граф в програму. Индексы вершин могут быть до 10^9 по величине, хотя самих вершин до 10^4. Чтобы не хранить огромную матрицу смежности я решил с помощью map индексы вершин конвертировать. Например пусть у меня подаются на вход вершины с индексами 1 10 1342232, а станут 1 2 3. Но map ужасно долгий. Прям ужас. Как это сделать быстрее?
>>1916308 Рассказал про свои поделия, скромненько так, описал, что умею пока мало, но стремлюсь. На следующие работы конечно уже более красиво попадал.
>>1916303 змейку написал - прочитал книжку - написал змейку с классами, в чём проблема? Читая только книжку не научишся. Пять лет в разработке без книжек тоже не самый умный вариант, конечно. Опенсорс пытайся, чужой код читать очень надо.
>>1916321 Просто рассказываешь про курсачи. У меня был сапёр -> приложуха для расчёта стоимости перевозок (смесь задачи о коммивояжёре и о назначениях) -> приложуха для расчёта портфеля ценных бумаг (линейное и квадратичное программирование). Писал не на плюсах. Когда на работу взяли, учил язык с нуля (мейерса, страуса и прочих читал уже потом, причём по диагонали).
>>1916321 Попытки в собственный высоконагруженный udp-сервер, наброски game-engine, всякие хуки для игр, чтоб рендерить дополнительную информацию поверх игрового окна (на основе прочитанной памяти процесса), ну плюс пытался в реверсинг по мелочи. Ну и змейки с крестиками-ноликами (с мультиплеером) и тетрисом тоже писал.
В принципе всё это тогда было говнокодом, но всё равно опыт, о котором можно было рассказывать. Любой опыт подойдет.
Есть ли те, кто совмещает C++ и Android? Или в одном проекте, или и в нескольких небольших в рамках одного. Как это выглядит, где применяется, какие навыки нужны, какие плюсы и минусы? Имею опыт и плюсов (Qt, сеть), разработки приложения на Android, думаю, стоит ли пытаться совмещать или лучше забросить что-то из этого.
>>1916513 > минусы Те, кто пробовал, пишут про скудность крестов на андроиде, мол, как только требуется хоть малейшая кастомизация, выходящая за рамки стандартного, сразу приходится возвращаться к джава-мирку.
>>1916513 Qt как по мне лучший фреймворк для кроссплатформенных мобильных приложений. Но лучше не потому что крутой, а потому что остальные хуже и нативка тащит
>>1916701 >>1916714 >>1916719 мне нужно подсунуть mingwу чужой код с модификацией. уже нашёл что -l, просто я его не в том порядке подавал. это странно, здесь в папке лежит name.lib который IDA воспринимает как AR [archldr_zip64.dll] и выдаёт мне какой то список COFF ов. По идее эта name.lib должна экспортировать методы, но компилятор их не находит. Зато находит в name.dll из другой папки. Что это за AR?
>>1916726 Я нихуя не понял, но видимо тебе нужно скомпилить dll как static link library и потом полученный lib файл передать с ключом -l. Сейчас у тебя lib файл это не сама либа, а её бинарный интерфейс.
>>1916726 Либо линковщик не может найти определения из-за того, что у тебя в либе экспорт делается без extern "C". Если так, то гугли как сделать demangle (вроде какими-то ключами компилятора можно убрать декорирование из определений).
Насколько сложно вкатиться в программиста рендера/графического программиста? Из тех историй что я нагуглил, люди сначала работают обычными C++ девами, потом идут в геймдев работать над геймплеем или движком, и только после этого уже заходят в такую максимально узкую сферу как рендеринг. Это так?
>>1917044 Вакансий на рендер мало, желающих много, особенно среди школоты и студентоты. Простые задачи рендера уже давно никому не интересны - написана куча движков. А для решения сложных задач тебе придётся копить опыт начиная с с++ тугосерьки или через макакинг на других языках.
>>1917044 Вообще никак практически. В российских реалиях - это такой мем. У нас буквально есть пара компаний, кто разрабатывает собственные движки. И даже там - разрабатывают хуету полную и никаким ресерчем там не пахнет. А из-за таких вот вкатывальщиков наивных, у тебя еще и зп будет ниже, чем по рынку и будешь половину времени тесты писать. Максимально безблагодатное дело с пидорашкинским отношением, жалею, что потратил время на такую парашу.
>>1914246 Ребята, сделайте себе одолжение, не начинайте учить плюсы не ознакомившись на хорошем уровне с сишечкой. Огромное количество проблем и недопониманий связаны с тем, что вы кидаетесь в сложные дебри, не разобравшись как все это работает на базовом уровне. C Primer Plus (Prata): Note VLAs Do Not Change Size The term variable in variable-length array does not mean that you can modify the length of the array after you create it. Once created, a VLA keeps the same size. What the term variable does mean is that you can use a variable when specifying the array dimensions when first creating the array.
>>1916698 >>1916538 >>1916518 А по поводу NDK, переписывания частей кода на плюсах и сишке для оптимизации мультимедии или игр что-нибудь знаете? Как часто это используется?
>>1917277 >А до сишечки нужно изучить ассемблер? Нет. Си достаточно низкоуровневый чтобы разобраться с базовыми понятиями, и вместе с тем, достаточно высокоуровневый чтобы собирать программы из концептуальных блоков. Идеален для обучения программированию.
>>1917277 >Какие ещё дебри С++. Это сложный язык, оперирующий сложными понятиями. По вопросу выше о массивах можно с достаточной точностью предположить, что вопрошающий слегка не шарит в базовых понятиях. С++ не лучший выбор для изучения базовых понятий, блоков и структур ЭВМ. Так понятно?
>>1917206 > не ознакомившись на хорошем уровне с сишечкой Путь адекватного человека выглядит так: пишем пару лет на машинном коде, ещё пару лет на ассемблере, полгода сишечку и можно свой первый класс идти реализовывать. Конечно же перед этим всем не забываем подтянуть устройство ОС, архитектуру ЭВМ, элементарную компьютерную, цифровую и аналоговые схемотехники, ну и конечно же теорию электрических цепей и теорию передачи информации, ведь как можно что-то писать, если мы даже не знаем как этот бит формируется. По пути желательно повторить кодирование информации и при желании шифрование. Перед ассемблером ещё нужно алгоритмы и структуры данных тоже повторить, без них никак. Конечно, если ты не заканчивал вуз по специальности прикладная математика, то и все дисциплины оттуда тоже захвати. Без этого в такие дебри как плюсы лезть не советую.
>>1917313 >Кнут с тобой не согласен. Ты скозал Пиздец. Просто пиздец. > Алсо ИТТ Ты прав, я случайно сюда зашел. Я начал с программирования, а потом перешел к крестам.
>>1917314 Вот этот прав. Это мотивация уровня: >А ЧТО БУДЕТ ЕСЛИ Я НАПИШУ ВОТ ТАКУЮ ВОТ ХУИТУ? >Зачем ты хочешь написать хуету? >НЕ НУ ПРОСТО А ЧО БУДЕТ-ТО ЕСЛИ НАПИСАТЬ ХУЕТУ? ЧО НЕ ЗНАЕШЬ? НУ ТАК ТЫ БЫДЛО ИДИ НА ГОДБОЛТ ДРОЧИ АССЕМБЛЕР
>>1917317 Ну я то, в отличии от тебя, книги Кнута по программированию читал и не заметил там ни С ни C++. Если брать вузовское академическое образование, где обучают программированию, то там преподы тоже стараются рассказывать на каком-нибудь псевдоязыке. И только на практических занятиях, которые нацелены на изучения языка, уже да, можно увидеть код. Причём язык зависит от предметной области, на которую ты учишься.
Нихао епты,есть одна лаба, есть ли тут желающие заработать копеечку и сделать её мне. Вот условие,напишите сразу свою цену P.S похуй кто сделает,супер кодер или такой же студент,главное чтобы зачли
Описать структуру с именем TRAIN, содержащую следующие поля: название пункта назначения; номер поезда; время отправления. Написать программу, выполняющую следующие действия:
1 ввод с клавиатуры данных в массив, состоящий из шести элементов типа TRAIN;
2 записи должны быть упорядочены по времени отправления поезда;
3 вывод на экран информации о поездах, направляющихся в пункт, название которого введено с клавиатуры;
4 если таких поездов нет, выдать на дисплей соответствующее сообщение
>>1917347 https://pastebin.com/giAWbvW5 Сортировать по формату времени осилишь? Остальное это красивости при выводе, там понятно должно быть даже по такому говнокоду.
>>1917568 Notes Unlike std::basic_string::data() and string literals, data() may return a pointer to a buffer that is not null-terminated. Therefore it is typically a mistake to pass data() to a routine that takes just a const CharT* and expects a null-terminated string.
Константные ссылки используются где-нибудь или они просто есть, чтобы были? Ссылка же единожды биндится и изменить её нельзя int k = 2; int& const ref = k;
>>1917580 В общем случае компилятор ничего не определяет, потому что ты создаёшь объект в рантайме. Если в конструктор передаётся указатель на строку без /0 в конце, то поведение не определено.
Есть ли возможность отследить, что мув вернул левую ссылку вместо правой? Например от конст референса. Тру стори, нашел копирование вместо мува из priority_queue.top(). Хотелось бы узнать где еще такое в коде может быть.
>>1917619 c) тоже валидно и эквивалентно b). Константная ссылка нужна для инстанцирования шаблонов, при этому самостоятельно руками её писать не нужно.
стасян, нераздуплю какая сигнатура будет у функции, которая аргументом бы получала референс array произвольной длины, и возвращала бы такой/тот же array обратно.
>>1917758 Ну хз. Они раньше ресерчем занимались и всё-равно народ валил стремительно, а сейчас вообще вакансии выкладывают с каким-то фулл-стак вебом и разработчиками тулзов и гуишек. Ты знаешь кого-то, кто там работал/работает не очень давно?
>>1917767 я там работаю лул. Тулзы и гуишки в тегру набирают, а веб - во все на свете. Офис за 3 года вырос в 2 раза по headcount'у, хз кто там валит откуда
>>1917897 Расскажи, там рейтрейсингом каким-нибудь занимаются? Так, что не байты дрочат на gpu, а прям алгоритмами занимаются? Ресерч вообще какой-то есть или нет?
>>1918009 Числа умножаешь как 64х64 в 128 бит. Это три умножения. Редукцию по модулю сможешь ускорить, если модуль красивый (степень двойки - маленькое число). Иначе хз.
>>1918009 решение частной проблемы требует общего решения в данном случае нужно воспользоваться средствами (способами либо готовыми библиотеками) для длинной арифметики
>>1917897 >я там работаю лул предположу что ты тот самый "вкатыш" будь честен на анонимной доске - ведь у тебя нет ни профильного образования, ни опыта работы до этой позиции
>>1918172 >ведь у тебя нет ни профильного образования, ни опыта работы до этой позиции Ты так говоришь, как будто это что-то значит Если ты особенный, как я, то важно только желание и мозги
Анон давай совет. Изучаю С-плюсы, вообщем, все по кайфу. Может пойду в С# потом, может нет. Так вот, вопрос у меня следующий: 1)Нашел годный курс по С++ и по итогу там идет создание игры-приложения(same game) на ебаном MFC. Начал гуглить эту, смотрю инфы мало и на форумах пишут - что MFC это неповоротливый устаревший зверь, не еби себе мозг написанием приложений с помощью этих библиотек. Но я хочу реализовать на С++ какую-нибудь простенькую игру или приложение. Так что мне делать? идти сразу в C# так там проще и быстрее. Или есть какие еще варианты?
>>1918206 Либо готовый 2д движок, либо qt, где ты просто в изображение рендерить будешь всё. Во всякие opengl даже не пытайся, если ты там на уровне днищекурсов каких-то.
>>1918225 Какой ты хочешь функционал? В qt ты можешь просто взять натянуть изображение на формочку и хуячить туда змейку или что-то еще, просто с руки меняя пиксели. Если ты хочешь 3д, то opengl, но для этого нужно на с++ уже хорошо писать. Если ты какие-то там курсы смотришь, то ты скорее всего пока что слишком слаб для opengl. Ну и вообще это сомнительный карьерный путь - дрочить opengl.
>>1918234 >Ну и вообще это сомнительный карьерный путь - дрочить opengl почему? ты про то, что если меня интересует работа с графикой, то opengl не самый лучший вариант? или ты другое имеешь ввиду да я с++ в целом то нормально знаю, сложностей для меня тут нет.
>>1918252 >если меня интересует работа с графикой, то opengl не самый лучший вариант Нет, для графики opengl/directx норм. Но вкатиться в такое суперсложно, особенно без образования. Если ты не восторженный начинающий чел, а уже точно решил, что будешь заниматься графоном, то окей, хуячь opengl. Иначе - подумай дважды.
>>1918267 >особенно без образования какое тут еще образование то надо? кодинга не достатчно чтоли? что там еще емое знать надо. понятно, что математику и тому подобное я знаю
>>1917924 400к оклад и пачка акцией ежегодно, которые в среднем капают по 300к в месяц на руки
>>1917944 Да, есть команда которая занимается именно рейтрейсингом, но, вестимо, это небольшой кусок штатовской команды
>>1918172 >будь честен на анонимной доске - ведь у тебя нет ни профильного образования, ни опыта работы до этой позиции Опыт был (иначе как бы меня взяли сениором), а образование не нужно. Ну послушал бы я 5 лет, как старые пердуны меня паскалю учат, что бы изменилось, кроме проебанных 5 лет.
>>1918225 Анон, попробуй SFML лучше, можешь даже исходники почитать и разобраться, там сверхсложного ничего нет и в случае чего можешь свои хедеры типу вектора2д писать, конкретно под свои задачи. Для базового GUI можешь ImGUI взять, тоже легко достаточно встраивается в SFML и с ним работает отлично. Вот тебе и готовый набор для грейда своих скиллов, где ты будешь реализовывать исключительно логику, а свой GUI тебе в любом случае пилить придётся немного, если меню будешь делать. Параллельно ещё шейдеры зацепишь точно, а через них в OpenGL на базовом уровне разберёшься и успеешь даже распареллить это всё. НО, если тебе нужно конкретно приложение, с выпадающими меню там, списками, текстовыми полями и прочим говном, то бери Qt. Но конкретно изучать его как-то смысла нет, там формошлёпка в основном через хорошо описанную документацию, где примеры покрывают 90% задач.
Сап двач, работаю на госпомойку, пишу говнокод на Qt. Есть ли смысл продолжать изучать Qt или лучше учить чистые плюсы (в т.ч. буст)? Смотрел год назад по hh в Москве, большинство вакансий было в таких же госпомойках с пределом в 80к рублей.
>>1918496 Ну вот при изучении STL и новых стандартов плюсов я сталкиваюсь с тем, что в Qt это уже все давно реализовано, в некоторых случаях даже удобнее. Приведу тривиальный пример: зачем мне знать, как работает std::vector, если у меня есть более удобный QVector (или QList, если похер на расположение элементов в памяти)?
>>1918496 Тут чел выше советует SFML. С ним реально закреплять знание чистых плюсов или лучше дальше задачки с выводом в консоль решать? Что-то с графикой должно интересней быть.
>>1918481 спасибо тебе няшка, держи печеньку. можешь тогда дашь еще совет, после того как я грубо говоря изучу базовый курс С++ (а я его уже изучил, сейчас повторяю основыне моменты) так что мне следует начать изучать дальше? у меня по курсу дальше идут: 1)OpenGL 2)CFML 3)Qt5 4)RegExp и т.д. Если ты меня спросишь, а чего я сам хочу?. я не знаю, ну наверное отвечу банально - какие-нибудь игры. я не могу точно сказать, так как я ничего сложного и серьзного еще не кодил, а всякие сортировки массивов, рекурсии и т.д., вещи конечно полезные но...
>>1918577 > базовый курс С++ Для начала, что такое базовый курс?
> что мне следует начать изучать дальше? C++, C++ и C++. Поверь, тем для изучения там много. А что делать параллельно уже сам решай, ниже подробно опишу.
> 1)OpenGL Заходишь на learnopengl.com, проходишь пару туториалов - зашло, продолжаешь, нет - дропаешь. > 2)CFML Берёшь и сразу пишешь по примерам, там всё максимально просто описано в документации. Можешь ещё туториалы глянуть. Если не знаешь как лучше всю эту дрянь в ООП-стиле оформлять, заходи на гитхаб и читай чужой код. > 3)Qt5 Будешь как анон выше -> "зачем мне знать, как работает std::vector, если у меня есть более удобный QVector". > 4)RegExp и т.д. Сразу нахуй и даже не вспоминай.
Анонче, если тебе нужно изучать чтобы да кабы, то душные темы тебя только к дропу подвинут поближе. Вот прямо сейчас скачай UE4 и сделай что-то на блюпринтах по туториалам, потом тоже самое перепиши на крестах. Сами кресты не забрасывай только, попиши всякого на SFML или SDL2 (лучше первое), задачки на алгоритмы порешай, Мейерса почитай, развлекайся с пользой в общем, вариантов много, зазубрить книгу на 1300 страниц с первого раза никому не удавалось, а оно в принципе и не надо.
Если хочешь писать именно простенькую игру, а не приложение, к qt лучше не прикасайся. SMFL, что тебе советовали, норм тема. Если хочешь еще больше фана, то попробуй raylib, правда либка сишная, но это не сильно страшно.
А это точно удобно? Это на полном серьёзе асм-инструкция выдаёт результат как си-код в 3/4 столбцах и умные дяди разрабатывающие процессоры решили именно такую логику в области нуля сделать?
Есть адекватный способ получить равномерные 0-1-2-0-.. в остатках без особых костылей вроде приведённого мной?
>>1918684 А это нормально что-то брать из туториалов и доделывать? Хочу запилить свои шахматы, нашёл на ютубе видео на эту тему с кодом, который можно ещё с десяток раз улучшить и на классы разбить. Или прям с нуля нужно пытаться делать?
>>1918707 a%b == r <=> a == (a/b)*b+r Отсюда и отрицательный r при отрицательном a. То есть это просто побочный результат выполнения целочисленного деления, который решили сделать оператором языка. >А это точно удобно? Я и не помню, когда приходилась делать modulo от отрицательных чисел, так что это вообще не проблема.
>>1918746 Но для питоновских результатов указанные тобой правила соблюдаются тоже. >когда приходилась делать modulo от отрицательных чисел Да по идее постоянно, намного чаще вот эта фигня, где mod выдаёт 5 нулей, а выше и ниже по 1 единицы. Я рисую сетку координатную, и нужно каждую десятую линию нарисовать жёлтым. Так там из-за этой фигни клетки на 1 съезжают с другой стороны координатной оси, нужно abs лишний ставить.
Иначе говоря, ты сможешь назвать хоть одну задачу, где требуется си-поведение, а питон-поведение не подойдёт? Мне что-то ничего в голову не приходит.
>так что это вообще не проблема Да понятно что можно свою функцию поставить и хуй с ним со стандартом языка, но цикличные остатки от 0 до n-1 были бы в разы логичнее и не ясно почему хотя бы на уровне асм-инструкции так не сделали.
>>1918360 >Опыт был (иначе как бы меня взяли сениором), а образование не нужно. Ну послушал бы я 5 лет, как старые пердуны меня паскалю учат, что бы изменилось, кроме проебанных 5 лет.
Блять, вот ты разговариваешь ирл с людьми, кто там работал - и все говорят, что оттуда съебали в ужасе и работают сейчас в сильно менее престижных компаниях, что как-бы намекает на то, что они не пиздят. Люди с топовым образованием, которые годами жестко дрочат предметную область. Которые несмотря на это рассказывают, что там супер сложные собесы, где нужно знать всякие детали нвидевских архитектур и что почти нереально вообще туда прийти просто так с хедхантера. Рассказывают, что это жесткая галера, с постоянными жесткими переработками, где люди на управляющих позициях специально перекидывают тебя с проекта на проект, чтобы ты в их технологиях очень сильно не разбирался и так далее.
А потом приходишь на двач, в тред, где 95% постеров - это студенты, спрашивающие хуету и отвечающие хуету И ВДРУГ читаешь охуительные истории, диаметрально противоположные тому, что слышал. >ряяя абразавании нинужна ряя нвидия нвидийа где работаешь так нвидия же 700к палучайу лучшее места ряя нвидиа Блять, да будь ты в несколько раз хуевее того, что ты рассказываешь о себе, ты бы всё-равно даже не сидел бы тут. А если бы и сидел, то точно не писал бы хуету про мне лидить проекты дают ряя сасать. Я не представляю, каким нужно быть имбецилом, чтобы заниматься таким. В конце концов, там проекты-то можно по пальцам посчитать. Даже анон с двача смог бы тебя сдеанонить и набить ебало возле офиса. Так что просто съебни нахуй, старина, делай там свои лабы с закрытым ебалом и не пиши хуету в тред.
>>1918843 да мы давно выяснили что ему повезло оказаться в нужный момент, а другие задроты в нвидиа втихаря угорают с него какой из него cpp программист, он там тупо visualstudio настраивает чтобы проэкты лучше собирались!
>>1918815 > Да понятно что можно свою функцию поставить и хуй с ним со стандартом языка, но цикличные остатки от 0 до n-1 были бы в разы логичнее и не ясно почему хотя бы на уровне асм-инструкции так не сделали. Инструкция тут не при чем (скорее всего, остаток на константу считается умножением). Это традиционное поведение из 70-х, когда делали как проще.
>>1917044 Только по большому везению. Ибо, как и сказали, у нас полторы конторы занимаются чем-то таким. И из них ещё большая часть - чистый гейдев, где работать можно только из большой идейности или если ты ультимативный сеньор-помидор с тайными знаниями. В остальных случаях - зп ниже средней, переработки как норма. Ну и отзывы берешь: сабер - уебки, варгейминг - уебки, и так далее. Похоже, единственная норм контора - юниджайн, ибо не геймдев, а движло пилят. Меня оттуда, конечно, попросили, ибо слишком говнокодер оказался, но пока был в офисе успел атмосферу понять. Тут можно и всю жизнь спокойно вджобывать - задачи интереснейшие, уровень разрабов высокий, контора небольшая и отношение нормальное. Подытоживая: геймдев - зашквар, хочешь чем-то околографическим заниматься - ищи неигровые продукты типа тренажеров, картографии, всякой хуерги для визуализации данных.
>>1918974 Наоборот вообще-то. В ДС есть только гайджины и мейлру. В обоих местах занимаются говном точно так же с переработками и инфантильными дебилами в лицах коллег.
>>1919402 >>1919600 Соберу братву из отдела алгоритмов Яндекса + из кружка по спорт программированию, подъедем на ё-мобилях поясним вам обоим, опущенцы ебаные, за 20 стандарт
Пришлось просмотреть журнал с самого начала, с 2003 года. Удалось зацепиться вот за это (его читатель намекнул на игрушку Mercenaries) https://kunaifusu.livejournal.com/116882.html
Далее все было просто. И вот здесь было такое ощущение, как будто забрался в синагогу и прочел тайное имя бога. Т.е. видно было, что чел прошареный, но такого не ожидал.
Нашелся некто Basil Milanich, выпускник МГУ (про МГУ в журнале где-то упоминалось). В 2012-2020 годах в Sony ICE team - это что-то вроде внутренней группы сони-экспертов в составе Naughty Dog, привлекаемых для допила блокбастеров. Есть в кредитсах практически всего, что выходило хитового на сони в указанные годы. Недавно ушел в HFT.
Подробности биографии достаточно точно совпадают с контентом журнала
Одно время имел более приличный бложик https://bmilanich.wordpress.com/ Он, оказывается, немножко лиспанутый. Некоторые постинги развивают на записи из основного журнала, например
... Стотья и каменты в хакерньюз доставляют. Пока Кармаковские кракозябры (это кодом назвать сложно, разве что в смысле "код Да Винчи") продаются и вызывают ахи и вздохи хипстеров я на хлебушек смогу заработать...
... Кармак же, со своим программированием на уровне шестиклассника ...
... Там куча проблем с перформансом и с логикой ...
... Кармака наняли потому что народ, далекий от индустрии, считает его ацки умным visionary в нашей области. Все что я знаю о Кармаке это: он не верил в shadowmaps и боролся с ними как с бесперктевным алгоритмом (в 99.99% игр сейчас используют shadowmaps), он в развное время писал код для люминографа, вокселей и прочей хуйни, он написал "мегатекстуру" и рекламировал ее лет 5, пока все не увидили игру на ней. Каких либо других достиженей я за ним не припомню. ...
разное, интересное, нашел сейчас
Аноним24/01/21 Вск 12:19:42№1919856227
Тут мне в другом посте рассказывали про то как не хочут писать код для GPU из за того что нужно писать многопоточно и я сначала не понял вообще о чем речь. Только потом до меня дошло, что у песишных программистов есть такая серьезная профессиональная деформация.
Дело в том, что орхитектура х86 (да и остальные более или менее популярные архитектуры от Интела) никогда не поддерживала многопоточность. Даже убогая двухпоточность на некоторых процессорах спрятана от программиста и используется для симуляции двух процессоров в одном. Все тысячи тредов, что Виндуз показывает в таск менеджере - это никакие не потоки, а самые настоящие процессы. Многопроцессность там есть, многопоточности - нету.
Разница простая - процессы это сущности ОС и живут они по правилам ОС, а потоки - это сущности CPU и живут они по правилам CPU. Например, я хочу написать программку, распечатывающую файл с диска на принтере. CPU не знает нихрена ни про какие файлы, ни про диски и, тем более, про принтеры. Тут мне многопоточность не поможет. Тут как раз работа для многопроцессности - в одном процессе буду читать файл а в другом печатать, между ними - пайп построю и будут они ждать файл, принтер и пайп так замечательно, что пока один процесс ждет, другой может какую-то работу делать. А вот захочу я перемножить пару матриц - тут наоборот, ОС нихрена про матрицы не знает, за то процессор знает все и про память, и про кэш и про ALU. Тут надо бы запустить кучу потоков, чтобы каждый считал свой элемент произведения. Большая часть будет будет висеть ожидая кэша, а пока они ждут - другие работают. Принцип многопоточного программирования простой - все циклы заменяем потоками. На каждую итерацию цикла - поток.
Но на х86, конечно, так не получится. В лучшем случае там можно отрастить процессов по числу ядер и каждым считать часть матрицы произведения. Что, конечно, не rocket science, но принципиально сложнее тривиального многопоточного алгоритма. И, главное, из за накладных расходов на создание и синхронизацию процессов, медленнее тупого последовательного алгоритма для достаточно маленьких матриц. Вообще, для любой задачи, не связаной с доступом к объектам ОС, создавать больше процессов чем ядер нельзя, потому что производительность просрется на дележ одного процессора между несколькими процессами. Да и с оптимальным числом процессов можно обломиться - процесс вещь тяжелая и дорогая, чтобы его запускать по любому поводу.
Оказавшись на многопоточной архитектуре, программисты, деформированные х86, относятся к потокам как к процессам на х86, бережно и осторожно. Вместо того, чтобы раскручивать как можно больше простых потоков они мудрят схемы, где число потоков минмизируется за счет усложнения логики внутре потока. Мало того, что это работает медленно, это еще и писать муторно и долго. Но по-нормальному не получается, на то она и деформация.
>>1919856 Какие-то ужасные каменты написали люди, непонимающие разницу между процессом и потоком. Но в общем не их это вина - Майкрософт придумала свои "потоки" чтобы не травмировать тонкую индусскую душу fork()ом и выросшие на этом программисты даже не подозревают, что там внутре течет и куда.
Процесс это контекст с точки зрения ОС - там лежит все чтобы выполнять программу: PC, стек, намапленая память и прочия дескрипторы. Поскольку ОС сейчас все многозадачные, они, естественно, умеют переключаться между этими контекстами. Переключение между процессами на одном PU - процесс долгий и тяжелый, но и необходимый, так как в целях безопасности сама ОС является процессом и любой ее вызов вызывает такое переключение. Виндовые "потоки", как и посиксные pthreads это просто шорткат для создания процессов, в основном отличающихся только стэком и PC.
Поток это контекст с точки зрения процессора. Поскольку процессор куда проще ОС, ему много не нужно - там лежат регистры включая PC, стэк, намапленую память и всякие внутренние состояния. Переключение между потоками ничего не стоит. Можно хоть каждый такт переключаться, что обычно и происходит в многопоточных процессорах. Т.е. если мы запустим два потока, состоящих из NOPов, то каждый будет выполнятся как будто он единственный поток на процессоре с половиной частоты. Однако с нетривиальными потоками все гораздо интереснее. Встретив инструкцию, которая требует ожидания какого-то условия (например ждет данные из памяти) процессор просто перестает переключатся на этот поток, пока условие не выполнится. За счет этого несколько потоков одновременно выполняются быстрее чем они же последовательно за счет сокращения времени простоя процессора в ожидании памяти. Естественно, что такое поведение многопоточного процессора не повторить на однопоточном никакими ОС и никакими явами. Программными средствами невозможно переключится из зависшей в ожидании инструкции.
Долгое время ждущих инструкций в микропроцессорах не было. Инструкции всегда что-то делали и не ждали без толку. Только в 90х годах прошлого века появились процессоры с асинхронной памятью и инструкции стали ждать память. Но вместо того, чтобы просто сделать Пентиум многопоточным, Интел, наученный горьким опытом с 486ым (который был медленее 386 на коде, оптимизированом для 386), пошел по "суперскалярному" пути. А то какой-нибудь Дворак запустил бы свой любимый Word 5.0 на новом Пентиуме и не увидел никакого ускорения, было бы нехорошо. С точки зрения абсолютной производительности, суперскалярность/OOE даже рядом не стоит с многопоточностью/SMT, однако позволяет ускорить однопоточный код, единственный важный критерий для Интела в то время. Опять же, наверное тогда думали, что память скоро догонит процессоры и это только временная проблема, хе-хе.
>>1919858 Посмотрел Вулкан, сэмпл рисующий треугольник - больше 1000 строчек. Больше 1000 строчек, Карл! как теперь принято говорить. У ДХ12 получше чуть-чуть. Наконец-то можно строить коммандные буферы из разных тредов - всего-то лет 10 прошло с тех пор как одноядерные процессоры перестали делать даже для лэптопов. Однако до консолей все еще далеко.
Самая главная проблема песишных API это компиляция шейдеров в рантайме. Во-первых это занимает время, а во-вторых рантайм компилятор не может соревноваться с уровнем оптимизации офлайн компилятора. Для примера, НВидиевский компилятор для PS3 сосал настолько, что делая инвариантные изменения исходника (добавляя 0 и умножая на 1 разные значения) можно было получать сильно разный код. Но для PS3 это не проблема - запустил процесс на выходные, который перебирает тысячи пермутаций каждого шейдера и выбирает самый лучший код и готово. На песи тот же компилятор работал в рантайме даже не пытаясь ничего оптимизировать. Еще на той же PS3 - у пиксельных шейдеров не было константных регистров, константы реализовывались через модификацию кода. На PS3 просто патчился бинарник, а вот на песи, подозреваю, патчился IL и перекомпилировался. В результате PS3 могла делать десятки тысяч ДИПов, а песи дох на тысяче с тем же ГПУ. В новых API эта компиляция никуда не делась (хотя проблемы с ней на современном железе не такие же как на PS3, конечно, но принцип тот же).
Вторая большая проблема - биндинг параметров для шейдеров. Слоты, имитирующие регистры видеокарточек 90х годов прошлого века, наконец-то ушли, но замена не на много лучше. Я так понимаю все теперь связывается фетч шейдером (раньше только вертексбуферы). То есть теперь фетч шейдер вызывается на каждой стадии, а не только вертексной. Это, конечно, разгружает CPU но за счет дополнительной нагрузки на GPU. На консолях можно обойтись и без слотов, и без фетчшейдеров (даже в вертексной стадии).
Ну и, конечно, поддержка многозадачности никуда не делась. Каждый раз, когда переключаются контексты, нужно востанавливать все состояние ГПУ, а для этого его нужно постоянно копировать в память. Хотя бы сейчас в этом появился какой-то смысл, так как не только игры используют ГПУ. На консолях можно пользоваться хардверными контекстами, так как никто не будет запускать 1000500 клиентов.
>>1914169 (OP) Почему великий Бьёрн Страуструп не запилил себе до сих пор нормальный сайт? Его сайт по прежнему выглядит как кусок гавна из начала 90-ых?
>>1919858 Аха, узнал kunaifusu по его высерам. Он годами не меняется, пишет одну и ту же хуету. Это ж у него как раз профдеформация: он геймдев, пишет под платформы с дерьмовыми cpu уровня бюджетного ноута, и вытягивает недостающее ковырянием с железками.
Если по пунктам, то всё плохо.
С x86 всё збс - до выхода ps3 с его уёбищным cell другого способа писать код в мэйнстриме и не было, даже на консолях. Шейдеры времён dx9 не считаю - уж очень они были ограниченны. Учитывая, что gpgpu по-прежнему не стоит усилий в 99,9% софта, у него получился целый пост надменной хуеты.
fork в никсах - это как раз способ сделать вид, что никакой многопоточности не существует (достаточно посмотреть, как пишется код на node, python, php), в то время как даже кодеры на win95 уже познали всю боль примитивов синхронизации. Более того, этот пиздобол всё переврал - именно fork создаёт отдельный процесс, копируя память и дескрипторы, а виндовые потоки всегда работают внутри уже существующего процесса.
Для vulkan нужно не 1000 строчек, а гораздо, гораздо больше - к нему нужен ещё менеджер памяти. Но при этом он позволяет писать охуенно адаптивный код: тот же doom eternal может на минималках ползать на нищебродском apu атлона, а может дать жару на rtx 3090, в то время консольный код живет от силы 5 лет и потом выбрасывается, потому что между ps3 и ps4, например, изменилось вообще всё. Про переключение контекста gpu тоже смешно - начиная с 4-й плойки в консолях те же самые операционки (фряха и винда) и те же самые gpu.
В общем, не вникая в вопрос, можно обосрать всё что угодно, и конкретно этот поцыент себя показал недалёкого ума выебщиком. А ведь лет ему на момент поста, кажется. было уже за тридцать.
>>1919978 Это еще ладно, его личный сайт - может хоть ЦП постить
А вот что касается сайтов некоторых крупных проектов и организаций, к примеру slackware,minGW - то это реально пиздец. Неужто люди, способные разработать такого уровня вещи, не могут нашлепать что-нибудь более-менее приемлемое на всяких джс сиесес (хотя бы чтобы фейспалм не ловить при входе на главную страницу)? Возможно не хотят шквариться о петуховские языки, но есть же вордпресс к примеру: поставить, 5 минут понастраивать, и уже лучше было бы.
>>1919978 >>1920053 Потому что нахуй не нужно никому кроме зумерков. Веб развивался в научной среде и вообще задумывался как интерактивные документы с ссылками, но в PDF-ках и DOC-ах никто на Д И З А Й Н не дрочит, а в вебе с какого-то хуя должны, блять.
>>1919985 хуй знает, я конечно ни практик нихуя, но просто прочитал книжки рихтера и еще windows internals либо он пишет о том что сильно выходит за рамки моих представлений, либо он пишет какую то несвязную чушь
>>1919978 Потому что он может, но ему лень разбираться в css, html и прочое поеботе. Если он захочет то высрет годный дизайн, но это время тратить нужно, а ему похуй.
>>1920312 Бьёрн Страуструп же сказал что это нахуй не надо к тому же мода на дезигн проходит быстро и хули постоянно говно сайт перепиливать? А его знания вечны.
>>1920318 Бьёрн Страуструп сказал что если тебе уёбку нужен крейтив дезигн то милости прошу запили ему, а потом пишли свою говновёрстку, он вставит её себе на сайт
Аноны, есть кто из питерского wargaming ну или другого? Если да, то расскажите как вы туда устроились, какое было собеседование, какой был опыт и можно ли туда вкатиться без опыта работы? Речь идёт о плюсах.
>>1920377 А ты сам как думаешь, возьмут тебя в топовую компанию(на самом деле такую себе), когда ты нихуя не умеешь и сейчас 2021 год на дворе, когда вкатывальщик каждый первый? Я уже не говорю о том, что там начальных позиций вообще нет скорее всего. Полистай на линкедине чуваков, что там работают. Там любой нормальный разраб будет иметь образование пми и нормальный такой опыт работы.
Бля, я вот тут смотрю. С этими вакансиями, работами, задачами, издевательствами. А почему мы сами не можем начать зарабатываь на наших навыках погромирования? Что веб дебилам мешает лично пойти в подслушано своих мухосраней и написать там что они пилят сайты на заказ?
Что собственно придурку который кресты выучил, бомбанул и сейчас вкатывается в монтёры кабелей мешает написать игру на собственном игровом движке?
>>1920442 >Что нам всем мешает то это делать? То, что ты нищеброд без скиллов. Какую ты блять игру собрался делать на собственном движке? Если ты такую хуйню пишешь, то скорее всего ты ни движки не писал, ни игры.
А даже если бы это писал сеньёр-помидор и самый охуенный разраб, что только может быть, один хуй без денег или многих лет работы в соло без каких-либо денег ты ничего не сделаешь. А если даже сделаешь, очень-очень малый шанс, что что-то там взлетит.
>>1920442 Нужны скиллы кабанчика, рамсить с недовольными клиентами, ты можешь потратить кучу времени, годы и выхлоп будет "пук", а если что-то начнёт выгорать финансово то нужно будет это оформлять срочно, регистрировать т.к. иначе тебя просто выебут органы пыньвласти. Подводных дохуя. Нужно быть ёбаным в сраку гением уровня торвальдса и то его гавно не взлетело, оно просто сделало его известным что работодатели увидели его.
>>1920449 А что не так? Для тебя написать движок для игры это так сложно?
Алсо, ну хуй с ним не шарю в вашем гейдеве, ну сайты то пилить это проще. Неужели здесь нет анонов которые для различных кабанчиков согласятся веб хуету пилить?
Так, пацантре, нуб опять врывается итт. Что происходит с объектом класса "a" в данном случае? Путем эксперимента додумываю что при переназначении переменно test из класса b вызывается деструктор a и a сваливает нахуй со стека. Верно?
>>1920452 >Для тебя написать движок для игры это так сложно? Чтобы написать движок на уровне движков, которые есть, ты потратишь годы.
>Алсо, ну хуй с ним не шарю в вашем гейдеве, ну сайты то пилить это проще. Проще конечно. Фриланс называется. Каждый второй этим занимается. О чем ты вообще?
>>1920441 Частенько вижу у них появляются вакансии на интерна, вот интересно стало что они там спрашивают, не сказал бы что я нихуя не умею, читаю книжки про движки, графику, делаю игры, движок, пишу шейдеры.
>>1920456 >>1920457 Блять, я перепутал ваш тред с "Мы вам перезвоним" прошу прощения господа, я утром задал вопрос про всратость сайта страуструпа и всё. Прошу прощения
>>1920457 > Чтобы написать движок на уровне движков, которые есть, ты потратишь годы. Причём нужно быть не вкатышем-одиночкой, а сеньором с командой из 10+ разрабов.
>>1920455 и еще как заставить здесь запретить создание объекта, например в конструкторе я хочу его детально создать а тут просто обявить переменную типа. Догадываюсь a() = delete; в определении класса a
>>1914169 (OP) Анон, ебу куда писать, нагуглить не удалось. Надеюсь вы знаете как эту хуйню пофиксить. В общем мне visual studio long double какого-то хуя округляет. Мне надо прощитать с точностью в 20 знаков после коммы а оно на 16 знаке какого то хуя заканчивается. Как фиксить?
>>1920455 При создании обьекта класса b, вызывается конструктор для обьекта класса a, потом в .create ты вызываешь оператор перемещения (A&&, т.к. результатом a() является prvalue). Потом когда b выходит из скоупа - деструктор вызывается.
>>1920469 Сделать конструктор приватным, и вызывать его либо из статического метода, либо из friend-функции
>>1920462 ну хз, судя по выхлопу при каждом create сначала вычисляеться новый объект и исполняеться его конструктор, а после присваивания вызывается деструктор предыдущего объекта.
>>1920476 >void coding >cum_freq >>1920469 в смысле объявить переменную типа? указатель только можешь сделать, иначе она инициализируется все равно каким-то конструктором.
>>1920442 >мешает написать игру на собственном игровом движке? конкуренция среди поделий инди-разработчиков страшная вообще то сегодня по соотношению трудозатраты-окупаемость выгодней наверное на паперти стоять, а не делать инди проэкт
>>1920514 Да там ничего сложно, он преимущественно хеадер-онли, просто скачиваешь и распаковываешь его, затем компилятору указываешь папку инклудов буста и можешь уже юзать, читая доки на нужную тему.
>>1920534 Так в этом и суть, хорошее качество игры достигается за счёт самописаного движка на сях. Я не гооврю о том чтобы написать какой-нибудь ёба универсальный движок на современный лад. А тупо пилить это всё под конкретную игру на один раз. То есть одноразовый движок для одной игры как кстати и делали раньше.
Он даст преимущества и в оптимизация и в других штуках типа того что игрового процесса т.к. ты как угодно его настроить можешь. И здесь школота и студенты на юнити соснут хуйцы
>>1920540 я о том что сегодня уже есть относительно развитые средства прямого финансирования (кикстартер, патреон, ранний доступ в стиме, etc), и многие инди-проекты уже заполнили пустующие ниши сегодня уже есть игры почти под любой вкус взять, к примеру, песочницы довольно трудно будет конкурировать с факторио, террарией, oxygen not inluded и другими хотя вроде бы довольно нишевый жанр, но он уже заполнен
>>1920540 Качество игры вообще не коррелирует с движком и тем более языком. (Точнее коррелирует обратно - пока ты рожаешь велосипед, ты не создаешь контент, графон, уровни и так далее)
>>1920578 Не так он прав на самом деле, что в идеале под каждый вид игры свой движок напильником заточенный пилить надо. Но суть в том что в современных реалиях на современных мощностях это реально нахуй не надо. Учишь готов движок и клепаешь своё гавно. Здесь проблем будет больше с созданием текстур, 3д моделей и прочей поеботины что для с++ господина равно выстрелу в голову.
Аноны. Читаю спецификацию к библиотеке GLVW вот на картинке мы описываем структуру и какие функции могут с этой структурой работать. что значит typedefs? что мы тут объявляем и зачем? то что ниже про функции я понял
>>1920609 Объявляем типы указателей на функции, чтобы не писать в сигнатуре каждой функции непонятную хуиту в духе void func(void (⚹⚹f)(int, int)) { ... }
>>1920663 Ну я тащем-то осилил страуструпа, прочитал от корки до корки книжку на 1400 страницу. Только на многие упражнения забивал.
Да не у меня с базой всё норм. мне просто в мы вам перезвоним треде сказали что меня заворачивают из-за отсуствия технической вышки. Я не хочу перекатываться в веб меня тошнит от него нахуй, хочу на плюсах писать
>>1920661 Тут дело не в том, что в универе тебя программировать научат. Просто на плюсах чистых никто почти ничего не пишет, либо пишет какое-то говно. Обычно с плюсами вместе идёт какая-то большая предметная область, которую ты сам, конечно же, не изучишь, либо изучишь очень хуево. Если пойдешь формочки клепать на кьютэ - универ не нужен, да, формально, хотя это всяко будет тебя хуево выделять на фоне других кандидатов. Если пойдешь компьютерную графику дрочить или компьютерное зрение или любую другую область - то без универа тебя сходу нахуй пошлют вообще без сомнений.
>>1920674 Да, я их уж вбрасывал в соседний мы вам перезвоним, сказали что это хуета.
Проекты такие: 1. Консольная змейка на чистом си 2. Программа с гуи на cpp которая работает с данными из таблиц, строит графики по методу наименьших квадратов и выводит функцию графика. Ну плюс там возможно сохранение данных или загрузка их.
Да я думаю дело не в гит проектах, на гите чё-то 1 просмотр у меня да и тот мой его даже не смотрит никто
>>1920677 блять напиши что вышка у тебя есть сделай норм проекты, чтобы показать диплом твой даже смотреть не будут (в 90% случаев) когда спросят, прямо так и скажешь, что наебал, а хули еще делать то было? ну а дальше как пойдет.
>>1920678 >>1920677 >>1920690 Советую тебе сделать что-нибудь на qt, написать резюме нормальное в стиле "охуенно знаю qt, cpp 14/17, stl, компьютер саенс, бд" и аплаиться на не сильно охуевшие вакансии. Мб во что-то отечетственное. Похуячишь там год - найдешь работу получше.
На всякую велосипедную хуйню советую тебе не размениваться и не слушать местных дурачков про рендеринг всякий, иначе работу не найдешь вообще.
Ну или другой стак бери, да. Не обязательно же там веб какой-то, да и веб вебу рознь. На каком-нибудь дотнете тоже норм работается.
Ну и наебывать не надо, что за бред вообще. Ладно там дописать еще, что пару месяцев неоффициально работал или фрилансил или лабы делал студентам или около того, но прям пиздеть - ну такое себе.
>>1920690 собеседование = контакт Я на обе работы на которых норально платили устроился хотя вообще не подходил по требованиям. Помню поехал, чисто потому что случайно рядом оказался. Как итог несколько собеседований, плюс одно на английском лол. Ну и взяли, я потом спросил у своего непосредственного начальника как так то, ты же говоил, что были ребята гораздо сильнее меня. Он ответил, тут никогда не знаешь как оно будет и так анон везде. Вообщем создай топ резюме с вышкой! И твоя задача уже начать гонять на собесы. Вот поверь, за неделю найдешь. Я блять хз как это работает. Но у меня два раза так и было. Причем конторы серьезные и несколько собесов и везде я сильно проседал и даже задание завалил. Это лотерея, ебашь и все
>>1920693 После плюсов есть преимущество в том что на что угодно можно переучиться без задней мысли, т.к. сложнее ебалы чем эта не найти. Ну и если он по книжке страуструпа учился и то лучше, т.к. он очень много общих и тонких деталей реализации любого яп объясняет.
Вообще я бы советовал тупо на java или c# какой-нибудь переучиться.
>>1920700 Да не особо, на самом деле. Даже на какой-нибудь C# пересаживаться не особо удобно. Да, он будет легче в том плане, что там нету всякой ебли низкоуровневой, но это тебе не в плюс. Код писать проще, да. Но знать там нужно другие вещи. И фреймворки другие и всё остальное.
Но если бы мне нужно было куда-то соскачить, я бы на C# соскачил, да. Но я его и знал когда-то неплохо, поэтому может я biased.
Вот этого не слушай >>1920698 . Я бы послал нахуй такого пиздабола. Абсолютное неуважение и собственно неслабый такой пиздеж по своей квалификации. Лучше готовься просто к конкретным вакансиям. Прям сделай себе на hh несколько резюме и отправляй так, чтобы совпадение по скиллам было полностью или около.
>>1920712 Да я тоже думаю что он пиздит, хотел попросить пруфы, но решил не скатывать тред. Да и манера письма как у школьника самоуверенного который щас вот вузик закончит и всех наебёт и поимеет я был таким же
Ты предлагаешь мне с двух аккаунтов резюме отправлять типа чтобы шансы повысить?
>>1920715 >Ты предлагаешь мне с двух аккаунтов резюме отправлять типа чтобы шансы повысить? Нет, в смысле сделай несколько просто, которые будут чутка отличаться. Если апплаишься на позицию с qt, отправляй то, где написано, что ты заебись знаешь qt. Если апплаишься на какой-нибудь winapi, отправляешь резюме, где написано, что знаешь winapi. Если апплаишься на какие-нибудь сети, отправляешь резюме, где написано "делал клиент-серверное приложение лулзов ради".
Вот в этих небольших отличиях можешь и спизднуть немного. Уровня, требуется знать многопоточность - ну ты придешь скажешь "ну я там юзал std::thread и мьютексы немного, воот)))".
На хх можно несколько разных сделать вроде. Раньше точно можно было.
>>1920721 Но нужно учивать что херочки тоже могут всё это видеть, ну типа заметит могут что один и тот же чел разные резюме имеет они ведь тоже не на одной вакансии там пасутся
>>1920742 Ну, это же не что-то нелегальное. Ты просто описываешь релевантные скиллы к позиции. Да и спалить супер сложно, там вкатывальщиков дохера и больше, никто не будет там запоминать твоё фио или какой-то кросс-референс делать по всем резюме.
>>1921205 >преусадебное хозяйство не выгодно это нихуя, у родителей огород в деревне, по деньгам золотые овощи выходят, и это при том что они теплицу не меняли 15 лет а поменять теплицу - 25 тыщ минимум, лол, никогда не окупится это только овощи мясо, молоко, яйца вообще нахуй не выгодно
>>1921384 Потому что тупой компилятор крестов воспринимает эту строку как (std::cout << (a > b)) ? a : b; Так что ставь скобки: std::cout << ((a > b) ? a : b);
>>1921409 Да понятно, что это двачер тупой, а не компилятор, но всё равно бесит же, нет ни одной крестобляди, которая бы не проёбывалась с этим. А всё из-за странного синтаксиса стримов.
>>1921444 Можно еще создать собственный стартап на c++ и в перспективе сделать объявление на hh именно в своей мухосране, со знанием winapi, хуяпи, чё хочешь ваще!
>>1921497 У вас в треде живой пример сидит этот долбаёб весь мы вам перезвоним засрал своими вопросами "пащиму миня ни бирут я жы такой маладец учил 3 года каптуре сайнс и схематехнику" и до долбаёба искренне не доходит что сейчас не 1980-е. А мог бы за три года реакт, джс, вёрстку выучить и вкатился бы как белый человек на нормальную работу
>>1921502 но веб-ассембли и вправда допилят и возможно на клиент-сайде будут ебашить прилаги на плюсах и будет больше РАБоты для простых с++ работяг а не для гигамозгов с аспирантурой
Есть такое средство c# как перегрузка операторов, дак вот, как ввести свои операторы-литералы в дополнение к стандартным? Никак не могу нагуглить как это сделать.
>>1921395 если ты мотаешся туда сюда на авто то да, это мало выгодно чтобы себе там овощей каких вырастить. С другой стороны, небольшая теплица с автоматикой- обеспечит тебя отличными помидорами, огурцами, перцами, такого качества, которого ты вряд ли найдешь в магазине, все промышленное- опрыскивается множеством препаратов, консервантов, и в 80% заражено всякими болезнями. Вроде мелочь, но экологичное питание это по моему неплохо.
>>1921839 Ну так в нулевых вузы как раз и готовили делфистов - где-то же они должны были осесть? Тут даже придраться не к чему - легаси-код мажет как копоть, а в 90-х ещё не было очевидно, что паскаль умрёт, а кресты - нет.
Какое же говнище вся эта инфраструктура вокруг C и C++. Нормальных библиотек почти нет. Десятки лет сотни говнокодеров со всего мира копошили коды и ничего нормального не сделали. Чтобы просто загрузить картинку, приходится велосипедить отдельную библиотеку, разбираясь в документации библиотек соответствующих форматов. Просто все или почти все остальне не применимы в реальной жизни, они применимы только в шизосистеме свои авторов. Такие библиотеки как CImg не имеют права на существование вне шизотипичного ОСомирка автора.
Вот поэтому, когда я доделаю свой язык программирования, убийцу C/C++, раста и го, то сразу же начну писать инфраструктуру, позволяющее написать и ГУИ-приложение, и математические расчёты делать, и игры, и сервера. Потому что от одного человека инфраструктура будет целостной и абстрагированной. А другим программистишкам напишу, что если хотите сделать свою библиотеку, то держите её подальше ото всех на своих гитхабчиках и лишь самые храбрые смогут отправить мне её на ревью, чтобы я решил, добавлять её на официальный сайт языка или нет, смогут ли немногочисленные пользователи моего ЯП устновить библиотеку одной командой как сделано в pip для питона или не смогут и им придётся идти на гитхаб и под стопками README и документаций, написанных на жсе найти сам код библиотеки.
Анон помоги разобраться. Вообщем суть вопроса станет ясна если взглянуть на картинку, но все же я поясню, что мне тут непонятно. Там все очень просто на самом деле.
1)Идет цикл рендеринга (мы отрисовываем нашем окно). Ок! 2)В этом цикле есть функция glwfPollEvent(). Из учебника : "Функция glfwPollEvents проверяет были ли вызваны какие либо события (вроде ввода с клавиатуры или перемещение мыши) и вызывает установленные функции (которые мы можем установить через функции обратного вызова (callback)). 3)Как я например понял все это...Наша функция PollEvent в случае если поступило событие - смотрит какие функции обработки событий определены в программе - видит glfwSetFramebufferSizeCallback(window, framebuffer_size_callback); И уже эта callback функция вызывает нашу пользовательскую функцию. Так оно работает анон? То есть эта функция просто некая связка? Вообщем мне не совсем понятно как функция "считывания" событий и их непосредственна обработка связаны в этой программе. Про функции обратного вызова я читал не надо меня туда отправлять. тут вопрос совсем не про это.
Здрасте. У кого нибудь есть на примете хорошие Octree либы? важно чтобы они были темплейтными, и координаты внутри них очень желательно работали на целых числах (int допустим)
>У кого нибудь есть на примете хорошие Octree либы? Это говно никто не использует. У него нету преимуществ никаких. >важно чтобы они были темплейтными, и координаты внутри них очень желательно работали на целых числах (int допустим) Нахуя?
>>1922251 Для моей задачи поиска ближайших соседей, или любых пространственных операций это прекрасно подходит. float мне не нужны потому что они медленнее чем целые числа. Я работаю с fixed point по сути. uint64_t со смещением, потому нужно было.
>>1922259 >надо просто понимать чуток как устроены event loop'ы во всяких >виндах/иксах. а как с этим разобраться? мне интересна эта тема. Вот вчера я гуглил и нашел только обработки событий с доходчивым объяснением для JS
>>1922142 >Потому что от одного человека инфраструктура будет целостной и абстрагированной. Ахах, какой нибудь автор CImg считал так же, что ТОЛЬКО ЕГО стиль правильный.
>>1922230 >Про функции обратного вызова я читал не надо меня туда отправлять. А куда еще отправлять то? Ну там условно говоря код FunPtr* callback = nullptr; vector<Event> events = {}; ... PollEvents() { auto evt = events.pop_front(); if (evt==EVENT_SOMTHING && callback != nullptr) callback(evt); } ... SetCallback(your_ptr) { callback = your_ptr; } ... SomeKeyboardShitPressed() { events.push_back(new Event(KEYPRESS, key_code)); } //push_back/pop_front обмазаны какими нибудь мутексами чтобы в многопоточности не затереть значение которое ты еще не считал
>>1922156 >Если твоя претензия к инфраструктуре, что тебе мешает написать её для C++, а не для своего ненужного ноунейм-языка? А улучшение крестов просто по накатанной идет: начинаешь, допустим, с чистенького модернового пакадж-менеджера, а потом от тебя требуют сборку пакетов autotools-ом под aix и ты уже не молодой и дерзкий, а старый и сломленный жизнью, и хочешь в полтос пойти тестировщиком electron-приложений.
Так что бы ещё лет двадцать будем каждый день видеть, как make (родом из 1976) вызывает gcc (родом из 1987), который переводит тебе код на C (родом из 1972) в листинг для ассемблера GAS (родом из 1986 и написанного для машин VAX родом из 1977), чтобы слепить твою мегасовременную machine learning нетленку.
>>1922557 >Так что бы ещё лет двадцать будем каждый день видеть, как make (родом из 1976) вызывает gcc (родом из 1987), который переводит тебе код на C (родом из 1972) в листинг для ассемблера GAS (родом из 1986 и написанного для машин VAX родом из 1977), чтобы слепить твою мегасовременную machine learning нетленку. Не вижу проблемы. Тем более, что это всё развивается.
>>1922784 Ты не видишь проблемы, потому что привык её не замечать.
Когда у тебя autotools на каждый запуск раз тратит пятую часть времени чтобы узнать, компилируется у тебя хеллоуворлд, и со знаком ли у тебя int - это пиздец. Когда у тебя cmake генерирует makefile, который вызывает этот самый cmake чтобы нарисовать прогрессбар - это пиздец. Когда у тебя из-за изменения одного хидера двадцать минут пересобирается 600 файлов - это пиздец. Когда у тебя vcpkg скачивает и устанавливает python, чтобы установить ассемблер - это пиздец.
Кмк, самый большой прорыв в развитии случился в 1992 году с появлением турбо паскаля 7.1: тогда появилась ide, в которой из коробки работала система сборки, отладчик и профайлер, а за счет отказа от obj-файлов в качестве промежуточных, частичная пересборка среднего проекта даже на 80386 занимала считанные секунды. По сути, единственная крестовая ide, которая всегда хотя бы поддерживала этот уровень - это msvc, и всё. clion появился только через двадцать лет после.
Вся же поебота типа cmake и conan, олицетворяющая современное развитие - это перекладывание с больной головы на здоровую. Затычки для дыры, из которой дует уже сорок лет.
>>1923022 За ffmpeg могу сразу сказать, что ассемблер там - дикое легаси и существует только потому что авторам плевать. Так-то новый код пишется на интринсиках. Я же видел ассемблер в последние годы только в диком байтоебстве - трамплинах для перехода к jit-компилированному коду и реализации защиты от срыва стека.
Бля, заебал навязчивый перфекционизм. Каждый раз когда пытаюсь начать писать изначально догадываюсь что напишу говно так как только лишь учебник прочитал и еще не писал на крестах, так и вижу как 1000 двачеров читают мой код и угорают над тем какой я лох, кек. В итоге переписываю в десятый раз один и тот же хэдер. Да я знаю всем похуй на мой код и на меня в частности. Проблема: Пишу QT будет множественное наследование от главного окна->вложенный пользовательский виджет->такой же->и.т.д. Каждый из них должен работать с определенным классом который должен содержать одинаковые для всех них данные. -сделать класс полностью статическим -сделать обычным но массив данных самого класса статическим (профит можно реализовать operator[]) -сделать класс полностью не статическим и его объект передавать "из рук в руки" каждому потомку в конструктор (так в пиздоне делал) я склоняюсь ко второму
>>1922843 >Когда у тебя из-за изменения одного хидера двадцать минут пересобирается 600 файлов - это пиздец. Это да. Поэтому forward declaration везде где можно. Ну и модули ждем, может получше станет.
>>1923290 Со статическими данными завязывай - код с ними сложно тестировать, т.к. непонятно, кто туда последний лез их менять. Передавай их в виде const T& в конструкторе, указатели в современных крестах - дурной тон.
>>1923317 >указатели в современных крестах - дурной тон. интересный момент, но половина кьюти принуждает к указателям, любой чих там создается через new и привязывается к топовому QObject который при своей смерти проходится по потомкам и делает им автоматически delete. так что прийдется.
И скорости компиляции модули вряд ли помогут - стандартные хидеры уже у всех precompiled, а при изменении своих все равно придется шерстить весь использующий их код, т.к. в них могут появиться новые перегруженные функции или просто имена для трюков со sfinae. И даже если интерфейс тот же, инлайнить функции придется заново. В итоге получаем ту же почти полную перекомпиляцию на любой чих.
>>1923329 Это не имеет значения - если потомок не владеет объектом и не может реагировать на его исчезновение, то ему незачем работать с ним через указатель. Иначе ебись со shared_ptr и weak_ptr.
Еще такое дело: Qt - это просто интерфейс. Если у тебя данные существуют всё время работы приложения, а не создаются в каждом окне для себя и потомков, то построй для них отдельную, не зависящую от Qt иерархию классов и самый верхний передавай в qt, иначе ты будешь зависеть от того, какие окна у тебя сейчас открыты, а это пиздец уровня вижуал барсика.
>>1923374 static const в классе - это просто глобальная переменная, доступная через этот класс. Если она не зависит от текущего состояния программы, отрефактори её в constexpr и всё будет збс. Иначе лучше выдели её в отдельный класс и передавай объект этого класса в конструкторе через ссылку, иначе возникнут непонятки от того, кто эту переменную меняет.
>>1923448 А разницы-то никакой и нет. Общие данные в глобальных переменных - зло, т.к. никогда не знаешь, кто их меняет. При передаче их в конструктор/аргумент функции у тебя хотя бы будет возможность отследить, кому они в каждый момент времени доступны.
Аноны, как скрыть от пользователей тип итератора? Есть класс, в котором используются ассоциативные контейнеры, в которых иногда нужно делать обход по ключам, иногда по значениям. Сейчас делается через возвращение векторов, что медленно пиздец. Если вынесу родной тип итераторов наружу - при смене реализации контейнера пользовательский код сломается, прецеденты были. А в STL есть какая-нибудь обертка, из которой пользователю видно только что это, допустим, forward_iterator и всё?
>>1923583 Так это пользователи принимают, не я. Нужно не позволить им косячить. У меня пока три идеи: или сделать лямбду, возвращающую следующий элемент/nullptr (но тогда никаких std алгоритмов, пичаль), или свою обертку с интерфейсом итератора и функции типа items_begin()/items_end(), или перейти на ranges из c++20. Почему-то в stl для такой очевидной штуки ничего нет :(
>>1923589 Концепты задают минимум, которому должен соответствовать класс. А юзеры, сволочи такие, привязываются к реализации. Пример - итератор std::unordered_map возвращает std::pair, а у robinhood::unordered_map есть свой robinhood::pair. Юзеры взяли и не от большого ума жестко прописали std::pair вместо его вывода через auto и теперь у меня 500+ мест, где придется что-то подковырнуть. Попадос!
>>1923691 Так в том и дело, что будь там auto, этого бы не случилось - вывелся бы другой pair и всё. Разница, кстати, между двумя вариантами pair небольшая: std::pair, кажется, не умеет в move-семантику.
>>1923784 >> У меня gcc выдаёт ~i < 0, как так? Ты ведь просто printf("%i,", i) сделал, да? Вот и получил, что заказывал - твой i printf интерпретировал как число со знаком. Если бы ты в коде написал блок с условием (~i < 0), то он бы не выполнился.
>>1923784 Зачем вообще этот rtti нужен? Какие-нибудь реальные примеры, а не суперспецифичных задач (в этом случае возможно создать поле идентификатора и виртуальный метод типа "getID")
int a(int x, int y); -- Почему тут компиль не ругается?
double a(int, int); -- А тут внезапно начал писать: error: ambiguating new declaration of 'double a(int, int)' note: old declaration 'int a(int, int)'?
>>1923853 Ок, со вторым случаем я разобрался, там в сигнатуру не входит тип возвращаемого значения, поэтому в твоем примере будет неоднозначный вызов функции. А почему он не ругается на int a(int x, int y);? Это же объявление функции, которая определена выше. Сигнатура абсолютно такая же: имя 'a', параметры int, int.
>>1923842 rtti придумали для сериализации и скриптинга, чтобы связать типы с их именами. Но он какой-то стрёмный и платформозависимый получился, так что его мало кто использует.
>>1923989 >>1923991 А все, я совсем уж ебнулся, какой тут throw... Надо поспать. >>1923983 Отметил все по твоим пунктам, все правильно. Миллиард чая тебе, анон! Прям спасибо! Ушел смотреть видосы про лямбда-выражения
>>1923982 У нас на работе за прохождение каких-либо курсов (хотя бы условно имеющих отношение к тому, чем ты занимаешься или должен заниматься) повышают з/п. Типа развитие персонала и всё такое. другой анон
>>1914169 (OP) медлленно возвращаюсь в программирование после арми по приколу на вялял пролграмму #include <unistd.h> #include <math.h> #include <stdio.h> #include<limits.h> int main() { int a(INT_MAX),c(1),b; int min[a]; for(b=0;b<=a;b++) { c++; min=a/pow(c,2);
printf("%d\n",min); sleep(10); } return 0; } в чем ошибка
Создаю классы UI в котором будет реализован интерфейс с пользователем и Program в котором непосредственно находится алгоритм. UI должен будет обрабатывать команды пользователя. Например, пользователь вводит "myconsoleapp.exe <arguments>". Запускается main(int argc, char argv[]). В нем я создаю объекты классов UI и Program. Затем вызываю метод UI.prepare(int argc, char argv[]). Он принимает аргументы, обрабатывает их, а затем возвращает необходимые данные для работы основного алгоритма. Эти данные, я отправляю через метод Program.alg(). То есть, работает это примерно так:
int main(int argc, char* argv[]) { UI ui = new UI(); Program program = new Program(); vector<string> vector_str = ui.prepare(argc, argv); program.alg(vector_str); return 0; }
>>1924460 Нормас. На алгоритмы ( а может даже и UI ) будет не сложно тесты написать. В этом и смысл разделения на разные слои. Мухи отдельно, котлеты отдельно
>>1924460 чтобы решить частную проблему, нужно общее решение в данном случае тебе нужно сделать (либо взять готовые) две библиотеки - одна для разбора и обработки агрументов запуска приложения, другая для разбора интерактивного пользовательского ввода иначе ты будешь осужден на бесконечное запиливание костылей мимо нищяя безработная макака понявшая дзен
Нубовопрос: Раскрываются ли инлайн методы объекта если я вызываю их в коде через указатель на объект: obj->foo(); Читал если на обычную функцию где-нибудь в коде есть указатель она не раскрывается компилятором не смотря на директиву инлайн. А в данном случае?
>>1925064 и еще в догонку: pragma once vs header guards думаю большинство тут посоветует первое но почему гугль например в своем гайдлайне рекомендует гварды формата #define {project}_{dir}_{src}_H ?
Господа, в плюсах можно совершить explicit template instantiation, дающий возможность определять методы шаблонного класса в .cpp файлах (без этого линкер пошлет вас далеко и без хлеба). Стоит ли овчинка выделки? Или в случае с шаблонными классами лучше определять в хэдэре и не париться? Что есть best practice?
>>1925104 С pragma once бывают проблемы, когда можно несколькими вариантами заинклудить один и тот же файл. Но такие "артефакты" встречаются довольно редко.
>>1925193 Тебе же сказали, что зависит от фазы луны. Компилятор при оптимизации можеи как захотеть заинлайнить, так и не захотеть, ибо inline - это просто рекомендация компилятору, хотя современные компиляторы и без рекомендаций лучше разберётся.
>>1925200 Ну хотел уточнить стоит ли загрязнять хэдер определениями если я точно буду использовать объект класса через указатель. В случае если они 100% не раскрываются тогда всегда определять в срр и не париться
Стоит заниматься долгостроем? Хочу летом после диплома на джуна пойти попробовать и решил перед этим пописать код, много кода. Сделал крестики-нолики на sfml, а с imgui можно выбирать размер поля и менять на ходу интерфейс. Пока игра идёт только против бота с выбором сложности. Хочу к этому всему ещё сделать меню, анимации, режимы, добавить возможность игры по сети, чат, эффекты на glsl лёгкие для анимации и прочее. В общем, хочу сделать на основе маленькой ничем непримечательной игры целый проект с кучей фич. Стоит страдать подобным говном или лучше мелкое что-то делать?
>>1925203 У меня в проекте есть ассемблерные объектники, которые отдельно собираются. И потом эти функции вызываются через указатели. Так вот, в некоторых случаях в lto даже эти функции инлайнились. Поэтому this -> >>1925222
Анонасы, как готовитсья к код ревью? Я вроде пишу нормальный код и уже давно, но мне на собесе вот только что дали вообще странную вещь, которую я сам бы никогда не написал, например. Зачем тогда вообще бест практисес какие-то нужны? Я блять не пишу код, который я не представляю, как работает. А тут от меня ожидают, что я смогу разобраться в чужом нерабочем коде. Еще и без компилятора / гугла.
>>1925348 Ты можешь представить пет-проект с > >> Элитный ЯП для написания критичных частей критичных систем, хайлоада и оптимизации производительности буквально на уровне тактов ЦП ? Вот и иди нахуй.
>>1924571 Спасибо, теперь пишу свой говнокод увереннее
>>1924594 Думаю, я напишу свой велосипед для обработки аргументов запуска приложения. Не понял только, что ты подразумеваешь под интерактивным пользовательским вводом.
>>1924680 Совсем не понял тебя. А для чего нужен XML? Это форс здешнего треда?
>>1925298 Это то что в голову первое пришло, да и для них это неделя, а для меня больше, по очевидный причинам. Может ещё настолки какие-то добавлю, а к ним читалку внутрь с паззлами/туториалами для тренировки. В голове много всего есть, но как-то постепенно расширяться хочется и наполнять контентом и функционалом каким-то.
>>1925348 Для начала нужно что-то написать, чтобы его можно было оптимизировать. Вот я наговнокодил игровой ии, в будущем кол-во таких ботов увеличится с увеличением кол-ва игроков, тогда можно будет распараллелить это всё на gpu и всю остальную часть переписать на потоках. Не знаю чего ты так порвался сразу, няш.
Я прошел основной синтаксис. Знаю что такое класс, деструктор, конструктор, дружественные функции и классы + шаблоны. Прошел всю STL, основы знаю, но многое так-же уже забыл.
Какую библиотеку вы посоветуете начать учить? Которая зачастую требуется на работе, мне не важно направление, возьмем тот же геймдев или системы.
Мне нужно знать куда двигаться дальше. Я пробовал изучать по роликам с ютуба, но это все так сложно дается, там столько всего непонятных слов)
>>1925403 >Что посоветуете дальше. смотри какие работы востребованы в твоем городе - дворник, охранник, гей-шлюха если работы вообще никакой нет, то выпиливайся
Хочу пройтись по всему синтаксису с практически нуля, чтобы заполнить пробелы. До этого вскользь по диагонали читал Прату и также вскользь проходил курс яндекса на курсере (3 пояса первых), сейчас в основном только пишу, так как читать сухую теорию не особо нравится, а до майерса считаю что не дорос немного. В принципе большинство тем всё так же помню, разве что с friend классами и методами не пошло, но забыл много деталей, особенно по кастам и binding. Что лучше для повторения взять? Я по тредам прошлым почитал, многие рекомендуют learncpp.com - это нормальный ресурс? Как я понял, его русскоязычный аналог в виде перевода - ravesli.com, откуда даже можно будет взять русскоязычную терминологию на случай всякого типу "инстанцирования" и прочей кальки.
Анонасы дайтие совет начинающему. Теория это все конечно круто! Но вот я созрел(уже давно) до практики скажем так. Начал писать змейку(на чистом си), в целом легко для меня это, но на стандартных библиотеках она у меня херово работает - лагает и клавиши там не видит и т.д., не хочу сейчас тратить время на отладку или как это называется(понимаю, что это 80% кодинга, но успею еще...) Нравиться задачки решать интересные, но я их толком найти не могу. Нашел две (нарисовать ромб в консоли(ну там с опр.условиями) и с файлами одна). Реально кайфанул когда их делал. Остальные либо слишком муторные и там какой то адский матан, в том плане, что я тупо не понимаю, что от меня хотят...Но посмотрев на код решения, вижу, что там все просто в целом и поняв суть я их решу. Или наоборот легкие. Но в целом все они скучные. Вообщем я не знаю, что в плане практики мне делать(решать задачи, начать что-то серьёзное писать и т.д.) Какие я вижу варианты: Вкатываться в Qt, SMFC, OpenGL и т.д. ( и на них уже делать серьезные работы, благо их больше в св.доступе) ну или может что еще? если да, то с чего начать из них?
>>1925755 >Нравиться задачки решать интересные, но я их толком найти не могу. Тут как минимум есть тред с рулеткой проектов, можешь оттуда лёгкие посмотреть. Или пройдись по ката, например https://github.com/gamontal/awesome-katas Или тебе прям по крестам надо?
>>1925622 Strong typing. Т.е. если функция принимает например скорость, то это должно быть не просто число, а объект класса Velocity с explicit конструктором и может ещё, для удобства, созданием пользовательскими литералами (типа 100kmph).
Наверно тупой вопрос, но уже не знаю в какую сторону гуглить. Пишу приложение на qt, что-то вроде графического редактора. И до этого постоянно хранил текущие картинки и их параметры в глобальных переменных класса MainWindow. Чую что это не правильно, но хз как нормальные люди делают. Можно в теории в главной функции приложения объявить вспомогательный класс или структуру и передать уже её окну, чтобы он сней работал, но не уверен. Как сделать по канону?
>>1926439 Всем лень пилить шапку, потому что на самом деле пользы от неё мало. Кто-нибудь загорится инициативой, перекатит с обновлённой шапкой, и ему надоедает. Ещё и нужно морально готовиться к обоссыванию токсиками, которые вечно чем-то недовольны. Изредка кто-то пишет пожелания к шапке, но в целом всех всё устраивает, поэтому никто ничего не делает, и легаси-шапка так и висит по полгода. И так во всех тематических тредах.
всем привет, аноны вопрос короче перекатываюсь из дата сасистного комп зрения в гетеросексуальный: вместо питона - с++, вместо юпитера - clion (или студия) а вместо дрочки моделей - нормальные алгоритмы но с++ у меня остался на уровне уника вопрос стоит ли идти сперва на джуна с++, а потом уже соваться в интересующую область (возраст позволяет, всего 25) или стоит сразу идти за вакасией? а то там пишут "знание stl" а я ебу что для них "знание", это ведь скорее всего "опыт применения" а не знание короче подскажите плез. как показывает опыт, с++ тред самый адекватный