Это копия, сохраненная 27 сентября 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Прикольная штука 1: godbolt.org
Прикольная штука 2: github.com/Nekrolm/ubbook
Прикольная штука 3: cppinsights.io
⚹ https://github.com/sosachbot/cppthreadhat // Я кста хз что это, но удалять не стал
⚹ Для кусков кода: pastebin.com/
Ответы на вопросы:
⚹ https://en.cppreference.com/w/
Для указателей: ⚹
Прошлый тред: >>2345617 (OP)
Надеюсь все так. Первый раз тред делаю
На плюсах никогда не прогал, только на Си, Джаве, js, питон. Щас пытаюсь вкатываться в спортивное программирование и думаю попутно пересесть на плюсы, потому что хуле нет когда да. Стоит оно того только в контексте спортивной проге или нахуй оно не всралось, и писать дальше на чем пишется?
Я считаю стоит. Все равно для спорт проги тебе не надо будет в дебри языка закапываться. В контестах даже классы сложные редко пишут. Ты можешь плюсы для твоего случая за неделю выучить и уже писать что то. Контесты почти все на плюсах пишут
Если у меня есть класс, конструктор которого содержит список инициализации, должен ли я в деструкторе этого класса ручками чистить объекты в этих полях? Гуглеж выдает что-то невнятное, но раз нигде явно про это не написано, подозреваю, что не надо. Заранее спасибо.
Не надо.
Почитай про выделение памяти на стеке и в куче. Для чего вообще нужен delete. Мягко говоря вопрос очень простой и покрывается базовыми книгами по плюсам.
delete удаляет динамически выделенную память. Аналог free
delete без new не бывает, запомни. Если увидишь new без delete и наоборот, тут три варианта:
1. Погромист,который это писал криворукий
2. Эта пара new-delete разбита на кучу функций внутри, например, класса, но рано или поздно динамически выделенная память будет освобождена.
3. Это сделано специально чтобы выебать комплюхтер. Хотя вирусы обычно на ассемблере пишут.
>>379998
>Последний десяток лет в C++ delete не нужен примерно нигде.
Энтерпрайзомакака, спокухенс.
Мужики, а вам норм писать на древней хуйне, которая разрабатывалась под доисторические пк?
Про медленную память слыхали?
Ебло, ты пынямаешь, что в некоторых системах(в большинстве на самом деле, кхм) Ассемблер, Си и С++ это лучший выбор?
Айти > Веб-индустрия, запомни, школьник, между ними нет знака "равно".
Тебе дали ебалу, которую затачивали под ситуацию 70х, а ты пишешь в 2022.
Братан, бабки то нам надо отрабатывать. (с) Пиши Иван, пиши родной.
И вообще, переходите на фортран/фортран++
Это настоящее, мужицкое, наше
Пиши на своём жсе. Чтобы в 2022 на ультранавороченных машинах страницы дольше пары секунд грузились, чтобы у тебя проводник в шинде на электроне был написан и жрал 50 метров памяти, и прочие примеры того, что твои "Заточенные под ситуацию 20-х годов" языки — неоптимизированное сверхмедленное и жрущее память гигабайтами говно
Ты ему про скорость — он слышит про низкоуровневость
Один-единственный вопрос — ты троллишь, или ты действительно тупой?
Я и говорю о скорости. Ты, видимо, отрицаешь прогресс, я хуй его знает. Потому что любому идиоту понятно, что с прогрессом процессоров, твоя низкоуровневая шняга будет все медленнее и медленнее, т.к. к ним нельзя (или очень сложно) применять оптимизации, заложенные в архитектуре проца. Ручной код умрет нахуй со временем
Так уже лет 30 говорят, а воз и ныне там.
Шиз
Ты дебил? Как раз твоя модная хуйня сейчас и есть самое медленное говно на свете
Если для тебя 50 метров - копейки, ты можешь вообще не связываться с крестами.
из-за целого вороха таких копеек винда через секунду после запуска кушает 6 гб в простое, хотя разница в функционале с древними виндами равна нулю.
Я беру точки из вектора и рисую по двум точка линии, и так пока вектор на закончится.
Я уже все перепробовал, я не понимаю как мне сделать что бы график съезжал влево/вправо и вверх/вниз в зависимости от скроллинга. Я уже многое перепробовал. Я считаю по формуле, вот такой, координата мыши в виджететекущий масштаб - координата мыши новый масштаб. Как то похоже на то что хотел, но не то все равно
почему то двач все * звездочки стер, формула такая
координата мыши в виджете умножить текущий масштаб минус координата мыши умножить на новый масштаб
Это вопрос к макаке, его много раз спрашивали, отмалчивается.
Код не является эквивалентом латеха. Латех это лишь определенные формулы, а код это возможность постить сырой текст как есть. Такая возможность вредоносна, станут абузить постя всякое говно вроде картинок аски-артом.
Команды действительно исполняются одновременно, но это ограничено количеством ядер. В рамках одного ядра да, команды выполняются по очереди.
> Объясните, в чем вообще профит от многопоточности? Я еще пойму если бы это означало, что команды процессора одновременно исполняются(тоесть параллелизм)
Так и есть
> но ведь они тупо друг за дружкой идут, это очередь...
Нет
У тебя на современном компе 12 ядер
Если у тебя одноядерный процессор, то профита нет, разве что разделение блокирующих и фоновых операций. Но вряд ли у кого-то в 2022 до сих пор одноядерные процессоры.
Без параллельности геморно (а то и невозможно) писать долгие процессы. Пока идет процесс интерфейс будет в зависнутом состоянии.
Было бы охуенно сделать вставку с онлайн компилятора прям тут
Умерло? Детач же просто говорит, что не надо его ждать
Это разные абстракции, одна железная, а другая ОС
если matrix, а или b выделен на стеке, то земля те пухом
и вообще охуенная идея передавать в тред лямбдуц с захватом по ссылке, надежная бляьт как швейцарские часы
Соболезную
я так хочу быть с ней. мне так плохо и одиноко.
> но мало кому нужно
Это обидно. Проект то прикольный, но его пишут 2.5 человека. Я скоро сам начну наверное писать, но это будет только через месяц в лучшем случае.
Но я займусь не конкретно i2pd, а либой для него, которая мне нужна
1) gcc -c -o 1.o main.cpp -D FREEGLUT_STATIC -I"C:\MinGW\include\GL"
2) gcc -o 1.exe 1.o -L"C:\MinGW\lib" -lfreeglut_static -lopengl32 -lwinmm -lgdi32 -Wl,--subsystem,windows
Добавил в прогу #include <math.h> #include <string> и функции этих библиотек. В кодблоке (с динамической либой glut) все компилится нормально, а вот в командной строке выполняется, почему-то, только первая команда. Как дополнить вторую (а может еще и первую) команду, чтобы все заработало?
Навскидку жеппой чую, что сюда надо стринговую и\или математическую либу как-то прилинковать, только хз как.
Я прост рили пока нуб, не бейте сильно.
До это обе команды работали
Это всё комплексы. Но мотивация действительно появляется, да.
Я долбач
Можешь скинуть пример измененных команд?
1) gcc -c -o 1.o main.cpp -D FREEGLUT_STATIC -I"C:\MinGW\include\GL"
2) gcc -o 1.exe 1.o -L"C:\MinGW\lib" -lfreeglut_static -lopengl32 -lwinmm -lgdi32 -Wl,--subsystem,windows
11 кресты - я так понял, новый стандарт языка?
Короче, я хз, правльно ли я сделал. Я написал команду
gcc -o 1.exe 1.o -L"C:\MinGW\lib" -std=c++11 -lfreeglut_static -lopengl32 -lwinmm -lgdi32 -Wl,--subsystem,windows
И выдало точно такой же результат. С виду нихуя не поменялось
Ну, я компилю и вправду из другого места не тем компилятором, который встроен в codeblocks (тоже MinGW, но папка другая), но блин, я хз, что там могут быть за отличия
принципиальные: опенгл я кинул и туда и туда полностью идентичный, а по мимо этого, из используемых библиотек, я просто хз, что может отличаться. До того, как подключил string и math все компилилось и там и там, значит различия в этих либах? Сириоусли? Че-то странно, если так
Я так понял, ошибка точно не в параметрах копилятора\линковщика?
>>381077
Да это я просто дуркую, на самом деле. Сейчас просто некогда подробно изучать, как сделать тоже самое в кодблокс. Насчет консоли - я тупо нашел готовое решение для статической либы глута, поэтому и юзаю консоль пока что без задней мысли. Потом мб погуглю как делать не через жеппу
Ты заебешься компилить что то, что использует сторонние либы как и получилось. Именнт поэтому есть системы контроля версий и cmake'и
cmake тоже пока в очереди на изучение, но его я буду учить, скорее всего, еще позже.
Мне 30.
В общем, у меня образования айтишного два курса в универе.
Потом работал на всяких дноработах, через несколько лет устроился в 1с франч, дорос до сеньора и в провинции щас зарабатываю 150+.
Но вопрос не в этом.
Почувствовал вдохновение попробовать что-то новое, (в 1с все заебало, заебался говнокод править стажеров и т д), погуглил курсы и нашел курс от яндекс.практикума "Разработчик с++". Там есть бесплатная часть на 35 часов, и платная часть еще на 120 вроде. Ну короче обучение планируется 9 месяцев, платить 120к. Обещают, что во время обучения реализую 4 проекта, и среди них аж целый браузер.
Как вы считаете, норм идея или нет?
Навыки у меня чисто 1сные. Могу какую-нибудь там рекурсию написать или циклы покрутить, ну я думаю вы представляете что там в 1с.
Уезжать в принципе никуда не хочу и вопрос не в деньгах, но хочется в принципе поковырять тру программирование и все что с этим связано. В конечном итоге научиться писать всякие крутые штуки вроде мессенджеров, браузеров, читов для доты/кс и т д
Нет, идея не норм. Работы на крестах исчезающе мало, и платят там не много, в сравнении с другими языками. И 120к это перебор, когда можно совершенно бесплатно скачать книжку по крестам, и все изучить.
C# востребован, имеет большое сообщество и инструментарий. Из коробки и гуй, и интернет, и мобилки и вообще все что угодно.
Зато можно написать type a(b).
>Из коробки и гуй, и интернет, и мобилки и вообще все что угодно.
Хватит пиздеть. Мне нужно было самое элементарное - диалог выбора папки, и то нихуя из коробки нет, нужно качать левый пакет с говносайта. И так на всё подряд, на каждый тык новая закачка с говносайта и новая dll-ка рядом с твоей программой. А про винапи вообще молчу, как уебан копипастишь определения функций и всех параметров (с очередного говносайта, вот сюрприз) переопределяя руками всё подряд. Вот больше делать нехуй, параша ебаная.
Анон, если ты не можешь в чтение документации, то это твои проблемы. Не могу понять только, что ты забыл в треде крестов. Тут люди умеют читать.
Там по дефолту убожество из Windows 95, а для нормального современного диалога нужно качать пак апи-что-то там. И разумеется хуй кто скажет, надо рыть гуглы со стековерфлоу. Грязное пердолянство сплошное этот шарп.
Это "убожество" всем привычно. UX-дизайнеры в большинстве своём страдают никому не нужной хуйнёй, пользователи будут юзать что угодно и не жаловаться, потому что им похуй.
Мамкина обосрашка оправдывается. В новом диалоге есть избранное и прочие ПОЛЕЗНЫЕ функции, а в старом нихуя, тупо диск и всё, сиди ебись кликай, вот больше делать нехуй. В винде есть диалоги, но в шарпе их нет. Охуенный язык, в анус себе засуньте.
Эта дебилка поломалась. >>381283
Еще прикол вспомнил. Хотел сделать как обычно статическую переменную внутри функции, ну чтобы отслеживать глобально состояние, а этот говношарп сренькнул и не дал. Полез в гугл, оказывается говномакаки лепившие компилятор этого шарподерьма не осилили статические переменные и они теперь НИНУЖНЫ, засирай класс этим мусором, кудкудах. Какие же дегенераты, пиздец просто.
Перетолстил. Ещё скажи, что пытался заинклудить iostream написать функцию main(), и компилятор почему-то ругался.
Мне кажется на 1С много шабашки. Типа открывается магазин им надо настроить один раз, потом иногда приходить по вызову.
> ну я думаю вы представляете что там в 1с
А что там такого в 1с? Нельзя свои классы писать, только переопределять уже существующие.
Непонятно только почему именно кресты. Больших денег тут нет. Большого бизнеса тут нет. Жаба и шарпы делают ту же работу, что 1с, только лучше подстраиваются под нужды бизнеса.
Ну хотя опять же чем именно ты в 1с занимался, если например только бекенд пилил, то необязательно жаба и шарпы, любой бекенд сойдёт, хоть пыха хоть питон хоть что.
>2 курса вузика
>1C
>зарабатываю 150+
ты же успешный, состоявшийся в жизни человек
зачем тебе советы от неудачников, кучкующихся в этом itt треде
чел, сама 1С с точки зрения архитектуры - замечательно сделанная система, просто топчик по сравнению со всем остальным
но, тут есть большое но: свой встроенный скриптовый язык они сознательно проектировали так, чтобы на нем могло писать около айтишное быдло, всякие недоучки которых выкинули с середины технического вузика или что еще хуже различные вкатывальщики-жуки
если ты хоть немного знаком с теорией языков программирования, знаешь парочку красивых и мощьных яп, то писать на встроенном скриптовом язычке 1С для тебя будет самая настоящая пытка; как правило если какой-нибудь умненький паренек или мужик который закончил вузик по профилю, то чаще всего он сидит на разработке модулей и конфигураций, но и это не спасает, и нужны стимулы - типа зависимости от пизды жены (типа ты в клювике приносишь денежку и у тебя есть регулярный секс) либо тупо банально алкогольная зависимость когда челик приходит домой и заливается дорогим алкоголем; иначе работать в 1С умному и образованному человеку невозможно
это днище, не относящееся к программированию
на 1С все же существует и программирование, разработка новых модулей, конфигураций, доработка их
Через CMake. В CMakeLists.txt пишешь:
find_package(зависимость1 REQUIRED)
find_package(зависимость2 REQUIRED)
И всё. Если при сборке на винде указать toolchain file для vcpkg, find_package его юзанёт и сам подключит установленные зависимости. На линуксе должно быть что-то аналогичное.
При сборке CMake сам сгенерирует проект MSBuild для винды и make-файлы для линукса, где юзаются зависящие от платформы компиляторы.
На самом деле, нет, для некоторых либ в CMake адская ебля, как и для самого проекта, но там проблемы уникальные для каждого случая, и надо сидеть и ебаться. Но лучше CMake для крестов ничего нет.
Спасибо
Блять, забаньте этого дауна уже, я заебался его репортить каждый день.
Котоёба тоже репорчу, и его того шизика с лягушкой и картой 5521.
Ну нахуя ты соль на раны сыпешь.
Я в мир 1с вообще пришёл после сикпа (да, и вузика по профилю), ебало представил?
А теперь уйти не могу, т.к. во1 неохота дропать зп а во2 на работе на других языках ничем не лучше (особенно во фронтенде и мобилках - это почти 1 в 1 ебатория с формами в 1с, что печатными что интерфейсными, они не сами по себе плохие, а плохи тем что там до тебя нахуеверчено), и подозреваю что даже в науке не всё так радужно как кажется. Сам себя поймал в ловушку.
>нужны стимулы
Пишу для себя всякую мелочь на других языках после работы. Не претендую на умность и образованность, просто к слову.
мимо
МЕРТВОПРОГ
Есть языки по типу крестов, но чистенькие, не перегруженные, в которых болезни крестов побеждены, но при этом которые предназначены для той же области, что и кресты? Раст не предлагать (не справляется так, как кресты), сишку не предлагать (понятно что ооп в крестах не до конца ооп, скорее сахар, но жить в сишке даже без этого сахара как-то не здорово).
Было бы очень странно, если бы язык, который создавался с оглядкой на другой - был хуже прародителя. Зачем его было бы тогда создавать?
Процы с оптимизациями умрут со временем, уступив место процам, умеющим выполнять высокоуровневый код непосредственно, как завещали диды из семидесятых.
Пчёл, мы тут прогеры, а не художники. Что в ТЗ написано - то и делаем.
Не умрут, на низком уровне всегда будут экономить каждый бит. Как только появляется более мощное железо, на котором можно было бы запускать медленные высокоуровневые языки, сразу же появляется толпа bloatware-шизиков, которые думают, что раз железо стало мощнее, можно меньше оптимизировать и больше говнокодить. В результате скорость работы самого нового софта на самом новом железе всегда была одинаковая, что во времена DOS, что сейчас.
А что тебе не нравится? Пока не лезешь в друзья шаблонов и подобное, то особых проблем не возникает.
>1) gcc -c -o 1.o main.cpp -D FREEGLUT_STATIC -I"C:\MinGW\include\GL"
>2) gcc -o 1.exe 1.o -L"C:\MinGW\lib" -lfreeglut_static -lopengl32 -lwinmm -lgdi32 -Wl,--subsystem,windows
Господи, какие линуксоиды дегенераты, пиздец просто..Ну вот что это, сука?
То ли дело нажать одну кнопочку в студии, да? Перекатывайся в 1С с таким мышлением.
Да я уже почти 5 лет ни строчки кода не пишу, интересно прост за вашу мотивацию - срынком ведь формошлепы правят. Неужто из идеи? Вас даже расстреливать при раскулачивании кодомакак не будут.
>>381572
Когда я год занимался покраской кнопок я выгорел и решил, что прогерство залупа ебаная (что по факту конечно так и есть). Когда я вкатился в кресты и начал трахаться с сегфолтами я воспрял. Да и в моей Гейропе найти годного крестовика довольно трудно, поэтому я ещё и на жирных иксах по зп.
Анон, не знаю правильно ли это спрашивать здесь, но....
есть курс от яндекс-практикума: "разработчик С++"
https://practicum.yandex.ru/cpp/
ясен пень у меня нет 126 тыс. рублей
может кто-нибудь знает где его можно достать за меньшую плату/бесплатно?
есть несколько вариантов сайтов торгующих слитыми курсами, но нет уверенности что там не обманывают(
Ну так в Гейропе нормальное айти, а не аутсорсная перегретая формошлепская цифрогулагская дрявая смузихлебская зумероублюдия.
Тебе не нужно это говно. Возьми 5 поясов от МФТИ и через 2 месяца можешь откликаться на вакухи.
Это оно? не могу понять, про МФТИ нигде не упоминается
или вот это:
https://mipt.ru/online/algoritmov-i-tekhnologiy/Progr-C.php
ткни меня пальцем, пожалуйста
Что например? К чему ты высрался вообще?
Я уже достаточно охуевал от грефоботов в свое время у которой финтехпараша с формочками и мобильным приложением это современный банк 21 века, а в европе отсталая хуйня мол, только почему в той "отсталой хуйне" можно обналичить чек выписанный твоему деду на папирусе и все россиянские кабаны как и цб хранят деньги там а не в синагогбанке.
Нахуй идешь, ты меня уже одной строчкой заагрил, ебал твою мамашу вместо спора с тобой уебком.
первый вариант, табом.
Спасибо, добра тебе и дому твоему)
Это проблема банка или реалий, в которых он существует?
Некорректный пример - давай в швитой сделаем чтобы банкам было невыгодно хранить валюту и посмотрим, как банки отреагируют (спойлер - так же).
тем что я могу без комиссии мгновенно переводить деньги другим людям по системе быстрых платежей и много других прикольных плюшек
>Что например?
Твои слова, говорят о том, что в Европе такого нет, у меня появились сомнения, поэтому тебе нужно доказать обратное, а именно то, что в Европе такого нет, иначе зачем ты это написал.
>К чему ты высрался вообще?
Интерес.
>Я уже достаточно охуевал от грефоботов в свое время у которой финтехпараша с формочками и мобильным приложением это современный банк 21 века, а в европе отсталая хуйня мол, только почему в той "отсталой хуйне" можно обналичить чек выписанный твоему деду на папирусе и все россиянские кабаны как и цб хранят деньги там а не в синагогбанке.
Где логика в этой части? У тебя какие-то проблемы?Инфантильность.
>Нахуй идешь, ты меня уже одной строчкой заагрил, ебал твою мамашу
Получается, что ты не можешь подтвердить свои слова и признаешь это?
>вместо спора с тобой уебком.
Какой спор?
> поэтому тебе нужно доказать обратное, а именно то, что в Европе такого нет, иначе зачем ты это написал.
Доказывать нужно наличие а не отсутствие
>Это проблема банка или реалий, в которых он существует?
Это риторический вопрос? Это проблема гоев которые облизываются с такого и добавки просят.
>>381766
Ух ты. А в условную Эстонию так деньги перевести сможешь?
В то время как я могу перевести деньги из любой точки мира в другую точку мира заплатив за это 1 доллар да ещё и с определённой степенью анонимности.
Да, в гейропе вообще много чего нет...
Ну, а почему нельзя называть финтехпарашу с формочками и мобильным приложением банком 21 века? В европе что кнопочки на прерываниях процессора сделаны, или что?
Свобода мысли, свобода передвижения, право на жизнь, право на создание здоровой семьи? Ты уточни, я мысли читать не умею.
У нас тоже свобода передвижения есть, ты скажи чем технически банки в европе отличается от наших, кроме вот этого примера со свифтом, так как понятно и так что только из за санкций мы не можем нормально переводить и получать деньги из за границы.
>>381794
Ну я так и понял, это как в том скриншоте с твиттера, медленные переводы в европе специально такие, что бы защититься от мошенников.
И право на создание здоровой семьи у нас тоже, есть, за это еще и деньги платят, а вот право на создание не здоровой семьи есть в европе, и это немного вводит в непонимание. Да и какая нахуй свобода мысли, там хуже чем в России. Раз там нельзя сказать что прививка от короныча не эффективна. И за то что ты не вакцинирован, вводят штрафы. После короношизы и санкций против России, из за того что она хочет и имеет право защищать своих граждан на Донбассе и признала два государства которые своей кровью отстояли свою не зависимость, во всей западной цивилизации разочаровался , реально долбаебы, надеюсь они когда нибудь сдохнут все.
А какой бы ты сделал кнопочку при нажимании на которую исчезает триллион долларов, м?
Такое чувство будто формошлепы и пердолики это два отрицательно заряженных молекулы зашквара которые вроде на вид сорта говна, но никогда не пересекутся друг с другом.
Это к чему то отсылка? Или это конкретный пример? Ну я бы сделал эту кнопочку такой как сделали наши банки, вводишь номер телефона клиента банка, или номер счета, или номер карты, вводишь сумму и нажимаешь отправить.
А вообще что такое формошлепы и пердолики? Форма, это типо вот как в Qt и Visual Studio размещаешь кнопочки на полотне? А что такое пердолик?
Ну это круто, что значит пердолинг? Типо полностью ручная разработка? Сам пишешь квадратик, сам рисуешь пиксели? да?
Свинопитек, спок.
Пердолинг - это когда ты ебёшься с технологией, потому что она не хочет просто взять и заработать, и надо проводить массу телодвижений, гуглить, читать посты на форумах от 2008 года из-за того, что в документации что-то хуёво описано, перепробовать всё возможное и невозможное, покопать исходники технологии, пока, наконец, не заработает. Технология может быть любая, не обязательно связанная с разработкой (да и вообще с компьютерами).
Пердолики - это те, кто занимается пердолингом. Так часто называют, например, линуксоидов, да и метонимически сам линукс.
Делайте сами.
- https://0bin.net/ - ладно, всё равно все юзают пастебин
- https://www.cplusplus.com/reference/ - не надо говорить, что им никто не пользуется.
> - https://0bin.net/ - ладно, всё равно все юзают пастебин
Пастбин же удобнее.
>https://www.cplusplus.com/reference/ - не надо говорить, что им никто не пользуется.
Я выпилил потому что там есть ошибки и неточности
Твой кот уже несколько месяцев не может сдохнуть или вылечиться.
Вот как бы такой ситуации избежать, ведь болото утягивает пиздец. Хочется и рыбку и задачи нормальные, но пока вижу только выход как у тебя - работа одно, а нормальные проекты это в свободное время.
студентобыдло защита 20 числа
Гугли судьбу лисп-машин. А ведь выше лиспа придумать уже сложно
Хуйня без задач.
Нахуя ебаться, когда можно в студии нажать одну кнопочку?
Результат будет тем же, а платят на работе за результат, а не за то, как хорошо ты ебешься с уже решенными проблемами.
Тебе сейчас кажется, что это решённые проблемы, но шаг в сторону - и результата от тебя не будет, только вопли РЯЯЯ НИНУЖНО.
И почему же?
Ладно, чтобы нахуй не послали объясню: мне тут, судя по всему, втерли хуйню, и я хочу внести яснсть.
> цивилизованный мир
Это тот, где перед сборкой небольшого опенсорс-проекта надо пердолиться со скриптом-портянкой из cmake-говнокода и где ещё надо руками все зависимости подключать?
Как в любом нормальном языке, блядь, сделано с нормальной, блядь, системой сборки.
Хуль ты притворяешься дебилом из 70 года.
А cmake - это система сборки уровня 80х годов.
Ну серьезно. Ты видел как в жаве собираются проекты? Как в шарпе? Как в любой более-менее современной системе?
build -o /bin
Все, нахуй. Ты нихуя руками не лезишь, просто пользуешься инструментом как человек. Нееее. Зачем плюсовику вот так вот просто. Давайте скриптиков миллион, и потом чуть поменяем окружение - хуяк, блядь, все по пизде пошло - лезь правь.
> Ну серьезно. Ты видел как в жаве собираются проекты? Как в шарпе? Как в любой более-менее современной системе?
Нет
> build -o /bin
А откуда оно знает где либы искать?
> Все, нахуй. Ты нихуя руками не лезишь, просто пользуешься инструментом как человек. Нееее. Зачем плюсовику вот так вот просто. Давайте скриптиков миллион, и потом чуть поменяем окружение - хуяк, блядь, все по пизде пошло - лезь правь.
Я не разбираюсь в системах сборки, но могу предположить, что твои языки более консистенты в этом плане. Скорее всего у них чуть ли не единственный пакетный менеджер. Я просто не понимаю как можно одной командной собрать прогу для линукса, где пакеты устанавливаются в одну директорию и для винды, где еще несколько пакетных менеджеров и все имеют свои особенности. И на сколько я понимаю окружение это не та вещь, которая меняется постоянно. Ее надо один раз настроить и не трогать.
Ну и + к этому там не просто директории разные, а сами либы отличаются для debug/release, 86/64, static/dll. Как это все должно одной командой собраться?
> Я просто не понимаю как можно одной командной собрать прогу для линукса, где пакеты устанавливаются в одну директорию и для винды, где еще несколько пакетных менеджеров и все имеют свои особенности.
Так самый пиздец в том, что cmake хоть и заявляет от таком функционале, но по факту его не имеет. Чтоб собрать под виндой рандомную либу с гитхаба на cmake, надо буквально половину скрипта переписать под своё окружение. Хорошо если треть из "мультиплатформенных" либ можно собрать одной командой, но факт в том что я почти всегда был вынужден ебаться со сборкой на cmake под Виндой. find_library буквально никогда не работает нормально, надо всегда лезть в скрипт и править его, а когда надо ещё исправить зависимости у зависимостей - это вообще фееричный пиздец, уровня сборки через bat-файлы. Причём такое говно повсеместно у линуксоидов - автор оригинала нафантазировал чего-то, опенсорс-комьюнити не реализовало даже половину, а конечный пользователь ебётся в сраку потом с этим софтом. Зато ко-ко-ко-швабодка, "исправь сам, есть же исходники".
У меня уже хуй знает сколько лет очко горит от "новой графической подсистемы, покрывающей все нужды современного десктопа", когда внезапно выяснилось что сама архитектура этого говна не позволяет работать одновременно с разными цветовыми форматами, что необходимо для нормальной работы смешанного режима HDR и SDR - в итоге нормальной поддержки HDR до сих пор нет, хотя в Винде он просто работает уже 5 лет.
"Как узнать что кодер пиздит? Его проект в опенсорсе."
> для винды, где еще несколько пакетных менеджеров и все имеют свои особенности
В Винде индусы уже давно придумали как с либами работать и не ебаться - dll можно регистрировать в системе через regsvr32, а в коде просто писать LoadLibrary("pizda.dll") и система сама найдёт где она лежит. А либы для статической линковки через nuget или vcpkg дёргаются.
> что ты предлагаешь?
Использовать нативную систему сборки. Под Виндой это MSBuild, под линуксом пердолики сами виноваты что ничего кроме make-скриптов не придумали.
> где таких проблем нет?
Любой современный язык не имеет таких проблем. Посмотри хотя бы на раст или го. Джава и шарп тоже просто работают, мультиплатформенно одной командой собираются. А скриптопараша наоборот адовое говно, питон и жс - имеют буквально худшие системы организации зависимостей и файлов проекта.
> Использовать нативную систему сборки.
И забыть о кроссплатформенности? Так то никто не запрещает так делать, но только зачем 10 раз все настраивать под каждую систему? cmake типо должен эту проблему решить
> Любой современный язык не имеет таких проблем.
Гляну. Но пока у меня некая предвзятость. Если они написали нормальную систему, но в плюсах ее нет, то значит, что го или раст что то упростили и не имеют каких то плюсовых проблем, не позволяющих написать такую же
> cmake типо должен эту проблему решить
Но не решает. Эту проблему всё так же должен решать тот кто пишет скрипт сборки. В большинстве случаев на это кладётся хуй, а когда не кладётся - там скрипт на 500+ строк нечитабельного говнокода и ещё столько же в каждой зависимости.
Кароче нужно работать с названиями файлов в текстовом виде, получения списка файлов конкретной директории, их удаление, вставка новых. Посмотрел qt, там довольно все обрезано, есть метод получения листа, мб норм, но он медленно работать будет для большого количества файлов в папке (ну от 2-3к скажем), да и место в программе занимает куча текста с именам я так понимаю, а в stl даже такой функции нет. Что там в бусте, не ковырял эти либы никогда. Мб какие другие фреймы есть? Или придумывать свою какую то хитрую реализацию с векторами итераторов на нные файлы директории?
деньги вообще хранить не надо: купил себе квартирку чтобы было где в старости гнить, а остальное тратить на женщин и вкусную еду
чел, просто у нас нет выбора, часто cmake единственно доступный вариант
это как раз тот случай когда надо жрать кактус
> кроссплатформенности
Вот ты мне, няша, объясни, почему на жаве я просто собрал jar, либо сделал билд на системе - и я вообще не думаю что там - OSX, линукс, чи винда, в каждый раз когда на плюсах я хочу просто скачать что-то с гитхаба и собрать это вот пускай на той же винде - у меня целый квест?
Где, мать его эта кроссплатформенность?
Или более близкий плсюовикам кейс не про систему сборок, а про банальную работу с сетью. Я в жаве - беру Socket и мне похуй, как оно там в системе реализовано, да, я знаю что у линукса дергается UnixSocket, у винды - WinSocket, но мне до пизды на джаве, я просто использую Sokcet и не хуячю #ifdef _LINUX_ #ifdef _ANDROID_ #ifdef _WIN32_ нет, я просто, мать его, беру какой-то сокет, и делаю как человек и это как раз КРОССПЛАТФОРМЕННО, потому что мой код вообще ничего не знает о том на какой системе он крутится - ему похуй, он от этой хуйни абстрагирован. Но не. В мире плюсов - я должен еще сверху макросами обложиться, как ебанат, чтобы эту вот кроссплатформенность получить, ведь по факту - кроссплатформенность - на словах, а на деле - хуй там.
Ладно. Я просто горю немного. Я люблю плюсы. Просто пиздец. Вот это вот что с ним делают постоянно - пиздец бесит. Язык просто постепенно тонет и нахуй он никому через лет 10 не станет. Даже у нас на заводе - переводят, мать его, ВПО и прошивки на джаву, потому что заебло уже всех это вот все, если бы не вот это вот что Пу устроил - был бы жирный процессорный модуль, и волевым решением - нахуй бы закопали плюсы, на железках бы крутилась JVM. А мне - обидно. И обидно в том числе из-за того что у плюсов - просто дохуища крутых концепций, охуеннейшая производительность, охуеннейшие компиляторы, но пиздец, 2022 год, чтобы джун просто понял как cmake проекта которому 20 лет работает - ему нужно полгода, чтобы он отлаживал ВПО - он должен знать дохуища всего, при этом ЗАВОД - алло, ему никто не предложит 100к со старта, 25к и разбирайся. Через 5 лет дадим тебе вторую категорию - будешь 50к получать. Когда питоноблядь зная как pip install сделать - залетает на 100к. Ска. Обидно.
> кроссплатформенности
Вот ты мне, няша, объясни, почему на жаве я просто собрал jar, либо сделал билд на системе - и я вообще не думаю что там - OSX, линукс, чи винда, в каждый раз когда на плюсах я хочу просто скачать что-то с гитхаба и собрать это вот пускай на той же винде - у меня целый квест?
Где, мать его эта кроссплатформенность?
Или более близкий плсюовикам кейс не про систему сборок, а про банальную работу с сетью. Я в жаве - беру Socket и мне похуй, как оно там в системе реализовано, да, я знаю что у линукса дергается UnixSocket, у винды - WinSocket, но мне до пизды на джаве, я просто использую Sokcet и не хуячю #ifdef _LINUX_ #ifdef _ANDROID_ #ifdef _WIN32_ нет, я просто, мать его, беру какой-то сокет, и делаю как человек и это как раз КРОССПЛАТФОРМЕННО, потому что мой код вообще ничего не знает о том на какой системе он крутится - ему похуй, он от этой хуйни абстрагирован. Но не. В мире плюсов - я должен еще сверху макросами обложиться, как ебанат, чтобы эту вот кроссплатформенность получить, ведь по факту - кроссплатформенность - на словах, а на деле - хуй там.
Ладно. Я просто горю немного. Я люблю плюсы. Просто пиздец. Вот это вот что с ним делают постоянно - пиздец бесит. Язык просто постепенно тонет и нахуй он никому через лет 10 не станет. Даже у нас на заводе - переводят, мать его, ВПО и прошивки на джаву, потому что заебло уже всех это вот все, если бы не вот это вот что Пу устроил - был бы жирный процессорный модуль, и волевым решением - нахуй бы закопали плюсы, на железках бы крутилась JVM. А мне - обидно. И обидно в том числе из-за того что у плюсов - просто дохуища крутых концепций, охуеннейшая производительность, охуеннейшие компиляторы, но пиздец, 2022 год, чтобы джун просто понял как cmake проекта которому 20 лет работает - ему нужно полгода, чтобы он отлаживал ВПО - он должен знать дохуища всего, при этом ЗАВОД - алло, ему никто не предложит 100к со старта, 25к и разбирайся. Через 5 лет дадим тебе вторую категорию - будешь 50к получать. Когда питоноблядь зная как pip install сделать - залетает на 100к. Ска. Обидно.
> Вот ты мне, няша, объясни, почему на жаве я просто собрал jar, либо сделал билд на системе - и я вообще не думаю что там - OSX, линукс, чи винда, в каждый раз когда на плюсах я хочу просто скачать что-то с гитхаба и собрать это вот пускай на той же винде - у меня целый квест?
Наверное потому что у джавы есть JVM? Дальше можно не читать после такой претензии.
> потому что мой код вообще ничего не знает о том на какой системе он крутится - ему похуй, он от этой хуйни абстрагирован
Какой ценой?
> В мире плюсов - я должен еще сверху макросами обложиться, как ебанат, чтобы эту вот кроссплатформенность получить, ведь по факту - кроссплатформенность - на словах, а на деле - хуй там.
На разных ОС В ПРИНЦИПЕ может не быть аналогичных функций и хуй ты с этим че то сделаешь. Там даже модель может быть другой. И да, никто такой хуйней не занимается, а берут готовые либы
>Язык просто постепенно тонет и нахуй он никому через лет 10 не станет
Ну раз ты сказал...
дальше вообще лень отвечать. Ты залетный какой то. Сиди дрочи свои железки на джаве.
> JVM
У раста, наверное тоже JVM есть. И у го. И у пистона. И у шарпов. У всех что-то есть. Одни плюсы - обиженные.
> Какой ценой?
Ценой более долгого старта и потребления памяти. Дальше в этом плане - разницы нет. Проблемы производительности той же джавы не в этих вот абстракциях.
> На разных ОС В ПРИНЦИПЕ может не быть аналогичных функций
А стандартный вывод, работа с файлами, работа с потоками - во всех ОС и вообще везде будет, я так понимаю? Хуй знает что ты там сказать хочешь, я писал под микроконтроллеры на плюсах. Нихуя там файлов не было. Однако ж это как-то никому не мешало запихнуть в стандарт работу с файлами, и пусть там где с ними работать можно - реализуют. Но не, чет как про реально то что используется везде - КО-КО-КО, у нас кроссплатформенность. А когда тот же Си пилили, чет подумали: бля, нам нужно что-то чтоб с файлами работать, и придумали то что на тот момент было удобно- И это в плюсы перекочевало. Но не, мы же любое отсутствие того что нужно в ежедневной работе - будем оправдывать либо Ко-Ко-Ко есть системы которые это не умеют, либо Ко-ко-ко есть Boost/напиши свой враппер и дергай нативное/не нужно.
> У раста, наверное тоже JVM есть. И у го. И у пистона. И у шарпов. У всех что-то есть. Одни плюсы - обиженные.
Ты написал про джаву, я тебе про джаву и ответил. Питон вообще блядь интерпретируемый. Тебе норм? Как там в го и расте я не знаю. Пусть знающие поправят. И на это я уже отвечал, что скорее всего там свои нюансы, поэтому они могут забить на проблемы, которые есть в плюсах, но не бесплатно.
> Ценой более долгого старта и потребления памяти. Дальше в этом плане - разницы нет. Проблемы производительности той же джавы не в этих вот абстракциях.
Сравни роутер i2p на плюсах и java. Первый готов к работе через 20 секунд, а второй через несколько минут. Это пиздец. Это огромная разница. Память я лично не замерял. И вообще на сколько я знаю, плюсовой роутер значительно быстрее. Даже часть проблем с скоростью сети валят на наличие джава роутеров. Типо если бы все на плюсовом сидели, то все был бы ЗНАЧИТЕЛЬНО лучше. Лично я не проверял это (кроме запуска, скорость мне лень было тестить), но вполне могу поверить в это.
> А стандартный вывод, работа с файлами, работа с потоками - во всех ОС и вообще везде будет, я так понимаю?
Не траль. Я же сказал, что так никто не пишет, а юзают либы в которых все эти ифдефы обернуты во что то удобное.
> Но не, мы же любое отсутствие того что нужно в ежедневной работе
Нести в стандарт языка работу с сетью и миллион сиюминутных хотелок идиотизм. Я очень рад, что так не делают. Может такие как ты порадуются, что за 5 минут собрали примерчик который реализует эхо сервер, но все остальные наплюют на это и будут писать все ручками просто потому что это слишком специфичная вещь и каждый проект будет требовать своей реализации со своими нюансами. Я имел опыт использования питона. Да, местами прикольно, круто, модно, молодежно, но шаг в сторону и ты пишешь с болью ебучие костыли, которые работают хуй пойми как. А в плюсах ты пишешь ровно то, что задумывал и оно работает ровно так, как ты спроектировал. Если тебе надо быстро че то написать и протестить, то плюсы это не твой выбор.
> У раста, наверное тоже JVM есть. И у го. И у пистона. И у шарпов. У всех что-то есть. Одни плюсы - обиженные.
Ты написал про джаву, я тебе про джаву и ответил. Питон вообще блядь интерпретируемый. Тебе норм? Как там в го и расте я не знаю. Пусть знающие поправят. И на это я уже отвечал, что скорее всего там свои нюансы, поэтому они могут забить на проблемы, которые есть в плюсах, но не бесплатно.
> Ценой более долгого старта и потребления памяти. Дальше в этом плане - разницы нет. Проблемы производительности той же джавы не в этих вот абстракциях.
Сравни роутер i2p на плюсах и java. Первый готов к работе через 20 секунд, а второй через несколько минут. Это пиздец. Это огромная разница. Память я лично не замерял. И вообще на сколько я знаю, плюсовой роутер значительно быстрее. Даже часть проблем с скоростью сети валят на наличие джава роутеров. Типо если бы все на плюсовом сидели, то все был бы ЗНАЧИТЕЛЬНО лучше. Лично я не проверял это (кроме запуска, скорость мне лень было тестить), но вполне могу поверить в это.
> А стандартный вывод, работа с файлами, работа с потоками - во всех ОС и вообще везде будет, я так понимаю?
Не траль. Я же сказал, что так никто не пишет, а юзают либы в которых все эти ифдефы обернуты во что то удобное.
> Но не, мы же любое отсутствие того что нужно в ежедневной работе
Нести в стандарт языка работу с сетью и миллион сиюминутных хотелок идиотизм. Я очень рад, что так не делают. Может такие как ты порадуются, что за 5 минут собрали примерчик который реализует эхо сервер, но все остальные наплюют на это и будут писать все ручками просто потому что это слишком специфичная вещь и каждый проект будет требовать своей реализации со своими нюансами. Я имел опыт использования питона. Да, местами прикольно, круто, модно, молодежно, но шаг в сторону и ты пишешь с болью ебучие костыли, которые работают хуй пойми как. А в плюсах ты пишешь ровно то, что задумывал и оно работает ровно так, как ты спроектировал. Если тебе надо быстро че то написать и протестить, то плюсы это не твой выбор.
Я не хочу переходить на личности, но сдается мне, что ты не пилил сам никаких проектов на плюсах, с долгим циклом поддержки и развития. Я - пилил. С микроконтроллера за 1 бакс до нормального процессорного модуля с хоть и порезанным, но линуксом, и последующем переходом на alpine. Так вот - нихуя в работе с сетью и прочим - специфики особой не было. Вот нихуяшчки, разница только в том, что мы потратили на все это дело в общей сумме 10+ лет разработки, пиля руками работу с PLC, c UART с GPIO, с Ethernet'ом, GSM, радиомодулем и прочей хуйней, а потом нам дали более-менее нормальный процессорный модуль, гиг оперативки, 4 гига памяти с возможностью расширения, alpain и возможность пилить на джаве. И это было как небо и земля. Можно нормально это тестировать, можно нормально дебажить, можно нормально пользоваться интерфейсамим, а не пилить миллион миллион строк говнокода чтобы под разные девайсы и конфигурации железа, и при этом МОЖНО, БЛЯДЬ, ДЖУНА ПОСАДИТЬ И ЧТОБЫ ОН ЧТО-ТО ПОЛЕЗНОЕ ДЕЛАЛ.
Но да - это же не аргументы, чел с двача, который ни в одном долгоживущем проекте не участвовал, который не переписывал часть стандартной библиотеки, потому что хуево таки работа с файлами реализована и можно быстрее, который даже лампочкой на Arduino не моргал - знает лучше, как там охуенно на плюсах и вообще - все верно делают товарищи, я вот читал мнение в интернете от анонимов, которые сто пудов не теоретик-индус. Охуенный ты чел, надо сказать. Посмотрю как ты будешь хвалить плюсы, когда у тебя будет 100500 устройств с зоопарком микроконтроллеров, а тебя попросят 100501 ноддержать и чтобы весь бизнес-уровень - работал без изменений и все это было совместимо с перекладным ПО.
И насчет производительности - еще раз, для закрепления. Проблемы производительности джавы не связаны с абстракциями и хуйней что запихнули в стандатрные библиотеки. Дело в костылях, которые обеспечивают полиморфизм, ковариантность и контравариантность, в работе GC, в построении графа объектов для автоматизации управления памятью, и прочей лабудой которая призвана ООП-хуйню реализовывать и при этом чтоб это было именно ООП-хуйня, а не как в плюсах - решалось на этапе компиляции, а в чуть что выпендришься - SegFault Так вот, если ты всю эту лабуду перенесешь в свой проект - у тебя будут ровно те же самые проблемы и без JVM. Но это не относится к тому, чтобы я Socket - мог вызывать на любой системе где есть JVM, чтобы я мог как человек использовать UTF, чтобы поддержка разных языков - не превращалась в боль, ведь, о ужас, продаваны решили что надо продавать железки арабам, теперь нужно на дисплее вывести на арабском что-то - ну, ебись как хочешь))).
Я не хочу переходить на личности, но сдается мне, что ты не пилил сам никаких проектов на плюсах, с долгим циклом поддержки и развития. Я - пилил. С микроконтроллера за 1 бакс до нормального процессорного модуля с хоть и порезанным, но линуксом, и последующем переходом на alpine. Так вот - нихуя в работе с сетью и прочим - специфики особой не было. Вот нихуяшчки, разница только в том, что мы потратили на все это дело в общей сумме 10+ лет разработки, пиля руками работу с PLC, c UART с GPIO, с Ethernet'ом, GSM, радиомодулем и прочей хуйней, а потом нам дали более-менее нормальный процессорный модуль, гиг оперативки, 4 гига памяти с возможностью расширения, alpain и возможность пилить на джаве. И это было как небо и земля. Можно нормально это тестировать, можно нормально дебажить, можно нормально пользоваться интерфейсамим, а не пилить миллион миллион строк говнокода чтобы под разные девайсы и конфигурации железа, и при этом МОЖНО, БЛЯДЬ, ДЖУНА ПОСАДИТЬ И ЧТОБЫ ОН ЧТО-ТО ПОЛЕЗНОЕ ДЕЛАЛ.
Но да - это же не аргументы, чел с двача, который ни в одном долгоживущем проекте не участвовал, который не переписывал часть стандартной библиотеки, потому что хуево таки работа с файлами реализована и можно быстрее, который даже лампочкой на Arduino не моргал - знает лучше, как там охуенно на плюсах и вообще - все верно делают товарищи, я вот читал мнение в интернете от анонимов, которые сто пудов не теоретик-индус. Охуенный ты чел, надо сказать. Посмотрю как ты будешь хвалить плюсы, когда у тебя будет 100500 устройств с зоопарком микроконтроллеров, а тебя попросят 100501 ноддержать и чтобы весь бизнес-уровень - работал без изменений и все это было совместимо с перекладным ПО.
И насчет производительности - еще раз, для закрепления. Проблемы производительности джавы не связаны с абстракциями и хуйней что запихнули в стандатрные библиотеки. Дело в костылях, которые обеспечивают полиморфизм, ковариантность и контравариантность, в работе GC, в построении графа объектов для автоматизации управления памятью, и прочей лабудой которая призвана ООП-хуйню реализовывать и при этом чтоб это было именно ООП-хуйня, а не как в плюсах - решалось на этапе компиляции, а в чуть что выпендришься - SegFault Так вот, если ты всю эту лабуду перенесешь в свой проект - у тебя будут ровно те же самые проблемы и без JVM. Но это не относится к тому, чтобы я Socket - мог вызывать на любой системе где есть JVM, чтобы я мог как человек использовать UTF, чтобы поддержка разных языков - не превращалась в боль, ведь, о ужас, продаваны решили что надо продавать железки арабам, теперь нужно на дисплее вывести на арабском что-то - ну, ебись как хочешь))).
> ты не пилил сам никаких проектов на плюсах, с долгим циклом поддержки и развития
Все так.
> PLC, c UART с GPIO, с Ethernet'ом, GSM, радиомодулем
Че, реально не было сишной либо под это? Да не может быть. По поводу дальнейшего: не понятно к чему ты это написал. Я же не говорил, что плюсы надо везде пихать. Ты сам подтвердил, что ради переезда с плюсов вам потребовалось устройство помощнее. Надо смотреть на ваш случай и решать какой язык вам нужнее. Ну и 10+ лет я тоже не знаю как прокомментировать. Не знаком с тем, что ты написал и не могу понять сложная это задача или же у вас работа не так как надо пошла.
> не пилить миллион миллион строк говнокода чтобы под разные девайсы и конфигурации железа
Опять же, я не разбираюсь в твоей области, но вообще обычно стараются писать как раз обертки, чтобы внутри какие то отдельные вызовы системных функций задефайнить, а дальше везде писать как человек. Было бы прикольно кстати, если бы ты скинул ссылку на код (хотя бы кусочки), но понимаю, что скорее всего это невозможно. Сложно что то еще по твоей теме сказать. Я же не знаю че вы там написали. Может вы вместо аккуратной функции write, которая в ваш радиомодуль че то посылает, а внутри себя уже имеет дефайны под каждую платформу, писали в каждой строчке, где надо было что то записать простыню из дефанов.
> который не переписывал часть стандартной библиотеки, потому что хуево таки работа с файлами реализована и можно быстрее
Ну вот скажи, как это согласуется с твоим аргументом о пихании все в std. Я буквально сказал, что такие вещи будут часто переписываться, поэтому пихать их в std бессмысленно. У вас так и произошло. В чем я не прав? Это вдвойне странно звучит, учитывая, что вы потом на джаву пересели, лол. Но если это не относится к тому 10 летнему проекту, то прошу прощения. Но вообще уже тут нарушилась нить повествования. По твоей логике в std должны завести все все все, и причем под каждую платформу отдельную либу, чтобы это было максимально оптимизированно? Бред же.
> Проблемы производительности джавы не связаны с абстракциями
> Дело в костылях, которые обеспечивают полиморфизм, ковариантность ... и прочей лабудой которая призвана ООП-хуйню реализовывать и при этом чтоб это было именно ООП-хуйня,
ЧИВО? Это и есть абстракции. Но ок, тут ты скорее всего имел ввиду кроссплатформенность.
> а не как в плюсах - решалось на этапе компиляции, а в чуть что выпендришься - SegFault
от того на каком этапе код из человекочитабельного переводится в машиночитабельный сам код не меняет ООПшность.
> Так вот, если ты всю эту лабуду перенесешь в свой проект - у тебя будут ровно те же самые проблемы и без JVM
Нихуя не понял. В плюсах у меняя ООП со всеми его плюшками. Проблемы с производительностью не появились.
> Но это не относится к тому, чтобы я Socket - мог вызывать на любой системе где есть JVM
На это я уже ответил выше и пояснил, что тащить такое в std не надо. Более того, я уверен, что я подберу пример на котором твой Socket просто не сработает как надо и мне придется выкидывать его нахуй и писать все самому и самому пытаться на джаве написать кроссплатформенность с сисколами (звучит как пиздец, я даже не представляю как там это писать))). А на плюсах я бы просто взял подходящую либу под это дело, либо модифицировал имеющуюся.
> ты не пилил сам никаких проектов на плюсах, с долгим циклом поддержки и развития
Все так.
> PLC, c UART с GPIO, с Ethernet'ом, GSM, радиомодулем
Че, реально не было сишной либо под это? Да не может быть. По поводу дальнейшего: не понятно к чему ты это написал. Я же не говорил, что плюсы надо везде пихать. Ты сам подтвердил, что ради переезда с плюсов вам потребовалось устройство помощнее. Надо смотреть на ваш случай и решать какой язык вам нужнее. Ну и 10+ лет я тоже не знаю как прокомментировать. Не знаком с тем, что ты написал и не могу понять сложная это задача или же у вас работа не так как надо пошла.
> не пилить миллион миллион строк говнокода чтобы под разные девайсы и конфигурации железа
Опять же, я не разбираюсь в твоей области, но вообще обычно стараются писать как раз обертки, чтобы внутри какие то отдельные вызовы системных функций задефайнить, а дальше везде писать как человек. Было бы прикольно кстати, если бы ты скинул ссылку на код (хотя бы кусочки), но понимаю, что скорее всего это невозможно. Сложно что то еще по твоей теме сказать. Я же не знаю че вы там написали. Может вы вместо аккуратной функции write, которая в ваш радиомодуль че то посылает, а внутри себя уже имеет дефайны под каждую платформу, писали в каждой строчке, где надо было что то записать простыню из дефанов.
> который не переписывал часть стандартной библиотеки, потому что хуево таки работа с файлами реализована и можно быстрее
Ну вот скажи, как это согласуется с твоим аргументом о пихании все в std. Я буквально сказал, что такие вещи будут часто переписываться, поэтому пихать их в std бессмысленно. У вас так и произошло. В чем я не прав? Это вдвойне странно звучит, учитывая, что вы потом на джаву пересели, лол. Но если это не относится к тому 10 летнему проекту, то прошу прощения. Но вообще уже тут нарушилась нить повествования. По твоей логике в std должны завести все все все, и причем под каждую платформу отдельную либу, чтобы это было максимально оптимизированно? Бред же.
> Проблемы производительности джавы не связаны с абстракциями
> Дело в костылях, которые обеспечивают полиморфизм, ковариантность ... и прочей лабудой которая призвана ООП-хуйню реализовывать и при этом чтоб это было именно ООП-хуйня,
ЧИВО? Это и есть абстракции. Но ок, тут ты скорее всего имел ввиду кроссплатформенность.
> а не как в плюсах - решалось на этапе компиляции, а в чуть что выпендришься - SegFault
от того на каком этапе код из человекочитабельного переводится в машиночитабельный сам код не меняет ООПшность.
> Так вот, если ты всю эту лабуду перенесешь в свой проект - у тебя будут ровно те же самые проблемы и без JVM
Нихуя не понял. В плюсах у меняя ООП со всеми его плюшками. Проблемы с производительностью не появились.
> Но это не относится к тому, чтобы я Socket - мог вызывать на любой системе где есть JVM
На это я уже ответил выше и пояснил, что тащить такое в std не надо. Более того, я уверен, что я подберу пример на котором твой Socket просто не сработает как надо и мне придется выкидывать его нахуй и писать все самому и самому пытаться на джаве написать кроссплатформенность с сисколами (звучит как пиздец, я даже не представляю как там это писать))). А на плюсах я бы просто взял подходящую либу под это дело, либо модифицировал имеющуюся.
Я сейчас кстати, мельком чекнул этот сокет тут (https://docs.oracle.com/javase/7/docs/api/java/net/Socket.html) и я просто не понимаю как это может заставить пересесть на джаву. там же буквально примитивные функции ОС обернуты. На плюсах это не сложно делается.
Ну с примером про сокет я переборщил. Все таки прям конкретно с сокетом я такой пример вряд ли поберу, но где то около (в каком нибудь хитром сервер вполне возможно) и кстати, ардуинкой я моргал
Я сейчас еще заметил, что функции кидают исключение на каждую ошибку. Это разве не гипермедленно?
>> Использовать нативную систему сборки.
>И забыть о кроссплатформенности? Так то никто не запрещает так делать, но только зачем 10 раз все настраивать под каждую систему?
Расшифровываю лицемерного пердолика.
Кросплатфоррменость = нечто одно, чтобы "10 раз все не настраивать под каждую систему"
Но систем ведь несколько, а нужно одно? Как это?
Получается, "кросплатформенность" не может существовать, это абсурд, деление на ноль!
Внимание, элегантное пердо-решение:
Ну раз нужно одно, так берем обно, а остальное нахуй, вот и всё. У нас же свободка посылать нахуй.
Такс, что берем? Конечно - пердолинукс, а остальное нахуй.
Итого: Кросплатформенность = пердолинукс, а остальные системы нахуй! ВАУ! ВОТ ЭТО УНИВЕРСАЛЬНОСТЬ! ВОТ ЭТО ДЕМОКРАТИЯ! ВСЕМ СИСТЕМАМ УГОДИЛИ! ВОТ ЭТО ШВАБОДКА! РАВЕНСТВО!
Благо макос тоже линукс, так что из систем остается только винда, а уж её нахуй послать это святое дело. Отлично! Идеальное решение.
Кросплатформенность! - Один пердилукс и ничего кроме пердинукса.
Примерно как эти сжв: "Равенство начинается с уничтожения белых"
Что ты несешь? На винде visual studio умеет съедать cmake вместо vcprj (или как он там у них называется)
cmake это пердозалупа, на винде может только обсираться по причине отсутствия на винде линукса. Поэтому пердоляторы и предлагают ставить на винду эмуляторы линукса (cygwin, mingw), называя это "мультиплатформенность". Лицемерный скам, у которого мультиплатформенность = поставить везде линукс. Не говоря о том, что эмуляторы это не линукс, а кривое его подобие, вот и ебитесь с ним, а нам похуй, ололо. Пердоли как всегда, лицемерный скам. Дошло до того, что даже майкрософт этот блядский цирк заебал и запихнули настоящую виртуалку пердикс а в винду из коробки. Вот она, мультиплатформенность от пердоскота. Итоги.
Ты там роутер рестартишь каждые десять минут или чё? Проекты на даче включил, проверил что все ок и забыл нахуй до следующего релиза/патча.
А если надо, чтобы упавшее быстро встало, тогда сорян, пишите на го
>Сравни роутер i2p на плюсах и java. Первый готов к работе через 20 секунд, а второй через несколько минут. Это пиздец.
Пиздец в том, что ты ошибаешься. и2п роутер на джаве не готов к работе через 20 секунд, он никогда не готов. Сначала тупит несколько минут, потом кое-как сайт один открывается, потом снова отваливается, и так до бесконечности. Я дико охуел когда запустил сишный и2пд и просто заработало сразу, причем без диких тормозов и отвалов.
кроссплатформенность в крестах это просто возможность (теоретическая) сконпелировать говнецо под другую систему не переписывая его полностью. все.
то что у тебя кишка выпадет пердолить скрипты и окружение в расчет не берется. скажи спасибо что в исходники (почти) не надо лезть. ну потому что туда уже залез автор и насрал #ifdef ШИНДОВС сосать хуй #elseif ГЕЙОС дать в жепу. как правило нихуя не протестировав кроме как на своем компудахтьере. причем эта колбаска ифдефов иногда достигает такой толщины и плотности, что сам автор уже через неделю не расскажет смысл этих конструкций даже под дулом топора
>кроссплатформенность в крестах это просто возможность (теоретическая) сконпелировать говнецо под другую систему не переписывая его полностью. все.
Нет такой возможности.
Линуксный gcc несовместим ни с майкрософтовским компилятором, ни с виндой.
Получается, ты можешь компилить gcc, но тогда придется ебаться с эмулятором линукса. Либо переписывать код под майкрософтовский компилятор, но это уже не компиляция, а портирование, переписавание кода блять. Итого, никакой мультиплатформенности не существует, это миф, лицемерная ложь пердоликов. Самый простой детект, видишь кто-то пукнул словом "мультиплатформенность", значит перед тобой скотоблядский уебан.
>Линуксный gcc несовместим ни с майкрософтовским компилятором, ни с виндой.
Зачем быть совместимым с другими компиляторами?
>Получается, ты можешь компилить gcc, но тогда придется ебаться с эмулятором линукса.
Зачем ебаться с эмулятором?
>Либо переписывать код под майкрософтовский компилятор, но это уже не компиляция, а портирование, переписавание кода блять.
Стандарт переносится полностью, если его поддерживают оба компилятора, в чем проблема?
>Итого, никакой мультиплатформенности не существует, это миф, лицемерная ложь пердоликов.
Почему ты так решил?
Зависит от того, что тебе нужно, можешь генерировать код скриптами во время сборки, можешь препроцессором, можешь с помощью расширений компиляторов.
>расширения компиляторов
В смысле ты просто пишешь им, что ты хочешь, а они сами, на свое усмотрение, напихают тебе в код много всего очень полезного и нужного?
И насколько часто это работает? Ньюфагу можно не заморачиваться остальными вариантами?
>Зачем быть совместимым с другими компиляторами?
Для мультиплатформенности, раз уж вы о ней кукарекаете. Но только на пиздливых словах, а не на деле.
>Зачем ебаться с эмулятором?
Затем, что без эмулятора линукса gcc не работает, и виндовый компилятор тоже не работает с этим кодом.
>Стандарт переносится полностью, если его поддерживают оба компилятора, в чем проблема?
Проблема в "если" которого в реальности нет. Пиздливое враньё. Нихуя не компилируется код под виндой на виндовом компиляторе, а других компиляторов под виндой нет, только под эмуляторами пердикка. Эмуляторы это не мультиплатформа.
>мультиплатформенности
Тогда причем тут компиляторы?
>без эмулятора линукса gcc не работает
Зачем тебе гсс под окнами?
>Проблема в "если" которого в реальности нет. Пиздливое враньё. Нихуя не компилируется код под виндой на виндовом компиляторе, а других компиляторов под виндой нет, только под эмуляторами пердикка. Эмуляторы это не мультиплатформа.
Набор бессмысленных слов.
>питон и жс - имеют буквально худшие системы организации зависимостей и файлов проекта.
Да ладно. Сильные платформы, в возможностью создания вирутуальных окружений под проект, с простой схемой описания зависимостей, очень надёжно работающей, с возможностью создания собственных репозиториев для пакетов.
Но сравнивать сложно, потому что в одном случае компилируемые платформы, где каждый модуль нужно компилировать своим набором опций, и при этом всё вместе заработает в итоге спустя неделю секса, а на ноде-питоне ничего компилировать не надо, опций не надо, но зато если модули принципиально не совместимы по версиям, то труба.
>Линуксный gcc несовместим ни с майкрософтовским компилятором, ни с виндой.
Я давно не писал на C/C++, но есть же всякие mingw, вот как раз компиляторы c++ под винду.
>кроссплатформенность в крестах это просто возможность (теоретическая) сконпелировать говнецо под другую систему не переписывая его полностью. все.
>то что у тебя кишка выпадет пердолить скрипты и окружение в расчет не берется. скажи спасибо что в исходники (почти) не надо лезть. ну потому что туда уже залез автор и насрал #ifdef ШИНДОВС сосать хуй #elseif ГЕЙОС дать в жепу.
В целом это общая проблема всех платформ, как только ты начинаешь использовать что-то особо системно зависимое.
То есть когда тебе нужны ГУИ заточенные, или IPC, или какие-то особые сетевые возможности, или системные вызовы и т.п. хранение конфигов и много, много чего ещё. Или же тебе надо минимальный набор использовать общий.
>Набор бессмысленных слов.
Лживая свинина включила дурачка "нивижу нислышу нипанимаю неттакого". Всё что нужно знать о пердолях. Когда пердоля пиздит? - Когда открываает рот.
>Зачем тебе гсс под окнами?
Затем что окна это винда. Зачем мне под виндой виндовый компилятор? Что за дебильные вопросы. Под виндой нужно всё виндовое, остальное - чужие платформы. Чужие платформы это не мультиплатформенность, нет её у пердоль, лживо пиздящих что есть.
>>382518
>есть же всякие mingw, вот как раз компиляторы c++ под винду
Это эмуляторы линукса, и очень хуевые к тому же. Если бы ты попользовался, знал бы что это всё кал собачий.
Вот тебе пример из жизни. Была одна прога написаная под visual studio, потом автор дропнул и васяны стали дальше допиливать. Один яблопидар взял и переделал проект под линукс запускать под вайном (ебанашка что взять), добавил их зависимости и систему сборки meson ninja (такая срань на питоне). И этот кал тупо не работает под мумуляторами в винде, прямо так и высерает ошибку "вы видимо запустили под msys, а залупанейм не поддерживается, до свидания", что показывает разработчики в курсе и специально шлют винду нахуй. Работает только в полноценной виртуалке. Кто кукарекал про мультиплатформенность? Вот она какая в реальности. Виндовую блять программу под винду специально заточенную, после обляпывания пердосранью уже невозможно собрать под виндой, нужна виртуалка линукса.
> Сильные платформы
На питоне если автор проекта не использует систему управления зависимостями и не указал конкретные версии зависимостей и самого питона, под которые он писал код, то ебля ожидает такая, что проще собрать крестовый код без системы сборки вручную. В питоне надо ебаться с виртуальными окружениями, потому что ничто не совместимо ни с чем. Есть десяток систем управления зависимостями и все они не совместимы друг с другом. Разные зависимости могут не работать с одной и той же версией питона. Поддержки актуальной версии питона нет в половине либ. У зависимостей могут быть платформозависимые зависимости, например CUDA, и тебе нужна определённая версия - другие не совместимы. В репозиториях может не оказаться нужной версии зависимости, если проект старше пары лет.
И это я только назвал то что с ходу припомнил. На деле там можно в пять раз больше список ебли составить, которая ожидает при попытке запустить код питона с гитхаба. Не говоря уже про то что если pip или anaconda вдруг будут не доступны, то шансы запустить крупный проект буквально нулевые. Не зря многие питонисты приходят к тому что просто собирают интерпретатор питона и код в exe-файл, чтоб конечный пользователь никак не взаимодействовал с экосистемой самого питона, а использовал готовый бинарник.
Боже, благослови шарп
>Лживая свинина включила дурачка "нивижу нислышу нипанимаю неттакого". Всё что нужно знать о пердолях. Когда пердоля пиздит? - Когда открываает рот.
Зачем ты уходишь от сути вопросов?
>Затем что окна это винда. Зачем мне под виндой виндовый компилятор?
Когда гсс стал виндовым компилятором?
Зачем ты сам себе задаешь вопросы? Почему не можешь ответить на прямые вопросы? Зачем ты пытаешься в перефорсы? В ньюсаче/политаче ципсошников ебать начали, поэтому ты сбежал из них?
>той же области, что и кресты
Какой области? На крестах написано много всякого старья, поэтому кресты до сих пор тянут во многие проекты, так как есть экспертиза и от легаси никуда не уйдешь.
А так - Rust. Либо Go (только для бекенда).
Вот из-за таких ебанатов, как ты, и нет кроссплатформенности. Я свои проекты собираю на трёх ОС (шинда, пинукс, макос) четырьмя компиляторами (msvc, gcc, clang, apple-clang), вот тебе и кроссплатформа. А если какой-то еблан пердолится в VS и цепляет xvalue на неконстантную ссылку, а потом удивляется, какого хуя его говно не собирается под прыщи, то ему надо просто нахуй руки отрубать.
Да, просто cmake и кроссплатформенные зависимости, если есть.
>mingw
>Это эмуляторы линукса
В принципе, всё, что нужно знать о твоей отсутствующей квалификации, можно подчерпнуть из этого писклявого пердежа в лужу.
> цепляет xvalue на неконстантную ссылку
У тебя какой-то свой личный стандарт крестов?
> четырьмя компиляторами
Даже не могу представить какой там уровень говнокода.
Он может и долбаёб, но в целом прав. MinGW и прочие высеры уровня Cygwin - это попытки натянуть POSIX на Винду, в итоге получается как обычно у пердоликов - лютый кал. Это говно не может собрать валидный код под виндовую системщину, не может слинковаться с виндовыми бинарниками, медленное, работает через жопу без гарантий стабильности. Используется в основном криворукими пердоликами, неспособными в обучение и пытающимися писать на Винде как на своих прыщах.
А по поводу кроссплатформенности и cmake - под виндой в большинстве случаев сначала гененрируют из cmake проект для VS, и только потом собирают его через MSBuild. Вот как раз всякое пердольное говно и собирается напрямую из cmake через MinGW, когда разработчики делают поддержку виды просто для галочки.
>У тебя какой-то свой личный стандарт крестов?
это у М$ свой личный стандарт крестов с кучей мокрописечных расширений конпелятора. список из 50 (по умолчанию выключенных) флагов типа Enforce Standard C++ rules for ZALUPA как бы намекает что придется поебаться для полного соответствия стандарту. а кросплатформенность без стандарта хорошо описана в начале срача. вот так вот нах
> > цепляет xvalue на неконстантную ссылку
> У тебя какой-то свой личный стандарт крестов?
Нюфаня сложнее хэллоувордов ничего не писал и не знает, что нет двух одинаковых компиляторов. Все они в некоторых моментах расходятся.
>cmake - под виндой в большинстве случаев сначала гененрируют из cmake проект для VS, и только потом собирают его через MSBuild
Бесполезная фича. Код написанный под gcc не будет работаь под msvs компилятором, придется переписывать. И это не считая зависимых библиотек, которых ты не найдешь под винду, только файлы для gcc. По факту ничего этой хуетой не соберешь.
чел..... комитет в своей бесконечной мудрости ниспослал тебе стандарт языка с++
код написанный по стандарту должен и будет сука компилироваться везде. но если ты пишешь на гцц с прыщеблядскими нестандартными расширениями то сам мудак и заслуживаешь всё то что получишь
но так как стандарт ты не читал и не знаешь что из тобою высранного не будет работать в мсвц остается только ныть в треде
> это у М$ свой личный стандарт крестов
Что ещё расскажешь, мань?
> расширений конпелятора
А в GCC их нет, да? Мокрописечность как оценил? Стандарт их разрешает, а использовать их тебя никто не заставляет.
> придется поебаться для полного соответствия стандарту
Так вот и пиши на своём вымышленном языке где хочешь, а на Винде соблюдай стандарт крестов. Если в GCC решили что какие-то новые изменения в стандарте мешают компиляции ядра, то это не значит что их можно игнорировать. GCC так-то ещё C++20 не полностью поддерживает, если ты не знал.
> без стандарта
Ты там не путай стандарты языка со стандартами ОС. У тебя так-то код из прыщей под BSD тоже не соберётся просто так.
>стандарты должен пук среньк
Типичная пердоля с шизофантазиями в глилой черепушке, никак не соотносящимися с реальностью, где у каждого компилера свои фичи кода, библиотеки и т.д., ничто друг с другом не совместимо. Написанное под одно не будет работать под другим, никак.
Если конечно разработчик не учитывает эти обстоятельства и не поддерживает разные компиляторы своими руками. Но конечно от пердоскота такого ожидать не приходится, так что... опять реальность показывает своё мерзкое ебало.
>есполезная фича. Код написанный под gcc не будет работаь под msvs компилятором
Что за шизофазия у вас тут происходит?
Если ты пишешь на расширениях компилятора, то ты пишешь не на C++, а на каком-то другом языке, не описанном в стандарте и книгах.
>а если, а хуесли
Зачем пиздеть когда етсь гитхаб полный кода. Берешь и проверяешь обсираешься. Но нет, дегенерат не может смолчать, надо пиздеть становясь всё тупее с каждой порцией пиздежа, ведь сам в эту чушь верит.
Но хочу понять как устроена работа криптовалют, как к блокчейну прикрутить смартконтракты, ассеты (NFT и токены).
Какие книги и курсы посмотреть, чтобы от человека который не шарит в C++ дойти до создателя криптовалюты с собственным блокчейном?
Ты специально ищешь такие проекты на гитхабе от васянов, чтобы подтверждать веру в свой манямирок. Популярные кроссплатформенные либы не юзают расширения компиляторов.
Ты бы лучше шёл в язык для блокчейна - раст. Там зумерки тебе пояснят за все эти зумерские технологии.
спасибо
Я бы взял кют, но просто потому, что хорошо его знаю.
А так, если для внешней оболочки, тебе на самом деле вообще все равно на каком языке или библиотеке писать.
Товарищи, я хочу сам не знаю что, подскажите что делать
Ну так-то если vulkan + imgui, то в зависимости от задачи, ебля может оказаться куда приятнее, чем с qt
И долго в этот вулкан вкатываться? Что из матана нужно знать? Где юзается вообще?
>не самое худшее что бывает в плюсах
А что бывает?
> И долго в этот вулкан вкатываться?
Долго, и сначала все начинают с OpenGL
> Что из матана нужно знать?
Для самого вулкана ничего, но в целом в геймдеве нужен линал
> Где юзается вообще?
Самая большая сфера это геймдев, будешь в кишочках игрового движка ковыряться
>А что бывает?
пилить десктоп на Qt, эмбеддед, в яндексе каком то на нём сервисы свои пишут, ну создание чего то низкоуровневого начиная от драйверов, заканчивая бд и тд
и последняя геймдев - unreal engine
сам вакансии лучше глянь, и посмотри где плюсы используют
Да я смотрел вакухи, хз что выбрать. Не хочется быть бомжом по итогу и не хочется писать пресную однотипную хуйню. Гейдев - хз, мутная тема, особенно с последними веяниями повестки.
Ну слушай, если ты вобще не знаешь зачем тебе плюсы, ты уверен что ты хочешь в них вкатываться?
Да я отчасти и так вкатившийся, за стандарты шарю, стл. С бустом и кьютами копался. Но ничего серьёзного, хотя 3 опенсорса до более-менее человеческого вида довёл. Ща хочу из веба переехать, вот и думаю во что лучше.
>попытки натянуть POSIX на Винду, в итоге получается как обычно у пердоликов - лютый кал
Руслан, ты заебал
>Если в GCC решили что какие-то новые изменения в стандарте мешают компиляции ядра
Пиздец шиза. Вроде уже не весна, пошто у тебя обострение-то?
>под чем угодно можно с бд работать
Нельзя, я однажды под чем-то наебнул базу на проде доставки еды.
Есть файл bar.h, в нём соответственно Bar и bar1.
Теперь мне нужно обращаться к объектам foo1 и bar1 (и их функциям) из других файлов, но проблема в том, что при с каждым новым инклюдом создаётся новый объект. Если заголовочник подключен два раза, то два раза вызывается конструктор и соответственно создается два объекта. Как это исправить? Мне нужен ровно один экземпляр foo1 и один bar1. Что уже пробовал: защиту от множественных включений (и ifndef, и pragma once), делать объект статичным. Всё это происходит в qt 5, если это важно.
Разберись с ключевым словом extern, пойми, зачем оно нужно, дальше будет тривиально.
>модули работают? Или ненужны?
Добавили в стандарт после 40 лет существования языка, не знаю нужны ли они.
Почему ты так решил?
Взять и посмотреть примеры. Например, в SQLite:
if (sqlite3_column_type(stmt, 0) == SQLITE_NULL) // столбец равен null
Мало того, что плюсы, так ещё теперь ковид и война.
Сто лет С++ тред не читал, а тут все так же пердоли-шизофреники хуйню несут. Что-то вечно.
Вечный срач про расширения компиляторов. Несколько тредов назад один шиз настаивал, что компилятор, поддерживающий стандарт, не должен поддерживать расширения, ведь они якобы противоречат стандарту.
да как ты сюда залазишь всё время? пошёл нахуй
Вроде, можно заставить Qt рисовать виджеты через Vulkan. Сам процесс разработки гуя не меняется.
Что прочитать чтобы стать ГЕНИЕМ C++?
В ДВА РАЗА БЫСТРЕЕ, ЧЕМ O(N)
ну вроде бы ничего тут сложного
про что почитать:
- Parameter pack
- Move semantics
- sizeof alignof
Заставлять? Он вроде с 6й версии сам использует метал/вулкан/что есть прозрачно для программиста. Ну если явно не указывать что используется.
>>>>384218
Спасибо
auto iter = a == b
? m1.find(k)
: m2.find(k);
Не пизди чух, я дохуя собирал.
Ну сделай функцию обёртку возвращающую optional, чтобы при не найденном элементе выдался nullopt. Или она может возвращать нулевой объект типа, хранящегося в мапах.
Ну ну
Не обязательно писать в его ide
А что с ним не так?
Русифицированная студия, лол. Там ещё всё Rebuild переводят как ПЕРЕСТРОЙКА?
Взлольнул
Не понимаю.
Ну типа объявление внешней функции
extern "C" int kek(int lol);
говорит что типа у функции не расширеное. Это как понять то блять? Это для лиунковщика чтоли имя функции?
Возможны перегрузки с параметрами, при которых отсутствие копирования не кидает исключение. Например, ты запретил перезаписывать файлы и пытаешься скопировать на существующий файл: вернётся фолс, но это нормальная работа функции, а не сбой.
Бля, что то глупый вопрос я задал. Ладно, спасибо за разъяснение
спасибо.
Объясните, почему так много плюсов
В том что он хочет убрать из C++ ООП? Ну а точнее в том, что он хочет из C++ убрать C++ и сделать из него хачкель.
1 +- соглы.
2 - хуйня. Сишные массивы это не отдельный тип, а просто указатели. Убрать указатели что ли? Ну нахуй. Все равно все кому надо пишут вектор или array если действительно хотят массив.
3- не могу ничего сказать. Лень думать сейчас.
4 - не врубился в систему типов. Но просто int да, нахуй. Есть int32_t и соответсвующие. Про сишное приведение соглы (почти. не уверен, что reinterpret cast всегда скастит, а иногда очень хочется). Все равно это такая штука, которую никто не пишет (почти). Прям убирать не очень надо, имхо
5 - Согласен
6 - согласен
7 - согласен
8 - не согласен. new строго лучше malloc (как раз из за перегрузок, на которые он гонит). Лучше уж malloc выкинуть.
9 -уйня ебаная. Его даже попустили в коментах к посту про классы
10 - хуйня, хуйня, хуйня. Не согласен
11 - Хуйня.
>>384882
Забавно. Интересно это действительно так? Я не знаток java, но что там такого необычного и почему мы уже все на жабе в таком случае? Конкретно у него JVM кэширует что то? Да и что он там непрерывно только матрицы считал что у него такой оптимайз случился? Больше на пиздеж похоже или ошибку в измерениях
да он долбач скорее всего. Там кста можно посмотреть в коментах обсуждение этого вопроса, но мне лень. Чел вообще шиз, там в коментах его по фактам раскидали
> Зачем ломать ABI?
Наверное, ты имел в виду "Зачем сохранять (не ломать) ABI"
Предположу, что для динамической линковки.
> 7 - функциональные макросы
Шиза. Макросы должны использоваться для повышения читаемости кода, альтернатив им просто нет. Точнее есть, но с ними надо ублажать компилятор и ебаться с отладкой, если что-то пошло не так.
> 9 - ключевое слово class
Ух, блять. Похоже кто-то не знает чем отличается структура от класса...
> 10 - ключевое слово final
Тоже шиза. В любом нормальном коде нужно запрещать наследоваться от чего попало.
> 11 - виртуальные методы
Альтернатив этому просто нет. Есть масса задач, которые будут работать очень медленно без них.
> 12 - методы
Goвнарь что ли писал статью?
>>384884
> Интересно это действительно так?
За того джавабомжа не скажу, но вообще - да, есть задачи, которые без ООП работают очень медленно - бинарные деревья и похожая работа с большим количеством вложенных объектов. Сюда же попадает шиза про виртуальные методы из статьи на хабре - без них будет очень пососно. На сишке для этого приходится изобретать ООП из говнокода, как в ядре пердоликса делали. Кресты, естественно, разъебут любой код на джаве, потому что кресты в таких задачах не на 15% быстрее сишки, а в разы.
> Точнее есть, но с ними надо ублажать компилятор и ебаться с отладкой, если что-то пошло не так
Будто макросы не нужно дебажить. (Я даже пытаться не буду говорить, что из себя представляет дебаг макросов)
> Будто макросы не нужно дебажить.
Макросы можно и нужно писать так чтоб не приходилось дебажить, в них не должно быть никакой сложной логики, он должен быть однострочным.
Отличный пример грамотного использования макросов есть в UE4/5, там много чего сделано на них. Да и вообще это один из лучших примеров качественного крестового кода.
А эксепшены тебе на что?
Чел, язык и так почти голый. Какой нахуй трейсбек? Туда буквально нихуя не завезли по меркам смузи пориджей
В дебаге есть, а в релизе быть не может. Си же готовый бинартик, а не система-интерпретатор, как это под отладчиком.
Пиздёшь. Долбоёб просто не разобрался, прога на си это считай ассемблерный мэппинг в команды проца один в один, аналогичный код на яве в принципе не может работать быстрее. Единственное что может ява ему там какую нибудь матричную инструкцию типа авх 512 запустила, но автор в любом случае долбоёб.
И что тебе не нравится? Я хочу наговнокодить себе либу чтобы потом не компилить её каждый раз
Да, проебал запятую. Жаль
Закончил вузик в мск по ит специальности. И получилось так, что вроде и что-то делать пытался за время учёбы, а по итогу хуй в стакане. Сейчас дата сосист на питоне, но контора такая, что по факту я нихуя не знаю. Выиграл пару хакатонов даже пока учился. И вот теперь бесповортно пришло время выбирать как жить дальше. Как вообще найти стажировку себе или джуновину. Какой язык взять, чтобы точно начать карьеру можно было. Знаю все и по немного по факту, но на деле языка который я бы реально знал на достойном уровне нет. ООП понимаю вроде как. Я планирую выбирать из этого примерно: Java/C#/C++/(Мб питон, но не уверен насчёт него). Хотелось бы услышать совета от знающих людей... И что вообще сделать чтобы максимально эффективно и быстро найти полноценную норм работу себе(или стажировку)
Ладно, допустим, я её собрал. Как её прилинковать теперь? Я положил её и хедер в папку к проекту, но оно говорит про undefined reference на функцию из хедера. Я вроде как указал папку с проектом через -L и саму либу через -l, gcc это даже съел, но дальше хрен
Так я работный, просто в хуёвом виде. Пытаюсь в норм айти перекатуниться...
Перекатывайся хоть на хуй. Нам поебать. Это тред крестов, а не поиска работы. Алсо, норм айти - это когда ты не пишешь код, а получаешь столько же.
А че в науке, быстрые Qt4-йобы уже все написали?
Дублирование поста из >>2385555 →
Интересно мнение с вашей колокольни
Сап. Есть всратая wifi сеть где из-за конченной настройки DHCP время от времени отлетает доступ в интернет. Фиксится перезагрузкой роутера на другом конце, но каждый ебучий раз лезть в него через браузер и всё вводить уже заебало. Давным-давно кодил на питоне и плюсах, но по работе ушел в дизайн и не вернулся. Хочу ебнуть скрипт, который сам, за меня, при потере интернета мог бы подключится к нужному IP, через нужный порт, ввести логин/пароль и дождавшись ответа "прокликать" web-интерейс роутера до заветной кнопочки "перезагрузить".
Как это сделать? Есть Python 3 / C++ и навыки джуна в обоих. Пишу в IDE и запускаю всё на винде (ибо работаю с Adobe).
Пока вот нашел, что нужно написать скрапер. Скорее всего, его будет проще сделать на Python, чем на плюсах. Но хуй знает, может в vstudio портировать библиотеки так же просто как пайчарме - анон подскажи, т.к. личные проекты у меня были лишь на питоне. Данные из скраппера нужно будет сопоставлять и в зависимости от них - запускать тот или иной сценарий действий (участок кода). Можно ли это ебануть на С++ для быстродействия? Не хотелось бы сливать 500мб ОЗУ просто на скриптик перезагрузочки роутерушки.
Алсо: можно ли без разборки прошивать роутеры и модемы? Интересует Tp Link WR-* и Eltex 1402G-W. Пока нашел только Openwrt, но мне не нужна целая ось на роутере. Просто пару скриптов дописать в прошивку, чтоб катки в рейтенге не сливать. Для этого надо открыть файлы прошивки, а вот это прям совсем новое для меня. Хз даже как гуглить.
Ротацию сетей запилить, чтоб в случае проблем с одной - сразу подключался к другой и танк не слился, пока хил ебётся со своим конченным интернетом.
Купи новый роутер, додик
У роутера помимо веб-морды есть еще телнет.
Простой вариант: У C++Builder есть готовый компонент телнета, тык-тык и готово. Коннектишься, смотришь какой текст выдает и отправляешь соответствующие команды.
Быдлоидный макакин вариант: Есть приблуды для управления браузером типа Selenium, берешь и управляешь тыкая куда надо.
> У C++Builder есть готовый компонент телнета
Первый полезный ответ за 3 треда. Пойду изучать телнет. Благодарю, анон!
Го - местное ципсо, лахта и прочее? Мимо
Из моих знакомых почти все кто хотел, смогли попасть на летнюю стажку. Если бы не учеба, то и дальше бы пошли работать. Че ноете?
> на хую вертеть ваш код
> генерируя ub
Чел, все UB в стандарте прописаны.
> Как оно там
Заебись, если знаешь что пишешь.
На баш орг
JVM с определенным тюнингом в некоторых случаях будет производительнее аналогичного кода на С++, но обычно это никому не интересно.
На джаве никто цифры не считает.
Да всякого полно, начиная от формочек на кьюти где-нибудь в обоссаном нии, заканчивая HFT алготрейдинговыми конторами Лондона, где стандартная зп - 300к фунтов в год, а премия иногда до ляма доходит...
Тут уж по всякому бывает. Конечно шансов больше в формочках навсегда увязнуть.
А так еще эмбеддед есть, может быть роботикс когда-нибудь выстрелит, как уже сказали всякая графика с треугольниками на 1000 строк, ковыряние в околосистемных вещах, видеонаблюдение, бекенд хайлоад в яндехе, движки субд, компиляторы, итд
К слову, звучит оно сперва охуеть как интересно, мол, буду не просто какой-то макакой на пхп обоссаной, а целым разработчиком движка базы данных, как те топовые челы из кликхауса, а также джеф дин и прочие гении 21 века. В реальности там полно очень унылого дрочева, которым и занимаются 90% инженеров.
Яндех?
Ты видимо из хорошего университета. Обычно только к началу 4 курсу народ начинает раздупливаться и начинает искать работу.
Пример кода, а не пример задачи.
Комменты:
>Жава быстрее С++
>Разработчики JVM соптимизируют лучше тебя
>Если сильно поебаться с мокрописькой нативных образов но там куча подводных
>Только в отдельных примерах кода высосанных из пальца
>Да нахуй ваш си нужен, главное это скорость разработки и дешевизна, и вообще железо нынче дешевеет на глазах
>Попробуйте выиграть тендер со своим си
>Подумайте что важнее заказчику
> Да нахуй ваш си нужен, главное это скорость разработки и дешевизна, и вообще железо нынче дешевеет на глазах
База
Может там алгоритмическая разница? На си наивные действия с матрицами на каждый чих, на джаве прокси классы с вычислением результата со всеми действиями в последний момент (во всяком случае так на крестах пишут).
>оправдано ли в 2422 году использование виджетов когда есть QML?
Есть вещи, которые на кюмл делаются довольно костыльно по сравнению с виждетами, но в основном в плане верстки он гораздо удобнее.
Маркетинговый пиздёж, всякий кто имеет хоть малейшее представление что такое веритуальная машина должен это понимать. Там обычно идет имплайинг что на сях специально написано через жопу и суппозинг что на яве правильно.
Не пизди чух.
Такое возможно только если яве удается задействовать векторые инструкции а С насильственно ограничивают голым x86.
Типы должны быть заданы уже на компиляции, следовательно эта хрень работает только с константами. А так вроде норм.
Я про (true ? a : b) - нахуя оно нужно, если один хуй всегда a возвращается?
На фото Страус до облысения?
Это Страуструпп 23
int func(){
return / код ошибки /;
}
int main(){
if(func() == / код ошибки /){
// её дальнейшая обработка
}
}
Но если ты не шиз, то обрабатывай через throw-catch.
Я чёт слегка запутался между этим тредом и закрепом. То, что я написал - это обработка ошибок в стиле Си, которая в данный момент считается устаревшей и только усложняет код.
Имхо, пусть коды ошибок юзает. В исключения еще учить надо, а там есть тонкие моменты
Раз он спрашивает такое, то ему далеко еще до этого. Он не сможет понять до конца некоторые части исключений без знания других областей языка
>коды ошибок
std::pair<int, T> wrapper_govno() {
const auto res = govno();
if (res) {
return std::make_pair(0., res);
}
}
Уебал бы за такой код.
Ну блин, обработка ошибок это не просто да. Он может, конечно, выучить че то с исключениями, но ему потом придется переучиваться. Имеет ли это смысл?
Там еще можно goto error писать, а не 100500 вложенных ифоф, но да, без исключений туго
И если чел скажет что именно ему нужно обрабатывать, то я мб скажу как бы сделал я
Очевидно с написания какой-нибудь тестовой программы. Пока будешь её писать всё само самой утрясётся.
Получить хелло ворлд или коробочки с кнопочками я могу и не открывая код. Прежде чем что-нибудь исполнять нужно хоть какую-нибудь базу заиметь. Это же тупо - на каждый базовый чих в гугл лезть.
> Получить хелло ворлд или коробочки с кнопочками я могу и не открывая код
Напиши что-нибудь более сложное, чем хелло ворлд или коробочка с кнопочками.
> Это же тупо - на каждый базовый чих в гугл лезть
Нет.
>Qt C++ how to draw window
>Qt C++ how to inherit QObject the right way
>Qt C++ what is signal
>Qt C++ implement signal the right way
>Qt C++ what is slot
>Qt C++ implement slot the right way
Может тут и есть такие медитативные аутисты, но мне проще 4-5 часов потратить на базу и уже после, благодаря охуительной памяти приступать к написанию более сложных вещей.
Придурочный максималист.
Возврат ошибок и исключения это вообще разные вещи. Оборачивать каждый пук в try{}catch{} вот что усложняет код превращая его в помойку. Исключения это НАЕБНУЛОСЬ-КАРАУЛ, они используются в ИСКЛЮЧИТЕЛЬНЫХ случаях, а проверять коды возврата это рутина, там исключения нахуй не нужны, ибо проверки идут по цепочке, а исключения летают хуй пойми где.
Всё ещё актуальная ошибка. Оно видит либу, но почему-то не тянет из неё функцию, хоть она и плюсовая
Одинаковые
>Я вроде как указал папку с проектом через -L и саму либу через -l, gcc
Попробуй указать флаги -L и -l в конце всех аргументов.
Так и было
Нужно переписать динамическую библиотеку для подключения к модему.
22 года
Закончил ВУЗ Информационные технологии, сейчас на магистратуре(там же)
Шлее можешь почитать
Допустим есть код:
SetCur(0, 0);
SetCol(wht);
cout << screen_wht;//Рисует в консоли белый текст
SetCur(0, 0);
SetCol(grn);
cout << screen_grn;//Поверх рисует элементы зеленого текста
Как сделать так, чтобы зеленый текст не закрашивал символы белого текста? Мб можно как то вместо пробелов юзать какие-нибудь прозрачные символы? Такие вообще бывают? Если что, посимвольный вывод не канает, как и дробление второго текста на части, с промежуточными перемещениями курсора.
Я знаю, что я маюсь фигней, но интересно же
>Как сделать так, чтобы зеленый текст не закрашивал символы белого текста?
Имеется ввиду, чтобы пробелы зеленого текста не рисовались
>Если что, посимвольный вывод не канает
Канает, канает. Печать текста это и есть посимвольный вывод. Если не хватает скорости стандартных говноункций (а они дико медленные по определению) пиши на ассемблере вывод непосредственно в видеопамять (твоей консоли разумеется). Отвечаю, будет летать, у меня летало даже на 386 компьютере. У каждого символа, кроме его собственного кода, есть еще цвет фона и его самого, а еще можно делать моргающим. Складываешь чиселки как надо, а потом - вууш! в память и готово.
>пиши на ассемблере вывод непосредственно в видеопамять
Лучше б сразу на хуй послал. Я ж нюфаня, делаю прогу по приколу, а не чтобы заебаться в край на пустом месте. (Хотя вопрос тоже интересный, если там не особо сложно, то мб даже почитаю, только подскажи, плс, что конкретно гуглить? "Ассемблер вывод текста в видеопамять" - это оно? Мб сишные аналоги двойной буферизации имеются без ебли с регистрами?)
Но вопрос (>>386565) про "прозрачные" символы вместо пробелов все еще в силе, если что, если решение без ебли, конечно, вообще существует
>Лучше б сразу на хуй послал.
Чел, ты с С++ треде, но не знаешь как писать в память? Это не я, ты сам себя послал.
И я немного проебался, ассемблер не нужен, ведь си и так в него неплохо транслируется. Просто делай на си как обычно формирование чисел, а потом пиши их по адресу буфера экрана. Координаты определяются элементарной арифметикой относительно начала буфера. Ты тупо в цикле заносишь в память байты со своим текстом. Хотя, ведь даже готовые функции есть вроде memcpy()
>Чел, ты с С++ треде, но не знаешь как писать в память?
>Нюфаня
Я пока много чего не знаю.
>Просто делай на си как обычно формирование чисел, а потом пиши их по адресу буфера экрана.
https://docs.microsoft.com/ru-ru/windows/console/console-screen-buffers Оно?
> новая функция
Функция не обязана в принципе существовать.
> компилятор оптимизирует в пределах одной единцы трансляции
Все современные компиляторы умеют оптимизировать весь код.
Нужные хуевины:
https://docs.microsoft.com/en-us/windows/console/writeconsoleoutput
https://docs.microsoft.com/en-us/windows/console/char-info-str
Готовый код примера как юзать:
https://docs.microsoft.com/en-us/windows/console/reading-and-writing-blocks-of-characters-and-attributes
Получилось не так прямо, я не увидел как можно получить тупо указатель на память, но эти функции делают то же самое (но память сука скрывают под капотом) и даже есть удобная структура для описания всех атрибутов символа. Халява для тупых и ленивых.
Ого, спасиб, правда я сам уже кое-что нарыл по теме. Ща просто нет времени самому все гуглить подробно, так что спс, что сэкономил мне пару часов.
Спрашиваю, потому что не могу на свой ноут скачать vs. Непонятная ошибка, которую исправить невозможно. Стоит ли использовать clion в таком случае? Или он настолько плох, что лучше бросить это дело?
Скажи ещё спасибо, что можешь юзать Clion, а не давиться всяким говном типа Qt Creator, Code Blocks, Eclipse, VS Code.
>Eclipse
Один раз писал на джаве, сам язык конечно лютое говно, но Эклипс вполне понравился, и он даже не тормозил как обычно тормозят джавовские проги. Например среда от JetBrains люто бешено тормозит, а Эклипс летает, и всякие фичи типа интеллисенса крутые есть. Но насчет си не скажу.
неплохая задача, я бы ее сделал будучи в твоем возрасте без особых проблем, тоже отучился на программиста и какое то время работал после вузика
мимо безработное говно
исключения были добавлены в язык по простой причине: конструкторы и перегруженные операторы ничего не возвращали, но как то сигнализировать о ошибке внутри их нужно было
об этом сам страуструп подробно писал в "дизайне и эволюции с++", но книжки читают всякие лохи которые заканчивают жизнь обоссаными под забором, понимаю
Что за хуй на пике?
О, у нас тут пердоля рвется. КОНПЕЛИРУЕШЬ хелло ворлды все еще? Потому-что очевидно, что ни одна контора вимодебила на работу не возьмет.
Че то я хз, либо я что-то делаю не так, либо и вправду WriteConsoleOutput - не самая быстрая функция. Крч, я передаю ей массив CHAR_INFO в 200*140 символов и на это уходит 50-100мс. Мб есть способ ускорить передачу в буфер? Или это пердел?
Это не тот Егор.
2) как правильно скопировать строку символов в массив символов?
>это не считается изменением переменной
Считается.
>ведь она const?
Константные данные, а не указатель.
>как правильно скопировать строку символов в массив символов?
Берешь и копируешь.
>Берешь и копируешь
Я конечно мог бы просто присвоить если бы с обеих сторон были указатели на строки, но строки так нельзя копировать,новый указатель просто будет указывать на старый, надо каждый символ скопировать.
а что за предупреждение вылезает?
У тебя нет строк. Строки это std::string, CString, AnsiString и тому подобные объекты, а у тебя лишь массивы (чисел) и указатели (на память), вот и манипулируй ими как положено. Например для копирования генерик байтов памяти есть memcpy(), а для того же самого, но в виде литералов с нуль-терминатором есть strcpy(). Но это системно и конфигурационно зависимая байтоебля, совершенно ненужная для твоей задачи тупо юзать строки, вот и пользуйся строками - std::string например.
Ок, я видимо накосячил (хотя хз, где я там мог ошибиться - делал по примеру из доков). Можешь код прикрепить, если не трудно?
Спс, либо в течение дня, либо вечером поковыряю
Потестил твое. В общем, как и ожидалось, пропорциональное изменение кол-ва символов в буффере приводит к пропорциональному росту производительности. У тебя 3451 символ, а у меня 28 000
Ну да, я тоже заметил что чем больше, тем медленнее. Но у тебя какой-то совсем большой экран? Попробуй Far Manager потестить в таком размере. Если что, его исходники на гитхабе.
Да не, ты правильно говоришь, нахуй не надо столько, сколько у меня. Но блин, всегда охота, чтобы подобные мелочи минимально влияли на производительноть. А что если я дерьмака3, например, захочу в консоли запустить? А? А? Ну вот... то то же...
По идее прямая запись в память не тормозит независимо от объемов, но как мне видится, дря получения прямого указателя на буфер надо реверсить винду продираясь через эти анальные ограничения майкрософта, а я не хакер. Налепили прослоек "ради безопасности/стабильности" всё попрятали, вот и сиди соси палец.
Да ладно, пох. Мне рили не больно то и хотелось. Есть куча способов сделать ту же херню и без консоли. А пока свою прогу лепил, я то тут то там натыкался на разные "положительные" отзывы о производительности мелкомягкой консоли, так что, видимо, есть таки пердел по быстродействию, который так просто не пересечь.
Я вообще заморочился этим тупо в целях самообразования. Но нет - так нет.
Хуйню что си это ассемблер обычно пишут макаки, ни разу не писавшие компилятор. Забей.
"Плюсы" это Си с Плюсами, т.е. в том контексте: С == С++, просто не было смысла специально упоминать плюсики.
А, я не так прочел.
Ну вощем си или крестовый код сразу транслируется в нативный, так удобнее для оптимизации, он правильно написал.
В принципе - нет. В современном си есть фичи, которые не поддерживают кресты, но они почти всегда нужны для обхождения ограничений си которые в крестах уже не валидны.
Остановись, перезагрузись чтобы всё забыть (стереть ОЗУ), и начинай думать с чистого листа, медленно:
"С++" это "С" + "++"
"С" - левая рука...
"++" - правая рука...
...одного и того же "С++".
Как могут две руки уступать одной из них? Это шизофазия, понимаешь?
А основные направления оптимизации проги в плюсах какие? Понятное дело распараллелить, переписать что-нибудь тяжёлое на асм, О3 ебануть, что ещё?
Что ты сочиняешь? Си код транслируется в ассемблер. Если ты напишешь на си цикл копирующий блок памяти, то получится тот же цикл на ассамблере, или даже лучше, быстрее, так что писать на ассемблере нет смысла, ты ничего не выигрываешь.
Толсто.
>переписать что-нибудь тяжёлое на асм,
А вот нихрена. На современных (ну как современных, с 90 х в массмаркете) процессорах параллелются вычисления на одном ядре, поэтому для лучшей производительности надо подбирать опкоды, которые равномерно грузят пайплайны процессора. Вручную это очень сложно, эффективнее предоставить все компилятору, их пишут те ещё гики.
> процессорах параллелются вычисления на одном ядре, поэтому для лучшей производительности надо подбирать опкоды, которые равномерно грузят пайплайны процессора
Не неси хуйни. Макрокоманды дробятся на RISC-подобные самим процессором, а не компилятором, и параллелятся потом тоже им.
На максимальном уровне оптимизации компилятор может разве что векторизовать вычисления. Но может и не векторизовать, поэтому лучше всё делать ручками, если есть возможность.
Это Деннинг Крюгер или просто идиотизм?
Помогите тупому стьюденту с задачей, над которой уже больше 2 часов бьюсь.
Вот сама задача:
У нас есть строка (к примеру "hello world"), мы должны вывести каждое слово в квадратных скобках и в новой строке.
[hello]
[world]
Но у меня после первого слова появляется пробел
вот так:
[hello ]
Был бы крайне признателен за ваши советы!
Спасибо тебе большое, очень выручил!
У вас там си изучают, или все таки c++? Потому что если второе, то надо писать таки на c++. Гугли istringstream, insert
Этот прав.
Читал, как в блендере переписали импорт с питона на плюсы и получили выигрыш по памяти и скорости в дохулионн раз
https://aras-p.info/blog/2022/05/12/speeding-up-blender-obj-import/
Да я сам изучаю (1 курс), от своей шараги чего-то нормального не дождешься кроме 1С и калькулятора на c++ который версии ещё с 90-х наверное
Хорошо, спасибо
Слишком дохуя чести. Я и так суммарно ~3к страниц начитал по этому языку. Как заспидранить?
F9 - поставить точку останова на нужную тебе строку
F5 - запуск программы в режиме отладки
Когда дойдет до точки останова, программа встанет на паузу и появится отладчик со стрелочкой на этой строке. Теперь можно смотреть все значения переменныз и т.д., дальше можно выполнять программу по шагам (F10 или F11) и смотреть как работает. Очень удобно.
Нет, серьезно. >>387228 подобное скажет только беспомощный ламер. Обычно это такие тупые бабы, как раз уборщицы туалетов. Потому что даже в магазине продавщицы сами обслуживают например электронные весы с принтером чеков, а не пукают "Не работает..." разводя руки. Ниже продавщицы кто? Только уборщица которая сложнее тряпки и швабры осилить не может.
Смотри сюда, гений. У меня прямо сейчас открыт гдб, я нём тыкаю эти кнопки и угадай что? Ты не угадал, происходит целое нихуя!
>У меня прямо сейчас открыт гдб
Поставь операционную систему и IDE вместо своих доисторических палок-копалок
Если ты хочешь заниматься хуйней, а не писать код - то конечно, поебись с гдб, попиши в виме, не забудь руками писать мейкфайлы, ведь это так по хакерски.
Если ты хочешь писать код - ты пишешь код при помощи современных средств разработки.
>У меня прямо сейчас открыт гдб
Значит ты уже пользуешься дебагером, а вопрос был от того кто не знает как пользоваться >>387222
Ну и зачем ты влез со своим бложиком? Никому не интересны бессмысленные комментарии ни о чём. Это срань, гадишь в публичном месте. А срут в туалетах, вот снова и вернулись к туалетам, убирай за собой.
Я заебусь перечислять киллер фичи. От встроенного статического анализа и автоматического менеджмента билд системы до нормального дебаггинга с брейкпоинтами и умного рефакторинга
Еще в C++Builder (Embarcadero RAD Studio) работает, только F5 и F9 поменяны местами, лол.
>Любая среда.
>Я заебусь перечислять киллер фичи. От встроенного статического анализа и автоматического менеджмента билд системы до нормального дебаггинга с брейкпоинтами и умного рефакторинга
>Любой редактор на электроне.
>Я заебусь перечислять киллер фичи. От встроенного статического анализа и автоматического менеджмента билд системы до нормального дебаггинга с брейкпоинтами и умного рефакторинга
>Любой популярный браузер.
>Я заебусь перечислять киллер фичи. От встроенного статического анализа и автоматического менеджмента билд системы до нормального дебаггинга с брейкпоинтами и умного рефакторинга
Только это работает и юзабельно, собстно, только в студии и шлионе. Частично в культекреаторе.
А может быть это просто ты Ctrl-C/Ctrl-V макака которой нравится навязанное говно изкаропки?
Мне платят за то, что я дизайню и делаю фичи в продукте, а не за то, что я трачу время на хуйню, на которую время тратить не надо, при использовании нормальных средств разработки.
Ну, за работу получают зарплату, если ты не в курсах. Хотя очевидно, что у тебя пенсия по шизе
Круто ты устроился. Поговнокодил, коллегам на кофейной гуще погадал - сказка а не жизнь.
Мань, хватит проецировать то. Не все тут неудачники-вкатуны.
Если когда-нибудь устроишься на первую работу - узнаешь много нового для себя.
Например что такое писать в прод и чем это отличается от твоей laba2.cpp, зачем нужны тесты, что такое CI\CD, почему люди используют нормальные тулсеты, почему ты вообще нихуя не знаешь и не умеешь, хотя думаешь по другому.
Зачем мне узнавать то, что я знаю уже несколько лет? Это же просто прикол вроде пересматривания фильмов по 100 раз?
>такое писать в прод и чем это отличается от твоей laba2.cpp, зачем нужны тесты, что такое CI\CD
Потому что барин приказал. Ты же не принимаешь эти решения, ты просто обычный раб, как и везде, делаешь что говорят, бездумная марионетка.
Например?
Ты бы так и сказал, что в ПФР эникейщиком работаешь. Иначе как объяснить наличие у тебя доступа к базе.
Что не так-то? Не ты решаешь пользовать тестами или нет, и всем остальным. Ты это всё делаешь потому что тупо подчиняешься чужой воле. И еще кого-то зовешь тупым. Ты же еще тупее.
Я даже не знаю, что ответить на этот бред шизофреника. Наверное это "троллинг".
Это правда. Да, горькая правда.
Хвалиться что ты РАБ-откодрон... ну это за пределом разума и адекватности. Только раб гордится своими кандалами, в том числе и оковами разума, неспособностью жить и думать самостоятельно, а только повторяя что его другие надрессировали делать.
И это ничтожество еще надувается изображая превосходство перед другими. Тьфу, кринж.
Может кто то знает как скачать фаилы из ftp сервера из браузера все разом, я не хочу скачивать по одному фаилу и патом создавать папки с такими же названиями и восстанавливать структуру каталога вручную. Это только с помощью filezilla можно сделать? Я просто хотел компилятор под линукс скачать, что бы скомпилировать программу, но gcc компилятор лежит на ftp сервере, и там нет кнопки скачать все разом
Ну я точно не пытаюсь троллить
Если у тебя нет графической среды, то и приложения с графикой не заработают, при запуске в консоли тупо будет ошибка наподобие "x server not found".
seek/tell
Тебе надо узнавать не количество строк, а размер файла. Что, если строка только одна, но в ней 100500 символов?
ты скорее описал сейчас некое апи к поисковой системе интернета, где на запрос получаешь выборку из подходящих ссылок
просто прочитывай файл в вектор из строк
это самое простое и надежное если ты начинающий кодер
помню когда то давно осваивал линукс таким способом: поставил netinstall debian, и далее в чистой консольке, почитывая при этом книжки, начал пытаться разбираться, делать какие-то простейшие вещи типа работы с файловой системой и прочее, потом vim освоил, потом уже накатил голые иксы, и прямо там разбирался с ними, играясь с иксовыми клиентами-серверами, а потом уже накатил тайловый менеджер и уже только тогда оказался в относительно привычной для среднего хомячка среде
к чему я все это написал? а к тому что у меня все это заняло просто дохуищи времени, несколько месяцев
так чтож наверное если ты не упоротый фрик, просто поставь себе какой-нибудь юзер-френдли дистрибутив линукса чтобы там сразу же было настроено окружение, в том числе и какая нибудь простая рабочая среда, похожая на окошки windows
Неет, я именно про более низкий уровень.
Сейчас я думаю в примитивных рамках - на стеке когда объектов мало/они сами по себе малые или когда просто похуй. Этого явно недостаточно, поэтому давайте подробности.
Почти всегда на стеке надо. Если объект ебать какой большой, то можно на куче. Ну еще там есть случаи, конечно, но они обычно сами в голову приходят.
Свинобыдло уже всех достало, тыкают носом.
Внаглую врываюсь в тред чтобы портирвоать вопрос из прошлого треда.
Как заставить интеллисенс в выстудии показывать доки к методам как на пикрел1 (скриншот с сайта вскода, надеюсь, что встудия тоже так умеет).
Судя по всему, в студии другие исходники, там комментов нет. В вскоде же попенсорсные библиотеки, а в студии майкрософтовские.
Какой же ты дегенерат. Кресты, наверное, учил по видосам с ютуба?
https://docs.microsoft.com/en-us/cpp/build/reference/summary-visual-cpp?view=msvc-170
Что, блять, плохого в использовании Hugnarian Notation? Я постоянно слышу нахрюки, в основном из гугла и стак овердроч что это ПЛОХАЯСКОЗАЛ!!!
Почему нельзя ставить "C" перед классом? Или "S" перед структурой. Если вы, блять, говорите, что и классы и функции имеют CamelCase, мне же нужно отличить тип от функции, ебаный врот!
Или, допустим, p перед указателем или k перед константой. Что в этом плохого, СУКА?
в этом нет смысла, т.к. IDE тебе все подсказывает и подсвечивает.
Если ты идейный программист в блокноте\виме - хоть говном обмазывайся, юродивые не нужны.
>IDE тебе все подсказывает и подсвечивает.
Мне так удобнее, я так даже в IDE делаю, потому что ебал каждый раз тыкать и смотреть что-то.
> в основном из гугла
У гугла везде сишка с классами, хули ты слушаешь этих опущенцев, пишущих на C++03.
> стак овердроч
Что-то уровня МайлРу.Ответы. Уровень компетенции примерно такой же. Там в основном сидят студенты, бывает цитируют стандарт, бывает шизу пишут, но в целом по палате всё плохо.
Доки по STL у ms на самом деле так себе. По некоторым местам вообще нет, либо старые. Лучше cppreference смотреть.
>У гугла везде сишка с классами, хули ты слушаешь этих опущенцев, пишущих на C++03.
Двощую. Им HungarianNotation НЕНУЖОН
>Что-то уровня МайлРу.Ответы. Уровень компетенции примерно такой же. Там в основном сидят студенты, бывает цитируют стандарт, бывает шизу пишут, но в целом по палате всё плохо.
Именно так. Да еще и визгливые какие.
Это к вопросу о том, что быстрее:
unsigned bVariable : 1;
или
bool bVariable;
Второе. Но не всегда. Заебешься измерять. А еще с битовыми полями по жизни заебешься.
>>388992
Никак. Если у тебя =delete ломает код, то ты где-то инициализируешь конструктором без параметров, как бы не хотелось отрицать. Посмотри optional.
>>388984
Всегда на стеке, когда можешь. Если никак не можешь на стеке, то только тогда хип. Если большой массив, то ты идешь нахуй и создаешь вектор на стеке, а он выделяет где захочет.
>>387575
Нельзя, если кто-то уже за тебя не посчитал. Но ОС этим заниматься не будет.
>>387029
Про restrict забыл.
> ты где-то инициализируешь конструктором без параметров
Перед вызовом конструктора, в котором я их ещё раз инициализирую конструктором с параметрами. Нахуй тогда нужен конструктор, если до его вызова один хуй все члены класса должны инициализироваться дэфолтным конструктором? Нахуй два раза происходит инициализация?
>Что, блять, плохого в использовании Hugnarian Notation?
>cString - константа.
>cString - класс.
>cStrings - счетчик имен.
>cString - сишная строка (без нотации).
Обычная ситуация, когда какой-то проект использует несколько библиотек, в 3-ех из них венгерская нотация. В каждой библиотеке свои обозначения для нее. В чем преимущество?
венгерская нотация полезна была в языке си потому что в некоторых случаях по типу переменной ты не мог догадаться что на самом деле это за сущьность; самая главная проблема была в указателе на char, он мог означать множество вещей: единичный символ, строковый литерал, строковый литерал в read-only памяти, сишную строку с нулем на конце, байт, байтовый массив и прочее; особенно это было неудобно при отладке; поэтому приходилось добавлять аннотацию в название переменной
в языке с++ же просто под каждую сущьность пишется класс и все
в то же время mfc была гибридной крестовой библиотекой, построенной поверх сишного winapi ядра, и там согранили эту самую венгерскую нотацию, причем стали лепить ее уже там где не требовалось; и с этого уже и началась критика этого подхода
> и все
А потом этот говнокод невозможно читать без IDE. Заходишь на гитхаб и невозможно понять что за поебота там написана, как дебил потом скролишь вверх-вниз чтоб посмотреть что же там такое было, или ещё хуже - надо с хедером постоянно сверяться.
Вот хотя бы почитайте как код для людей пишут, даже объяснено зачем:
https://docs.unrealengine.com/4.27/en-US/ProductionPipelines/DevelopmentSetup/CodingStandard/
Я чет не врубился, а разве cmake как то зависит от платформы? Это же просто набор правил с какими ключами и какие компиляторы вызвать, не?
Так открой в ide
Конечно зависит. Cmake используют только пердоли под линуксом, а там gcc со своими либами и прочим линуксовым мусором. Что толку что Cmake сгенерит тебе проект под msvs, если код нихуя не совместим и либ нет. Ты видел линуксовые деревья зависимостей пакетов? Удачи это руками портировать всё и воспроизвести на винде.
> Что толку что Cmake сгенерит тебе проект под msvs, если код нихуя не совместим и либ нет
1) Речь идет о коде у которого либы кроссплатформенные
2) Что значит код несовместим? Есть стандарт блин. Он должен быть совместим (Если конечно писать как надо)
> Ты видел линуксовые деревья зависимостей пакетов? Удачи это руками портировать всё и воспроизвести на винде.
Почему я не могу указать просто в cmake папку где искать зависимости, а зависимостями будет рулить vcpkg или conan?
>1) Речь идет о коде у которого либы кроссплатформенные
>2) Что значит код несовместим? Есть стандарт блин.
Ну, для хеллоуворлда хватит, действительно соберется, а что побольше, даже не пытайся, высрет миллион ошибок всех видов и цветов и ебись как хочешь.
>Почему я не могу указать просто...
Жизнь такая - непростая. Если считаешь что можешь, вперед, никто же не держит. Только не забывай сюда писать свои похождения, я хоть поржу.
Я хотел покопаться в попенсурс проекте на винде в vs, а там почему то ебля с mingw. Я вот сейчас думаю что там такого. Вроде pthead юзают, но нахуя, если есть std thread. Скорее всего проект старый слишком и тогда еще этого не было, но я не уверен.
Чего там осиливать-то, фуфел пердольный? >>389745 в сообщении даже написано что делать - ставить мумулятор пердикса и вперед, родной пердокод под почти родной средой даже наверное соберется без большой ебли. Написано правильно, MSYS2 действительно лучшее из недопердоподобий под виндой. Но таки еще рекомендую осилить WSL2, там линукс еще роднее, надежнее.
> в сообщении даже написано что делать
Я вижу что делать. Оно собралось за 2 минуты, но меня интересует вопрос почему так. Почему для винды в cmake исключение стоит?
Ну так убери это исключение и собирай. Вот и узнаешь.
Так пиши разрабам чтобы нормальную поддержку винды сделали
Я тоже могу что угодно написать в симейке, например что ты пидор гнойный
Дай, угадаю, ты пишешь вот так:
struct Huynya {
Pizda pizda;
Huynya() {
pizda = Pizda(123);
}
};
Тут ты сначала вызвал конструктор без параметров, а потом переприсвоил. А надо так:
Huynya() : Pizda(123) {
}
https://ravesli.com/urok-117-spisok-initsializatsii-chlenov-klassa/
>>389484
Нет в стандартных плюсах restrict. Только расшиирения компилятора.
>>389735
Засунь лямбду в cppinsights.io и наслаждайся. Это то же самое, что создать класс с перегруженным operator()
>>389745
Используют в CMake какую-то лютую хуйню, которая под виндой не работает.
>>389757
Зависит, если захотеть творить хуйню. А иногда хочется передать особый ключ, который есть только у гцц.
Дай, угадаю, ты пишешь вот так:
struct Huynya {
Pizda pizda;
Huynya() {
pizda = Pizda(123);
}
};
Тут ты сначала вызвал конструктор без параметров, а потом переприсвоил. А надо так:
Huynya() : Pizda(123) {
}
https://ravesli.com/urok-117-spisok-initsializatsii-chlenov-klassa/
>>389484
Нет в стандартных плюсах restrict. Только расшиирения компилятора.
>>389735
Засунь лямбду в cppinsights.io и наслаждайся. Это то же самое, что создать класс с перегруженным operator()
>>389745
Используют в CMake какую-то лютую хуйню, которая под виндой не работает.
>>389757
Зависит, если захотеть творить хуйню. А иногда хочется передать особый ключ, который есть только у гцц.
Почему то в cmake пик 1 вместо пик 2. Я не эксперт, но второй вариант проще, нет?
Ну и 10500 ошибок ненайденных библиотек. Сейчас попробую указать vcpkg toolchane file
Ты можешь обозначать их, как хочешь, но венгерская нотация не имеет единого обозначения префиксов, поэтому для каждого проекта она может быть разная, в итоге будет то, что я написал.
Ты же пердоля, или кто? Лучше меня должен знать, что у пердолей - швабодка, слать нахуй все замечания: "код открыт, правь сам, а мы никому ничем не обязаны - за бесплатно пашем, ололо". А про любовь их к винде отдельная песня. от такого запроса они еще больеш косяков напихают, назло, чтобы в винде не собралось никак.
Ну и в чем они собственно не правы?
> Тут ты сначала вызвал конструктор без параметров, а потом переприсвоил. А надо так:
А если я не могу константой инициализировать? Если мне надо некий код выполнить перед этим, который не имеет отношения к члену класса? Нахуй тогда конструктор, если всё равно надо пытаться наебать компилятор и каким-то способом инициализировать член класса до вызова конструктора? Звучит как полная хуйня. После вызова дэфолтного конструктора переменная не валидная, но меня заставляют всё равно делать это. Можно, конечно, этот некий код затолкать в конструктор той переменной, но нахуй нат тогда ООП, если в итоге я буду лапшу каких-то значений сверху вниз до самого нижнего уровня перенаправлять? С таким же успехом я мог написать процедуру из 1000 строк без абстракции и классов.
visual studio.
Можешь, напиши константу при объявлении поля.
Но все члены класса должны быть проинициализированы до начала конструктора. Либо при объявлении поля, либо через вот это двоеточие явно говоришь, какой из ее конструкторов вызвать вместо дефолтного. Иначе либо требовать от тебя ручной вызов всех деструкторов (заебаться), либо компилятору запоминать, какие конструкторы ты успел вызвать, а какие нет (как в расте, тратить память).
Или не стоит заморачиваться?
> либо компилятору запоминать, какие конструкторы ты успел вызвать, а какие нет
В чём, блять, проблема выдавать ошибку компиляции, если все члены класса не инициализировались в конструкторе? Компиляторы всякой JIT-параши умеют проверять такое, а нам не положено? А потом удивляются откуда баги, вот же буквально заставляют делать дырявый код - что-то инициализировано дэфолтным конструктором, который не инициализирует нихуя и только ублажает компилятор, а явно запретить делать такое не дают.
>Создам себе свой cmake проект на винде
Зачем? CMake проект независим от платформ, зачем его делать когда есть готовый? Просто исправляй чтобы работало. И сразу советую касательно msvc, не пытайся сгенеренный проект открывать в IDE, там жопа, лучше в девеловерской студийной консоли юзать msbuild (или как там оно) в командной строке.
Тем что ISO/IEC официально заверен жидами, а Working Draft - нет. Как не сложно догадаться, жиды работать бесплатно не будут ни при каких обстоятельствах.
> Зачем? CMake проект независим от платформ, зачем его делать когда есть готовый? Просто исправляй чтобы работало.
Большую часть я естественно оттуда возьму, а часть перепишу на свой лад.
> И сразу советую касательно msvc, не пытайся сгенеренный проект открывать в IDE, там жопа, лучше в девеловерской студийной консоли юзать msbuild (или как там оно) в командной строке.
Спасибо
А хули бы нет? Потому что могут!
В чем проблема обновить cmake?
Берешь, учишь
>>389868
Сначала попробуй подебажить проект из двадцати потоков, а потом спрашивай. Удобно хотя бы воркеров от мониторинга отличать в стектрейсах и отладчики.
>>389856
В плюсах не принято выдавать ошибки компиляции, в плюсах принято верить программисту.
> что-то инициализировано дэфолтным конструктором, который не инициализирует нихуя и только ублажает компилятор, а явно запретить делать такое не дают.
В смысле блять, я тебе выше написал, как инициализировать так чтобы запретить дефолтный. Хочешь запрети дефолтный - запрещай, но потом и не вызывай.
>>389878
Для начала реши зачем. По приколу? Ввод-вывод тормозит? Интеграл медленно считается? Графику рисовать?
> но потом и не вызывай
Так моя претензия в том что его без моего желания вызывают, я не писал кода вызова этого конструктора. Если я его удалю, то код не соберётся с ошибкой что я пытаюсь вызвать удалённый метод, хотя я просто объявляю переменную. Я не могу в конструкторе вызвать что-то другое кроме него, потому что он вызывается по умолчанию до этого кода. Варианты с in-place initialization или initializer list за пределами конструктора не всегда возможны без костылей.
> в плюсах принято верить программисту
Почему тогда в данном случае мне не верят что я сам инициализирую члены класса и делают это за меня?
Дегрод тут ты, вчитайся в мой пост и не позорься. Я говорю о доках к стандартным библиотекам, а не к своему коду.
И сейчас ты такой берёшь и говоришь, как это делается, а не трясёшься в припадке.
Или ты мне предлагаешь проебать пару дней своей жизни, дописывая в каждом хэдере из СДК к каждому методу копипасту с cppreference? Если да, то лучше промолчи, свинья.
Дегенеративное хуйло, ты как в этот тред попал, если не можешь написать скрипт из 50 строк за 30 минут? Нахуй ты тут целый день ждешь что за тебя это сделает кто-то? Хотя раз ты не можешь без справки по std, то наверняка ты ебучий даун.
> копипасту с cppreference
Мне может ещё ткнуть твоё ебало где взять документацию по std в нормальном виде, а не с cppreference?
Нахуя?
меня ткни пж
вылетевший эксепшон сам по себе ебет рантайм так что уже похуй абсолютно как ты там сообщение пишешь, хоть из std::list<char> собирай
А зачем он его ебёт?
Ох как затрясло. Даже и не знаю, вроде простой вопрос задал, а реакция как будто тебе в прямом эфире говно в глотку пропихнули и заставили проглотить. Лечись.
Знаю, что тунеядец-пиздушишка должен пиздовать из треда. Тут про программирование, а не кошение от него мета-пиздежом.
Ну стринг вию звучит как самый лучший вариант по крайней мере по перфомансу
Он тебя чем то не устраивает?
То есть не знаешь.
Всё устраивает, я уточняю нормальный ли подход я выбрал. Ну и нужен ли там inline.
perf
сообщения хранить в файлах ресурсов или в табличках субд или еще какой подход
доставать по айдишнику
на айдишники можно повесить и читаемые дефайны, чтобы и в коде было видно
так же при проектировании библиотеки если принимаеться решение использовать исключения, то проектируеться и иерархия исключений, и тогда уже по типу исключения можно определить к какой категории он относиться
>файлах ресурсов или в табличках субд
У меня нет ни того, ни другого. Единственная зависимость в проекте это stl.
>Я кста хз что это, но удалять не стал
Лол, удали это говно. Пусть плюсодебилы хоть этим не позорятся.
Подумал ковырнуть плюсы, сам петухон-боярин. Думаю, зайду в тред к мужикам, у них наверное гайд есть.
И что я вижу? Ладно, с 2017 шапка не обновлялась. Но, блять.. Шапку писал буквально какой-то даун; начиная от стиля письма, заканчивая контентом. Какие-то реплики из нулевых, хуй знает к чему, "гыгы сосут хуй со своей мамашей", "гыгы кухня кудах кудах". Для "ньюфань" рекомендуется кирпич из 1200-х страниц. Ояебу. Это как советовать вкатываться в петухон с Лутца, шиза полнейшая. Этим обычно троллят, но скуфоплюсовики, видимо, это с серьезным еблом высрали. Ссылки на курсы - это ютуб-курс из 2013 года и просто ссылка на сайт с MOOC.
Смысла от шапки - ноль, так что можешь со спокойной душой удалить.
>Создай файл ресурсов
>Притащи/напиши стафф для их обработки
----
>Притащи/напиши стафф для работы с бд
>Настругай миграций
@
ЧТОБЫ СОХРАНИТЬ 20 БЛЯДСКИХ СООБЩЕНИЙ ОБ ОШИБКЕ
>>390851
Да не бахайте, скуф-скуфичи. Я понимаю, у вас срака сразу разрывается, как только слышите "питон", "жс" и прочее. А уж когда критикуют вашу дегенератскую поделку - там совсем подрыв сильный.
По факту в шапке ссылки на курсы почти десятилетней (!) давности, ноль полезной информации, рекомендация 1200-страничного кирпича Страуструпа для ньюфань (!!). Ну не позорьтесь с этой шапкой, камон, вы и так достаточно позорники.
ты правда думаешь, что мнение тебя на пикриле кому-то тут интересно?
Скуф, ты с боярышником переборщил? Это не мнение, это просто факты. Или у тебя в голове рекомендации курса десятилетней давности и 1200-страничного кирпича для абсолютных ньюфань - это нормально? Давай-ка, отвечай, мне даже интересно, какая там шиза в голове у плюсодебила.
>5 предложений
>простыня
Этому скуфу стекломоя больше не наливать, он уже в бреду. В голосину нахуй.
Нихуёво так тебя разорвало.
1) Зачем тебе смотреть недокументированные функции?
2) Когда ты их хочешь посмотреть, в момент вызова или до?
1) Такое задание. Помню, что в линуксе есть ptrace, но без понятия что есть для шин10
2)Без разницы. Моя основная задача заключается в их логгирование.
>Моя основная задача заключается в их логгирование.
Создай песочницу, загружай в него процесс, через хуки на функции, которые позволяют читать фс, и LoadLibraryA/W отслеживай загрузку библиотек, в зависимости от загруженных устанавливай логирующие хуки.
Так сложно, потому что библиотеки, как и загружаемые функции могут загружаться динамически и в заголовках файла они могут не отображаться. Песочница нужна, чтобы у тебя были максимальные права над процессом и система их не могла ограничить.
Гугли
От чего зависит? Все четыре условия - простенькие сравнения двух 16-чных чисел. Если хоть одно не совпало, то дальше уже сравнивать и не нужно. Вероятность выполнения/невыполнения каждого из условий одинаковая. Вообще ЕМНИП сравнение - недорогая операция, но всё равно надо, чтобы это работало как можно быстрее.
>что будет работать быстрее, четыре вложенных if или один if(a && b && c && d)
Пиши без форматирования в одну строку код, так он тоже будет работать быстрее.
Спасибо.
1.5к, само собой
>Сейчас могу в потоки, шаблоны, qt, boost ну и всё что попроще. Это какой лвл?
Студент 3 курса любого пту.
No, it won't-a!
на мидла вкатуны не претендуют вообще никак, какими бы умными они не были.
Как показывает моя практика - чтение и осознание всего Скотта Майерса будет достаточным. Qt\Boost уже лишнее.
Читал, только что толку от одного чтива? А так уже и опыт есть, да и петы я не просто по приколу писал. Дайте мне гугл и я с большой долей вероятности смогу самостоятельно нужную фичу написать. Ладно не мидл. Какой-нибудь sub/пре-мидл, но явно не джун которому нужно по строчкам за базу рассказывать.
Не знаю, но я знаю что Джун это давно не тот которого с нуля обучают и построчно объясняют как ты сказал
Да всё равно, все разные. Суть в том, что я достаточно уверен в себе чтобы считать себя ждуном.
Да, а еще старайся меньше комментариев писать, они программу замедляют. А еще меньше используй x=x+1, вместо этого лучше писать ++x, ведь второе на уровне асма по другому работает и быстрее.Иногда даже (для маленьких чисел) быстрее получается в цикле сделать несколько ++x, чем x=x+a
Блин, забыл самое главное. Старайся все объекты располагать по адресам, кратным степеням двойки. Так тоже быстрее обращение происходит. Это связано с тем, что компьютер пытается адрес перевести из 10-чной в 2-чную и долго делит, а когда число - степень двойки, то обращение происходит мгновенно.
Зачем тогда к дебилам пришел? Ты лучше знаешь, пиши как считаешь нужным
джава тред два блока вниз дружок-пирожок
это там любую проблему заваливают машинными ресурсами выбитыми с кабанчика до тех пор пока она не решится
Очень жаль что нету
> А так уже и опыт есть, да и петы я не просто по приколу писал.
Петы - отлично для преджуна. Опыт - был бы у тебя опыт нужный, тебя бы эйчары с руками и ногами отрывали.
Я когда-то тоже думал, что мне надо сразу мидла, и пет проекты у меня охуенные, все прочитал, все знаю.
Пришел на первый собес, жиденько дристанул и ушел.
ну и да - джун это не тот, кому базу надо рассказывать. Джун - это вот как раз полноценная боевая единица, просто за которой нужен надзор.
Тот, кому надо базу рассказывать учится на первом курсе, либо вкатывается уже четвертый год
А потом мы имеем апки вк по 1.5Гб которые грузятся по 5 секунд на топовых телефонах.
Ну иногда так и делаю (правда на линуксе тогда уж, так удобнее). Но что то большое гораздо удобнее в vs прогать. Я просто удивляюсь как файлы подсказок набора могут занимать пару гигов
Вот в чем
Что ты забыл в крестотреде? Ещё скажи, что время программиста дороже времени написания кода.
> Что ты забыл в крестотреде?
Пишу на них
> Ещё скажи, что время программиста дороже времени написания кода.
Время программиста на порядки дороже, чем железо, которым можно залить "недостаток" быстродействия. Если бы не махровое легаси - я бы с удовольствием писал на шарпе, а не на С++
быстрее всего будет завернуть это функцию в которой осуществлять выход по несработавшему условию
У тебя объекты должны быть выровнены по адресам кратным размеру объекта, потому что так устроены ЭВМ. На некоторых ты просто физически не сможешь прочитать по неправильному адресу значение, а на других сможешь, но с помощью доп. инструкций, что приведет к замедлению программы. Поэтому нужен паддинг. У тебя структура до 8 дополнилась чтобы в массиве (а там элементы друг за другом должны идти) сохранился паддинг
У тебя по умолчанию прагма пак 4, 4 байта инт, байт чар, и три байта педдинг до ещё четырех.
На современных процах с кешем это на самом деле уже не настолько влияет на скорость, все равно грузится кусками, возможно даже получиться быстрее без педдинга в некоторых случаях.
>узкие области, например графику
Это сейчас настолько узко, что нормальную работу и мидлу не найти.
Если ты про обмен данными между разными железками (по сети или файловый обмен), то там всё надо контролировать. Убирать выравнивание, использовать типы с фиксированной разрядностью uint8_t и учитывать порядок байт (endianness, hton()/ntoh()).
Если в рамках одного хоста, то проблем особо то и нет. Тип size_t это тип размера данных, возвращаемый sizeof() и контейнерами. Соответственно надо его использовать именно для этих целей - итерации по контейнерам и сериализация данных.
Ну а максимальный целый тип это long long и он может быть больше size_t.
Геймдеву сильно досталось из-за санкций (они же на внешние рынки в основном работают). Тот же wargaming закрыл головной офис в Минске скинув все проекты в Лесту, project red отобрал у saber переиздание ведьмака, часть контор вообще куда-то пропало и не отсвечивает. Из живых и крупных, наверное только конгломерат my.games (mail.ru) остался.
Остальные направления - везде по чуть-чуть и там не вулкан, а какой-нибудь gl или готовые движки. Немного мобилки, немного кады, какая-то визуализация для вояк и экзотика типа cv.
В чём проблема? Пишу фронт на шарпе а бэк на плюсах и не жалуюсь.
> современный неткор
Это который теперь собирается сложнее крестов, а когда что-то идёт не так со сборкой в проекте проще другой язык выучить и переписать всё на нём?
Очередная макака приперлась в крестотред со своей аутофеляцией.
Была ба эта макакопараша такой охуенной, сидел бы в её треде и радовался, но нет, надо залезть в тред крестов и срать. От хорошей жизни так себя не ведут.
Синтаксис сильно лучше. Одно только форматирование строк вида $"{var}" чего только стоит, я в полном восторге был.
А медленная - я много раз говорил и скажу еще раз - перф не в крестах, а в голове.
> Синтаксис сильно лучше. Одно только форматирование строк вида $"{var}" чего только стоит, я в полном восторге был.
Так в крестах есть std format.
И даже не надо каждый раз писать argN:
так std::format это полная хуйня по сравнению с
var a = 1;
var b = 2;
var st = $"lmao {a}, {b}";
@
1200 СТРАНИЦ
@
2/3 ИЗ НИХ ПОСВЯЩЕНЫ ОПИСАНИЮ МЕТОДОВ КЛАССОВ, ВЕДЬ ПИСАЛИСЬ ВО ВРЕМЕНА, КОГДА ИДЕ НЕ УМЕЛИ В ПОДСКАЗКИ
Даже я ахуел от их магии.
> ПИСАЛИСЬ ВО ВРЕМЕНА, КОГДА ИДЕ НЕ УМЕЛИ В ПОДСКАЗКИ
Нет, писалось для программистов, а не макак.
геймдев в труху в россии
Чел. В языке стараются удобным делать то, для чего он предназначен. C# это язык для клепания отчётов и формочек для них. Естественно, там удобная работа со строками/текстом.
В любом языке независимо от задач приходится много работать со строками. Кому как не крестовикам это знать, написавшим без преуменьшения десятки тысяч реализаций строк.
Нужно для вывода общего типа.
Переписывай, хули. Там где можно - используй либы готовые вместо самоделок (а-ля std::filesystem). Там где нельзя - ifdef'ы
Благо объем работ небольшой. Пару функций заменить ifdef'ами. Во всяком случае я надеюсь на это. Я просто запустил компиляцию исходника и чекнул какие ошибки вылезли
Стандарты unix-like открытые и намного более гибкие, в отличие от проприетарной винды. Неудивительно, что реализаций юниксов развелось так много. Саму винду на posix переделывать не будут, скорее MS создаст свой закрытый юзер-френдли дистрибутив линукса с эмуляцией winapi для сохранения обратной совместимости (нет, не wine).
Стандарты как раз нихуя не гибкие - пока все заинтересованные люди все примут - закрытая винда уже все заимплементит
Главное, стабильность!!!
> Саму винду на posix переделывать не будут
В винде вообще сишное API уже легаси. Пусть лучше отсталые линуксоиды на кресты пересаживаются. Тем более под Винду есть хорошие автобиндинги под пидораст, с ними уже даже WinAPI не так всрато выглядит.
Посоветуйте книгу с++ для самых тупых
ClassA является главным, у него есть поле массив классов ClassB неопределенной длины, у класса ClassB тоже есть такое поле массив классов ClassC. Можно представить это как пикрил, ClassA - элемент 1-ого уровня, у него есть элементы ClassB 2-ого уровня, у элементов ClassB есть элементы ClassC, они 3-ого уровня. Можно ли такое реализовать? Если да то как?
Пример кода https://pastebin.com/6VeL5ej9
>Некоторый код написан с уклоном в posix
И при чём тут mingw? Это компиляторы под венду, без слоя совместимости с POSIX. За ним в Cygwin/MSYS
По простому не выйдет. Игровой рандом отличается от математического >>392768
Нужно как минимум отслеживать историю значений и не допускать несколько раз подряд выпадения единиц. В общем, умные люди скорее всего уже написали статьи как правильно делать игровой рандом. Бери гугл и вперед, делать свой кубик, если конечно хочешь получать от игры удовольствие, а не горелый пердак.
Получаются 5 и 6 только
int x=0;
int sum=0;
cout<<"ENTER NUMBER OF D6 DICES:";
cin>>x;
srand(time(0));
cout<<"ROLL RESULT:\n";
for (int i = 0; i<x; i++)
{
int dice = (int) (1+rand()%6);
sum = sum+dice;
cout << dice << endl;
}
cout<<"SUM:"<<sum;
> Как собрать отдельную dll в vs?
Берешь @ собираешь. https://github.com/MicrosoftDocs/cpp-docs/blob/main/docs/build/walkthrough-creating-and-using-a-dynamic-link-library-cpp.md
> Что за pch.h/.cpp и т.д? Для чего они?
https://stackoverflow.com/questions/54121917/what-is-pch-h-and-why-is-it-needed-to-be-included-as-the-first-header-file
>>381737
ты ещё тут?
попробовал я эту курсеру
https://s3.itor.be/viewtopic.php?t=46732 по этой ссылке, может там материалы не все есть? или это курс для гениев-мфти?
я серьёзно, я пытаюсь во что-то въехать, но вижу только то как ботан в очечках показывает какие-то фичи и т.п. не ссылаясь на документацию или просто не пытаясь объяснить как это работает так чтоб лезть в доки не имело смысла
ладно я уже знаю то что преподаётся на белом поясе, но если бы я не знал - воспринять эти знания просто не реально
да и даже учитывая что я уже знаю, просто повторить невозможно по этим материалам - выворачивает наизнанку сразу же
А как ты работать собрался, где тебя будет выворачивать вообще от всего вокруг, что не по твоему?
Во первых, посмотри, что такое список инициализации
Если в гугле деньги за поиск просят, вот две первые попавшиеся мне ссылки: https://habr.com/ru/post/330402 и https://en.cppreference.com/w/cpp/language/list_initialization
Во вторых, если ты хочешь прям дерево объектов, то необязательно, чтобы каждые уровни были разного типа.
И в третьих, ну ты уже же сделал базовые классы, чё дальше тебе непонятно?
>Можно ли такое реализовать?
Да
>Если да то как?
А где у тебя затуп? Ты не можешь понять, как создать массив объектов или чё?
в самом начале начинают давать контейнеры, не рассказав про то что они из себя представляют, не рассказывают про ссылки и тому подобное, это по твоему нормально?
Этот подход вполне имеет право на жизнь, ссылки и указатели первое время тебе нахуй не сдались. Но, честно говоря, я не совсем знаю как правильно учить С++, я его начал учить больше 10 лет назад, все забыл уже из того времени
Поначалу нахуй не сдались, а потом ты сидишь и нихуя не понимаешь в простейших вещах, которые чуть-чуть сложнее перебора списка.
так вот потом и даешь, когда уже хоть что-то понимаешь и умеешь. Указатели сразу - это ебучая стена, которую не все могут перепрыгнуть. А ссылки - элементарно обьясняются.
Хули указатели это ебучая стена?
У тебя есть тетрадный лист, каждая клетка пронумерована, начиная с нуля. В каждой клетке хранится один байт.
Вот тебе и вся, блять, адресация, в два предложения, специально для даунов.
Это бесполезно. У того дауна даже нет представления что такое компьютер, память, как это вообще функционирует. Для него компьютер это черный ящик, так же как и язык программирования. Он просто высерает прочитанные команды и надеется что джинн в бутылке сделает как ему хочется. Таких надо просто пиздить и гнать нахуй. Натуральная баба за рулем, дергает рычаги и давит на педали, даже не понимая что ломает машину.
Да, хорошо, а теперь без подсказок через указатели забери вот этот элоемент из массива X - X[4][5], не используя {]. Половина сениоров с опытом 5+ лет валится на этом вопросе на собесе. Вот сам теперь и узнай, насколько ты хорошо знаешь указатели.
★(★(X + 4) + 5)
Резюме на синьора можно присылать? Зарплатная вилка какая? Я готов ужаться до жалких 290к/мес
Молодец. Вот, а минимум половина долбоебов не может.
> Резюме на синьора можно присылать?
Закрыли недавно вакансию, но анивей, в РФ офис не хайрит, только с релоком в ереван.
> Зарплатная вилка какая?
Драмовый эквивалент 400к+ в рублях на руки.
Лучше спрашивай, что написать, чтобы 4[5[х]] скомпелировалось))
Это весьма грустная и печальная ситуация рынка сениоров в Москве, когда половина людей не может ответить даже на этот вопрос, блябуду.
Это я еще про питонистов не рассказывал, там такое ощущение что люди вообще умеют компьютер только включать и выключать, а хотят 300к+
Получается можно просто собирать с новым стандартом плюсов, и ничего не должно сломаться, более того должно работать лучше, так?
вопрос: ну и хуле кто то до сих пор на с++11 сидит?
Нельзя. Совместимость в целом стараются сохранить настолько, насколько возможно, и здесь ломание обратной совместимости комитет счёл меньшим злом.
То есть и совместимости нету, то есть на новые версии больно переходить
Но и ломать её не стоит, то есть новые версии будут и сложнее и реже выпускать
Раз в три года же
11 14 17 20 23
Им сейчас наоборот ковид поднасрал, очные митинги не проводились вроде
Смех смехом, но я словил себя на мысли, что не дай бог я в свои 30 превращусь в это
>: ну и хуле кто то до сих пор на с++11 сидит?
У меня есть легаси на вс2012 (изначально старше, просто на более новых вообще не компилится), которое даже 11 не полностью поддерживает.
Лёша, ты заебал себя пеарить на анонимной имиджборде для девочек-анимешниц.
Не совсем. Стараются все таки сохранить обратную совместимость, но бывает, что в стандарт попадает никому не нужная хуйня, которую можно вырезать и почти никто не пострадает
Стандарты стандартами, а вот у нас есть код который нахуй ломается при обновлении с gcc 9 на 11, и со штудии 2019 на 22. Причем это разные куски.
Пока лень обновлять все - сидим на старье.
Да, замкнутый круг.
Есть три кита:
- железо, не догоняющее последние стандарты
- великое и необъятное легаси (сросшееся с С)
- деды-основатели и Страуструп (71 год)
Всегда проигрывал с LICENSE и README в проектах сисишников.
Да там порой даже не совместимость, а 100500 варнингов из которых десяток это порча памяти и ub. И только старый компилятор собирает рабочий код.
Боль она не только в переходе, а в том, что стандарт пухнет как на дрожжах. И те, кто могут ворковать за корутины, одновременно дают подливы за работу с c-style массивами, ссылками на функции и прочим наследием.
С++ - мультипарадигменный язык.
Ты - узколобое быдло.
Если ты, по причине узколобости, выбрал только одну парадигму (модную пидарскую), это не значит, что остальные имеющиеся в наличии это "ненужное легаси". Нет, это только значит, что ты - представитель недоразвитого лоу-интеллект сброда, не осиливший даже понять что такое язык С++.
Если хочешь быть пидарасом на острие модных шлюъ сезона, для этого есть куда более подходящие языки, где вся такая швать в основном и сидит. И не забудь еще макбук последней модели купить, иначе все твои потуги быть стильным просто смешны.
ебать ты шиз
Старик байтоеб с вимом, ты? Узнал тебя по твоим шизобредням
Спасибо, сейчас гляну.
>Во вторых, если ты хочешь прям дерево объектов, то необязательно, чтобы каждые уровни были разного типа.
Это должны быть разные объекты по идее, а как подкорректировать код чтобы одним типом сделать?
Сап.
Есть общий хидер с объявлением структуры в неймспейсе:
//header.h
namespace MyDataType
{
extern struct TypeStruct
{
int varOne;
int varTwo;
};
};
Есть хидер с объявлением класса и члена класса m_data
//main.h
#include "header.h"
class SomeClass
{
...
// поле класса SomeClass в неймспейсее MyDataType типа структура TypeStruct
MyDataType::TypeStruct m_data;
...
};
При сборке:
ОшибкаC2653MyDataType: не является именем класса или пространства имен
ОшибкаC3646m_data: неизвестный спецификатор переопределения
Если использую MyDataType::TypeStruct data; в main.cpp как локальную переменную, то все ок. Но нужно поле класса (MyDataType::TypeStruct m_data;).
IntelliSense не ругается, а при сборке ошибка.
Сап.
Есть общий хидер с объявлением структуры в неймспейсе:
//header.h
namespace MyDataType
{
extern struct TypeStruct
{
int varOne;
int varTwo;
};
};
Есть хидер с объявлением класса и члена класса m_data
//main.h
#include "header.h"
class SomeClass
{
...
// поле класса SomeClass в неймспейсее MyDataType типа структура TypeStruct
MyDataType::TypeStruct m_data;
...
};
При сборке:
ОшибкаC2653MyDataType: не является именем класса или пространства имен
ОшибкаC3646m_data: неизвестный спецификатор переопределения
Если использую MyDataType::TypeStruct data; в main.cpp как локальную переменную, то все ок. Но нужно поле класса (MyDataType::TypeStruct m_data;).
IntelliSense не ругается, а при сборке ошибка.
Сап.
Есть общий хидер с объявлением структуры в неймспейсе:
//header.h
namespace MyDataType
{
extern struct TypeStruct
{
int varOne;
int varTwo;
};
};
Есть хидер с объявлением класса и члена класса m_data
//main.h
#include "header.h"
class SomeClass
{
...
// поле класса SomeClass в неймспейсее MyDataType типа структура TypeStruct
MyDataType::TypeStruct m_data;
...
};
При сборке:
Ошибка C2653 MyDataType: не является именем класса или пространства имен
Ошибка C3646 m_data: неизвестный спецификатор переопределения
Если использую MyDataType::TypeStruct data; в main.cpp как локальную переменную, то все ок. Но нужно поле класса (MyDataType::TypeStruct m_data;).
IntelliSense не ругается, а при сборке ошибка.
Сап.
Есть общий хидер с объявлением структуры в неймспейсе:
//header.h
namespace MyDataType
{
extern struct TypeStruct
{
int varOne;
int varTwo;
};
};
Есть хидер с объявлением класса и члена класса m_data
//main.h
#include "header.h"
class SomeClass
{
...
// поле класса SomeClass в неймспейсее MyDataType типа структура TypeStruct
MyDataType::TypeStruct m_data;
...
};
При сборке:
Ошибка C2653 MyDataType: не является именем класса или пространства имен
Ошибка C3646 m_data: неизвестный спецификатор переопределения
Если использую MyDataType::TypeStruct data; в main.cpp как локальную переменную, то все ок. Но нужно поле класса (MyDataType::TypeStruct m_data;).
IntelliSense не ругается, а при сборке ошибка.
Линукс тоже не posix, но прикидывается.
>>393227
Абсолютно нормально
>>393304
Ну давай, расскажи мне, зачем нужны указатели, если не совместимость с Си, не полиморфизм, не самостоятельная реализация двусвязного списка или подобной структуры, и не какие-нибудь ссылки крест-накрест между связанными объектами? Это все редкие случаи.
>>393326
Синтаксис пиздец и обычно это рассказывают через ебучие строчки. И человеку приходится одновременно думать и про строчки, и про переменные, и при свой алгоритм из двух присваиваний, и про то, как это все в памяти лежит. Это нахуй не нужно поначалу.
>>393737
Почти совместимы. Что-то регулярно ломают, но стараются, чтобы не слишком больно было.
> вопрос: ну и хуле кто то до сих пор на с++11 сидит?
Потому что хуй ты обновишь компилятор, не сломав большой проект. Даже минорную версию и то больно. На словах все такие умные и без уб, а по факту в любом коде полно завязок на конкретную версию компилятора. Иногда специально, но чаще случайно.
>>393969
Слово extern перед struct TypeStruct убери нахуй, оно там никогда не нужно.
Если все еще не катит - выложи полный пример на wandbox.org, чтобы там тоже не компилировалось с такими же ошибками.
>Слово extern перед struct TypeStruct убери нахуй, оно там никогда не нужно.
>
>Если все еще не катит - выложи полный пример на wandbox.org, чтобы там тоже не компилировалось с такими же ошибками.
Да без него сначала и было и не катило. Два дня ска убил, вроде все очевидно и правильно, а причина простая была: Cyclic dependencies.
Ну вынес это в отдельный заголовок, потом разберу где у меня лишний инклюд.>>394096
Можно ли обойтись без Microsoft Visual Studio?
Да
Потому-что вместо удобного написания кода ты будешь заниматься какой-то полной хуйней, а-ля "почему ничего не работает, откуда эти ошибки, почему все подчеркнуто красным" и тд
Нахуя он тебе? Поставь VS Code + gcc
А какие там джуны тогда, лол?
Человек с питоном головного мозга о том, что не нужно, лол.
>Синтаксис пиздец и обычно это рассказывают через ебучие строчки.
>char chararray = "пиздец ебать строчка сложная да?";
хочешь сказать, что тебе сложно представить, как в каждую тетрадную клетку записано по букве?
класс, допустим, Node, у которого есть массив объектов класса Node.
> Жрет говно
> Другие не хотят жрать говно не хотят
> РЯЯ РУКОЖОП ХАХАХ ОМ НОМ НОМ МОЕ ГОВНЕЦО ТЫ НИАСИЛИЛ ЖРАТЬ ГОВНО ПРОСТО
Мне несложно. Но если человек только-только выучил переменные, то сложно. Стабильно у 60% студентов огромные проблемы, если рассказывать указатели и сишные строки в начале. Требуется несколько дополнительных пар проводить. А с std::string почему-то никаких проблем не возникает, все сразу понимают и нормально используют. Удивительно, не правда ли?
Потихоньку надо рассказывать, блять. Без указателей в плюсах можно долго и счастливо жить. И уж тем более без сишных строк. Когда-нибудь потребуются, не спорю, но в начале не нужны.
Неосилятор не может осознать концепт поинтеров, рвётся и на выдохе называет поинтеры говном. Никогда такого не было
Если у 60% студентов проблемы с указателями и сишными строками, то первым делом доёбы надо направлвять горе-преподу, который не может нормально объяснить, как рисовать чиселки по клеточкам.
Студентам ничего не надо, только получить бумажку. Этот скам нужно нахуй слать. Тут тред программирования, а не халявной домашки для быдла.
А зачем это фиксить вообще? Просто проебать время? У тебя есть профессиональные продукты, в которых все сразу работает.
Дурачки любят тратить время на бесполезную хуйню, когда можно потратить на что-то продуктивное, создается иллюзия того, что они делом заняты.
>>394266
Мой ответ был вообще на другое, ты бы это понял, если бы читать умел, а не сразу летел рваться в тред.
>>394249
Этот шарит
благодаря возможности перегрузки оператора индексации и правда, при проектировании высокоуровневых библиотек можно добиться того что пользоваться этой библиотекой можно будет почти не пользуясь указателями, более того перегрузить можно и сам оператор разыменования
как, собственно, это и было сделано в stl
к сожалению, большинство промышленных библиотек на крестах не делают так, а проектируются по принципу "приплюснутый си", имея интерфейсы доступа на уровне проектирования библиотек в структурном стиле 70х годов прошлого века
>то не дай бог я в свои 30 превращусь в это
Он сейчас нормально выглядит же.
Только есть маленький прикольчик....
Ещё раз повторяю для слишком умных: "рисовать чиселки по клеточкам" - это только первый шаг. От этого до умения уверенно использовать указатели направо и налево проходит либо три пары, полные страданий, если указатели давать в начале, либо половина пары, если указатели давать через полгода после жизни без указателей.
Ну и нахуй мучать студентов три пары, когда можно их не мучать и всего полпары, просто поменяв местами с чем-нибудь более полезным, вроде STL?
Смотря где
1. Учись пользоваться гуглом.
2. Читай книжки, а не видеокурсы для даунов в рунете, либо хотя бы смотри курсы на английском которые законченные (МИНИМУМ 10 часов). Иначе ничему не научишься и будешь задавать банальные вопросы 1ой главы в книге.
3. return относится к типу функции. Соответственно необходимость его зависит от типа. Если у тебя void, то ничего возвращать не нужно.
Подозреваю что вопрос относится к main. В случае с int main{} в C ты ДОЛЖЕН сделать return, в случае с C++ компилятор подставит его за тебя, если ты забыл/не указал его, но в итоге в программе он там будет, просто не в исходнике. В main return указывает на статус завершения программы, 0 - все успешно и без ошибок. Все остальное - с ошибками.
Ну сорян, тебя рвёт с плюсов почти так же, как соседнего шиза рвёт с указателей. Перепутал двух шизов, с кем не бывает.
Тут скорее ты low-IQ дурачок, который даже не понимает, о чем эти два "шиза" говорят
О, ещё один страдалец.
С незапамятных.
Пункт 1, учимся пользоваться гуглом.
https://stackoverflow.com/questions/4138649/why-is-return-0-optional
Смотря какая прога, гуи может и возникнуть, сли не должно.
разные версии глибцов и прочего могут нихуево тебя так удивить.
Линукс это ебучий зоопарк, где ты поддерживаешь либо 1-2 дистрибутива, либо вообще абсолютно все шиппишь в виде статически слинкованного жърного бинаря либо флатпака\снапа
то это его проблемы, как правило.
С точки зрения адекватную систему сборки завернуть в пакет
Это абсолютно задача из класса brain-dead simple
> где ты поддерживаешь либо 1-2 дистрибутива
Чё ты пиздишь, нихуя подобного.
В большинстве репозиториев разработчик пишет только правило по сборке в стиле "make install", а со сборкой под конкретный пм разбирается уже манятейнер.
В убунте, например, это будет либо Каноникал, либо юзер, который самолично решил его в ппа залить
В арче - юзер, который льёт его в аур
В генте вон вообще того, кто не писал ебилд, за человека не считают
Ебать как сложно, везде бюрократия, везде свои правила.
То ли дело как на винде, где все нужные dll рядом с экзешником, и никакой ебли.
Похуй на то, соберётся ли он на 4-м компиляторе, меня больше интересует то, где ты его нашёл, если основные компиляторы это гцц/шланг/мсвц.
> все нужные dll рядом с экзешником
В Винде можно положить dll вообще в любую папку и просто зарегистрировать её в системе. Оно само залинкуется откуда угодно.
Я вот недавно взял репу демки на расте с экспериментальным игровым движком с рейтрейсингом, так там написал cargo build --release и оно просто собралось, со всеми 300 зависимостями, за 5 минут. Дождёмся ли когда-нибудь такого на крестах? Уже, блять, стыдно за еблю со сборкой.
> Ну да - мейнтейнить 1488 разных пакетов говна для каждого Zalupa OS
Ты чё между строк читаешь?
НЕ ОБЯЗАН разработчик мейнтейнить пакеты для разных дистрибутивов, это делают пользователи. Сами.
То пусть идут нахуй и не пользуются этой программой. Что такое свободное по в курсе?
Ну вот по-этому ваше ШВАБОДНОЕ ПО никому нахуй даже бесплатно не сдалось, кроме серверов
Докер годится исключительно для серверного софта, да и для него применим не всегда.
Полный cmake
cmake_minimum_required(VERSION 3.22)
set (CMAKE_CXX_STANDARD 17)
project(test)
# add the executable
add_executable(test main.cpp)
if ((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") OR (CMAKE_CXX_COMPILER_ID STREQUAL "GNU"))
# using Clang
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
# using GCC
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
message("Build with MSVC")
add_compile_options(/WX /W4)
else()
message([FATAL_ERROR] "Compiler not supported")
endif()
Исправил этим set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++17 /W4 /WX")
Вроде настроил теперь для ubuntu для clang и gcc. Думаю хватит чтобы ловить почти все ошибки. Потом исправлю.
все таки я преувеличил. 3 часа, а не целый день. Но по ощущениям пиздец долго.
Подскажите, может ли cuRAND в криптостойкий ГПСЧ?
Задача: с помощью видеокарты генерировать (128 бит) триллионы паролей одинаковой длины из фиксированного набора символов таким образом, чтобы cuRAND не допускал повторов.
>кроме серверов на убунте
Поправил важное. Итого, вернулись к одной залупосистеме, а остальные 100500 - лесом. Швабодка нахуйпосылания во всей красе.
пакет попенсорс, но репозиторий проприетарный, каноникалоблядь
arm-none-eabi-g++ {расположение исходного кода} -o {Название генерируемого фаила}, выдает вот эти ошибки. Я нашел видео в интернете, где поэтапно, разбирается компиляция программы с помощью gcc, там поэтапно компилируют в ручную сначала фаил .i с помощью препроцессинга, патом фаил .с c помощью компилятора, патом фаил .o с помощью ассемблера, а вот на этапе линковки, появляются эти проблемы, я еще только начал изучать компиляторы и системы сборки и мало знаю. Подскажите пожалуйста что мне делать
Ну я просто совсем в этих делах зелень, как мне ее подключить, указать? откуда скачать?
Программа обычная ХеллоВорлд, единственная либа iostream
Либа уже есть, ты же инклудишь её заголовочный файл в своей программе, вот к нему еще есть файл самой библиотеки, имя которого нужно указать в команде линкера с соответствующим флагом (смотри доки по линкеру как указывать библиотеки)
Виндовс - это и есть операционная система. Ты предлагаешь ему прошивку для роутера накатить на пеку?
> из массива x - x[4][5], не используя []
Надо будет - загуглю, достаточно знать о существовании адресной арифметики. Ты просто тешишь свое самолюбие, давая на практике никому ненужные мозгоебные вопросы о синтаксисе.
Пиздец, сеньоры давно мыслят фреймворками, паттернами и архитектурой. Не удивлюсь, что selection sort забыли как делать.
Я тоже могу тебя спросить что-то наподобие
struct Zalupa {
int x;
int y;
};
struct Horse {
Zalupa zalupa;
int k;
};
int main() {
Horse horse = {5,4};
return horse.k;
}
Что здесь получим?
В душе ниибу что тут будет.
> Пиздец, сеньоры давно мыслят фреймворками, паттернами и архитектурой.
У нас есть кому думать, надо того, кто код писать может. По-этому вопросы такие.
Ладно, я был близок.
>Надо будет - загуглю, достаточно знать о существовании адресной арифметики.
Тут ты ошибаешься. Вопрос с массивом имеет смысл, можно попытаться ответить даже не зная ответа заранее, а твой вопрос чисто по крестовому стандарту, если не читал, не ответить, тупо вопрос на зубрилку, не требующий ума, соображать.
На вес бинарника в основном
>Молодец. Вот, а минимум половина долбоебов не может.
Никогда не поверю в такой жир. Этому даже студентов на первом курсе учат.
получим 0, но я бы за такое уебал.
Что там новенького есть? Как всё в памяти освежить?
Если не хочешь на нем работу искать, то забудь про этот язык. Попробуй раст лучше. Я и сам с плюсов укачусь как только нормальная работа на расте появится. инфбио: никогда
https://stackoverflow.com/questions/19419782/exit-c-text0x18-undefined-reference-to-exit-when-using-arm-none-eabi-gcc
Добавь --specs=nosys.specs к ключам компилятора.
Выглядит похоже, потому что имена потерянных методов начинаются с _, а это windows. То есть делается попытка дёргать методы хоста (отладчик под виндой) с ARM клиента.
>. Как ни зайду на двач все кричат, что работы на плюсах нетКто
Кто кричит? Последние 100 постов точно никто не кричал, шизик.
Напиши себе памятку по языку.
Не конкретно в этом треде. Хуй знает зачем я в плюсовый написал)))) Привычка просто
Я тоже заметил что все кричат что работы на плюсах нет, но например моя компания за пол года набрала 5 плюсовиков
А многомерных массивов не бывает. Если ты этого не понимаешь, значит не знаешь языка.
Ты ебнутый. Тебя спросили про одно, п тв про другое. Как ты вообще собрался работать если не читаешь что пишут?
> Виндовс - это и есть операционная система
В каком именно месте дырявая деспотичная прошивка для игр - операционная система?
Половина проблем ушла. Гугли дальше.
> А многомерных массивов не бывает.
Серьезна? Ты еще скажи переменных не бывает. И функций нет, что процессар не понимает функций?
Вообще есть, но надо за 30 рублей программировать йобы для министерства обороны, чтобы наша доблестная армия вторгалась в разные страны.
вот бы меня заставили программировать йобы, я бы таких беспилотников классных наделал. Только еще специалиста по системам управления рядом посадить, что бы он подсказывал, какие формулы использовать для стабилизации полета
так вроде специально скачал компилятор для arm, а как можно узнать какие доступны архитектуры? Какой командой? Или в какой папке это посмотреть?
Компилятор то для процессора ARM, но их много всяких разных (armv7, armv5 и так далее). И они отличаются как минимум набором SIMD команд NEON и операциями с плавающей точкой. Посмотри какой процессор на твоей железке и какие ключи поддерживает твой gcc (-march, -mcpu, -mfpu).
В той же студии ты указываешь архитектуру x64 или x86 ручками (и также есть ключ компилятора /arch:).
А вообще, если ты так на старте тупишь, то лучше поставь себе питонский SDK на свою апельсинку. А про с++ забудь до лучших времён.
Да не, я сам работаю контору которая как мне кажется любит госзаказики, но я точно не знаю.
Я еще зеленый джун, и меня только сюда взяли на С++ формошлепить, хотя у меня даже образования программисткого нет.
Ну я щас сижу и пишу гуи для линуха. Зп 50к. Работаю 6 месяцев. Не удаленка. Но делать квадракоптеры как мне кажется интересней чем писать гую, тем более опыт в электронике и микроконтроллерах у меня есть. Скинь вакансию, интересно просто.
>>396868
Я все делаю в консоли, потому что пытаюсь понять как работает GCC и Cmake, что бы патом без гугления траблов настраивать проекты в QT Creator и Visual Studio. И мне надо на С++ именно разрабатывать.
https://hh.ru/vacancy/54958649
https://hh.ru/vacancy/50299844
Вот, висит постоянно, идти никто не хочет прогать за копейки. Помещения убитые, как будто в совке 80-х, контингент ватный.
Кек,я на одной из этих вакансий работаю
>такой поискать еще надо
Это который третий день на дваче пытается hello world собрать, а "не ватные коллеги" не в состоянии помочь? :3
а я просто не прошу помощи и все.
Да и в интернете нет нормальных гайдов по Cmake и GCC, все приходится по крупицам собирать и выстраивать картину общую. Вот где хоть в одном гайде по GCC написано как указывать для какого процессора указывать сборку. Или про non.specs. Или Cmake чертов, вот я вижу cmake лист лежит в папке библиотеки. Я выполняю Cmake "путь к папке", патом выполняю Cmake --build. Там столько ошибок вылазит, что пипец
А ты, стало быть, силой мысли в интернет выходишь?
На более-менее известные проекты есть подробные гайды как их собирать (очевидно на сайтах этих проектов). Как собирать твой проект знает дед, который сидит в соседней комнате.
А то что CMake сыплет ошибками - читай их, хуле. Там будет указано, что на твоём компе либо что-то не установлено, либо надо указать пути ручками или какие-то переменные окружения в системе не заданы.
Из треугольника теперь делай теперь круг, квадрат и все, что хочешь. Че ебало скорчил, вселенная у нас дискретная, мы все из тругольников состоим.
Но ведь меня не геометрия и теория компьютерной 3D-графики интересует, а как работать с конкретным API. Вот меня оставили с треугольником в руках, использующим просто мизер API и предлагают что-то дальше делать.
>>396921
>>396868
>>396799
>>396426
-march=armv7 и --specs=nosys.specs, эти ключи помогли собрать фаил HelloWorld без расширения. Пробовал скинуть и запустить его на Orange Pi выдает ошибку Permission denied, хотя я сижу под root учетной записью. Также я пробовал просто компилировать фаил main.cpp на апельсинке, он там также создает фаил без расширения, но он запускается и выводит в консоль HelloWorld! , а мой скомпилированный на Windows нет((
потому что ты щенок блядь (не оскорбление, а факт) и ищещь какие то гайды в интернетах, вместо того чтобы прочитать нужные книги по теме а дальше пользоваться официальной документацией, которая и по cmake и gcc охуенная
cmake - да. Остальное лучше делать в виртуалке под виндой (VirtualBox или аналоги).
>создает фаил без расширения
Как ты его назвал (-o HelloWorld), такой он и будет. Линукс считает точку обычным символом и не выделяет из имени расширений. В бинаре есть манифест и по нему определяется, что это исполняемый файл.
хуй знает, если ты сам пишешь что еще зеленый то проще (для тебя) это делать в линуксе
хотя бы на виртуалке
В целом ты, конечно, занимаешься хернёй. Кросскомпиляция имеет смысл, если целевая железка слабая и сборка на ней занимает много времени. В случае с малинкой/апельсинкой разумнее синхронизовать папки на хосте и на железке и создать профиль в IDE (Eclipse или что-то псвежее), который будет дёргать компиляцию на железке и цепляться к ней дебагером удалённо. Тогда можно будет просто писать код в уютном окружении и не педалить файлы туда-сюда.
Я сделал чмод, теперь пишет что с сегментацией что нето, надо в фаиловую систему перевести другую?
>>397026
Ну да я любитель сложных путей. Я просто хотел сначала написать программу под windows, а патом перекомпилировать ее под linux, тем более я все равно хотел написать на все это на Qt. Ну я решил скачать компилятор для GCC под arm, что бы Qt компилировала под Arm, когда это нужно. А что бы его правильно настроить нужно узнать много тонкостей от CMake до флагов GCC. Ну а в целом идея здравая, надо посмотреть как это делается. Может в Visual Studio или в Qt есть такие технологии. А синхронизировать папки нужно с помощью git?
Segmentation fault это не файловая система, это твоя программа крашится при запуске. Что с ней не так - смотри под отладчиком или проверяй ключи компиляции.
>Ну да я любитель сложных путей
Она хотела чего-то, сама не зная, чего именно. Собственно, ей ничего не хотелось, хотя ей казалось, что ей хотелось всего.
Чел, ты пытаешься осилить сразу всё, не понимая даже как в линуксе файл запустить. Начни с разработки под линуксом на таргете. Поставь себе виртуалку с линуксом и поработай под ней с использованием синхронизации какталогов. Потом уже берись за кросскомпиляцию и удалённую отладку.
> Visual Studio
Про это сразу забудь (хотя она и умеет под Windows IoT на ARM собирать). Только VS Code.
>синхронизировать папки нужно с помощью git
https://ru.wikipedia.org/wiki/Rsync
git это другое, понимать надо.
Ну и главное, что если ты будешь сидеть как сыч, ни с кем не контактируя, и тратить по неделе на настройку рабочего окружения, то из не говНИИ конторы ты вылетишь задолго до конца испытательного срока.
Cmake это отвратительный кусок говна. Если у тебя нет требования кроссплатформенности - то только MSBuild и ничего больше.
Если требования кроссплатформенности есть, то бля буду, я бы лучше на неткоре написал, чем ебаться с симейком и прочим говном красноглазым
ну тут меня типо так и взяли, типо вот тебе комп иди к такой то цели, когда дойдешь скажешь, если будут вопросы подходи, но мне почему то не хочется. Ну и я уже впринципе обращался к по этому вопросу, но мне сказали, типо пробуй делать через Visual Studio. А я хочу делать в Qt Creator, а что бы делать в Qt Creator надо как то понять как туда добавить компилятор, или как настроить сборку из уже имеющихся компиляторов но что бы он собирал для Linux. Там в Qt есть встроенный MinGW, ну я почитал, это вроде компилятор для Windows. Госпади как же заебало это все
Ты молодец, вместо того, чтобы делать цель - занимаешься какой-то бесполезной хуйней.
Ну а что может мне еще из под Linux'а писать программу? Я хочу по минимуму свести свое взаимодействие с Linux'ом. Можно как выше написали с помощью Eclipse. Ну у меня есть Qt, я хочу писать на нем. Там есть возможность добавления компилятора собственного, что бы его добавить нужно понимать как работает Cmake и GCC, потому что я не понимаю какие там ключи вписывать и какие команды для сборки Cmake писать. И очень странный момент, вроде бы Qt подразумевается как кроссплотформенная вещь, а по факту что бы скомпилировать не под свою систему нужно изъебнуться, особенно если ты мыло знаешь и понимаешь в этом вот всем.
>нет требования кроссплатформенности
Шёл 2022 год, ios/android смартфоны, умные гаджеты, IoT, автомобили упакованные ADAS'ом и AI, коптеры, робаты, камеры анального наблюдения, 5G телекомы...
Но в манямире разработчиков документооборота для тёти сраки 45++ кроссплатформенность всё ещё не завезли.
Чел, ну ты чо?
> я бы лучше на неткоре написал
Неткор тоже то ещё говно. Ты видел как свежие либы от индусов под 6+ выглядят? Там такой пиздец, что они уже мсбилдом не могут его собрать и используют всякие мокрописьки вроде нюка. Если ты захочешь что-то поменять в процессе сборки, то обнаружишь такое количество кода, что cmake покажется коротким скриптом на баше. А альтернатива у крестов есть - раст. Он быстрее, больше сахара, стабильнее и собирается всегда одной командой.
Да никаких. О дивном выходе из манямира книгу ещё 30 лет назад написали. Пусть почитает на досуге.
https://en.wikipedia.org/wiki/Microserfs
> Cmake это отвратительный кусок говна.
Чел, мне похуй. на симейк много проектов, в вакансиях требуется тоже знание. И я сам хочу разобраться для общего развития. А если тебе НЕУДОБНА хуле ты вообще в плюсах делаешь, переходи на шарп.
Как тебя вообще взяли на работу без знания cmake и не умея собирать проект (даже ide не можешь поставить лул)
Ну ты же хотел дроны пилить. Они все на линуксе летают или каком-нибудь RTOS.
Джун - 80% пердоли с линуксом (сборка, отладка, деплой, базовое администрирование), 20% написание кода.
Миддл - 50% пердоли с железом, 50% написание кода.
Сенька - 20% пердоли с доселе неведомым, 80% написание кода.
>у меня есть Qt
А без разницы что там у тебя есть. Все кроссплатформенные IDE это конструктор. VS Code, Eclipse, CLion, Qt Creator, CodeBlocks - по умолчанию не содержат ни компилятора ни отладчика ни git ни cmake ни плагинов для раскраски языковых конструкций. Всё нужно ставить, настраивать, писать конфиги (для IDE). А потом писать make файлы для сборки проекта с учётом того, что ты накатил на IDE.
Только Visual Studio это решение из коробки - поставил и работай. Но оно только подвендой.
С кем-то путаешь
Если ты про меня любителя квадракоптеров, то программы можно и визуальной студии компилировать, ну и мне просто повезло что меня взяли
https://2ch.hk/pr/res/2397264.html (М)
https://2ch.hk/pr/res/2397264.html (М)
https://2ch.hk/pr/res/2397264.html (М)
Да ладно, я сильно не потесню
Короче требуется написать клиент, который будет цепляться на сервер (охуенно, я знаю) и по определенному протоколу выкачивать оттуда либо файл, либо поток вещания с последующим выводом куда скажут. Как это реализовать? Полез курить сокеты, а дальше в каком направлении грести?
Qnetwork
Это копия, сохраненная 27 сентября 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.