
⚹ https://github.com/sosachbot/cppthreadhat
⚹ Для кусков кода: https://0bin.net/
Ответы на вопросы:
⚹ https://en.cppreference.com/w/
⚹ https://www.cplusplus.com/reference/
Для указателей: ⚹
Прошлый тред: >>3333359 (OP)
Кто не способен быстро понять смысл этого простого выражения тот не достоин называться программистом
char ((x[3])())[5];

Слишком просто. На пикриле сможешь понять что происходит?
Промежуточный код для лямбды?
Не знаю других поводов заводить динамические массивы указателей на функции. Фе, даже набирать противно.
>>10651
Указатель в память указывает, а не на тип, долбоебина безмозглая. Не говоря уже о том что это к плюсам не имеет отношения, в си тред с этим иди пусть тебе напихают хуев.
Лол. Аутист, спокнись. Двач просто звездочки счавкал
В шапке же специальная звездочка для указателей, чтобы копипастить ее.
Есть ли какое то будущее и плюсового разраба в рф?
что то кроме qt и эмбедед макакой стать
Ты уже сам ответил на свой вопрос. С++ в вебе? Кому он нахуй нужен. Это просто не практично. Представь себе, что бекенд компилируется час. А куда ещё? Программировать роботов на ROS2? Ты сам не пойдёшь. Бот для торговли опционами/криптой? Создание игр?
В теории конечно, ROS2 мог бы стать альтернативой эмбеддед и RTOS'у, но там как в раше нихуя нет, ни стартапов ориентированных на роботов, нихуя. То в итоге и остаётся один эмбеддед.
Обработкой картинок, базами данных, прочими нейросеткамими занимаются приложения либо библотеки на си/плюсах, обернутые в пистон/пхп/etc модуль.
Я понимаю что макакам эти вещи знать не интересно, у них в мирке и джава не тормозит и на пистоне нейросети пишут, но ием не менее
Грустно(
Устроился на первую работу qt макакой, паралельно с уником, уже пол года как. (случайно залетел вобще)
Для меня студента зп 100к это славно, да и задачи прям халявные, можно хоть пол дня хуи пинать и за пару часов таску закрывать. Но вобще не понимаю куда дальше в этой области двигаться
Развиваться в qt и десктопе? - звучит как парашная идея, включая то что десктоп мертв, тем более на плюсах писать его это ад
Углубляться в предметной области над которой сейчас работаю? - сейчас глянул на хх.ру буквально ноль вакансий с требованиями по ней (мбы мы единственные в рф кто это делает вобще)
Геймдев + комп графика? - две вакансии на рф, с тясячами откликов от челов с горящими глазами
Нейросетки? - там как будто плюсов вобще нет, а если и есть это больше ресерч
В других сферах плюсов как будто и нет, как будто из вариантов только по вечерам в веб\мобилки вкатываться
когда прочитал что у анона выше после пол года зп 200к+, немного всплакнул
>>12640
> Библиотеки
Половина опенсорсная, другая уже давно написано другими.
В итоге из вариантов:
- искать ту единственную кампанию кто этим занимается
- жить на донаты с опенсорса (это вобще реально?)
- переписывать существующие (и сразу на раст еще хехе)
Плюсы (компилируемые языки) нужны везде где нужно SDK. Считаей, что везде, кроме самых примитивных кейсов. Есть либа, что обрабатывать фотки например. Есть клиенты на андроиде, вебе, айоси, десктопе. Можно имплементировать логику либы на каждой платформе отдельно, создав 5 разных решений каждое со своими багами. Или можно написать один раз на компилируемом языке, скомпилировать под нужную платформу, покинуть через адаптера вызовы и вуаля.
Поэтому я не разделяю твоего консерна.
Я другой анон, мимо проходил.
>Обработкой картинок, базами данных, прочими нейросеткамими занимаются приложения либо библотеки на си/плюсах, обернутые в пистон/пхп/etc модуль.
Ну начинается блять... Я не говорю про какие-то отдельные периодические проекты на с++. Естественно, так можно и lua приплести. Ну а чо, можно же и на lua плагины писать. Я говорю про постоянный источник заработка. Не то что ты пару раз стрельнул заказ на какой-то плагин, 500 рублей получил и хуй сосёшь. Базы данных? Ну можно. Сам-то ты сколько баз данных разработал? Сколько миллионов на этом наварил?
>>12653
Бля чувак не знаю. Лично я не вижу особого смысла в языке. Мне кажется все в конце концов перейдут на rust. Весь смысл с++ это программировать микроконтроллеры. Либо углубляться в финансовую сферу, в high frequency trading и там получать сверх доходы.
Как-то бредово звучит.
1) Почему на питухоне или жабке надо имплементировать логику отдельно для каждого девайса? Всегда считалось это фичей скриптовых байткодных.
2) Что ты вообще собрался не дергать специфичное апи на платформе? Не получится.

Есть. Есть и роботы и бэкэнд и поиск. Но проблема в том что это все яндекс. Они там даже зп предлагают. Единственная загвоздка в том что эта вакансия не для тебя нихуя, а скиллового чела отучившегося в европах и штатах, ну или в наших мфти шадах, тогда мб они дадут тебе по верху этой вилки. Еще они предлагают низ вилки как видишь, это цена для всяких госушных горе эмбедщиков, но которые могут быть внезапно ахуенно ебанутыми задротами после лет 10 веслания в госушных говнетах, им они заплатят баснословные 250. В общем вакансия есть, чето даже предлагают, но нахуя это людям которые привыкли пылится в госухе, ковыряться в чем им нравится и когда им нравится или условному споротовичку олимпиаднику который сходу прыгает в хфт стартап и лутает х10 яндексоидных вилок?
ПЫТАЕШЬСЯ СДЕЛАТЬ ПРАВИЛЬНО
@
НЕ ПОЛУЧАЕТСЯ
@
ДА ПОШЛО ВСЁ НАХУЙ
@
ПЕРЕДАЕШЬ УКАЗАТЕЛЬ КАК ЧИСЛО ВО ФРОНТ ИЗ ЛИБЫ
@
ВО ФРОНТЕ В НУЖНЫЙ МОМЕНТ УКАЗАТЕЛЬ ПЕРЕДАЕТСЯ КАК АРГУМЕНТ ФУНКЦИИ ЛИБЫ
@
ТЕСТИРУЕШЬ
@
ОНО ЖИВОЕ
@
ОТКРЫВАЕШЬ БУТЫЛКУ ВИНА
@
РЕЛИЗ ГОТОВ
> Есть ли какое то будущее и плюсового разраба в рф?
> что то кроме qt и эмбедед макакой стать
А чем тебе qt не нравится? По мне так лучше кутемакака, чем бустомакака.
>>12619
> Ты уже сам ответил на свой вопрос. С++ в вебе? Кому он нахуй нужен.
Есть и c++ в вебе. И на мобилках. Вообще универсальная штука
Что такое бустомакака? Если кутешная макака это попильный говнет для цифрового гулага, гойслуг и зетников. То бустомакака че такое? Звучит как сервер сайд и асинхронщина, это уже ахуенная специализация и карьера идти писать CDN, а не пылить штаны в мертвой десктопщине в рф и терпеть попилы с которых тебе достается сотыжка и пожизненный бан на перекат на нормальный рынок.
Есть вебасембли, но честно говоря я так и не понял в чом прикол. Он наверное где то там есть, смысл всмысле, но мне кажется это очередная хуйня пришла в голову кому то, и раз это еще никем не сделано то надо сделать. Ну ЧИСТО шоб було, а то вдруг чо
>Есть и c++ в вебе. И на мобилках. Вообще универсальная штука
Чё прям весь бекенд? Как уже выше писали - для сжатия картинок возможно. Или под webassembly, а-ля figma - пойдёт. Но шоб прям весь бекенд - это будет лютый пиздец, который будет собираться целую вечность.
>Есть ли какое то будущее и плюсового разраба в рф?
Нет. В принципе учить С++ в 2026 году имхо смысла никакого нет, если ты в России живешь и НЕ хочешь работать в оборонке. Очень много интересных и хорошо оплачиваемых плюсовых проектов позакрывалось и/или уехало за рубеж. Я в 2020-2021 годах мониторил рынок и у нас было много вакансий на хх.ру от всяких там иностранных конторок, которые делали 3D движки для CAD/CAM систем, были вакансии от NVidia, были вакансии Интела, были вакансии от Automotive контор, которые работали на атусорс, были вакансии от американских производителей ГИС, много чего было еще, но сейчас этого ничего нет, прям тухляк полный. Сейчас С++ это некоторые проекты в Яндексе, много всякого инфобеза тухлого, в том числе под винду, где надо легаси поддерживать, некоторое количество вакансий связанных с видеонаблюдением и сетями, но это тоже околоинфобез или безопасность так или иначе, либо оборонка и госуха, в том числе проекты для силовиков.
В крупном бигтехе aka Яндекс, VK, Сбер, Авито, Озон доля С++ с каждым годом становится все меньше и меньше. Даже в Яндексе от него постоянно отказываются в пользу Go, Питона и Джавы.
Конечно же какие-то редкие вещи вроде движков СУБД вроде YDB в Яндексе до сих пор на С++ пишут и будут писать, но это очень редкая работа и туда с улицы просто так не зайдешь даже стажером.
>Обработкой картинок, базами данных, прочими нейросеткамими занимаются приложения либо библотеки на си/плюсах
Это все очень малые доли рынка. Если ты прямо сейчас не занимаешься ковырянием субд, компиляторов или opencv, то оно тебе и не нужно. Это не то, чтобы было сильно сложно для чела с высшим образованием, просто туда ты не вкатишься сейчас в России. И работу сменить это тот еще гемор. Разработчиков субд и компиляторов надо несколько сотен на весь мир, это очень редкая работа и при она не оплачивается сильно лучше бекенд макак.
Чтобы туда вкатиться желательно учиться в хорошем универе в США и посещать курсы по типу тех, которые в CMU идут по базам данных. Тогда может и возьмут стажером в Оракл поддерживать их 40 летнее легаси
>Есть. Есть и роботы и бэкэнд и поиск. Но проблема в том что это все яндекс
За пределами роботов и узких мест поиска/рекламы доля С++ постепенно сокращается.
Бекенд на С++ в Яндексе, прям вот чтобы массово, это наверное только в Такси есть. Там для этого вся инфраструктура в виде userver и обвязок для него есть. Вне Такси от С++ на бекенде плюются очень многие.
В Облаке, Кинопоиске, Музыке, Финтехе, Маркете, Еде, Лавке на С++ пишут сейчас очень редко, как правило штучные вещи вроде роботов, где на всю службу одна вакансия иногда появляется. В остальном там везде нынче Java/Go/Python.
>почему ты эмбеддед в макаки записал?
Эмбеддед это как раз макаки в 90% случаях. Какой-то тяжелой умственной работы там нет, сложных алгоритмов тоже. Ебешься с даташитами, читаешь документацию от производителя, читаешь данные из одного порта/пина, пишешь в другой, двигаешь туда-сюда байты.
Разумеется иногда приходится дебажить сложные вещи, находить баги в самом хардваре, погружаться в ЦОС и ТАУ, но это редкость и этим очень мало кто занимается.

>было много вакансий на хх.ру от всяких там иностранных конторок, которые делали 3D движки для CAD/CAM систем, были вакансии от NVidia, были вакансии Интела, были вакансии от Automotive контор, которые работали на атусорс, были вакансии от американских производителей ГИС, много чего было еще
Заткнись сука уёбок пидорасина! Зачем ты меня расстраиваешь, чтобы я злился? Да? Ты этого хочешь? Хочешь чтобы я расстроился? Ну вот смотри, ты этого добился, поздравляю!
Хе-хе. Я уже давно смирился, что айти тут ВСЕ. Либо мутная госуха, либо российский бигтех за лоупрайс. Такой сытости, которая была тут хотя бы в 2019 году, нам еще долго не видеть, а вероятнее всего никогда и не увидим.
Кстати, нвидия кун больше не заходит сюда? Нвидия его в Швейцарию вывезла кстати. И у меня другой знакомый был, учился на 1 курсе магистратуры ВМК МГУ, делал какие-то нейросети в нашем офисе нвидии, в итоге как гойда началась, его в офисе 2022 года вывезли в Армению, а через полгода в Швейцарию перевезли. Вот так тоже бывает по жизни. Кто успел, тот успел.
Пишут, все они пишут. Хватит пиздеть. На новых стандартах нет причин не писать. Просто от тебя кривожопа они скрывают чтоб ты к ним не лез.
Ладно, а если серьезно. То я вакансий 50 нашел только от самого яндекса. Это весь тред можно трудоустроить двачной отдел. Но как я и сказал это яндекс. Там менеджмент с козой ходит, а сам ты делать ку должен за лоу прайс клоуном у пидорасов, а до пидораса тебе дорасти не дадут. Скажут не дорос еще.
>Нвидия его в Швейцарию вывезла кстати.
>через полгода в Швейцарию перевезли. Вот так тоже бывает по жизни. Кто успел, тот успел.
Ну блять, зато я живу в Балаково! Швейцарии до нашего рая ещё развиваться и развиваться! Так что завидуйте молча неудачники!

Хотел бы спросить кое-что про стандарты языка.
Например:
1)Мне на собеседовании задали вопрос "Как у вас со стандартами?"
Что я должен ответить? Они имеют ввиду, что условно проект пишется на С11 и чтобы я в случае чего не использовал фичи других страндартов (С17 и выше), дабы не было проблем с совместимостью? Или тут больше вопрос к компилятору, который они используют и опять же совместимости различных компиляторов и стандартов?
2) Какой основной источник, cppreference.com?
Я вот открыл, в целом там информация очень лаконичная.Это и есть основной источник или еще другие существуют?
У тебя спрашивают, можешь ли ты по памяти назвать всё UB, упомянутое в стандарте, и куда ты полезешь искать инфу об UB, если засомневаешься.
Потому что это база собеседование вайти и персональная шиза собеседующих. Люди развлекаются как хотят, делают че хотят, собеседование это же не экзамен, и по моему опыту большая их часть предрешена уже до начала неважно че там у тебя спрашивают (это не относится к систематическому подходу к найму из всяких фаангов где у них очереди и масштабы).
Ну а так я тебе поясню что человек хотел от тебя. Он просто прощупал твой уровень экспертизы. Сами плюсы по себе уже довольно большой домен и без всякой прикладной области. Так что собеседующий просто выяснил для себя твой уровень экспертности и насколько ты задр. Кстати говоря тему надо понимать хотя бы вскользь все же, если ты совсем чето невнятное пропукал то это будет грустно. Но по твоим вопросам видно что ты стажер какой-нибудь или студент, ну хз, да я бы тебя таким ебать не стал
Надо кабанов ебать налоговой без смазки, просовывать в анус невидимую руку государства или отбирать все субсидии.
У нас в стране вроде как 70лет была система отбора кадров, в том числе квалифицированных, нет надо придумать какую то HR-хуйню с тупорылыми профнепригодными манагерами.
я правильно понимаю, что это очередная бесполезная суета?
А то в отзывах прочитал что структура хуевая.
Алсо, можно старого Страуструпа читать?
На плюсах все 3д и вулкан.
Нет смысла Шилдта читать сейчас. Страуструпа смотря насколько старого и что именно.
страуструп к сожалению не для того, что бы понять как языком пользоваться, а это больше какие-то нюансы языка. Лучше начинать со всякой шизохуйни типа чистого кода и прочего дерьмеца, солида-хуелида, а потом уже почитать страуструпа.
> анон что можешь скачать про std:: any ?
> я правильно понимаю, что это очередная бесполезная суета?
Выглядит похоже на QVariant
> Что происходит, когда мы вставляем символ в середину текста в текстовом файле? Все байты следующие за этим символом смещаются вправо?
Конечно. Разве еще какие то варианты есть?
Аноны, есть ли годные сайты для постепенного вката в спп?
Я не кодер, но знание плюсов может очень пригодиться в работе.
Пробовал давно еще вкатываться в свободное время по каким то книгам и сайтам всяким, но потом возникали более приоритетные дела и приходилось забрасывать. При этом время от времени приходится писать что то на пайтоне, в основном говно скрипты.
Еще пугает что плюсы постоянно обновляются, что то новое выходит. И помню что в последний раз что то решил сделать и заебался с cmake и это тоже подорвало мою мораль. Кстати пишу код в блокноте, ради cmake устанавливал какое то говно от майкрософта, толку от него было мало, в общем очень заёбно всё было.
алсо нормальные люди тайпдефы используют
инб4 using, в курсе что оффтоп, но отвечаю сишнику на его же
> Аноны, есть ли годные сайты для постепенного вката в спп?
https://ravesli.com/uroki-cpp/ - для самых маленьких, для просмотра нужен зарубежный прокси.
Лекции Мещерина на ютубе - более продвинутый уровень.
> может очень пригодиться в работе
А зачем плюсы, пайтона не будет достаточно?
>Еще пугает что плюсы постоянно обновляются
Это не проблема, обновления не прям чтобы революционные, обратная совместимость поддерживается, 11 стандарта должно хватать, а на новых стандартах пишут только на совсем новых проектах.
> заебался с cmake
Да, это та еще залупа, сам с ней не до конца разобрался. А зачем тебе, ты под linux пишешь?
>Кстати пишу код в блокноте
Если у тебя винда, не страдай хуйней и поставь Visual Studio. Она заменяет и блокнот, и cmake.
c vcpkg он охуенный
1) Клонируешь vcpkg репу с тулчейном
2) В проекте создаешь файл vcpkg.json Например
{
"dependencies": ["catch2"]
}
3) В проекте создаешь папку build и игноришь ее в .gitignore
4) В папке build запускаешь cmake -DCMAKE_TOOLCHAIN_FILE=<путь к vcpkg репе>/scripts/buildsystems/vcpkg.cmake ..
5) Все зависимости скачиваются в папку build автоматически
6) В CMakeLists.txt уже можешь спокойно писать свои find_package
Когда пишешь симейк проект приходится каждый чих гуглить, я вот недавно писал сборку gettext файлов через модуль все как положено, а он выдавал структуру файлов не ту которую нужно мучился мучился пока в каком то обсуждении не наткнулся на сообщение где мужик говорит что find_package(Gettext) - устаревший кусок легаси говна, не используйте его функции используйте его только для детекта программ в системе.
Я в итоге решил не использовать вообще и просто написал функцию которая детектит нужные программы вроде msgfmt и xgettext (какие же уродливые функции в симейк это просто пиздец) ну и написал таргет с командами для обработки языковых файлов и установки их в целевую папку с переименованием
Говно как язык сборки в целом
> Иногда пишу
Ну вот проблема возникает когда иногда превращается во что более чем 100 строчек кода
я в неовиме использую neocmakelsp и у меня автодополнение цимейка с документацией
Для таких стандартных вещей как gettext в cmake уже готовые команды есть
find_package это стандартный способ для менее стандартных либ чем gettext или sdl2
Это они боевой рой для новой сво готовят?
>Клонируешь vcpkg репу с тулчейном
Какую репу с каким тулчейном? Совет пойти на деревню дедушке.
Совет пойти пойти к дедушке гуглу
https://learn.microsoft.com/ru-ru/vcpkg/get_started/get-started?pivots=shell-bash
Звучич как будто чел доку читать не умеет
FindGettext https://cmake.org/cmake/help/latest/module/FindGettext.html
Уже само ишет все утилиты, нахуй лисапед писать.
find_package для либ от васянов нужен, если васян экспрортировал в своей либе конфиг cmake
В тот раз cmake нужен был чтобы подцепить какую то библиотеку.
Пайтона не всегда достаточно особенно для уже написанного кода и приходится вникать в cpp и vba, да и в целом знание плюсов это огромный плюс.
Пока останавлюсь на видосах с ютуба.
Cпасибо
Нахуя? Для твоих админских задач по поддержке легаси говна хватит с головой неронки, заплати 20 долларов за о1 и сиди кайфуй не разбираясь в килотонне придуманного задротами бесполезного говна
Это буквально одно и то же, шизойд
include(FindGettext) - это устаревший метод
find_package(Gettext QUIET REQUIRED) - более современный и функциональный
Однако функции в составе этого пакета устанавливают файлы и каталоги некорректно, должно быть как делает intltoolize:
locales/
-- <lang>/
-- -- LC_MESSAGES/
-- -- -- <domain>.mo
А функция из симейк модуля генерирует вот так:
locales/
-- <appname>/
-- -- <lang>.mo
.pot файлы могут быть разных форматов и msgfmt надо для каждого формата его явно указывать (xml/desktop), но симейк функция этого тоже не умеет, как и сказали это устаревшие легаси затычки для совместимости со старыми проектами. Сам модуль нужен теперь просто для того что бы детектить есть вообще в системе нужный пакет с программами.
Я написал свой детект программы, потому что мне нужна была еще другая утилита.
Знания спп открывает больше профессиональных перспектив.
Нейронки запрещены на работе. Современные нейронки такое себе, часто галлюцинируют, ошибаются, не видят каких то очевидных вещей. В одном чате ради прикола попросили нейронки решить олимпиадные задачки чуть ли не 7 или 8 класса и в лучшем случае это было численное решение.
Нет никаких перспектив. Тебе привиделось или тебе это внушили. Я даже не представляю в каком месте и кто будет с админом обсуждать плюсы, наверное только такой же шизофреник как и ты
Задачку за 7 и 8 класс не решит даже профессор или сам автор если забудет свое условие которое он придумал под говняком. Ты не понимаешь назначение нейросетей. Это прикладной инструмент для бизнеса, а не сфинкс
Попустись, я не работаю админом и никогда им не работал. Ты меня путаешь с кем то другим.
Ты работаешь админом в говногосушной легасной параше интеграторе рфном и занимаешься какой то хуетой пока никто не смотрит
Ты описываешь еботню с гнутым геттекстом а не с симейком. Симейк няшка, а ты плохой пример взял чтобы его критиковать.
>Ты описываешь еботню с гнутым геттекстом
Я описываю еботню с симейком и его пакетами/библиотеками, поскольку симейк это не башскрипт и не мейкскрипт, там зачастую нельзя просто взять и подставить какие то вызовы командной строки и подставлять линковщику какие то опции. Там надо делать все по особому по симейковски, это вызывает трудности а еще там синтаксис лютое говно, особенно все что связано с функциями и переменными, это просто ужас блять.
Почему
https://cmake.org/cmake/help/latest/command/execute_process.html#command:execute_process
>Там надо делать все по особому по симейковски
Ты в любом языке программирования будешь делять "по языковски". В баше надо тоже по башевски делать
Петух ты уже с геттекстом обосрался, тебе мало хуев напихали что ли? Нахуя ты пытаешься доказывать что то в области в которой нихуя не понимаешь, ты даун?
Хуезависимый, спокнись. С симейком все впорядке. Все равно ты без него никуда, это лучше чем всякое непортабельное говно вроде башскриптов в проект тащить.
Я прекрасно знаю симейк потому что его каждый день использую, он забрал очень много крови нерва и пота (и продолжает тратить) и поэтому я не молюсь на него, в нем буквально все сделано плохо. Всё. Едиинственный его плюс это то что он работает выполняет свои функции на 100% и мучения таким образом окупает. Но дрочить на него и петь ему дефирамбы будет только сказочный дегенерат который сам нихуя не пишет только пиздит.
Дифирамбы можно петь только за то что он распостранен и кгда я скачиваю искодники на цпп там скорее всего есть что-то-Config.cmake Поэтому я доволен. А если я в scons какой-нибудь то мне придется учить scons + cmake
Это я не тебе а тем кого ты агитируешь против cmake, как будто есть альтернатива.
>По таким принципам и живут эти парашники
Так аналоговнет до сих пор. Зачастую при критике цпп происходит подмена сложности языка на сложность предметной области. Это не цпп такой специально создан, он адаптирован под области в которых используется, а так же под некоторый перечень ключевых идей(зирокост и т.д). Он не виноват, что все области, где он используются обмазаны говном и сложностью.
Вот взять те же строки, какую из реализаций нужно добавлять в стандарт? У строк десятки типов и реализаций со своими приколами и плюшками, не будешь же каждую из реализаций в язык тащить. Задача цпп - это дать минимально достаточный и мощный язык для написания своих велосипедов под задачу. Особенно я не понимаю претензий к новым стандартам цпп, если на си с классами не писать, то это вообще сказка.
Хватит пиздеть хуйню. Посмотри на планы что вообще собирается делать комитет сейчас: нормальные корутины, экзекуторы, сеть. Даже текущую сраную строчку в стандарт принимали миллиард лет, работа с файловой системой только к 17 появилась. Что ты мне тут еще будешь втирать про реализации которые надо добавлять и минимальный мощный язык? Он пустой и не развивается и не развился в том темпе котором он нужен, поэтому и пошел нахуй и он неизбежно будет идти постепенно нахуй и вытесняться другими языками. Пока стауструпы будут с горящей сракой бежать и дефать эту хуйню от американской госухи чтобы ему придумали за него как это все воскресить и вернуть в продуктовую разработку
>Что ты мне тут еще будешь втирать про реализации которые надо добавлять и минимальный мощный язык
Так в чем пиздеж, если даже без охуительно полезных фич, которые не успели занести, на этом языке написан весь мир и продолжает писаться, и в том числе авангард технологии (ИИ)? Это ли не доказательство, что база у языка мощная и позволяюющая сделать что угодно?
>Он пустой и не развивается и не развился в том темпе котором он нужен, поэтому и пошел нахуй и он неизбежно будет идти постепенно нахуй и вытесняться другими языками.
Нихуя Коуп. Растотрун, ты?
> за то что он распостранен
какая заслуга cmake в этом? если все начнут собираться питон скриптами будешь перед питон вытанцевывать какой он классный
Весь мир написан на джаве и сишке. Плюсы тоже есть, но все от них отказываются, весь бигтех ушел от плюсового кода. А пиздеж в том что это минимальный язык для строительства своих "эффективных" лисапедов. Нет, это не так. А если б было так, то нахуя развивать его в сторону фич которых требует продакшн? Все же все равно пишут свои реализации
симейк это не билдсистема, сколько можно повторять вам ебанутым? Как ты собрался зигой те же языковые файлы собирать? А точнее даже не собирать а создлавать сценарий сборки с кэшированием и мониторингом изменений в файлах.
Костыльные пре-билд скрипты которые предлгается писать на зиге.пидорасте это даже не смешно.
Сборочная система зига и пидораста это замена аутомейк + статичный конфиг проекта, это подражательство ноде-пипу которое в системных языках не работает, не состоят приложения из одного только кода программы.
О, вспомнил. Собирал как-то чужой проект сделаный под Conan, вот эта тема удобная, красивый сайт где можно посмотреть все либы, сами либы обновляются. А потом полез в этот vcpkg, говно какое-то, сайта нет, либы протухшее говно сколько-то лет давности, заброшенное запустение.
>Как ты собрался зигой те же языковые файлы собирать? Никак, для этого должен отдельный скрипт быть. Зачем месить комбайн из говна и палок? Ну можно еще функцию управления кофеваркой добавить, а хули нет?
Какой комбаин, шизик, чем проект собирать прикажешь?
>Что происходит, когда мы вставляем символ в середину текста в текстовом файле? Все байты следующие за этим символом смещаются вправо?
Тебе именно текст надо редактировать? Тогда есть много всяких вариантов. Например:
https://en.wikipedia.org/wiki/Gap_buffer
https://en.wikipedia.org/wiki/Rope_(data_structure)
Прочитал недавно C++ High Performance, сука пиздец еще хочу подобного, там про 20 стандарт и всякие фишечки, рикаминдую
>понимать хотя бы вскользь все же
да что конкретно то понимать?
без воды можешь пример привести
понятно что прощупывал, это же собеседование
какие-то очевидные абстрактные тейки прогнал
Где ты тут абстракции увидел? Это самое что ни на есть прикладное понимание для написания корректного кода. Если ты никогда про уб не слышал ничего, как ты собрался код без уб писать? Ну ладно ты свои лабы ковыряешь, а если ты проект пишешь за деньги, потом ты съебешь, кто твою срань которая в хуй знает какой момент падает будет дебажить? Тебя потом найдем и под шантажом позора перед новыми коллегами пойдешь отлавливать
void ⚹ это не указатель на хтоническую пустоту как показано на рисунке, это наоборот сущность, которой открыты все дороги, она может стать кем угодно.
А вот есть тип данных void, с которым нельзя создать перменную, но который может быть типом возвращаемого значения функций, это реальная пустота.
>build.zig
Ебал в рот это говно, там просто киломитеровый в плане LoC получается файл, нахуя это если можно просто на CMake было делать?
>замена аутомейк
Автомейк - это плагин, пчел, такой системы как автомейк не существует, ты не шаришь.
Ебать шиза. Чел любой указатель - просто указатель на начало памяти. Все.
> Нейронки запрещены на работе.
Не повезло. Надеюсь хоть Интернет разрешен.
> Современные нейронки такое себе, часто галлюцинируют, ошибаются, не видят каких то очевидных вещей.
Ага, а искать 2 часа ответ на стэковерфлоу, который также может быть ошибочным это гораздо лучше.
> абота с файловой системой только к 17 появилась
Спорное конечно решение, я хоть и пользуюсь, но быстрее нативного решения в виде API операционной системы ничего нет.
А ты же долбоеб, и при сипипи ничего не знаешь. Работа с файловой системой уже была много леи в виде разных библиотек, boost в том числе. То есть решения тестируют на boost, если оно прошло проверку временем переводят в стандарт. Ты же чучело вообще нихуя не знаешь
>Автомейк - это плагин, пчел, т
какой еще плагин, шизик, это программа которая генерирует мейкфайлы из мета-шаблонов.
Синтаксис шаблонов аналогичен qmake, а структура аналогична cmake - в каждой папке создаешь Makefile.am а на топ уровне пишешь:
projectname_SOURCE += main.c
projectname_HEADERS += myapp.h
SUBDIRS += src lib doc
почувствуй что называется разницу.
И все бы ничего но нужен еще autoconf что бы генерировать env переменные и еще дюжина программ для всякой остальной хуйни и все равно будет чего то нехватать.
Симейк куда как более всратый и сложный, но если ты его одолел он тебя наградит отсутствием лишних говен в папках, чистенькими настраиваемыми логами, кросс-платформенной сборкой, в целом грамотной линковкой/сборкой.
Есть вроде как мизон который делает синтаксис примерно как в аmake/qmake но на питоне и с генерацией в симейк, но его надо через пипку устанавливать, хотя конечно если проект требует наличие питона то не вижу препятствий неиспользовать лучше его.
> Тредовцы, а в каких сферах вы работаете?
Безопасность, в основном связана с банками. Но я в Испании живу и работаю на американскую фирму.
ml, dl, signal processing
Эмбедед
Пизжу в интернете что 500к наносек, а на самом деле не работаю, мне сестра просрочку из пятерочки привозит ну и на ее бонусы в маркете всякую хуйню покупаю. Чайник, кроссовки, батарейки, конденсаторы.
Авионика.
В всж сфера в плачевном состоянии, но деньги платят в некоторых местах. Куда перекатываться, как упрусь в потолок по сотыгам, пока хуй знает.
Так в кодописании везде есть непреодолимый потолок, куда ты перекатываться собрался? Конечно есть аномальные вакухи, где готовы платить именно за конкретного человека с конкретной экспертизой, но не думаю что такое разумно вписывать в среднюю статистику. Интересно даже сколько у тебя, мне кажется ты получаешь так же как и веб макаки, а ответственности, профпригодности и ебаний головы в бесконечность больше. Такая вот реальность плюсовая
>Так в кодописании везде есть непреодолимый потолок, куда ты перекатываться собрался?
Очевидное лидство. Ну или что блоее органично в контексте обсуждаемой сферы начальник. Ну и потолок это сотыги 4, да? На жизнь должно хватить. Но это в текущей конторе маловероятно, поэтому вопрос в том, куда крестомакака вообще податься ещё может.
>Интересно даже сколько у тебя, мне кажется ты получаешь так же как и веб макаки
У меня среди знакомых только один фронтендер и получаю я раза в 2 больше. Ну и в целом выше веб-макаки дефолтной.
> а ответственности, профпригодности и ебаний головы в бесконечность больше. Такая вот реальность плюсовая
>Это больше в голове у тебя всё, чем в реальности. Я после универчика с кайфом залетел.
>projectname_SOURCE
>projectname_HEADERS
поубивал бы нахуй за эту гениальную идею с суффиксами) и префиксами)) это же пиздец удобно парсить имя переменной и не дай бог тебе где то опечататься
ща вспомнил как выглядел автомейк проект на два десятка таргетов аж хуево стало
У джава мидла в бигтехе вилка 200-300к, у сени 300к и в зависимости от проекта, как правило бывает 370к-400к, но есть и такие кто и до 500к добивает. Всякие техлиды и крутые спецы на 17 грейдах и по 700к получают, предела нет. Но это все домены не связанные с железками. За железки в рф никто никогда денег не заплатит, потому что это наружу не продается и существует только на внутренние дотации. Так что как тебе заработать денег? Поучаствовать в распиле, начальником только да. Наверное если ты еще мидл+, то возможно не поздно поменять домен и идти грести в бизнес, скорее всего не на плюсах, потому что мне кажется ты получаешь все же меньше веб макак
неиронично ощутил тревогу и чувство собственной ничтожности и непознаваемости мира, когда первый раз открыл файл на си и прочёт слово void
Это нормально, но лучше ассемблерный код не открывай
Потому что спрос на неё непосредственно зависит от состояния сферы самолётостроения.
Как хорошо, что я начинал с сишки и void писал во второй строке хеллоуворлда, причём аж два раза.

аутоконф и аутомейк это разные программы которые делают разные вещи, ебучий ты долбоеб
У них даже разные авторы
И нет ни одной бизнесовой. Все это говноинтеграторы, кутешные заводчане и прочие несчастные. Наверно потому они все и делают говно потому что на плюсах все пишут лол. Типа логика такая, если уж нам все равно денег не платят, то давайте хоть в редакторе себя развлекать говном всяким
>строят же мс21, суперджет, ту214, ил96 (не уверен)
Первые два серийно так и не начали производиться. Суперджет производился одно время, но на иностранных компонентах. Superjet new так и не начал летать и перевозить пассажиров. Мс21 тоже.
Ту214 и ил96 производятся очень ограниченными сериями, буквально по 1-3 самолета в год.
>Суперджет производился одно время, но на иностранных компонентах. Superjet new так и не начал летать
Там уже около 20 почти готовых бортов Superjet New стоит без двигателей, ждут когда двигатель будет готов. Двигатель уже доделали, вроде на прошлой неделе был первый полет с ПД-8.
У импортозамещенного МС-21 в этом году первый полет, со следующего года серия.
>не начали производиться
А как это связано? Работа-то идёт. Тебе авионику на земле писать надо, а не в воздухе.
Я в 2017 году был на собесе недалеко метро аэропорт в конторе, которая софт для иркута писала. ПРоизвели впечатление неплохое. КОллектив молодой. Но выглядело всё очень скромно. Я тогда 80 или 70 запросил. Но я очень скромный был. МОжет, можно было и больше. Там начальник прям выдохнул, когда я цифру сказал. И неприятно потом добавил: да-да, вам нужно работать и учиться, чтобы не быть низкооплачиваемым специалистом, что-то вроде такого. В общем офер мне дали сразу. Но я не прниял.
я к тому спрашиваю, что стоит мне сильно углубляться в эту тему или сразу к CUDA переходить.
буду благодарен любому совету, наставлениям
>анонсы часто ли вы используете SIMD функционал для распараллеливания на уровне данных?
В смысле интринсики? Смысла нет особого, только для каких-то отдельных алгоритмов, где скорость прямо очень важна. Сейчас компиляторы и так векторизуют неплохо. Для трехмерки, например, можно float4 делать (причем желательно отдельно стековую версию с выравниванием по 16 байт). Но это неправильный путь, правильный поперек считать, а не вдоль, т.е. не XYZ в одном регистре держать, а по компоненту в отдельных регистрах для нескольких векторов. Т.е. что-то вроде питоновского numpy использовать. Или сразу OpenCL, SYCL. CUDA, кроме очевидного вендор-лока, плоха тем, что сейчас даблы есть только на некоторых топовых ускорителях. На рядовых видюшках даблы могут в 64 раза медленнее считаться. Для многих научных расчетов нужны именно даблы, и их сейчас быстрее на CPU считать.
Дата-инженеры всегда так пишут, у них и однобуквенные переменные с циферками, и копипаст вместо написания функций и циклов, да и весь код выглядит так, будто переписали бумажку с расчётами на питоне. Они же и в питон пришли из экселя и матлаба.
Тогда уж импортить в месте использования давай по красоте
брат это не SIMD.
там в основе этих библиотек лежит CUDA или OpenMP, или что еще,
но точно не SIMD
ты немного не так понял брат
>В смысле интринсики?
да
>Сейчас компиляторы и так векторизуют неплохо.
ты имеешь ввиду параллельный STL?
почитал про SYCL, выглядит мощно. а на практике?
вообщем спасибо за развернутый ответ, буду дальше изучать
>Сейчас компиляторы и так векторизуют неплохо.
Очень ограничено. У компиляторе нет информации о размере массивов и выровненности данных. Он даже не может доказать что два массива не указывают на одно и то же.
Нужно как минимум делать ему подсказки, а как максимум делать профилировку и переписывать циклы в линейную обработку, ну и в конечном итоге просто расчехлить интринсики, написать реализации для SSE AVX AVX2 NEON и завернуть это все в динамическое определения набора инструкций у машины пользователя (как у ffmpeg и 7zip), потому что компилятор принципиально не будет использовать все имеющиеся наборы инструкций так как они не будут работать на всех имеющихся x86_64, можно его заставить но тогда если ты будешь сам этим пользоваться, либо тогда придется собирать разные бинарии под sse avx и generic
> потому что мне кажется ты получаешь все же меньше веб макак
Удовлетворяя твой интерес: где-то в районе 200к, чуть меньше. Ну я и не мидл+ никакой. Опыта чуть меньше 2 лет. Так что я хотел бы дальше веслать на стрёмной поделке бьёрни. Но из всж компаний я хз дальше где можно вырости до бешеных сотыг. На ум только двагис и яндекс приходят.
>Очень ограничено.
Сейчас уже более-менее. Раньше компилятор совсем хлебушек был:
https://godbolt.org/z/qTMaaYzMa
https://godbolt.org/z/WqKa7YbWv
Приходилось вот такое на интринсиках делать, а сейчас и так сойдет в большинстве случаев.
Кстати, у GCC и clang есть расширение для векторизации, можно вообще без интринсиков делать, и оно будет целиком через регистр передаваться:
https://godbolt.org/z/64vo7e64q
Ты охуеешь, но так называемые интринсики реализованы через эти самые расширения.
Он давно простые циклы векторизует. Вот, например сумма массивов с размером кратным 8.
https://godbolt.org/z/eM9soTj9K
Если убрать кратность 8, то добавятся куски, где добирается некратный остаток. Если убрать restrict - добавится проверка на алиасинг.
Тоже векторизует, также считает кусками по 8, потом добирает одиночными:
https://godbolt.org/z/a695f5bcP
По восемь - это оптимизация под AVX, где 256 битные регистры. Там это будет одно чтение и фьюз двух 128-битных операций, а для старых архитектур ничего не изменится.
а чо по ymm?

1280x720, 0:05
— C++
Дженсен Хуанг, глава компании Nvidia
Он дебил? Ему по должности не положено знать, что такое C++. Он бы ещё о работе старшего дворника рассуждал.
— Kакой язык программирования вы любите меньше всего?
— $$$
Дженсен Хуанг, глава компании Nvidia
в чем не прав?
Вопрос не в том, что любишь-не любишь, а в том, что альтернатив нет.
>либа обрабатывать фотки
зачем когда потные ебанашки с очками-линзами делают все это бесплатно ну либо за подачки от корпораций в лучшем случае?
и это еще хорошо потому что еще не до всех дошло что шлюхе показывающей пизду на вебкаме, необязательно платить
>были вакансии от NVidia
о, да, а еще в треде был нвидиа-кун который заявлял что за много лет они не взяли ни одного челика с hh кек
Не удивительно, сделать CUDA можно было только люто ненавидя кресты и специально делая всё как можно недружелюбнее и кривее. nvcc вообще литералли единственный компилятор, умеющий ловить сегфолты при компиляции кода, настолько это кривое поделие.
class MyClass {
cl::Device device; // или std::unique_ptr<cl::Device> device;
cl::Context context; // или std::unique_ptr<cl::Context> context;
cl::Queue queue; // std::unique_ptr ...
cl::Platform platform; // std::unique_ptr ...
// ...
};
вообщем храню все эти объекты на стеке, все правильно делаю?
да, я понимаю что сам класс получается раздутый...
Вообщем если объект "небольшой" и практически не меняется лучше на стеке держать?
Это не более менее это тупо самое примитивное что можно придумать, тут не нужны даже сложные алкгоритмы в компиляторе что бы заменить пачку перемножаемых флоатов в вектор. Пишешь цикл перемножающий байты или шорты и даже умный компилятор умеющий разворачивать циклы чтоб запихать элементы массива в вектор, не может без подсказок определить можно ли применять вышеописанное так как неизвестно ни количество итераций/элементов массива ни порядок обращения, может ведь быть и так что второй массив это тот же самый массив с некоторым смещением, компилятор не может такие случаи игнорировать иначе код будет нерабочим.
Я уж не говорю о том что твой пример вообще не нуждается в векторизации, скалярные операции они всяко дешевле, в двойне глупость когда ты складываешь вектор а потом достаешь оттуда значения на обычные регистры что бы что-то сделать, ну правда у тебя в примере это делается просто для распечатки, а так все функции с векторами работают.
Лучше на стеке, но может возникнуть проблемка с инициализацией
При вызове конструктора MyClass конутрукторы cl::Device, cl::Context и тд будут тоже вызваны, если тебе по какой то причине необходимо чтобы они инициализировались позже, то придется использовать std::unique_ptr не только его конечно можно
Неужели Borland C++ Builder?
>скалярные операции они всяко дешевле, в двойне глупость когда ты складываешь вектор а потом достаешь оттуда значения на обычные регистры
Арифметические операции над числами с плавающей точкой всегда работают на векторных регистрах, если у тебя не древний x87. Одно, четыре или восемь чисел - разницы нет - они будут одинаково быстро выполняться. Да и вытащить элемент из векторного регистра всяко быстрее чем, например, лезть в память, куда-нибудь на стек, даже кешированный.
Чел, ты асм вообще читать умеешь? В первом варианте clang 3.1 пары флоатов распаковывает в регистры, потом считает их поодиночке, потом упаковывает обратно в пары для возврата, получается сложение двух F4 - это больше 10 команд. Во втором варианте, где современный clang - он сразу считает парами, т.е. сложение двух F4 получается за две операции - сначала сложение XY, потом ZW.

>В первом варианте clang 3.1 пары флоатов распаковывает в регистры
Ты сам то его понимаешь его шизик?
Я может родной X86 ассемблер и с натугой понимаю, но блять упакованые то команды как можно не узнать?
Они мало того что риск-подобные, что сразу бросается в глаза, так они еще и плюс минус у всех с похожими патернами, тыкни в любую команду я скажу что она делает не заглядываая в доку.
Пиздец, конечно, как доска скатилась.
>но блять упакованые то команды как можно не узнать?
То, что там векторные операции в асме, не означает, что компилятор реально вектора умножает.
Если ты тупорогий такой, возьми листик, распиши себе построчно, что там происходит. Что приходит в функцию, что возвращается. И главное, что именно там четыре умножения делают.
>операции в асме, не означает, компилятор реально вектора умножает
>как доска скатилась.
Чат-жпт дауненок, ты?
Узнал тебя по шизойдным высерам
спасибо
>>20025
просто паралелю вычисления на GPU используя разные либы.
наблюдаю онлайн как видяха стонет через nvtop (доставляет).
вот начал с OpenCL, затем попорбую SYCL и CUDA
еще хотел попробовать вычисления на несколько GPU распаралелить, но встроеную AMD карту OpenCL не видит...
думаю может как то на виртуалку прокинуть, но чувствую бред получиться

Хули ты тут сидишь вообще, даун? Это для программистов доска, не для развозчиков пиццы.
Еще ведь хуйню несет с таким самомнением, мокрица ебаная. Надеюсь, мудофел, ты ко мне на собес попадешь когда-нибудь.
Зачем там плюсы? Подобные говноскрипты для автоматизации хуйни можно написать хоть на баше.
По производительности сейчас вплотную к куде только вулкан. Если не хочешь трогать кожаный высер, то только вулкан, но в нём бойлерплейта очень много для запуска твоего гпу-кода, ещё и память ручная.
>По производительности сейчас вплотную к куде только вулкан
это проверенная информация? вы уверены в том что говорите?
или это я проспал когда компьют пайплайны стали реально быстрыми?
Окей mulss это оказывается перемножение единичного значения вектора, для пакованых у них mulps
Пиздец у них блядушник в системе команд.

> это проверенная информация? вы уверены в том что говорите?
Да.
> когда компьют пайплайны стали реально быстрыми?
Когда шейдеры стали собирать в LLVM, а куда всё сидит на кривущем nvcc. Куда-графы всё ещё обходят пайплайны, в основном из-за быстрых бранчей и хорошей работы с памятью, но такими темпами вулкан скоро догонит их. Мобилки бустят всё это хорошо, им нужны нейросети, а там кроме вулкана нихуя нет универсального под гпу.
У тебя на картинке скоростьобработки токенов разных нейросетевых моделей в разных форматах.
Ну и да, по ней получается что cuda больше неактуальна
KHR_coopmat это я так понимаю родная вулкановская матричная библиотека для шейдерного языка. А вторая вендорная.
В любом случае про куды-хуюды забываем, учим шейдеры
>Когда шейдеры стали собирать в LLVM, а куда всё сидит на кривущем nvcc
nvcc сам построен на LLVM, что, правда, не отменяет его кривости.
К тому же никто не запрещает использовать PTX бэкенд шланга с libc++. Ну и куду тоже надо уметь готовить: не хуячить мегакернели и оптимизировать.
есть ли удобная альтернатива исключениям?
К примеру у меня в коде много мест, где могут возникнуть ошибки.
Я хочу просто создать класс
class ErrorMessage(string message) {
cout << message ...
return -1};
и бросать его в main()
Так сойдет? или это уже моветон?
блоков try... catch в main у меня будет несколько (один для инициализации объектов и так далее...)
std::expected
https://en.cppreference.com/w/cpp/utility/expected
Посмотри только про него статьи, там очень сомнительные результаты по перформансу для happy path.
Ну и советую глянуть какие-нибудь лекции по различию ошибок и статусов. Для первых кинуть исключение нормальная практика, для вторых нет.
> у меня в коде много мест, где могут возникнуть ошибки
Вот по этой причине и соснёшь, а уж чем обмажешься для отлова не важно. Надо локально всё обрабатывать на низком уровне, уменьшая количество мест в коде, которые могут сломаться, а не просто прокидывать ошибку наверх, в надежде что что-то обработает её. Прокидывание наверх ошибок значит что в случае возникновения ты будешь рестартить кусок когда с ошибкой, но это хуйня полная, лучше чекать до момента где может что-то пойти не так, а не последствия поломки фиксить.
https://ericniebler.com/about/
На оф сайте ссылка ру спп кона ведет на казино, лел
> Аннотации времён жизни - это способ сообщить компилятору, как связаны между собой разные ссылки, чтобы он мог гарантировать безопасность памяти.
Сложно, наверное, без этой хуйни?
Исключения придуманы не для самоподрывов, а для того чтобы на минном поле, в виде какой-то сторонней библиотеки или ввода со стороны пользователя иметь возможность вернутся хоть к какому-то состоянию стека и продолжать работать.
Пиздец хуйня. Они и назвыаются так - исключения, потому что ситуация исключительная
>Они и назвыаются так - исключения, потому что ситуация исключительная
Это в си (алголо) подобных языках и их идейных наследниках так. Во многих других нелокальный выход из функции - чуть ли не базовая языковая конструкция. Форт с rdrop, блоки в smalltalk, ну и вся функциональщина с CPS, как пример.
Архитектура процессора от языка не зависит. В си нету исключений потому что в железе нету никаких локальных выходов или что ты там себе придумал, надо городить обработчик сигналов через ядро ОС. И так и во всех описанных тобой языках реализовано на уровне библиотек, включая плюсы.
>В си нету исключений потому что в железе нету никаких локальных выходов
В си есть setjmp/longjmp, в железе есть ret, jmp. Железо про функции ничего не знает, естественно, процу все равно в какое место программы переход делать.
>надо городить обработчик сигналов через ядро ОС
Только под виндой, и то не уверен, что они до сих пор SEH используют для исключений.
>реализовано на уровне библиотек, включая плюсы.
Чего ты несешь? В плюсах, джаве, шарпы эксепшены - часть языка, их в библиотеку не вынести.
Бывают аппаратные исключения, которые в крестах нативно поддерживаются, а вот в сишке всегда были костыли для них.
>нету никаких локальных выходов или что ты там себе придумал
Современный харкач: человек впервые слышит термин "non local return", но сразу лезет со своим охуенно важным мнением.
>че?
Для обработки исключения в общем случае не нужны никакие сисколы, надо пройти вверх по стеку и найти обработчик, который вызовет нужные деструкторы у всего, что на стеке лежит. Это в крестах. В какой-нибудь джаве можно тупо джамп делать, коллектор потом все соберет, что выделялось на стекфреймах. В сишке можно просто переходить на нужный адрес через longjmp, если не что-то не очистилось - сам лох.
>в железе есть ret
вот именно что есть просто возврат.
Возврат к предыдущей процедуре, никаких возвратов в какое то другое место системой команд не предусмотрено.
Все маняпуляции с адресом на стеке это хакерства и UB.
Это во первых, во вторых - исключения подразумевают полную запись стека и отлов конкретного сигнала в конкретном месте программы, у тебя прерывание программы происходит внезапно что ты там собрался возвратом делать шизойд? Тебе надо стек откатить полностью.

В терминах Интела, прерывание - это асинхронное событие от IO, а эксепшен - синхронное событие при ошибке. Пикрил пример эксепшенов, у интела их сейчас 32 вроде. В проце при переходе в защищенный режим есть таблица обработчиков эксепшенов, куда проц прыгает при получении его. Ты же не думаешь что ядро само чекает на сегфолты/флаги каждое обращение к памяти или операцию?
Алсо, SEH в винде - это доступ из юзерспейса к ним, оно медленное как раз из-за костылей прокидывания в юзерспейс и создания структуры с инфой об эксепшене. При аппаратном эксепшене обычно кладётся адрес следующей инструкции на стек и переходит по адресу обработчика эксепшена в ядре. Кресты в теории умеют мапить эти эксепшены в нативные крестовые эксепшены, если ты на голом железе пишешь. И это только на х86, на других архитектурах ещё более извращённые реализации аппаратных эксепшенов есть.

Это сигналы прерываний долбоеб, причем здесь "исключения" (в общепризнанном понимании)?
Шизик, ты сначала объясни что ты подразумеваешь под исключениями или сходи погугли что народ под ними подразумевает, а потом приходи рассказывать про то что там было на васике подмикроконтроллеры.

Чел, абстрактные сигналы тебе уже ядро посылает, зачем ты вообще линукс тащишь сюда. Ещё раз - аппаратные эксепшены это не прерывания, это ошибки при выполнении инструкции. Прерывания - это асинхронные события, они никак к инструкциям не привязаны. Пикрил из мануала интела по архитектуре х86.
> причем здесь "исключения" (в общепризнанном понимании)?
Это и есть эксепшены в классическом смысле - при ошибке выполнения инструкции выполнение передаётся обработчику эксепшена.

>Ещё раз - аппаратные эксепшены это не прерывания, это ошибки при выполнении инструкции
Бля это опять ты, наркоман.
По кукарекам про ядро винды можно было догадаться.
съеби уже отсюда, дурачек, хватит хуйню ходить высирать, найди себе полезное занятие.
Клован, ты сейчас буквально с интелом споришь, говоря что их эксепшены не эксепшены. Я тебе даже скрин притащил, где чёрным по белому написано в чём эксепшены от прерываний отличаются. Читай манул и съёбывай нахуй.
https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html
Спорить с шизиками это не мой профиль. Я тебе предложил пойти куда нибудь в другое место, в /hw/ например, рассказывай там что там у интела и как.
Здесь про код, который ты ни читать не понимать не умеешь.
Ты код на бумажке пишешь, лол? Заебись вебмакаки понабежали в системный язык, даже не знают что такое эксепшены и как они работают.
ну вот и уебывай, жироебина.
Чел, экзэпшен типа class HyiPizda : public std::exception {...};
throw HuiPizda - процессору, арму, интелу и даже эльбрусу похуй. Ядру ос - похуй. Тут нет никаких экхепщенов в регистре mxcsr или других, нет прерываний аппаратных. Это чисто языково-компиляторская хуйня

>СЛЕВА ДЕРЕВО
>@
>А ДАЛЬШЕ НЕ ДЕРЕВЬЯ
Раньше считали это проблема машинного интеллекта. Как наивно. Оказывается у биомусорного интеллекта те же проблемы.
Чел спокнись, ты обосрался на весь тред.
Ты приходишь в с++ тред пообзываться? Или утчонить - что сам не понимаешь?
Если я хочу подменить функцию SetLastError, чтобы сразу падать с кодом ошибки, или хукануть ее, я ебнутый?
я помню случай, когда интал высрали свои теории охуительные насчёт какой-то технологии, но, по итогу эта теория в действительности оказалась поносом индусов на практике, которая работала криво и метод выкинули в помойку просто.
как-же так интел-богов попустили, что же делать против неоспоримых...
спор ниочём
Шиз, при чём тут это? Тут чел не понимает, что интел пишет в своей доке. Интел тут ни при чём
аноны, почему так? как исправить?
пытаюсь создать 6 точек с координатами p и r . хочу чтобы они были немного направлены под 45 градусов примерно к горизонту, поэтому решил к координатам прибавлять небольшое случайное число, а конструктор один раз сгенерировал число и при каждом запуске подставляет его. сранд как видите добавил.
Point::Point(uint id)
{
srand(time(NULL));
int x = (rand() % 10);
p = id + x;
int y = (rand() % 10);
r = id + y;
std::cout<< "Запустился Point("<<id<<") "<<"x = " << x << " y =" << y<<"\n";
}
Пошла нахуй дурочка, не могущая в логику. exception c++ != exception выставленный процом в регистре
дада. дурачок дорвался до volume 1
исправил с помощью АИ , видел я в интернете библиотеку <random> но нигде не было написано по русски как диапазон поставить.
3 года пишу коммерческий код на плюсах. И такая хуйня постоянно случается
>>28012
Первое правило С++: никто не знает С++.

Производители транзисторов в сговоре с производителями процессоров, очевидно же.
Короче есть класс и я хочу через константные шаблоны (или как это правильно называется) по максимум в него захуячить
enum class PrimitiveType {
Rectangle,
Triangle,
Circle,
Cube ect..
};
template<PrimitiveType T>
class Primitive {
// эти типы-enum также пойдут в эти классы
std::shared_ptr<Texture> texture;
std::unique_ptr<Buffer> buffer;
//....
// Метод для получения вершин в зависимости от типа примитива
std::vector<float> getVertices() const {
if constexpr (T == PrimitiveType::Rectangle) {
return { ...data
else if constexpr (T == PrimitiveType::Triangle) {
return { ...data
//.....
также хочу с методами сделать
void draw() {
if constexpr (T == (PrimitiveType::Triangle) | T == (PrimitiveType::Rectangle)) {
texture->bind();
//...
}
else if constexpr (T == PrimitiveType:: ...
//...
в итоге получиться такая вот простыня. Насколько это говно по дизайну или в целом cгодится? Ну или хотя бы на этапе проектирования пусть будет так, когда уже все виды объектов и операции с ними прояснятcя, то уже реализовать через более модный/современный шаблон, там фабрика типов или какие там есть.
Короче есть класс и я хочу через константные шаблоны (или как это правильно называется) по максимум в него захуячить
enum class PrimitiveType {
Rectangle,
Triangle,
Circle,
Cube ect..
};
template<PrimitiveType T>
class Primitive {
// эти типы-enum также пойдут в эти классы
std::shared_ptr<Texture> texture;
std::unique_ptr<Buffer> buffer;
//....
// Метод для получения вершин в зависимости от типа примитива
std::vector<float> getVertices() const {
if constexpr (T == PrimitiveType::Rectangle) {
return { ...data
else if constexpr (T == PrimitiveType::Triangle) {
return { ...data
//.....
также хочу с методами сделать
void draw() {
if constexpr (T == (PrimitiveType::Triangle) | T == (PrimitiveType::Rectangle)) {
texture->bind();
//...
}
else if constexpr (T == PrimitiveType:: ...
//...
в итоге получиться такая вот простыня. Насколько это говно по дизайну или в целом cгодится? Ну или хотя бы на этапе проектирования пусть будет так, когда уже все виды объектов и операции с ними прояснятcя, то уже реализовать через более модный/современный шаблон, там фабрика типов или какие там есть.
Я не буду это говно читать.
Бля когда обезьяна уже добавит разметку нормальную для кода. Неужели это так сложно...
Потому что транзисторный эффект нужен, чтобы малый ток большим управлял. Потому что входы кушают энергию на шине, а входов много.
https://www.fryazino.info/news/334
https://bigenc.ru/c/effekt-shokli-alioshina-4141b8
там сложно, ты бы даже с разметкой не понял
>Только сегодня узнал что есть такое ключевое слово как thread_local и добавлено оно аж в 11 стандарте.
Ну тебе может не очень надо было. Как новый стандарт выходит, обычно много статей выходит, что там нового. Нужные вещи как-то сразу схватываются. А так, очень удобно бывает где-то в функции сделать static thread_local std::vector для промежуточных расчетов.
>Почему в качестве переключателей в схемах используют транзисторы, а не диоды?
На диодах невозможно построить базис в булевой логике. На транзисторах, два транзистора - это штрих Шеффера, NAND gate, из которых можно строить произвольные логические схемы. Можно делать смешанную диодно-транзисторную логику, но для функциональной полноты все равно транзисторы будут нужны.
Не очень понятно, что ты хочешь делать. Обычно вершинам не надо знать, какого они типа. Т.е. прямоугольник - это просто четыре вершины, круг - N вершин, и каждый примитив просто возвращает интервал вершин в каком-то буфере. Т.е. треугольник 1 - вершины [0,3], треугольник 2 - [3, 6], круг 20 - [100-280] и т.д. В текстуре отрисованный примитив - это или прямоугольник, или полигон, тот же набор вершин.
В ООП это не так делается, тебе не нужны темплейты:
class Primitive {
std::shared_ptr<Texture> m_texture;
std::unique_ptr<Buffer> m_buffer;
public:
_ auto getTexture() const { return m_texture; }
_ auto getBuffer() const { return m_buffer; }
};
class Triangle : public Primitive {
triangle privats
public:
_ vec<float> getVertices() {
_ _ return vec<float>(getBuffer()->data, getBuffer()->data + getBuffer()->size );// от балды
_ }
}
А вообще пиши ка лучше на питоне, ты явно не тот инструмент взял, шаредпоинтеры вообще понимаешь что это и зачем? Судя по всему (по названию переменной) не особо
Я тебе и предлагаю язык сменить раз ты нихуя не понимаешь что ты городишь.
Вон раст иди изучай, хоть такая польза от него будет.
Достаточно было бы написать cppb build и проект собрался. cppb run и сразу запустился.
Потому что нет единого компилятора и единого способа управлениями зависимостями. В других языках они есть, поэтому там и утилиты такие тоже есть. Так что продолжай жрать, что дают, симейклист сам себя не напишет.
В С++ я вообще не бум-бум, до этого только на Питоне кодил, мне бы пошагово показать-описать как написать на нем программу, хотя бы просто с выводом, откомпилировать ее, а дальше я сам? Буду благодарен.
У меня есть build.sh в проекте. Он собирает, запускает тесты, бенчмарки и деплоит доку. Придумал я его за полчаса. Ты так не можешь?
Как вы заебали со своим нытьём.
Пижи в любом текстовом редакторе, компилируй через командную строку если проект небольшой, либо смаком/баш скриптами/мейкфайлами, тут уж кто как дрочит. Зачем пердолить некроговно это?
У тебя билд сш, у кого то в докере какая то хуйня, другие пидорасы не стали ждать и свою сппб написали, у десятого тулчейн со скриптами в всл, сотый просто в симейк все нахуй ебанул даже выкачивание либ. Тебе пояснять нужно почему это всё хуйня?
>Резистор-диодная логика есть
Есть, но на ней можно сделать только И и ИЛИ. Элемент НЕ не сделать, поэтому она не полна, и произвольную схему невозможно построить.
Не буду, это риторический вопрос. Если ты этого не понимаешь то нам не о чем будет побеседовать, так что и нахуй

Ну ты никогда других технологий не видел что ли? Посмотри другие бекенд языки
Слив засчитан.
>Посмотри другие бекенд языки
Если с джавой или шарпом сравнивать, то пусть лучше будет build.sh.
бороться с этим бесполезно
Почитай про single static assignment form, и как на основе SSA компилятор оптимизации делает. Там все достаточно просто для понимания.
cmake стандарт де факто.
Если в проекте нет ридми, где расписаны зависимости и процесс сборки, то это мусор.
Так чё, симейк уже научился парсить ридми?
Симейк у себя там внутри определиться не может что стандарт, а ты говоришь стал. То пэкэдж конфиг, то конан то фетч контент то файнд для зависимостей. Каждая либа это уникальная девочка к которой нужен свой подход. И это мы еще не подошли с вопросам сборки и тестов, просто зависимости подключить это уже цирк с конями
> Почему за столько лет не придумали утилиту cppb, которая бы автоматически собирала проекты?
> Достаточно было бы написать cppb build и проект собрался. cppb run и сразу запустился.
make, cmake, qmake, qbs, Boost.Build, meson и так далее - тебе мало что ли?
В технологиях стандарты играют очень важную роль, потому что они позволяют решать бизнес задачи эффективно, быстро и понятно. Так что в этом плане лучше иметь один хуевенький стандарт чем стони очень ахуенных. Так например было с развитием интернета, появился тсп айпи и все это очень быстро разрослось до огромных масштабов. Да при этом куча академиков и прочих задротов негодует мол слишком много хуйни вы высрали ребята, стандарт говно, неправильный и не соответствует нашим перфекционистким ожиданиями, вот мы придумали кучу других получше. Но кому не похуй на мнение этих задротов? Главное текущий стек решает денежные вопросы на том уровне который требуется, менеджерам и клиентам все нравится, и если ты не тупой то ты понимаешь на каких людей ориентироваться в этом вопросе. Вот плюсовики люди немного глуповатые и аутистичные. Они не понимают. Поэтому их язык и проиграл в эволюцию
Cmake и Git, это во первых.
Во вторых он не хуевенький, он ведь не только сборку обеспечивает но и позволяет интегрироваться IDE вроде QtCreator или даже VS Code. В последнем что бы тот же раст использовать надо и модуль установить и тулчейн.
Только год назад поддержку в студию завезли. А что было раньше в консоли, не похуй ли, там этого консольного говна тысячи, никому не нужного.
>3 года пишу коммерческий код на плюсах
ого! дак ты уже не гадишь в штанишки и мамка довольна!
До этого специально не завозили, чтобы разрабы не могли слезть со студии и MSBuild.
А плюсам все 45, а сишке из которой вся эта инфраструктура росла все 55. Вот и думай головой
>чтобы разрабы не могли слезть со студии
А надо ли слезать с единственного комфортного острова посреди океана говна? Чтобы что? Давиться вимом? Или блокнотом на браузере? Последний кстати тоже от Майкрософт.
>собирала проекты
насколько плоха идея собирать проект с инклюдами? у меня 3 файла пока, я их просто заинклюдил, в терминале просто выполняю
g++ main.cpp
>насколько плоха идея собирать проект с инклюдами?
Для маленьких проектов - норм. Минус в том, что проект каждый раз пересобирается заново, это может быть долго когда количество файлов в проекте увеличиться.
Но операция int* x = new int[10] создает область памяти без имени, однако которой мы можем пользоваться через указатель.
Как назовем такие области?
Мне показалось сложно
https://www.opennet.ru/opennews/art.shtml?num=63062
Пакетобляди соснули.
Прикольно
правильно нах надо. лучше ебануть в функцию автомат вручную как деды воевали
switch(status) {
case INIT: ...
case WANT_READ: ...
case RETRY: ...
...
> Ты быдло, если так сеть прораммируешь
А ты как сеть погромируешь? Небось openssl используешь? А там в сорцах именно вот так, лол.
>А там в сорцах именно вот так, лол.
Покеж...
>А ты как сеть погромируешь?
Я прграммирую как игорь сысоев в nginx.
Начитывание определённого куска данных и пототм замена хендлера чтения на следующий. Причём текущий активный хендлер сам по себе несёт информацию о состоянии обработки входящих данных и заменяет вот такие switch. В чём минус свитчей? В том, что в зависимости от состояния у тебя возможны ещё ошибки, ошибки формата данных, таймауты, и в засисмости от текущего состояния соединения все эти действия тоже требуют разной обработки. Меняя хендлеры, ты можешь в одном месте В ОДНОМ ХЕНДЛЕРЕ вместе иметь логику обработки входящих данных, обработку таймаута или разрыва соединения и прочее. ВСЁ В ОДНОМ МЕСТЕ
Причём тут автомат вообще? Иди учи матчасть и не позорься.
> как обычно разрабатывают оконные приложения?
На сишорбе, а потом склеивают с крестами с помощью технологии C++/CLI.

Подробнее
ты б еще спросил как написать статический метод std::source_location::current()
и почему иницализер лист очевидно являясь синтаксической сука продукцией не работает если не заиклюдить <initializer_list>
Очевидно потому в комитете куча дегенератов которые в первую очередь воют с самими собой у них там разные фракции уровня рыба рак и щука , потом воют с теми кто пишет на плюсах очевидно что сами комитетчики не пишут и только потом делают плюсы.
cppreference.com
Книги по языку вы серьезно блять? Я понимаю там книги по многопоточности или вот по той же асинхронщине с корутинами, по работе с 2D данными, по криптографии, по компиляторам в конце концов.
Но блять книги по языку это для кого и для чего? Для преподавания в вузе что ли, что бы типа ректор или кто там мог какую то теорию преподавать.
> cppreference.com
ты типо совсем додик челу при изучении языка советовать справочник?
> Книги по языку вы серьезно блять?
у тебя с возрастом совсем мозги отшибло и уже забыл как сам учил?
неожиданно чтобы хотя бы начать программировать нужно научиться азам языка и программирования в целом

Вот правильное издание.
Я ничего никогда не учил, у меня были сперва навыки в регулярных выражениях и css, строго для моих небольших задачь, нашел примеры начал играть начал разбираться как это работает и все.
Потом все таки пришлось освоить JS, хотя он довольно сложный и громоздкий особенно его старый стандарт, тем не менее его плюс в том что не нужно ставить тулчейны и осваивать сборку что бы увидеть результат своего говнокодинга, а так же все таки плюс скриптовых языков в том что они сразу показывают где ты обосрался, тогда как тот же си выдает сигментейшн фолт во время работы и поди найди где косяк.
Тулчейны их установка и настройка это то что не дает вкатится и что должно быть в учебниках. От самого простого до самого сложного, с примерами и объяснениями что куда вкладывается и какие условия должны быть, что такое ABI что такое шаред и статик либы, короче все вот это. Про сам язык я вообще хз что там можно читать, если у тебя нет конкретных задачь которые тебе надо решать при помощи выбранного инструмента. А если есть то учебник это самый неудобный источник информации для интересующих тебя вещей, мало того что они там могут быть размазаны по всему учебнику, так еще их там может и не быть или быть с пол чайной ложки.
Если да, то как часто: на регулярной основе, по ситуации или может совсем не юзаете?
И какой лучше, втроеный :
add_compile_options(-fsanitize=undefined,address)
или лучше сразу Valgrind хуячить?
Учебник лучше, т.к грамотно составленный учебник учит новичка лучшим практикам и советует каких плохих паттернов надо избегать.
Только при разработке и отладки.
Санитайзер и валгринд разные вещи, адрес санитайзер вроде в неинициализированные указатели свинью подкладывает, а валгринд ее подкладывает за пределами массивов.
>>31880
>учит новичка лучшим практикам и советует каких плохих паттернов надо избегать.
Ну вот для новичка это вообще ненужная и вредная информация. Вместо того что бы учиться писать код ты засираешь себе голову чужими предрассудками. Причем как правило на каком то мелочном уровне типа не используйте goto.
Бля в глаза ебусь.

Буду изучать по этой
Хорошая книга обстоятельно описывает весь язык с примерами, подводными камнями и т.п. По мурзилкам выучить язык можно, но это путь, что будешь наступать на все грабли и потратишь кучу времени на поиск ошибок, когда в книге это всё объяснено.
Хорошая книга тут ни при чем. У людей быстро теряется навык если это не базовая хуйня вроде ходить и на велосипеде ездить.
Если ты через пару лет сядешь за руль после сданного экзамена то это считай что ты нихуя и водить не умеешь, а в спорте практически везде так, особенно в профессиональном, если ты выпал на пол года, то это все, пизда, считай заново начинай.
В интеллектуальной деятельности все еще сложнее. Не можешь ты прочитать "хорошую" книгу и освоить такой язык как плюсы, подводные камни и начать его применять. Ты либо пишешь 5+ лет на крестах постоянно, читаешь статьи, смотришь доклады и нон стоп решаешь задачи, наступаешь на грабли и ищешь ошибки. Либо ты язык не знаешь. Хороших книг не существует которые бы научили тебя разработке. И такой подход применим к любой деятельности. Все самому надо делать, смотреть, запоминать, а не хавать пережеванное, тогда от тебя будет толк
Сходи к Столярову набери у него ведро темплейтов, за одно спросишь где он классы берет
Поясните за IO в конструкторе. Я правильно понял, что раз - он нарушил SOLID/SRP и два у него будет говняк в stdout при многопотоке?
Какие расширения принято использовать? Раньше вроде для си использовали .c и .h, а для C++ - .cpp и .hpp. А теперь встречаются .cxx, .cc и даже *.h.
Почему .hh, а не .hpp?
сложно ли с OpenGL пересесть?
в OpenGL так то ебки много, а в вулкане будет еще больше..страшно сука...
или в OpenGL это ебанутая ебка с сишным API и онлайн компиляцей шейдеров.
а в вулкане ебка хотя бы по фен-шую будет...
Да, Вижул поддерживает практически последние стандарты языка, в то время как ГЦЦ нет
>Чет смотрю вакухи и много где требуется знание DPDK. Но вилок на эти вакансии нет. Че там нормально платят? Или это говно на уровне кутов?
Это разработчики DPI, платят меньше среднего, да и сама деятельность зашквар

Я тебя не понял. А в чем зашквар, типо строители кибергулага? Ну хз, вот например вакуха, я конечно нихуя не понял что именно им надо и что они делают, но звучит как системный клауд нейтив. По идее хай тир работа.
Еще в каспе есть вакансия на sd wan, тоже вроде прикольные задачи на программируемые сети, я почитал это как раз именно бизнесовый проект на SDN, возможно конечно расширяемый до слежки гэбней, еще судя по репутации каспа, но по описанию там такого нет
читы на майнкрафт?
Dota 2
PUBG Mobile
Rust – (переход с DirectX на Vulkan)!
Mobile Legends: Bang Bang
и это только малая часть
уже не актуальная информация
Дурень. Вулкан литерали везде.
Происходит пикрил пускание жидкой подливы. Файла alias.hpp нет, но он есть.
В чём тут может быть подвох? Может быть проблема в папке? Нейронка не помогает. Умнику тонна нефти.
>Лично я не вижу особого смысла в языке. Мне кажется все в конце концов перейдут на rust. Весь смысл с++ это программировать микроконтроллеры
Ебать шизоидный поток бредней ИТТ
>Лично я не вижу особого смысла в языке. Мне кажется все в конце концов перейдут на rust.
Нахуя им это делать? Раст же язык без задач.
>Весь смысл с++ это программировать микроконтроллеры.
МК программируются на C, дятел.
>МК программируются на C
На Си++ тоже пишут, например для RISC V cpu, просто задач для этого меньше
Тогда ебись с путями
но а так вообще убери -Ivtu11 ты включил эту папку как место поиска заголовков и зачем то ее пишешь в инклюдах, это значит что препроцессор в папке vtu11 будет искать vtu11/inc/header.hpp
Раз уж ты выбрал этот путь настоятельно рекомендую следующее:
Или включай заголовки без путей вообще (за исключением системных типа <sys/types.h>), заай полные пути поиска через -I.
Или откажись от -I вовсе а в файлах пиши #include "../inc/head.hpp" то есть пляши от папки где лежит .cpp исходник в ту сторону где лежит от него заголовок.
Тогда проблем не будет.
Во-первых, какое значение имеет архитектура? Если вендор обычно выпускает конпелятор, то это конпелятор для C.
Во-вторых, каким надо быть ебанутым дебилом, чтобы тащить плюсы во встройку.
>Если вендор обычно выпускает конпелятор, то это конпелятор для C.
Ну и референсные либы для переферии и тп.
Потому что одного Си уже не хватит чтобы раскрыть весь потанцевал ядер RISC V
Подправил файл. Благодарю/
Теперь работает, однако почему разраб не мог подумать о такой ошибке?
разрабам пофиг обычно, пока не стрельнет
Не особо:
# объявляем с++ проект
project(vKOTun
VERSION 0.1
LANGUAGES CXX
)
# задаем стандарт
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# записываем все наше говно в переменные
set(SRC_FILES
"main.cpp"
"puk.cpp"
"ku/karek.cpp"
)
set(C_FLAGS
-O2
-Wall
-ffast
)
set(C_DEFS
-DDOLBOEB_MODE
-D_GNU_BARANKI
)
set(С_INCLUDES
"${PROJECT_SOURCE_DIR}" # корневая папка проекта (переменная генерируется симейком автоматически)
"${PROJECT_BINARY_DIR}" # папка сборки проекта (нужна что бы подключать генерируемые хидеры)
"${PROJECT_SOURCE_DIR}/vtu11" # что бы не писать в инклюдах путь до заголовка
"${PROJECT_SOURCE_DIR}/ptu129" # аналогично
)
# в конце скрипта
# задаем выходной экзешник:
add_executable(vKOTun ${SRC_FILES})
# далее -Iнклюдим список наших директорий
target_include_directories(vKOTun SYSTEM AFTER PUBLIC ${С_INCLUDES})
# далее опции компиляции и дефайны
target_compile_options (vKOTun PRIVATE ${C_FLAGS})
target_compile_definitions(vKOTun PRIVATE ${C_DEFS})
# далее линкуем либы (если они есть)
target_link_libraries(vKOTun PRIVATE ${C_LIBS})
# задаем скрипт
install(TARGETS vKOTun DESTINATION ${CMAKE_INSTALL_BINDIR})
Не особо:
# объявляем с++ проект
project(vKOTun
VERSION 0.1
LANGUAGES CXX
)
# задаем стандарт
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# записываем все наше говно в переменные
set(SRC_FILES
"main.cpp"
"puk.cpp"
"ku/karek.cpp"
)
set(C_FLAGS
-O2
-Wall
-ffast
)
set(C_DEFS
-DDOLBOEB_MODE
-D_GNU_BARANKI
)
set(С_INCLUDES
"${PROJECT_SOURCE_DIR}" # корневая папка проекта (переменная генерируется симейком автоматически)
"${PROJECT_BINARY_DIR}" # папка сборки проекта (нужна что бы подключать генерируемые хидеры)
"${PROJECT_SOURCE_DIR}/vtu11" # что бы не писать в инклюдах путь до заголовка
"${PROJECT_SOURCE_DIR}/ptu129" # аналогично
)
# в конце скрипта
# задаем выходной экзешник:
add_executable(vKOTun ${SRC_FILES})
# далее -Iнклюдим список наших директорий
target_include_directories(vKOTun SYSTEM AFTER PUBLIC ${С_INCLUDES})
# далее опции компиляции и дефайны
target_compile_options (vKOTun PRIVATE ${C_FLAGS})
target_compile_definitions(vKOTun PRIVATE ${C_DEFS})
# далее линкуем либы (если они есть)
target_link_libraries(vKOTun PRIVATE ${C_LIBS})
# задаем скрипт
install(TARGETS vKOTun DESTINATION ${CMAKE_INSTALL_BINDIR})
Тому кто их 100+ раз заполнял может и очевидно, а кто первый раз видит вообще нихуя не понятно как это заполнять. А там ведь по сути надо тоже заполнять по феншую (как и в симейке) или тебя нахуй пошлют. Разница лишь в том что симейк можно и не брать если не нужно, а пидорастовский томл к изучению обязателен, без него ничего напрямую нельзя собрать.
Дак у него даже так пизданётся всё, он инклюдит неправильно.
Анон, тебе не повезло - собеседник анальный клоун.
У меня есть пикрил папка с говном. Причём каждая последующая библиотека говна использует в своей работе предыдущие, как голландский штурвал,
Это говно будет работать? А нет, не работает.
cmake_minimum_required(VERSION 4.0)
project(govno)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(SRC_EXE "Main.cpp")
set(VAR_LIB "Variables.cpp")
set(MAT_LIB "MaterialRead.cpp")
set(MAP_LIB "MapRead.cpp")
set(ARR_LIB "ArrayInit.cpp")
set(VTK_LIB "VTKOutput.cpp")
add_library(var STATIC ${VAR_LIB})
add_library(mat STATIC ${MAT_LIB})
add_library(map STATIC ${MAP_LIB})
add_library(arr STATIC ${ARR_LIB})
add_library(vtk STATIC ${VTK_LIB})
set(C_FLAGS
-O2
-Wall
-ffast
)
set(С_INCLUDES
"${PROJECT_SOURCE_DIR}" # корневая папка проекта (переменная генерируется симейком автоматически)
"${PROJECT_BINARY_DIR}" # папка сборки проекта (нужна что бы подключать генерируемые хидеры)
"${PROJECT_SOURCE_DIR}/vtu11" # что бы не писать в инклюдах путь до заголовка
)
add_executable(main ${SRC_EXE})
target_include_directories(main SYSTEM AFTER PUBLIC ${С_INCLUDES})
target_compile_options (main PRIVATE ${C_FLAGS})
target_link_libraries(main var mat map arr vtk)
install(TARGETS main DESTINATION ${CMAKE_INSTALL_BINDIR})
Тут где-то слэш не тот?
Анон, тебе не повезло - собеседник анальный клоун.
У меня есть пикрил папка с говном. Причём каждая последующая библиотека говна использует в своей работе предыдущие, как голландский штурвал,
Это говно будет работать? А нет, не работает.
cmake_minimum_required(VERSION 4.0)
project(govno)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(SRC_EXE "Main.cpp")
set(VAR_LIB "Variables.cpp")
set(MAT_LIB "MaterialRead.cpp")
set(MAP_LIB "MapRead.cpp")
set(ARR_LIB "ArrayInit.cpp")
set(VTK_LIB "VTKOutput.cpp")
add_library(var STATIC ${VAR_LIB})
add_library(mat STATIC ${MAT_LIB})
add_library(map STATIC ${MAP_LIB})
add_library(arr STATIC ${ARR_LIB})
add_library(vtk STATIC ${VTK_LIB})
set(C_FLAGS
-O2
-Wall
-ffast
)
set(С_INCLUDES
"${PROJECT_SOURCE_DIR}" # корневая папка проекта (переменная генерируется симейком автоматически)
"${PROJECT_BINARY_DIR}" # папка сборки проекта (нужна что бы подключать генерируемые хидеры)
"${PROJECT_SOURCE_DIR}/vtu11" # что бы не писать в инклюдах путь до заголовка
)
add_executable(main ${SRC_EXE})
target_include_directories(main SYSTEM AFTER PUBLIC ${С_INCLUDES})
target_compile_options (main PRIVATE ${C_FLAGS})
target_link_libraries(main var mat map arr vtk)
install(TARGETS main DESTINATION ${CMAKE_INSTALL_BINDIR})
Тут где-то слэш не тот?
Злощастный vtu нужен для библиотеки vtk.
Какие книги вы читаете чтобы расти как программист? Меня интересуют не только книги по стандартам или объяснения каких-то вопросов, а вполне по общим темам.
Что вообще делаете чтобы развивать свои навыки, соображалку, наблюдательность?
Можно, конечно, сказать про рефакторинг и тд, но многие вещи оттуда приходят с опытом. Я имею ввиду, что когда читал книжки по рефакторингу, то до некоторых вещей уже дошёл сам собою.
Хочешь стать сеньором по книжке?
Agner Fog, мануалы по оптимизации. Там много интересного собрано про современные компиляторы и процессоры. Формашлёпам НИНУЖНА.
>С_INCLUDES
Наверное коментарии в симейке нельзя так писать, убери их
так то в остальном все верно но твои либы будут компилировать с отдельными опциями компиляции и отдельными флагами (а точнее без никаких так как они заданы только для main), либо позаменяй
target_include_directories -> set_include_directories
target_include_directories -> set_compile_options
т.е на глобальные функции которые глобально задают опции для всех таргетов/имен, либо для каждой либы свои задай так же через таргет, либо вообще говоря в SRC_EXE положи туда все эти .cpp файлы от либ и они все скомпилятся в объектные файлы по отдельности и сами слинкуются, тебе не нужно из них отдельные либы делать. Это нужно для тех случаев когда у нас несколько программ у которых единая базовая часть выделенная в статическую библиотеку. В твоем коде этого явно не нужно
>Что вообще делаете чтобы развивать свои навыки, соображалку,наблюдательность?
если это касательно кода вопрос. То начни пилить сложный проект: компилятор например, сильно поможет понять как вообще все устроено "буковки превращаются в битики", почему возникают те или иные ошибки (синтаксические, семантические, runtime etc).
В процессе написания куча вопросов по языку тупо отпадет. Например чем ссылка отличается от указателя (я не про шаблонные определения), а про суть.
Ну или ченить попсовое возьми, там свой сервак запили (на процессах, потоках, асинхронный).Пилишь по шаблону,гуглишь(статьи по теме достаточно) что не ясно и так по кругу.
А так совет, не сильно упарывайся именно по языку (это только инструмент). Сто раз уже писали,что только читать книги по кодингу (и писать простые примеры из них) это бред с КПД 20%.Ибо простые, базовые вещи ты и так поймешь в процессе, а сложные через теорию и lib1.cpp не усвоишь.
Параллельно смотри всякие видеолекции с ютуба(по сетям, по БД, АКОС, любая база короче которую не знаешь).
ну и последнее насчет книг. Я за все время может от силы 5 книг тебе назову стоящих (кстати две из них от рус. авторов), а сколько я их читал/начинал/читал_частично несчесть.
Все тупо бабки, тупо коммерция.
Лайфак.
Открываешь книгу, смотришь:
если в ней ~800+ страниц (это стандарт епту) и из них введение занимает 5% (от автора и прочая хуета), потом еще 5% базовые копипасты(история, общая теория "первые компьюетеры были на перфокартах...") сразу скипай такое говно.
Они там охуели, книги уже тупо одним и тем же шаблонам делают. Лучше смотри универовские лекции (там от МФТИ, и других вузов).
Через несколько лет нужно уже думать как перекатиться в лиды/манагеры, как залутать больше сотыг и какую плиточку положить в своей новой хате. Какое программирование? Годами собираешься за клавой горбиться?
>Через несколько лет нужно уже думать как перекатиться в лиды
Калпитализм так не работает, тут нельзя ничего планировать больше чем на 5 лет, каждые 5 лет какойнибудь крысис ковид-хуид и твоя контора закрылась либо попросила уйти по собственному желанию.
Тут надо не маняфантазировать о том как стану лидом и буду по пол ляма загребать, а грамотно распоряжаться баблом пока оно стабильно поступает в карту.

Там и описываются. Но так как они уже достаточно хорошо решены что уже книгу написали то как правило за это платят пикрил
Изучай DDD.
Ну в общем-то да. Я просто к тому, что фокус внимания немного не туда направлен. Вот у меня есть вышка ивт и те самые пару лет оптыа. Нахуя мне чё-то учить постоянно? Уволят за профнепригодность в одном месте (что очень маловероятно, скорее повысят) пойду в другое.
Меня как то на собесе спросили, я сказал в душе не ебу что это.
Стоит ли сильно упарываться по этой теме или достаточно иметь общее представление?
Плюсы это бэкенд язык для библиотек. Сам то как думаешь важно ли тестировать свои библиотеки или похуй и так сойдет? Единственное исключение это наверное всякий формошлепий код на кутах где тупо не позапускать автотесты, под остальное тесты должны писаться без разговоров о нужности. Это просто хороший подход к разработке и самое главное один из центральных столпов программирования вообще. Ведь если твой код будет часто падать или решать не ту задачу в один момент люди вокруг начнут очень сильно сомневаться в твоих компетенциях, ты с таким фиаско как собираешься по зп расти и грейду? Поэтому написал функцию -- ебани тест, это отлично поможет понять что с ней так архитектурно даже и мыслить о программировании в совсем другом ключе заставляет
Какие-то тупые вопросы. Видимо совсем зелёный. Unit-тесты - это просто тесты. Насколько они важны? Не важны, если тебе на качество поебать. Если ты привык делать наперекосяк через жопу. Вот ты написал класс/функцию и не знаешь работает она или нет? Это программирование "на авось". В больших проектах такая хуйня не прокатит. Как ты собираешься вести проект где допустим полмиллиона строк кода и десятки разных классов и прочего. Сложность проекта растёт со временем и когда ты добавляешь новый функционал, старый будет ломаться в рандомных местах. Потому что ты его не оттестировал нормально в разных условиях, при разных входных данных. Получится что ты то не предусмотрел, это не рассчитал... Будешь накладывать заплатки, латать дыры. Но это начнёт ощущаться только на больших и средних проектах, где 200+ тысяч строк кода.
Ни в коем случае и никогда. Никакой документации разработчик писать не должен. Если спросят просто кивай. А истории о целых сокращенных отделах которые сидели поддерживали подробную документацию ты можешь увидеть на этой доске и описанную ситуацию наоборот тоже
> Аноны, unit-тесты вообще важны для разрабочтика С++?
> Меня как то на собесе спросили, я сказал в душе не ебу что это.
> Стоит ли сильно упарываться по этой теме или достаточно иметь общее представление?
Иметь общее представление. Все равно ситуация по тестам в каждой конторе будет разная.
> Единственное исключение это наверное всякий формошлепий код на кутах где тупо не позапускать автотесты
Вполне себе позапускать.
Неужели через эмуляцию событий клавиатуры/мыши и последующее сравнение скрина окна с эталоном?
> Неужели через эмуляцию событий клавиатуры/мыши и последующее сравнение скрина окна с эталоном?
Что то сравнивается с эталоном попиксельно, но нп кутешные вещи, а то что рендерится пониже.
А так да, эмуляция событий тача и сравнение событий bss/евентов в логе.
>а эту хуету Doxygen/Sphinx тоже надо освоить?
Ну бля, тот же ответ что и предыдущий. Как ты это представляешь если в команде допустим 10 человек работает и в проекте сотни классов/под-классов/под-проектов/модулей. И как один программист будет объяснять другому программисту структуру проекта? Ну очевидно же, что какую-то форму документации придётся иметь, чтобы ориентироваться во всём этом. Иначе это превратиться в демонстрацию на коленке - эй ты чувак! Смотри вон там класс Scheduler::SchedulerImpl, возьми там метод такой-то...
Естественно это всё не так актуально на маленьких проектах/маленьких бюджетах/маленьких командах. Если ты в одну харю пилишь проект, естественно нахуй тебе doxygen. А когда контрибьютеров много, чтобы они пользовались твоим кодом, надо показать, рассказать, что как работает, дать примеры и т.д.
Никто блять в твою голову не может залезть, если там на 2 тысячи строк кода и ноль комментариев, нахуй такой код кому-то будет нужен.
Хрюкни скуф
С одной стороны я хочу по максимуму захуячить все в один класс, типа:
class Car {
Engine engine;
Driver driver;
// etc...
}
и через методы дергать все что мне надо.
Однако писать тесты для такого кода сложно.
Тогда лучше заранее все делать через DI, но это тоже какой-то пиздец получается.
Мне интересно как вообще тим-лиды с архитектурой справляются. Сразу хуячат проект где весь код максимально не связный?
Как будто есть что-то лучше. VSCode - забагованный текстовый редактор, Студия - какое-то легаси говно без развития.
>>34753
> cmake то модули нормально уже научился собирать?
Со сборкой уже года два как всё в порядке, с ней всё просто. Последние годы только IDE не могли нормально подсветку синтаксиса запилить для модулей, вечно что-то отъёбывало.
>Как будто есть что-то лучше
Как будто ЖопаБрейнс не самоокуклился и его не пидорнули со всех уважающих себя компаний в приказном порядке.
> уважающих себя компаний
Нвидия-кун, у вас жбрейнс запретили?
Имакс или неовим есть выбор современности.
да ни за что, он просто шиз
понятное дело джетбрейнс свою дейтельность в россии приостановили, вот он и сидит обиженный
> свою дейтельность в россии приостановили
Это не так неприятно, как например в Студии. В JB хоть есть поддержка прокси, прописал и работает всё, один хуй как истинные пираты бесплатно им пользуемся. А в Студии экстеншены, заблоченные в России, не работают нормально и прокси не впердолить, только VPN подрубать.
Ты сказал? До 22 студии ей буквально было невозможно пользоваться без решарпера или помидора
Скажи например как мне сейчас просмотреть в дефолтной студии все вызовы конкретной функции, откуда и кем она вызывается
Базовички сидят на Rider с msbuild. Никакого пердолинга с конфигурацией сборки, оно просто работает. И встроенная поддержка vcpkg есть, все либы сами ставятся, проще чем расте даже.
Не знаю что там у тебя за базовички, но в моем понимании базовички не занюхивают чужой пердеж
Хуйня, которую придумали гуманитарии ебаные. Имитирует компьютерную сеть внутри процесса на локальной машине, да, это полная шиза. Вместо того, чтобы просто вызвать a() потом b(), ты кладешь сообщение в очередь, дальше обработчик его достает, вызывает a(), результат кладет в новой сообщение, медиатор его достает, понимает что надо вызвать b(), кладет сообщение для b и так далее.
То что наптсал ты звучит действительно глупо, но вообще это концепция диспетчера, так что думай.
Медиатор, диспетчет, хуетчер - это все сорта говна, одна и та же идея. Инфоцигане придумали 100500 слов, но все крутится вокруг шины событий и асинхронных вызовов. То есть, обычная ненадежная сеть. Писать так внутри локального процесса, где вызов гарантированно будет сделан - это шиза 80 уровня. Зато можно впаривать джунам книжки про чистую архитектуру, чистый код, чистый зад и так далее.
Шина событий и асинхронность необязательно связаны же. Шина событий может просто для декоплинга использоваться во вполне синхронном однопоточном коде. Типичный пример использования принципа инверсии зависимостей. Как обработать обратный вызов в коде от ниже лежащих слоев? Например у тебя в игре есть цикл обработки событий, тебе нужно сделать выход из игры. Выход из игры может быть разный: по нажанию клавиши и при выборе пункта меню. Ты делаешь событие "выход" и это событие обрабатывется в хендлере в цикле, а клавиатура и меню генерируют одно и то же событие. Таким обазом у тебя цикл событий не имеет двух отдельных реализаций выхода из игры и поэтому не зависит от того сколько у тебя причин и мест выхода из игры
Ну то что ты описал звучит как едала для игровых движов запустили сцену А она там бесконечно крутится, пукнули/умерли/еще что то сделали из цикла вышли вернули значение. Далее взависимости от него заного A либо в B либо в меню. Обычно это все делается тупо сишными вызовами по косвенным адресам, либо как в скриптовых языках вообще возвращают класс в виде переменной и "деспетчер" его запускает как (new sceneClass).run()
чем это плохо - тем что что в каждом игровом движке надо по новой вот эту костыльную хуйню переизобретать, ведь все игры в этом плане устроены одинаково - это последовательный переход от одной сцены к другой.
В гуи очередь событий оправдана.
Представь, что вместо вызова выстрелить(оружие,цель) ты кладешь событие "стрелять" в очередь, потом где-то хз где в коде обработчик достает это событие и делает стрелять. Вместо четкой структуры и навигации по коду у тебя получается месиво из обработчиков, которые хуй пойми в каком порядке друг другу кидают сообщения.
Причем вместо единой шины событий ты бы мог сделать много сервисов для той же цели декоплинга. Например для обработки выхода сделал бы сервис "выходятор" c методом "выйти". Выходятор бы дергался в коме меню после pollEvent и при выботе пункта меню. Главное отличие единой шины только в большей абстракнности и универсальности. Если бы у тебя не было шины событий то у тебя было бы 100500 "шин", чтобы пропихивать их кругом по коду.
Я с этим согласен, что ивент бас- это проследние прибежище для того чтобы декоплить зависимости. Но почему-то разрабочики на godot считают по-другому...
Но а с другой стороны игры слишком оопешные по свой сути. По сути в каждой игре перекрестное взаимодействие у 100500 "объектов" и ты никуда не уйдешь от этой сложности. Например в ECS ты будешь класть компоненты в репозиторий откуда в цтикле будешь их выбирать. По сути та же шина.
Игру нельзя написать как утилиту для обработкт текста или программу обработки хттп запроса, между которыми разница в архитектуре небольшая.
Многие пишут, что С хорошо переносится, но на деле: в POSIX один интерфейс, в WinAPI - другой, в какой-нибудь нестандартной ОС вообще третий. На пример, даже управление файлами на уровне каталогов различается по апи. Многопоточка тоже зависит от апи ОС.
А вот в новых стандартах С++ вроде появились классы одинаковые везде, но действительно ли ни каких подводных камней с переносимостью нет?
>в POSIX один интерфейс, в WinAPI - другой, в какой-нибудь нестандартной ОС вообще третий
К языку это не имеет отношения. Если хочешь кросплатформу, пердолься с Кьютом каким нибудь, но там то же свои проблемы.
Подводные в том, что стандарты существуют только на бумаге.
> в POSIX один интерфейс, в WinAPI - другой
Что ты имеешь в виду? В винде никогда не было стандартных плюсов и сей, там всегда было подмножество именуемое VisualC. Бил Гейтс считал что программы должны быть приколочены к винде ее собственными непохожими стандартами/типами, некрософт до сих пор пожинает наследие пидора очкастого и его клоуна.
>Многие пишут, что С хорошо переносится
Имеется в виду, по сравнению с ассемблером. Это деды писали в семидесятых.
setlocale(LC_ALL, "Russian");
чтобы отображались русские буквы, а не кракозябры в Windows.
На дворе 2025 век, а консоль винды до сих пор работает в кодировке cp866. К плюсам какие претензии?
Потому что в винде обратная совместимость с софтом из нулевых. Никто не мешает включить в консольке UTF-8 через SetConsoleCP(65001)
Попробуй windows, современная ос, а то всё пердишь в калсою 50-летней давности. Хотя даже эта современность наступила еще в 2000 году, юникод, все дела, пора бы уже подтянуться, за 25 лет-то.

Ща начну пилить свой проект, буду делоть на последних стандартах ибо могу, будут и модули, и принты и представления и прочие умеые указатели, каеф
Лол
>будут и модули, и принты и представления и прочие умеые указатели, каеф
Лучше бы на пидорасте тогда писал.
Но ведь имакс - это не просто редактор, это самолёт-вертолёт-иде-лисп машина, ясное дело, почему в нём диды линукс напесали.
Т.е. нормальная иде на самом деле есть.
А template <::<<<void()>>..<<...>> std::forward<Args...> && > будут? Если нет - то не тру
Какие шаблоны, кроме основных (синглтон, фабрика, обсервер, стратегия, строитель и т.д., ну ты понел) ты применяешь на регулярной основе?
Больше всего меня интересует практика применения фасадов,Composite и Flyweight? Да, и вообще структурные шаблоны плюсы и минусы, для каких сценариях лучше применять
Я сделал реструктуризацию проекта (по папкам раскидал условно файлы некоторые).
Проект собирает и работает, но часть заголовочных подчеркнута красным (file not found).
Я перезапускал проект, IDE, делал Reload Cmake Project (чтобы индексы обновить), удалял папку build.
Какого хуя это не исчезает???
>шарпа
true
чувак на дворе 2025 год, сейчас от хорошего дизайна зависит 80% успеха, производительности, масштабируемости, тестирумости, поддержки, все короче, юноу
Нахуй это надо дыбыл. Ну веб макаки дрочили все эту херню, потом собрались все на микросервисы переписали, даунский сброд, сейчас опять достают эти огромные многотомники дидов и снова дрочат копролиты. Так они же идиоты. Ты что хочешь быть идиотом? Я вообще даже и не вспомню когда меня на собесе спрашивали копратерны. Большую часть кода я за карьеру написал как сетевую это ио баунд задачи которые что то конкретное решают, нахуя там этот дроч? Плюсы это не совсем бекенд язык, даже если он в беке появляется то как правило решая конкретную задачу или оптимизацию, опять же зачем тут паттерны, только мешать будут. Если только какие-нибудь фаст пимплы и прочее, но это скорее техники чем
Так он тебе всё верно пишет. В msvc конфиг проще чем у раста, просто пишешь какую либо хочешь и больше ничего делать не надо.
>где-то кроме винды
То есть нигде, ты же не считаешь 1% декстопов выбором. Так что читаем: vcpkg работает везде, ибо винда это всё.
Большая часть устройств в мире это не винда, а Линукс сервера и Линукс-based устройства. Десктоп это меньшинство
Он так нелепо пытается хамить.
Не пишут, то работа, как работодатель приказал, так рабы и пишут, нет воли, нет выбора, это к треду не относится. А люди пишут программы на компьютеры, компьютеры это декстопы, десктопы это винда, других нет.
То есть, если разговор про прошивки и прочую рабочую срань, это не разговор про "под что пишут", а разговор в "какую шарагу устроиться". Это не тред трудоустройства и сравнения шараг, а тред написания софта, смотри первый параграф выше.
Хуя шиза
>ты же не считаешь 1% декстопов выбором
99% десктопов сейчас - это вкладка браузера. Морда современной проги - это или веб/электрон или кросс-платформа вроде Qt. Винда как единственная платформа умерла даже в игрулях, своем главном бастионе.
Сейчас модно внаглую называть черное белым и наоборот, срать тупостью когда очевидно, что это тупость. Не знаю как называется эта болезнь, но мозги точно мертвы.
Мразь ну так перестань этим заниматься
Так в том и дело что мокрософт при очкарике был нишевой конторой с набором программных продуктов, а сегодня это гигакорпорация всосавшая в себя кучу всего. Для размеров сегодняшней майкрософт бизнес уровня xbox (считавшийся во времена очкарика большим прорывом для компании) это не то чем надо заниматься компании такого уровня (продали бы уже ее габену что-ли). А в сервера суперкомпьютеры майкрософт залезть не может, так как с виндой и своими говностандартами ее там нахуй не ждут, а майкрософт линукс гордость непозволяет. Если бы пидор очкастый сразу бы внедрил позикс окружение и стандартные библиотеки как в макоси, майкрософт бы сейчас чувствовал себя намного увереннее.
Как минимум он бы сейчас был на ровне с ораклом, а не ходил бы насрав в штаны.

Че он так общаться то начал, я ему никакие промты не писал. Временами такие фразы бывают проскакивают. Видать там уже обучалка по двачу поехала обучаться?
Блять никогда не понимал эти ваши указатели, а тут как понял.

он тя еще в киоск за пенным газку оформить отправит сырок наху
И все еще не понял, потому что в шапке хуета.
int ⚹d;
void ⚹p;
- это не "указатель на тип", это просто переменные указателя которые вообще говоря могут быть равны. int в данном случае означает две вещи:
1) размер сегментов в памяти для считывания/записи (4 байта делаются одной командой ldw или stw)
2) какого типа преобразования надо делать перед записью или после считывания
Например:
int8_t b = -127; // 0x80
d[0] = b; // (int)-127 - это 0xFFFFFF80, то есть перед записью надо расширить число 32битным знаком
int64_t l = d[0]; // то же самое только расширение 64битным знаком после загрузки 32 битного числа
Ну а void это просто голая переменная указателя подходящая для хранения и сравнения адреса, но не предполагающая какие то обращения по нему в принципе.
Это все довольно простые и банальные вещи (лоу тир так сказать)
мид-хай тир это:
const char ⚹
char ⚹const ⚹
packet и alignment
гугли pseudo gui
на вскидку скажу что там используются ascii блоки в сочетании с символами цветов терминала типа:
/████████
▀▀▀▀▀▀▀▀
https://theasciicode.com.ar/extended-ascii-code/block-graphic-character-ascii-code-219.html
https://stackoverflow.com/questions/5947742/how-to-change-the-output-color-of-echo-in-linux#answer-28938235
brisk
HikoGUI
cycfi/elements
Nuklear
Писал кто-нибудь на них что? Какая наименее забагованная? Плюс хотелось бы иметь еще возможность кастомизировать виджеты без сильной боли чтоб приложуха не напоминала общий библиотечный стиль

Неумные тоже есть, никто их не удалял, пользуешься ими, а умнокал игнорируешь.
Смотри как настоящие профессионалы на крестах программируют. Сначала понаписал соевого кала, а потом проблевался и удалил.

Хочешь сказать не существует гуишной либы с виджетами? А как люди тогда десктоп пишут свой если им не нужны такие махины как куты?
https://vc.ru/dev/1125830-kak-ustanovit-qt-qt5-qt6-v-rossii-cherez-onlain-installyator-pri-blokirovke-ip-adresov
На сколько актуально не знаю, гугли
Существуют и до хуя, но все они васянские поделия без документации и комьюнити
Под виндой психически здоровые люди делают либо нативный интерфейс который проще qt-параши, либо электрон с отдельным бэком.
Здесь подвачну, я бы и все остальное на Електроне/JS запилил
Сурсы собираются за пару минут. Еще и статически линковаться сможешь.
Большая часть вакансий это куте-десктоп\эмбедед госуха. Поэтому большинство тут работающих делают именно это. Ни на каком другом языке ты это не реализуешь, есть еще опция писать это все на си, но бля, это уже совсем дедовщина.
Наверное есть еще всякие короли разработки которых допустили до плюсов в больших коммерческих компаниях. Занимаются они хайлоадом, поисковыми движками, языковыми моделями, но лично я не припомню найм с улицы на такие вакансии. Обычно таким ушлым приемом занимается яндекс нанимая наивных студентов на вакансию по плюсам а потом закидывая их разгребать кал на питоне условном
Это понятно, что выводятся символы по знакоместам. Интересует как именно можно в С++ выводить символ в определенное знакомество? У нас же только потоковый ввод/вывод из коробки.
>Как установить Qt на винду в условиях санкций?
https://aqtinstall.readthedocs.io/en/stable/getting_started.html#installing-qt
Ему надо прописать конфиг с нужными серверами:
https://habr.com/ru/articles/709064/comments/#comment_26408910
Еще можно через vcpkg, но будет собираться из исходников, что может быть долго.
>Интересует как именно можно в С++ выводить символ в определенное знакомество? У нас же только потоковый ввод/вывод из коробки.
https://en.wikipedia.org/wiki/ANSI_escape_code
Ну вообще говоря stdin/stdout это просто FIFO который можно читать писать как в фаил и передвигать позицию командой seek()
Да просто ебани нахуй пикрил в симейк на похуй и иди сходи кофе попей
include(FetchContent)
FetchContent_Declare(
qt5
GIT_REPOSITORY https://code.qt.io/qt/qt5.git
GIT_TAG 5.13
)
FetchContent_GetProperties(qt5)
if(NOT qt5_POPULATED)
FetchContent_Populate(qt5)
add_subdirectory(${qt5_SOURCE_DIR} ${qt5_BINARY_DIR})
endif()
set(CMAKE_AUTOMOC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
find_package(Qt5 COMPONENTS Core Widgets REQUIRED)
Ну бля сам напиши
Пока что я только генерирую мир (заполняю чанками)
Один чанк(16^3) это 4096 кубов, каждый куб это ~144 байта. Отрисовывается из них примерно 10-15%
нужно заполнить буфер вершин(полигоны/кубы) и отправить его на рендеринг в OpenGL.
изначально код написан на сырых указателях и адресной арифметике на макросах:
#define VERTEX(INDEX, X,Y,Z, U,V, L) buffer[INDEX+0] = (X);\
buffer[INDEX+1] = (Y);\
buffer[INDEX+2] = (Z);\
buffer[INDEX+3] = (U);\
...etc.
INDEX += VERTEX_SIZE;
хочу перехуячить все на std::vector + push_back
говорят сейчас push_back - inline и достаточно быстрые
В целом производительноьб упадет на 5-15% (10% потери рендеринга для 3D игры это мне кажется дохуя...)
Но избавит меня от ебки с голыми массивами их размерами и прочим.
Я понимаю что это всегда вопрос компромисов, но как бы поступил ты анон.
Я бы не занимался преждевременной оптимизацией.

>4к варнингов
>Студенты наши писали
ПИЗДЕЦ. Надеюсь вы их всех нахуй отчислите и отправите на сво. Желательно сразу в шторм z. Плохой программист хороший штурмист
Через WinAPI.