Это копия, сохраненная 28 марта 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
⚹ https://github.com/sosachbot/cppthreadhat
⚹ Для кусков кода: https://0bin.net/
Ответы на вопросы:
⚹ https://en.cppreference.com/w/
⚹ https://www.cplusplus.com/reference/
Для указателей: ⚹
Прошлый тред: >>2491360 (OP)
Поясните четвертый пик.
Тут получается гонка, и если второй тред займет мьютекс, то он вызовет дедлок, так как первый тред не сможет выставить кондишон, правильно?
>если второй тред займет мьютекс, то он вызовет дедлок
Джун, плёёёёёёз
второй тред займет мьютекс только если первый его освободил
Этого петуха просто думающего и просто пишущего код, всем офисом по кругу пускали когда из-за переполнения у клиента ракета вместо хохлов по гражданским прилетела
из-за таких хуесосов как он и существует cpp2
мимо оборонный байтораб
> существует cpp2
Ты про тот что Саттер пилит? Нихера там пока не существует но как же хочецца
этим петухом был ты, а я продолжаю писать охуенный, стабильный, надёжный, быстрый код на плюсах и сях.
А, понял. Не знал что wait делает.
Либо первый тред первым проставит значения и выйдет, а второй сразу увидет что был кондишон, и вытащит значение.
Либо второй будет ждать пока первый не поставит значение и не посигналит.
В компиляторах есть. В симейк завезут в следующем релизе. На костылях можно уже сейчас. С модулями стандартной библиотеки вроде посос, да.
А когда это всё ещё для использования в продакшене дойдет, ещё пару лет пройдет
Такое чувство что только майки что то делать продолжают быренько, на формат тот же я как понимаю кланг и гцц просто хуй положили
Какой же никчёмный перефорс. Просто признай что плюсы это язык не от людей и не людей - очевидная блядь истина
Я же написал, что в компиляторах модули работают. Не совсем готовы сборочные системы (нужно делать предварительное сканирование сурцов для извлечения объявлений).
Модули стандартной библиотеки у майков некоторые есть, но не все. Что там у libc++ и stdlib не знаю.
А вот когда ты свой прод будешь на это дело переносить это твоё дело.
если ты хлебушек, то да, плюсы не для хлебушков
Объясните как надо неправильно написать оператор сравнения чтобы сломать std::sort. Я помню что такое бывает, но не помню почему и что в точности происходит.
Возвращать рандомное значение вне зависимости от операндов. Тогда коллекция перемешается, хотя наверняка это UB.
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0267r10.pdf
хуй знает, вроде похуй+похуй
я где надо OpenGL юзаю, ибо где 2D там и 3D со временем появляется, и переписывать таким образом с говна на говно не приходится
А ниче, что у тебя мутех 2 раза освобождается, 1 раз в wait, второй в деструкторе lock
На некторых системах, это может привести к дедлоку, ибо иногда счетчик обычный DWORD, а unlock просто декриментит, в данном случае 0, получаем 0xFFFFFFFFF в счетчике мутеха, объяснять надо, когда этот мутех освободится в следующий раз, а хуесос
вот вам типичный пример долбоёба, которому нельзя кодить на плюсах, так как думать он не умеет, но считает, что умеет.
wait разблокирует мьютекс только на время ожидания, после опять блокирует
джун, ебало на ноль.
>wait разблокирует мьютекс только на время ожидания
дак разблокирет жи, хуесос
ну и. wait разблокировал, пошёл выполняться первый поток, если он ещё не выполнялся, захватил мьютекс-> послал notify->разблокировал мьютекс.
ты другой проблемы не видишь - если первый поток выполнится до вызова wait второго, второй поток зависнет на wait, так как notify ему никогда не придёт
лол, и как ты ждать данных от первого потока будешь? в спинлоке?
тут надо флаг добавить, поднимающийся по окончанию первого потока, а перед wait во втором его проверять, если он уже поднят, то wait не выполнять
>OP-пик 2
Это мэнеджед Кресты?
Какая няша
> У шланга и гцц есть критичные баги, из-за которых не всякий код соберётся.
Есть инфа почему майки смогли осилить, а у линуксойдов всё так хуево?
Хуй знает. У гцц просто есть список этих багов, причём уже несколько лет как. А почему никто не починит - там надо в компиляторе переписывать мого чего, это уже вопрос к красноглазым пердоликам. Могу только предположить что они просто ненавидят кресты и пишут только на сишке, поэтому и на модули им похуй. А вообще странный вопрос задаёшь. Вон у индусов HDR из коробки есть уже лет 5, а у линуксоидов с 2019 в планах, объясняют это тем что oy-vey-land технически не может в такое без переписывания кучи кода, только недавно видел что наконец челики из red hat начали думать как бы реализовать полноценный HDR в гноме.
гугли, что notify_one делает, а не пизди, про что там для чего существует
The effects of notify_one()/notify_all() and each of the three atomic parts of wait()/wait_for()/wait_until() (unlock+wait, wakeup, and lock) take place in a single total order that can be viewed as modification order of an atomic variable: the order is specific to this individual condition variable. This makes it impossible for notify_one() to, for example, be delayed and unblock a thread that started waiting just after the call to notify_one() was made.
Так майки и пихали это в стандарт, наверняка у них раньше появились наработки. Удивительно, что не все работает уже как надо, у меня вроде <iostream> через import не втягивается.
У шланга вообще есть крутая инфраструктура с возможностью сохранять/загружать внутреннее представление модуля трансляции. И было инкрементальное кеширование препроцессированных хереров (типа PCH, но на стероидах и автоматически делался). Какие у них сложности не знаю.
В гцц может быть сложнее это все завести, и мало заинтересованных людей.
Специально для дауна - если предикат в cv уже false, то ожидания не будет. Дебилушка, я тебе говорю что суть этой cv в ожидании когда тред1 пропердится. А если он выполнен 20 лет назад, нахуй ждать? Тред2 выполняет работу и идёт домой
пиздец, это чепушило ещё и определение притащило
This makes it impossible for notify_one() to, for example, be delayed and unblock a thread that started waiting just after the call to notify_one() was made
Это делает невозможным, например, задержку notify_one() и разблокировку потока, который начал ждать сразу после вызова notify_one().
ты долбоёб или да?
получается всё-таки я долбоёб, предикат в wait_for выполнится до ожидания, не знал о такой фиче
Чувак, все что я хотел сказать, помимо оскорблений конечно - почитай про то зачем cv вообще существует. Плаваешь
Зато сосут в плане сокетов из коробки.
или там мусор?
Ну например у меня есть вектор из 10 элементов.
Я делаю ресайз до 20 элементов. В первых 10 ячейках будут валидные данные? или мусор?
По стандарту как?
А тебе обязательно ресайз нужен? Reserve мбы лучше
2023, дед.
Да ве норм будет. Так делаю когда нужно дочитать данные в общий массив.
учись гуглить, буквально первая же ссылка в гугле
google.com: dpc++ dont see libsycl.so
https://intel.github.io/llvm-docs/FAQ.html
Конкуренция относительно небольшая, но количество вакансий тоже так себе. Если сможешь год+ активно заниматься и отсобеситься куда-то на джуна, то там спокойно дорастаешь до мидла и тебе рекрутерши спамят сами. Но учти что плюсы сами по себе язык дерьма с возможностями "перевернуть матрицу вокруг диагонали и вывести на экран". Чтобы на них хоть что-то писать нужно изучать внешние библиотеки: гуй - Qt, игори - UE, сети - буст, многопоток - фолли, и т.д. Изучение каждой из либ это минимум несколько месяцев, и при этом плюсы язык многопрофильный - три опыта дрочки в геймдеве почти не дадут преимущества во время собеса в хфт и наоборот. Помидора с 8-милетнем стажем могут отсеять потому что у него нет опыта с UE4. Так что тебе нужно выбрать какую-то специальность и целенаправленно ее дрочить, после того как будешь более-менее уверенно чувствовать себя в плюсах. На джуна с этим сильно проще, могут понизить планку чуть ли не до "слышал чето про такое", но плюсы будут требовать в любом случае.
>Конкуренция относительно небольшая, но количество вакансий тоже так себе.
Между тем, для много лет как "умирающего" C++ вакансий больше, чем на C#, а в ДС и ДС2 больше, чем на php.
Между тем, во много лет как "умирающих" госструктурах как сидели кумовья, так и сидят а ты там не пустое место, а Творец-никто-кроме-тебя-пыщ-пыщ
репортинг ин, запросил у той фирмы 3400 но они согласились только на 3200. В текущей фирме так же согласились поднять до 3200, поэтому пока сижу тут т.к у той галеры слишком много ньюансов. Впереди еще 2 собеса скорее всего если будет оффер то откажусь, оба в геймдев студии пилящие ААА проекты. Будут спрашивать С++, алгоритмы, математику и UE4 вопросы на собес настолько похожи в двух фирмах что я даже подумал что я что-то напутал
В целом да, первая и вторая работа в геймдеве. Но в свободное время дрочил много разных технологий, писал свои корутины и либу для них по типу го, свою субд, баш, и т.д. В целом вширь прокачан неплохо, но вглубь хуевенько. Вангую в собесах на сеньора как раз буду проебываться, но на мидла пока хватает.
Потому что на плюсах пишут настоящие программисты, а на жопаскрипте - зумеры с клиповым мышлением, которые могут воспринимать только инфоцыган и курсы, обязательно с коучем и в игровой форме.
Очень хорошо. Тогда посоветуй как мне практиковаться, постигать бест-практисы и всё такое.
Ищи стримы. Например по запросу "porting doom to c++" можешь найти 12часовой стрим, спойлер: в конце он уже ошизел и начал хуярить говнокод копипастой
>porting doom to c++
Это видел и не один раз. Такое ощущение, что это как обряд посвящения у плюсовиков - переписать дум. Но там реально мутняк. Я хотел что-то с самого нуля с голой функцией main и вплоть до законченного проекта.
Лучший способ как ни странно лекции + лабы от топовых универов. Из отрытого знаю Computer Science Center - чисто С++, два семестра, очень много домашек тут https://gitlab.com/slon/shad-cpp и тут https://gitlab.com/slon/shad-cpp0
Потом курс по созданию своей СУБД - https://gitlab.com/savrus/shad-db недурный но маловато домашек
Лучший из лучших курс по многопотоку, если пройдешь его самостоятельно и прочитаешь литературу из тамошних закрепов любой собес осилишь https://gitlab.com/Lipovsky/concurrency-course
Есть еще курс по операционах, по большей части копипаста с MIT-отово курса, я на середине где-то хуй забил на него и пошел сразу тыкать оригинал, назывался вроде 6.S081, над домашками по 3 дня голову ломал, но теперь с закрытыми глазами могу рассказать как работает виртуальная память и что происходит когда ты просишь прочитать данные по адресу
Этого добра тебе хватит где-то на год думаю. Лабы по большей части покрыты тестами, MIT-овый курс сто раз прорешенный и сравнить решения по желанию можно.
Книги без задач - нахуй, лекции без задач - нахуй, задачи уровня универских лаб - нахуй
Годно, спасибо
Алсо крайне полезно если не наиболее полезно это общаться с программистами. В телеграме могу порекомендовать чат https://t.me/supapro, он для новичков и очень полезно читать что там пишут. Гораздо полезнее конечно отвечать, learn by teaching так сказать, но если ты реально новичок то тебе скорее всего отвечать там не позволят
сижу 24/7 в офисе, работаю за еду, си на всей хуйне справа, плюсы на компе, систему ЧПУ для многоосевых многосуппортных станков придумываем короче. капчую, когда заёбывает код писать
Проиграл
>Настоящий документ содержит рекомендации
>3. Имена, представляющие типы, должны быть обязательно написаны
Проорал с этих добровольно-принудительных рекоммендаций.
Тебе надо язык подучить, никакого противоречия там нет.
Мне кажется лучше так делать
переменные начинаются с "_"
т.е. _cringeBased
методы basedCringe
статические методы или свободные от классов функции BasedCringe
классы CringeBased
темплейтные классы TCringeBased
>переменные начинаются с "_"
уебанство, убейся нахуй с такими предложениями, ненавижу блять вас
>лекции на это всё найти
По многопотоку - курс липовского на ютубе, так и вбивай семинары там тоже есть, они не хуже лекций. По БД и С++ лекций нет, там задания самодостаточные. В лекциях почти никогда уникальных знаний нет, гугл поможет если что-то непонятно.
Порядок решения - в каждой из реп есть файлик .deadlines.yml, на него ориентируйся
Вспомнил еще - Константин Владимиров на ютубе, человек техлид в интеле, паралельно преподает. У него два курса по С++ - для бакалавра и магистров, второй соотвественно хардкорнее и вглубь. Если любишь лекции - рекомендую
__заебала_эта_уёбищная_хуйня __из_за __которой __код _читать_невозможно _______
*подчёркивания
поэтому я не читаю код стандартной либы
тем же самым, чем и занимался последние 5+ лет. Из Россиюшки вывозят в цивилизацию. Спасибо, что в такую охуенную, а не в КАЗАХСТАН или в ТУРЦИЮ
у меня друг в гермашку съебал, теперь вместо 200к рублей в роисси получает 150к в пересчёте за рубасы, хату снимал в питере двушку, а щас на чердаке живёт в каком-то доме в центре города, куда даже стол рабочий негде поставить, только кровать вмещается
ну зато не рашке, конечно, гермашка ж лучше, ага
Лахтище...
Импердоленк не лудше...
Анон, направь меня в нужное русло. Мне нужно сделать прием данных, Single Producer - Single Consumer, данных много с pcie устройства, и они быстрые. Потребитель обрабатывает и выплевывает в сеть. В качестве общего буфера логично использовать циклический буфер фиксированного размера, это норма для такого дизайна, и мьютексы и семафоры сделать на ситуации полон/пуст. Каждый буфер жирный, ~1Мб, заново его аллоцировать как-то тупо.
Так вот, есть ли либы? Boost::circullar_buffer внезапно делает постоянно аллокацию памяти, нахуй оно мне нужно? Или это норма? Возможно, есть смысл прикрутить туда кастомный аллокатор, или какой-нибудь boost::pool, но как-то нет примеров и вопрос в интернете плохо освещен. Или ОС эффективно выполнит очередную аллокацию в старый известный размер?
Также я до конца не понимаю, как консьюмер должен правильно пользоваться буфером. Думаю так: по ссылке Consumer имеет CircullarBuffer, далее вызывает isEmpty(), get(), обработает данные, далее pop(), т.е. сообщает, что буфер можно освобождать.
Такой нехитрый дизайн можно сделать на векторе + хрнаить индексы, но я не понимаю, почему не могу либу найти. Есть какое-то особое название?
> А чо за компания-то?
Вы все знаете, хаха
> Чо по условиям, релок пакету и т.д.
200к франков в год гросс + акции по новой локации будут (еще тысяч 150 в год, когда наслоится). Налог чето типа 38%, итого на руки тысяч 18 в месяц. Минус обязательные платежи (страховка, мобилка, тырнеты, аренда) - тысяч 14-15 на хуйню останется.
>>578379
Так бы я точно не поехал.
>Или ОС эффективно выполнит очередную аллокацию в старый известный размер
Возможно, у маллока 5 уровней кэшей, надо бенчить.
Не очень понял что ты хочешь, но попробуй посмотреть на https://github.com/facebook/folly/blob/main/folly/experimental/LockFreeRingBuffer.h
1354330.80 рублей в месяц? Ахуеть. Чо-то как-то много
>Так бы я точно не поехал.
да как сказать, от могилизации-то он гарантированно съебал в отличие от меня, например. просто прикол не в том, что где-то лучше, где-то хуже, а в том, что хуже стало везде
мсбилд - самая охуенная система сборки, работает, понятная, гуй есть, интеграция с IDE нативная, а не костыли, с генерациями кэшей и прочим.
>>578463
Ну меня было нереал могилизировать например. Я сижу дома, из дома не выхожу, нигде не зареган, никаких даже документальных подверждений, что я вообще в Москве. Про меня только курьеры яндекса знали, и тех я заказывал по ночам
>мсбилд - самая охуенная система сборки
Вещь у которой есть приставка мс не может быть охуенной априори.
Зависит от того когда ты пойдёшь нахуй
Ну вот, а мавен цельный, ничего плюсовать не надо.
У неё есть приставка мс?
Шаблоны
Жди февраль, в cmake завезут. Или собери сам. В переменную запишешь список файлов, которые нужно обрабатывать как модули, и вперёд.
Ну так то тогда и плюсы в целом боль
Ну да хмл, да только на Винде, но альтернатив пока что нету
Хзы может какой то буилд2 смогли в поддержку модулей, давно не глядел
>Ну так то тогда и плюсы в целом боль
Не надо мне тут. Плюсы из стандарта в стандарт только лучше становятся. Эх, когда-нибудь я брошу свою убогую работу на ноде и перекачусь в плюсовики.
Так и скажи, что тебя притягивают савейские конструкторские бюро и что ты садо-мазохист, а то всё "плюсы, стандарты, лучше"...
Нет, сборщик мусора удаляет объекты по желанию левой пятки, а не сразу после того, как не осталось ссылок.
Ок.
Чисто по определению Garbage Collector очищает garbage что в языках с рефкаунтингом обознает объекты с нулевым счетчиком ссылок. В С++ у объектов по дефолту никакого рефкаунтинга нет. Но если тебе прямо так хочется, то можешь считать что у всех объектов есть ровно 1 ссылка которая зануляется в деструкторе и срабатывает супергранулярный гарбадж коллектов нахуя вопрос открытый
А зачем тебе этот кусок говна, именуемый линуксом, когда в мире есть операционные системы?
> Чисто по определению Garbage Collector очищает garbage что в языках с рефкаунтингом обознает объекты с нулевым счетчиком ссылок.
Но ведь shared_ptr буквально работает по такому принципу, так что чел в принципе прав. В языках с GC кроме счетчика ссылок ещё бывает какой-то изъебистый алгоритм с поколениями, который реально походит на принцип "левой пятки". Так и не понял, нах он нужен, и чем лучше смарт поинтеров, вот бы мне кто объяснил.
> можешь считать что у всех объектов есть ровно 1 ссылка которая зануляется в деструкторе и срабатывает супергранулярный гарбадж коллектов
Ты неправ немного. GC он про освобождение динамически выделенной памяти, то есть это не любых объектов касается. А ты сейчас описал, как работает unique_ptr.
Потому что я как накатил рач линукс 5 лет назад так на нём и сижу не зная проблем. Винда таким похвастать может?
мимо
>Так и не понял, нах он нужен, и чем лучше смарт поинтеров, вот бы мне кто объяснил.
Чтобы не было круговых референсов друг на друга, которые никак не убить -> утечка памяти
Чел спрашивал про РАИИ а не про шаред_птр. Смарт поинтеры это не GC, если прямо очень хочется то можно их считать таковыми, но другие тебя не поймут
Делал такое на одной из прошлый работ. В принципе можно написать самому. В качестве основы я тогда использовал array и писал туда свой аллокатор, впрочем можно просто через make unique.
Собственно array выбрал что бы точно там ничего не поменялось и не переаллоцировалось.
По самому алгоритму, его можно сделать сильно быстрее если будешь использовать condition variables для краевых случаев когда всё заполнено или пусто. Для основной работы можно использовать atomic int как показатель заполненности.
Если у тебя данные не однородные, то придётся попариться с размещением, хотя если они в байты укладываются проблем не более быть.
Ты будешь пердолиться, траповать и получать пенсию по шизе. Довольно с тебя этого
> Чел спрашивал про РАИИ а не про шаред_птр.
>> Можно ли считать смарт поинтеры и RAII своеобразным GC в плюсах?
> Смарт поинтеры это не GC, если прямо очень хочется то можно их считать таковыми, но другие тебя не поймут
Ну, никто и не предлагал их так называть, просто справедливое замечание.
Ок, согласен, в плюсах такое потребует плодить дополнительные сущности типа хеш-таблицы с поинтерами.
Чтобы можно было собрать солюшены, если тебе так захочется. А как их запердолить уже другой вопрос.
Просто сделай статичный массив на мегабайт, зачем пердолить аллокации?
Кольцевой буффер простейшая структура, память, два указателя на голову и хвост, и две функции: положить и взять. Их можно сделать блокирующими, тогда консумер будет просто ждать в случае пустого буфера, продюсер ждать в случае заполненного.
Все так делают, и ты так делай.
Каво
>>578448
Вероятно, так и придется делать. В системе памяти много, можно тратить
>>578421
Спасибо. Локфрии куеуе есть в бусте, там не кольцевой буфер, еще я читал, что есть какое-то принципиальное ограничение, связанное с переходом хвоста к началу при использовании compare-and-swap, на чем собственно локфри и основан. Хз, надо глянуть эту либу, но страшно идти в эти атомики, проект горит
>>579066
Я сделал нечто схожее на си Сань хуй соси, в целом заработало, но в рот я ебал сам всю аллокацию прописывать, хочу с++ RAII. И тоже использовал unix conditional variable, без них, только с мьютексами, при ожидании данных ядро в сотку долбилось.
Я думал использовать вектор буферов, т.к. хотел в рантайме менять буферный размер, когда темп данных меняется (это позволительно), но правильнее наверное использовать эррэй с глубиной, задаваемой в симейке
Мой собственно вопрос и был в этом: как такой типовой паттерн не реализован в бусте? Если делать норм, то кода не так мало получается - конструкторы определить там, методы прикладные и проч. Я и подумал, что блядь оьязана существовать реализация, уж если и не в std::, то хотя бы в бусте, просто я гуглить не умею.
Кольцо для быстроты и простоты, буст для макакинга.
нет, ибо несколько объектов, имеющих ссылки друг на друга, но потерявших связь с основным кодом, они не удалят, а GC удалит
main.cpp:
import std;
int main() { std::cout << "Ебать одной строчкой вест стд заимпортил, вот это я могучий!\n"; }
Ясно, хуета
Схуя он будет больше? У тебя компиляторы уже лет 10 эффективно инлайнят и раскрывают функции
в этом тоже, не отрицаю
Ну если бджiл весь std импортнул, хули ему не быть больше чем файлу с #include <iostream>?
Ну так у тебя компиляторы уже лет 10 эффективно инлайнят и раскрывают функции
По теории должен брать только то что нужно, то есть максимум размер такой же как при инклуде иострима
На практике стандартных модулей ещё нет, так что хуй знает
Александр Григорин ты что ли?
Поставщик (Producer) должен подзависгуть в conditional_variable, ожидая сигнал освобождения буфера. Собственно он на это и циклический, чтобы в случае проблемы Х не выжрать всю доступную память.
Глубину циклического буфера по факту подбирают опытным путем, сильно закладывая надёжность. Учитывается, что обработка буфера должна быть быстрее забора + периода выдачи, если не так, то может помочь паттерн Сингл Продюсер - Мультипл Косьюмерс, т.е. в N раз по потокам повысить обработчиков.
Пример, в игре типа каес происходит лаг в системе (просадка фпс из-за видюхи), и сколько то сетевых пакетов пропадает
вместо обоссаной "m_" из 1998
>переменнеые начинаются с "_"
>например class Zalupa { std::mutex _myMutex; }
_myMutex это не переменная, а non-static data member
Прошел собес в гейдев контору. По вопросам конечно сильно лучше чем в прошлый раз, примерный список такой:
1. Организация памяти, стек/куча в чем разница, что такое виртуальная память и как она работает, зачем она надо. Кэши процессоров, тоже зачем надо и что дают
2. Смарт поинтеры - какие бывают, как передаются делитеры, как устроен шаред птр, зачем там внутри атомик
3. Многопоток, что такое локфри/вейтфри, как бы я реализовал локфри односвязный список на словах, double-checked lock и синглтон мейерса
4. Очень кратко по алгоритмам - на словах как бы я реализовал обход графа в ширину и длинну. Как бы я организовал обход дерева подсистем типо где каждая система зависит от другой и все организовано в виде дерева
5. Немного по рендеру и математике, gimbal lock, что такое и зачем нужны квартернионы, знаком ли с шейдерами и гпу
Ну и в целом какие-то там не очень значимые вопросы на общее понимание. Собес конечно понравился гораздо больше прошлого, тут хоть какой-то адекватный уровень собеседующего ощущается. Фидбек будет на неделе, но в целом вроде бы ответил процентов на 90 вопросов, хотя пару раз и обосрался конкретно. Если пройду этот собес то впереди еще разговор с тимлидом, так что этапов по факту 2, но пообещали что там особо технического ничего не будет. По зп ничего не говорили, но в профиле у меня стояло от 3к$, так что надеюсь рекрутерша не забила на это.
Сегодня днем еще один собес по тем же темам и в то же самое время, вечером отпишусь
Сложно из исходников собрать? Есть исходники программы которая основана на qt, которую я хочу собрать. Мне нужно сначал собрать дистрибутив qt получается, если качать исходники?
Бинарники могут быть в репозитоиях твоей ОС. Если у тебя винда, можешь msys2 установить, там точно были готовые сборки Qt, без регистрации и смс.
Ну нормальные вопросы, вот бы и у меня на собесе что то подобное спрашивали, я вроде на такое могу ответить все
поздравляю
> зачем нужен атомик в шаред птр
Бля, шаред птр что-ли трэд сейф?
Не тредсейф, но чтоб счетчик ссылок атомиком сделали чтобы два раза деструктор не вызвать
>Работаю на оборонке, по твоим вопросам ответил бы почти все без подготовки, охуеваю с $3к.
Мидл, решил для себя максимизировать зп пока нейронки не начали влиять на рынок. Походи по собесам, охуеешь с того насколько тупые бывают интервьюеры и от того насколько собес не корреллирует с зп
Блядь, но у меня пиздец интересная работа, и честно говоря я хочу в менеджмент уйти, хочу прям за полную разработку отвечаь, программировать скучновато и слишком профильно. Зп ~130, не дс
По собесам походить все равно лишним не будет. Пропадет синдром самозванца, поймешь чего реально стоишь в случае чего, просто опыт прохождения собесов будет. Ну это если есть время, у меня собесы назначали на рабочие часы и приходилось выбирать
>Как он может быть не тредсейф? Собственно внутри атомарный инт с подсчётом ссылок, вроде так
У меня в голове было что счетчик внутри просто обычный, что его даже нельзя через треды переносить. Я почему то считал что есть шаред птр и есть его трэд сейф аналог с атомиком
Ведь получается что обычный шаред птр не в многопотоке юзать сомнительно
>>580690
> но чтоб счетчик ссылок атомиком сделали чтобы два раза дестр
ничего не понял(
пойду про птры читать
>Я почему то считал что есть шаред птр и есть его трэд сейф аналог с атомиком
Есть shared_ptr и есть atomic_shared_ptr не путать с atomic<shared_ptr> - это хуйня просто шаред с мьютексом который добавили ради хуй пойми чего
В обоих атомики, но через первый нельзя конкуррентно трогать данные, а через второй можно
Лучше "myMutex_"
Если студент, то на практику идти на завод. Если с улицы, то знакомых спрашивай (щас очевидно спрос высокий лол) + мониторить вакансии. Многие, типа моего завода, на какой то хуй требуют наличие высшего образования.
Ещё чуть про студенчество. Многие вузы и их кафедры связаны с организациями. Так, в моем отделе, 60% пришли с одной специальности, 80% с одного ВУЗа. На 3-4 курсе появляется практика + пары на предприятии, я туда пошел, проявлял интерес, решили пригласить на работу на 6 курсе. ЗП по началу мелкая была, выросла больше на фоне удержания специалиста (тоже не оче практика), плюс я ценным стал, и мной дорожат (ебаный подход к индивидуальной разработке, если человек куда-то съебет, то его работу продолжить некому).
Завод внезапно представляет пиздец какое хорошее оборудование, заказать свежий и9 с водянкой, если грамотно обосновать, не составит труда. Отладочные платы, книги - всё изи по закупке
Мое мнение ничего не стоит. Я лично боюсь того что будет очередной наплыв джунов из-за понижения порога вката и мою зп начнут демпинговать
Итак прошел еще один собес тоже в геймдев, тут по анриалу почти не спрашивали т.к искали человека как раз для другого движка. По плюсам вопросы почти те же самые что и на прошлом собесе, единственное что часть ответил на английском т.к хотели его проверить. Особо ничего примечательного вспомнить не могу, супер специфического, обычные вопросы. Поскольку отвечал на все быстро то эту секцию прошли за минут 20.
Потом секция алгоритмов, вроде про всякие бинарные поиски не спрашивал, была задача - чет типо как расставить на плоскости размерами AxB некоторое количество объектов размерами WxH. Без кода чисто на словах. Я лично нихуя не понял в чем задача и сказал что буду идти бля слева-направо и расставлять. Собеседующего ответ не устроил почему я не очень понял и он сказал типо надо эту плоскость представить в виде матрицы и там ставить флажки занято ли пространство. Разницы с моим ответом я не очень ощутил но его мой не устроил.
Потом была секция с матешей где я жиденько обосрался. Сначала была хуйня типо че такое вектор, какие бывают произведения, че они означают, зачем нужны квартенионы спасибо прошлому собесу я уже про них прочитал. А потом задача - есть игрок и у него есть поле зрения, и есть объект в этом поле зрения, вопрос - как понять по какую сторону от камеры игрока находится объект (право/лево). Правильный ответ был расчитать векторное произведение от вектора игрока и направления до объекта и взять оттуда знак, но я до такого не дошел.
Потом он спрашивал уже чисто за какие-то геймдевные штуки типо behaviour tree и стейт машины, там я кое-как ответил но в целом так себе.
В целом считаю что будет реджект или какой-то гнилой оффер на джуна с зп 3 миски риса, но в принципе похуй
ну бля в контексте ИИ для геймдева. Просить написать на конечном автомате парсер жсона меня не просили
Как раз через msys пытаюсь собрать, и всё равно cmake ошибку выдаёт, что не может найти.
vcpkg install qt
В смысле, один и тот же? Ну ты омерику открыл)))
Может ещё что shared_ptr->f() не делает атомарным вызов это сюр-приз?)))
>Поверхностно как-то знал, что вроде как там тредсейфно сделано. А оказалось (после нескольких дней дебага) НЕ СОВСЕМ
>ты его заполнил, потом отдал двум тредам по значению
Если двум тредам отдал по значению, то и присваивать можешь каждой копии сколько хочешь
Неча на зеркало пынять
Не понял, какую ты там аллокацию прописывал? Один раз выделил память под кольцевой Буффет и юзаешь.
Если же ты хочешь динамически выделять память при разном рейте, то тебе точно нужен кастомный аллокатор. Который будет брат память в уже заранее выделении блоке, да бы не дёргать сисколы. Ну и подумай, это точно нужно технически или твои это хотелки? Можно подумать, как менять контейнеры на лету, т.е. под разный рейт использовать разные контейнеры, но опять же, ты должен понимать, что это будет того стоить если процесс изменения скорости передачи стабильный и предсказуемый.
Динамически выделять массивы для постройки по скорости - плохая идея.
Более того. Если ты не будешь писать данные при заполненном буффере, то может вообще fifo очередь стоит юзать?
Вот когда такое пишут не думают о том что и до этого все уже было написано на православном си, с птредами и без вмяких смарт поинтеров?
Спасибо анончик
Модули не линкуются как объектники. Там внутри уже пережёванное компилятором представление хедеров, которое просто не надо на репите у каждого юнита трансляции перепарсивать. Это ускоряет конпеляцию, как "прекомпилированные заголовки на максималках" >>579970
В результате можно одной строчкой втягивать всю стандартную библиотеку, и это будет быстрее чем затянуть один иострим дедовским инклюдом.
А уже потом как при обычной кодогенерации, то что не используется тупо не сгенерирует исполняемый код.
Заходи в терминал mingw64, обновляй все пакеты, установи в него тулчейн (пакеты из других терминалов он не видит, возможно ты что-то не туда установил). Пробуй собрать хеллоуворлд.
Сначала попытайся собрать один файл напрямую в g++, потом через cmake.
Проверь переменные окружения CC и CXX.
> Не понял, какую ты там аллокацию прописывал?
Я имел в виду, что не люблю в Си сам следить за выделениями и уничтожениями, чтобы все ветки ретурна корректно обрабатывались. Короче, не доверяю себе в Си. Но код работал, был нехитрый циклический буфер, сделанный на обычном массиве
> Ну и подумай, это точно нужно технически или твои это хотелки?
Вероятно, действительно такое не нужно, надо выделить сразу под худший случай
> то может вообще fifo очередь стоит юзать?
Может и стоит, но какой-нибудь std::deque без собственно аллокатора (который вторым шаблонным аргументом идёт) также будет каждый пуш/поп аллок делать. CB просто хвост с началом замыкает.
Я не умею делать собственные аллокаторы, но предвижу, что кода будет больше, чем если сам напишу свой фиксированный буфер на векторе, с нехитрой алгеброй индексов
Да любой, но я залетный с шарпа. Пакеж как выглядит четкий по мнению плюсовиков.
Чем отличается не пойму
Shit poop() {} от
Shit& poop() {}
особенно непонятно почему
Shit& poop() {
...
return *this;
}
> Shit poop() {}
Копирует shit, после return вызовет operator=(Shit other) {...}
> Shit& poop() {}
Не копирует shit, после return вызовет operator=(Shit &other) {...}
> return *this;
This это указатель на что то, разыменовывая его ты получаешь значение, а из этого значения инициализируешь референс
Спсб, буду думать. Походу бесполезная трата времени изучать плюсы по видео лекциям. Надо по книжке.
>Походу бесполезная трата времени изучать плюсы по видео лекциям
Можно, если это доклады с конференций и выступают деды, но там обычно уже всякие мелочи и нюансы, базу ты должен знать.
А как чистый код связан с тем, что код выглядит как не говно?
Чистый код это про локальные архитектурные решения, а не про то, сколько сделать отступов и как именоваться.
HL™ + KSS 1.6? Шо это?
Ищи Handmade Hero. Там около 600 стримов сейчас по 1-2 часа. Он не совсем на плюсах пишет, скорее на чистом Си и не использует либы, я предупредил.
[label1]
name=text
name2=text2
[label2]
Как его лучше всего разбить на разделы, имя, ключ.
Использовать регулярные выражения?
Также нужно учесть экранирование знаков, например слэшем
color=blue\=5
чтобы получить 'color', 'blue=5'
Что-то вроде этого, lua как понял не подходит из-за utf-8 так было бы круто ей воспольщоваться.
Например,
template <typename T, template <typename> S>
huy budesh(S<T>&& da)
не зафорвардит da, а с простым
template <typename T>
huy budesh(T&& nyet)
проблем нет.
Я рот ебал этого комитета.
Если пишешь какой-то анализатор - берешь tree-sitter, описываешь в нем грамматику и он генерит тебе парсер
Если нужно просто распарсить конфиг - берешь любой парсер ini файлов типо https://github.com/pulzed/mINI
Ебать что это? Да это же лучший тред по лучшему в мире языку программирования.
Как тебя из ньюфаг-треда выпустили?
Крестовики в цитировании Стандарта похожи на юристов.
Согласно пунктам 19 и 24 статьи 154 Федерального закона от 19.01.2016 № 943-ФЗ "О языке программирования C++"...
Создать через new массив из статыщмыльонов байтов.
Оверрайдни new если он юзается, если свой ахахалокатор то в нем лимит задай
Включить фоном какое-нибудь юбиговно.
На каждый Т будет инстанциирован отдельный класс со своим статическим хендлером.
А с этой что не так, сильно устарела?
Как склонять слова по падежам в C++?(бесплатно).У меня некоммерческий проект.
Есть библиотека Морфер, но она стоит дофига. Есть библиотека для Python, но там нужно ставить python на ПК. Есть на C#, но там нужно ставить .NET.
Кто знает варианты?
> Shit poop() {}
возвращает новый объект, а
> Shit& poop() {}
возвращает ссылку на уже существующий объект.
> Shit& poop() {
> ...
> return ★this;
> }
this - это указатель (не путать с ссылкой) на объект, из которого был вызван метод. Разыменовывание ★this дает тебе ссылку на этот объект.
Ну окей, получается lvalue, которое можно привязать к ссылке.
Я так понял Shit poop() {} это когда нужно вернуть объект типа Shit со стека метода poop()
Shit poop() {
shit Shit("big");
return shit;
}
поскольку после возврата метода переменная shit уже не существует. Возвращаем значение которое будет копированно в конструкторе копирования или операторе присваивания.
Во втором варианте мы возвращаем объект время жизни которого не заканчивается после возврата
Shit& poop() {
get_big();
return ★this;
}
Поэтому мы можем вернуть ссылку чтобы избежать копирования
>Возвращаем значение которое будет копированно в конструкторе копирования или операторе присваивания.
Просто в конструкторе копирования или перемещения. (Ну плюс NRVO применится и может и не будет)
Когда мне надо положить свой объект в unordered_set (или unordered_map), ему нужно также дать хэш функцию. Где-то в интернете я увидел что если объявить хэш функцию в std, то ее явно давать не придется:
namespace std {
template<>
struct hash<pepyaka> {
std::size_t operator()(const pepyaka& p) const {
return 1;
}
};
} // namespace std
std::unordered_set<pepyaka>{}; // ok
И действительно теперь достаточно подключить заголовок и оно компилится и работает без явной передачи хэш функции. Что логично. Но, во первых большинство советов предлагают все таки использовать свое имя/пространство для хэш функции, во вторых Clion (а точнее clangd) НЕВЕРОЯТНО сильно всирается от такого подхода и начинает срать ошибками про кривой синтаксис, пропущенные скобки и точки с запятыми, каждый раз, когда я где-то использую unordered_map или set с этим типом данных.
Ок ли такой подход, а Clion опять обосрался, или это криво и не надо пихать вещи в std?
Ну вот я нашел что glslang тоже так делает, но если им можно то почему мне нельзя? Почему силайон ломается
И с третьей стороны clang-tidy говорит что Clang-Tidy: Modification of 'std' namespace can result in undefined behavior
>Clion (а точнее clangd) НЕВЕРОЯТНО сильно всирается от такого подхода и начинает срать ошибками про кривой синтаксис, пропущенные скобки и точки с запятыми, каждый раз, когда я где-то использую unordered_map или set с этим типом данных.
Например?
А если так
template<>
struct std::hash<pepyaka> {
std::size_t operator()(const pepyaka& p) const {
return 1;
}
};
не знаю зачем
просто хочу
>АЙБЛЯДЬ НЕКОПИНИРУЕТСЯ
>ОЙБЛЯДЬ УБ
>МАТЬВАШУ NPE
Хуево быть настоящим программистом, земля констатой блядь.
Начиная со времён, когда Бъерн Страуструп задумал язык воплощающий в себе близость к железу, как у си и одновременно выразительность, которую дает парадигма объективно ориентированного программирования, основная идея, которая нас всех объединяет, идея, которой служили поколения наших предков — это идея страндартизации… Могучий, великий язык программирования — это тот идеал, ради которого сиплюсплюс программист готов страдать, готов терпеть любые лишения, готов, наконец, отдать свою жизнь… Это иррациональная идея. Это не то прагматическое скриптовое стремление извлечь максимальную выгоду для себя лично, это идея инженерного духа, который подчиняет и расстворяет в себе вашу, мою индивидуальность, но взамен и вам и мне даёт во сто крат больше; даёт ощущение причастности к великому организму, даёт ощущение духа, даёт ощущение силы и бессмертия. Скриптопетухи всегда стремились скомпрометировать идею нашего языка, но самая большая опасность для нашей идеи заключается не в скриптопетухах, а в нас самих; это мы сами хватаем все эти бесконечные модные скриптовые идейки, соблазняясь их очевидной практичностью, рациональностью, не соображая при этом, что именно в этом заключена их губительная для нас сила. Но ничего, наша собственная идея в конечном счёте всегда берёт верх. Посмотрите: все наши новые стандарты в конечном счёте приводили не к разрушению, а к укреплению и к усилению языка. И так будет всегда.
>Посмотрите: все наши новые стандарты в конечном счёте приводили не к разрушению, а к укреплению и к усилению языка. И так будет всегда.
Ага, настолько, что уже гугл задумался захуярить замену ибо это уже не серьезно.
Никому на хуй не нужно растить специалиста 15 лет и который один хуй будет слабо понимать, че происходит.
Почему у школьников так горит с лучшей корпорации? Msvc лучший компилятор, windows лучшая ос, winui лучший гуи фреймворк. Просто прими это.
asm("nop")?
Ты забыл упомянуть про лучшую IDE, брат.
Хуета. Люблю линукс потому что это как советская машина в гараже, хоть и не ездит, но каждая ее гаечка знакомая и родная. А ты продолжай ездить в машине на прокат, наблюдая как постороние люди переключают радиостанции у тебя в салоне.
мимо скуф
А я могу и пешком дойти. Зато сидя в гараже, в салоне жигули слушаю только те радиостанции которые хочу.
Я боюсь, что твоему работодателю похуй на радиостанцию, если ты не доехал в нужный срок.
Но скорее всего, у тебя есть доходы в виде пенсии по шизе
Если в серьез говорить о шизе...
Вот ты не можешь в своей винде програмно что-то сделать потому что
1) нет документации на это, так как это часть внутреннего апи
2) это не легально
Это не техническая проблема
А в линуксе все есть чисто техническая проблема
Поэтому с виндой постоянно возникает ощущение что тобой командуют: сюда не ходи, сюда ходи, снег на бошка упадет...
Да запросто
Вот есть у тебя инсталяция винде, ты ее хочешь размножить на неограниченое количество установок. В линуксе это тривиально. А в винде это не только лишь програмная проблема.
Почему в винде нет аналога чрута? Все делается через какую-то жопу из 90ых.
Почему для винды нет нативного докера?
Почему для того чтобы воспользоваться каким-то фунционалом надо присоединяться к каким-то програмам жмаканием гуя. Это не техническая проблема.
>Вот есть у тебя инсталяция винде, ты ее хочешь размножить на неограниченое количество установок. В линуксе это тривиально. А в винде это не только лишь програмная проблема.
Элементарно, sysprep, копирование образа даже через клонезиллу\акронис.
> Почему в винде нет аналога чрута? Все делается через какую-то жопу из 90ых.
Не знаю нахуй это нужно. Наверное не нужно. По крайней в мере за 5 лет линуксоадминства ниразу не потребовалось.
> Почему для винды нет нативного докера?
Есть два - чистый под винду, мы на нем билдимся на работе, и под ВСЛ
> Почему для того чтобы воспользоваться каким-то фунционалом надо присоединяться к каким-то програмам жмаканием гуя. Это не техническая проблема.
Хуй знает причем тут ОС.
Чето вменяемое расскажешь то?
Чрут это просто сис колл. В линуксе я могу просто не перезагружаясь делать изменения в примонтированой системе. Обычными командами из баша. Часто пользовался чтобы Арч ставить и генту компилить смотря фильмы. В винде тебе дядя билл такого не позволит. Мало ли ты чо там наотключаешь...
>нативного
>есть под Windows Subsytem for Linux
ага...
>Хуй знает причем тут ОС.
Пому что ты не можешь програмно сделать apt-get install, а должен посмотреть рекламу программы Microsft Insiders и ручками нажать на кнопочки.
Но есть вариант за мильоны баксов где все включено. Вместо инструментов для разработчика у тебя набор спайваре который лицензии проверяет на каждое действие.
матлату с TRM уже купил, чтобы дядя билл тебя получше конторолировал?
Ну да, пенсия по шизе в наличии. Надеюсь ты выпаял у себя Intel ME с мамки и мобила у тебя кнопочная, иначе твоя бредятина про спайваер особенно комична
Речь не про вред от микросовтского спайваре , а том что половые проблемы дяди била, к разроботе никакого отношения не имеют. Они просто идут внагрузку с виндой.
Линукс проще, знакомее, дружелюбнее.
Прикольно как дядя бил заставляет либо вводить онлайн аккаунт при установке винды либо отвечать на три вопроса. Была возможность просто ввести имя и пароль, но ее удалили. Подопытные мыши, такие мышы, все равно сожрут отравленый сыр.
>qml
Вот именно. А у меня будет так - хочешь ебашишь статику на html, хочешь - среакт тянешь.
Только скажи, нахуя мне это знать? #include работает, ВинСДК обновляется
Есть тут анон, который шарит за OpenGl? Нужно в универ проект сдать, а ебаться с этим 0 желания? Работаю на другом стеке и это не к селу ни к городу.
Нужно сделать что-то типа пикрл, так же сделать нпс который выполняет роль камеры, можно подойти к какому-то объекту и такое. Так же должно быть окно со светом из вне.
Примерно так. Сколько это может стоить? Сроки ну хз, недели мб хватит
Прям чистый OpenGL надо юзать? Без дополнительных либ, без движков? Задача сравнительно сложная, на голом OpenGL делать долго и дорого.
Так надо выяснить, можно ли юзать этот самый Assimp. Понятное дело, что с либами можно нарисовать сцену в 3D-редакторе, экспортировать в FBX и загрузить + написать процедуру для движения камеры, и всё.
Не, нельзя. В 3д редакторе нельзя. Я таких слов не знаю, но думаю да, чистый OpenGl , текстуры, мб какие-то доп либы использовать можно, но вся эта фигня должна быть описана кодом. Дорого это сколько? Рофл в том, что у нас большинство в душе не ебут как это делать. Пацаны бекенды пишут, фронтенды там, есть пару девопсов, люди явно конкретно обозначили проф. принадлежность, но сори, чтобы получить 3 по этому говну надо реализовать сабж
Не, нельзя. В 3д редакторе нельзя. Я таких слов не знаю, но думаю да, чистый OpenGl , текстуры, мб какие-то доп либы использовать можно, но вся эта фигня должна быть описана кодом. Дорого это сколько? Рофл в том, что у нас большинство в душе не ебут как это делать. Пацаны бекенды пишут, фронтенды там, есть пару девопсов, люди явно конкретно обозначили проф. принадлежность, но сори, чтобы получить 3 по этому предмету надо реализовать сабж
Гыгыгыгы, как смищно. Тебе не приходило в голову, что эта хуйня никому не интересна и не нужна и нет ничего плохого в том, чтобы дать возможность желающему заработать?
>Тебе не приходило в голову, что эта хуйня никому не интересна и не нужна и нет ничего плохого в том, чтобы дать возможность желающему заработать?
так ты мне это не мне говори, а своему преподу, лол
а мне глубоко похуй на тебя и на лабы
максимум могу посоветовать https://learnopengl.com, как раз за недельку осилишь, если не тупень
А если я скажу, что есть стартовый проект, где есть комната, двигающийся нпц с камерой? Нужно лишь расширить комнату, добавить аккуратной мебели и сделать свет из окна ?
>>583622
>представил ебало чела с пикрл, сидит загарает за монитором все думая, как же охуенно вкатиться в геймдев 300к сек рубить, мммм как хорошо, бест туториалс
Ну бля, вот все твои модельки выше - это координаты вертексов + текстур.
ты можешь намоделить это говно, сохранить в самый простой возможный формат - 3дс какой-нибудь, и потом его сконвертить в массив вертексов.
Но да, ебань это всё
>А если я скажу, что есть стартовый проект, где есть комната, двигающийся нпц с камерой? Нужно лишь расширить комнату, добавить аккуратной мебели и сделать свет из окна ?
12 тысяч
Для того, кто ебётся с этой хуйнёй ежедневно, может и 1.5 часа.
В учебном плане OpenGL и ниибет.
Вулкан нужен исключительно писателям игровых движков. Никто не будет руками писать 1000 строк для рисования треугольника.
Ну вот. Как раз скоро голограммы доизобретут, под них движки писать придётся.
Никто не будет для триугольника брать графическое АПИ. Зачем тебе писать 100 строк на желе, если можно взять готовый рендерер?
А вот если нельзя, то вулкан
Пиздишь с гитхаба самый наивный рендерер, которых там как собак не резаных. Комнату рисуешь в моделлере и всасываешь туда. Все.
Вообще че ты разнылся, будь мужыком, изучай технологии, не скатывайся в макакинг
Мимобэкендер
А с прошлых лет артефактов не осталось, обычно у таких ебучих преподов поколениями передают лабы
В геймдев треде кста спроси, там есть орава шизов которые пишут свои движки, может кто-то и не против будет на самодельном рендерере тебе это запилить за десятку-другую-третью
Имагине использовать лицензионный софт, тем более QT когда есть божественный wxWidgets
Да лицензированный под LGPL полностью бесплатный Qt, который можно использовать в коммерческом проекте и не открывать исходники. Вместо хуйни без задач wxwidgets.
>LGPL
Хуита хуит, сразу нахуй.
Если опенсорс библиотека на не MIT/Zlib, это параша для красноглазых сектантов, у которых абсолютно весь софт должен быть открытым
Как и у всех корпораций, платный саппорт. В России в любом случае смысла не имеет.
Ну и можно линковать статически. А так придётся класть рядом dll-ки Qt.
Ну а ты как хотел. Васян старался пыхтел годами над проектом, даже на тяночку времени не было. А ты значит такой приходишь отдохнувший, потому что нихуя не делал и выебешь его тяночку...
2) задание на строки.
Задания небольшие, я думаю вы сможете сделать их за два часа максимум. Заплачу 800 рублей. Пишите в тг @denkrylo
Как не плакать то, столько хвостов в вузе, чо ж делать то
На лапку для монитора, что бы треть стола освободить начальство не расщедривается?
Ну да ладно, вопрос к анонам такого плана - как лучше хранить конфигурационный файл для своего высера нейм?
В реестре.
%TEMP%
https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
> $XDG_CONFIG_HOME defines the base directory relative to which user-specific configuration files should be stored. If $XDG_CONFIG_HOME is either not set or empty, a default equal to $HOME/.config should be used.
Братан ты просишь сделать за тебя лабы, а не помощь. Если есть вопросы - можешь задавать 96могут ответить, а могут нахуй послать.
Сделаю за 45 рублей.
Скачал какую-то рандомную книгу Boost.Asio C++ Network Programming Cookbook от Дмитро Радчук, а там даже strand нет, пиздец.
И если не сложно, анон, скажи, как правильно использовать executor? Ради гибкости, я должен везде его писать вместо io_context, и уже в мейне определять, что за экзекутор у меня такой будет?
>Скачал какую-то рандомную книгу Boost.Asio C++ Network Programming Cookbook от Дмитро Радчук, а там даже strand нет, пиздец.
Надо было от Жохн Торжо качать
Залётный
Книга простая очень, вроде они загнули с "для профи"
Я понимаю, если бы повторяющиеся числа стояли рядом, тогда бы XOR просто возвращал 0. Но если побитово заксорить x и y результат будет рандомный.
И самый главной вопрос, можно ли додуматься самому до решения, не зная об этих свойствах ксора?
Каких ещё свойствах? Операции объясняют в начале любой любой книги по крестам, хз, как это вообще можно пропустить.
Анон, я блдяь не понимаю, почему про Азио нет нихуя, будто бы я гуглить не умею. Есть норм переведенный цикл статей на Хабре, но он далеко не полный. Вопросы на стековерфлоу либо оче профильные и их мало, либо совсем нубовские аля "а как какать".
И это АЗИО, это основа всего ИО и интернета и таймеров, которое на 3/4 шишки уже в Стандарте (Networking TS), это очень базовая часть языка, базее потоков и контейнеров вместе взятых.
Азио фактически тебя учит по-другому программировать на с++, ведёт тебя в сторону асинхронщины, корутин и хитрожопых автоматов, и за крутую логику твоего сервера награждает тебя быстрейшим сетевым стеком и простым горизонтальным масштабом.
И сука, инфы мало.
>>584720
Спасибо
>>584672
Блин анон сорян, хреново воспринимаю видео
Я курил доки асио, примеры их же. Так появилось общее понимание. Далее уже отдельные функции читаешь, вопросы какие то узкие на stackovefrlow спрашиваешь
> можно ли додуматься
Не зная свойства ксора невозможно
Да и в целом даже зная битовые операции, в алгоритмах это последняя вещь что ты использушь
С точки зрения житеской логики это вообще неочедидно. x ^ y получается НЁХ, никак вообще не связанная ни с x, ни с y (например 5 ^ 2 = 7; 5 ^ 3 = 6; 5 ^ 4 = 1 ).
Потом мы эту НЁХ ^ z, получаем НЁХ1. Потом НЁХ1 ^ x ^ y получаем магическим образом z.
Ну сам на бумажке пару чисел сложи так и поймёшь
Ну или посмотри на примере битов не
или вобще по хардкору загугли докажи это свойство
xor сложение разрядов по модулю
А какая битовая операция очевидна с точки зрения житейской логики, особенно если представлять ее в десятичной системе?
Пусть у нас массив некоторых чисел. Возьмем первый бит каждого числа (с остальными битами все тоже самое). Количество нулей значения не имеет, значит берем количество единичек и обозначаем его n. Тогда если к этому массиву чисел добавить еще один массив с теми же числами, но расположенными в другом порядке, количество единичек будет 2n, что является четным числом, и исходя из определения дает 0.
Эх, вот бы тяночку
Не на до
string s = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
То:
1. "aaaaaaaa..." создаётся в специальной области памяти, где будет храниться всё время работы программы
2. В куче выделяется место под копию "aaaa". В s будет храниться указатель на эту память в куче
3. На самом деле 2 пункт неверен, так как здесь неявно используется конструктор перемещения и на самом деле в s будет храниться указатель на "aaaaa..." из того самого string literals pool?
Всё так?
Пит буль
Не так
Шаблонный шаблонный параметр, который принимает один шаблонный аргумент. Нужно чтобы фактический аргумент функции был инстанцирован интом, или был конвертируемым в интовый инстанс.
С какого перепугу у тебя может работать третий пункт, если строка не константная?
Хочешь чтобы не было копирования делай string_view.
Да.
Кто такой этот ваш визитёр?
Норм передавать си-шные массивы в функцию таким образом:
foo( std::begin(array) );
вместо старого способа
foo( &(array[0]) );
Я знаю про std::span, но платформа не позволяет использовать C++20, плюс тут дохуя легаси кода
Если пишешь под легаси то я бы и писал в легаси стиле.
тем более чтл конкретно &arr[ind] тема рабочая
Индусы.
Wine
А деды зачем так делали?
> решарперу
Кусок поломанного говна, через жопу поддерживающий свежий стандарт. Если бы была нормальная система сборки кроме MSBuild, то уже давно бы укатился на VSCode.
У системы события должны быть на такие случаи.
вы чё охуевшие? в вузах заставляют ебаться с написанием графического движка с нуля в одно ебло?
Собсна, неосилятор в треде. Самоустранился со второго курса по собственному, не смог больше этого вывозить.
Ну так из того что изучал там компьютерные сети, ассемблер 64 есть, такое поверхностное. Знаю что есть там режимы памяти разные, регистры управления, регистры для математических операций, чем отличается стек от кучи, как вызывать функцию из ассемблера и вот это всё, с\c++ на уровне ньюфани синтаксис знаю, контейнеры кой какие, указатели чётко ясно понял, шаблоны не помню, но если почитаю быстро вспомню.
Ядра осей проходил, даже в винду углубился на фильтра и драйвера. Знаю про всякие таблицы страниц на озу, dma как работают(всё поверхностно, не до малейшей детали).
Щас самопидорнулся из вузика. Планировал вкатиться вайтишником, ведь действительно знания есть. Скрипты могу писать для собственных нужд в оперционной системе. Арч собирал сам было дело, без всяких там помогало и т.д. Думал, ну с такими знаниями то я точно устроюсь на какого-нибудь джуна-ебуна или стажёра. Но нихуя, везде какие-то сверхтребования, либо требуют вузы, либо требуют какие-то интересные проекты и опыт блядь программирования многопоточных приложений и кроссплатформы. И везде эта дурацкая надписаь что параллельном с вами ещё 100500 вкатунов смотрят эту вакансию.
А какие интересные проекты можно создать когда ты ньюфаня ебаная? Я не могу велосипед изобретать, единственный мой интересный проект это пара скриптов в повершеле и редактирование mbr таблицы через hex редактор.
Вроде и знания есть, а стартануть не могу. Я слишком тупой чтобы быть программистом, но не такой тупой чтобы пойти на дно работу, да и не могу по состоянию здоровья. Вот что мне делать? Вкатившиейся аноны, ну поясните что-нибудь как развиваться? Куда двигаться?
У меня ещё стэк такой получился системный, потому что я это только и изучал по сути всё время. В геймдев или веб разработку вообще не варик щас вкатываться, там будет полностью с нуля да и математика там супер сложная нужна будет, посложнее системача. Могу оперативно на прикладное под си шарп переучиться ещё, там и язык интуитивно понятный и в .net да .qt разобраться будет в разы проще после всяких win32
Собсна, неосилятор в треде. Самоустранился со второго курса по собственному, не смог больше этого вывозить.
Ну так из того что изучал там компьютерные сети, ассемблер 64 есть, такое поверхностное. Знаю что есть там режимы памяти разные, регистры управления, регистры для математических операций, чем отличается стек от кучи, как вызывать функцию из ассемблера и вот это всё, с\c++ на уровне ньюфани синтаксис знаю, контейнеры кой какие, указатели чётко ясно понял, шаблоны не помню, но если почитаю быстро вспомню.
Ядра осей проходил, даже в винду углубился на фильтра и драйвера. Знаю про всякие таблицы страниц на озу, dma как работают(всё поверхностно, не до малейшей детали).
Щас самопидорнулся из вузика. Планировал вкатиться вайтишником, ведь действительно знания есть. Скрипты могу писать для собственных нужд в оперционной системе. Арч собирал сам было дело, без всяких там помогало и т.д. Думал, ну с такими знаниями то я точно устроюсь на какого-нибудь джуна-ебуна или стажёра. Но нихуя, везде какие-то сверхтребования, либо требуют вузы, либо требуют какие-то интересные проекты и опыт блядь программирования многопоточных приложений и кроссплатформы. И везде эта дурацкая надписаь что параллельном с вами ещё 100500 вкатунов смотрят эту вакансию.
А какие интересные проекты можно создать когда ты ньюфаня ебаная? Я не могу велосипед изобретать, единственный мой интересный проект это пара скриптов в повершеле и редактирование mbr таблицы через hex редактор.
Вроде и знания есть, а стартануть не могу. Я слишком тупой чтобы быть программистом, но не такой тупой чтобы пойти на дно работу, да и не могу по состоянию здоровья. Вот что мне делать? Вкатившиейся аноны, ну поясните что-нибудь как развиваться? Куда двигаться?
У меня ещё стэк такой получился системный, потому что я это только и изучал по сути всё время. В геймдев или веб разработку вообще не варик щас вкатываться, там будет полностью с нуля да и математика там супер сложная нужна будет, посложнее системача. Могу оперативно на прикладное под си шарп переучиться ещё, там и язык интуитивно понятный и в .net да .qt разобраться будет в разы проще после всяких win32
Я не могу так пахать, мне плохо физически становится, поэтому и ушёл.
От вуза сильно зависит, нас сильнее всего ебали на первом курсе, дальше было легче. Ебали в основном математикой, всякие теории управления, методы оптимизации, вычислительные методы и прочая прикладная математика, открываешь лекцию, и там вообще нихуя не понятно, но как-то садились с одногруппниками и дрочили задачи, пока кто-нибудь не поймёт и не объяснит остальным. Полного понимания так нигде и не было, на экзаменах научились пиздеть с умным видом, вроде получил отлично, а вроде и не понимаешь ничего.
Вот и у нас так под конец в группе из 30 человек осталось 5.
в одной из книг Страуструп писал (дословно) "Всего знать невозможно, вам придётся смириться что вы чего-то не знаете" и это было как раз сказано в контексте того самого айти, он про какую-то хуйню сказал что не знает её устройства и не ебёт как она работает, но ему похуй это не мешает ему ей пользоваться. в этой же книге он писал что задрачивать язык до мельчайших деталей не имеет смысла, только если ты не разработчик комплятора под него. учи до уровня что можешь пользоваться и твори.
программирование состоит из огромного количества уровне абстракций. в вузах на кой-то хуй людей засатвляют учить ВСЁ от схематехники и физических молекул до, блядь верстки в браузере. и по итогу выходит абсолютно заёбное существо, с выжатым мозгом которое нихуя не умеет в реальном деле.
в вузах тупо ломают все уровни абстракции и пихают людям кучу поверзностных знаний во всех сферах(и то если они будут добросовестно учиться, а так и этого не будет)
ну так вот, собсна. если ты любишь веб, учи api браузера, верстку, скриптовый яп, базовые алгоритмы и пиздуй кнопать. тебе даже не нужно толком знать как там этот браузер устроен, это другой уровень асбсртракции, есть api браузера и пользуйся ими.
если ты хочешь системным погромистом быть, ну там учи winapi native api, с,с++ что там ещё. Нахуя тебе схематехника, нахуя тебе учить основы графического движка и рендеринга нахуй. даже в том же систмном программировании, куча разветвлений если ты в сеть пишешь то ты должен стек протоколов шарить, если блядь ввод на жд, то файловые систмы понимать. там тоже всего не охватить.
выбери что-то одно узкое и там качайся, не пытайся стать экспертом по всем вопросам.
и да, работать я тебе не советую. сам тоже устроился и охуел. на собесах ебут мозги алгоритмами, а после устройства клепаешь говнокод наскорость "лишь бы работал", ну и работа вообще отвращение к этому айти ёбаному вызывает. когад для души пишешь это искусство, а когда работаешь в офисе ебучем то крыша едет. у них неспроста пишут про то что там можно отдохнуть и неспроста в офисах диваны и кровати ставят. в этой пораше реально мозги кипят.
я после работй вайтишником и всех тех свистоплясок с вкатунством пошёл в днс пылесосы продавать. благо выдрочка после тех вуза позволяла сходу разбираться и в пылесосах и в пеках, и в тв и в смартфонах. многие люди тупили и изучением характеристик, а я даже не учил сразу интуитивно понимал что там где. щас до манагера поднялся + работа с людьми, мне нравится. но иногда мозги ебут, телефоном в ебало могут потыкать, если с нервами и ногами впорядке то в днс продаваном работать в 1000000 раз лучше чем в ёбаном айти. Программирование это круто, но для души только.
в одной из книг Страуструп писал (дословно) "Всего знать невозможно, вам придётся смириться что вы чего-то не знаете" и это было как раз сказано в контексте того самого айти, он про какую-то хуйню сказал что не знает её устройства и не ебёт как она работает, но ему похуй это не мешает ему ей пользоваться. в этой же книге он писал что задрачивать язык до мельчайших деталей не имеет смысла, только если ты не разработчик комплятора под него. учи до уровня что можешь пользоваться и твори.
программирование состоит из огромного количества уровне абстракций. в вузах на кой-то хуй людей засатвляют учить ВСЁ от схематехники и физических молекул до, блядь верстки в браузере. и по итогу выходит абсолютно заёбное существо, с выжатым мозгом которое нихуя не умеет в реальном деле.
в вузах тупо ломают все уровни абстракции и пихают людям кучу поверзностных знаний во всех сферах(и то если они будут добросовестно учиться, а так и этого не будет)
ну так вот, собсна. если ты любишь веб, учи api браузера, верстку, скриптовый яп, базовые алгоритмы и пиздуй кнопать. тебе даже не нужно толком знать как там этот браузер устроен, это другой уровень асбсртракции, есть api браузера и пользуйся ими.
если ты хочешь системным погромистом быть, ну там учи winapi native api, с,с++ что там ещё. Нахуя тебе схематехника, нахуя тебе учить основы графического движка и рендеринга нахуй. даже в том же систмном программировании, куча разветвлений если ты в сеть пишешь то ты должен стек протоколов шарить, если блядь ввод на жд, то файловые систмы понимать. там тоже всего не охватить.
выбери что-то одно узкое и там качайся, не пытайся стать экспертом по всем вопросам.
и да, работать я тебе не советую. сам тоже устроился и охуел. на собесах ебут мозги алгоритмами, а после устройства клепаешь говнокод наскорость "лишь бы работал", ну и работа вообще отвращение к этому айти ёбаному вызывает. когад для души пишешь это искусство, а когда работаешь в офисе ебучем то крыша едет. у них неспроста пишут про то что там можно отдохнуть и неспроста в офисах диваны и кровати ставят. в этой пораше реально мозги кипят.
я после работй вайтишником и всех тех свистоплясок с вкатунством пошёл в днс пылесосы продавать. благо выдрочка после тех вуза позволяла сходу разбираться и в пылесосах и в пеках, и в тв и в смартфонах. многие люди тупили и изучением характеристик, а я даже не учил сразу интуитивно понимал что там где. щас до манагера поднялся + работа с людьми, мне нравится. но иногда мозги ебут, телефоном в ебало могут потыкать, если с нервами и ногами впорядке то в днс продаваном работать в 1000000 раз лучше чем в ёбаном айти. Программирование это круто, но для души только.
Программистодебил сходил на семинар к математикам (на дисциплину с далеко на самым сложным мат. аппаратом, прошу заметить) и не понял нихуя. Вот это неожиданность. Вот бы всем так, может поменьше бы хуйни стали нести, что в программировании без МАТЕМАТИКИ никуда.
Лол, программистодебил думает, что знает, что такое "пахать". ояебу
Если тебе для учёбы на твоём обоссаном вмк приходилось включать голову дольше чем на 5 минут в день, то у меня для тебя пиздец какие плохие новости.
Анон, давай без унижений. Пусть каждый своим делом занимается, всякую криптографию программисты никогда и не придумывали, это прерогатива математиков была. Никто и не спорит что они более прошареные, создают алгоритмы и базу, ровно как и инженеры-электроники, но давайте без этого.
В айти тоже попрой очко порвать нужно моментами.
512x512, 0:10
Не получилось из меня второго Руссиновича. У того степень-бакалавра и он вслепую без исходников понял как nt ядро работает на 2000 винде, а я обоссышь проучившийся 1,5 курса. Походу выпиливаться придётся если совсем обосрусь, больше ничего в жизни уже не держит. Мамка на пенсии, кормить меня не сможет, тянкам не нравлюсь, сам я на дно работы не пойду.
Попробую ещё почитать кнута по алгоритмам и ещё раз попробовать в штурм вакух, если нет то нет.
Как тебе кнут в собесах поможет?
Или ты на технические вопросы и вопросы по кишочкам идеально отвечаешь, а на алгосах заворачивают?
Ну у меня алгоритмы самая слабая зона. А что вы называете кишочками? Всякие функции из фремоврков?
Я порой открываю некоторые вакансии, смотрю требования и мне кажется что они открыты специально чтобы висеть годами и никого туда не брать, потому что то что там висит знать одному человеку нереально просто.
Классические кишочки - устройство map и unordered_map. Сможешь объяснить - молодца, не сможешь - пожуй говнеца
Как обычно, новый стандарт насрал десяток-другой нью и делитов: https://en.cppreference.com/w/cpp/memory/new/operator_new
А мне нужно всего лишь добавить логгирование, я не хочу менять логику. Как мне вызвать оригинальные нью и делит, или где мне найти их код, чтобы вкопипастить к себе после вызова логгера?
Обычный new и delete я реализовал простым malloc и free, но надо же еще как-то хитровыебанные надо переопределить
Дока профайлера предлагает так инструментировать, да и аллокаторы не везде используются.
Чем идея плоха?
Сейм, не понимаю нахуя я в это болото полез если сам тупой блять как пробка
>днс продаваном работать
Да охуенно, как и множество других профессий типа повара или я не знаю блядь экскурсовода, но у всего этого есть суровый недостаток - мало платят и ноль соцпакета как правило. Поэтому приходится работать в ёбаном айти
Как правильно в стиле C++ писать функции, изменяющие передаваемые аргументы? Например, декодирующие некоторую последовательность. В функциональном стиле возвращать измененное значение из функции или прям менять внутри переданный по ссылке аргумент? Грязно и с побочными эффектами.
Продаванам не так мало платят, особенно если ебучий план будешь выполнять то нормально. Но знаешь, я лучше жить нормально буду, чем постоянно гоняться за технологиями и быть "в струе". Нахую куртил это дрочево.
Съеби в /b/, здесь твоя переоценка ценностей и экзистенциальный кризис никому не интересны. Тред для тех, кто определился со своим жизненным путем.
> не сможешь
Значит пойди поучись в школе ещё раз. Потому что на эти вопросы любой блядь восьмиклассник ответит.
Если ты не плюсодебил, нахуя тебе брать референс???
Оподливился с этого инженера
> Думал, что сейчас спокойно возьму референс на элемент, так нихуя, костылить пришлось
Нахуя, а главное зачем?
Аноны, что вы думаете про пикрелейтед реализацию, UB или будет работать? Ощущение грязнейшего хака не покидает меня...
чистые функции делай и возвращай новые обьекты.
Будет НЕ ТАК быстро - зато поддерживаемо и красиво.
А потом можешь на мувы переписать, так еще и останется быстро
& если плюсы, * и & е ли си.
Иди на форумах командуй, вахтёр ёбаный ЧСВшная мразь токсичный гондон. Аж как представил твоё сальное самодовольное ебало с омежьими усиками, прямо харкнуть захотелось.
А мы тут рады нюфажикам, ведь однажды они станут нашими тимлидами.
)))0
Бамп
Перекатись, потом проведи бенчмарки и сделай выводы.
Результат зависит от аппаратной платформы
Как у тебя вообще совести хватает такую жирную хуйню бампать
>Как у тебя вообще совести хватает такую жирную хуйню бампать
Я вообще-то нормально спрашиваю. Заебался от тупизны жса и вечной ебли с сотней говнопакетов высранных какими-то говнарями и притащенными в проект такими же говнарями и долбоёбских ошибок с нихуя необъясняющими сообщениями. Будет ли ситуация лучше в плюсах?
С++ худший из популярных языков. На С++ пишут от безысходности.
Если тебе не нравится твой язык - попробуй писать на С++ и ты снова полюбишь его.
Практически всегда в С++ ты будешь работать с тем, что сделано пиздецки криво. Не весь С++ кривой, но хотя бы одна кривая хуйня всегда будет рядом.
Но кучу говнопакетов говнари не натащут, ведь чтобы натащить каждый говнопакет говнарю придется его скачать в .zip и ручками скопировать в папочку, а потом поебаться со скриптами, чтобы говнопакет собрался. Вместо этого говнари понапишут свои кривые реализации на любой чих, а ты будешь это поддерживать
>Как мне вызвать оригинальные нью и делит
Так же, как вызываются глобальные функции вместо собственных функций класса.
void⚹ MyClass operator new(args)
{
// добавляешь свое логирование
// ...
return ::operator new(args);
}
MyClass::operator
Почему в вакансиях только питоно-одиноэсо-джава-шарпо-пыха говно?
Так и занимайся байтоёбством в Си. Пиши прошивки для роутеров, контроллеров, чпу. Плюсы не для байтоёбства
Да лан, в жс тоже можно похожее словить ошибку парсинга из компилятора.
Только эта хуйня, тебе даже не намекнет где она. Она просто высрет ЭЭЭЭБЛЯДЬ ТУТ ЗАПЯТАЯ, Я НЕ ЖДАЛ.
>Она просто высрет ЭЭЭЭБЛЯДЬ ТУТ ЗАПЯТАЯ, Я НЕ ЖДАЛ
Ошибкой глубоко глубоко в каком-нибудь babel-xxxxx-xxx.js
Школьник ебаный, тут никому не нужна твоя жизнь. Сюсюкаться с тобой никто не будет. Считаешь, что айти тебе не нужно - молча вали в продаваны, принимай решение. Хуле ты такой беспомощный инфантильный хуесос? Воистину большинство мужиков инфантильны и без одобрения двачеров ничего сделать не могут сами.
Хуй знает, как требования реализовать.
Вопрос, не изменяя класс можно убрать лишнее создание/удаление класса в main?
Create
Create
Delete
Delete
partial/explicit specialization
А чо я то
Нет, оно не лишнее
>пример кода как-то иначе выглядит
Иначе чем что?
> это нововведения?
Во что по сравнению с чем?
>Как к этому относиться
С пониманием.
Ничего убирать не надо.
Когда у начальства начнет жопа гореть от того что продукт тормозит, вот тогда и уберешь.
int main()
{
auto ptr = std::make_shared<App>();
ptr = ptr->make_shared_from_this();
ptr = ptr->make_shared_from_this();
}
1. пик настройки проекта самого.
2-3. пик компоненты которые установлены у меня
Приезжай в ДС и ДС2, там скорее всего найдёшь работу для байтоёба.
Байтоёбской зарплаты как раз хватит на съём хаты и на еду.
Проблему пофиксил. визуалка 2022 не поддерживкает sdk для win10, на 2019 все работает.
std::string str2 { "alpha" };
// (1) operator=( const basic_string& );
str1 = str2;
не понял, тут происходит глубокое копирование или str1 начинает указывать на str2?
Макаки, почему вы не можете просто следовать божественному Core Guidelines?
Почему вы просто не можете писать безопасный код? 1
Американские евреи хотят угробить программирование, пересадив всех на динамические языки, находящиеся в полной власти корпорации, а значит и правителства. В то время как на С++ можно писать качественный безопасный код, на тком говне как C# нельзя, там его интерпретатор находится во власти укорпорации которая может напихать каких угодно зондов и программист пишущий программы ничего с этим не сделает и даже не узнает. Война против С++ это война против программирования за цифровой гулаг ракбов пишущих корпоративные скриптики для корпоративной машимны под властью правительства, со всеми логами, бэкдорами и прочими зондами. Скоро в программы на "безопасной" динамикопараше будет инжектиться реклама, и никто ничего против не хрюкнет, рабы будут терпеть.
>Байтоёбской зарплаты как раз хватит на съём хаты и на еду.
Где-нибудь в тихом испанском городке на берегу моря, да?
Двачую этого.
Наш с++ на любом говне скомпилировать можно, из какой бы страны процессор бы не был
Скомпилируешь на пик18?
Чем больше виджетов в приложухе, тем выше вероятность, что очередная кнопка на стеке приведёт к сегфолту.
Вот поэтому я бэк пишу на плюсах а фронт на ряхте.
Да.
Чутка утрировано, но он прав. Еще в совке собирали си и форт на своих машинах под свой код. А сейчай и то...
Чтобы многопоточку нормально пережевывала итд
Ну вот, си - не ваш, форт - не ваш, компы - ну вроде как и было что-то, но с большой долей вероятности завезённое и перемаркированное из какой-нибудь ЛА или Азии. Вот я и говорю, что в мире нихуя вашего не было, нет и не будет.
Наше - всё, что у нас и под нашим контролем. С++ это нативный бинарный код над которым никто не властен, как программист написал, так программа и работает, без всяких сюрпризов от барина как это у "безопасной" параши для даунов-рабов. Вот что такое безопасность, безопасность это С++, а не как эти кукарекающие жидососки как всегда врут переворачивая всё наоборот, вод визги "За безопасность!" уничтожают эту самую безопасность.
Наивная душа. Наебнут завтра все днс серваки, компилятор из репы уже не подтянешь. Что дальше будешь делать?
У меня визуал студио скачанная с рутрекера. Онлайны на хую вертел.
Зато вот шарп в ней же, без онлайн репы (NuGet) уже пососёшь. Вот она, анальщина откуда лезет, от якобы безопасной динамикопараши. Полная потеря контроля над всем, и кодом и средствами написания кода, всем рулит неизвестный дядя. Какая тут в жопу безопасность?
Ну и линукс, он на то и сделан - прошивка для серверов полностью завязанная на онлайн-пуповину, без онлайна тыква. То же самое, корпоративная марионетка,.
> что такое безопасность, безопасность это С++
Жирно
>Онлайны на хую вертел.
Через несколько лет ссд отваливается вместе со всем содержимым. Харда у тебя нет, дисков у тебя нет, флешек у тебя нет, дискет у тебя нет. Твои действия?
Ошибка компиляции E9994. Твои действия?
Я не он, просто мимо шёл. Попробовал загуглить этот твой консервант и ничего не нашёл. Это что-то реальное, или ты из головы выдумал?
Просто рандомный набор символов. Не суть. Когда тебе конпилятор выдаёт что-то подобное без явного сообщения где ошибка ты что делаешь? Правильно, лезешь в гугл. А тут челу нинужно.
Онлайн - это причастие.
Интернет - это существительное.
Онлайн и интернет - это разные слова.
Теперь иди делай уроки, тут сайт 18+, нефиг делать даунам не понимающим даже русский язык.
>Онлайн - это причастие.
Кодревью - это исповедь.
Дебаг - это крестный ход.
Профайлинг - это крещение.
Хули ты в C++ треде забыл, знаток русского языка?
Так на эпик или на фичу? Если уж ввязываться в аджайл дерьмо так хотя бы понятия не подменять. Да и вопрос сам по себе тупой. Зависит от того, какой говнокод наговнякан в том месте которое надо дополнить фичёй.
На эпик. Нужны конкретные сроки от и до. От (если все заебок с кодом) до (если там нахуеверчено до меня).
>От (если все заебок с кодом) до (если там нахуеверчено до меня).
Я тебе ещё раз говорю что этот вопрос слишком абстрактный чтобы иметь правильный ответ.
Ответь: "от 1 стори поинта до N спринтов" и будешь абсолютно прав.
Если у вас не рокет саенс, то с вероятностью в 95% хай перформер из уверенных миддлов осилит любой эпик за 1-3 месяца в зависимости от описания задачи, уебищности кода и сложности фичи. Все, кто делают это дольше - хуйня из под ногтей
А если не хотите давать денег.
То, чтобы не пожалеть, что родились.
Зацените мой альбом.
http://movepoint.ru/
Год писал под Symbian в топ телеком компании.
Я ещё как-то соглашусь со своими мьютексами или шаред_птрами, хуй знает, может туда защит диагностический лог, но тот же азио большой и оче вероятно переедет в стандарт.
Как поступают в больших фирмах? Какие существуют платные либы? Какие у них преимущества кроме очевидной расширенной поддержки? Телега использует Куте и не выебывается, правда хз чё у них за неткод
Потому что в крупных компаниях зачастую всё много хуже чем в небольших. А уж в хуяндексе и подавно. Недаром с кем не общался - все сходятся на мнении что яндес в трудовой - это клеймо.
>оче вероятно переедет в стандарт
возможно они и стандарт не используют
по крайней мере во многих местах такое
>>591056
И вот на кой хуй стремиться работать в Яндекс? Выглядит так, что в мелкоконторе и рост шире, так как вероятно будет фулстек, и интереса больше. Я боюсь, что приходя в Яндекс на не руководящую должность, будешь, как робот, писать заданные прыщавым студентом классы, особо никуда не сворачивая.
Мне нравится и изобретать всю систему, и сраться с другими по архитектурным вопросам, иногда программировать, иногда линуксы чинить, иногда гайки крутить
Потому что ебланы дрочат на фаанг как будто это что-то крутое, а не бесчеловечные корпы с винтиками.
>Мне нравится и изобретать всю систему, и сраться с другими по архитектурным вопросам, иногда программировать, иногда линуксы чинить, иногда гайки крутить
Как бы тебе сказать помягче, всем +- похуй чего ты там хочешь, тем более бизнесу
> будет фулстек
про это вобще не понял, причем тут фуллстек и плюсы
> Мне нравится и изобретать всю систему
В итоге не понятно, готов не используют, а пишут сами - плохо
Но при этом бы сам всё сам писал
Потому что в яндексе (фаанге) есть уникальный масштаб и проекты.
Идти пилить очередные формочки или жсоны в яндекс бессмысленно или даже вредно, в фаанг оправдано из-за стабильности и зп.
Пилить поиск, базы или другие распределенные системы в яндексе самое то, можно повелосепедить вволю
И за счет крутых чуваков, которые хотят пилить (и пилят) неиронично интересные проекты, компании развивают свой HR бренд, чтобы подешевле нанимать макак-массовку. Яндекс например с этим перестарался и HR бренд просрал, а заодно из-за роста и менеджмент посредственный пришел и все покатилось. До 2015 года еще норм было, потом начало портиться и с 2020 стало скорее всратым
Я правильно понимаю, что теперь, с приходом 11 винды, на каком-нибудь wxwidget с нативными контролами можно накидать современный интерфейс вызвав буквально пару команд winapi?
Божечки, ну и дизайн там у сайта. И эти люди пишут про ГУИ?
А какие у яндекса выдающиеся проекты? По картиночкам сорс порно поискать?
Внутренние проекты, на которых другие сервисы основываются.
Сейчас в опен сорс тащат, вон ыдб (ydb), кликхаус тоже в яндексе сделали, всякие ыти, виртуалки и прочие мапредьюсы, нирвану какую-нибудь, наверное, тоже интересно писать
Беспилотники и станция выглядят очень круто для эмбедщиков, а то наслушаешься, они вечно какое-то скучное говно делают
Да даже и соус по картиночкам вполне себе норм задача на самом деле, интереснее байтоебства или перекладывания жсонов. Но такая задача да, будет замеджерена по самое нехочу, скорее всего, как и все пользовательское
В другой фирме, особенно где всякий компьютер вижн и прочий цос, задачи не менее интересные. Я боюсь, что при желании "хочу пойти работать в Яндекс" до нормальных проектов ты не сразу доберешься
Так ты не идешь в яндекс, ты идешь в команду. В интересные команды/проекты с улицы нанимают, но не часто, и знания / опыт должны соответствовать.
В YDB вон и сейчас нанимают спокойно, бери подавайся. Не думаю что это прям самое-самое интересное, но близко к этому и в кишках покопаться дадут, если покажешь что сможешь. Или если ты уже известный базописака.
Компьютер вижн да, он сейчас много где есть, и задачи небольшой компании будут мало отличаться от задач яндекса. Что, кстати, не делает задачи яндекса менее интересными. А распределенные системы и базы данных встречаются мало где, яндекс вообще чуть ли не единственное место в РФ, где это нормально представлено
Но опять же, сейчас про это спорить не актуально, яндекс полностью стал государственной конторой, теперь просто с точки зрения этики работать там не очень. И наверняка новый менеджмент будет все портить
бампусики этому вопросу
Написал большую конфигурируемую структуру данных, часть параметров задается шаблонами, и внутри много constexpr.
Декларации шаблонов стали большими и неудобными, сейчас уже 6 параметров и их надо у каждой функции структуры прописывать (реализации функций вынес в отдельный хедер, чтобы удобнее читать было). Можно ли как-то объявить составляющие шаблона один раз и потом просто его использовать?
Сейчас запихнул это в #define, но это же сишный кринж, да?
>YDB
Как только гении маркетинга попилившие на этом проекта бабла мотивируют меня перескачить на него с мировой solid практики под названием постгрес.
Знаешь что ещё пилить интересно? Вещи которых до тебя не существовало и те, за которые тебя запомнят на поколения вперёд, а не переизобретать то, что до тебя уже изобрели, отладили и весь мир пользуется. А потом у потреблядей случается пандемия вируса и они такие: "ой, как же так получилось, мы же мощности компов использовали чтобы пилить дипфейки с трампом и торговать нфт обезьянками и жизнь была хороша и жить было хорошо. Почему мир так несправедлив к нам?".
Ты считаешь это достойным ответом?
...
Knowledge of 3D graphics algorithms and APIs such as Direct3D, OpenGL, or Vulkan
....
И как понять на каком уровне? Алгоритмы то еще ладно, это мне ближе, я пойму до какого уровня надо учить, а API как? Сейчас я нихуя не знаю, начну какой нибудь OpenGL учить, потому что он проще, но сколько его учить то и до какого уровня?
Интересно конечно. Много знаешь мест где такое пилят и куда тебя возьмут без релевантного опыта? Как ты запилишь что-то из новых распределенных систем мирового уровня, не поработав сначала над уже созданными? Вон гугл спаннер запилил, думаешь придешь туда с улицы и такой "ребята, я хочу с вами" и они сразу тебя наймут?
Как ты что угодно новое крутое сделаешь, не познакомившись с тем что существует?
А про запомнить на поколения это попсовая хуйня, можешь унылое говнецо сделать и оно случайно выстрелит, типа флэппи берд. Тот же спаннер это стейт оф зе арт в распределенных БД, на даже средний разработчик едва ли название слышал, не говоря уже о том чтобы помнить авторов вайтпейпера
Про вирус и майнинг тебе уже ответили: >>592276
хуй знает, я вот например в телеге в чатике ЧПУ-шном пиздел как-то раз, мне чувак пишет, мол вот занимаемся источниками плазменной резки, поставляем росамоту, роскосмосу, сейчас надо запилить свою систему ЧПУ для многоосевых станков, го к нам? ну а я и непротив, зп 30к, еда, жильё бесплатное, но пришлось в другой город переехать. Пришлось придумать весь матан, планировщики движений, расчёты эквидистант, архитектуру и т.д., и как будто бы я знал что буду делать до этого, так ведь нет
Такс, сделал ЧПУ
А новое ты то что сделал? Какие вещи что до тебя кардинально не существовали?
не уверен, что существует такой же планировщик движений, который сделал я, так как ни в одном опенсорсе ничего похожего по математической части нет, он работает с любым количеством линейных и поворотных осей, на это накинут свой же look-ahead алгоритм, в общем всё просто охуенно получилось
>>592583
да не повод, я просто говорю как есть, хотя после 5к в месяц, когда занимался всякой хуйнёй и сидел на мамкиной шее, но времени свободного для придумывания всяких штук было дохуя, это збс, да.
> на это накинут свой же алгоритм
Я тебя уверяю, что если на таком уровне YDB рассматривать, она будет очень, очень сильно отличаться от любой другой базы
Если смотреть из далека, на уровне база и база, то вы сделали очередную чпушку из миллионов
> ни в одном опенсорсе
Я конечно не эмбед, но насколько мне известно с опенсорсом в эмбеде очень туго, и переизобретение алгоритмов происходит сплошь и рядом
Меняй архитектуру, с++ бекенд, и qml с ним общается по своим хотелкам. Короче, делай MVC, как справка говорит
win 10, vs studio 2019, wdk под вин 10 на обоих машинах стоит идентичная версия. На третьем скрине обозначил желтым ту область которая с ошибкой на первом пике.
Что я делаю не так? Может в .inf файле что подредактировать. У меня там секции install и uninstall помечены как .NTamd64
Ну типа {Install.NTamd64] ну собсна такая платформа у системы на которой я тестирую драйвер и есть.
Я гуглил эту ошибку кстати, там написаны общие причины что типа повержденные файлы программы, недостающие файлы и т.д. перезапись в памяти процесса и т.д. Мне кажется что раз программа завершается из за вероятно недостатка каких-то данных, то там скорее всего в .inf файле какая-то хуета. Там этих версий и стандартнов под каждую версию ногу сломит. Может есть здесь опытный анон что драйвера пишет под винду, да поможет.
Выходит что файлы попадают на тестовый пк, драйвер начинает установку... и процесс крашится в это время. Наверное там ну уровне setup какая-то ебала происходит, но у меня не хватает опыта понять что это
пиздец реально хуйня какая-то. как вы работу на эту хуйню вашу искать будете?
хз, для меня например веб хуйня какая-то дегенератская, любого вебкодера просишь алгоритм написать низкоуровневый такой, байтоёбский, без хуйни библиотечной, как деды кодили, ну он и превращается в пикрелейтед сразу.
А так ну студентов, школьников находим, да и вообще любых челов, у которых проблем с логическим мышлением нет, там по любой простой задаче сразу понятно - есть у чела мозг или нет. ну людей мало конечно, если тут аноны с улицы есть, готовые хуярить 3 дня без зарплаты, давайте короче к нам, тут интересные проекты завезли. ещё у нас есть печеньки
на двач мозг не использую, сорян
лол, чёт я жопой пост прочитал
если ты имеешь ввиду, где мы будем искать работу под наш станок, то станки-то не нам по большей части, мы на заказ другим предприятиям делаем
Потреблядь проснулась, для тебя повод для гордости - как можно больше бабла себе загрести за свою короткую жизнь?
>яндекс полностью стал государственной конторой, теперь просто с точки зрения этики работать там не очень
Ох уж эта либерашья этика, очередь в Грузию отстоял уже?
Все уже поняли что ты оч крутой
Ну можно просто вызвать список детей родителя и обратиться по индексу. Я так поиск делал по автоматом создающегося листвью.
У нас такой "студент" прошивку для лифта писал. Блядь, алгоритм работы непредсказуем, вместо одного этажа может на другой приехать, два лифта синхронизируются магией, простейшей логики типа ждать на первом этаже нет, зато дешево. Пока в эрэф не будет культуры производства, студенты на крайне ответственных задачах будут нужны
так я ж говорю, надо брать тех, у кого проблем с логикой нет. у нас тоже хипстер из луганска кнопки красить пытался - иногда думаешь, лучше б блять не пытался, а сразу в свои нидерланды сьебал, лол. кровень всего кода корреллировал с кодстайлом уровня textBox_ProduvkaTIME
Кибергулаг построил уже? А к бутылке подготовился? А к передовой?
Да я его месяц буду делать.
>>593438
Так я ж не знаю.
Ну почему нельзя было дать задание просто сделать кнопочку и подключить к ней слот? С этим я бы справился.
Выглядит как будто силами кандидатов по очереди пытаются написать проект или хотя бы внутреннюю тулзу
И каждый следующий дописывает за предыдущим, лол
Еще интересно наблюдать, насколько косноязычно они описывают аудиоплеер, читаешь и вообще в голове картинка не рисуется, хотя вроде понятно что плеер. Не хотел бы я с их аналитиком работать
Беканда грубо два слоя: бек с матаном/ хайперфомансом, и бекенд с необходимыми подключениями для фронта. В куте это Model View Controller (MVC) с его классами типа куАбстрактИтемМодел и т.п., в каком-нибудь бусте я использую свой мвц с ВебСокетами.
Выглядит так: ты описываешь в интерфейсе МВЦ, что из себя вообще данные представляют, какие есть имена и т.п., а QML уже с простым синтаксисом получает этот доступ.
Несколько важных следствий: QML сам решает, когда надо забирать данные. Например, у тебя есть список на миллион элементов, qml отображает только 10. Вот на кой хуй ему что-то там получать и предпринимать, когда он отображает диапазон 20-30, а обновилось на 100-110?
MVC собственно и описывает эти рычаги: если что-то там изменилось, ты сообщаешь подписчикам, что данные 100-110 были изменены, и подписчики (QML формы) в своем темпе решают, надо ли эти обновления получить.
С графикой схоже, но чуть сложнее. Отдельные функции и элементы также рекомендую делать через специальный интерфейс, тае не помню, но в Куте даже специальный макрос есть
От хорошести обучающего материала сильно зависит требуемое на обучение времч
Превращает аргумент в строковый литерал.
https://learn.microsoft.com/en-us/cpp/preprocessor/stringizing-operator-hash?view=msvc-170
Вулкан учи лол
нет блять съездить в питер ознакомиться с объектами культурного наследия. там много зданий постройки второй половины XVII века в различных архитектурных стилях. их и надо пересмотреть побольше
Воь изверги, будут бедных плюсовиков солидом и паттернами проектирования душить, совсем совести нету!
>вводит consteval
Я:
>круто! теперь не придётся костылить всё через шаблоны
Компилятор:
>молодой человек, это константное выражение не для вас компилировалось
У меня нет предьяв к самой ошибке на первом. Меня интересует её описание. Компилятор требует, чтобы аргументы к функции были константными выражениями.
Тогда и параметры в скопе функции должны тоже быть компайл тайм? А вот хуй! См. пик 3. Там они перестают быть константными.
А ну ошибка и правда уебищно написана
Решил проблему.
Нужно удалить тестовый сертификат который выдан для драйвера на тестовом компьютере из store сертификатов в двух местах
certutil -f -delstore ROOT серийный номер сертификата
certutil -f -delstore TrustedPublisher серийный номер сертификата
После этого все заебумба работает.
Ебать земля пухом за 30к подобное ебашить.
Судя по диалогу - у тебя знаний вкатится в норм эмбед в каком пидере на 100+, возможно 150+ и это пока ты себя как чмоню НУ Я Э МАМКИН СТУДЕНТ 30К НОРМ предъявляешь.
Ты проект не хуевой сложности сделал уже. Это точно сотен плюс. А тебя как шаху за копье пользуют, дебс.
>>592607
>но насколько мне известно с опенсорсом в эмбеде очень туго, и переизобретение алгоритмов происходит сплошь и рядом
И да и нет. Проблема в том, что не переизобретение - требует стандартного API, либо оберток над ним.
Стандартное API ни чем не задается, попробуй погуглить про архитектуру эмбеддед и охуеешь ничего нет, литерали каждый раз велосипеды
Поэтому алгоритм то ты найдешь, но что бы его к себе вхуячить, надо:
A) Наебенить доп абстракций, а это дороговато (все еще дороговато, ну не могут плюс тебе зирокост интерфейс пока дать) и это заставит тебя весь проект в таком стиле делать.
В) Переписать под себя.
PS: вот изза таких взглядов >>592974
> веб хуйня какая-то дегенератская, любого вебкодера просишь алгоритм написать низкоуровневый такой, байтоёбский, без хуйни библиотечной, как деды кодили
Кач-во кода эмбеддед программиста - отдельный мем. И переиспользовать чужое... реально легче свое написать, чем в той параше разобраться.
Но потихоньку это меняеться...
Написал, мало ли кому пригодится. А то в интернете на форуме у многих людей темы так и остались открытыми висеть на многие годы. Короче это сертификатная проблема, решается просто перепропиской тестового сертификата для драйвера в двух хранилищах.
А да, на дваче же кроме тредов с травлей людей и чужими данными ничего не архивируется, совсем забыл.
>Тогда и параметры в скопе функции должны тоже быть компайл тайм?
Очевидно, они такими быть не могут
>Ты проект не хуевой сложности сделал уже
ну ещё не сделал, там по доп. функциям и периферии работы ебанёшься, датчики, всевозможныые регуляторы высот и давлений, обработка ошибок, стоп кнопки, бесперебойник, и на всё своя логика, иногда противоречащая друг другу, лол.
Всё верно он тебе говорит
Но да, забавно что в consteval аргументы функции не constexpr https://stackoverflow.com/questions/61777120/a-name-for-describing-consteval-function-argument-being-known-at-compile-time
ну как всегда какую то ебаную семантику сделали контринтуитивную, как у дедов такую залупу вобще придумать удается
>обработка ошибок
>и на всё своя логика, иногда противоречащая друг другу, лол.
Вот узнаю ембед. Лол. А еше потом попросят конфигурацию оборудования уметь менять и ты пойдешь роскомнадзорнишся.
>>595105
Имей ввиду, что свалив в тот момент - подставишь производителя еще сильнее, лучше сваливать либо сильно ДО релиза, либо сильно после.
> забавно что в consteval аргументы функции не constexpr
А с чего должны быть, если constexpr не обязан во время компиляции вычисляться?
Малыш, почитай про pthread_create и pthread_cond_wait.
В смысле приведи пример? constexpr может быть вычислен во время компиляции, но если нельзя вычислить, то не вычисляется. Ты документацию читал хоть?
> The constexpr specifier declares that it is possible to evaluate the value of the function or variable at compile time.
Более тупого решения и придумать нельзя, ладно функции, а переменные нахуя
Вообще не понимаю эту хуйню. Напоминает говноязык без системы типов, где если наизусть правила не задрочил хуй знает что произойдет.
Инлайн - вот четкие правила что можно инлайнить что нельзя, но мы не будем отказываться компилировать заинлайненый метод который не инлайнится, ебись потом с ассемблером
Констекспр / констевал - тоже сделаем удобненько, чтобы может работало а может и неработало.
Нет чтобы просто сделать расширение языка, которе просто запускается при компиляции, мы ебанем функциональную хуету с нечитаемыми стектрейсами, кривыми ограничениями и ебанутейшими костылями для простых задач (попробуй строку в шаблон передать до 20ки, ага).
А потом окажется что это говно не удобно и райт онли, поэтому мы еще добавим хуйню чтобы таки можно было исполнять код при компиляции, но иногда оно не работало, и ебись сам как хочешь
Вместо того чтобы стандартизировать ограничения языка, на каждом модуле компиляции писать каким стандартом ты хочешь компилировать, и получать красивые современные фичи будет каждый чих блять делать совместимым с древнейшим говном мамонта
А еще мы решили косплеить джаву, поэтому для любой современной хуйни надо будет написать дохуя букв static_ сука cust <деды ебаные графоманы>, shared_ блядский pointer< хуйня пидораса>. Хотя к этому уже привык, но побомбить все равно не откажусь. А, да, еще std::move и ее друзья, невероятно гениальная биг брейн конструкция
Может быть тут есть дизайнер языков который пояснит, зачем они каждую фичу делают кринжовой хуйней с текущими абстракциями?
Не забывай принимать
Какой же комитет по стандартизации мудрый и справедливый, пиздец просто.
vector<someClass> v(size);
function_that_fill_vector(size, v.data());
Вообще, если функция хорошая, то ничего не ломается и все хорошо, но сам подход меня смущает. Я спокойно бы отнесся к такому, если бы вместо вектора сишный массив был, но в плюсах такое видеть дико. Часто вообще так делают?
Легально конечно, но с точки зрения здравого смысла лучше так не передавать
Есть итераторы, сейчас вьюшки появились, std::span тот же как раз для этих нужд существует
75 уже. Я даже треугольник еще не нарисовал. Страшно представить что в конце будет
А че так много, блядь? Я ожидал какие то маленькие значения увидеть, высокопроизводительное API же. Да и в голове диссонанс был: какое нибудт окно с кнопочками на qt весит в разы меньше, чем пустое окно на вулкане. Подумав, это я себе объяснил другоим API. Возможно, если напрямую дергать WindowsAPI с его функциями на создание окна (а может и кнопки, вроде даже такое там есть, не помню), то оно ужмется в пару мегабайт.
В c++ реалиях не совсем легально, это си подход. Как сказали выше, используй итераторы. Как минимум, у тебя будет одна общая функция и на вектор, и на стд::аррай, и на лист.
Реально передачи пары указатель на данные и размер делают при работе с буферами, и обычно это f(const char*, size_t len). Это прототип например функции парсинга данных. Многие либы имеют врапперы для такой пары
>Как сказали выше, используй итераторы. Как минимум, у тебя будет одна общая функция и на вектор, и на стд::аррай, и на лист.
У них разные итераторы
Я уже про это шутил выше
>А че так много, блядь? Я ожидал какие то маленькие значения увидеть, высокопроизводительное API же.
https://en.wikipedia.org/wiki/Space–time_tradeoff
Почему? В каких случаях?
https://en.cppreference.com/w/cpp/language/consteval
Тут ничего такого нет.
4-7 лет назад лет назад был веселым и шутливым, использовал слаку как основную систему, собирал пакеты без слакбилдов и модули для ядра. осилил си праймер плюс праты и даже начал что-то для личного пользования высирать посредством емаксного отверстия на гтк+2 и кайро. потом спо закончилось, и я попал в армию, где отупел, а потом попал на работу, где отупел за 3 года в 50 раз сильнее. точнее как бы даже не отупел, а профдеформировался так интересно, что никому нахуй и не нужен оказался, когда уволился. суть была в обслуживании местной одноранговой сети, писаниние макросов на вба и отладке/починке самописного говна скопившегося в конторе за 20 лет. в итоге нахватался по верхам всего. могу и в пхп без фреймворков, и в жс, и в шарп, и в схемотехнику, и на дуде, и в жопу; короче умею все и нихуя одновременно. зп с 35к мне долго не подымали и решил я уволиться в начале года. как показал рынок труда, я нахуй никому не нужен, хотя с тестовыми заданиями справляюсь, но всегда «остановились на другом кандидате». короче плюнул, начал пешкарить курьером яндекс харчей (в моей мухосрани это 20-25к в месяц, если есть заказы), а в свободное время перечитываю си праймер, выполняю задачки, а потом буду так же делать с праймером на крестах. план пока такой. как закончу, начну писать скринсейвер, потому что мне показалось, что там я сразу научусь и винапи трахат, и директ2д, и много всего еще интересного да веселого. высрать-то я высру, в себе не сомневаюсь, но думаю, что код мой будет если и рабочий, то говно пиздец. вот и ищу кто займется избиением меня по голове. могу отстегивать немного денюшек или пообещать несколько лет платить процент от дохода, если смогу все же устроиться по этому направлению. в последнем я сильно сомневаюсь, т.к. хотя и годиков всего 24, но память сильно стала подводить и запоминать что-то новое ощутимо сложнее, чем раньше
4-7 лет назад лет назад был веселым и шутливым, использовал слаку как основную систему, собирал пакеты без слакбилдов и модули для ядра. осилил си праймер плюс праты и даже начал что-то для личного пользования высирать посредством емаксного отверстия на гтк+2 и кайро. потом спо закончилось, и я попал в армию, где отупел, а потом попал на работу, где отупел за 3 года в 50 раз сильнее. точнее как бы даже не отупел, а профдеформировался так интересно, что никому нахуй и не нужен оказался, когда уволился. суть была в обслуживании местной одноранговой сети, писаниние макросов на вба и отладке/починке самописного говна скопившегося в конторе за 20 лет. в итоге нахватался по верхам всего. могу и в пхп без фреймворков, и в жс, и в шарп, и в схемотехнику, и на дуде, и в жопу; короче умею все и нихуя одновременно. зп с 35к мне долго не подымали и решил я уволиться в начале года. как показал рынок труда, я нахуй никому не нужен, хотя с тестовыми заданиями справляюсь, но всегда «остановились на другом кандидате». короче плюнул, начал пешкарить курьером яндекс харчей (в моей мухосрани это 20-25к в месяц, если есть заказы), а в свободное время перечитываю си праймер, выполняю задачки, а потом буду так же делать с праймером на крестах. план пока такой. как закончу, начну писать скринсейвер, потому что мне показалось, что там я сразу научусь и винапи трахат, и директ2д, и много всего еще интересного да веселого. высрать-то я высру, в себе не сомневаюсь, но думаю, что код мой будет если и рабочий, то говно пиздец. вот и ищу кто займется избиением меня по голове. могу отстегивать немного денюшек или пообещать несколько лет платить процент от дохода, если смогу все же устроиться по этому направлению. в последнем я сильно сомневаюсь, т.к. хотя и годиков всего 24, но память сильно стала подводить и запоминать что-то новое ощутимо сложнее, чем раньше
>У них разные итераторы
Ну у тебя есть 3 пути, голые темплейты, проверять на итератор тэг, либо использовать современные концепты на интересующие тебя итераторы
пост не читал но здесь код обоссут вне зависимости от его качества
и тебя самого заодно. за особые заслуги еще и мамку твою
1280x720, 0:53
покажите вашу
ебать я упоротую хуйню говнокодил... а сейчас сижу пиво сосу на шее у мамки ни дня не проработавши после вузика... а уже 5 лет прошло нах
Я бы тебе посоветовал с направлением для начала определиться.
не писать на плюсах. они мне всю жизнь испортили. я еще к перфекционизму был склонен долгое время, каждый байт считал и фанател от плюсов, а потом когда понял к концу обучения, что эти плюсы нахуй не нужны никому на рынке, то началась прокрастинация, подавление самооценки, что я не нужен никому и т.д.
Кому ты тут пиздишь с вкладками про спринг и микросервисы, пиздуй обратно в свой петушиный тред бэкендоблядок, байты он считал блять в неуправляемой памяти
Прикольно, mini motorways напомнило по вайбу
Ту не покажу, покажу эту: https://github.com/TheCherno/Walnut
Не знаю сколько она весит, но собери в релизе и посмотри, должна быть небольшой
может потому что я решил новый язык пощупать и стек, чтобы найти работу, хуепутало с 2узначным айсику?
Итератор как шаблонный аргумент, см. какогйибдуь std::transform
Сейчас ни во что не играю. Последние года 3 играл только в пое и форзу 4. Да бля, проблема то не в играх была, а в том, что я чмоней себя чувствовал, которая не знает нихуя + вакансий не было. Я после вуза мог только формошлепить в кутэ или на сисярпе (у меня этот язык сразу отвращение вызывал, я не хотел с ним ничего иметь общего, больше из-за того что у меня одногрупник был чсвшным жирным тупым уебком, который постоянно об этом языке высирал какой он ахуенный и лучше всех). А когда ты уже проебланил год, следующий еще быстрей проебланишь, и как снежный ком потом все. Вот только чичас осознал в какой жопе и надо че-то менять - сижу уже почти месяц читаю про джаву и спринг. Сейчас микросервис какой-нибудь высру в качестве пета и пойду напохуй по собесам. Хз что выйдет из этого, ибо практика вся у меня по ней - это 1 единственный пет будет.
>а потом когда понял к концу обучения, что эти плюсы нахуй не нужны никому на рынке
Вкатывайся в нейронки не стони, ебло.
540x540, 0:53
сейчас их активно режут, нужны шарящие люди, которые также ценят свободу.
такой-то потенциал, там можно даже войну объявить ради фана.
Ты должен спросить конкретнее, про что ты говоришь. Про aio из glibc? Если да, то там всё реализовано на тредах. Если реально aio из ядра, то ты сабмитишь кернелу задания, которыми занимаются потоки ядра. Получаешь их результаты через io_getevents.
В винде для асинхроншины с файлами юзают iocp, результаты операций получаешь так же, через какую-то функцию, а заданиями занимается ядро.
В линуксе есть ещё io_uring, он лучше, чем aio.
Это хуйня. Чел дно. Там по сути окорнутовский имгуй и вулкан бэк, все.
Еще добавлю, что весит много сборка, разумеется , там же все ненужное говно лежит. Но бинарник и статик либы то что нужно весят меньше трети от сборки, а на релиз вообще можно в один бинарник собрать.
> Там по сути окорнутовский имгуй и вулкан бэк, все
Ага, это же заготовочка
> там же все ненужное говно лежит
Да, там шрифты и прочее говно. Ты посмотри только, больше она или меньше твоего проекта, жаловался же что именно вулкан много мегабайт пожрал. Вот если эта заготовочка меньше - значит точно у тебя что-то не так
Я так то другой анон, по моему опыту вулкан жрет совснм не много, много жрет имгуи, если без него собирать то пару мегобайт умещается все.
Кто коллбек вызывает?
Как вы на Qt пишете, на виджетах или с Qt Quick? Джаваскрипт знаете?
Boost::Gui
Да вы мне скажите скока жрет то?
Анон выше жаловался что 50-70 мб.
Имгуи столько точно не жрет, мой релизный бинарь (я еще в него ресурсы встраиваю) весит 20мб
> 2023
> Boost
Ты бы ещё спросил какие диалекты паскаля используем. Ладно ещё какое-то дикое обоссаное легаси на этом кале и ты просто вынужден его использовать, но начинать-то писать на нём нахуя?
>>598017
> скока жрет то?
Имгуй от Омара с директом около 3 мб весит, со шрифтами на пару больше. Но кто-то на полном серьёзе его для пользовательского гуя использовать собирается? Вон есть ImHEX - кусок говна неюзабельного с миллиардом багов и тормозами. Есть чуть получше вариант в виде egui, с анимациями и терпимым визуалом, но это всё так же дрисня хуже HTML+JS по производительности и удобству.
Его для девтулов надо использовать а не делать на нем основной UI. А для девтулов скорость разработки важнее производительности, при этом АПИ имгуи простой как топор. Имба фичей является его популярность и поддержка кучи интеграций из коробки, что еще больше ускоряет разработку.
Тащить его для пользовательского не лучшая затея, ну либо это осознанный обмен времени на говенность продукта
>>598023
Ну значит чел с 75мб чистого вулкана на треугольник точно что-то криво сделал, а не в рендерере проблема.
У меня имгуи весит 4мб в релизе
>Какие классы из Boost вы используете
никакие
>Как вы на Qt пишете
никак
>Джаваскрипт знаете?
нет
>>595192
>конфигурацию оборудования уметь менять
изначально это и закладываю, чтоб система универсальная была, абстрагировал суппорты, чтоб потом можно было кроме плазмы и газа, ещё фрезерный, 3D принтер, лазерный и т.д. допиливать, на все платы расширения пинам функции из интерфейса роутятся, и дискретные и аналоговые, кроме специфичных функций конкретных устройств, платы расширения в кольцо соединяются в любом количестве, количество колец тоже может меняться, одно кольцо это 1 занятый SPI или UART
>asio
>ты бы ещё спросил какие диалекты паскаля используем.
asio == паскаль? Хорошо.
Ты на чём кроссплатформенную сеть пишешь? Своими ручками epoll, iocp, kqueue, /dev/poll для разных платформ, да? Или ты нихуя не пишешь, ибо мамкин программист?
> МАМ КРОССПЛАТФОРМЕННОСТЬ
На питоне пиши тогда, если сложно. Один хуй твой говнокод с asio будет работать примерно так же быстро.
> > 2023
> > Boost
> Ты бы ещё спросил какие диалекты паскаля используем. Ладно ещё какое-то дикое обоссаное легаси на этом кале и ты просто вынужден его использовать, но начинать-то писать на нём нахуя?
Ты со знанием дела сказал или просто выебываешься?
Дело в том, что во многих вакансиях пишут Boost, вот я и интересуюсь.
>>598085
> >Какие классы из Boost вы используете
> никакие
> >Как вы на Qt пишете
> никак
> >Джаваскрипт знаете?
> нет
А какие библиотеки для плюсов используешь, помимо стандартной?
> во многих вакансиях пишут Boost
После этих пяти букв надо сразу закрывать страницу с этой вакансией. В лучшем случае попадёшь на легаси, в худшем будет уровень завода.
>если сложно.
мамкин программист не знает разницу в подходе iocp vs epoll, kqueue, /dev/poll, поэтому ему кажется всё легко
Я не пердолик чтоб знать как там себе пердоли усложняют жизнь. С winsock всё просто. Сначала изобрели говно, а потом изобретаете велосипеды чтоб проехаться по нему. Если хочется быстро и кроссплатформенно, то надо использовать подходящие по задачу инструменты, а не писать очередное говно с дырами и багами. Даже растовики смеялись бы с вас.
Внезапно кроссплатформенные фреймворки всегда работают с системным API, а не тащат блоатваре просто потому что им лень написать как надо. А вообще разумные люди на винде не пишут бекенды на крестах, когда шарп медленнее всего на пару десятков процентов.
Ну тогда я тебе скажу, что winsock неинтуитивное API.
И сделано как было удобнее разработчикам ядра.
Чтобы точно работало и хочешь напиши обертку.
А зоопарк юниксовых механизмов ввода-вывода -- это рыночек.
Каждый хочет облегчить жизнь конечного программиста, который будет использовать API.
>Я не пердолик чтоб знать как там себе пердоли усложняют жизнь. С winsock всё просто.
Тогда хуле на азио бочку катишь, я не понял.
А, ну разные ядра. А шо ты хотел? Всё равно в целом по остальным сисколлам всё похоже. И подход событийный в отличии от iocp
signed char, unsigned char и char -- три разных типа.
2.2.4.2 Numerical limits
A conforming implementation shall document all the limits specified
in this section, which shall be specified in the headers <limits.h>
and <float.h> .
"Sizes of integral types <limits.h>"
The values given below shall be replaced by constant expressions
suitable for use in #if preprocessing directives. Their
implementation-defined values shall be equal or greater in magnitude
(absolute value) to those shown, with the same sign.
* maximum number of bits for smallest object that is not a bit-field (byte)
CHAR_BIT
==============================
3.2.1.1 Characters and integers
A char, a short int, or an int bit-field, or their signed or
unsigned varieties, or an object that has enumeration type, may be
used in an expression wherever an int or unsigned int may be used. If
an int can represent all values of the original type, the value is
converted to an int; otherwise it is converted to an unsigned int.
These are called the integral promotions.
The integral promotions preserve value including sign. As
discussed earlier, whether a ``plain'' char is treated as signed is
implementation-defined.
На тебе ссылку, или скачай txt
https://www1.columbia.edu/~ng2573/c89/c89-draft.html
Ещё раз сюда придёшь с такими вопросами - нассу тебе на лицо. Как тебя найти -я знаю
2.2.4.2 Numerical limits
A conforming implementation shall document all the limits specified
in this section, which shall be specified in the headers <limits.h>
and <float.h> .
"Sizes of integral types <limits.h>"
The values given below shall be replaced by constant expressions
suitable for use in #if preprocessing directives. Their
implementation-defined values shall be equal or greater in magnitude
(absolute value) to those shown, with the same sign.
* maximum number of bits for smallest object that is not a bit-field (byte)
CHAR_BIT
==============================
3.2.1.1 Characters and integers
A char, a short int, or an int bit-field, or their signed or
unsigned varieties, or an object that has enumeration type, may be
used in an expression wherever an int or unsigned int may be used. If
an int can represent all values of the original type, the value is
converted to an int; otherwise it is converted to an unsigned int.
These are called the integral promotions.
The integral promotions preserve value including sign. As
discussed earlier, whether a ``plain'' char is treated as signed is
implementation-defined.
На тебе ссылку, или скачай txt
https://www1.columbia.edu/~ng2573/c89/c89-draft.html
Ещё раз сюда придёшь с такими вопросами - нассу тебе на лицо. Как тебя найти -я знаю
Абсолютно нет. Эта книжа просто рассказывает про стандартные фичи языка для многопочтоки. Есть такой мьютекс, вот так его блокируем. так создаём тред и подобное.
Пусть тебе другие пояснят. Я сам не гуру. Почитать про кэши проца, про cache-line, memory alignment to a cache line boundary, про false-sharing, про атомики, про протокол когерентности кешей проца. Почитать исходники шедулеров линуса, почитать исходники многопоточно кода: nginx (С, там мало многопоточки), opencv (c++ интрисиксы, мноuо хорошей годной многопоточки)
Пидора ответ.
Этот троллит.
>>598358
> Какие гарантии на char и байты в целом. Под байтом в плюсах понимается всегда 8 бит или нет? А char всегда 1 байт, но знак зависит от реализации, да?
Char (любой из трёх) это всегда один байт, то есть sizeof(char) = sizeof(signed char) = sizeof(unsigned char) = 1. Байт при этом может быть больше (но не меньше) 8 бит.
Хорош нести хуйню, размер измеряется в чарах, байты не причем. Для приведенного мной примера Лонг инт будет иметь размер 2. Ты похоже на не стандартных процах никогда не ничего не делал.
ну, разве что юзаю пизженную с интернетов concurrent очередь
Первую часть (про happens-before и другую `теорию') на порядок проще понять читая стандарт (постарее только, когда ещё не очень наворотили всяких strongly happens-before), в книге херня какая-то
Ты путаешь два разных понятия. Ты говоришь про байт привязанный к архитектуре, тот который обычно 8 битов. В стандарте байт абстрактный, по определению это просто минимальная адресуемая единица памяти. Sizeof выдает именно что размер в байтах, но да, можно сказать, что это размер в char'ах, потому что по стандарту char всегда один байт.
На нестандартной архитектуре, про которую ты говоришь, где байт это 16 битов, char все еще будет 1 байт, а не 2. Но при этом байт будет 16 битов. Если ты с такими штуками работаешь, значит можешь проверить и убедиться, что sizeof(char) == 1.
блять, систему ЧПУ. формочки на шарпе, половина кода гуя, все вычисления, весь реалтайм на плюсах, взаимодействие с главной платой по UDP, для STM-ок на сях пишу, бля, проебался, для взаимодействия с usb hidapi юзаю, хз либа это или просто api. кроме этого ещё прошивку на свой серводрайвер на плюсах писал год назад, моды на одну опенсурсную игру, остальное не связанное с железом на шарпе предпочитаю делать
Когда тебя спрашивают какими либами пользуешься - это всегда подьеб с ожиданием спама всякими модными терминами и т.п.
Алсо поргамисту х86 жизнь без либ не представима, он без них зачастую хелло ворлд может лишь написать.
>поргамисту х86 жизнь без либ не представима, он без них зачастую хелло ворлд может лишь написать.
А про Aarch64 что скажешь? Там есть инструкция, чтобы хеллоу волрд написать?
Я, кстати, libgcc_s.so.1 использую
да норм
Хаскелль - это одно из подмножеств C++.
1280x720, 0:34
Удачной мне сборки. 🔨🔨🔨
class your_class {
/ nested class / class action_group_1 {};
};
но на this тогда не надейся, придется пердолиться
нах ему this в статических членах? а ничего кроме них из выражений типа hui::pizda:: не вызовешь
[anek@archlinux ~]$ ab -c 100 -n 1000 http://movepoint.ru/
This is ApacheBench, Version 2.3 <$Revision: 1903618 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking movepoint.ru (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests
Server Software: nginx/1.14.2
Server Hostname: movepoint.ru
Server Port: 80
Document Path: /
Document Length: 5181 bytes
Concurrency Level: 100
Time taken for tests: 1.077 seconds
Complete requests: 1000
Failed requests: 0
Total transferred: 5325000 bytes
HTML transferred: 5181000 bytes
Requests per second: 928.72 [#/sec] (mean)
Time per request: 107.675 [ms] (mean)
Time per request: 1.077 [ms] (mean, across all concurrent requests)
Transfer rate: 4829.52 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 28 49 5.7 50 61
Processing: 29 50 5.3 49 68
Waiting: 28 49 5.2 48 65
Total: 56 99 7.6 100 117
Percentage of the requests served within a certain time (ms)
50% 100
66% 102
75% 102
80% 103
90% 106
95% 109
98% 113
99% 115
100% 117 (longest request)
[anek@archlinux ~]$ ab -c 100 -n 1000 http://movepoint.ru/
This is ApacheBench, Version 2.3 <$Revision: 1903618 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking movepoint.ru (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests
Server Software: nginx/1.14.2
Server Hostname: movepoint.ru
Server Port: 80
Document Path: /
Document Length: 5181 bytes
Concurrency Level: 100
Time taken for tests: 1.077 seconds
Complete requests: 1000
Failed requests: 0
Total transferred: 5325000 bytes
HTML transferred: 5181000 bytes
Requests per second: 928.72 [#/sec] (mean)
Time per request: 107.675 [ms] (mean)
Time per request: 1.077 [ms] (mean, across all concurrent requests)
Transfer rate: 4829.52 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 28 49 5.7 50 61
Processing: 29 50 5.3 49 68
Waiting: 28 49 5.2 48 65
Total: 56 99 7.6 100 117
Percentage of the requests served within a certain time (ms)
50% 100
66% 102
75% 102
80% 103
90% 106
95% 109
98% 113
99% 115
100% 117 (longest request)
Ну в смысле он после nginx-а, там proxy_pass, потому что тяжелую статику в pub пусть раздает нгинкс
А почему не сделать структуру из функций и по индексу получать смешение?
>Percentage of the requests served within a certain time (ms)
>50% 100
>66% 102
>75% 102
>80% 103
>90% 106
>95% 109
>98% 113
>99% 115
>100% 117 (longest request)
Когда среднее время настолько большое, что 99.999%-й перцентиль не особо от него отличается
>Чем заменить?
Наследованием.
Тогда будет можно писать Derived::Base::member().
А если сделаешь множественное наследование от одинаковых классов, но с разными названиями, тогда будет не только можно, но еще и обязательно нужно писать Derived::Base_1st::member() или Derived::Base_2nd::member().
Еще наследование шаблона от шаблона вынуждает так писать.
Еще можно объявить класс action_group_1_impl, сделать его дружественным к obj и в obj дописать using action_group_1_ = action_group_1_impl;
Тогда из обж можно пролазить в экшон групп.
Отклеилось.
Хочу весь подобный код так обмазать. Классы простые:
- только базовые типы без указателей
- без наследования
и особенно вопрос по == и <=> - оно вообще как сравнивает по дефолту флоат числа?
Если я например включу низкую точность флоата - что мне будет выдавать-то? Просто обычно флоаты сравнивают так (a-b<Epsilon). А как компилятор это делает тут? Прострел колленки или таки все тип-топ?
Какой мозгоёб такое придумал? Встречу, уебу нахуй.
Ну расскажи теперь как они помогают че то ассихронно делать?
> Какие подводные от такого обмазывания default?
> Хочу весь подобный код так обмазать.
Много лишнего кода, который можно просто не писать, потому что:
> Классы простые:
> - только базовые типы без указателей
> - без наследования
Но тут я могу быть неправ, может это хорошая практика по какой-то надуманной причине.
> и особенно вопрос по == и <=> - оно вообще как сравнивает по дефолту флоат числа?
С помощью x87 сопроцессора.
> Если я например включу низкую точность флоата - что мне будет выдавать-то?
Что ты имеешь ввиду под низкой точностью? Если что, setprecision устанавливает точность при выводе, и к арифметике и самим значениям никакого отношения не имеет.
> Просто обычно флоаты сравнивают так (a-b<Epsilon). А как компилятор это делает тут? Прострел колленки или таки все тип-топ?
Так сравнивают числа, когда нужно не учитывать погрешность при подсчетах. А дефолтный == выдает true только если два значения представляют одно и то же число. Т.е. 1e-30 != 0, но 1e-30 - 0 < Epsilon.
> bool operator<=>(const Point2&) const = default;
А этот код точно компилируется? Оно по идее должно возвращать int: отрицательный, если a < b, положительный, если a > b, и ноль если a == b. Более того, для этого оператора не может быть дефолтного определения в твоем случае. Как оно будет определять меньше-больше, если Point2 это два числа?
>Много лишнего кода
ну некоторые конструкции требуются, иначе не скомпилируется (мов конструктор, проверка на равенство). И дефолт тут как раз чтобы не писать лишний код
>>601762
>Что ты имеешь ввиду под низкой точностью?
ну я ставлю /fp:fast которая повышает погрешности округления
>>601762
>А этот код точно компилируется?
нет, не скомпилировался:)
Ты выучил синтаксис и захотел работу сразу найти?
OpenGL круто конечно, но проблему новичка "хочу инклуд и один вызов, шоб появилось окно и можно было точки рисовать" он не решает, т.к. к нему еще нужна платформозависимая создавалка контекста (сторонняя или самодельная). А такая наверняка позволит писать в фреймбуфер что угодно без OpenGL. По-моему, написать алгоритм рисования линий и прямоугольников проще, чем нужные init-ы повызывать.
СМешно
А чего настраивать в visual studio code? Скачал, поставил расширения для c++ и радуешься жизни.
>Скачал, поставил
и оно все не работает, ломается. У меня ни на одном языке не заработала команда ссылки на определение объекта.
А еще надо много красноглазить в текстовых конфигах. Я блядь линуксоид чтоли команды в консольках набивать? Я хочу кнопкой натыкать нужные настройки
p.s. универсальность - это зло. Вот если бы под каждый язык свою сфоркали и развивали, было бы лучше.
Короче, сижу дальше в visual studio 2023, а в языки без IDE даже не лезу (хотя в раст бы потыкал, но там до сих пор иде никто не сделал)
потому что вылет на строку выше, чем та, на которую указывает дебагер
Что за бред ты с оператором = творишь омг?!1
matrixs
не все так просто. Там почти во всех модулях телеметрия
Используй библиотеку для логов
В идеальном мире, ты просто в мейне каком то дефайнишь и у тебя логи либо компилятся, либо скипаются
Соответственно в дебаге логи включаешь, в релизе выключишь, код остается всё тем же
Да, для создания простых динамических веб-сайтов Yandex userver_ -- действительно, говно неудобное.
Мы в mail.ru смотрим в сторону Boost.Beast
Заебисто пиздец. Автодополнения не хватает, надо плагин поставить какой то. Без него очень тяжко
А майлру тут причем?
я конечно слышал что у вас серваки лежат, но чтобы активно в разработке харкача учавствовать...
http://movepoint.ru/
Тебе уже посоветовали E M A C S, но если лень пердолить, то посмотри на дедовский Geany.
Если это слишком всрато для тебя, то люто советую
https://kate-editor.org/
>В emacs даже нет по умолчания дерева файлов
Ты давай не выебывайтся. Если тебе на "тяп-ляп и готово", то тогда имеет смысл придираться к возможностям по умолчанию. А если хочешь получить дейтвительно расширяемый редактор ПОДСИБЯ, то нужно смотреть на расширяемость и количество плагинов. С этим у емакса все хорошо.
Я в домике
У меня скромный одностраничный сайт с лучшим альбомом этого сезона и я живу на донаты, у меня нет времени пердолиться.
А что он нарушает? Постит релейтед, как покакал не рассказывает. Наказуемо только злоупотребление когда тред в аватаркочатик превращается.
1280x720, 1:24
ну так и ты со своими правилами в тред не лезь, не нравится, иди мимо
выражение вида:
long long i = 9223372036854775807;
гарантировано ли что значение будет long long? или компилятор может преобразовать значение константы справа без суффикса ll например в int и присвоится в итогу -1?
суффикс не могу к сожалению добавить, тут кривые тесты используются, отказыватся принимать значения вида 9223372036854775807ll
хз, никогда не помимал смысла в long long, long int, и прочих в пользу uint64_t, 123Ui64, ибо первые это само по себе уб
Да не важно, у меня в проекте и так стоит int64_t, тут я не стал писать, ответ на вопрос это не дает. Какой тип у константы без суффикса если у нас инициализация или присвоение в тип отличный от int?
Если ты сидишь в ide, то ты можешь посмотреть тип константы
Это наёбка.
Там все настраивается через настройки. Сам юзал плагин, все было интуитивно понятно
Да че-то непонятно. Я хочу выбрать версию в плагине, выбираю единственный имеющийся MinGW,а оно требует msvc. Как его получить без перестановки qt?
у меня уже Двух-страничный сайт!
Суть проекта не в этом.
Насколько я знаю, если литерал не помещается в int, то он будет типа long, и т.д. Если не ошибаюсь, целиком эта цепочка выглядит так: int -> long -> long long -> unsigned long long -> ошибка компиляции. Так что оно ничего не станет урезать. Суффиксы нужны в тех случаях, когда литерал по умолчанию одного типа, а тебе нужен другой, например:
> auto x = 12ll; // long long
> void f(int x);
> void f(long x);
> f(42l); // f(long)
>>605907
> хз, никогда не помимал смысла в long long, long int, и прочих в пользу uint64_t, 123Ui64
Встроенные типы работают всегда, а реализацию типов intX_t стандарт не гарантирует.
> ибо первые это само по себе уб
Это не уб. Встроенные типы гарантируют минимальный диапазон значений: -128..127 для char, -32768..32767 для short и int и т.д.
Хуй ли мне прятать, если на мой ВК можно по ссылкам с сайта пройти?
Чел, ты бы не позорился, настрой ссл, а то ни один нормальный анон твоим сайтом пользоваться не станет.
Нет, у меня и так проц загружен под 100, никакого ССЛ нет и не будет.
Хорош
Блядь, ты мне лучше объясни, что ты там такого "сделал" в буст бист, когда там весь парсер и шттп уже написан? Что, подгрузил индекс.штмл и всё?
я крейзи виндузятник буду юзать директ2д, сынуля нахуй
>поехавших сишников.
Эм челик, я делаю игру которая должна работать на любом калькуляторе.
Да и SDL норм тема, сделал wrapper на C++ да пануешь.
К слову, вариант с использованием сокетов или других способов межпроцессного взаимодействия очень даже хорош
я к яндексу никакого отношения, в том числе купли-продажи, не имею.
QHash же. Вообще для примера смотри, как подсказку, какие аргументы принимает QVariant, как-то с QML через него общение идёт. QStringList можно например.
Второй способ, немного ебаный, но возможный, это регистрация собственного типа, гугли
Я лет 5 этим не занимался уже, но помню что там даже макрос есть чтоб свой класс кутишным делать.
> Второй способ, немного ебаный, но возможный, это регистрация собственного типа, гугли
Ну вот видимо так мне и придется поступить, потому что перечисленное выше мне вряд ли подходит.
>проверить является ли строка невалидным именем файла?
Это сфера ответственности операционной системы.
Сомневаюсь, что из отцов-основателей кто-нибудь стал заморачиваться на такое.
У тебя из коробке есть возможность проверить был ли создан файл или нет.
И ты перед той же дилеммой: что делать дальше. Считаешь, что ты должен учить юзера, как пользоваться его же операционной системой?
>Или же регулярками проверяют?
Регулярки избыточны для этого, хватит обычного std::strpbrk().
Другое дело, что от платформы к платформе требования к имени файлов может отличаться.
>Под .net есть функция из коробки
.нет это платформа, там много чего есть.
препод сказал до завтра сдать ему генератор входных файлов для ацикличных направленных графов
допустим ввожу V и E и получаю граф с V вершин и E ребер
Что тебе не понятно?
все анончики, нашел реализацию, буду дописывать еще поток по ребру рандомный
Если у меня есть функция foo(AbstractFile & file)
принимающая абстрактный класс и там будет происходить вызов виртуальных функций класса-наследника через таблицу виртуальных функций...
А если я эту функцию заменю на foo(CompressedFile & file)
т.е. сразу класс-наследник
то вызовы функций будут все еще через таблицу или уже прямо?
Типа, а нахуя обращаться к таблице если это уже финальный класс, верно? Строго известно какая это будет функция или компилятор так не умеет?
Одиннадцатый стандарт.
Когда хомо сапиенс скатится до такого бытия он перестанет называться хомо сапиенс
Чел, представь что бы подумал пещерный человек, увидевший, как современный "homo sapiens sapiens" проводит сидя 8 часов, смотря на один прямоугольник с мелькающими образами.
Я так и не называл, перечитай пост. Ты думал опечатка?
Отклеилось
инвидия уже получается из россии сьебалась?
>>612476
> Escaping improvements in std::format
Тем временем в кланге до сих пор его нету)
> A trait for implicit lifetime types
А вот это вобще не понятно что
Если будешь чисто под винду делать, то dx9+win32 - нативно и быстро.
Мультиплатформа - vulkan+GLFW
Потому что иди нахуй, вот почему.
Чёт, бред какой-то. Тебе точно нельзя это состояние в отдельную переменную записать?
Пальцы поразминай.
Если у тебя тут не сломалось, не значит, что не сломается в другой ситуации
Формально ты прав.
Но посмотри на переменную i.
Может, у нее нечитаемое имя?
Может, она занимает много места?
Или ты можешь представить, как она трясущимися пальцами набирает номер какой-нибудь невнятной бляди?
Почему же в ее вертикали прямота, а в шрифте #000000?
вроде как с++23 обещали сделать такое легальным
Ты только что всю жизнь описал
Vim очень старый, понятно, что в нём не может быть того, что есть в современных IDE. Для редактирования конфигов и написания небольших программ сгодится.
Чем не годится такая схема?
char *arr = new char[10000];
size_t len = 10000;
arr += 200;
len -= 400;
Тем что освобождает этот массив третья либа, поэтому чтоб закинуть его туда, мне нужно прежде деалоцировать всё говно
Двачую. Принты в коде - наше всё. А вижуал студии энти ваши все от дьявола. Наши предки вообще на перфокартах писали, и не ныли. Венда масдай!
>>615948
>Это реализуемо через стандартные с\с++ алокаторы?
В общих чертах, аллокаторы именно для этого и предназначены.
Но гарантированно они работают только с STL. Что у тебя там за третья либа одному б-гу известно.
И еще, к какому-то стороннему массиву ты аллокатор никак не приклеишь. Аллокатор сам по себе обертка над массивом, массив + методы управления им как куском памяти. Аллокаторы работают с контейнерами STL, а не с сишными массивами.
>освобождает этот массив третья либа, поэтому чтоб закинуть его туда, мне нужно прежде деалоцировать всё говно
Твоя задача - соответствовать интерфейсу твоей загадочной третьей либы. Вот и изучай соглашения традиции этой третьей либы. Я уверен, в документации это должно описываться.
Если твоя либа ожидает именно массив/указатель, то ты можешь написать класс, который ведет себя как массив за счет перегрузки операторов [], ⚹, неявного приведения типа, delete/delete[].
>освобождает этот массив третья либа
Опять-таки, надо знать как она его освобождает. delete, delete[], или std::free() может быть?
> Я уверен, в документации это должно описываться.
А если не в документации, то ищи в проектах эту либу использующих.
А если таких проектов нет, то зачем тебе быть единственным человеком на Земле, кто работает с такой либой?
Есть два Класса: Node, и Arrow
По логике, эти классы должны знать про лруга всё.
Класс Node должен иметь вектор с элементами класса Arrow, чтобы знать какие стрелки к нему подключены. А значит нужно в файле node.h сделать #include "arrow.h"
Класс Arrow так же, должен знать к каким нодам он подкючен. И у него должны быть две переменные: node1 и node2. А значит, в файле arrow.h нужно сделать #include "node.h"
Возникает циклическая зависимость, и я представления не имею, как эту проблему разрешить.
> иметь вектор с элементами класса Arrow, чтобы знать какие стрелки к нему подключены
Чтобы знать какие, достаточно указателя.
>А значит нужно в файле node.h сделать #include "arrow.h"
А значит инклудить ничего не обязательно. Вместо инклуда делаешь предварительное объявление и все: class Arrow;
>Класс Arrow так же, должен знать к каким нодам он подкючен.
Не только знать что-то о чем-то, но и фактически целиком хранить эти самые ноды.
Как вариант, актуальное хранилище нодов можно сделать вообще отдельным классом, тогда и Arrow тоже обойдется указателями.
1280x720, 0:20
Линия (Наследник QGraphicsObject), которая должна связывать два прямоугольника (Наследники QGraphicsObject) крайне криво отрисовывается и сходит с ума
В чём может быть проблема?
Предложил бы отнаследоваться от QGraphicsItem и переопредели поведение при drag ивентах (например, вызывать paint при dragMoveEvent или типа того). Ну либо ивент фильтры на итемы натяни, хз. Но я не эксперт - может, можно как-то с флагами отрисовки поиграть, чтобы отрисовывалось чаще
Флагов отрисовки там и нет особо никаких (По крайней мере на такой случай)
Перекат на QGraphicsItem не помог.
Ивент mouseMoveEvent вызывающий paint() - тоже.
Жопой на пост и на картинку смотрел, короче, сейчас попробую получше сказать. QGraphicsItem, в принципе, и не обязательно было делать, QGraphicsObject от него наследуется, хотя и итема достаточно.
Видимо, в твоём случае, нужно при dragEvent у квадратиков (ну или при mouseMove) эмитить сигнал, который будет что-то ловить (как вариант, можно в mainwindow коннектить сигнал от него с Qt::DirectConnection) и вызывать repaint() у вьюшки. Ты так сделал?
Ну или можно у сцены ивенты переопределять и пускать сигнал.
только не надо плиз писать про хэшмапы и тд, интересно именно решение с побитовыми операциями
На тему питона.
Во-первых, лучше руками писать IFNDEF чем pragma once. Во-вторых, иногда делают forward-заголовки. Погугли
Прагма вроде не стандартная и там еще есть крайние случаи какие то, где прагма от инклуд гуарда отличается
Чем pragma once.
>руками писать IFNDEF чем pragma once.
Лучше и то, и другое.
Я так и делал, пока не узнал, что все актуальные компиляторы поддерживают прагму, а страшилки о несовместимости это предания из нулевых годов.
>Во-вторых, иногда делают forward-заголовки.
Да у него там не в заголовках проблема.
Он граф пытается сделать и у него циклические зависимости на уровне реализации классов.
> Я так и делал, пока не узнал, что все актуальные компиляторы поддерживают прагму, а страшилки о несовместимости это предания из нулевых годов.
Так это UB, какая разница сколько компиляторов это поддерживают? Это так же плохо, как полагаться на 32-битный int, имхо.
У меня приложение с кьюти. Так же в нём есть кусок с библиотекой моей же, которую я тестирую и отображаю покрытие через gcoverage. Сначала я всё делал на гцц, гков работает только там. Добавил библиотеку qcustomplot, с какого-то хуя она собирается только на силэнге, гцц выдает ошибки на прагма ванс и ещё какую-то хуйню синтаксическую.
Теперь я занимаюсь какой-то хуйней, дебаг у меня собирается на гцц без гуя, релиз на силэнге без тестов.
Что я делаю не так, и что надо делать чтобы всё работало правильнее и жить было лучше?
Не знаю что там у тебя , но я буквально на днях кастомплот собирал гцц без проблем.
Согласен, некорректно выразился. Вообще, я имел ввиду unspecified behaviour, который я плохо отличаю от implementation defined behaviour.
И это не меняет сути. Как я уже сказал, это так же плохо, как предполагать 32-битный размер int - это тоже IDB.
Вставляю число 34. При вставке получился узел "А" 30 31 33 34. Т.к. это 2-3-4 дерево - узел разбивается.
Почему 31 переезжает в верхний узел, а узел "А" разбит на два: 30 и 33 34.
Почему бы верхний узел не превратить в 26 29 30, а узел "А" сделать 31 33 34
Потому что у узла потомков должно быть ровно на 1 больше чем чисел в нем. Здесь наверх можно перенести 31 (внизу будет 30 33-34) или 33 (30-31 34).
Почему 30 не подходит сам догадаешься?
Точняк! Ну я тупой! Спасибо!
Посоветуй от себя какие-то пейперы и книги на английском или русском, кроме кормена, конечно
Запостил в трёх тредах - только тут получил ответ.
Тупой ты долбоеб, я тебе отвечал в мвп треде. Если ты такой тупой, что только со второго раза понимаешь, то можешь почитать книгу «лучшие способы выпилиться нахуй для чайников», если такая есть.
ты там какую-то порашу написал
>Тогда при вставке 4 элемента узел НЕ разбивается, классически, он разбивается при вставке 5-го.
>наверное, может любой из двух ближайших к середине элементов
>любой из двух ближайших к середине элементов
Тебе анон выше то же самое ответил по сути.
Вообще, когда я писал эти деревья, разбивал после того, как пытался вставить элемент в ноду, а она оказывалась заполненной. Тогда я брал и вставлял или в буферный массив или держал дополнительный бакет в каждой ноде, сортировал там, и тогда получалось нечетное кол-во элементов, который можно тривиально разбить посередине. Такой способ подойдет для би деревьев любого порядка, коим 2-3-4 по сути и является.
Чел… я написал не просто любой, а любой из тех, что ближе к середине, те это либо 31, либо 33, как и написал анон выше. Ты что не можешь провести мысленную линию по середине ноды?
Слова "любой" и "любой из тех" тут не уместно. Строгий алгоритм
Насколько я понимаю нужно во входной точке программы написать чтение аргументов командной строки и первым аргументом будет путь к файлу.
Но в интернете я не смог найти никакой информации или жеbest practice по этому вопросу. Является ли описанный мной метод правильным?
Зараее спасибо
Да. Это не то чтобы best practice, тут вариантов особых и нет.
не в тот тред запостил, тебе в "структуры и алгоритмы"
>вкатиться крестоджуном хотя бы на 150 килорублей?
вышечка по специальности + первые три года будешь "работать" а на самом деле доучиваться за цену сьема халупы + еда чтобы не сдохнуть с голода
если локация не дс/дс2 - просто забудь про кресты
Душнила.
Если не сложно скинь что-нибудь по этой задаче, а то беглый гуглинг не дал результата
Если не сложно скинь что-нибудь по этой задаче, а то беглый гуглинг не дал результата
Современные тенденции защиты авторских прав.
Давай, сделай autocad в вебе и 3dmax. Наверное, без проблем сделаешь, да?
Я нисколько. Просто UI не крутится только вокруг формочек заказа суши. И не стоит забывать про свякие 3d редакторы и прочие солидворксы
У зелёных проблем никогда нет. Только потом по ходу дела в штаны насирают и сроки проёбоывают, когда всплывает куча подводных, которые пориджи не предвидели, ВЕДЬ ИМ ДАЛИ СУПЕР ТЕХНОЛОГИЮ WASM!
Да-да, с тобой. У тебя проблем никогда нет же. Значит ты зелёный самоуверенный недоучка.
Хуесос проблемнетник, возьми блендер и замени там gui на web с помощью WASM'а. Покажешь результат, как у тебя проблем нет
> возьми блендер перепиши его с штука адин на штука два, получай проблемы
Ну так и? Мог бы сразу написать начинай писать на плюсах получай проблемы
Скзать то ты этим что хочешь, что блендер писать сложно? Что оказывается программмируя придётся напрягаться?
Иди лечи шизофазию свою! К коду не прикасайся ни на каком языке
Ну только манипулировать не надо. Речь про гуй для готовой програмки шла, а не про полноценную CAD систему. До этого ещё далеко конечно, но уже сегодня только дурак не понимает что будущее - за веб + облачными технологиями.
Соглашусь
Да знаем мы про вашу мультизадачность, чтобы начать новую задачу, надо сначала приостановить существующие.
Да, а что. Только что написал супер парсер конфигурационных файлов. И крутую функцию парсинга argv. Ну там сегфолт какой-то. Ща гдб быстренько отловью
Не, я не про это. Я просто в разных стеках сведущий, макакинг в том числе. У тебя с этим какая-то проблема?
20 вообще детский лепет по сравнению с 11
Всем привет. Назовите, пожалуйста, лучшую книжку для основ написания кода на плюсах + на правильное писание этого самого кода, чтоб не быть макакой.
Я тоже мимо, но на имгуи кад системы гораздо реальнее, как по мне.
имгуи чисто доя гуя разумеется , а так вулкан/дрх рендерер
Ебашь. Меня в своё время захайрили чисто за то, что я упомянул что осилил его творение на 1к страниц.
Что теперь указатели сравнивать нельзя чтоле? В том же операторе присваивания, например.
Там же написано чего - многоточия. Надо полагать, это означает, что описываемое поведение не зависит от реализации. Главное чтоб наследование имелось.
Научился работать с мьютексами лишь на второй год работы. Проблемс?
Да
SDL не осилил, взял SFML. Хотя попытка закончилась на разноцветном кубике, вращаемом мышкой.
Сдл это просто контекс окна, вся графика отдельно в огл/вк.
Ну и по факту чем ты контекст окна создаешь сдл/глфв/гатив руками - строго похер, так что вопрос в про графику огл от сдл никак не зависит.
А для игр очень важно, чем создавать окно, потому что Opengl не умеет обрабатывать события клавиатуры и мыши.
Ты не пробиваемый. Даже обьяснять лень.Очевидно что не умеет.
Сдл и прочее прсто дергает нативные функции конкретной платформы вин32/х11 и тд, ты можешь сам это реализовать.
> так что вопрос в про графику огл от сдл никак не зависит.
Обновление. Я собрал кьюкастомплот на г++. Только на линуксе. На маке отказывается собираться с какими-то тухлыми ошибками. Ещё одно ебланское условие в симейклист.
Плюс пришлось залезать в сам кьюкастомплот и менять там хуйню, потому что я по правилам должен собирать с Веррор а в кьюкастомплоте какая-то срать которая депрекейтед ещё в 5 кьюти, не то что в 6.
> почему бы не прочитать хуеву тучу строк исходников
Так ни один проект не пишется. Есть конкретный список задач (issues), где написано, что нужно запилить, что улучшить, какие есть проблемы. Берут задачу и начинают изучать соответствующую часть проекта, вносят правку, коммитят.
>В таком случае не пометят ли меня как дебила ненадежного у себя в кулуарах, чтобы потом дел не иметь?
Нужен ты кому бумагу/место на дисках + человекоминуты тратить
В опенсорсе такие люди называются мейнтейнерами, и их обычно много.
Как мне это видется - года полтора
В моем вузе люди после года плюсов попадали в яндекс. Одна лекция в неделю, одна практика, одна лаба в неделю. Лаба писалась обычно на выходных. Но есть и те, кто несколько лет плюсы учит, но нихуя не знает по итогу. Как думаешь, откуда нам знать к какому типу ты ближе?
ну поэтому я и прошу дать на ваш взгляд больше оптимистично-реальный прогноз
>В моем вузе люди после года плюсов попадали в яндекс
Это объясняет почему любой продукт яндекса кусок ебаного дерьма
Филиал /a/ и /b/.
Но надо заполнять ник, чтобы понятно было к какому разделу пост относится.
Картинки уже есть, прикреплять не нужно.
Причем абсолютно бесплатно.
...без объявления войны
Существует ли фонд золотых подьебов на собесах?
Какие самые запоминающиеся из заковыристых подьебов были у вас на собесах?
Собесился на ML инженера, а меня большую часть собеса ебали задачками с литкода.
Вот я делаю buffer_debug в который потом snprintf поместит текст.
Размер buffer_debug я могу посчитать заранее, зная, что два %s это 2 раза по 2 байта и плюс две длины строк.
А что делать если мне число в buffer_debug поместить надо?
Если число от 0 до 9, то это 1 байт.
Если от 10 до 99, то это 2 байта.
Если от 100 до 999, то это 3 байта.
И так далее.
Как узнать сколько байт будет занимать число в строке?
>Функция itoa() конвертирует целое число num в строчный эквивалент и помещает результат в строку, на которую указывает параметр str.
Та же проблема. Я должен заранее знать какого размера мне делать str.
Если число от 0 до 9, то это 1 байт.
Если от 10 до 99, то это 2 байта.
Если от 100 до 999, то это 3 байта.
Ну ты понял.
>>623215
http://www.c-cpp.ru/content/itoa
>Необходимо заботиться о том, чтобы строка для вывода данных была достаточно длинной, чтобы вместить в себя результат. Максимальная необходимая длина составляет 17 байт.
А как это 17 байт. Вот у меня int64_t есть, они до 9,223,372,036,854,775,807 = 19 байт.
Не понял. Вообще ничего не понял.
делаю буферы заведомо больше необходимого размера, и ничего не считаю, wchar_t debugStr[256], например
Тогда я бы просто продолжал использовать String и забил бы на память.
Но у меня микруха крашилась из-за хаоса в памяти из-за этих String.
Когда у тебя комп с 16гб памяти можно так, но когда у тебя какая-нибудь ATmega328 с 2кб памяти, так уже нельзя.
int num = 12345;
int size = snprintf(nullptr, 0, "%d", num);
std::cout << size << std::endl; //5
Это?
Там сидят долбоёбы, которые ничего полезного посоветовать не могут. А здесь сидят гении, лучшие умы двача, без пяти минут учёные.
https://cplusplus.com/reference/cstdlib/itoa
> strshould be an array long enough to contain any possible value:(sizeof(int)*8+1)forradix=2, i.e. 17 bytes in 16-bits platforms and 33 in 32-bits platforms.
То есть
1. Речь о двоичной системе счисления, а не десятичной (потому что тогда число будет длиннее).
2. Максимальная необходимая длина 17 байт, если int 16-битный.
3. А еще ты забыл учесть '\0' на конце строки. Для 64-битного int при base=10 понадобится 20, а не 19 байтов.
Перекати.
Не перекатывай.
ЭЭЭ, вообще не понял, если у меня конструктор копирования все-таки реализован, то вызывается Real(double v)
Оптимизирует скорее всего. = в инициализации это всегда конструктор копирования.
По идее, из 6.2 создается безымянный Real через конструктор из double, потом этот безымянный Real передается как аргумент в конструктор копирования для создания r1.
Походу второй шаг пропускается и она безымянному Real из первого шага тупо присваивает имя r1.
А причем тут оптимизация?
Как по мне, много воды и вредных стереотипов. Однако, также куча полезностей и довольно интересный подход к обучению. В общем, если есть много времени, то можно почитать, тем более он активный сторонник свободы в информационном мире и ярый противник, как он выражается, информационного насилия. Также можно глянуть интервью у айтибороды, так как Столяров имеет довольно любопытное мировоззрение.
>А нвидия кун уже из треда пропал?
Изредка почитываю, но прям очень редко.
> инвидия уже получается из россии сьебалась?
5 месяцев назад, алле. Я вон в Цюрихе живу теперь.
Чо хотел то?
Представь что я у тебя на собесе задай пару вопросов - я попробую ответить. Позиция - крепкий мидл - сеньор
Я тоже хочу жить в цирюхе и работать на нвидиа или интел. Или еще какую ахуенную контору. Хочу получать сотыги и быть умным. Как это сделать?
Я задаю 2 вопроса обычно.
1. Напиши std::vector. Тут непаханное поле для подьебок и дополнительных вопросов, вплоть до std::is_trivially_copyable и прочих noexcept.
2. Эксепшены в С++ коде. Нужно или не нужно? Здесь опять же можно очень легко понять, понимает человек или нет, т.к. правильного ответа то нет на вопрос. А вот неправильные есть, например "НЕТ НИЗЯ ПАТАМУШТА ГУГАЛ ЗАПРИТИЛ".
У нас нет простых вопросов, а скорее - рассуждения.
>>632020
Ну как как, долбиться во все двери, и заучивать то, где ты проебался, когда проебался. Ну и мучать литкод медиумы\харды.
Надо понимать - что карьера, это длинный марафон. И если ты будешь задрачивать и куда-то хотеть (например к нам, в Армению, а через 5 лет перекатиться уже в Цюрих по внутреннему трансферу) - то рано или поздно у тебя все получится.
Но другое дело, хз за Америку - но вот та самая ШВЯТАЯ ЕВРОПКА - это нихуя не рай на земле. Либо ты получаешь копейки (4-5к евро), и все вокруг как в Москве по ценам. Либо да, живешь в Цюрихе на 12-14кф\м, но ебаное маленькое меню в Макдачке стоит 15фр.
ну и да - Интел залупа ниочемная. Гугл в Цюрихе был в гостях - хорош, платят много, офисы охуеть, и бесплатный хавич, что в варианте Цюри - очень большой бенефит.
Возможно Мета\ФБ похожи. Но интел - не, херня.
>Напиши std::vector
Не дрочу на std:: Использую, но не интересно - как там и что там.
>Эксепшены
Там где действительно ситуация исключительная
if ( auto res = localtime_r(&tt, &tm); !res ) {
throw std::runtime_error("Runtime constraint violation or a failure to convert the specified time to local calendar time");
}
> Не дрочу на std:: Использую, но не интересно - как там и что там.
Очень странный ответ, минус.
> Там где действительно ситуация исключительная
Тема вообще не раскрыта.
Я думал в nvidia делают deepstream норм, дрова пишут не глючные под линь. А оказывается - дрочат на с++ (на молоток, по сути)
Чтобы строить дома - умение пользоваться молотком подразумевается. Мы собесили много "сениоров", которые не умеют даже с указателями работать, какие им драйвера и прочие сложные проекты?
Чел, нахуй мне дрочить std::vector, если есть божественный ngx_array. Простой и элегантный. Нахуй мне boost::asio, если игорян написать ЭЛЕГАНТНЕЙШУЮ на сях сетевую логику с минимальным количеством сисколов. Нахуй мне копаться в std::is_pod is_trivial
is_copybale is_necopyable _is_huj_znaet_naxui_eto_nado. Тебе правда интересно изучать в каждом новом стандарте шизу этого стандарта? Это же вещь в себе. В с++ учили, не парьтесть о ресурсах, просто передавайте по ссылке. Но теперь появились string_view нахуя? Мне неинтересно в 21 веке даже думать об этом. Я понял, тебя там не подпускают ни к чему серьёзному - макакю из москоу - и ты варишься в своём с++
С шизофренией, к сожалению, тоже не берем.
так, ладно, более менее разобрался, как выводить эту хуиту в терминале, но вопрос, как выводить кириллицу в терминале, когда я вывожу в cout ?
- работать с docx файлами(Microsoft Word). DuckX не подходит - проект заброшен и редактировать текст очень сложно
-склонять слова по падежам(Морфер платный)
Чел ну открой нормальный туториал и посмотри. Тем более если ты на плюсах писать собрался накати просто линь и не еби никому мозг
SDL2 тебе в помощь
1. ЗАЧЕМ нам может понадобиться определять функцию вне её класса?
2. Какое практическое применение омска на втором скрине? Запуск сразу двух функций, одна унаследованная и слегка переписанная, одна базовая?
ньюфаг
Кстати, насчет Столярова, интересно, чем именно ему не нравятся новые стандарты C++. Может он уже развернуто высказался где-нибудь на том же LOR, но я заебался искать. Нашел только про то, что коммитет надо расстрелять весь к ебанной матери вот прям вообще и нахуй.
Из конкретного я только читал его студента про Си, но там больше не про стандарт, а про GCC, абьюзящий стандарт вплоть до того, что Кармаковские хаки перестают работать, и вообще теряется пресловутый контроль.
Единственное же логичное, что могу предположить насчет его мнения по C++, это то, что ряяяяя, больше говна в стандарта - сложнее запилить новую конкурентоспособную реализацию, на руку монополистам, и все такое. И те же фичи STL вполне можно было оставить third party, в том же бусте, или каждая контора свои пусть пилит. Но я бы тут не согласился, потому что многим нравится именно экосистема, когда широкий библиотечный инструментарий везде знакомый и проверенный. Если C++ принципиально от такой роскоши откажется, то просто перестанет выдерживать конкуренцию с еще более фашистский энтерпрайз говном вроде C#, с которым мы все так боремся. (недавно в треде постили статью про то, что пиндосы там что-то пытались протолкнуть на гос.уровне, дескать C++ небезопасен и уязвим из-за приколов с памятью, и рекомендуется серьезным конторам переходить на шарп)
Да
Это копия, сохраненная 28 марта 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.