Этого треда уже нет.
Это копия, сохраненная 18 сентября 2023 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
С++ thread #143 cpp 2748862 В конец треда | Веб
Вместо шапки:
https://github.com/sosachbot/cppthreadhat
⚹ Для кусков кода: https://0bin.net/

Ответы на вопросы:
https://en.cppreference.com/w/
https://www.cplusplus.com/reference/

Для указателей: ⚹

Прошлый тред: >>2691676 (OP)
2 2748869
C++ лучше вместе взятых раста и шарпа.
3 2748875
>>748869
Если цель пердолинг байтиков, а не крудошлепство
4 2748883
>>748875

>хрюк

5 2748889
Как вкатиться в рендер программисты?
6 2748963
>>748875
Ждём когда перепишут автокад на раст, жаль я этого никогда не увижу
1200px-VisualStudioIcon2022.svg[1].png83 Кб, 1200x1200
7 2749363
Анон слушай, такая ситуация, вообще есть ковыряюсь я через в VS ы одном фреймворке JUCE, вообщем, есть например файл class_name.cpp и есть файл для него class_name.h ну он в самом cpp файле не подключен через include, а подключен где-то там хуй знает где, в общем не важно, компилится всё норм, ну при чтении VS не включает подсветку синтаксиса нормально и intellisense соответсвтено нихуя не видит деклорацию класса то есть типы полей, всю хуйню, ругается по всякому на такие моменты как например типа :: это для описания методов класса, а то что у тебя написано это хуй пойми что неизвестно. Вообщем можно как то неявно задать среде чтобы она нормально распознавала исходник без прописования инклудов? А то неудобно, нужно поспомтреть к какому типу относится переменная, мышкой наводишь на неё, а всплывающее окно показывает undefined
8 2749369
>>748889
Известно как - без задней мысли.
берешь и пишешь свой рендерер
9 2749383
>>749369
ну я написал на вулкане рендерер который умеет простые 3д модельки показывать + примитивный свет
что дальше делать, не ебу
10 2749705
>>749383
попробуй сделать непримитивный свет и охуеешь
11 2749713
>>749383
Сделай физон, да с таким то коллижн детекшеном.
12 2749763
Возможно, скоро придётся менять работу, только вот я всё время хуярил на Qt (сеть, работу с бд, серверы, клиенты) и чё-т непонятно, как на крестах похожую асинхронную модель типа сигналов-слотов делать. Должны же быть библиотечные инструменты? Чё-т как-то неуверенно себя чувствую. На Qt могу чё-то делать, а на крестах инструментария не знаю толком.
.png53 Кб, 722x753
13 2749825
Я совсем нуб.
Поясните, как на С++ сделать вот такое?
14 2749860
>>749825
Попроси чат жпт
15 2749876
>>749825
Без либ никак
16 2749881
>>749763
Так у кути же сигнал слоты - это колбеки повешенные на ивент систему. Насколько я понимаю.
Есть отдельно asio, есть отдельно sigslot, boost::signals2. А вот насколько легко они в кучу сваливаются - хуй знает.
17 2749886
>>749763
Привет qt брат. Дак рисовать кнопки все равно или в qt или в ублюдских виндовс формах. С сетью дружить с boost.
18 2749906
>>749886

>Дак рисовать кнопки все равно или в qt или в ублюдских виндовс формах.


Дык в том-то и дело, что рисование формочек в моём случае дело второстепенное, а самое интересное (и трудозатратное для меня) на стороне сервера -- взаимодействие и дизайн компонентов, чтобы можно было в более-менее вменяемые сроки модифицировать и добавлять фичи, разруливание потоков, вот это всё.
19 2749937
>>749906
Придется подрочить буст
image.png492 Кб, 811x456
Что дальше? 20 2749947
Начал я изучать плюсы. Ну освоил базу, ооп. Порешал 30+ задачек на литкоде. А что дальше учить я и хз. Хотел бы возможно игрушку по типу diablo, но тут я думаю профитнее будет шарп с его юнити(об этой мысли задумался только на момент написания треда). Я совсем не знаю, что я хочу дальше изучать в плюсах, и что вообще можно. Подскажите, пожалуйста, анончики, и что думаете об игре?
21 2750035
>>749363
Даже с правильно настроенным проектом интеллиСенс может сильно тупить, особенно когда библиотека большая и очень много заголовков. Решение - поставь ReSharper, он сильно лучше работает в плане разбора исходников, да и много других полезных фич имеет.

>>749763
Qt тем и хорош, что доступный механизм по работе с сетью, ещё и гуи есть. Как сказали анонсы выше, для сети без Qt адекватнее всего использовать Boost::ASIO и основанные на нем Boost::BEAST для HTTP/WebSocket и какой-нибудь Yandex OZO для работы с сетевыми БД.

ASIO позволяет сделать пиздец производительный сетевой код, но порог вхождения в api высокий

>>749947
Не надо идти в геймдев ради изучения языка, в геймдеве много времени занимает работа с моделями и т.п. Сделать движок и к нему технодемку норм идея, но я бы предложил сделать какой-нибудь пиздатый сетевой сервис. Например, api для телеграм-бота, который обрабатывает картинки в чате, хуй знает, нейронкой их меняет и выдает.
22 2750036
>>749947
Сейчас серьезно отвечу.
Ответ зависит от того, какая у тебя цель.
Если ты хочешь именно игрушку сделать - то шарп+юнити+купленные ассеты твой выбор.

НО. Если у тебя цель - разобраться, а как вообще все там работает. Как устроено изнутри. Поймать проблемы, которые все кучу раз ловили и самому героически их решить. Столкнуться с тем, что твой С++ работает медленнее питоновского кода и полезть разбираться - с фига. А игрушка в процессе - может превратиться в музыкальный секвенсер. Плюсы - отличный вариант.

Чтобы мысль более ясно звучала. Чтобы сделать игрушку по бырой - юнити-шарпы. Чтобы понять, а что ж там скрывается под капотом этого всего дела - плюсы.
23 2750076
>>749947

>Хотел бы возможно игрушку по типу diablo, но тут я думаю профитнее будет шарп с его юнити(об этой мысли задумался только на момент написания треда). Я совсем не знаю, что я хочу дальше изучать в плюсах, и что вообще можно. Подскажите, пожалуйста, анончики, и что думаете об игре


Будут очень жесткие проблемы с графикой, бесплатных 3д ассетов мало. Если ты для себя то попробуй начать написание своего движка, советую оплатить подписку на гпт4 чтобы он был своего рода ментором, и можешь еще задавать вопросы в тг чатах типо @supapro. Какой-то майнкрафт на минималках можно написать за месяца 3-4. Если ты для работы в будущем, то нужно потратить где-то пол годика на изучение С++ и после можешь вкатываться в UE5, там С++ очень своеобразный и многие знания не понадобятся. Для 2д игорь можно наверное взять cocos2d, но я ни разу еще не видел его в вакансиях, там наверное и правда лучше юнити
По С++ можешь что угодно изучать, я бы наверное курс Константина Владимирова на ютубе взял как базу и решал бы задачки из https://gitlab.com/slon/shad-cpp0 и https://gitlab.com/slon/shad-cpp
.jpg161 Кб, 1152x1536
24 2750110
>>749876
Я-то почему спрашиваю.
У нас внезапно на заводе - хотят заставить с шарпов на си плюс-плюс пересаживаться, чтобы писать и ПО для устройств и технологическое ПО на одном стеке. Типа, чтобы не писать на разных языках реализацию одних и тех же библиотек и прочего.
Ну, собственно. Так исторически сложилось, что все сетевое на устройствах - с библиотеками либо от вендора устройств, либо - это линукс и там линуксовыми штуками можно обойтись. С другой стороны- на винде той же - был шарп/жава, и там спокойно жили. А теперь -надо чтобы и в устройствах и прикладном-технологическом софте одни библиотеки были. Донести позицию, что хуету придумали - не получилось, менеджмент взял это дело в оборот.
Собсно я потому и спрашиваю. А как какать сделать хотя бы такую вот простую штуку на плюсах-то? Я же с лапками шарпами привык уже что все что мне надо - есть рядом.
25 2750113
>>750110
Qt или Boost'овые либы
Идеально их смешать, но не взбалтывать, но тут ебейший опыт в обоих нужен.
26 2750118
>>750113
А оно влезет в Bare metal и вообще рассчитано на них? Я ж уже сказал - нуб, кодил всю сознательную жизнь прикладной софт на шарпах.
Просто опять же. Менеджеры ебанаты - придумали зачем-то, что все надо на одном языке, а т.к. завод и железки приоритетнее - выбрали плюсы.
27 2750122
>>750118
Не очень понимаю что значит бейр метал. Если ты про вашу железку - то зависит от железки, очевидно.
28 2750127
>>750122
Ну. Железка без ОС. В которой только наш загрузчик, либы от вендора зашитые и наша программулина, которая делает полезные штуки.
29 2750129
>>750110

>такую вот простую штуку на плюсах-то


Смотри, в С++ совсем другая идеология, С++ он дизайнился с 20тилетним легаси в уме, из коробки в нем ничего нет потому что все слишком неуниверсально. Работы с сетью и даже сокетов из коробки в С++ тоже нет, люди делают библиотеки где оборачивают системное апи под разными платформами в одинаковый С++ код. Ответ на твой вопрос - никак, без библиотек просто н-и-к-а-к. Если ты не хочешь потратить пол года на создание своей библиотеки для работы с сетью то твой алгоритм действий такой:
1. Заходишь на conan.io и следуешь инструкциям по установке
2. Гуглишь http server library c++
3. Ни в коем случае не берешь ничего что содержит в названии слово boost
4. Гуглишь conan cmake и копипастишь оттуда шаблон CMakeLists.txt
5. Устанавливаешь библиотеку и радуешься жизни

Другие варианты либо привязаны к какой-то из платформ, либо ты потратишь на них не 20 минут а 60 часов
30 2750131
>>750129

>3. Ни в коем случае не берешь ничего что содержит в названии слово boost


Почему?

мимо
31 2750140
>>750131
Это не прикладная библиотека, это библиотека чтобы сделать свою библиотеку для работы с сетью, набор кирпичиков. Если он правда переходит из шарпов то начитавшись сайтов типо SO/Quora где везде рекомендуют всякие асио и бисты наверняка попробует и подумает

>блять в с++ для гет запроса ПРАВДА нужно вручную создавать http хедеры?


А взяв какой-то cpp-httplib гляди и осилит
32 2750143
>>749825
Хахаха, asyncmacaque.
33 2750154
>>750143
В таком стиле написан сервак по обслуживанию зоопарка устройств, и 100ГБ/с оно держит на зеончике 2006 года и 4 гигах оперативки.
Заменял он как раз сервак написанный на плюсах, где каждый коннект - отдельный тред, ну и нагрузка которую держал тот сервак на плюсах на том же железе - 100МБ/с, дальше просто задыхался и просил пощады.
Конечно, прирост не обязательно связан с асинк-эвейтами, там еще много чего отличается.

Но вообще. Я бы послушал за альтернативы.
34 2750233
>>750140
В Boost::BEAST не надо шттп хедер создавать.
>>750110
Интересно, а что за ОС? Если Астра Линукс, то там есть Qt 5.11, так и пили технологичку на нем, он хорош.

>>750154
Boost::ASIO.
35 2750236
>>750154

>Заменял он как раз сервак написанный на плюсах


>>749825

>Поясните, как на С++ сделать вот такое?


Пиздежь зациклился.
コイカツキャラ配布 先パイ(Senpai) KKUTS ver. 1 [aakana].png1,6 Мб, 1600x900
36 2750330
Лучший в программаче тред, посвященный лучшему в мире языку.
37 2750391
>>750236
0 пиздежа.
Я пришел в 2015м. В 2014м ушел чел, который тот сервак на С++ писал. Некому было поддерживать его. Первым проектом как раз было переписывание на шарпы того что было на плюсах. Доступа к исходникам - не было(тайна комерческая дохуя), было описание протокола обмена с устройствами и описание пользовательских функций.
38 2750428
>>750391
То есть у вас в своей же компании нет доступа к своим же исходникам?
39 2750452
>>750428
Если ты не участвуешь в проекте - нет. Комерческая тайна, все дела.
Сервер на шарпе - шел новым проектом.
40 2750521
>>750452
Просто как-то странно получается. Если сервер уже есть, но чел ушел, так поставьте другого в тот проект, зачем переписывать
41 2750528
>>750521
У других - своих проектов до жопы.
Типа блин. Это же завод. Я вроде сказал. На заводе - такая практика - у каждого программиста - свой проект, а зачастую - несколько своих проектов, которые они ведут. Уходит программист - знания уносит с собой. Как поддерживать это дело - никто не знают и молятся, чтобы все не ебнулось, пока замену не найдут. От того что все не разваливается - специфичность заводских программистов только спасает, потому что с одной стороны - все шаристые(и таки если пиздец важно - могут включиться и чутка поддержать), с другой - сидят на жопе ровно, ругают работадателя и продолжают кодить за миску гречки.
42 2750530
>>750528
Работаю на мелком производстве в мск.
У нас тоже самое. Каждый отдел имеет своих программистов. И вот я наговнокодил какой то софт, он как то работает, но когда я уйду никто его дорабатывать не будет. ну лан, у нас ещё один прогер есть, так что не все так плохо
43 2750592
Вы можете вставить ниндзю 🥷 в текстовый редактор или IDE? Если можете, скажите мне свою ось и версию.
44 2750614
>>750592
Ты ублюдок, у меня kernel panic вылетел
45 2750645
>>750592
Могу. Винда.
image.png3 Кб, 248x66
46 2750652
>>750592
каво
47 2751634
>>750592
могу, vim, macos 13.4
48 2751667
За целый день никто ничего не написал? И никто даже не устроил языкосрач? или растоботы на выходных сегодня?
49 2751669
>>751667
Написали один пост о поддержке эмодзи в виме. Тебе мало?
50 2751671
>>751669
Это вчера было :3
image.png584 Кб, 781x575
51 2751683
>>749383
Правда ли вулкан так сложен как говорят? Я вот опенгл ковыряю, который легче вулкана, как говорят. Вроде принципы понимаю, но обилие всех настроек и параметров в голову пока не укладывается, то есть я не могу написать код, никуда не подглядывая и ничего не копипастя.
52 2751692
>>749947

>Порешал 30+ задачек на литкоде.


когда будет 300+ приходи и задавай вопросы
а пока уебывай
53 2751694
>>750154

>100ГБ/с оно держит на зеончике 2006 года


пиздишь

пиздишь
54 2751695
>>751683
Нет, но обьем того что не плохо бы подсматривать на порядок выше.
55 2751766
>>750110
Завод-то не электроприборы случаем производит?
56 2751830
1.png17 Кб, 750x323
57 2751851
>>750592
Бубунта 20.04
58 2751878
59 2751954
>>751851
А файл создать можешь с таким именем?
60 2751957
>>751954
Тебе делать нехуй, виндузятня?
2.png23 Кб, 754x266
61 2751981
62 2752713
>>748862 (OP)
Что за приколы
vector<int> huipizda{ 0, 1, 2, 3, 4 };
int govno = huipizda[99999999];
думаете код выдаст какую нибудь ArrayIndexOutOfBoundsException? а вот хуй вам)))0
63 2752720
>>752713
Думаю, что нет, потому что умею читать документацию. А ты чего ожидал? Что будет по 50 рантайм проверок на каждый пук, как в жабках?
64 2752729
>>752713
Лол, ты реально думал что в этом динозавре будут проверки на выход за рамки массива? Кстати вроде даже в паскале есть проверка на это, думайте
65 2752768
>>752729

Тебя кто-то писать заставляет на этом динозавре?
66 2752775
>>752768
И чего ты обиделся?
67 2752783
>>752775

Та мне похуй, я с плюсами имею дело потому что другого варика нету, а дерьмовыми считаю вообще все языки
68 2752816
>>752713
Что не так?
Ну кроме неуча за клавиатурой и жопой вместо головы.
69 2752830
Есть программа с залупированным инпутом, после каждого инпута она печатает в консоль и ждет следующего инпута. Как это по нормальному протестировать через gtest? Я хочу задавать в коде команды для инпута и потом ассертить то, что программа выводит.
Пытался перенаправлять потоки ввода и вывода, смог вывод превращать в вектор со строками, а с вводом не сработало.

Единственное, что приходит в голову - не заниматься хуйней и сделать отдельную функцию со всей логикой, которая принимает массив с командами и читает его вместо инпута, но может есть какое-то другое правильное решение?
70 2752855
>>752830

> Единственное, что приходит в голову - не заниматься хуйней и сделать отдельную функцию со всей логикой, которая принимает массив с командами и читает его вместо инпута, но может есть какое-то другое правильное решение?


Этот и есть правильное решение
Выносишь логику в отдельную функцию/класс, чтобы она не зависела от типа ввода
71 2752925
>>752783
Плюсы охуенный язык стал, не надо тут
72 2752941
>>752729

> проверки на выход за рамки массива



Ясно, критик плюсов - идиот.
73 2752945
Хейтер сосет члены на пару со своей мамашей.
74 2752953
>>752713
во-первых пошел нахуй
во-вторых читай документацию
хочеш эксепшон - пишеш .at(99999)
не хочеш - пишеш [99999]
в заключение лишь добавлю что ты пидор а я ебал твою мать
75 2753000
>>752855
спасибо анончик
76 2753006
>>752830
Логика может работать со ссылками на std::istream и std::ostream. Для тестов можно подсовывать std:stringstream, для приложения std::cin и std::cout.
77 2753018
>>752941

>рвоньк

78 2753037
Возник следующий вопрос.
Есть файл с функциями и файл с тестами,которые объединяются мейком.
Хочу,чтоб в зависимости от таргета в мейке в одном случае выводились результаты теста то одной группы функций,то другой. Но как мне это сделать? По идее через ifdefы ,но могут ли на них влиять таргеты мейка?
И вообще, возможно ли такое
79 2753102
>>753037
В симейке это просто. Создаешь разные таргеты, какие тебе нужны, с одними и теми же, как я понял, сурсами, но с разными таргкт компил дефайнами.
81 2753658
82 2753691
Пацаны, а все плюсовики такие шизофреники или это отдельный экземпляр такой?
https://habr.com/ru/articles/497114/
83 2753743
84 2753783
>>753743

>X или Y


>ДА


Бля, а я думал, у программистов с логикой получше, чем у обычных людей.
85 2753933
>>753691
А в чём собсно он не прав?
86 2753935
>>753691
Так собственно в чем он не прав?
Язык древний, минусов дохуя, комитету похуй, сидят в вечной сансаре страданий

Но в целом жить можно
мне в геймдеве по крайней мере норм
87 2753936
>>748862 (OP)

> пики 2 и 3


Это новый стандарт?
image.png12 Кб, 310x343
88 2753937
>>753936

>Это новый стандарт?


Ну, можно и так сказать...
89 2754200
>>753937
Через 10 лет приживется.
90 2754239
>>754200
Что поделать, пердюликс никому не интересен, а под виндой микрософт тормозит.
91 2754338
>>754239
Настолько не интересен, что в каждом треде пукают и пытаются затмить Величие наследия юникса.
92 2754430
Собираю мсвц через симейк не могу задать стандарт. Ни симейком ни через схх флаги. На гцц и минг все ок. Чдт?
93 2754479
>>754430
target_compile_features(${lib} PUBLIC cxx_std_20)
94 2754560
>>754479
Я же написал что не работают такие методы.
Хотя и на линуксе с гцц и на винде с мингв все ок.
когда таргет лусше прайватом писать, иначе в таргете нету смысла и можно глобально для всех таргетов задавать
95 2754564
>>754560
что значит не работают, ЭТО ОБЯЗАНО работать
значит проблема не в симейке
96 2754731
>>754564
Анончик ну читай пост, вроде по русски написал.
Симейк один и тот же, но с мингв все ок, а с мсвс нихера .
97 2754828
>>754564
c мингв постоянно какая-то ёбка в анальную жепу. то charconv отсутствует, то to_string не работает, то source_location, то хуйня то молофья
98 2755227
>>754828
Очередной жопочтец. С мингв как раз таки рабоатет, не работает с мсвс.
99 2755414
>>754430

> Ни симейком ни через схх флаги


Ну тут остаётся только одно - ты долбоеб либо первое либо второе неверно сделал, третьего не дано
100 2755444
>>754430

>симейк


нинужно
101 2755463
>>755444
Ничего другого нет.
102 2755486
>>755444
Правильнее говорить антипаттерн
103 2755526
>>755486
Бед практайс
104 2755934
Чото IOS треды все утонули видать, попробую тут спросить. Есть проект в Xcode преимущественно на плюсах. в дебагере строки(которые std::string) отображаются как Summary Unavailable. Я вообще не особо шарю во всем этом ios и xcode соответсвенно и какие-то норм настройки дебаггера не нашел, помогите как пофиксить? Стековерфлоу облази, но чото ничего релевантного не нашел особо.
105 2756061
>>753691
А в чём не прав-то? Запомнить все приколы с++ уже невозможно. Баги в САМОМ СТАНДАРТЕ это подтверждают. Иногда хочешь сделать элементарную вещь и начинаешь путаться, что есть тривал обжэект, копипэл обжэект, под обжект, можно ли их копировать или нельзя. И прочая хрень. Надо писать код Си с классами. Незамудрённые исходники tensorflow или opencv - подтверждают мою теорию
106 2756107
>>755934
строки, вектор и вообще весь стл это pimpl
так что если иде/дебаггер не поддерживает его раздрачивание то придется писать мокрописечные расширения на питуне или че у вас там
я в свое время с код блокс пердолился на эту тему, но в нормальных иде (яблодрочеров не касается азаза) обычно есть поддержка как минимум стл
107 2756135
>>752713
ну тут с большой вероятностью сегфолт должен быть...
IMG20230706103331520.jpg71 Кб, 1132x566
108 2756242
Есть структура.
Она содержит два указателя о объект типа T.
Мы кастомным(или стандартным) аллокатором аллоцировали память под неё.
Конструктор мы не вызывали, то есть она в каком-то смысле неинициализирована.
Мы можем взять указатели на все её поля, записать в них что надо и затем пользоваться структурой как будто бы она инициализирована?
Я делаю просто свой лист и мне охота allocate делать структуры, а construct объекта типа T внутри неё.
Потому что иначе мне надо у ноды делать разные конструкторы и в них как-то прокидывать набор аргументов для конструктора объекта T (в логике emplace_back)
Читаю сорсы стд и там так и делают. Нода аллоцируется генНоде методом. У ноды нет конструкторов но есть метод гетВалПтр который достает указатель на значение.
И констракт делается уже по указателю на значение
А что за гварды я не понимаю, и возможно тут и проблема.
https://github.com/gcc-mirror/gcc/blob/acaa441a98bebc5216334557cf8d09d63087ce37/libstdc%2B%2B-v3/include/bits/stl_list.h#L706
109 2756279
>>756107
>>755934
В нормальных компиляторах СТЛ не пимпл. Просто шаблоны std::string явно инстанциированы в шаред либе, libc++ на гейоси, если llvm, которая скомпилирована без дебажных символов.
110 2756288
>>756061

>Надо писать код Си с классами. Незамудрённые исходники tensorflow или opencv - подтверждают мою теорию


Вот orthodox c++ это точно шиза, ну или, как минимум, луддизм.
111 2756300
>>756288
я не против наследования, векторов и std::move. Я против шаблонизированной хуйни, создавания 20 классов чтобы пукнут в сеть и прочего ромбовидного наследования
112 2756301
>>756288
А это >>756242 не шиза?
113 2756312
>>756300
>>756301
Шаблоны - единственное, что отделяет кресты от других говноязыков, и макаки-формошлёпы очень боятся их.
114 2756329
>>756312
Что в примере выше такого гениального, чего нельзя сделать другими средствами?
115 2756343
>>756312
Ну значит opencv и tensorflow писали макаки. Ясно, понятно. Импортозамещатель с госпараши по САМОМУ МОДНОМУ ПОСЛЕДНЕМУ СТАНДАРТУ С++, ты? Как, каместили microsoft word?
116 2756374
>>756329
То что это по сути код сишный с тыканием в биты и максимально возможной производительностью с одной стороны, и высокоуровневый код с кучей точек расширения с другой стороны: свой аллокатор для своего менеджмента памяти например.
117 2756375
>>756312
Шаблоны это кал для скриптомакак, которые никак от своих динамических типов в башке не могут избавиться и хотят писать на сях как на динамической скриптопараше.
118 2756381
>>756374
>>756374
И самое главное это вынос логики на этап компиляции, это даёт возможность делать решения даже более быстрые чем на чистом си
119 2756393
>>756242
ебани в ноду aligned_storage и конструируй/не конструируй в нем что хочешь
120 2756401
>>756242
А зачем создаётся какой-то __guard, если с ним ничего не делается? потом заннуляется просто..
121 2756412
>>756401
он сохраняет какое-то состояние. если в ::construct выпадет кишка эксепшон он в деструкторе вернет как было
в случае успеха - обнуление чтобы как раз не откатывал
122 2756472
Рэйнджи это кал?
123 2756519
>>756242
Обьясните, зачем в ваших потешных макросах нужны префиксы __?
124 2756523
>>756519
А де там макросы?
125 2756539
>>756523
Но template - это плюсовая замена макросов. И там должна быть гигиена, разве нет?
126 2756561
>>756519
ето только в стд. кстати имена с префиксом __ зарезервированы специально для него
127 2756608
>>756519
Потому что нет модулей, так что ты не можешь сущности скрыть от пользователя, всё что инклудится видно

Так что есть два выхода:
- прятать всё под _
- прятать всё под namespace __private_dont_open{}
128 2756942
bool isPalindrome(int x){
int num = x;
int res = 0;
while(num != 0){
res = res10 + num%10;
num /= 10;
}
std::cout<<res<<std::endl;
return x == res ;
}

int main(int argc, char const
argv[])
{
int test = -121;
bool res = isPalindrome(test);
std::cout<<res<<std::endl;
return 0;
}
Блять почему код возвращает 1? Res положительный, x отрицательный, что за хуйня
129 2757003
>>756608
Можно делать интернел хедеры в сурсе, а во внешнем только конкретные функции, хоть экстерном. Так еще деды на сях писали, но это забытые технологии.
130 2757008
>>756942

> Блять почему код возвращает 1?


А что он должен "вернуть", по твоему?
131 2757042
>>757003
А с хедер онли в таком случае что деды делали?
132 2757108
>>757008
121 по твоему равно -121 ?
133 2757170
Педерасты, сорян за нерилейтед, но объясните, почему сысоев выбрал размещение sentinel где-то в левом месте, а не в самой структуре ngx_rbtree_t. Т.е. у него sentinel лежит всегда в каких других местах и является внешним по отношению к структуре дерева. Какой в этом смысл?
134 2757191
>>757042
Хедер онли это новомодная хуета так то. Раньше хедер онли только для дефайнов всяких пользовали, а не для реализации функций, так что противоречий нет.
135 2757243
>>757108
А с чего ты решил что у тебя res положительный? и как блять это вообще у тебя получилось
136 2757327
>>757243
да, ты прав, спасибо
ночью делал и мозг уже не работал
IMG20230708014350027.png141 Кб, 1438x592
137 2758032
>>756393
Не очень понимаю как правильно сделать. В стд там юзают не внешние штуки, а какие-то их внутренние aligned membuff
У меня вот так выглядит нода, пока что я для неё аллоцирую память и её конструирую аллокатором передавай паки аргументов.
138 2758347
Как сделать конструктор преобразования между двумя инстанциациями шаблонного класса?
Не могу никак собрать синтаксис для этого
139 2758420
>>758347
template<class T> class Zalupa
{
template<class U> Zalupa(Zalupa<U> const&) {...}
}
140 2758446
Чтобы сделать 2Д игру на SDL, си++ избыточен, или простого си за глаза хватит?
141 2758458
>>758347
Какую задачу ты решаешь? ©
>>758446
Можно даже 3d, без классов Vektor и Мatrica, представляешь?
142 2758459
>>758446

> Просто си


Да ты охуел. Сьеби.
143 2758461
>>758446
На си надо уметь писать как ни странно. В отличии от плюсов в нем нихуя нет. 100% во время разработки захочешь ты хешмап, например, и вопрос можешь ты осилить стороннюю либу для этого, без всякой синтаксической магии как в с++.
144 2758462
>>758446
Что значит C++ избыточен? С++ даёт возможность не обосраться в тех местах, в которых ты обосрешься в С, даёт возможность не писать многострочные макросы, даёт исключения (ебланов не слушай), даёт нормальное ООП.
С стоит выбирать только если ты шиз.
145 2758486
>>758461
Это пишется за 10 минут. Под каждый конкретный случай своя. А когда лень, берется файлик hash.c, отлаженный 10 лет назад.
146 2758487
>>758458
Итератор шаблонными параметрами имеет тип и булевый параметр isConst
Неконстантный итератор должен приводиться к константному, а наоборот нет
>>758420
Так любое из инстанцирований будет в любое другое приводится, а надо как-то логику когда можно, когда нет
147 2758494
>>758462

> не писать многострочные макросы


Не нужны почти никогда. Лучший стиль - множество однострочных макросов.
148 2758622
>>758487
Я в шаблоны только вкатываюсь, ты что то такое хотел?
https://onlinegdb.com/x9U-9WHsu
149 2758671
>>758486
два чая

>>758461
на гитхабе полно всяких сишных библиотек. Тем более, можно легко выдернуть из того же православного nginx'а что угодно. И там очень элегантные решения.
150 2759276
>>758446
В плюсах куча всяких удобных плюшек, структуры данных из коробки и с синтаксическим сахаром, смарт пойнтеры (считай что сборщик мусора, как в этой вашей Жабе, но без выявления циклов), можно обмазаться самыми новыми стандартами и писать хоть как на Питоне, в ус не дуя. А потом если производительность все еще не устраивает, уже это все дело можно оптимизировать. Это все равно проще, чем сначала прототип писать на одном языке, а потом переписывать на более быстром.
А писать на Си это как челлендж разве что, либо для портфолио, но хуй знает, где сейчас на чистом Си пишут, МК наверное, но там то на игры на SDL всем поебать, лучше тогда сразу МК обмазаться.
151 2759294
>>759276
Кто такой этот ваш МК?
152 2759302
>>759276
Никто не пишет игры на сдл.
Ладно шьако 2д еще можно, но что то нормальное - нет.
Сдл или глфв - только абстракция системных окон и событий с ними. А сдл рендерер это так - детей пугать.
Так что игры можно писать с сдл как менеджером окна, но рендерят дх/гл/вк.
153 2759316
>>759294
Михаил МК. Туманное говно смотрел? МК -- это микроконтроллеры.
>>759302
Ну один хуй окна -- это не про контроллеры.
154 2759461
Объясните нахуя производители процессоров добавляют команду nop?

Она же только хацкерам и реверсерам нужна, это небезопасно.
155 2759533
>>759461
Выравнивание
156 2759660
>>759461

>Она же только хацкерам и реверсерам нужна, это небезопасно.


Программистам типо не надо? Никогда не нопал инструкции в процессе чтобы не пересобирать билд?
157 2759694
Какие есть хорошие компиляторы для windows XP? или альтернатив кроме древней версии вижлы нет?
158 2759695
>>759660

>Никогда не нопал инструкции в процессе чтобы не пересобирать билд?


Ёбаный рот, а так можно было? ОСь не защищает процесс в памяти что ли? Там же вроде флаги у страниц есть.
159 2759704
>>759660
Зачем что-то там нопать, чтобы не пересобирать?
160 2759751
>>759695
>>759704
Мы вам ОБЯЗАТЕЛЬНО перезвоним!
161 2759752
>>759751
Шутки шутками, а то, что ты озвучил (особенно если на проде) похоже на нейрохирургию ебаную.
162 2759779
>>759704
Ну бля собираешь игру а там какой-то ассерт всратый срабатывает от другого бага, ты берешь нопаешь его и дальше работаешь. А если этот ассерт в хедере движка ты вообще хуй че пересоберешь, так что приходится выкарабкиваться
163 2759780
>>759695

>ОСь не защищает процесс в памяти что ли


Дебаггер с процессом может что угодно делать, я через интерфейс визуалки это делал и все работало
15537835703350.jpg65 Кб, 736x736
164 2759963
>>759694
BORLAND C++ BUILDER
165 2759970
>>759780

>я через интерфейс визуалки


>IDE


>Запущена под админом
Ну, или просто это был дочерний процесс, поэтому был доступ.

166 2759972
>>759970
Вау, я выучил новый трюк поди.

>Аллеоп
Kekus

167 2760019
>>759963
Борланд давно стух, это называется Embarcadero RAD Studio, да, даже на ХР.
image37 Кб, 370x376
168 2760727
Блять, как же долго компиливаться ваш этот буст. Даже на няшном и быстром gcc, я молчу уже про тяжеловесный MSVC. Теперь понятно почему его так срут.
169 2760737
>>759694

>Какие есть хорошие компиляторы для windows XP


1) MSVC v141_xp build tools с компилятором VS2017 поддерживает C++17, включая std::filesystem.

2) Есть порт gcc для Windows XP. https://gitee.com/qabeowjbtkwb/mingw-gcc
Есть даже для Windows 98 без поддержки многопоточки и std::filesystem, если хорошенько поебаться, тут есть инструкция https://github.com/fsb4000/gcc-for-Windows98
170 2760805
>>760727
Час это долго?
171 2761163
>>759302

>Сдл или глфв - только абстракция системных окон и событий с ними. А сдл рендерер это так - детей пугать.


>Так что игры можно писать с сдл как менеджером окна, но рендерят дх/гл/вк.


Ало чел, его SDL для этого и используют. Чтобы обрабатывать клики, джойстики и прочее. Короче если тебе игровой движок слишком много, хочешь легковесную игру, SDL идеальный вариант. Рендер SDL никто не использует. Он там просто так, депрекейтед.

Я знаю очень много проектов на SDL, вся графика там Vulkan либо OpenGL если проект старый.
172 2761213
>>761163

>Рендер SDL никто не использует


О каком рендере речь? О том, который SDL_Renderer? Почему не используют?
173 2761253
>>761213

>SDL_Renderer?


Да.

>Почему не используют?


Потому что есть OpenGL и vulkan, сейчас их любой утюг поддерживает. SDL_Renderer был актуален давным давно. Да и функционала у этих стандартов больше, больше кода. Сейчас рендерер это просто бесполезная обертка над некоторыми вызовами GL/VK
174 2761326
Посоны объясните как пользоваться std ranges и std view и чем они пизже алгоритмов
sage 175 2761406
>>761163
Ты дурак и жопочтец.
176 2761649
>>760727
Торопишься куда-то?
177 2763396
>>761253

>OpenGL


SDL проще. Как большая коробка с инструментами, даже если конкретно молоток не особо удобный. Особенно когда тебе нужно не лютую игру сделать, а просто хотя бы научится делать подобное. Парируй.
178 2763466
>>759752
С микроконтроллерами без нопов никуда, там очень часто надо такты считать. На десктопе может понадобиться, например, для реализации спинлока (не nop, а pause/yield, но они фактически тоже нопы). Про выравнивание выше уже сказали, вот таблица nop разной длины для x86 в качестве примера:
https://stackoverflow.com/questions/25545470/long-multi-byte-nops-commonly-understood-macros-or-other-notation
179 2763471
>>763396

>SDL проще


Для совсем простых вещей. Чуть выйдешь за рамки, и уже нужно будет что-то низкоуровневое, а в SDL рамки - тупо текстурированные квадратики. Банально для любого эффекта уже шейдеры понадобятся.
180 2764194
>>763471
Марио написать - хватит. А большее в одиночку и пилить нет смысла.
181 2764593
>>764194

> А большее в одиночку и пилить нет смысла


Куда уж там всяким Stardew Valley, римворлдам, андертайлам, майнкрафтам и прочим Touhou, сейчас аноним с харкача вам расскажет, что есть смысл пилить в одиночку, а что нет.
182 2764609
>>764593
Ну иди пиши, хуйло ебаное. Только сначала марио осиль.

> Stardew Valley, римворлдам, андертайлам, майнкрафтам



Выбрал единичные случаи из миллионов потугов ХАЧУИГРЫДЕЛАЦ и сует как аргумент. Какой же тупой.
183 2764667
>>764609
Да не трясись ты
184 2764715
>>764667
Да-да. Майнкрафт написал уже, додя?
185 2765090
>>764194

>А большее в одиночку и пилить нет смысла


В одиночку вполне себе можно какой-то пиксель арт рогалик сделать, на крайняк нанять художника-студента чтоб нарисовал там 20 спрайтов за 500 баксов. Noita например 3 человека делало, из которых программист всего один, а один просто музыку делал. При этом там упор на физику и разрушаемость, вполне себе можно в соло осилить если идейный. В одиночку нет смысла делать что угодно связанное с неткодом, или с нормальным артом или 3д ассетами, там без фултайм моделлера/аниматора/художника ты далеко не уедешь
186 2765215
>>764593
Дегенерат, ты сам себе противоречишь. По твоей логике, если кто-то написал майнкрафт, значит и ты можешь, и каждый может, но тогда должно быть как минимум тысячи майнкрафтов, однако их нет, он всего один. Это и есть показатель, что никто не может. Существование майнкрафта написанного в одиночку является доказательством невозможности такое написать в одиночку. Исключение доказывает, что это не правило, а ИСКЛЮЧЕНИЕ из правил.
187 2765225
>>765215

> существование является доказательством невозможности


Явахуе, ты сам то читаешь что ты пишешь?
188 2765226
>>765225

>Явахуе


Да, правильно, так и продолжай дальше. Больше не изображай будто думаешь, тебе не идет, получается хуйня.
189 2765229
>>765215

> По твоей логике, если кто-то написал майнкрафт, значит и ты можешь, и каждый может, но тогда должно быть как минимум тысячи майнкрафтов, однако их нет, он всего один


Ты вообще знаешь, что такое логика? У тебя тут произошел неправильный вывод из двух утверждений.

> если кто-то написал майнкрафт


> значит и ты можешь, и каждый может


Написать игру в одиночку. Это не обязательно должен быть майнкрафт. И игр, разработанных одним человеком, много. То есть, ты только что обосрался.

> однако их нет, он всего один


Ты совсем дегенерат? Зачем разрабатывать майнкрафт, если он уже есть? Чтобы что?

Это просто жирный троллинг, да? Я не верю, что можно на полном серьёзе быть таким тупым.
190 2765234
>>765229

>Ты совсем дегенерат? Зачем разрабатывать майнкрафт, если он уже есть? Чтобы что?


>Это просто жирный троллинг, да?


Воистину, да. Смотри сюда >>765226
191 2765359
>>765090
Тот тип людей, кто способен высрать Страдью Веллей и Майнкрафт в одиночку не задают вопросы в стиле "чо лучше SDL/SFML/OPENGL?"

Исключение лишь подтверждает правило.
Поэтому разумный подход это взять sdl/sfml и наделать на нем Марио или любую не особо сложную игрушку, или взять UE и делать на нем. А потом смело вкатываться в гейдев(исходная цель у задающего наверняка такая)
192 2765384
>>765359
Тот тип людей, кто собирается делать игры, не лезет с тред С++, сюда лезут ебланы не желающие делать никаких игр, а только ковырять язык палочкой впустую имитируя деятельность. Бесполезные ничтожества без желаний и целей, только косят от работы потому что ничего делать не могут и не хотят, но честно плевать в потолок чсв не позволяет признать себя уебком. Боты имитирующие человека, фальшивка как китайская подделка.
193 2765407
>>765384
Бейз
194 2765726
>>765384

>Бесполезные ничтожества без желаний и целей


Хочу ебать тянок. Это моя цель и желание. А ты соси хуй и дрочи на игры.
195 2765835
Какие технологии изучать, чтобы вкатиться в бэкэнд на C++?
196 2765895
>>765835
теже что и на бэкенд на го\питон\жабу\шарпы
поменяется только фреймворе, хттп, бд и остальное останутся теми же

а ну еще бэкенда на плюсах почти нет
197 2765898

> поменяется только фреймворе, хттп, бд и остальное останутся теми же


поменяется только фреймворк.
хттп, бд и остальное останутся теми же*
198 2765916
>>765895

>а ну еще бэкенда на плюсах почти нет


А какая работа есть на плюсах для выпускника универа?
199 2765925
>>765916
Честно сказать? Если уже во время практики ничего не нашел - в плюсы не вкатишься
200 2766009
>>765916
На производство иди, там будешь тулзы и прошивки для МК писать. Но это путь в один конец по ощущениям
201 2766192
>>766009
Как искать такую работу?
202 2766201
>>765916
Никакая, учи жабу или жс, это проще, чем найти работу на плюсах.
203 2766260
нихуя вы позитивные в треде
что вы там новичка дизморалите?
204 2766281
>>766260
Жизнь такая.
205 2766282
>>766192
Везде, где видишь инженер-программист С++ шлёшь письмо, где говоришь что готов за еду пахать как папа Карло.
но лучше бросай плюсы
206 2766284
>>766281
Но сишку знать надо всем. Это база. Плюсы могут пригодится если вдруг вебмакака дорастет до того, что полезет свои инструменты править. Я так вижу.
207 2766285
ну или вдруг понадобится станок чпу прошить, а ты тут как тут со знаниями базы
208 2766287
>>766285
Впрок это хуевая идея. Но вот как кишки ноды изучить без базы?
https://github.com/danbev/learning-nodejs
209 2766329
>>766287

>кишки ноды изучить без базы


Их изучать нужно просто умея читать С++, это гораздо проще чем на нем писать. Я знаком с одним веб-разрабом с 8 годами опыта, он где-то за пол годика подучился на С++ программера и пишет свою инмемори бд и язык программирования на плюсах. Код я конечно не видел, так что степерь пиздеца оценить не могу, но освоить для чтения думаю можно за пару недель
210 2766333
>>765916

>А какая работа есть на плюсах для выпускника универа?


Любая на которую возьмут, подавайся везде, на любую галеру, даже за 200$/мес. Если я с 3 вакансиями на город и это в разгар пандемии смог вкатиться то в ДС/ДС2 это гораздо проще
211 2766575
>>766333
А если хочется на конкретное направления, на 3д графику например или написание компиляторов. Если устроиться куда возьмут и 5 лет диодиками мигать, то кто потом с этим опытом возьмет 3д графонием заниматься?
212 2766581
>>766575
Если у тебя есть выбор из компаний то иди куда душа велит, но как написал анон выше окно для вката не очень большое. Аренда дорогая, еда дорогая, а вакансий на жаваскрипт или сисярп поболее чем на кресты
213 2766582
>>766581
Можно же еще сидеть на шее у родителей и изучать ту технологию, что нравится, пока не найдется вакансия по душе. Как вариант?
214 2766725
>>753018
Как будто твоей язык, где это говно в принципе скомпилируется хоть чем-то лучше.
215 2766772
Пасаны. Поясните, в какой момент С++ из нормального языка - превратился в то, чем он является сейчас?

Просто я не понимаю, где происходит переход, от "Ну, вот как Си, но только классы добавились, ну еще есть темплейты, а ну и лямбды есть", во всю эту магию с непонятными умба-юмба заумными штуками, название которых я даже не могу вспомнить и использованием постоянно андерскоров везде где только можно, чтобы читать код было принципиально невозможно.
216 2766775
>>766772
Темплейты в их базовом виде завезли в 90е, лямбды в 11 если не ошибаюсь. Где-то в этом диапазоне.
217 2766786
>>766772
Буквально с самого начала
Плюсы никогда не были просто си с классами
218 2766795
>>766786
Но ведь раньше такого страшного кода как сейчас - в плюсах не было.
Ну или непопулярен он был. Писали нормально и потому - было удобно учиться на плюсах, а потом уже переходить на джаву или еще чет, потому что ну, там почти так же, но со сборкой мусора и кучей библиотек полезных.
Самое страшное что было, это использование препроцессора для обеспечения переносимости между платформами.
А сейчас. Я открываю некоторые проекты на гитхабе и гуглю, что эта конструкция вообще делает, а эта - что. Короче. Сделали из нормального языка черт знает что.
219 2766801
>>766795
Так может это ты языка не знаешь?
220 2766805
>>766801
А кто знает
221 2766813
>>766801
До 2011 я работал на плюсах.
И плюсы там где я работал, были именно что Си с классами, ну чутка темплейтов. А весь код в SVN. Было клево. Было понятно. Кодили под винду и горя не знали.
222 2766831
>>766772
Старпер, плиз.
223 2766875
Ненавижу тупое отсталое старичье, из-за которого на C++ нет ничего нового и только адская легасятина.
224 2766879
>>766875
Для тебя же стараются, неблагодарный. Но нет, будет все время изучать что-то новое (aka старое но в новой обертке), вместо того, чтобы вечером Дуньку на сеновале мацать за сиськи.
225 2766887
>>766875

>нет ничего нового


С++ про серьезное программирование, а не детские забавы. Страсть к новому это синдром ребенка познающего мир, но взрослый уже познал, он начинает продуктивно работать, а для этого нужно не прыгать на новое, а сидеть на своём месте делая своё дело своими инструментами. С++ это не новостной сайт: "Что там новенького подвезли?", на нём программы пишут, а не возятся с языком ради самодроча возни с языком. С++ не игрушка.
226 2766890
>>766875
Когда достигаешь максимального уровня ты перестаёшь прокачиваться
227 2766892
>>766887

>он начинает продуктивно работать


>нет стандартных пакетных менеджеров


>нет стандартной системы сборки


>в одном проекте могут быть библиотеки собирающиеся мейкфайлами, базелем, смейком, мсбилдом и гредлом


>стандартные контейнеры ущербные by design


>нет высокоуровневых примитивов синхронизации


>разработчики компиляторов забивают хуй на стандарт потому что неудобно или не осиливают


>аби уровня б, но никто не хочет его ломать


>в языке нет сокетов, экзекуторов, рефлексии (да, даже динамической), нормальных статических анализаторов, кроссплатформенных IDE поддерживающих больше одной системы сборки


>он начинает продуктивно работать


Нет той степени уебищности, которую бы не защищали крестофанатики.
228 2766959
>>766892
Это полнвй обсер даунич. Твой гринпук не про язык.
229 2766971
>>766892
База
230 2766981
>>766959
Ну да отсутствие экосистемы и нормальных языковых возможностей нереализуемых без поддержки компилятора это совсем не про язык, не надо сюда смотреть, вон лучше поглядите в сисярпе негров линчуют рефлексия ДИНОМИЧЕСКАЯ! Медленно! И вообще не удобно, я лучше сам ручками REFLECT_STRUCT(Foo::Shit) буду писать для каждого класса, пусть говном и пованиет зато своё!
231 2767211
>>766892
Это называется свобода и открытость. А когда ты раб с магазином от барина, и он внезапно что-то удалил, не понравился ему пол, цвет кожи или национальность, и ты соснул, или вообще прикрыл лавочку или обанкротился и выключил свой сервер. Что ты будешь делать? Сосать палец. А на сях похуй, есть интернет, там всё найдется, барин ничего не контролирует, нет бояр, есть только свободные программисты. Язык для людей, а не червей мечтающих о барском сапоге в жопе. Твои говноскрипты тыквятся по кд потому что барин так захотел, иди обновляйся и всё переписывай, твоя говноверсия через пол года уже устарела и нинужна. Охуеть красота, в таком темпе можно только говна навалить на похуях вместо качественно софта на настоящем языке С++, который десятилетиями спокойно работает.
232 2767230
>>767211

>отсутствие функционала это свобода


ЧТД

>Нет той степени уебищности, которую бы не защищали крестофанатики.


В языке мало библиотек? Ну это хуйня бесполезная. В языке много библиотек? Ну ты тогда от них полностью зависим становишься. В языке есть фичи? Они бесполезные. В языке нет фичей? Язык бесполезный и неудобный. Вокруг языка есть сообщество и экосистема? Это всё раздутый хайп от бигтеха. Вокруг языка нет сообщества и экосистемы? Значит язык мертв. Язык используют в ОС? Это все пропаганда, настоящие ОС пишут на си и с++. Язык не используют в ОС? Так это потому что он игрушечный.
Всё это разумеется не касается богоподобного С++, отсутствие библиотек это свобода, отсутствие фич это пространство для самореализации, а отсутствие экосистемы это гибкость. Смотрите не перепутайте.
233 2767264
>>767230

>отсутствие загона для скота это свобода


Именно так.
234 2767353
>>766981
Ты поехавший, наглухо.
235 2767506
>>767230
Свобода -- это не когда ты можешь делать всё, что вздумается, а когда можешь сам выбрать, что ты обязан делать.
236 2767571
>>767506
Cвобода — это рабство
237 2767676
Швабодка.
238 2767736
>>767506

> а когда можешь сам выбрать, что ты обязан делать


Свободные программисты, подскажите а как мне на атомике сделать неатомарный инкремент? Я вот мутекс взял, не хочу лишнего кода в программе
239 2767977
Не общайтесь с дебилом и он съебет отсюда очень быстро. Дебил здесь сидит только потому, что вы его кормите. И помните, что в споре умного с дебилом спорят два дебила.
240 2768025
>>767977
Их бесполезно к чему-то призывать, здесь могут месяцами кормить жирноту и троллинг тупостью. Тролли даже особо не стараются.
241 2768065
>>767977
Тред всё равно сдох. Хотя я даже не уверен был ли он когда-то жив. Весь контингент тут либо школьники не осилившие загуглить свой же вопрос, либо жирничи которые сюда пишут от нехуй делать
242 2768196
>>767506

>Свобода -- это не когда ты можешь делать всё, что вздумается


Но ты не можешь даже этого. Есть загон для скота - магазин пакетов от барина, и ты пользуешься только им, иначе никак, раб без выбора. А вот барин - всему господин, решает какое пакеты можно разместить, какие нельзя, барин решает за тебя раба чем тебе пользоваться или нет. Все эти манясторы служат только одному - согнать скот мнимым удобством, а потом закручивать гайки, всё равно никуда не денутся. Стадо баранов за забором, никто из них забор не перепрыгнет и не побежит на свободу, даже если физически может, уже не захочет, выдрессировали рабов привыкших подчиняться.
243 2768261
>>768065
Тред вполне себе оживает, когда за бамплимит уходит. Залетных тут не любят.
244 2768298
Какие фреймворки изучить, чтобы найти работу? Qt и Wt подойдут?
245 2768314
>>768298
Qt, буст
246 2768347
С какой стати winapi для GUI приложений умер? Я просто понять не могу. Программы на нем получаются легковесными и с красивым(классическим, без свистоперделок) интерфейсом. Почему он решил умереть?
247 2768376
>>768347
Вручную велосипедить заебешься
248 2768421
>>768347

>С какой стати winapi для GUI приложений умер?


Микрософт его закапывает ради Silverlight WPF UWP очередной свистелки-перделки, которую забросят через пару лет.
249 2768428
Чем вы собираете собственные пет проекты?
Хочется и удобно зависимости добавлять и компиляторы налету менять и чтобы кастомные таргеты простенькие писать

Premake vs Cmake vs MSbuild vs Build2 vs ....
250 2768541
У кого то был опыт устройства C++ разрабом с другого языка? Допустим, 5 лет писали на другом языке, доросли до сеньки, дома прочитали пару книг по плюсам и устроились на плюсовый стек.
251 2768696
>>768428
Сmake все это делает без проблем.
Детектит платыормы, компиояторы, переменные среды, версии либ и тд. Все что нужно.
252 2768752
>>768696
Симейк ничего не делает, только обсирается. Делает только Visual Studio куда завезли поддержку майкрософт, вот работа майкрософт и работает, а не симейк-параша, которая никогда не работала и не будет.
253 2768756
>>768696

> Сmake все это делает без проблем.


Про делает согласен, но без проблем не согласен
254 2768813
>>768696

> Детектит компиляторы


Спасибо, она задетектила мсвц и наглухо отказывалась компилить мингв. Просто ни в какую.
255 2768829
>>768696

>Сmake все это делает без проблем


Литералли худшая билд система, хуже наверное только Ant. Но для справедливости хуже Ant-а наверное еще не изобрели, так что смейк особо то и не старался.
256 2768847
>>768829
А что использовать вместо CMake? Почему на него все ругаются? Я вот собирал программу помню CMake'ом, всё собралось с 1 раза. Где почитать подробнее про его проблемы можно?
257 2768887
>>768847

> вот собирал программу помню CMake'ом, всё собралось с 1 раза


Если бы он не собрался с первого раза я бы крайне удивился. Проблемы смейка из моего опыта:
1) Всратый, неинтуитивный, не похожий на С/С++ синтаксис
2) Медленный
3) Неадекватные ошибки уровня "unable to find file Х" когда на самом деле ты забыл }
4) Документация невероятно ужасная, одна из худших что я видел. Как понять поддерживает ли add_library относительные пути, или только абсолютные? А никак братан иди нахуй)
5) Меняется каждые пару лет, куча устаревших возможностей, об устаревшести которых можно узнать только на код ревью. Я например не знал что стандарт теперь нужно указывать через set_target_properties, а не CMAKE_CURRENT_CXX_STANDARD, и как об этом узнать я понятия не имею, никаких варнов мой смейк 3.27 версии не выдает. По этой же причине на любой вопрос на СО будут ответы 2007, 2011, 2014, 2018 и 2022 года с абсолютно разными инструкциями, из которых 2-4 будут нерабочими.
6) Нет экосистемы. Отладчик появился буквально пару месяцев назад, подсветка синтаксиса уровня ключевых слов, автокомплит учитывающий контекст отсутствует, IDE не умеют автоматически добавлять файлы в систему сборки. А как узнать название таргета для линковки от библиотеки я до сих пор не знаю, и никто из моих коллег не знает, обычно все просто перебором пробуют.
7) Работа с проектами со сложной иерархической структурой полный пиздец. Единственная либа в которой я видел хоть сколько то адекватную структуру проекта на смейк это cocos2d - заключается она в том что тебе нужно ручками описывать каждый блять файл в каждой папочке, а после пробрасывать смейклисты наверх вплоть до add_ где они используются. Разработчики смейк заботливо добавили GLOB() который сразу же рекомендовали не использовать, ведь смейк не может понять что на диске появились новые файлы)))))))))
Теперь если мне не нужна кроссплатформенность я беру мсбилд и делаю все на винде. В нем ни одной из этих проблем нет, а в добавок получаю vcpkg без бойлерплейтных конфигов и копипасты устанавливающий библиотеки в одну команду в консоли
257 2768887
>>768847

> вот собирал программу помню CMake'ом, всё собралось с 1 раза


Если бы он не собрался с первого раза я бы крайне удивился. Проблемы смейка из моего опыта:
1) Всратый, неинтуитивный, не похожий на С/С++ синтаксис
2) Медленный
3) Неадекватные ошибки уровня "unable to find file Х" когда на самом деле ты забыл }
4) Документация невероятно ужасная, одна из худших что я видел. Как понять поддерживает ли add_library относительные пути, или только абсолютные? А никак братан иди нахуй)
5) Меняется каждые пару лет, куча устаревших возможностей, об устаревшести которых можно узнать только на код ревью. Я например не знал что стандарт теперь нужно указывать через set_target_properties, а не CMAKE_CURRENT_CXX_STANDARD, и как об этом узнать я понятия не имею, никаких варнов мой смейк 3.27 версии не выдает. По этой же причине на любой вопрос на СО будут ответы 2007, 2011, 2014, 2018 и 2022 года с абсолютно разными инструкциями, из которых 2-4 будут нерабочими.
6) Нет экосистемы. Отладчик появился буквально пару месяцев назад, подсветка синтаксиса уровня ключевых слов, автокомплит учитывающий контекст отсутствует, IDE не умеют автоматически добавлять файлы в систему сборки. А как узнать название таргета для линковки от библиотеки я до сих пор не знаю, и никто из моих коллег не знает, обычно все просто перебором пробуют.
7) Работа с проектами со сложной иерархической структурой полный пиздец. Единственная либа в которой я видел хоть сколько то адекватную структуру проекта на смейк это cocos2d - заключается она в том что тебе нужно ручками описывать каждый блять файл в каждой папочке, а после пробрасывать смейклисты наверх вплоть до add_ где они используются. Разработчики смейк заботливо добавили GLOB() который сразу же рекомендовали не использовать, ведь смейк не может понять что на диске появились новые файлы)))))))))
Теперь если мне не нужна кроссплатформенность я беру мсбилд и делаю все на винде. В нем ни одной из этих проблем нет, а в добавок получаю vcpkg без бойлерплейтных конфигов и копипасты устанавливающий библиотеки в одну команду в консоли
image.png8 Кб, 145x336
258 2768898
>>768887
А, ну и как я мог забыть вишенку на торте - исходники. Код смейк еще хуже чем сам смейк, ощущение будто его писали под смесью героина и винта, паралельно приправляя мочей и собачим калом. Не думаю что это волнует большую часть программистов конечно, но если вы внезапно захотите выяснить почему вам выдало такую уебищную ошибку и вы решите грепнуть исходники советую морально приготовиться к laba1.cpp доросшему до продуктового стандарта
259 2769082
>>768898
ЧТо плохого в этом свитче? Вполне нормальный кодес.
260 2769110
>>768752
>>768756
>>768813
>>768829
Как же так? Разве винду выбирают не из-за удобства?
261 2769116
>>769110
А? Ты постом промахнулся?
Ну вобще да, выбирают из за удобства
262 2769118
>>769116
Ну хуле тогда ноете?
263 2769124
>>769118
Потому что CMake говно, ты кому пишешь, сумасшедший?
264 2769129
>>769118
Так нытьё про CMake, винда-то тут при чём? Если юзать нативный виндовый MSBuild, там никаких неудобств нет.
265 2769134
>>769124
>>769129
Ну так отписались то только виндоёбы. Пользуйтесь своими мокрописьками. Кто вас заставляет CMake использовать?
16840966411620.jpg111 Кб, 596x516
266 2769139
>>769134
Ты что несёшь?
Ты с кем общаешься, тут только мы с тобой?
Где тебе виндузятники пишут?
267 2769141
>>769134
Заставляют линуксоёбы, макоёбы и т.д., у которых нет божественной вижуалстудии с MSBuild.
268 2769145
>>769141
Виндоёб - пиши не шарпе и не выёбывайся. Кроссплатформа не нужна!
269 2769149
>>769145
Шизло, из 2015 капчуешь? Dotnet SDK без проблем работает и на винде, и на линупсе.
270 2769200
>>768829
>>768813
>>768756
>>768752
>>769110
Ебать тебя разорвало. Еще скажи тебе модули и пакедж магер пожавай. Патетик.
image.png13 Кб, 612x186
271 2769205
>>769200
Говноед спокуху оформи, не всем нравится вкус собачего кала во рту
.png74 Кб, 1001x284
272 2769207
>>769205
Я тоже так умею.
273 2769212
>>769200
Ещё один придурошной
мой пост 3, срался с 5
274 2769279
>>768887

>А как узнать название таргета для линковки от библиотеки я до сих пор не знаю


Конфиги либ лежат в /usr/lib/cmake, дальше так:
https://stackoverflow.com/questions/42741501/how-to-know-library-variable-names-for-cmakelists

>7) Работа с проектами со сложной иерархической структурой полный пиздец.


А в чем у тебя сложность? Обычно получается такая же структура, как у солюшена в msbuild - в папках проекты, в корне CMakeLists в котором тупо add_subdirectory для всех вложенных.
275 2769341
>>769279
>>768887
Тебе не обязательно знать как там симейк либа нейм назвал, хотя это крвйне нубски ты можешь линковать любую шаред либу простт прописав путь к ней. С инклудом директорий так же.
276 2769366
>>769207
По-моему у тебя есть кукла, а у него нет.
277 2769372
>>768847
Опубликуй свою программу публично и поинтересуйся у других как у них получилось завести твою писанину, вот тогда и поймешь, что проблемы у всех, кроме тебя, т.е. CMake это одни проблемы, он не работает.
278 2769374
>>768898

>size_t numPad(0);


Смузихлебский кал из java где даже int это ОБЪЕКТ-КЛАСС С КОНСТРУКТОРОМ
279 2769375
>>769374
В жаве есть два разных инта. Один класс (чтобы поддерживать убогую систему дженериков), другой встроенный тип.

> Смузихлебский кал


> из java


Так на джаве наоборот старперы пишут, смузихлебский это какой-нибудь Python
280 2769382
>>768847
Да нет альтернатив, прям как с крестами для кроссплатформы. В том то и прикол. Есть какие-то полумёртвые никому не нужные хуитки, которыми пользуются полтора человека.
В начале 10-ых, например, все грозились на scons перейти, и даже были проекты с ним. Где теперь этот scons?
Ну для прыщей есть ещё дедовский autotools, если тебе нужна хитровыебанная сборка.
Дохуя народу, в том числе я, пользовались чистым makeом, и никто не жаловался. Теперь сообщество плюсов состоит из изнеженных смузихлёбов, трансов и прочих пидорасов, которым подавай кнопку СБИЛДИТЬ ВСЁ. А функцию оповещения путём включения вибратора не добавить?!
К сожалению, никто не запрещает всё это говно навелосипедить в одном CMake проекте. Некоторые, например, прямо качают какую-нибудь зависимость во время сборки.
281 2769393
ебать дедулю порвало
282 2769421
>>769382

>оно просто работает


>ДЛЯ БЫДЛА! НЕНАВИЖУ!


Пердикс головного мозга это терминальный диагноз.
image139 Кб, 820x557
283 2769446
БЛЯТЬ МОЧЕРАЦИЯ, ДА СДЕЛАЙТЕ УЖЕ [code][/code]
В КОНЦЕ-ТО КОНЦОВ!
284 2769448
>>769446
Хача уже много лет просят это сделать, но ему похуй.
285 2769456
>>769341

>ты можешь линковать любую шаред либу простт прописав путь к ней. С инклудом директорий так же.


Так переносимость билда теряется, только для laba1 подойдет.
286 2769460
>>769446
Мб расширение для браузера сделать?
287 2769466
>>769460
М.б. дауны на моче это нативно сделают, как на /g/?
288 2769472
>>769466
Да согласен, что должны сделать нативно, но если они не чешутся, то че делать.
289 2769473
>>769375

>чтобы поддерживать убогую систему дженериков


Дженерики в джаве как раз не убогие, убогие там примитивные типы. Благодаря тому, что дженерики просто синтаксический сахар, не пришлось менять jvm, и под jvm есть куча языков кроме жабы. Под дотнетовский CLR ты другой язык так просто портировать не можешь, потому что у них дженерики влияют на ABI, и в результате надо или переделывать систему типов в языке или лепить адские велосипеды, чтобы работать с дотнетовской библиотекой.
290 2769490
>>769473

> под jvm есть куча языков кроме жабы


И правда. Например, Scala, Kotlin и... Всё?
Котлин так вообще в каждое приложение свой рантайм тянуть должен.

> Под дотнетовский CLR ты другой язык так просто портировать не можешь, потому что у них дженерики влияют на ABI, и в результате надо или переделывать систему типов в языке или лепить адские велосипеды, чтобы работать с дотнетовской библиотекой.


Почему меня как прикладного разработчика это должно волновать? Пусть это волнует тех, кто пишет языки под .NET

Да и если я пишу только на C#? Там женерики тупо лучше чем в жабе и дают больше возможностей.
291 2769523
>>769490

>Например, Scala, Kotlin и... Всё?


Из известных еще groovy как минимум. Из малоизвестных - почти все остальное от паскаля и кобола до хаскеля, из неизвестных - куча внутренних тулзов у компаний.
Текущая jvm к тому же обеспечивает портируемость самой джавы под все что угодно от телефонов до микроконтроллеров на пластиковых картах.

>Почему меня как прикладного разработчика это должно волновать?


Был бы ты разработчиком под VisualBasic или Delphi.NET в середине нулевых, тебя бы это волновало, потому что пришлось бы переносить всю кодобазу на шарп.

>Там женерики тупо лучше чем в жабе и дают больше возможностей.


А еще linq, powershell, пять несовместимых и наполовину заборошеных либ для UI и другие плюшки, которые MS выкатывает каждый код, рекламирует как небывалое откровение, и через год топит или забывает.
292 2769580
>>769372
ты пьянь, где я хоть слово писал про свою программу и свою "писанину"? Собирал я duckstation, всё отлично собралось, я ни слова не писал что у cmake нет проблем, я спрашивал где они и где почитать. Сначала протрезвей потом отвечай. Или это ты порвался так сильно, что не способен понимать написанное?
293 2769586
>>759660

>Никогда не нопал инструкции в процессе чтобы не пересобирать билд?


Как это делать в Visual studio? Покажи анончик
sage 294 2769621
>>769456
Неужели блять.
>>769446
Именно так.

Вообще пусть тонет, всяко лучше чем толпы уебищь вайпающие тупостью.
295 2769624
>>769372
Шиз весь гихаб, включая проекты всяк х интелов и тд на симейке. У все вме собирает, только шиз с двачей не згает как либу в симейке обозвать лол.
render.png768 Кб, 512x512
296 2771093
https://64.github.io/cmake-raytracer/

MSBuild может так?
297 2771153
>>771093

>MSBuild может так?


Там полноценный скриптинг на шарпе, конечно может. Даже обычный make может, он тьюринг-полный.
298 2771442
>>769472
>>769446
>>769448
>>769460
>>769466
Я в прошлом году создавал тред в /d/ с этой просьбой, в котором отписалось 40 анонов с различных технических досок с поддержкой моей идеи. Думаю, не нужно говорить о результатах.
299 2771754
>>771442
Код позволяет вставлять пробелы, этим быдло будет злоупотреблять рисуя хуи из буков. Мало говнокартинок, еще и текст постов превратят в говнокартинки. Так что забудь, сначала надо выгнать быдло, но это невозможно, хозяева сайта наоборот его привлекают.
300 2771827
>>771754

>Мало говнокартинок, еще и текст постов превратят в говнокартинки. Так что забудь, сначала надо выгнать быдло, но это невозможно, хозяева сайта наоборот его привлекают.


Блядь, это единственное, что тебя волнует? Да и на форчке это никому не мешает, а здесь дохуя эстеты с тонкими душами собрались.
301 2771832
>>771827
Алсо

__,,,,、 .,、
/'゙´,_/'″ . `\
: ./ i./,,..、 ヽ
. / /.l, ,! `,
.| .,..‐.、│ .|
(´゛ ,/llヽ |
ヽ -./ ., lliヽ .|
/'",i" ゙;、 l'ii,''く.ヽ
/ ...│ ゙l, l゙゙t, ''ii_:.!
: /.._/ ヽ\\.`゙~''''''"./
.|-゙ノ/ : ゝ.、` .`''←┬゛
l゙/.r゛ .゙ヒ, .ヽ, ゙̄|
. | ./ l”'、 .゙ゝ........ん
l / ヽ.`' `、、 .,i゛
.l| ! ''''v, ゙''ー.l、
|l゙ .il、.l.ヽ .¬---イ
.ll゙, ./ ! ,!
.!!...!!,,゙''''ー .|
l.",! .リ |
l":| .〜''' ,. │
l; :! .|'" ...ノ,゙./ │
l: l「 ! . ゙゙̄ /!
.| .|!,i│|
:! .l. },i'./ |
:! .| :| . / .|
:! | ;!" .|
:! ! ││
:!:| ,! i,!
:! , .l, / .l゙!
:! | , l.| .|:,
: v'" .! |'i .ヽ, ./ :!.ヽ
_,_// .l゛._/:l゙ .`゙"

Ну ты понял.
301 2771832
>>771827
Алсо

__,,,,、 .,、
/'゙´,_/'″ . `\
: ./ i./,,..、 ヽ
. / /.l, ,! `,
.| .,..‐.、│ .|
(´゛ ,/llヽ |
ヽ -./ ., lliヽ .|
/'",i" ゙;、 l'ii,''く.ヽ
/ ...│ ゙l, l゙゙t, ''ii_:.!
: /.._/ ヽ\\.`゙~''''''"./
.|-゙ノ/ : ゝ.、` .`''←┬゛
l゙/.r゛ .゙ヒ, .ヽ, ゙̄|
. | ./ l”'、 .゙ゝ........ん
l / ヽ.`' `、、 .,i゛
.l| ! ''''v, ゙''ー.l、
|l゙ .il、.l.ヽ .¬---イ
.ll゙, ./ ! ,!
.!!...!!,,゙''''ー .|
l.",! .リ |
l":| .〜''' ,. │
l; :! .|'" ...ノ,゙./ │
l: l「 ! . ゙゙̄ /!
.| .|!,i│|
:! .l. },i'./ |
:! .| :| . / .|
:! | ;!" .|
:! ! ││
:!:| ,! i,!
:! , .l, / .l゙!
:! | , l.| .|:,
: v'" .! |'i .ヽ, ./ :!.ヽ
_,_// .l゛._/:l゙ .`゙"

Ну ты понял.
302 2771836
>>771832
О, на этой доске пофиксили. На других досках можно спокойно и без тега code слать арты с хуями.
16184783597620.gif318 Кб, 460x457
303 2771842
>>771754
я и без пробелов могу картинки рисовать хули ты мне сделаешь

卍卍卍 冂口山仨几 廾丹乂丫认 冂认亼口尸 卍卍卍

а вот то что даже форумы на phpbb в 2003 имели разметку лучше и удобней чем у обезьяны это факт и база
304 2771844
за одно форматирование звездочками он заслуживает смерти и надругательства над трупом
305 2772135
>>771844
Согласен
306 2772152
>>771844
А за [і] смерть должна быть долгой и мучительной.
307 2772156
>>771844

>за одно форматирование звездочками


Без макабы не было бы АИБ.
308 2772169
>>772156
АИБ не было бы без возможности постить картинки. Без форматирования текста аноны бы пережили, тем более что любители подчёркивать текст/закрывать его спойлерами - шизики поголовно.
309 2772336
>>772169
абсолютно согласен
310 2773139
МОЛЮ, СДЕЛАЙТЕ ЧТО ТО С ИНИЦИАЛИЗАЦИЕЙ. Обратная совместимость это полный пиздец. Из за нее мы имеем ебанутейшие правила инициализации. Такого ни в одном языке нет, блядь. И это хуй починят теперь. Если только не придумают третий вид скобок.
311 2773170
>>773139
Слишком поздно. Теперь такие вот книги на 300 страниц - объективная реальность:
https://www.amazon.com/Initialization-Story-Through-Options-Related/dp/B0BW38DDBK
312 2773471
>>773139
И вот, вы плачете и просите вернуть F77. Но поздно, вы сами изгнали себя из рая.
313 2773513
>>773139
Погодь погодь, щас второй способ обьявления функций доделаем, а потом еще другой способ задавать методы класса, а потом еще концепты потрогаем, а потом...
314 2773572
>>773139
Ты не можешь () от {} отличить?
кормлю троля
315 2773598
>>773572

> правила инициализации


> Ты не можешь () от {} отличить?


тупостью троллишь, да?
image.png26 Кб, 804x240
316 2773608
>>773572
)
Не напомнишь чем direct initialization от value initialization отличается?
317 2774283
>>773139

>Такого ни в одном языке нет


Не аргумент. Другие языки высокоуровневые, а кресты - нет, кресты это низкоуровневая сишка. Разные инициализации это разный код, разные способы, они должны быть. Залетная скриптомакака не имеет права голоса тявкать на кресты которых не знает.
318 2774358
>>774283

> низкоуровневая сишка


Сам то понял что сказал?
319 2774359
>>774283
>>773572

> Залетная скриптомакака


Скажи, пожалуйста, немакака, какой разный код будет сгенерирован в этом примере: https://pastebin.com/fCkBtd8b (пик 1). А в этом: https://pastebin.com/aL3eM38R (пик 2)?
320 2774389
>>774359
Вроде бы с круглыми можно неявные преобразования делать(в первом)
Во втором explicit запрещает неявные преобразования, и по идее должно быть одинаково.

мимокрок
321 2774401
>>774389
ответ не верный
322 2774403
>>774401
Какой верный?
323 2774407
>>774403
Пусть немакака сначала ответит. Я его подожду, потом отвечу
324 2774419
А, бля. Вставил в студию, оно ж и не компилируется вообще.

В первом нет конструктора для круглоскобочной инициализации
Во втором explicit из за блокировки неявных преобразовний запретит копирование списка инициализации в объект r3

все тот же мимокрок
325 2774425
>>774419
Тоже ответ не полный и не совсем верный)
326 2774434
>>774425
Да пиздец.. немакака отвечай быстрее, хочу правильный ответ!
327 2774437
>>774434
Поиграйся с версиями плюсов
328 2774454
>>774283

>Другие языки высокоуровневые, а кресты - нет


В низкоуровневых языках как раз никакой магии при инициализации нет. Там все очень явно и конкретно, и пользователю всегда очевидно, что происходит в каждой строчке.
329 2774459
>>774389
Проверки на явные/неявные преобразования не отображаются на машинном коде, они делаются во время компиляции
изображение.png55 Кб, 707x796
330 2774556
>>774419
Все компилируется
331 2774573
Ничего блять не компилируется нахуй.
332 2774590
>>774437
>>774556
В C++14 не комилится(1 пик)
В С++20 все ок.
ЧЗХ?
333 2774722
>>2772300 →

>cout вместе с printf


блядь когда вы нахуй уже передохните все? запомни раз и навсегда, ебло, язык си это неотъемлемая часть языка с++. и если я могу использовать форматирование из си, а не как еблан писать в cout миллиард стрелочек, значит я это могу и должен делать. особенно когда аналога для форматированного вывода в языке нет блядь. насмотрятся блядь видосиков, статей начитаются и все как один друг за другом повторяют хуйню, даже не задумываясь какая это хуйня тупорылая. дегенераты блядь залетные.
334 2774726
Толпа макак не может структуру в два инта инициализировать, спп тхреад.
335 2774728
>>774722
Все так. Но они скобки путают так что куда им до притфа, про спринф лучше и не вспоминать.
336 2774731
>>774726
То что плюсовики складывать не умеют это давно известный факт, но что проблемы начинаются гораздо раньше никто и представить не могу.
337 2774741
>>774722
Да делай, кто тебе запрещает
Просто это UB
338 2774829
хуй знает, чет сишечка и плюсы как родные мне. правда я их уже почти забыл, особенно приколы с указателями, давно не писал на них, лет 5. сразу какие-то вузовские годы вспоминаются... лаба 1, лаба 2... int main()... вот это все. жаль я себя в этих языках не смог найти, так бы с удовольствием писал бы на этом хацкеле для здоровых людей
339 2774840
>>774829

> чет сишечка и плюсы как родные мне


> особенно приколы с указателями


Как распознать профана за 2 предложения.
340 2774844
>>774840

>Как распознать профана за 2 предложения.


как распознать додыча за 1 предложение
341 2774862
Цирк студентов, все сессию удачно закрыли?
342 2774907
>>774862
К а Н и К у Л ы
16471126719360.jpg101 Кб, 764x1080
343 2775029
Ребята, что такое рекурсия?
344 2775119
>>775029
это когда ищешь альтернативу плюсам, пробуешь ее и потом снова к ним возвращаешься
345 2775174
>>775029
Чтобы понять, что такое рекурсия, надо понять, что такое рекурсия
346 2775194
>>775029
это мем башорга
348 2775220
>>775029
Загугли, там понятное объяснение
349 2775234
>>775119
Какая же правда. Несколько раз с си переходил на плюсы, потом обратно, но так и тянет остаться на плюсиках...даже не знаю что, это же мерзость!
16808978546960.jpg57 Кб, 523x290
351 2775350
352 2775598
>>775220
Бро, там это где? Мне нужно пальцем ткнуть на объяснение, потому что я уже погуглил и нихрена не понял.
353 2775599
>>775598
Ну вообще раньше когда гуглил рекурсию там был прикол с рекурсией. Если его выпилили то грустно.
354 2775644
>>775029

>Ребята, что такое рекурсия?


Это пакет с пакетом, внутри которого пакет, внутри которого пакет, внутри которого пакет, внутри которого пакет....

Банальные пример:
n-ое Фибоначчи можно вычислить с помощью рекурсии
int fibonacci(int N) {
if (N == 1 || N == 2)
return 1;
return fibonacci(N - 1) + fibonacci(N - 2);
}

а можно итеративно
int a = 1, b = 1, c;
if (N <= 2)
printf("1");
else
{
for (int i = 3; i <= N; i++)
{
c = a + b;
a = b;
b = c;
}
printf("%d ", b);
}
355 2775648
>>775599
Блять, мне не нужны приколы, я понимаю, что отражение зеркала в зеркале, в зеркале итд - это рекурсия.

Я когда код вижу, нихуя понять не могу, что там происходит.

>>775644
А попроще?
356 2775649
>>775648

>А попроще?


Если функции для вычисления своего состояния нужно вызвать саму себя, то это рекурсия.
357 2775653
>>775649
Бро, я знаю, что отражение зеркала, в зеркале, в зеркале... - это рекурсия.
И знаю, что если внутри функции она сама вызывает себя, то это рекурсия.

Но когда я вижу код, я не могу понять, что происходит.
358 2775654
>>775653

>Но когда я вижу код, я не могу понять, что происходит.


Тогда причем тут рекурсия?
359 2775655
>>775648
Анон, а давай сначала вообще про функции немного подумаем. Что это такое вообще?

Вот есть у тебя задача: найти минимум в массиве. Причём не в каком-то абстрактном, а в чисто конкретном, выданном лично тебе. То есть вот прям один экземпляр массива выдали тебе: 1, 3, 10, 4, 5, 1, 0, 2, 57, 179 и попросили найти в нём минимум. Ну ты взял и ткнул пальцем в 0.

Как бы выглядела ф-ция, которая такое решает? Да очень просто. Она бы ничего не принимала на вход и выглядела бы так:
int find_min_in_my_array()
{
return 0;
}

Очень тупая ф-ция, да? А теперь тебе усложнили задачу и сказали, что надо научиться решать не одну задачу (поиск минимума в одном отдельно взятом массиве), а сразу бесконечное семейство задач - поиск минимума в произвольно заданном массиве. Как будет выглядеть сигнатура такой ф-ции? Ну понятно, что на вход будет приходить тот самый массив, в котором надо найти минимум:
int find_min(vector<int> arr)
{}

Я что хочу сказать? Что про ф-цию можно думать, как про СЕМЕЙСТВО процедур, решающих инстанс задачи, параметризованное некоторым набором входных параметров. То есть в данном случае, имеется семейство процедур, параметризованных входным массивом. И при каждом фиксированном входном массиве получается процедура, которая в этом конкретном входном массиве ищет минимум.

К чему вся эта философия? А к тому, что при таком взгляде на вещи удобно осознать следующую мысль: реализация одной конкретной такой процедуры может использовать результат работы другой процедуры из этого семейства. Представь, что ты на вход find_min опять подал тот самый массив, который я указывал в самом начале. Таким образом, find_min превратилась в процедуру, которая ищет минимум в том самом массиве. Но не сложно понять, что чтобы найти минимум в этом массиве, можно найти минимум в нём же но с отброшенным последним элементом, а затем выбрать минимум из этого результата и последнего элемента. Реализация этой идеи выглядит как-то так:
iint find_min(vector<int> arr)
{
int min_of_prefix = find_min(arr[:-1]); // Вот это рекурсивный вызов!
return min(find_min, arr.back());
}
Я здесь для краткости использовал питоновский синтаксис arr[:-1], для обозначения массива, состоящего из всех элементов arr за исключением последнего.

Таким образом, при реализации ф-ции find_min мы сослались на резёльтат ЕЁ же работы, но на другом (в данном случае меньшем) входе. Или, говоря в прежним терминах семейства процедур, мы описали реализацию одной из процедур семейства, сославшись на другую процедуру того же семейства.

Короче, рекурсия часто возникает в тех местах, где решение какой-то задачи удобно описывается в терминах решения этой же задачи для некоторого "меньшего" инстанса.
359 2775655
>>775648
Анон, а давай сначала вообще про функции немного подумаем. Что это такое вообще?

Вот есть у тебя задача: найти минимум в массиве. Причём не в каком-то абстрактном, а в чисто конкретном, выданном лично тебе. То есть вот прям один экземпляр массива выдали тебе: 1, 3, 10, 4, 5, 1, 0, 2, 57, 179 и попросили найти в нём минимум. Ну ты взял и ткнул пальцем в 0.

Как бы выглядела ф-ция, которая такое решает? Да очень просто. Она бы ничего не принимала на вход и выглядела бы так:
int find_min_in_my_array()
{
return 0;
}

Очень тупая ф-ция, да? А теперь тебе усложнили задачу и сказали, что надо научиться решать не одну задачу (поиск минимума в одном отдельно взятом массиве), а сразу бесконечное семейство задач - поиск минимума в произвольно заданном массиве. Как будет выглядеть сигнатура такой ф-ции? Ну понятно, что на вход будет приходить тот самый массив, в котором надо найти минимум:
int find_min(vector<int> arr)
{}

Я что хочу сказать? Что про ф-цию можно думать, как про СЕМЕЙСТВО процедур, решающих инстанс задачи, параметризованное некоторым набором входных параметров. То есть в данном случае, имеется семейство процедур, параметризованных входным массивом. И при каждом фиксированном входном массиве получается процедура, которая в этом конкретном входном массиве ищет минимум.

К чему вся эта философия? А к тому, что при таком взгляде на вещи удобно осознать следующую мысль: реализация одной конкретной такой процедуры может использовать результат работы другой процедуры из этого семейства. Представь, что ты на вход find_min опять подал тот самый массив, который я указывал в самом начале. Таким образом, find_min превратилась в процедуру, которая ищет минимум в том самом массиве. Но не сложно понять, что чтобы найти минимум в этом массиве, можно найти минимум в нём же но с отброшенным последним элементом, а затем выбрать минимум из этого результата и последнего элемента. Реализация этой идеи выглядит как-то так:
iint find_min(vector<int> arr)
{
int min_of_prefix = find_min(arr[:-1]); // Вот это рекурсивный вызов!
return min(find_min, arr.back());
}
Я здесь для краткости использовал питоновский синтаксис arr[:-1], для обозначения массива, состоящего из всех элементов arr за исключением последнего.

Таким образом, при реализации ф-ции find_min мы сослались на резёльтат ЕЁ же работы, но на другом (в данном случае меньшем) входе. Или, говоря в прежним терминах семейства процедур, мы описали реализацию одной из процедур семейства, сославшись на другую процедуру того же семейства.

Короче, рекурсия часто возникает в тех местах, где решение какой-то задачи удобно описывается в терминах решения этой же задачи для некоторого "меньшего" инстанса.
360 2775657
>>775655
return min(min_of_prefix, arr.back()); - должно быть так
361 2775666
>>775655
>>775657
Ок, а потом?
image.png7 Кб, 311x162
362 2775703
>>775648

>А попроще?


Рекурсия это говно для безмозглых скриптомакак которым в сях делать нечего. Вызовы функций занимают стек, а рекурсия это зацикливание вызова функции на самой себе, происходит по сути неограниченное количество вызовов, что приводит к переполнению стека и падению. Это самая тупая макако-ошибка в программировании, даже знаменитый на весь мир сайт так называется. Но ни одна тупая макака по 100 раз в день этот сайт посещающая не понимает значение.
363 2775713
>>775703
В нормальных языках, например луа, если рекурсивный вызов последним идет, то стек не будет расти. Потому что это значит возврат к фрейму, из которого будет сделан вызов, не нужен и фрейм можно убрать со стека.
364 2775714
>>775713
Что интересно в спеках жс есть TCO, а движки жсовские не хотят это поддерживать https://exploringjs.com/es6/ch_tail-calls.html
365 2775722
>>775703
Без рекурсии будет очень хуево крутить деревья. С рекурсией так же как с SQL инъекциями. Просто не нужно, чтобы глубина рекурсии зависела от пользовательского ввода. Вот и все.
366 2775734
>>775666
Что потом? Потом функция минимум возвращает, всё
367 2775818
>>775703
Как без рекурсии обойти дерево не зная его глубины?
368 2775823
>>775818
Гуглением соответствующего алгоритма со складыванием нод в список.
369 2775925
>>775823
Согласен, тупанул.
370 2775994
>>775823
Тогда уже не проблема стека, а занимаемой памяти. Хотя сейчас, наверное, уже это не такая проблема: просто купите память, лол.
371 2776261
>>775994
а стек ты себе тоже купишь кабанчик нах? он ~20мб всего если че
372 2776278
>>776261

>а стек ты себе тоже купишь кабанчик нах?


pokupay CPU na 128/256/512 bit
373 2776280
>>776261
Или 1 МБ. И ещё туда на каждом шаге рекурсии запихиваются все локальные переменные.
374 2776293
>>776280
Рекурсии пишем на нормальном языке с TCO
375 2776300
>>776293
Хвостовую рекурсию легко заменить на итерационный алгоритм, там и уметь не надо ничего.
Но в обходе дерева рекурсия нихуя не хвостовая.
376 2776335
>>776293
в с++ есть tco значит c++ нормальный язык
377 2776409
В чем проблема разломать нахуй обратную совместимость в C++ 29 и сделать наконец то нормальный язык без костылей ебучих? А старые либы оставить в виде скомпилированных сишных функций и так дергать их. Нельзя?
378 2776434
>>776409
К сожалению нельзя

ну и вероятность того что они умудряются нормальный язык сделать около нулевая, будет все тоже самое что придется чинить ещё лет 15
379 2776452
>>776434
Почему нельзя?
380 2776553
>>776261
Ну не знаю где ты про ~20 вычитал, я видел информацию только про 1 и 8, хотя это настраивается, по крайней мере в линуксе.
Во-вторых я ничего не писал про покупку стека, ты это уже себе сам придумал.
381 2776562
>>776452
Если кратко, abi говна
382 2776563
>>776409

>В чем проблема разломать нахуй обратную совместимость в C++ 29 и сделать наконец то нормальный язык без костылей ебучих?


Гугл пытается https://github.com/carbon-language/carbon-lang
383 2776578
>>776409

>В чем проблема разломать нахуй обратную совместимость в C++ 29 и сделать наконец то нормальный язык без костылей ебучих?


Какой смысл? Снова получить плюсы и ебаться с двумя версиями?
Вон раст делали с нуля и он уже оброс кучей говен и костылями. Скоро плюсы догонит.
384 2776592
Сломать нахуй совместимость крестов с самими собой, чтоб ни одна мразь больше на этом языке не кодила.
385 2776600
>>776592
Причина подрыва?
Если не плюсы, то кто?
386 2776603
>>776600
Ты уже знаешь ответ. Шарп
387 2776610
>>776603
Зачем нам нужен виртуальномашинный корпоративнозависимый анальнокибергулаговый шарпшвайн?
388 2776627
>>776603
Оформи срыгос из треда и не появляйся здесь никогда больше.
389 2776637
>>776610
>>776627
Вот и нехуй выёбываттся на обратную совместимость.
390 2776642
>>776637
Так никто и не выебывался.
391 2776672
>>776603

>Шарп


Так в дотнете тоже есть кресты в виде C++/CLI
392 2776696
>>776563
ору с этих убивателей крестов

– давайте обсудим синтаксис нашего нового языка. первый вопрос: тип слева или справа?
– а в с++ как?
– в с++ слева
– У НАС НЕ КАК В С++
393 2776707
>>776696
Тип справа - это паскакаль и sml, уважаемые языки со строгой типизацией.
394 2776714
>>776696
А нахуй оставлять как в плюсах если читаемость из за этого страдает?
395 2776716
оператор := тогда че не добавить
еще более уважаемо
396 2776766
>>776696
Если тип справа, то легче парсить и более читаемо.
397 2776772
>>776766

> легче парсить


Жсон парсить ещё легче, но чёт не видел ни одного ЯП с json-based синтаксисом.

> более читаемо


Субъективно.
398 2776778
>>776772

> Субъективно


Имя переменной всегда более важно чем ее тип
если ты конечно не лаба.цпп пишешь и переменные называешь как a b c
399 2776780
>>776772

>Субъективно


Когда читаешь, первое что интересует - имя переменной, только затем интересует что за тип у этой переменной, а иногда это вообще не важно.

>не видел ни одного ЯП с json-based синтаксисом


Потому что json это описание объекта.
400 2776817
>>776778
>>776780

>имя переменной более важно чем тип


схуяли?
разве что в лаба2.срр все переменные инт
401 2776822
>>776772

>но чёт не видел ни одного ЯП с json-based синтаксисом


Ты в курсе, как JSON расшифровывается?
402 2777044
Во такие уебки как вы кресты и губят. Тип у них справа блять.
403 2777049
>>777044
Кто кресты губит? Думаешь ИТТ кто-то из коммитета есть? Не смеши меня. Не собирается никто в плюсах тип справа делать, не трясись.
Да и вообще сейчас все новые языки выходят, где либо тип указывать вообще не надо, либо его указывают справа, так что обтекай, маня. Тип слева это палеозой со времен си, всю жизнь тип справа был: Ada, Pascal, Oberon, из новых: go, kotlin, rust, ts. Мне кажется там люди поболее твоего понимают как им делать надо.
404 2777052
Есть QTableWidget, у которого в некоторых ячейках используются cellWidget.
Как мне сделать swap строк таблицы? Мне нужно двигать строки вверх вниз.
В Qt нет готового swap ни для QVector, ни для QTableWidget. Когда сам попробовал вручную менять местами содержимое строк, начало вылетать с segmentation fault хер пойми откуда, даже в стеке вызовов не показывает, откуда. И связано именно с cellWidget, когда я добавляю строчку, где cellWidget записывается в ячейку таблицы, то вылетает.
Делаю что то типа того:
if (index != 0)
{
QWidget widget = table->cellWidget(index, 0);
QWidget upperWidget = table->cellWidget(index-1, 0);
table.setCellWidget(index-1, 0, widget);
table.setCellWidget(index, 0, upperWidget);
}
После этого происходит segmentation fault и все крашится.
ochemaliyoba.jpg16x16
405 2777055
>>777049

>не собирается никто тип справа делать


так сделали уже
auto main() -> int {}
406 2777056
>>775703
Не будет никакого переполнения, если ты условие останова пропишешь правильно.
Я например недавно сделал чтение содержимого пакета через рекурсию, т.к. там многоуровневые вложения в структуре. Все работает збс.
407 2777057
>>777056
Какого пакета?
408 2777058
>>777056
пока вложенность меньше ~1000 работает збс кто ж спорит
но буквально итт был один додик который рекурсивным dfs пиксели красил и удивлялся че это картинки 800х600 не вывозит
409 2777060
>>777057
Ethernet-фрейм
410 2777061
>>777058
Ну вот, значит есть решения, в которых рекурсия работает и уменьшает количество лишнего кода.
411 2777062
>>777060
Ну фреймы небольшие, удобно, наверное, но писать прошивку для коммутатора тебе бы точно не дали с таким подходом рекурсивным.
412 2777066
>>777052

>После этого происходит segmentation fault и все крашится.


Когда ты делаешь setCellWidget на второй ячейке, она удаляет свой виджет, которым владеет, и когда ты пытаешься вставить этот удаленный виджет в первую ячейку, происходит ожидаемый сегфолт. Надо как-то забирать ownership виджета у ячейки перед установкой нового, возможно через setParent у виджета.
413 2777068
>>777066
А нельзя как то виджет сохранить по ссылке, чтоб он не удалялся? Может через copy-конструктор?
414 2777069
>>777068

> по ссылке


По указателю.
415 2777073
>>777068

>А нельзя как то виджет сохранить по ссылке, чтоб он не удалялся?


Возможно removeWidget не будет его удалять, или как я говорил, вызвать setParent(this) у виджета и setCellWidget(nullptr), чтобы он репарентился к окну.
416 2777074
>>777073
Возможно просто setParent(nullptr) у виджета сработает. Давно с Qt не работал.
417 2777076
>>777044
Что мертво умереть не может
418 2777078
>>777055
auto hui -> std::string = "pizda";
419 2777085
>>777049
Си тип слева. Все. Это база. Остальное не ну ж но.
420 2777086
>>777085
Это синдром утёнка.
421 2777087
>>777086
Нет это логика, от большего е меньшему, от общего к частному.это много где используется, те же типы в бмологии, например По этому сначала тип потом имя переменной, а если наоборот - это убого и не практично.
422 2777090
>>777061

>значит есть решения, в которых рекурсия работает


Это не решение, а блондинка за рулем. Ездит как попало, никого не пропускает, и если пока еще не разбила машину и никого не сбила, это не значит, что такая езда "работает" и это правильно - экономить на учебе правил движения и дисциплине следования им.

Говоря проще, тупая пизда, макака за компьютером, вот кто ты со своим "я написал говно и оно еще не упало, значит я всё правильно делаю , это работает". Нет, не правильно и не работает. Само такое отношение уже показатель говноскриптинга, а не программирования. Это скрипты так пишутся - не думая что делаешь, как курица лапой, в расчете, если что упадет, подправить и готово. А программы так не пишутся, программы это когда ты думаешь прежде чем делаешь. ты понимаешь что пишешь. Без понимания нет программирования, и кресты как и сишка требуют именно понимания, подхода программиста, но не макаки тыкающей вслепую наудачу.
423 2777092
>>776817

>>имя переменной более важно чем тип


>схуяли?


Потому что в javascript нет типов, вот они и не нужны и не важны. Эта скриптошваль оттуда и лезет, макаки сраные.
424 2777120
>>776817
>>777092
Программировать пытались хоть раз?
Какую информацию несёт тип и какую несёт переменная?
И какая из них вам нужна в первую очередь чтобы понять что это такое?
425 2777121
Ретроградство и аутизм
426 2777138
>>777120

>Программировать пытались хоть раз?


Именно. Скриптомакаки даже не пытались, но лезут со своими скриптопомоями в треды программирования и кукарекают, ведь у них в переменную лезет что угодно, и говно и моча и дебилизм, скрипт всё сожрет.
427 2777141
>>776592

> рвоньк

428 2777142
>>777120
Ради справедливости: в тайпскрипте вполне рядовая ситуация

let status: MailDeliveryCustomerNotificationStatus = cusomerNotificationService.getCustomerNotificationStatus(customer)
429 2777152
>>777138
Работу найди

>>777142
Ты это к чему написал?
430 2777156
>>777152

>Ты это к чему написал?


К тому что тип несет информкцию о переменной. Один из кейсов использования тайпскрипта вместо жс.
431 2777161
>>777156

> тип несет информкцию о переменной


Так это понятно, никто с этим и не спорил
432 2777202
>>777052
Можно removeCellWidget чекнуть, удаляет ли оно виджет или просто убирает из ячейки. Если второе, то тебе подойдёт.
433 2777273
>>777202
Remove я уже пробовал, не помогает.
434 2777323
>>777142

> let status: MailDeliveryCustomerNotificationStatus = cusomerNotificationService.getCustomerNotificationStatus(customer)


Эх, сюда бы еще венгерскую нотацию!
435 2777364
>>777323
Естественно так не пишут. Тип переменной status MailDeliveryCustomerNotificationStatus не нужно явно указывать. Он выводится из возвращаемого типа getCustomerNotificationStatus. Можно мышкой навести на переменную status и IDE подскажет тип. Если не используешь мышку и иде, то сам виноват. Ебись в виме сам с плугинами.
436 2777368
>>777323
И еще причем тут венгерская нотация? Это нотация является частью идентификатора переменной, а здесь переменная наоборот имеет короткое имя, а смысловая нагрузка на типе.
437 2777451
>>777142

>присваивает значение типу


Ебало представили?

>>777364
Не обязательно писать не значит что так писать нельзя, писать можно по законам языка и эти законы маразм для дебилов.
438 2777702
Где можно подробно почитать о том, для чего нужно выравнивание, как работает alignof, выравнивание вверх и вниз и все такое?
sage 439 2777722
>>777702
В гугле.
sage 440 2777741
>>777722

> сага


Мое почтение
без саги сюда писать что то вообще разхотелось
441 2777814
>>777702
Переполнение стека
442 2778085
На вашей хуйне есть работа для джунов? Какие требования? Знаний синтаксиса хватит?
443 2778090
>>778085
Есть
Разные
Нет
444 2778094
>>778090
А каких хватит?
445 2778322
Для чего применяются шаблонные конструкторы преобразования? Что почитать об этом, чтобы основательно в этом разобраться? пишу свой аллокатор
446 2778341
>>778322
Вроде у Александреску что то было.
447 2778379
>>774722
std::format и sprintf чем тебе не форматированный вывод правда в строку
448 2778532
>>778379

> std::format


Инициатива майкрософта. Не поддерживается никем, кроме Майкрософта.
449 2778573
>>778532
Этого более чем достаточно, перевешивает остальные васянские поделки.
450 2778634
>>778532
Ссылку, пожалуйста.
451 2778706
>>778532

>Инициатива майкрософта.


Это давно уже стандарт с++

вахуе конечно с ситуации, ряя не будем реализовывать потому что это от майков
452 2779082
>>778706
Все пользовали фмт до стдфмт и продолжат так то.
Ну и у майков гораздо больше чегг нету, чем есть.
453 2779108
>>779082
Неприятная правда.
https://devblogs.microsoft.com/oldnewthing/20190830-00/?p=102823
Краткое содержание:
- Майкрософт сделали ОС1, ОС2, ОС3, ОС4 с юникодом.
- Красноглазые чесали жопы и ничего не делали.
- Майкрософт разработала стандарт функций для юникода чтобы всё везде универсально работало и с char (анси) и с wchar_t (юникод).
- Комитеты по юникоду и сям чесали жопу и ничего не делали.
- Сообщество вокруг винды как всегда процветает, всё для людей, все довольны.
- Через 10 лет после майков красноглазые комитетщики начали чесать жопы, ведь дальше пинать хуи уже стало трудно, юникод везде и давно нужен.
- И что они сделали? Правильно, придумали свой говностандарт, всё созданной майками ломающий, потому что "Мы не любим майкрософт, они плохие, не примем ничего от них".
ИТОГИ, БЛЯТЬ
Как всегда пердоговно - говно, ничего не делает, только гадит тем кто делает.
image.png2,2 Мб, 1472x1416
454 2779118
хочу вкатится в С++ для кодинга под ESP32
Нужно ебашить с 11 версии или можно взять последнюю версию плюсов?
455 2779134
>>779108

>Windows adopted Unicode before most other operating systems.


И хуле тогда они им не пользовались?! Почему на винде всегда такая ебля с кодировками?
456 2779168
>>779134

>И хуле тогда они им не пользовались?!


Всегда и пользовались. И когда красноглазый манякомитет принял свой ломающий стандарт, майки оставили свой, чтобы не ломать людям их программы. Майкрософт всегда работал для людей, защищал людей, заботился о совместимости, не ломать людям программы. Именно поэтому винда лучшая и вообще единственная ОС для людей и всегда будет такой, потому что аналогов нет. С другой стороны только Эппл, которые каждый год тыквят софт обновлениями своей говнооси:

>"Убежали все переписывать свои поделия на новый стандарт. Кто не хочет? Не держим, дорога нахуй - вон туда"


И красноглазые пердоли подсасывают этому говну подпевая в лад. Только ломают, только гадят, когда майки работают ради людей. Еще хрюкни что-нибудь про "свободу и открытость", говна кусок.

>Почему на винде всегда такая ебля с кодировками?


Потому что когда софта нет, и проблем нет. Смотри выше почему. На твоих прыщах софт - однодневки, как мухи дохнут за месяц по осени. Надо постоянно переписывать правя под обновления или всё, тыква. А на винде программы и код работают десятилетиями. Потому что майки заботятся о совместимости, поддерживают софт и код, а не ломают его как Эппл и их подсосы пердоли.
457 2779169
>>779168
Какой пиздливый индусский подсос.
458 2779175
>>779168
Ну и чё ж до сих пор в Винде кодировка не юникод?
459 2779205
>>779175
В винде полностью кодировка юникод начиная (человеческие оси) с Windows 2000. То есть, среди настольных осей, начиная с Windows 2000 все неюникодные программы в Windows работают через прослойку совместимости со старым софтом, через костыли сделанные майками специально для совместимости со старым. Ты понимаешь это, дебил? Тебе даже нет столько лет, ты родился и уже винда давно была полностью юникодная. Но при этом там остался и весь остальной устаревший неюникодный софт, потому что майки поддерживают софт, не дают ему сломаться. До самого сегодняшнего дня. До сих пор этот древнющий софт работает и даже есть настолько дебилы, что продолжают писать неюникодное говно как под Windows 98, даже сегодня. Оцени тупость ебланов. Майкрософт настолько расстарались с совместимостью, что даже сегодня дебилоиды не замечают, что их сегодняшние высеры устарели еще 25 лет назад, потому что ПРОСТО РАБОТАЕТ, на винде софт РАБОТАЕТ, а не как в эппло и прыщемирке - ломаем всё нахуй, мы прогрессивные модные чоткие поцоны, ретрограды со старым калом не нужны, вырезать! депрекейтед! нахуй! Вот и нет софта, нет жизни, только мертвое каловое говно.
460 2779209
>>779168
Too fat, go to /s/.
461 2779228
>>779168

>Майкрософт всегда работал для людей, защищал людей, заботился о совместимости, не ломать людям программы


Жир потёк с экрана.
12345 462 2779332
Кто не только на двачах пиздеть — приглашаю на локальный московский митап C++ Moscow

Можно в качестве спикера — попиздеть перед тремя людьми (запостимся в крупных плюсовых чатиках и канальчиках — может, будет больше), а можно и просто так

https://t.me/cppmoscow_info
463 2779367
>>779332
Перекатунов в кресты из жса пускаете?)
photo2023-05-1201-11-25.jpg71 Кб, 700x655
464 2779397
Сап, плюсач. Дело в том, что есть одна тян и мы с ней иногда гуляем по городу. Мне 30 лет (я наврал, что мне 25), а ей 16. Максимум что у нас было это мы с ней пару раз целовались. Что мне грозит, если попросить у нее интимки? За 16-летних тян есть бутылка от товарища майора?
465 2779460
>>779397
Ты хотя бы Саттера читал, романтик хренов?
466 2779496
>>779367
Нахуй вы здесь нужны, красьте дальше кнопки.
467 2779685
>>779397
Обсуждаешь с ней новые фичи из 23-го стандарта?
468 2779822
Как в реализации кастомного списка с std::pmr::polymorphic_allocator аллоцировать node - ноду списка? До 17 стандарта и появления std::allocator_traits и pmr это делалость при помощи метаметода rebind, а сейчас как?
469 2779839
Ребята, вы не способны объяснить новичку, что такое рекурсия!!!
470 2780033
мы два инта сложить неспособны наху
471 2780081
>>779839
А может это и к лучшему. Я вот например не ебу как пользоваться глобальными переменными.
472 2780418
>>780081
Все что надо знать о том, как пользоваться глобальными переменными — это то, что ими не надо пользоваться
473 2780421
>>780418
Но все ими пользуются
474 2780485
>>780421
Кто «все»? Глобальные переменные допускаются только если они:
1. Статические;
2. Константные;
3. Не могут бросить исключение насчёт этого не уверен, но я нигде не смог найти информацию о том, как поймать исключение, если оно бросилось в конструкторе глобальной переменной, только всякие костыли с наследованием или созданием указателя и конструированием объекта в другом месте
475 2780516
>>780485
Открой код nginx, там все главные переменные - глобальные.
476 2780649
>>780516
Ему бесмысленно обьяснять. Это один из мэмакак с++29.
477 2780760
>>780485
В нормальном языке переменные ничего не бросают.
478 2780767
>>780760
Душнила.
479 2780780
try {
int hui;
} catxh (...) {
std::cout << "Peremennaya kinula eksepshon" << std::endl;
}
480 2780855
>>779839
Рекурсию надо объяснять не на примере языка высокого уровня, а на примере архитектуры процессора, ассемблера и стека.
Ты вызываешь подпрограмму мнемоникой ассемблера CALL label, процессор берет текущий адрес из программного счетчика, инкрементирует его и записывает в стек, а в программный счетчик записывает адрес метки подпрограммы и выполняет ее, пока не встретит там команду RET.
Потом происходит обратная процедура, процессор достает из стека адрес подпрограммы и возвращается к программе, которую он делал ранее.
А если в подпрограмме вызвать подпрограмму без условий выхода из нее, это приведет к бесконечному заполнению стека, в конце концов стек переполнится и выйдет за пределы отведенной ему памяти.
Поэтому в рекурсии должен быть обязательно предусмотрен выход из нее по условию, а количество рекурсий не должно переполнить стек.
481 2780877
>>780780
throw 42;
482 2780994
>>780855
Ассемблер это кастомная муть везде разная, для учебы не годится.
Рекурсию надо объяснять следующим образом:
В компьютере не существует никаких функций и тем более их вложенных вызовов - рекурсий, это всё абстракции для математико-даунов. Математика не имеет отношения к компьютерам, в них есть только примитивная арифметика, и логика. Так что с функциями - сразу нахуй следуй, дебил. Это первое.

И второе, что же тогда есть? А есть переходы - GOTO, код это одни GOTO, которые и надо учить. И на этом месте у тупого скота наступает истерика и он идет нахуй. Очень удобно не тратить впустую время на необучаемых дебилов.
483 2781713
Объясните кратко и наглядно, что такое докер, jenkins и прочая залупа которую я слышу от web-кабанов и касается ли это любителя С++, микроконтроллеров и видеоигр?
484 2781718
>>781713
В Гугле забанили, не веб макака?
485 2781721
>>781713

>Объясните кратко и наглядно, что такое докер, jenkins и прочая залупа


Ну дженкинс и докер это всё шестерёнки одной большой системы под названием "девопс". Весь смысл девопса в том, чтобы как можно быстрее выпускать продукт на рынок и быть конкурентным. Чтобы пользователь софта получал аплейты каждую неделю. Если ты будешь по полгода выкатывать апдейты, придёт твой конкурент васян и у него будет быстрее продукт развиваться и улучшаться. Он будет выкатывать кучу маленьких изменений, будет гибче тебя и случае обсёра так же быстро откатит изменения.

Это всё в совокупности - инструменты, культура компании, автоматизация, организация компании, процессы и так далее. Чтобы это работало, нужно внедрять agile в компанию, угорать по экстремальному программированию, писать автоматизацию, разделять на микросервисы и давать независимым командам по микросервису.

В случае С++, работает сама идея, но у тебя не будет докера и контейнеров, не будет части "ops" в слове devops (грубо говоря сисадминов, обслуживающих серваки), не будет микросервисов, но всё остальное будет также работать.
486 2781729
>>781721
Спасибо.
487 2781876
>>781721

>не будет микросервисов



Почему? На плюсах не пишут микросервисы?
488 2781954
>>781876

>Почему? На плюсах не пишут микросервисы?


Пишут, но я не имел ввиду вебню. Я подразумевал десктопные приложения. Там немного по-другому, идут по пути модуляризации/вынесения в демоны. А вместо REST API/MQTT идёт D-Bus, сокеты и всё остальное.
0.png60 Кб, 585x796
489 2782047
Как называется такой стиль кодирования, когда классы называются именами типа CVector, форматирования код происходит таким образом? В одно игровой компании был принят такой кодстайл, поэтому решил его использовать.
490 2782107
>>782047

> классы называются именами типа CVector


Чё за класс?
0.png31 Кб, 576x407
491 2782140
>>782107
Давали тестовое задание написать CVector, но это было давно.

ВОпрос вселенской важности: как отключить манглинг имен, чтобы вместо _Z10KernelMainv было просто KernelMain?
photo2023-04-1817-11-55.jpg31 Кб, 604x456
492 2782153
493 2782176
>>782140

> Давали тестовое задание написать CVector


Чё за CVector? Чем от Vector'а отличается
494 2782184
Подскажите пожалуйста, зачем static поле делать inline ?
495 2782192
>>782184
Ключевое слово static дает символу внутреннее связывание и он не торчит наружу из объектница. Слово inline просит компилятор попытаться встроить функцию.
496 2782228
>>782184
Статические поля классов в C++ могут быть определены в заголовочных файлах, и если такое поле не помечено как `inline`, то каждый файл, который включает этот заголовочный файл, будет иметь свою копию статического поля. Это может привести к неожиданным результатам, если разные единицы трансляции имеют разные значения для статического поля.

Если статическое поле помечено как `inline`, то компилятор будет обеспечивать то, что в каждой единице трансляции будет использоваться одно и то же статическое поле. Это позволяет избежать проблем с неоднозначными значениями статического поля и обеспечивает более предсказуемое поведение программы.

Таким образом, пометка статического поля как `inline` является хорошей практикой для предотвращения проблем с неоднозначными значениями статических полей в C++.
497 2782360
>>782228

>каждый файл, который включает этот заголовочный файл, будет иметь свою копию статического поля


пример покажешь? а то звучит как хуйня полная что-то новое
498 2782443
>>782360
Да, конечно, вот пример, который демонстрирует проблему множественного определения статической переменной:

```
// file.h

static int myStaticVar = 0;
```

```
// file1.cpp

#include "file.h"

void function1()
{
myStaticVar++;
}
```

```
// file2.cpp

#include "file.h"

void function2()
{
myStaticVar--;
}
```

Здесь мы определяем статическую переменную `myStaticVar` в заголовочном файле `file.h` без ключевого слова `inline`. Затем мы подключаем этот заголовочный файл в двух исходных файлах `file1.cpp` и `file2.cpp` и используем переменную в функциях `function1()` и `function2()` соответственно.

Когда мы компилируем эти файлы, то получим ошибку множественного определения:

```
error: multiple definition of 'myStaticVar'
```

Это происходит потому, что при компиляции каждого исходного файла `file1.cpp` и `file2.cpp` переменная `myStaticVar` определяется заново в каждом из них, что приводит к конфликту определений.

Чтобы избежать этой проблемы, мы можем определить статическую переменную с помощью ключевого слова `inline`, как я показал в предыдущем примере.
498 2782443
>>782360
Да, конечно, вот пример, который демонстрирует проблему множественного определения статической переменной:

```
// file.h

static int myStaticVar = 0;
```

```
// file1.cpp

#include "file.h"

void function1()
{
myStaticVar++;
}
```

```
// file2.cpp

#include "file.h"

void function2()
{
myStaticVar--;
}
```

Здесь мы определяем статическую переменную `myStaticVar` в заголовочном файле `file.h` без ключевого слова `inline`. Затем мы подключаем этот заголовочный файл в двух исходных файлах `file1.cpp` и `file2.cpp` и используем переменную в функциях `function1()` и `function2()` соответственно.

Когда мы компилируем эти файлы, то получим ошибку множественного определения:

```
error: multiple definition of 'myStaticVar'
```

Это происходит потому, что при компиляции каждого исходного файла `file1.cpp` и `file2.cpp` переменная `myStaticVar` определяется заново в каждом из них, что приводит к конфликту определений.

Чтобы избежать этой проблемы, мы можем определить статическую переменную с помощью ключевого слова `inline`, как я показал в предыдущем примере.
499 2782447
>>782228
Я могу быть не прав и проверять мне лень, но насколько я помню, статическое поле объявляется в хедере а инстанс делоется в cpp файле, иначе (если инстанс создается в хедере) канпилятор просто на хуй посылает. Точнее послылает линкер, что типа одно и тоже в разных файлах с объектным кодом создано. Немного проще с шаблонами классов, там можно прям в хедере объявлять, подробностей правда говоря так сразу и не вспомню. Лично я вместо статических полей практикую статические функции возвращающие ссылку на статический объект, объявленный внутри этой функции.
500 2782456
>>782443

>// file.h


>static int myStaticVar



Я думал, что поле это член класса
501 2782459
>>782456
Если речь идет о статическом поле класса, то принципиально ничего не меняется: при подключении заголовочного файла, содержащего определение статического поля класса, в нескольких исходных файлах может произойти множественное определение поля, что приведет к ошибке компиляции.

Для избежания этого необходимо определить статическое поле класса в единственном экземпляре. В C++ для этого можно использовать ключевое слово `static` в определении поля класса вместе с ключевым словом `inline` в заголовочном файле, как я показал в предыдущем примере.

Вот пример определения статического поля класса с использованием ключевых слов `static` и `inline`:

```
// MyClass.h

class MyClass
{
public:
static inline int myStaticField;
};

inline static int MyClass::myStaticField = 0; // определение поля
```

Здесь мы определяем статическое поле класса `MyClass`, используя ключевое слово `static` в определении поля и ключевое слово `inline` в заголовочном файле. Обратите внимание, что определение поля вынесено за пределы класса и выполняется с использованием квалификатора имени класса.

Теперь, при подключении заголовочного файла `MyClass.h` в нескольких исходных файлах, статическое поле `myStaticField` будет определено только в одном экземпляре, что избежит ошибки множественного определения.
image.png57 Кб, 1322x604
502 2782478
>>782459
нам ваш инлайн на хуй не нужон
503 2782484
>>782478
ты file2.cpp забыл использовать
из него тоже cout сделай
504 2782495
>>782484
зачем мне его использовать? он сконпилен и слинкован, ошибок нет
505 2782498
>>782495
как думаешь что линкер сделает с функцией которую никто не вызывает? На размышление 30 секунд
image.png61 Кб, 1322x604
506 2782503
image.png61 Кб, 1322x604
507 2782519
>>782459
на самом деле, спасибо тебе, я что-то новое узнал, возможно пригодится когда-нибудь
508 2782530
>>782519
да не за что, впадлу писать было поэтому чатгпт твои вопросы скармливал

искренне верил что такой код нескомпилится, ну чтож бывает
509 2782556
510 2782564
>>782556
да схуяли
511 2782569
>>779839
Ребята, вы не способны объяснить новичку, что такое продолжения!!!
image.png34 Кб, 816x277
512 2782645
>>782564
я ошибся. Все у тебя здесь нормально.
Как я понимаю у тебя здесь external linkage.
513 2782830
>>780994

>Ассемблер это кастомная муть везде разная, для учебы не годится


Вызовы происходят абсолютно одинаково. Всегда сохраняется адрес возрата на следующую инструкцию на стеке, так что это уже фрейм стековый. И таки да, объяснение рекурсии на примере асм реально лучше, я только после этого начал понимать, например, ту же двойную рекурсию.
514 2782878
>>782830
Значит ты тупенький, разттак долго доходилр, а те кто не понимает из вики/гуглов и итт спрашивпет вообще животные.
515 2782906
>>782878

>разттак


>доходилр


>спрашивпет


>тупенький


У тебя ДЦП?
516 2782911
>>782906
Дребался?
517 2782914
>>782911

>имплаинг что вот я то не доебался, ведь я умный, мам ну скажи им, ну маааааам, я ведь не доебался, я ВИДЬ АСОБЕННЫЙ!!!

518 2782919
>>782914
Спрк.
519 2783414
>>782047

>Как называется такой стиль кодирования, когда классы называются именами типа CVector, форматирования код происходит таким образом?


Hungarian notation, отдельный вид рака из мира си с классами, которым пользуются всякие вальвы и гуглы.

Я советую стиль Java:
ClassName,
_variableName
methodName()
520 2783417
>>783414

> из мира си


Не только, например интерфейсы любят по типу IMovable называть
521 2783428
>>783417
читай что я пишу.
Си с классами. Любимый стиль раковников из девяностых и любителей покритиковать современный С++ из параши растовиков и петухонистов. Сейчас так лучше не делать и писать современный код, используя умные указатели, RAII, а так же такие инструменты как отладчики и профайлеры. У меня проблем с утечками памяти не было, разве что когда касался сишного легасиговна.
522 2783437
>>783428

>из параши растовиков и петухонистов


>Сейчас лучше писать современный код


Ну и зачем с треде С++ вскукарек из параши растовиков и питонистов?
523 2783438
>>783437
Не знаю, но они постоянно протекают сюда и визжат что С++ это UB на UB. Просто надо уметь кодить, пользоваться инструментами для отладки и выявления утечек памяти и проблем не будет.

Как говорят пиндосы skill issue
524 2783451

> просто пишите без уб, лол


И ведь без иронии это говорят
525 2783514
А я люблю обкладывать код ассертами и грузить.
526 2783515
>>783428
А я вот умными указателями не пользуюсь принципиально. Это очень плохо?
У меня лет за 20 ни разу ничего никуда не утекло, и как-то хуй знает зочем это все.
527 2783531
>>783515
У тебя отсутствие утечек подкреплено большим опытом, а условный миддл в 1 из 500 раз нет-нет да забудет сделать delete.
528 2783594
>>783531
Так это ошибка, а не проблеиа плюсов. Лол.
529 2783597
>>783594
у плюсов вообще нет проблем!
530 2783599
>>783451
А в чем сука он не прав? Зачем ты читаешь неиницилизированную память, ебанатище? Чтобы что? Уебывай в растотред
531 2783636
>>783594
Проблема в разрабах на плюсах.
532 2783638
>>783599
Надо сложить два инта, твои действия?
533 2783659
>>783638
Кому надо?
534 2783729
>>783659
Тебе. У тебя такая задача. Отказаться нельзя, уволиться нельзя, умереть нельзя.
535 2783753
>>783729
Достану куркулятор и умножу
536 2783756
>>783753
то есть сложу, ну че там надо сделать крч, то и сделаю
537 2783767
Сап. Как подменить вызовы new, delete, malloc и т.п. в dllках?
538 2783792
>>783756
И получишь UB.
539 2783830
>>783638
Пишу класс, чтобы переменные бросали исключения.
540 2783866
>>783792
на куркуляторе?
541 2783869
>>783767
Нужно больше данных
542 2783872
>>783531

> нет-нет да забудет сделать delete


Зачем его делать, тебе же написали, что есть RAII
543 2783875
>>783872
Пиздец, тред не прочитал. Просто не обращаем внимания на чмонек, игнорирующих смарт принтеры.
544 2783876
>>783872
Чтобы не пользоваться мерзкими смартпоинтерами.
545 2783958
>>783438
Просто разным задачам разные инструменты. Когда мне надо написать говноскрипт с примитивной задачей, например что-то там качающий из интернета и производящий с этим несложные манипуляции, такое можно написать и на батниках, но мне в падлу и пишу на шарпе, удобно просто писать не думая о мелочах, мусоросборник сам подотрет. Но это задачи для говноскриптов, когда же надо написать реальную программу, полезную, которой пользуются, это значит она должна работать хорошо, а не тормозить как сука хуже браузерных страничек, вот тут уже только си, иначе никак. Когда пишешь качественный софт, требование внимательности и аккуратности уже не кажется "в падлу", так кажется только когда говно пишешь, сам понимая что оно ничего особо не стоит, вот и не хочется вкладывать время и силы в говно.
546 2783980
>>783767
Если нормально собрано и слинковпно со вмякими экстерн дллипорт то должно подхватываться само.
547 2784034
>>783599

> человек может ошибиться и написать уб


> так просто не ошибайся


Тебе, тупоголовому реально надо объяснять почему это не работает, не работало и не будет работать?
Ты хоть раз работал в команде 5+ человек, ты хоть раз видел на работе джунов?
Это все притом что с каждым стандартом кол-во кода для написания одной и той же вещи растет и растет

более того на всерьез думать что используя умные указатели ты можешь хотя бы от половины уб избавиться
548 2784037
>>783958

> только си


Только ассемблер*
549 2784150
>>783875

> игнорирующих смарт принтеры


Это в которых при каждом копировании atomic счётчик щёлкается?
550 2784538
Аноны, значится у меня появилась задача перевода расчётов из экселя в стороннюю программу (никакого взаимодействия с экселем нет, просто переписывание с нуля в отдельную софтину).
Но вот проблема в том, что там в формулах расчёта есть именованные константы, типа, РасхКраски_шт, ЦенаКраски_шт и тд. Причём пользователя может что-то менять в формулах.
Как бы эти формулы перевести в C++? Точнее чтобы у пользователя осталось такое же взаимодействие с функционалом как раньше.
551 2784545
>>784150
А что не так?
552 2784581
>>784545

> А что не так?


А то что нахуй не нужно.
553 2784700
правда ли что у уник_птр есть контрольный блок как у шаред, и нахуя он ему?
554 2784718
>>783869
К приложухе подключается готовая dllка (предположим, что её исходников у меня нет). Мне нужно, чтобы все выделения памяти внутри этой dll осуществлялись через мои new, delete, malloc и т.п., которые переопределены мной. Всё это нужно под виндой
Я такой хуйнёй занимаюсь первый раз, поэтому хз, что ещё добавить
555 2784890
>>784718
У тебя есть только один код - бинарный код дллки, берешь его и реверсишь в ассемблер выясняя каким образом происходит выделение памяти и хукаешь эти функции.

>через мои new, delete, malloc


Нет таких функций, это лишь абстракции в исходниках на С++, которых у тебя нет, реализованы на практике могут быть как угодно (неизвестно).
556 2784915
>>784890
Можно перехватывать вызовы апихи VirtualAlloc. Сплайсинг или подмена адресов в таблице импорта
557 2784916
>>784718
Можно перехватывать вызовы апихи VirtualAlloc. Сплайсинг или подмена адресов в таблице импорта
558 2784940
>>784890
malloc и free есть. Остальное петушиные виртуальные обертки над ними.
559 2784947
>>784718
>>784916
я тебя скорее всего наибал и ни хуя не сработает, но попробовать можно, чтобы хоть с чего-то начать
560 2784948
>>784718
Скинь таблицу импорта это dllки
aaaa.mp4200 Кб, mp4,
320x240, 0:03
561 2785301
Я долго не знал, зачем в реализации std::forward параметр пишется как std::remove_reference_t<T>& x. Довольно бессмысленная запись. Оказывается это для того, чтобы CE вызывалась, если пограмист забудет явно указать параметр шаблона в при вызове std::forward.
562 2785640
>>785301

>CE вызывалась


Щито вызывалась?
мимо 5+ лет плюсов

Алсо,

>если пограмист забудет


>забудет


Не забудет, а явно не укажет, для улучшения читаймости/дженериковости кода.
563 2785861
>>784718
крч хуй знает куда ты пропал и актуальна ли еще проблема, вот тебе к размышлению информация такая. У меня нет винды под рукой, под убунтой бинарник с скомпиленный из такого вот кода имеет такую вот таблицу импорта. Это говорит нам о том, что функция malloc это функция из библиотеки С. Думаю в винде так-же. Вызов этой функции можно перехватить 2 способами:
1. подменить адресс функции в таблице импорта (есть 2 подспособа)
2. сплайсинг (в памяти прям в начале этой функции записываются машынные коды инструкций прыжка на фейковую функцию, которая делает свои действия по перехвату (логирование, подмена чегонибудь)), выполняет инструкции которые мы затерли прыжком, и делает прыжок обратно
564 2785984
>>785861
В нормальных компиляторах есть атрибут алиас для этого.
565 2785989
>>785984
Ага, только вот тот чел походу хочет не в исходниках что-то сменить, а заставить бинарь себя вести по другому.
566 2786014
>>785984
для чего для этого? бинарник уже сконпилен и полномочия конпилятора на этом все
image.png171 Кб, 446x372
567 2786222
Я не понимаю почему так обэме????????????? Я тупой?

// Глобальные контейнеры
std::vector<int> v1 = {1, 2, 3};
std::vector<int> v2 = {4, 5, 6};

// Глобальные блокировки
std::mutex m1;
std::mutex m2;

// Функция, которая меняет местами элементы двух контейнеров
void exchange(int i, int j) {
// Захватываем обе блокировки атомарно
std::lock(m1, m2);

// Создаем объекты std::lock_guard для управления блокировками
std::lock_guard<std::mutex> lock1(m1, std::adopt_lock);
std::lock_guard<std::mutex> lock2(m2, std::adopt_lock);

// Меняем местами элементы
std::swap(v1, v2[j]);
}

// Создаем два потока, которые вызывают функцию exchange
std::thread t1(exchange, 0, 0);
std::thread t2(exchange, 1, 1);

// Ждем завершения потоков
t1.join();
t2.join();

// Выводим содержимое контейнеров
for (int x : v1) {
std::cout << x << " ";
}
std::cout << std::endl;
for (int x : v2) {
std::cout << x << " ";
}
std::cout << std::endl;
image.png171 Кб, 446x372
567 2786222
Я не понимаю почему так обэме????????????? Я тупой?

// Глобальные контейнеры
std::vector<int> v1 = {1, 2, 3};
std::vector<int> v2 = {4, 5, 6};

// Глобальные блокировки
std::mutex m1;
std::mutex m2;

// Функция, которая меняет местами элементы двух контейнеров
void exchange(int i, int j) {
// Захватываем обе блокировки атомарно
std::lock(m1, m2);

// Создаем объекты std::lock_guard для управления блокировками
std::lock_guard<std::mutex> lock1(m1, std::adopt_lock);
std::lock_guard<std::mutex> lock2(m2, std::adopt_lock);

// Меняем местами элементы
std::swap(v1, v2[j]);
}

// Создаем два потока, которые вызывают функцию exchange
std::thread t1(exchange, 0, 0);
std::thread t2(exchange, 1, 1);

// Ждем завершения потоков
t1.join();
t2.join();

// Выводим содержимое контейнеров
for (int x : v1) {
std::cout << x << " ";
}
std::cout << std::endl;
for (int x : v2) {
std::cout << x << " ";
}
std::cout << std::endl;
568 2786238
>>786222
Всё забейте, автор статьи пидорас и сын своей матери, высосал этот пример из пальца
569 2786240
>>786222
Что не понимаешь то?
570 2786244
>>786240
Зачем конкретно в данной ситуации 2ух мьютексный оверкилл
571 2786258
>>785640

> Щито вызывалась?


SE
572 2786547
>>786014
>>785989
Я сделал экзешник.
Сделал либу в которой переопределил маллок нью и прочее.
Линкую либу к экзешнику, проверяю все работает.
Делаю другую либу в которой тоже полюзуются малоки и тд.
Линкую вторкю либу к первому экзешнику, проверяю и внезапно редирект малоков в перваю либу работает.
Чдт.
573 2786627
>>786258
secod edition
574 2786631
>>785301
Так std::forward нельзя вызвать без явного указания параметра шаблона.
575 2786699
>>786631
Ух бля, я не знал. Чекнул прям щас на 17ых, и правда.

>>785640
Пяти лет недостаточно видимо. Хотя для плюсов и жизни недостаточно уже.
576 2786829
>>785861
Сори, вчера, не до этой хуйни было
Благодарю за наводку. При помощи detours получилось подменить исходные функции и вроде работает как мне и надо за исключением того, что перехватываются все malloc и free, а не у конкретной либы. Но на это вроде похуй. Так что ура, получилось, ещё раз спасибо

> 1. подменить адресс функции в таблице импорта (есть 2 подспособа)


Можешь вкратце рассказать или скинуть что-нибудь почитать?
577 2786838
>>785640
Бля, я все правильно написал изначально, это ты дебич сбил меня
CE - Compile-time Error
RE - Runtime Error
UB - Undefined Behaviour (вдруг ты не знаешь)

SE - syntax error
578 2786841
>>786838
Насрал аббревиатурами и рад
579 2786956
>>786838
За семь лет работы с плюсами ни разу не встречал ничего, кроме UB
580 2787016
>>786956
Компиле тайм эррор делается специально через статик ассерты чтоб потенциально не проебаться в последствии.
А рантайм ну иногда бывает, но редко да. Вот на днях че то такое видел мутексы себя ломали.
581 2787047
>>787016
Я про сокращения
582 2787048
>>787016
думаю что тот чел про аббревиатуры)
583 2787400
>>759972

>как ты это сделол?

584 2787532
>>787047
>>787048
Ну босрался чутка, с кем не бывает.
1667212671650300.jpg16 Кб, 250x210
585 2787886
Если у вас такой озуенный язык, зачем с него переписывают на си?
https://github.com/syzygy1/Cfish
586 2787944
>>787886

>зачем с него переписывают на си?


1. Шизики-бездельники
2. Стабильное аби и возможность создания биндингов к разным платформам
В твоем случае первое
587 2788039
>>787886
Переписывание уже написанного это тунеядство, имитация деятельности. То же самое как переустановка ОС, когда еблан не умеет и не хочет пользоваться ОС, занимается переустановкой. Так и тут, когда не умеет и не хочет писать программы, фиксить баги, вносить улучшения, переписывает уже написанное делая только хуже.
588 2788044
>>788039

> Так и тут, когда не умеет и не хочет писать программы, фиксить баги, вносить улучшения, переписывает уже написанное делая только хуже.


У тебя пресуппозиция, что в процессе переписывания программа не улучшается. А ведь при этом можно и найти баги.
589 2788145
>>786956
Аналогично.
>>786838

>CE - Compile-time Error


>RE - Runtime Error


>SE - syntax error


Есть ошибка компиляции по-русски или ill-formed program, юридически выражаясь. Откуда ты притащил эти аббревиатуры, признавайся.
590 2788189
AE
BE
DE
EE
FE
GE
HE
IE
JE
KE
LE
ME
NE
OE
PE
QE
TE
UE
VE
WE
XE
YE
ZE
591 2788195
>>788044

>А ведь при этом можно и найти баги


Он не на раст переписывает, а на си. С таким подходом багов однозначно станет только больше, ведь языка программирования с меньшим количеством проверок еще не изобрели.
sage 592 2788350
>>788195
Нахуй с треда мальчик.
593 2788401
В общем есть два класса:

struct A {
void foo(int b) {
std::cout << "hello 1 " << b << std::endl;
}
};

struct B : public A {
void foo(int b) {
std::cout << "hello 2 " << b << std::endl;
}
};

Возможо ли хакнуть так, чтобы можно было вызвать функцию foo как обычную? Через поинтер например:
ptr(5) // hello 2 5
594 2788454
>>788401
void ptr(int b1)
{
B b2;
b2.foo(b1);
}
595 2788465
>>788454
Садись, два. Хотя б статиком объявил что ли
596 2788508
>>788465
static void ptr(int b1)
{
}
597 2788535
>>788454

> Создание объекта класса внутри функции


>>788401
Гугл std::bind
598 2788540
>>788350

>сага


База
599 2788558
>>788401
Студ бинд, студ мембер Функшн, студ инвок
Ну и лямбда офк.
600 2788559
601 2788589
Как лучшее организовывать код?

Вот допустим я в процессе программирования выделил некоторые сущности и в соответствии с ними создал некоторые классы. Но потом вдруг выяснилось, что некоторые классы совсем не содержат в себе данных, только методы. Тогда руки чешутся сделать эти методы статическими, но я ловил какие-то ошибки во время компиляции, с которыми мне разбираться лень было а ещё не понял путаницы со статическими шаблонными методами.
В общем, либо делать эти методы методами объекта, но тогда придётся при их вызове создавать временный объект (который скорее всего при оптимизации превратится в no-op, но всё некрасиво), либо вместо класса просто отдельный неймспейс выделить, но это как-то не объектно-ориентированно либо сделать десяток функций с названием а-ля ИмяКлассаИмяМетода, но это уже программирование уровня /b/

Посоветуйте в общем чего-нибудь.
602 2788591
>>788589
У тебя метод головного мозга. Пстые классы без данных с мотодами, лол. понимаю еще сли бы все это виртуалы были...
Просто сделай функции, не позорься. Ну можешь в неймспей впихнуть если так чешется.
603 2788640
Короче в расте все нетривиальные типы муваются. Представьте, если бы у абсолютно всех объектов вместо копирующего и перемещающего конструктора был бы единый move-конструктор Classname(const Classname& value) и это предопределено в языке и никак не изменить. Я предпочту С++, потому что больше гибкости.
Еще я заметил, что кидается СE, когда переполнение или даже потенциальное переполнение типа, то есть они хотят сказать, что в расте избавились от UB. Но я открою секрет, constexpr-функции тоже кидают CE, если в коде функции есть UB.
604 2788641
>>788145
Программа может быть ill-formed, но при этом не выдавать ошибок.
605 2788648
Аноны, а зачем люди используют динамические библиотеки, когда свое говно собирают? Я ни одного плюса не вижу, когда человек предпочитает свое говно сделать динамическим, а тебе потом приходится его говнофайлики подкидывать.

Статическая сборка компактная, требует меньше зависимостей, и ощущение, что программа лучше оптимизируется
606 2788650
>>788648
Может обновлять удобнее, одну dll поменял и все.
607 2788658
>>788650
Ну это враки же, Википедия говорит про "длл-ад" в шиндовс. А в линукс реалиях? Библиотека my_govno.so сама решает обновиться, а прога с этой версией не протестирована, и все, пизда?

Немного правдоподобно использовать длл если хочешь исходники скрыть. Но опять же, щас популярен подход хедер-онли, и как-то все открыто остаётся. Короче не понимаю многого
608 2788698
>>788658

>Библиотека my_govno.so сама решает обновиться, а прога с этой версией не протестирована, и все, пизда?


Разруливанием этих вещей занимаются мейнтейнеры и пакетный менеджер.
609 2788765
>>788508
>>788535
>>788558
Это дауны
610 2788773
>>788648
Ты вопрос внятно сформулировать можешь? Какое еще своё говно? Собственный проект динамически или свой велосипед тянут в проекты как динамическую либу?

Ты что компьютерный дух? Какие еще ощущения? Дальше что? На картах нам погадаешь? Разберись для начала как компьютерная программа вообще стартует и что она при этом делает. Статическая сборка у него компактная.
Кстати говоря рекомендую еще с лицензиями ознакомится
611 2788793
>>788765
Аргументируй.
612 2788797
>>788793
std::mem_fn появился ещё в 11-ом стандарте, а бинд вообще хуйня без задач, которую давно пора выкинуть.
613 2788804
>>788797

> 11ый стандарт


Пора бы и перейти.

> Нинужно


Как скажешь.
614 2788810
>>788804
Сделай биндом, то что нельзя сделать лямбдой.
615 2788867
>>788810
Сделай лямбдой то, что нельзя сделать функтором
616 2788869
>>788867
Чем?
617 2788871
>>788869
Перекатчик из жс треда?
618 2788892
>>788810
Откровенно говоря у лямбд убогий синтаксис.
619 2788937
>>788892
Как и у крестов в целом.
620 2789166
Аноны, кто пользуется qt creator как средой разработки? Как починить баг когда при сохранении курсор меняет положение в файле, а затем вообще ломается сколл документа?
621 2789174
>>788867
Нормальные мужики писали функции, пускай хоть в виде лямбд.
Соевые придумали пустой класс с оператором и назвали функтором. Юзлес говно.
622 2789185
>>789174
Это уже какой то новый уровень ретроградства
623 2789193
>>789174
Уверен ты даже не понимаешь зачем функторы существуют. дада функциональное не нужно
624 2789263
>>789174

> пускай хоть в виде лямбд.


Ты не поверишь... Лямбда создаёт объект-функтор
625 2789325
>>789193
Я и говорю, соя совмем отупела.
ясное дело что можно манипулировать с областью видимости, это никак не отменяет факта что все это гивнецо раньше реализовывали просто вызовом функций.
626 2789344
Функтор это вообще из теории категорий и не имеет ничего общего с Callables из крестов.
627 2789550
>>783515

>А я вот умными указателями не пользуюсь принципиально. Это очень плохо?


Просто у тебя не было задач, где они нужны. А это, например, практически любой редактор с undo. Там так или иначе придется использовать счетчик ссылок на ресурс, и удобно это делать умным указателем.
628 2789557
>>788793
Челик задание прочитай
629 2789644
>>789166
Я на пингвине. С багом не сталкивался.
630 2789675
>>789644
У меня версия 9,0,0
631 2789702
>>789675
У меня 10.0.2
632 2789712
А у меня 25 см.
633 2789741
>>789712
Обычно о величине члена говорят только те у кого самые маленькие члены
634 2789773
Почему модули не взлетели?
635 2789777
>>789773
Потому что они недавно вышли. Дай время
636 2789793
>>789777
Дохуя времени прошло, сколько ждать ещё нахуй?
637 2789809
>>789773

>Почему модули не взлетели?


Потому что оказалось, что они своей задачи не решают. Поскольку формат модуля у каждого компилятора свой (и даже разный для каждой версии компилятора), то заменить хидеры модулями можно только при полном доступе к исходникам, т.е. или в опенсорсе или, наоборот, полностью внутренней разработке. Если же надо распространять свою либу или API к проге, то модули ничем не помогут, придется все так же распространять скомпиленую либу + хидеры.
638 2789820
>>789702
Накачу 11 с гитхаба. Посмотрим как с ней будет
639 2789861
>>789820
Пробовал я их гитовские версии - как правило шляпа багованая
Лусше стейбл жди. Алсо у меня креатором таких проблем не было, обновлчюсь стабильно.
640 2789862
>>789773
Кто завозить должен? Почему Ты модули не завез?
641 2789897
>>789809
А в стат/динам библиотеки кто мешает распространять?
Да и разве модули эти проблемы решить хотели?
642 2789910
>>789809
а я думал все цели успешно достигаются их основной смысл заменить и улучшить прекомпилед хедеры чтоб конпелятор не жевал 200мб шаблонов в каждом юните
643 2789913
алсо

>формат модуля у каждого компилятора свой


чет лол, половину предложений в стандарт шлют нахуй по причине "не ломать abi"
а кто-нибудь вообще видел этот не сломанный abi крестов? он вообще существует нах? при смене -О1 на -О2 жепа не отваливается?
644 2789921
>>789913
Собираю с 03 брат жив, странный пример, хотя про пиздец стд ты прав.
645 2789938
>>789913
Так а кого ебет как ты свои лабы собираешь? Задроты то мучают комитет чтоб вообще у всех либы перестали линковаться к проектам, сейчас то такой проблемы нет
646 2790148
Сап аноны

Изучаю новую тему, а именно перегрузка операторов в ООП.

И собственно сразу вопрос, а нахуя эта перегрузка нужна, вот серьезно я не могу понять, в теории даже обьяснить не смогли, какой-то пуньк, среньк, кхм, удобно поэтому используйте, но а где использовать, как влияет на память и прочее не указано.

жду ваши ответы, заранее пасибо)
647 2790157
>>790148
Все просто, если не понимаешь зачем какой-то инструмент нужен - не используй его.
648 2790172
>>790157
Хороший совет

Но без рофлов, зачем он нужен?

Я зашел на гитхаб, посмотреть на код людей, и только 2 - 3 использовали перегрузку =, и все.

Хочется более детально разобраться, а информации ноль, только примеры и на этом все
649 2790173
>>790148
Никак это на память не влияет, это тупо механизм добавления сахара, тут не может быть глубокого смысла. Фича практически бесполезная, нужна только в laba1.cpp, чтобы реализовать сложение матриц с перегрузкой операций, сдать преподу и забыть
650 2790175
>>790173

То есть если скипну, ничего важного не потеряю?

Потом уже вернусь, может и найду где нужна перегрузка.
651 2790176
>>790175
Да. Только там и учить почти нечего.
image.png123 Кб, 1513x686
652 2790179
>>790176
и это еще не весь материал по перегрузке, общая сумма всех страниц будет около 250+

вода да и только
653 2790201
>>790148

> И собственно сразу вопрос, а нахуя эта перегрузка нужна


Ты пишешь класс который будет представлять из себя вектор из 3 флоатов
class vec3f {float x; float y; float z;};

Понятное дело, что ты хотел бы делать что то подобное
vec3f p1; vec3f p2;
vec3f p3 = p1 + p2;
vec3f p4 = p1 * p2;
и тд

Если ты был в какой то жабе, пришлось бы писать что то подобное

vec3f p3 = vec3f::product(vec3f::sum(p1, p2), p4);
и тому подобное
654 2790204
>>790201
ООП тебе нахуя?
auto p3 = p1.add(p2).mul(p4);
655 2790208
>>790204
auto p3 = p1.add(p2.mul(p5.add(vec3f{0.f}))).mul(p4);
Чтобы примерно такого не делать и писать как человек
656 2790212
>>790208
Всё просто и понятно без бесполезной перегрузки.
657 2790214
>>790212
как скажешь
658 2790297
Сап аноны

Изучаю новую тему, а именно шаблоны.

И собственно сразу вопрос, а нахуя эти шаблоны нужны, вот серьезно я не могу понять, в теории даже обьяснить не смогли, какой-то пуньк, среньк, кхм, удобно поэтому используйте, но а где использовать, как влияет на память и прочее не указано.

жду ваши ответы, заранее пасибо)
659 2790300
>>788871
Да. Что такое функтор?
660 2790334
>>790297
На память влияет положительно. Я вот пока не начал использовать шаблоны, часто забывал куда положил таблетки или очки. Как начел использовать шаблоны, память сразу улучшилась.
661 2790369
>>790334
а у меня еще от шаблонов хуй вырос на 2 сантиметра. только я им все равно не пользуюсь - на крестах программирую!
662 2790432
Как для таргета спрятать юср инклюде из инклюдпаса?
663 2790465
>>790432
положить рядом с ним файл с таким же именем и одной строчкой #error "POSHEL NAHUI"
664 2790472
>>790212
Молодой человек, вам в джаву.
или в психиатрическую клинику, если продолжите настаивать
665 2790601
>>790297
Напиши простейшую программу. На вход функция принимает значение. Если это значение тривильное (int, double, char и т.д.), в консоль выведи "trivial". Если это класс (например std::string, std::vector), в консоль выведи "class". У тебя есть 30 минут на размышления о никчемности своей жизни.
666 2790617
>>790601
скуф спок это типо рофел
667 2790631
>>790617
Обосрался - притворись троллем.
668 2790640
>>790601
Так студ из тривиал фундаменталтайп? Или такого не существует?
669 2790641
>>790601
А где-то кроме твоих маняфантазий это нужно?
670 2790644
>>790641
Люди библтотеки пишут. Оптимизируют код в зависимости от разных compile-time условий, в том числе тривиальный тип или нет.
671 2790650
>>790175
Частенько нужна перегрузка круглых скобок, потому что лямбды и шаблоны. Остальное нахуй не нужно действительно, если ты не задрот. Но плюсы то как раз для задротов и это они себе фич накидали, а такие вот додики вроде тебя сидят гадают а нахуй это нужно. Ну в общем всё на своих местах
672 2790656
>>790644
Эти люди сейчас с нами? В этой комнате?
673 2790670
>>790465
Ну ты пряник, это то ясное дело, я же спрашивая как это сделать через систему сборки, не вмешиваясь в системные директории.
Сагать не буду, но нпхуй ты послан.
674 2790692
>>790656
В спальне твоей мамки.
675 2790704
А как реализовать дерево? У него же хранится указатель на голову. Но как понять голова заполнена значением или нет? Не проверять же при каждой вставке голову на nullptr. Тогда я подумал, что можно завести отдельный метод start(), которым нужно вставить самый первый элемент в дерево, проинициализировав голову, а последующие вставлять в дерево методоv insert(). Но в std::set все элементы, и первый и последующие, вставляется методом insert. Как так?
Screenshot20230801182427.png92 Кб, 989x507
676 2790720
Как мне собрать свое ядро ОС? Руками собирается, а симейк собрать не может. На скрине сборка симейком и ошибки. Вот так руками сборка работает:

gcc -c -m32 kernel.cpp -ffreestanding -fno-exceptions -fno-rtti
nasm -f elf32 boot.asm -o boot.o
ld boot.o kernel.o -T linker.ld -o kernel
Screenshot20230801185243.png134 Кб, 1157x789
677 2790746
>>790720
Так тоже не работает
678 2790752
>>790704
Это трололо?
Screenshot20230801190824.png257 Кб, 1753x762
679 2790754
>>790746
Как исправить ошибку, которая в консоли?
680 2790756
>>790754
Use make, Luke.
681 2790761
>>790756
>>790754
Руками линкуется, а симейком нет

ld display.cpp.o kernel.cpp.o libboot.a -T linker.ld -o kernel
682 2790788
>>790720
>>790754
Прчему асм, где с?
С чего ты взял что насм, а не гасм?
насм ставить отдельно надо, он в гцц не входит, а гасм входит, но вкючается просто асм.
Какое это ядро спп 17 требует?
683 2790803
>>790788
NASM у меня установлен
684 2790839
Подскажите пожалуйста, как я понимаю, статическое связывание это когда я пишу
Person p;
p.print();
?
А вот это динамическое
Person* p;
p.print();
685 2790848
Как в ubuntu поставить с++ 20 (с++ 12). В vscode отображается с++ 17, а когда пишу g++ --version мне показывает с++ 11.х.х.х
686 2790862
>>790839
Нет, это вообще не то.
687 2790892
>>790848
Ты устанавливаешь не C++, а компилятор. Поставь сначала компиляиор поновее, а если что, убуниу обнови. При компиляции в зависимосьи от компилятора надо прописать -std=c++20
688 2791017
>>790720
Ну так руками и собирай - make или autotools.
689 2791128
Достаточно виртуальной машины для изучения программирования на linux?
690 2791136
>>791128
Достаточно.
Возможно, даже WSL достаточно, но я не осмелюсь сказать так
691 2791139
>>791136
Спасибо
692 2791160
>>790601
Так программу или функцию?
Если программу, то в каком виде она принимает зночение, в виде строки чтоли?
Если функция, то обчные прегрузки и никакие шаблоны на хуй не нужны.
693 2791162
>>791160
Функция принимает любое значение любого типа, в консоль выводит либо "trivial", либо "class". Всё.
694 2791164
>>791162
Функции так не умеют
695 2791167
>>791164
А ты смешной
696 2791173
>>791162
Если что, шаблон функции это не функция. Для каждого набора параметров шаблона канпилятором канпилируется отдельное тело функции. Ты же просишь просто функцию, которая принимает что угодно. Куча перегруженных функций в этом плане, ни чем не отличаются от шаблона
697 2791179
>>791173
Я про функцию в смысле интерфейса. У тебя есть f и ты можешь использовать () для ее вызова. Как там внутри реализовано никого ебать не должно. Ты же когда пользуешься функцией из сторонней библиотека не подозреваешь, шаблон она или нет.
698 2791181
За что вы любите кресты? Лично я за const-замкнутость и за мощность шаблонов (пусть иногда это и выходит боком)
699 2791201
>>791181

>const-замкнутость


ху? (кто?)
700 2791206
>>791201
Константный объект нельзя изменить неконстантными методами. Конечно можно через const_cast, но это уже специально, так что не считается
701 2791208
>>791179
Я когда прльзуюсь функцией из стороней библиотеки всегда знаю, шаблон она или нет. Точнее, она всегда не шаблон. Потому что функция и шаблон функции это разные понятия.

>Я про функцию в смысле интерфейса


Мне по хуй глубоко про что ты, научись четко формулировать мысли
702 2791211
>>791206

>можно через


mutable, &&
703 2791217
>>791181

С моей точки зрения как новичка без коммерческого опыта:

1. Нет абстрактных прослоек, можно проследить путь от машинного кода до высокоуровневых сущностей. То есть, например, у меня есть string, и круто видеть как он реализован с помощью более мелких сишных деталей, типо массива char и указателей. В отличие от string в джаваскрипте, где он просто тебе дан и все.
2. Свобода в реализации, можно писать в безопасном стиле как Java, обращаясь к контейнерам методом at(), можно в быстром стиле с помощью оператора []. В расте все объекты всегда муваются и это вшито в стандарт языка, в плюсах мы пишем конструкторы как нам угодно, может хоть в копирующем мувать, а в перемещающем копировать, и никто нас не остановит от этого безумия.
3. Быстродействие, скорость, отсутствие такой приблуды для идиотов как сборщик мусора, смартпоинтеры одно удовольствие использовать.
4. Большая кодовая база, огромное комьюнити, постоянная поддержка и улучшение языка (концепты, рэнджи, корутины).
5. Очень много годноты написано на крестах (операционные системы, игровые движки и сами игры, графические и видеоредакторы, ffmpeg, системы машинного зрения, браузеры), которую интересно изучить. С WinApi также удобнее работать через кресты или си. Конечно на синтаксис и семантику языка это никак не влияет, но создает положительное впечатление и дополнительную мотивацию при изучении языка.
704 2791220
>>791211
Это всё хаки. Имелось в виду, что без специального вмешательства просто так ты константный объект не поменяешь. Конечно, можно изъебнуться, но если не изъебываться, это таки сокращает количество непреднамеренных ошибок.

> &&


А вот это подробнее. Что имел в виду?
705 2791222
>>791220

> А вот это подробнее. Что имел в виду?


Это квалификатор метода как const, он означает, что метод могут вызывать только r-value объедки.
706 2791234
>>791222
Я знаю что это, просто не понимаю, как это поможет изменить константный объект.
707 2791242
>>791206
Нууууу, как тебе сказать... по теории нельзя, на практике можно
Там еще и недавно рейнджы что то поломали

Вот чем чем, а const никогда не был сильной стороной плюсов
да и чтобы он хоть как то нормально заработал, нужно как в расте, всё изначально конст делать, а если хочешь что то поменять, то явно указываешь что он mutable
708 2791246
>>791242

> Нууууу, как тебе сказать... по теории нельзя, на практике можно


Ну пример покажи, как оно работает то.
709 2791248
>>791234
Хз, видимо он написал хуйню. Потому что я проверил, и у константный объекта нельзя вызвать неконстантный метод с &&, даже после std::move
710 2791250
>>791248
Потому что после std::move тип ссылки будет не T&&, а const T&&. Для изменения таких объектов нужно к методу дописывать соответственно const &&
711 2791255
>>791250

> Для изменения таких объектов


Упс, оговорочка. Для обращения к таким объектам, скорее.
712 2791256
>>791250
То есть без const_cast никак.
713 2791262
>>791248
Да я хуйню написал, счс проверил. Я думол, что временные объекты константны, а по ходу, константен не сам объект, а только ссылка, которую подсовывает вместо такого объекта. Проясню, что я имел в виду:

#include <iostream>

struct SomeClass
{ int someMember; };

const SomeClass& SomeFunc(SomeClass&& someInstance, int value)
{
someInstance.someMember = value;
return someInstance;
}

int main()
{
//вот это сработает
std::cout << SomeFunc(SomeClass{11}, 22).someMember << std::endl;

const SomeClass someInstace {33};
//а вот это уже нет
std::cout << SomeFunc(someInstace, 44).someMember << std::endl;

return 0;
}
714 2791277
>>791262

> std::cout << SomeFunc(someInstace, 44).someMember << std::endl;



Даже если написать
std::cout << SomeFunc(std::move(someInstace), 44).someMember << std::endl;
все равно не сработает, потому что мы константный объект принимает по неконстантной ссылке, тут явный const_cast нужен.

> что временные объекты константны


Тогда как мы бы их мували?
715 2791278
>>791262

>которую подсовывает вместо


которую подсовывает нам компилятор
716 2791280
>>791277

>Тогда как мы бы их мували?


Вот и я не понимал, как токое возможно, я думал что мувание это чит какойта ебаный
image.png51 Кб, 546x516
717 2791340
>>790148

>а нахуя эта перегрузка нужна


Например, чтобы печатать свой тип в cout, перезагрузив <<. Или посмотри на скрине, как SlateUI сделан в анриле - там DSL для декларативного описания гуя сделан через операторы. Еще немаловажная особенность операторов - их можно вызывать без указания неймспейса, это бывает нужно для всякой темплейтной магии.
718 2791423
>>749876

>Без либ никак


А почему никак? Просто реализуешь всё с нуля и погнал
719 2791433
>>749876
А либы, получается, на каком-то волшебстве написаны
image.png24 Кб, 623x319
720 2791439
Подскажите, есть ли какой-то механизм стандартный в плюсах (не нативный), чтобы можно было извне послать потоку что-то, чтобы там исключение сгенерилось, чтобы примерно то что на картинке можно было штатно завершить?
721 2791616
>>791439
Плюсовая обертка потоков вообще нищая, но ты можешь попробовать джойн токен, требует спп20.
image.png827 Кб, 1000x582
722 2791668
>>791616
Гуглится только какаято дичь про конкатенацию строк. Как по английски пишется?
723 2791745
>>791668
Вообще ты идешь не тем путем, хотеть сделать все средствами стд - удел скриптомакак что тут в треде срут. Подумай чутка и напиши свою реализацию, вопрос то не сложный.
std:jthread
724 2791792
>>791439
Нет таких механизмов, да и вообще это говнокод. Это где у вас так принято исключения кидать на штатную ситуацию? И ты вопрос конкретнее задавай, потому что если сокеты, то есть асио и там что ты хочешь сделать - можно по-нормальному реализовать через контекст
sage 725 2791799
>>791439
std::atomic<bool> оберни через std::ref и подай в функцию аргументом.

Можешь чекать эту переменную в условии while. Чё по скорости будет не ебу.
sage 726 2791806
>>791439
>>791799
А, я тупой. Исключения - для исключительных ситуаций. Чел выше прав, а сажу я не зря оставил.
727 2791815
Джаваодебилевший исключительноголовый хард трай но без кэтча петух в треде. Всем перезаряжать, отстрелим ему чонить
728 2791830
Вы хотя бы понимаете, почему в плюсах переполнение интов не кидает исключение? Потому что полвека назад в pdp-11 не оказалось таких инструкций.
729 2791834
>>791830

>Вы хотя бы понимаете, почему в плюсах переполнение интов не кидает исключение?


Потому что много чести кидать кита на берег, когда одна планктонина чихнула. Жирно.
730 2791836
>>791830
Ага, именно поэтому. Тебя кто до этого надоумил? Сам бы ты вряд ли догадался. Кстати объясни ка еще почему переполнение это исключительная ситуация?
731 2791840
>>791830
2147483647 + 1 = -2147483648
И не ебёт.
732 2791872
>>791830

>Потому что полвека назад в pdp-11 не оказалось таких инструкций.


Каких именно инструкций? Overflow флаг там есть, лови переполнение на здоровье, если надо.
733 2791918
>>791872
Проверять флажок переполнения на каждое сложение слишком жирно. Нужен был бесплатный способ, как в мипсе.
734 2791941
Что-то я совсем не понимаю. Есть виртуальный чистый метод в классе SimpleScreenObject(пик1), он приватный и у него нет реализации. Есть другой класс, ScreenObject(пик2), который наследует от него и от этого ScreenObject'а уже наследуют многие другие классы. Вот например класс Panel(пик3), наследует от ScreenObject и при этом перезаписывает наследуемый метод. Вопрос.
Как он его так смог засунуть в public, когда он был private? И какого хуя вообще происходит, он почти нигде не переопределяется, но при этом он вызывается в SimpleScreenObject, НЕ ИМЕЯ РЕАЛИЗАЦИИ, то есть он просто крашнет, например здесь, в методе класса ScreenObject(пик5)

UPD: Вы запостили слишком много файлов
735 2791942
>>791941

>при этом он вызывается в SimpleScreenObject


при этом он вызывается в SimpleScreenObject(пик4)
фикс

пик 1 - пик4
пик 2 - пик5
736 2791948
>>791941
>>791942
Кстати в ScreenObject он вообще не переопределяется никак.
Все эти файлы из исходников Far Manager
Вот конкретные файлы:
SimpleScreenObject/ScreenObject
https://github.com/FarGroup/FarManager/blob/master/far/scrobj.cpp
https://github.com/FarGroup/FarManager/blob/master/far/scrobj.hpp
Panel
https://github.com/FarGroup/FarManager/blob/master/far/panel.hpp

А ещё он есть в другом классе, наследуемом от Panel, И УЖЕ В PRIVATE
https://github.com/FarGroup/FarManager/blob/master/far/filelist.hpp#L243
image.png18 Кб, 367x265
737 2791954
Если функция принимает const ref, то можно подать и rvalue. А если я передам его в конструктор и сохраню, на что оно указывать будет, это нормально?
738 2791980
>>791954
Скорее всего тупо скопируется
739 2791981
>>791954
Const ref продлевает время жизни.
740 2792018
>>791980

>скопируется


Непонятно, куда? Особенно если вместо ссылки на int будет ссылка на большой тип.

>>791981
Даже если я в функции создам объект A на куче и верну указатель на него?
741 2792031
>>791830

> Вы хотя бы понимаете, почему в плюсах переполнение интов не кидает исключение?


То есть на каждый инкремент надо проверять, не переполнился ли инт? Съеби-ка нахуй обратно в сишарп-тред.
742 2792033
>>791954

> А если я передам его в конструктор и сохраню


Куда сохранишь? В файл? В базу данных? Фотографию сделаешь на память?

> это нормально?


Нет, не нормально, что ты базу не учишь, а уже вопросы какие-то задаешь. Про ссылки, про правила их инициализации, про продление жизни временных объектов.
743 2792035
>>792031
Будто в сишарпе есть проверка на переполнение.
744 2792074
>>791954

>А если я передам его в конструктор и сохраню, на что оно указывать будет


Будет указывать на объект, который ты передал. Rvalue просто показывает, что ты можешь работать с объектом определенным образом. Т.е. если есть конструктор копирования и перемещающий, то если ты передаешь rvalue, будет использован move конструктор. Тут нет никакой магии, физически это тот же указатель, если не вдаваться в детали.
745 2792077
>>792035
Ты не поверишь...
746 2792090
Аноны, как собрать луа вместе с проектом?
Я просто закинул исходники и хедеры в проект и одни ошибки линковки
747 2792444
>>776766
Мне удобней, когда тип слева. Еще бы запись массивов изменить, чтобы объявлялись вот так - int[10] arr. Тип слева это логично, потому шта сначала идет более общая сущность как множество значений, а потом конкретная в виде одного определенного значения. А еще левее можно поставить концепт, как еще более общую сущность.
748 2792475
>>791941
>>791942
>>791948
Как я понял, мне тут не ответят. Где задавать вопросы на подобную тематику?
749 2792481
>>792475
Спрашивай здесь. Молись, чтобы ответили.
750 2792483
>>792475
Я до вечера постараюсь посмотреть
751 2792484
>>792475
Конечно не ответят, а ты что думал? Тут только могут на стандарты дрочить и категории выражений, тут ни у кого ни строчки кода в каком-либо проекте, кроме laba1.cpp
752 2792538
>>792475

> Где задавать вопросы на подобную тематику?


В гугле https://root.cern/TaligentDocs/TaligentOnline/DocumentRoot/1.0/Docs/books/WM/WM_132.html#:~:text=C%2B%2B%20has%20access%20control%2C%20but,from%20within%20the%20base%20class.

>>791941

> И какого хуя вообще происходит, он почти нигде не переопределяется, но при этом он вызывается в SimpleScreenObject, НЕ ИМЕЯ РЕАЛИЗАЦИИ


Это абсолютно легально. Объекта SimpleScreenObject у тебя никогда не будет, потому что класс абстрактный, то есть его наследник должен обязательно все методы переопределить (ну или он тоже будет абстрактным и уже его наследник должен будет все оставшиеся методы переопределить и т.д.)
Чистые виртуальные функции нельзя вызывать только в конструкторе, потому что тогда PVC будет. В остальных случаях (если я всё правильно помню) — можно.
Насколько я вижу, класс ScreenObject тоже абстрактный, поэтому в том, что в нём вызывается чисто виртуальная функция, нет ничего плохого.
753 2792728
>>792538

>Насколько я вижу, класс ScreenObject тоже абстрактный


Он абстрактный, потому что унаследовал полностью абстрактный метод и не реализовал его? Если так, то спасибо, все понятно!
754 2792775
Сап

23 лвл, работаю на хуевой работе, но есть лишнее время для изучения какого-то направления.

Подскажите, аноны, сколько времени уйдет на изучения плюсов, могу учиться по 4 часа в день, но интересно узнать сколько конкретно в часах уйдет на изучения плюсов.

База кое-какая есть, могу начать изучать ооп, а все остальное подтянется со времен.

Буду признателен за ответ
755 2792836
>>792775
Изучать что бы что?
756 2792837
>>792775

>но интересно узнать сколько конкретно в часах уйдет на изучения плюсов.


Для хорошего знания не меньше 10000 часов.
https://www.directive.com/blog/what-is-the-10-000-hour-rule-and-does-it-work.html
757 2792843
>>792775
Вся жизнь уйдет, но кроме плюсов надо знать кьют, линух, базы данных, и зачастую алгоритмы. Если не западно дрочить литкод, можешь попытаться вкатится.
758 2792969
>>792837
>>792843

ладно, я некорректно поставил вопрос.

именно, сколько времени уйдет на изучения плюсов, чтобы вкатиться на джуна?
759 2792978
>>792969
и к этом же.

сколько вы времени потратили на плюсы, что знаете и есть ли работа?
760 2792994
>>792978

> сколько вы времени потратили на плюсы


Больше 5 лет.

> что знаете


Сложно оценить, что знаешь. Наверное, основные фичи до 20 стандарта включительно, кроме корутин (они мне кажутся какими-то всратыми).

> есть ли работа


Не на плюсах.
761 2793066
>>792994

сколько времени уделяешь на плюсы в неделю?

я слышал что порог вхождения на плюсы высокий, но не настолько же, как же так, анон, за 5 лет писанины на плюсах тебя так и не взяли на работку? или ты даже и не искал работу, просто как хобби?
image.png58 Кб, 560x112
762 2793098
>>793066

> сколько времени уделяешь на плюсы в неделю?


Не отслеживаю. Могу всё свободное время этому уделить, а могу за весь день и не притронуться ни разу. Если взять среднее арифметическое, то наверное час-два в день.

> так и не взяли на работку


Не хочу писать какую-то парашу на Qt.

> просто как хобби?


Да, просто люблю этот язык.
Наверное, только в нём может возникнуть такая ситуация, когда человек не может спокойно написать конструктор для класса, хранящего две строки https://youtu.be/PNRju6_yn3o
Наверное, только в нём можно сделать пикрил. Это оператор присваивания, который работает в обратную сторону
763 2793145
>>792969
Ты уже слишком старый для этого, и явно обчитался инфоцыганщины и не понимаешь, что тебе нужно. Плюсы уже не для тебя брат, я без негатива говорю, ты просто время проебешь
764 2793147
>>793098
Клёвый доклад. Накинь пж ещё что нить такое.
алсо конечное решение было мне будто известно с лекций, а так тоже согласен что второй вариант самый адекватный
765 2793175
>>793145
анонам, мне 23, вся жизнь впереди, я просто не уверен, что за год изучения плюсов найду РАБотку
766 2793181
>>793175

>мне 23


О том и речь, ты старый и только время потеряешь.
16850494795820.png125 Кб, 349x358
767 2793189
>>793175
За какой нахуй год блять? Это что шутка? Ты понимаешь что минимальное требование на плюсового джуна это топовый тех вуз? Это минимальное. сука. требование. Дальше начинаются вопросы про то что ты из этого вуза смог вытащить, ну в зависимости от твоей прикладухи, это может быть, например, сетевой стек, знания линукса (нет, это не про юникс порн и генту в десктоп тредах), какие-то познания в компиляторах, мб немного математики - и это самое наипростейшее что может встретиться. Заметь мы про язык и его основные технологии даже и не начали говорить, хоть сейчас время останови и дай тебе сто лет, при приеме на работу джуна не будут воспринимать, что он знает плюсы, это просто смешно, сначала посмотрят на твой бекграунд и кто ты вообще
768 2793383
>>793189

>при приеме на работу джуна не будут воспринимать, что он знает плюсы, это просто смешно, сначала посмотрят на твой бекграунд и кто ты вообще


Это не приём на работу, а буквально шлюха с аватарки так выбирает себе ёбыря: "смотрят на твой бекграунд и кто ты вообще"
изображение.png46 Кб, 658x707
769 2793509
>>790752
Все вы блядь умные, когда ответ знаете заранее.
>>790704
Я начал думать над тем, а не начать ли алгоритм с проверки наличия самих данных в ноде. Но все время сбивало с толку, что если нода nullptr, то обращение к ней по ее полю будет UB. И тут меня как озарило, а почему бы не проверять саму ноду на nullptr. Если nullptr, то аллоцировать новую ноду с данными, если нет - сравнить данные и получить в зависимости от сравнения указатель либо на правую либо на левую ноду, после чего с этим указателем повторить алгоритм. И начать такую проверку можно прямо с голову. И вроде получается такое простое и чистое решение, и не понимаешь, почему раньше до него не дошел.
На пике - говнокод метода insert() прошлой попытки (метод работает только если голова не пустая).
770 2793939
>>793509
кровь из глаз течет
771 2794182
>>793509
А как ты хранишь лефт и Райт ноду? По референсу что ли?
772 2794308
>>793939
Еще более старый код дерева к сожалению я удалил, ты бы видел как я там локальные объекты возвращал по ссылке из функции.
>>794182
По указателю. А как по ссылке хранить, она же должна быть сразу проинициализирована и ее менять нельзя.
773 2794320
>>794308
Бля я реально не понимаю зачем ты от левого/правого берешь. Можешь код структуры всей дать?
774 2794321
>>794320
Берешь птр птр.
звёздочки сожраны.
изображение.png50 Кб, 932x562
775 2794325
776 2794371
>>793383
У тебя может с этого гореть жопа и ты можешь всячески изъебываться называя это как тебе хочется, но реальность такова. Без института и хорошего образования, без каких-то выделяющих тебя среди остальных людей достижений на профессиональном поприще нехуй тебе лезть туда где люди пишут на плюсах. Особенно если ты 23 летний рнн дебил который вчера проснулся и понял что пора бы и за ум взяться. Это просто курам на смех все эти потуги
777 2794390
>>794325
https://onlinegdb.com/IiLYtm9Dq
Накидал простое дерево, че доделать?
я не буду писать КЧ!
778 2794485
>>794390
https://onlinegdb.com/2yrxNbwt2
я тож. зачем я это сделол?
779 2794530
>>794485
ну ты и извращенец я точно не джаву читаю?
16910536675920.png508 Кб, 1101x959
780 2794549
Поясните за текстовый режим открытия файлов. Вот бинарный я понимаю, байты и байты, это логично. Зачем отдельный режим для текста? Давайте сделаем отдельный режим для видеофайлов с осьминогами и лолями.
781 2794551
>>794549
Сделай, кто мешает
782 2794560
>>794549
Ну например, в текстовом режиме переносы строк записываются такч как ос это требует
783 2794565
>>794549
Винда это кал.
784 2794689
>>794530
откуда я знаю что ты читаешь? у меня ооп и полиморфизм и вообще
785 2794753
>>794549
Потому что бинарный и текстовый это самые популярные форматы данных с которыми больше всего ОС и программисту приходится работать
786 2794778
>>794753
Белый и батон самые популярные виды хлеба.
787 2794792
>>794778
Аналогии не работают.
788 2794793
>>794778
Да, самые популярные. Чё дальше? Что сказать-то хотел?
789 2794795
>>794753

>это самые популярные форматы


Правильнее будет сказать, типов файлов всего два, текстовый и бинарный (всё остальное кроме текстового).
790 2794796
>>794795
текстовый и не текстовый
image.png488 Кб, 1024x768
791 2794798
>>794795

> типов файлов всего два


еще откровения будут?

Это не типов файлов два, а текст как самый популярный формат вынесен в отдельный вид обработки и остальное говно как бинарный.

Пиздец.
792 2794805
>>794798
а как популярность определяли? Опросом или голосованием?
793 2794823
>>794805
Ютуб опросом пердиксов на тверской. Блять что за вопрос? Понятно что ты дебил, но не настолько же
794 2794824
>>794805
А чё, тебя спросить должны были?
795 2794835
>>794823

>не настолько же


Ты не представляешь насколько
Просто формулировка "популярный формат файла" на редкость ебанутая.
796 2794907
Текстового формата не существует.
797 2794909
>>794835
В чем она ебанутая додик если процессора в основном с текстом и работает? Ты прежде чем предъявлять что-то подобное хотя бы какие то минимальные представления заимей. Тебя например не удивляет, что в языке даже отдельного примитива для работы с бинарными данными нет, а есть char который оо нихуя себе ascii символ? Ну то есть единица текста.
И вопрос ээ ыы слыште а че файлы на текст и бинарные разделили? -- это не на редкость ебанутая формулировка у зумира?
798 2794912
>>794907
Это тебя не существует
799 2794914
>>794912
Я всего лишь текст на мониторе.
800 2794949
>>794909

>процессора в основном с текстом и работает?


Чоооооооооооооооооооооо?

>минимальные представления заимей


Ну конечно, один ты умный, а все вокруг дураки ебаные.

>примитива для работы с бинарными данными нет, а есть char который оо нихуя себе ascii символ?


Че несешь, ты че, ебанутый чтоли?

>И вопрос ээ ыы слыште а че файлы на текст и бинарные разделили? -- это не на редкость ебанутая формулировка у зумира?


Очко чебе раздели пёс. Я говорил что формулировака "популярный формат файла" ебанутая.
801 2794986
>>794949
Ооо нихуя себе??? А когда я тебе скажу что весь интернет на http стоит ты вообще со стула упадешь? Не уверен что ты слышал про http, а то ты какой то вакуумный слегка, но это если что протокол для передачи гипертекста, ака "популярный"

Ну конкретно ты дурачок, не понятно зачем здесь сидишь и позоришься с каждым своим высером, просто съебись уже

Напиши функцию которая копирует какой-нибудь бинарный файл в буфер, например жипег, сохраняет его под другим именем и посмотри на свой же код, имбецил

Какая разница что ты там говоришь если всё какой то идиотский бред
802 2795020
Да, процессор на самом фундаментальном транзисторном уровне обрабптывает символы \r\n.
803 2795045
>>794986
Я не успеваю за полётом твоей фантазии. У тебя не последовательно мысли сформулированы.

>а если я тебе скажу


>сделай то сделай это


Иди на хуй просто, додик)
804 2795130
Оттабуировал вам за щеку, долбаебы.
805 2795182
>>794798
А зачем его выносить, это такой же поток байтов. Что мешает просто открыть файл и читать байтики.
806 2795225
>>795182
Ну смотри, тебе на ебало летит тугой поток мочи. Как ты понимаешь, что этот поток уже иссяк и нужно идти за добавкой в другое место?
807 2795260
>>794986

> что весь интернет на http стоит


Стример Медисон на WebSocket еще сидит
808 2795261
>>795225
Реальный вопрос с собеседования кстати
809 2795283
>>795020
Это только если это виндоус процессор, лол кек.
изображение.png8 Кб, 460x100
810 2795452
Что значит target msvc? Я хотел альтернативный компилятор, который к visual stiduo никак не привязан. Мне minGW качать?
811 2795474
>>795452
А ты тоже думал, что Clang - полноценный самостоятельный компилятор?))))00
812 2795498
>>795474
Дадад, думал шланг компилятор. Мне нужен компилятор под винду, чтобы компилировать в студии, а потом компилятором, и сравнивать результаты и сообщения об ошибках.
813 2795507
Не рекомендую ИТТ анонам знакомиться с программами для реверса и дизассемблинга программ, есть шанс впасть в депрессию от того, насколько вы дерьмо пишете.
814 2795544
>>795507
https://godbolt.org/z/DqrfWa

О П Т И М И З А Ц И Я

В
Е
К
Т
О
Р
И
З
А
Ц
И
Я
815 2795547
>>795507
Начинающий программист на плюсах думает, что он пишет хуйню.
Опытный это знает.
816 2795559
>>795544
Я не знаю ассемблер.
Что там происходит?
817 2795604
Можно ли как то увеличить размеры компонентов visual studio code (кнопки, панели, структуры проекта например) ?
818 2795636
>>795559
По-моему там шланг векторизовал факториал умноженный на 10
819 2795765
>>795544
Это игрушечный сайт. Я о программах по типу IDA, HIEW, HT, OllyDbg и тд.
820 2795887
>>765215
Переписал. Больше так хуёво не пиши, чел. Попробуй в /бэ/ потренироваться, что ли? Так за каждую ошибку изложения тебе полный рот ">пук"ов насуют. Будешь даже с горящим пердаком писать идеально чисто, ровно, и понятно, лишь бы оппонента позлить отсутствием изъянов.

>>764593

> Куда уж там всяким Stardew Valley, римворлдам, андертайлам, майнкрафтам и прочим Touhou, сейчас аноним с харкача вам расскажет, что есть смысл пилить в одиночку, а что нет.


Ты сам себе противоречишь, действительно. Ты описывал, что SDL не стоит брать, потому что нихуя полезного на этом не сделаешь. На контраргумент про сложность, ты ещё раз сказал, что НИХУЯ ПОЛЕЗНОГО. Упомянул Марио.

В одного стоит пилить игры только по типу Марио, да.
Да, я, аноним с харкача, сейчас расскажу, что есть смысл пилить в одиночку, а что нет.

Задумки у всех великие, но идеи ничего не стоят. Приведу цитату, что тот чел использовал, но полностью: "Исключения из некоторого правила подтверждают то, что это правило вообще говоря существует". Никто не пишет игры типа Майнкрафта в одиночку. Почему? Потому что это очень сложно. Не невозможно, да, но требует непомерных усилий.

Почему я, анон с мылача, могу указывать писать ли всем на SDL или взять что-либо пожирнее? Потому что если ты вообще спрашиваешь "А на чём мне писать?", то мотивации сделать следующий Майнкрафт в одиночку у тебя точно нет.

инб4, да я видел ниже ветку, не слепой.
Ну вот, было так сложно что ли? Я не так много высрал, но вроде бы чище.
821 2796786
Попытался реализовать CRTP, не подглядывая в гугл. На первом пике та реализация, где я сначала подумал, а нахуя какое-то наследование, у нас же есть специализации классов. И получилось вполне себе красиво и главное все работает, но нарушен принцип DRY из-за введения структур-тегов.
На втором пике я все-таки попытался использовать наследование, все работает, но пришлось использовать уродливую заглушку <int>.
Все, адекватных идей больше не осталось.
822 2796806
>>796786
Ты уверен, что на втором пике CRTP?
823 2797014
>>796806
Будто на первом кртп.
824 2797161
>>796786
Че эта мразь до кота доебалась? Вот сидишь себе чилишь, абсолютно никого не трогаешь и подскакивает какая то чертила сношать тебе мозг как будто так и нужно
825 2797185
Вся суть плюсов. Вместо создания работающего кода они вымучивают всякие crtp.
826 2797187
>>796786
Я хуй знает что такое CRTP, но выгледит пиздец как не логично. Почему sound не определять в классах Cat_tag и Raven_tag, а в Animal сделоть void sound() { T::sound(); } () либо T().sound() если она не статик, там по ситуации). Т.е. стротегия
827 2797196
>>797185
CRTP
@
SFINAE
@
RVO
@
RTTI
@
SIOF
@
NVI
@
COW
828 2797206
>>797196
IFNDR
NRVO
ZALUPA EXPRESSION
829 2797315
>>797187

> Почему sound не определять в классах Cat_tag и Raven_tag, а в Animal сделоть void sound() { T::sound();


Да, кстати, вполне неплохо.
830 2797394
>>797185
Так это же база, для тебя и синглтон это не процесс создания рабочего кода?
831 2797424
Зачем вообще нужен ваш CRTP? В каких случаях динамический полиморфизм это плохо?
832 2797440
>>797424
Для собеса. Я серьезно, компилятор оптимизирует виртуальные функции, инлайнит те из них, где тип можно в компайл-тайме определить, скорость получается больше, чем с CRTP.
833 2797444
>>797440
Базаришь? А тесты у тебя есть?
834 2797445
>>797424
enable_shared_from_this
835 2797447
>>797440

> компилятор оптимизирует


Но далеко не всегда

> скорость получается больше, чем с CRTP


Очень интересно как это возможно
836 2797460
>>797394
База - это if и goto.
837 2797468
>>797444
>>797447
Данные на 2013 год, так что я могу ошибаться.
838 2797507
>>797468
Ну ты выдал...
839 2797581
>>797507
Хорошо, что есть этот тред...
840 2797641
>>797460
Вайл
841 2797693
>>797641
Его можно выразить через иф и гото.
842 2797831
>>797161
У нее может быть гнездо гдето рядом
843 2797841
>>797641
>>797693
Как макнуть отрицателей goto мордой в их обосранные портки:
- break это goto
- но break выходит только из одного цикла, а если надо из двух и более?
- правильно, пользоваться нормальным goto без ограничений для даунов
)))
844 2797850
>>797841
Во многих языках у циклов просто метки можно делать и явно показывать из какого ты брикаешься
845 2797852
>>797841

> вложенные циклы


антипаттерн
846 2797867
>>797841

>а если надо


не надо
847 2797872
>>797841
Братишка, ну если ты эмбеддед и драйвера, то и спроса за goto с тебя нет.
А в продукты не надо такое тащить. Лучше подумать и избавиться от вложенности.
848 2797873
>>797841
а в какой ситуации может понадобиться выйти сразу из двух циклов?
849 2797897
>>797873
Никогда вложенных циклов не видел?
850 2797916
>>797897
видел, и за 20 лет ни разу сразу с двух сразу не выходил
sage 851 2797952
>>797852
Аетихуерн
852 2798032
>>797916
Ну так попробуй писать программы, в которых надо выполнять операций чуть больше, чем консоль рисовать.
853 2798104
>>798032
Пример приведи, пустозвон
854 2798202
>>798104
Простой поиск в двумерном массиве.
855 2798222
>>798202
чем return не устраивает?
856 2798230
>>798202
Н-мерный массив обходится одним циклом не бейте
857 2798233
>>798222
Не хочу каждую пробежку по массиву оформлять в отдельную функцию.
858 2798237
859 2798253
перекат сука где, у ебаной макаки даже каталог(по поиску) этот тред не отображает
860 2798258
в комитете новый перекат не утвердили. ещё на этот тред не все перекатились
image.png35 Кб, 740x721
861 2798265
>>798233
Какие на хуй отдельные функции, очнись ты обосрался
изображение.png65 Кб, 1919x511
862 2798267
>>795544
Чет орнул. 20 строк вместо 200 строк говна шланга.
863 2798269
>>798267
Это пиздец. современный шланг сгенерировал говно на 80 строк, да и еще юзает SSE регистры. Почему так?
864 2798270
>>798265
пчелик у тя массив скопировался
865 2798280
>>798269
Я не эксперт и не пытаюсь сейчас защитить clang, но ведь скорость работы не от количества инструкций зависит. Точнее, не только
866 2798281
>>798270
ваще по хуй
867 2798284
>>798280
здесь шланг видимо собрался максимально эффективно считать факториал от 109
image.png35 Кб, 610x747
868 2798290
>>798270
Ну лан, раз ты такой зануда, то я поправел
869 2798292
O ( n ^ 2 )
(
n
^
2
)
image.png49 Кб, 577x726
870 2798293
>>798270
Почему скопировался?
image.png52 Кб, 1066x612
871 2798294
>>798269
оптимизация
872 2798295
>>798290

>Какие на хуй отдельные функции


Ну вот у тебя функция find
image.png52 Кб, 1066x612
873 2798298
>>798295
и где ты там видиишь каждую пробежку по массиву в отдельной функции?
874 2798307
>>798298
Ты под пробежкой подразумеваешь один цикл for? Я имел в виду пробежку в двойном цикле.
875 2798312
>>798307
а как ты хочешь, в одной функции всю программу ебануть? Ты из любителей лапши?
image.png27 Кб, 592x480
876 2798327
>>798307
Вот тебе лапшекод
877 2798330
>>798327
Ебать дурак
878 2798334
>>798312
Для меня писать отдельную функцию на каждый двойной цикл (и вообще на все, что не вызывается более одного раза) - это перебор. Чем миллион микро функций лучше лапши?
879 2798337
>>798334
хз у соевичков щас так модно. еще лучше каждую функцию в отдельный файл перенести
image.png31 Кб, 667x414
880 2798363
881 2798364
>>798330
И что с того? Это противозаконно?
882 2798375
>>798337

> щас так модно


кисс уже очень давно модно
883 2798388
>>798364
Да, у нас на проекте запрещены эксепшены
884 2798399
первый пикрил создания динамического массива для стека.

второй пикрил добавления елементов.

третий удаление елемента из стека.

что не так, могу добавлять елементы, но когда пытаюсь удалить, то выдает ошибку

помогите
885 2798412
>>798399
Ну во первых, что такое z?
Во вторых, зачем ты пересоздаешь массив при удалении элемента?
Просто берешь последний элемент стека, вызываешь у него деструктор, указатель стека уменьшаешь на 1

В третьих

> выдает ошибку


В таких случаях прося помощь лучше писать какую конкретно ошибку выдает
886 2798426
>>798388

>Это противозаконно?


всмысле быть дураком

>Да, у нас на проекте запрещены эксепшены


Лично мне ваш обосанный проект не интересен. И то что у вас там что-то запрещено, не значит, что это плохо.
887 2798429
>>798399
на первом пике цикл не делоет ничего совсем
888 2798430
>>798399
на первом пике size побольше. ) это как-то слишком мало
image.png5 Кб, 189x222
889 2798431
>>798399
на втором пике
890 2798434
>>798399
А почему при добавлении, ты стек не ресайзишь, а просто записываешь в уже выделеный кусок памяти элемент, а при удалении элемента ты еще и размер стека уменьшаешь? Какова логика вообще? Я думаю, на третьем пике все что внутни if(z > 0){ ... } удолить к хуям и сделать просто z--;
891 2798619
>>798431
стало конечно лучше, да.
похуй что он пишет за границы массива. (size == 0 всегда, z = 0 < size -1)
892 2799054
>>798280
int это 32 битное число. Нахуя юзать 128 бит SSE регистры? Тем более, там вроде на переключение между обычными и векторными инструкциями нужно какое-то время.
893 2799145
>>799054
Ты ТОЧНО знаешь, что такое SSE регистры, почему они такие большие и зачем нужны?
894 2799206
>>799145
Мимо, ассемблер не знаю.
Это simd регистры, угадал?
895 2799222
Есть какой-то общепринятый способ добавить в проект визуал студии путь к папке с хедерами буста?
896 2799477
Гайз, а подскажите.
Вот стл контейнера берут шаблонным параметром аллокатор<Т>.
Но как они используют его для выделения памяти под узлы, если это узловой контейнер?
я пробовал посмотреть как устроен std::set. Не понял.
897 2800119
>>799145
Даже если не знаю, то гцц спокойно без них обходится.
898 2800186
>>800119
Расскажешь. GCC тоже может раскручивать циклы и векторизировать их, пусть он в этом случае этого и не сделал.
https://gcc.gnu.org/projects/tree-ssa/vectorization.html

> Даже если не знаю


Просто твои первые два предложения

> int это 32 битное число. Нахуя юзать 128 бит SSE регистры?


На фоне того, что из себя представляют SSE регистры, звучит очень смешно.
Наверное, всё же не надо говорить о том, чего не знаешь.
sage 899 2800238
>>800186
Уже писал как то об этом, повторюсь.
Сравнивал работу математических либ с ручной векиоризпцией ссе 2 4 и авх 2 и простой скалярной. Так вот с 03 на новых гцц разницы в производительности нет. Значит гцц сам все векторизирует как надо.
900 2800245
>>800238

> надеятся что компилятор сам там все заоптимизирует как нибудь


Оптимизм и отвага
901 2800257
>>800245
Экзактли
902 2800303
>>800245
Ну на компилятор всё же стоит полагаться. Всё таки к SSE вроде бы стандартного обращения нет, придётся либо через интринсики (для каждого компилятора + стандартную версию на всякий случай), либо через язык ассемблера, что, в общем-то, ни разу не удобнее.
Проще написать обычную версию и надеяться на то, что компилятор разрулит.
903 2800369
>>800303

>Всё таки к SSE вроде бы стандартного обращения нет


У gcc и clang есть vector extensions. У msvc - только интринсики.
https://gcc.gnu.org/onlinedocs/gcc/Vector-Extensions.html
904 2800371
>>800245

>Оптимизм и отвага


Они реально векторизацию хорошо пилят последние годы. Раньше, например, для float3 надо было делать отдельный вариант класса для стековых переменных, с выравниванием по 16 байт, иначе компилятор тупил и делал выгрузку в память из регистра, а теперь он в 90% случаев все через регистры разруливает.
905 2800552
На чем пишут современный дектоп?
906 2800553
>>800552
На крестпх, шарпе, жабе, жс, питоне, делфи. Зависит от задач.
907 2800555
>>800552
Смотря от задач

на плюсы идут:
- если другие альтернативы не устраивают
- при специфических требованиях
- при высоком энтузиазме автора проекта
908 2801147
>>800552
На электроне
909 2801333
Аноны, есть кто из ДС2? Куда можно прахраммисту на Qt податься (стаж 5 лет, но задачи в целом решал несложные)? Может кто какой-нибудь фидбек дать по питерским конторам?

Работу хочу сменить осенью, потихоньку начинаю ковырять хедхантер.
910 2801336
>>801333
На завод
911 2801385
>>801336
На заводе я уже работал, ничего против не имею, если завод нормальный.
912 2801394
>>801385
Бля братуха, ты откуда такой смешной взялся? Все знают что в рашке вакансии на плюсах это либо высокий грейд в бигтехе, либо заводы и нии. Какой еще фидбек по конторам дать? Ты ку ку
913 2801468
>>801394
Ну хуй знает. Я так HH смотрю, есть всякое на скромные 130-170к. Дохуя всякого микроконтроллерного при этом, что удивительно. То ли популярно, то ли просто народу нет, вот и висит.
914 2801479
>>801468

> 130-170к


Ну так заводы и нии. Там тебе по "результатам собеседования" предложат 100к, чай, печеньки и дружный коллектив
915 2801528
>>801479
интересные задачи забыл
916 2802203
как извлечь отдельно младшие и старшие 4 байта из числа (число 64 бит, то есть по 32 бита с каждой стороны)?
917 2802214
>>802203
uint64_t fullNumber = ...;
uint32_t low = fullNumber & 0xffffffff;
uint32_t high = fullNumber >> 32;
918 2802585
Ну ка погодите. Правильно ли я понимаю, что основной смысл корутин превратить cpu io ориентированное приложение в cpu bound, типа меньше переключений контекста для одного потока и быстрее всё работает?
919 2803451
Подскажите пожалуйста, есть ли для С++ документация как у java ? Например, все методы std::string.
920 2803454
>>803451
cppreference
921 2803657
>>802214
Для этого должен быть стандартный класс в Бусте
16386556370040.png1 Мб, 959x890
922 2803711
923 2803722
>>803711
Это реально?
изображение.png36 Кб, 1028x751
924 2803834
>>803711
>>803722

не поленился и нашёл этот реп

https://github.com/i-voted-for-trump/is-odd/tree/master
925 2805222
>>802585
Нет.
926 2805226
Почему std::cout - обьект, а не функция ?
927 2805235
>>805226
Чтобы можно было настраивать поведение вывода.
928 2805236
>>805226
Всмысле, почему? Такой дезайн у iostreams. Почему трава зелёная?
929 2805243
>>805226
Охуенно же, что 100500 объектов в глобальных переменных создаётся без участия main() рантаймом плюсов. Можно в них вообще всю логику писать, а функцию main() оставить пустой.
930 2805256
>>805226
А тебя ебет? С хуяли оно должно быть функцией?
В ос юникс есть 3 стандартных потока: поток ввода, поток вывода и поток ошибок.
Вот для них в плюсах есть 3 стандартных объекта потока: cin, cout и cerr.
931 2805330
2apscofsxgh31.webp64 Кб, 729x555
932 2805362
>>803711
И в чем не правы? Высокоуровневая легкочитаемая абстракция. Будь моя воля, весь код бы в такие обернул.
933 2805396
>>805362
Слава богам у таких беспросветных попущей нет ни воли ни слова.
934 2806715
>>805362
а где java ?
935 2806718
>>806715
Представь шарп, но в клоунском костюме.
image.png266 Кб, 741x496
936 2806726
>>806718

>Представь шарп, но в клоунском костюме.


Джава - это костюм бухгалтера в нарукавниках.
937 2808014
Что легче для вката C# или C++?
938 2808015
Что легче для вката C# или C++?
939 2808029
>>808014
Шарпы
940 2810102
>>748862 (OP)
Только что окончил школу, поступил в хороший вуз в топ 5 в рф точно есть. Решил в качестве изучаемого языка на первое время избрать плюсы, т.к. они на первом курсе будут. Начал читать книжку Липпмана из шапки, дошёл до указателей и главный вопрос на данный момент – как и для чего это применять? Наверное, мне стоит задачки какие-то решать по теме, так что вопрос к анонам: как и где лучше закреплять полученные знания о языке? Микро-задачи из книжки всё ещё не дают понимания, в каких ситуациях рассматриваемый предмет нужен.
sage 941 2810162
Еще один влезает в ойти не зная зачем и как. Я в твои годы знал половину си и пару васемблеров просто потому, что мне это было интересно.
942 2810173
>>810102
Пиши свои велосипеды из стандартной библиотеки
Разбирайся как там в кишочках все встроенно и почему именно так

Начни с какого нибудь вектора, затем все остальные структуры данных постепенно
Там и про итераторы, и про аллокаторы, и про мув семантики узнаешь предостаточно
943 2810178
Ну и не пытайся с первой попытки идеально написать, все равно не получится
Пиши чтобы хоть как то работало, потом улучшай
944 2810334
>>810162

>не зная зачем и как


Зная вообще-то. Погромистом хочу стать. Теперь вот хочу после питуна освоить низкоуровневый язык, потому что мне это больше импонирует.
Цели пойти работать сейчас нету, так что буду ещё года 2 неспешно изучать то, что больше нравится. Так говоришь ещё, будто ты в 18 лет был охуенным вундеркиндом, а я, начав вкат чуть позже, всё просрал.
>>810173
Попробую, сенкс
945 2810412
>>810162

> Я в твои годы знал половину си


А вторую половину выучить не осилил? Опять набегаторы-фантазёры из жс-треда, штоль?

Тут все знают, что Си на 98.5% учится ну максимум за неделю, потому что он прост как палка, остальные полтора процента это продвинутые фичи, которые узнаёшь во время непосредственно написания своего и чтения чужого кода.
946 2811292
>>810412
чет вспомнил как на первую олимпиаду в шкиле пришел еще не зная функций но зато умел дефайнить макросы..
947 2811299
>>810412
Вкатунишка, тут все кроме тебя знают что когда кто то говорит что знает язык нейм имеют ввиду как самый минимум его стандартную либу. В случае си тот чел наверное имел ввиду еще и posix с тех самых пор как юникс это ниша сишной параши. Потому что кукарекать я знаю такой то язык программирования и при этом без иронии иметь ввиду ключевые слова и синтаксический сахар могут разве что малолетние пердкисы с курсов
948 2811528
>>805235
>>805236
>>805243
>>805256
Наверное это обьект функции?
16923265780290[1].jpg218 Кб, 1280x720
949 2811538
Шарящий анон, расскажи мне плез, вот я вкатываюсь в такую тему как DSP, так как музыкант и очень хочицца поваять собственные VST плагинчики, есть у меня пару особых аналоговнет идеек которых думаю за несколько лет реализую, хотя бы просто лично для себя в мпервую очередь, для своих делов музыкальных. Ну так как у нас на территории РФ сфера музыкального софтостроя практически нулевая, куда я потом смогу со своими знаниями и опытом в частоности в DSP вкатиться, в каких сферах нужны люди со сзнанием цифровой обработки сигналов по мимо музыкальной у нас в стране, как я смогу монетизировать в будущем свои знания и опыт? Буду ли я пригоден на рынке труда в этой сфере в наших палестинах?
950 2811546
>>811528
Чего? Какой объект функции?
951 2811653
>>811538
Будешь востребован в нии и на заводах за соротыгу, сотыга потолок. Возможно сейчас самый простой вкат это что-то связанное с военкой (наверное и только кстати) и там возможно даже платят чуть получше. Но сам понимаешь почему так и куда твой труд пойдет дальше
952 2812583
>>811653

> куда твой труд пойдет дальше



Куда?
953 2812586
>>812583
Если ты из тех, для кого деньги не пахнут, можешь об этом не беспокоиться.
954 2812589
>>812586

> для кого деньги не пахнут



А для тех кого пахнут, то чем?
955 2812602
>>812589
И чё, чем пахнут то?
956 2812605
>>812602

Так я вот и интересуюсь, чем пахнут, самому интересно
957 2812703
>>812583
На войну, ты имбецил совсем чтоли? Полагаю все таки тебя даже на завод не возьмут
958 2813288
Если в С++ существуют "обьекты" как cout, как я могу создать свой "обьект" ?
959 2813289
>>812605
Ну и чем таки пахнут ?
960 2813320
>>813288
class MoyKlass
{
};

MoyClass MoyObyekt;
961 2813394
>>812703

> На войну



Как будто это что-то плохое. Что плохого в том, что результаты моего труда получат применение в военных действиях?
962 2813395
>>813289

> Ну и чем таки пахнут ?



Думаю будут точно так же пахнуть как и те деньги что у меня сейчас есть на счету, дисплеем телефона, когда приложения банка открываешь, смотришь на цифры и нюхаешь, точно так же кста пахнут как и телефон вообще без запущенных приложений
963 2813524
>>813394
Ну если ты рассуждаешь с эгоистичных позиций мол тебе похуй, то рассуди что это начало и конец твоей недолгой карьеры, тебя даже в рашке будут отменять, не говоря о том что в зарубежную контору с этой строчкой резюме ты не устроишься примерно никогда
964 2814995
Подскажите пожалуйста, как добавить библиотеку GLFW в Visual studio code? Там кажется что-то нужно в пути tasks.json добавить :/
965 2815000
>>813320
Вот так
class cout {
//Функции и переменные...
};

?
966 2815025
>>815000
Не путай классы и объекты.
967 2815558
>>814995
Лучше на cmake переведи свой проект, проще будет.
968 2815980
>>815025
Классы и есть объекты, это ты путаешь.
ООП называется потому что это Объектно=Классо Ориентированное Программирование. А твои созданные в риалтайме объекты это совсем другое, просто то же самое слово используется, вот ты и запутался.
969 2815983
>>815980
Ну ты и даун. Забуть о крестах, ты никогда не выучишь ничего сложнее JS.
970 2816248
>>805396
Сишник-скуфидон, ты? Я понимаю, что для программирования микроконтроллеров твоя прога может быть нечитаемым шедевром хакинга. Но в серьезных проектах код должен быть понятным и поддерживаемым.
971 2816352
Как принято обрабатывать ошибки в конструкторе? Допустим, создается объект, например, обертка над шейдером. Я конструктору передаю адрес файла шейдера. Файл может быть не найден, в шейдере может быть ошибка, могут быть не найдены атрибуты, юниформы и пр. И нельзя исключениями пользоваться. Но я же из конструктора не могу код ошибки вернуть. Как тогда, хранить в объекте шейдера флаг, успешно ли он создался? Или создать отдельную функцию create_shader, которая все ресурсы загрузит, обработает, и если все ок, то передаст уже в конструктор корректные данные. А если я потом наследовать буду, получается надо писать еще параллельную иерархию функций create_... ?
972 2816399
>>816352
- кидать эксепшен.
- принимать в коструктор аргумент с ссылкой/указателем на то, куда записывать статус успеха или ошибки.
- писать пустой конструктор и отдельно метод init(), который надо явно вызвать сразу после создания объекта.
973 2816512
>>816352
ну самая простая идея:
запрещать конструктор и писать свой метод make_shared_programm() который может вернуть ошибку
974 2816623
>>816352
Да, именно через функцию это и делают.
975 2817054
Что мне изучать, OpenGl или QT Creator ?
Если я не ошибаюсь, то знание в qt, требуют на работе.
976 2817115
>>817054

> Что мне изучать, мультиварку или рисовую крупу?


Начни с вилки
977 2817127
>>817115
Это не ответ, мразь.
978 2817141
>>817127
Ну ты спрашиваешь что тебе изучать выбирая между графическим движком и IDE.
В целом лучше начать с IDE, в блокноте код набирать будет неудобно.
979 2817290
>>817054
Начни с плюсов, а после уже поймешь какую хрень ты спросил

> Если я не ошибаюсь, то знание в qt, требуют на работе.


с этого предложения вобще выпал
980 2817365
Как выучить Boost ASIO? Вроде понятна работа сокетов и прочие фундаментальные вещи, но выстраивать архитектуру клиент-сервера вообще не могут. Вся эта асинхронщина, обработчики событий и сообщений - сложно для меня. Как во всем этом разобраться, что читать?
Моя цель - создание ботнета на boost asio.
981 2817382
>>817365
Поковыряйся как кутя работает, там в разы проще изначально подобное писать. А так и сам ковырял асио, но сам ничего сложного на ней не напишу.
982 2817486
>>816352
Создай поле в классе, в котором будет храниться ожидаемый и текущий статусы шейдера и коды/текст ошибок. Шейдер загружен, шейдер скомпилирован и т.д. В конструкторе такие штуки лучше не делать, там вообще желательно только поля инициализировать и все.
983 2817487
>>817054

>Что мне изучать, OpenGl или QT Creator ?


Если у тебя так стоит вопрос, то Qt. Трехмерную графику ты скорее всего не потянешь по интеллектуальным показателям.
984 2817494
>>816248
Неплохой пример, не ожидал от тебя.
Вообще про контроллеры полгостью согласен, но ты все равно не прав. Читаемый код не имеет ничего общего с тем говном выше.
985 2817688
>>817054
Бля нахуй тебе это надо брат? Ну ты че не пацан чтоли? Иди лучше с телочками в падики позависай, пивандоса пососи, в общем не занимайся ерундой всякой
986 2817694
>>817365
Что там тебе понятно? Куда ты лезешь блять чукча с продленки? Тебе не в асио разбираться надо а учебник для дошкольников почитать, где расскажут как в твоем альбоме для рисования начертить диаграммы.
Ботнет на асио у него цель ору нахуй, а страничку вконтакте ты уже взломал?
987 2817798
>>817694
Пожуй гавна с лапаты.
988 2817820
>>816352

> И нельзя исключениями пользоваться.


Религия не позволяет?
989 2817847
>>817820
Это уб
Лично Страуструп на лицо нассыт
990 2817942
>>817688
Я девушка.
991 2817976
>>817942
Бля нахуй тебе это надо, сестра? Ну ты че не телочка чтоли? Иди лучше с пацанами в падики позависай, пивандоса пососи, в общем не занимайся ерундой всякой
992 2817981
>>817976

>с пацанами в падики позависай, пивандоса пососи, в общем, занимайся ерундой всякой.


Занятие для глупых людей.
993 2818223
>>817981
То ли дело ботнеты писать
994 2818787
Если "некий" cout из пространства имен std именуется "обьектом", это означает, что все что находится внутри пространст имен называется обьектом ????
995 2818794
>>818787
Это месные шизоиды срут так, не обращай внимание.
.png13 Кб, 439x387
996 2818828
997 2818989
>>818787
Ты не понимаешь, что такое "глобальная переменная"?
998 2819056
>>818787
Чел может ты в другой тред пойдешь? Пиздец средний айкью проседает, стыдно
999 2819302
999
1000 2819304
1000
1001 2819306
-1
1002 2819662
>>817847
УБ кидать исключение из конструктора? на каком-то сайте читал, что так и делают. Какое же уебище эти плюсы, даже собственная фича - УБ
1003 2819686
Средний это 100 или 80 ?
1004 2819761
>>819662
Он троллит
1005 2819771
>>817847

> Лично Страуструп на лицо нассыт


Неправда, эксепшены в конструкторе одобрены священным писанием
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rc-throw
1006 2819808
Кто то из вас реал но соблюдает core guidelines?
Тут вообще есть люди кто его прочитал?
1007 2821435
>>817942
Лучше научись сосать хорошо. В жизни пригодится больше чем то, о чём ты здесь спрашиваешь.
1008 2821437
>>819808
Я начал читат. Думаю года через три осилю.
1009 2821577
>>813524

> не говоря о том что в зарубежную контору с этой строчкой резюме ты не устроишься примерно никогда



До-до-до, еще скажи даже если у чела будет семь пядей во лбу в этой, с глубокими познаниями в этой сфере

тупая ты укро-либераха
1010 2821925
При попытке подключить библиотеку GLFW в vscode на ubuntu, выдает ошибку о том что lglfw3dll.a несовместим. Этот файл я беру из glfw32WIN. Когда же беру файл из glfw64WIN происходит ошибка компиляции. Что бы это значило ?
1011 2821928
>>821925
Виндовую сборку на линуксе пытаешься юзать?
1012 2821939
>>821928
Там нету библиотеки для linux. Предлагают скомпилировать репозиторий из github :/
1013 2822010
>>821939
Значит, надо компилировать.
1014 2822083
>>821939

>Предлагают скомпилировать репозиторий из github :/


делов на пару минут, если ты конечно норм билд систему юзаешь (например симейк)
git modules оч удобно можно юзать

>>821925

> ubuntu


В apt разве не должен валяться пакет glfw/glfw3?
1015 2822114
>>822083
>>822010

Получилось с помощью cmake скомпилировать. Запустилось и на vscode и на code::blocks.
1016 2822173
Надо написать программу которая по строке в utf 8 проверит, что пароль подходит под требования: от 6 до 20 символов, есть спецсимволы. Еще бы потом уметь этот пароль захешировать. Будут ли проблемы из за кодировки? Вроде в юникоде один символ может не 1 байт занимать, поэтому даже обычный size уже не будет работать
1017 2822232
>>822173
Ладно, хуй с ним. Мне надо проверить, что юникод строка содержит только латиницу + цифры и спецсимволы
1019 2823307
Подскажите как правильно реализовать в симейке сборку с линковкой к шаред либам с относительными от экзешника путями.
1020 2823683
>>823307
Ну и де все наносеки? Бамп!
1021 2823839
Пацаны, кто-нибудь в Касперского собеседовался? Пригласили на техническое интервью (одно из), будут вызнавать глубины знаний C++. А я как бэ на Qt 5 лет и формы шлёпаю, и бекенд делаю.

Вот теперь думаю, начать освежать всякую поебень по крестам (понятия не имею, что могут спросить, сказал хрюше, что из описания вакансий вообще нихуя не понять, получил ответ, мол, это потому, что у нас проектов много и команд, на любой скилл так сказать), которая мне нахуй в текущей работе не упала или же забить хер.
1022 2823866
>>823839

>на Qt 5 лет и формы шлёпаю, и бекенд делаю.


В qt разве "глубины" С++ не применяются ?
1023 2823943
>>823866

>В qt разве "глубины" С++ не применяются ?


Хуй пойми. Непонятно, что вообще может быть "глубоким знанием С++". Если занюхивание всех пуков, выдаваемых комитетом по стандартизации, то я такой ебалой не страдаю, мне работу надо работать. Когда вижу что-то, что можно применить в своих проектах, применяю.

Конкретно у меня на стороне сервера работа с сеткой (общение со всякими устройствами), БДшкой и предоставление данных подключающимся клиентам. Никаких глубин C++ в этом нет. Была ещё многопоточность, но больше из-за умозрительных выводов. В какой-то момент подумал и выкинул нахуй, только БДшку пришлось подкрутить, чтобы шевелилась побыстрее.
1024 2823988
Сап плюсаны, шарперам сочувствую. Поясните, если не впадлу, в чём я не прав: можно кидать std::exception, а можно возвращать через std::variant и получать через get_if<exception>, по бенчмарку с квикбенча показывает, что чем больше шанс прокинутого эксепшена, тем variant профитнее по производительности. Какие подводные его использовать в таких целях inb4 переизобрёл std::expected?
1025 2823992
>>823988
Специально для шизиков, запрещающих использование эксепшенов в проекте.
1026 2824033
>>823992
Ноэксепт это база, шизы это кто с эксептами собирает.
1027 2824111
>>823988
Ну давай, верни std::variant из конструктора.
1028 2824128
>>822173
Пиши на джаваскрипте
1029 2824701
Как в cmakelist.txt указать что некий подкаталог содержит заголовки для включения через #include <>?
target_include_directories делает доступным включение через обычные кавычки.

PS Скачал вспомогательную либу с гитхаба (которая тоже на CMake) и хочу её поместить в подкаталог своего CMake проекта. А эта либа обращается к своим частям через инклуды с угловыми скобками.
1030 2824722
>>824701
#include <...> и #include "..." ничем не отличаются, должно и так и так работать
1031 2824733
>>824722
#include "" ищет в корне проекта где лежит исходник (если путь относительный),
#include <> в каталогах которые настроил в своей IDE
image.png10 Кб, 448x154
1032 2824743
>>824733
нет, это одно и тоже
просто правило хорошего тона, внутренние для проекта хэдера через "...", а системные\внешние зависимости через <...>
1033 2824746
>>824743
Мелкософт может для std такое допускает в качестве помощи, но в целом не одно и тоже. Я точно помню когда в студии на с++ писал, всякие левые либы инклудили через угловые скобки в опциях (или в настройках решения) указывали свлку этих либ.
А через кавычки он ищет по дефолту из текущего каталога или по абсолютному пути.
1034 2824757
>>824746
Приколы студии к плюсам не относятся
1037 2824784
>>824757
>>824762
>>824772

Ну и как это в cmake оформить, он же метасистемный должен такие вещи как-то разруливать.
1038 2824815
>>824784
Я симейк знаю плохо, но как мне кажется в папке с той либой что ты скачал должен быть симейк файл для инклюда. Или сделать его самому.
1039 2824861
Хочу использовать эту хуйню https://github.com/monero-ecosystem/monero-cpp#using-this-library-in-your-project
Я так понимаю, что просто прописать инклуды не прокатит, потому что там какие то зависимости есть. тогда я пошел по, как показалось, более простому пути. По инструкции сборки либы. Сделал все как надо, но у меня падает сборка на этапе линковки monero-project. Ругается на boost filesystem unresolved ... Че делать? У меня если че установлен libboost-all-dev
1040 2824994
>>824861
Короче ебал рот этой хуйни и плюсов тоже. Собралось под винду без проблем. Хуй знает че на линукксе не работает
1041 2824998
>>824994
Но вообще я охуел. У меня впервые собралось на винде проще чем на линуксе
1042 2825043
>>824998
Времена меняются
15556081853260.jpg111 Кб, 1003x1024
1043 2825046
>>824861

>по более простому пути


>инструкции сборки либы

1044 2825049
>>825043
Я теперь не понял как мне в проект все инклуди подтянуть
1045 2825085
>>825049
Я спиздил кусок cmake из проекта. Но теперь мне надо vcpkg притянуть. СУУУУУУУУУУУУУКА. Работа с зависимостями это худшее, что есть в плюсах
1046 2825391
Почему opengl такой сложный? Что бы нарисовать одну простую фигуру нужно очень много кода, и вершини и шейдеры и VBO/VAO, связать все вместе и так далее...
1047 2825399
>>825391

> Почему opengl такой сложный


Опенгл очень простой и всю самую сложную часть работы делает за тебя. Поэтому считается за JS в мире графики и сосёт у вулкана и прочих дайректиксов.

> Что бы нарисовать одну простую фигуру нужно очень много кода


Посмотри сколько кода нужно для того, чтобы вывести треугольник на вулкане, приятно удивишься. И сколько там всего надо знать тоже на досуге почитай.
1048 2825740
>>825399

>Посмотри сколько кода нужно для того, чтобы вывести треугольник на вулкане



Изучив информацию, могу сделать вывод о том, что Sdl и SFML - это именно то, что мне нужно .
1049 2826061
Подскажите начинающему, зачем при инициализации rest api сервера нужно передавать ip? Он же определяется хост машиной и не может быть изменён.

https://github.com/meltwater/served/blob/master/src/served/net/server.hpp
1050 2826067
>>826061
У машины же может быть несколько айпишников.
1051 2826074
>>826061
IP- адресов в общем случае может быть несколько, по одному на каждый сетевой адаптер. Хочешь слушать запросы только через один конкретный адаптер - указываешь его IP. Хочешь слушать только локалхост - указываешь localhost или 127.0.0.1. Хочешь слушать сразу все адаптеры - указываешь 0.0.0.0, обычно делают как раз так.
1052 2826076
>>826074
>>826067
Эвона как.
Спс за инфу.
1053 2826281
>>825399
До дх12 дх такая же шляпа что и гл не так ли?
1054 2826370
>>826281

>такая же шляпа что и гл


и вулкан
1055 2826449
>>813524

> то рассуди что это начало и конец твоей недолгой карьеры, тебя даже в рашке будут отменять, не говоря о том что в зарубежную контору с этой строчкой резюме ты не устроишься примерно никогда


Ебало ученых из Третьего Рейха и Японии представили, когда им на западе красную дорожку постелили после окончания второй дедовой? Я просто охуеваю в каком вы идеалистическом манямирке живете.
Если тот анон станет топ 1 в своей сфере и его труды убьют миллионы человек, то он станет одним из самых ценных кадров в мире.
1056 2826491
>>826449
Тупорылые старые свиньи зачем вы мне пишете этот бред? Ты лысый скуф живёшь всю свою жизнь в НИИ в пидорахе какая там тебе разница что там на мировом рынке?
Бтв, да, байтослесарь == учёный, ебало представляете, откуда у тебя столько гонору обезьяна клавиатурная? А мир живет уже давно не так как ты себе в своем селе нафантазировал, ну что перед свиньёй бисер метать, знающие люди все понимают, а те кто нет - тем и не нужно
1057 2826503
туда ли ты зашел соевичок
1058 2826592
>>748862 (OP)
Почему все игнорируют vulkan-hpp?
Даже при использовании плюсов, используют чистый вулкан, плюясь на плюсовые биндинги
1059 2826593
>>826592
Кто "все"?
1060 2826594
>>826593
Большинство людей\проектов которые я встретил за свой личный опыт

если это не так то расскажи о своем опыте
1061 2826664
>>826592
Потому что плюсовики не умеют в апи
Ну вот кому нахуй в голову смогло придти, что пик 2 лучше пик 1?

Прибавь к этому плюсовую магию, которую чтобы понять нужно самостоятельно идти смотреть кишочки
Ну и самое главное что нет документации, офф доки не используют биндинги, соответственно часто возникают проблему как сделать простую вещь
1062 2827325
>>826664
Помимо всего прочего, 2 вариант это буквально просто обернули все в неймспейс, метод вместо функции, просто сизифов труд.
1063 2827328
Подскажите пожалуйста, какие книги по нейронным сетям на С++ можно почитать ?
1064 2827913
а
1065 2828283
>>823988
Специально для тупых в танке: исключения должны кидаться только в исключительных случаях. Нет смысла делать бенчмарки с выбросами исключений, потому что не важно, как долго будет обрабатываться это исключение. Важно, как быстро будет работать наиболее частый случай, когда все операции проходят без ошибок и исключений.
1066 2828288
>>828283

>Важно, как быстро будет работать наиболее частый случай, когда все операции проходят без ошибок и исключений.


Как раз таки исключения тут и срут
Добро пожаловать во взрослый мир, ЗЕРО КОСТ это миф
1067 2829424
Для каждого файла срр нужно создавать h файл ?
1068 2829427
>>829424
Нет.
1069 2829692
>>829427
А когда ?
Например файл Button.cpp с классом Button нужно для него создавать файл Button.h, в который нужно вынести переменные глобальные ?
1070 2829772
>>829692
Тогда, когда объявления из одного места собираешься юзать в другом. Т.е. почти всегда, кроме исходника с точкой входа.
1071 2829782
Глупые вопросы по вулкану:

Допустим всё что я хочу сделать, это взять из swapchain картинку, получить на cpu к ней доступ и самолично изменить пиксели на этом изображении, затем эту картинку отправить сразу на отрисовку в экран

И я вот не совсем понимаю, нужен ли мне в таком случае вобще pipeline?
Могу ли я как то без него сказать вулкану: вот данные для image валяются, на экран их покажи

зачем? хочу написать софтварный рейтрейсер простой. Знаю что есть всякие sdl и так далее которые позволяют это же сделать, но я хочу попробовать с помощью вулкана такое провернуть
1072 2829861
>>829782
При чем тут софтварный и вулкан?
Пайплайн нужен в любом случае. Вот без свапчейна можно обойтись и рисовать в файл, например.
1073 2829930
>>829861

Я хотел самолично на цпу все рисовать, вулканом я хотел просто текстурку получившуюся на экран вывести

> пайплайн нужен в любом случае


Эх(
1074 2830024
>>829930
Хотя знаешь, я поспешил с отаетом, потому что идея кажется мне бредом.
Я рейтрейсер писал на вулкане, и рпботает нормально, а на цпу в 2023... ну это шляпа.
Возможно есть какой тот маневр, посмотри сэмплы нвидии что то про совмещение вк/куда/опежл, мб поможет.
1075 2830091
>>830024

>идея кажется мне бредом


так оно и есть, чисто в учебных целях всё пишу
просто не хотелось всё в файлик писать, думал может что то похожее на реал тайм даже получится
raytracer in one weekend
1076 2830992
Друзья помогайте, всю голову уже збил, решения оптимально найти не могу.
В линуксе собираю с -wl, -rpath, ./ и либы ищутся начиная с текущей директории.
Как ьакое же в мсвц провернуть?
1077 2831574
Если я собрал либу gcc и получил so файл, то могу ли я другой проект, использующий эту либу, собирать другим компилятором?
1078 2831582
>>831574
Если внешний интерфейс либы написан на C, можешь собирать другой проект чем угодно. Но если он на плюсах, тогда не то что компилятор должен быть тот же - версия компилятора должна быть такая же.
1079 2831585
>>831582
Это пиздец........
1080 2831588
Вот я не понимаю, а как пишут большие приложения? Я когда в вузике учился, у нас каждая лаба на 4 компиляторах запускалась, да еще с разными флагами. Суммарно там штук 15-20 разных сборок получатлось и каждая из них должна была 0 предупреждений выдать. В большом продукте это же нереально сделать. Это придется каждую либу по несколько раз компилить. И если у меня на линуксе gcc по дефолту все собирает, то я на clang кроме лабы ничего не напишу, потому что либы нельзя иначе использовать.... Пииздец
1081 2831599
>>831588
И мне интересно как на новые стандарты переезжают. Ладно, если код хороший, то надо просто пару суток все пересобирать. А если че то вырезали в новой версии? Все? Навсегда на старом компиляторе надо сидеть?
1082 2831608
>>831588
Пишут огромные портянки препроцессорных условий с костылями для самых распространённых компиляторов и такие же портянки в скриптах сборки. Пиздец, да, а куда деваться?
>>831599
Просто переписывают код так, чтобы не использовать вырезанные фичи + фиксят там, где сломалось. Если слишком сложно, копипастят прямо в проект исходники прошлых версий стандартной библиотеки.
1083 2831614
Почему не сделают стандарт какой то? В чем проблема? На фоне этого пиздеца Java у которой идея работать везде одинаково - просто божественна
1084 2831617
>>831614
Если я правильно помню, то abi это про то как искать линкеру функции из разных неймспейсов, хедеров и прочего. Это же не должно влиять на какие то фишки компилятора, не должно никому мешать. Так почему давно так не сделали?
1085 2831621
>>831617
Или беда в том, что у каждого компилятора своя библиотека и наличие одного интерфейса проблему не решит?
.jpg911 Кб, 2160x1440
1086 2831623
>>831614
Только посмотри на этих пидорасов. Я скорее поверю в то, что они думают о том, как бы ещё затраллить программистов на C++, чем о решении насущных проблем с ABI.
1087 2831638
>>830992
Бамп. Тоже интресно как по мсвц портабл екзешник собирать.
1088 2831645
>>831638
Через CMake.
1089 2831684
>>831645
Как через смэйк? Приведи пример.
image.png93 Кб, 480x270
1090 2831783
JUNIOR CRUD PHP DEVELOPER
@
ТРЕБОВАНИЯ: ОСНОВЫ ПХП, ОСНОВЫ ХТМЛ+ЦСС
@
ВИЛКА: 50-85к

JUNIOR C++ CV SOFTWARE DEVELOPER
@
ТРЕБОВАНИЯ: C++, boost, cmake, вышка, алгосы, openCV, алгоритмы обработки изображений и видеопотока, опыт работы в сфере
@
ВИЛКА: 40-50к


Клоунский мир.
1091 2831785
>>831783
Ну и мрази, требуют быть не совсем овощем, которого надо будет с нуля обучать всему
только опыт странно требовать
1092 2831789
Или ты насчёт вилок негодуешь?
1093 2831790
>>831789
>>831785
Я к тому, что пхп макака без опыта на крудах будет получать больше, чем анальник с вышкой и кучей знаний в сфере компюхтир вижн.
1094 2831793
>>831790
Добро пожаловать во взрослый мир, вебкамщица ещё больше обоих вместе взятых получает
1095 2831800
>>831793

>вебкамщица ещё больше обоих вместе взятых получает


Ну траллировать меня не надо, а вот по поводу ЗП придется подумать.
Наверное, легче пойти на пхп круды и сразу лутать бабки, параллельно развивая свои байтоебские проекты, чем сразу идти в байтоебание и доедать хрен с солью. На западе, смотрю, ситуация с этим немногим лучше.
1096 2831857
>>828288
Хуй те. Так только у криворуких как ты.
1097 2831875
>>831857
А у остальных не так?
У остальных эксепшены по другому реализуются?
1098 2831891
>>831875
Как по другому? В gcc и clangе они давно уже зеро-кост. Полно статей и тестов, которые это подтверждают, почитай на досуге.
1099 2831896
Куда вкатились, аноны?
Чем занимаетесь? Сколько получаете? Какие планы?
1100 2831897
>>831896
Вкатился в жабу. Планы перекатиться в плюсы.
1101 2831901
>>831897
Чем хочешь заниматься? Чем обосновано твое решение?
1102 2831903
>>831891

> В gcc и clangе они давно уже зеро-кост.


Ага, если их совсем никогда не кидать
Но тогда можно и просто выкинуть их нахуй из проекта

> Полно статей и тестов


И каждый год их по штук десять выходит, каждый раз с разными результатами
1103 2831904
>>831901

> Чем хочешь заниматься?


Какой-нибудь системщиной или сетевухой.

> Чем обосновано твое решение?


Просто всегда нравились плюсики.
1104 2831910
>>831904

>Какой-нибудь системщиной или сетевухой.


>Просто всегда нравились плюсики.


Сейм, но когда я смотрю на вакансии, то просто безнадега накатывает.
1105 2831937
>>830992
Бамп
1106 2832856
>>831783
Устраиваешься джуном
@
Через пол года срыгиваешь в другую галеру на х2-х3

Проблемс?
1107 2834227
Как правильно подключить свою dll к программе? Какие флаги при компиляции? Использую g++ и makefile
1108 2834379
1109 2836279
Подскажите пожалуйста, какие есть графические библиотеки у которых есть возможность переключения между окнами не создавая при этом новое окно ? Как в libgdx например есть интерфейс Screen.
1110 2837032
>>748862 (OP)
Когда уже симейк господа раздупляться и поддержку модулей добавят?
Сколько еще лет примерно ждать?
1111 2837067
>>837032
10-15 лет.
1112 2837114
А деды в гцц формат уже добавили
1113 2837123
>>837067
Вот оно как, ну хоть дети мои порадуются модулям современным
1114 2837134
Мне кажется или на metanit не полная документация по С++ ?
1115 2838278
Новичек в треде с глупым вопросом:

Как стоит передавать в функции структуры? Допустим у меня есть struct vec3f {float x, y, z;};
Нужно ли его везде принимать по ссылку или можно со спокойным сердцем копировать или это как по производительности может ударить и лучше такого не делать?

Вобщем в такой операторе: vec3f operator+(vec3f, vec3f); Надо по ссылке передавать аргументы или лучше и по значению?

вроде как 12 байт это же достаточно маленькая структура, в том же го советуют не боятся большие структуры по значению передавать, а в плюсах мне сложно получить однозначного ответа
1116 2838419
>>838278
Зависит от функции и от структуры. Определись с тем что у тебя функция делает с этой структурой и как живет сама структура. Если там какой-то большой объект, то разумеется его лучше передавать по ссылке, но в то же время помни, что ссылка может протухнуть, когда ты создал объект в скоупе, вызвал свою функцию, а у объекта вызвался после этого деструктор. Еще не стоит забывать про мув семантики, оптимизации компилятора и прочее прочее. В общем не еби себе пока голову этим, просто пиши код
1117 2838642
>>838419

>Зависит от функции и от структуры.


Ну вот структура это вектора, а функция - оператор сложения

> Определись с тем что у тебя функция делает с этой структурой и как живет сама структура.


Объект всегда переживает функцию, так что на время жизни пофиг

> Если там какой-то большой объект, то разумеется его лучше передавать по ссылке


Ну вот мне бы понять когда обьект уже достаточно большой чтобы его по ссылке везде передавать. Вектор 12 байт еще ладно, а матрицу 3на3 на 36 байтов уже большая структура или нет?
1118 2838823

> > Если там какой-то большой объект, то разумеется его лучше передавать по ссылке


> Ну вот мне бы понять когда обьект уже достаточно большой чтобы его по ссылке везде передавать. Вектор 12 байт еще ладно, а матрицу 3на3 на 36 байтов уже большая структура или нет?


Когда профайлинг показывает что в этом месте у тебя проеб по производительности.
Передавай по конст ссылке.
1119 2838926
Написал кароче бенчмарк маленький

Вобщем если структура меньше 64 байт, под 02 разницы почти нет

буду передавать по значению
1120 2839243
>>838419

> что ссылка может протухнуть, когда ты создал объект в скоупе, вызвал свою функцию, а у объекта вызвался после этого деструктор


Спешите видеть, фантазер итт
1121 2839406
>>839243
В чем фантазия?
monty-python-dead-parrot.gif2,3 Мб, 640x480
1122 2839430
>>748862 (OP)
Анон, сейчас смотрю лекции по плюсам Константина Владимирова, и мне чот люто доставляет на плюсах не пишу btw, другой стек, прост когда лень читать что-то более полезное перед сном смотрю лекции/доклады по разным темам.
Есть ли подобные лекции на английском? Ну т.е. и чтоб и объяснял годно, и чтоб смехуёчки присутствовали.
1123 2839595
>>839406
В том, что так не бывает.
1124 2839810
>>839406
Как у тебя ссылка протухнет, когда ты ее передал в функцию? Она никак не может протухнуть, ВЕДЬ ТЫ ССЫЛКУ ПЕРЕДАЛ В ФУНКЦИЮ, у тебя функция в скопе объекта, это аксиома и всем очевидна, а ты просто выдумал ерунду.
1125 2839894
>>839810
Во-во, ссылки для того и созданы, чтобы "не протухать"
image.png130 Кб, 1617x1035
1126 2839990
>>839810
>>839894
Поцоны, у меня ссылка протухла
1127 2840017
>>839990
Хуевый пример. Лучше покажи на рехеше/реаллоке массива.
1128 2840040
>>839595
>>839810
Мани вы какого хуя в треде забыли? У вас занятия на скиллбоксах, на этой неделе вам про потоки расскажут
1129 2840108
>>840040
Ммм эти проекции.
1130 2840118
>>840108
Дерьмо хватит позориться, тред и так лоу айкьюшный, еще ваши студенческие подсеривания читать
1131 2840124
>>840040

>про потоки расскажут


>вызывать поток с ссылкой, зная что вызовется деструктор


Пока что только ты позоришься.
1132 2840152
>>840124
Ебло что ты несешь, в этом и поинт этого примера, чтобы вам вкатунцам даунцам пояснить что и такое бывает, но ты видимо запутался как всегда и пытаешься тут нелепо задним проходом догнать
1133 2840371
>>839990
Пиздец, просто не делайте так и ваши ссылки не протухнут. Есть какие то реальные примеры проёба ссылки?
1134 2840391
>>840371
Рехеш мапы/реаллок массива
1135 2840393
>>840391
Ну это база. Про инвалидацию нужно помнить.
1136 2841934
>>831783
Мир спроса и предложения. Или экономику прогерам учить запрещают?
1137 2841939
>>839430

> лекции по плюсам Константина Владимирова


Этот хуй ничего не объясняет, больше выебывается.
1138 2842012
>>839430

>Есть ли подобные лекции на английском?


К сожалению видимо нет, по крайней мере я не смог найти ничего похожего
Аналогов его магистерского курса вобще видимо не существует
ну или их не записывают для ютабов

Максимум только есть пару докладчиков прикольных, которые на всяких cppcon'ах выступают
но их сам Константин Владимиров на лекциях и называет
1139 2842032
>>839430
Двачую оратора выше, спп кон. Много годноты. Бери из источников в лекциях.
изображение.png213 Кб, 1920x1080
1140 2842842
Почему у меня выделяется память, заполненная одним и тем же значением 011101. Я ожидал, у меня будет мусор с рандомными цифрами.
1141 2842875
>>842842
"Почему УБ это УБ"
Не эксперт, но может вижуалка запускает процесс где-то внутри своей памяти.
1142 2843105
>>842842

> auto


> operator


> reinterpret


Глаза потекли
1143 2843117
>>842842
Ну вот конпелятор и заполняет эту память значениями, чтоб там не было всякого мусора
1144 2843146
>>843105
выдели нетипизированную память new без operator
выведи на экран содержимое нетипизированной памяти без каста
об успехах отпишись в тред
еще и к auto приебался зачем-то
1145 2843152
>>843146
malloc
(char *)
1146 2843164
>>843152
c тред два блока вниз
1147 2843168
>>843164
В плюсах их тебе препод запрещает юзать? Баллы за лабу снизит?
1148 2843182
>>843168
ты забыл еще упомянуть что печатать надо printf как диды воевали
1149 2843186
>>843182
Нет, есть аналог получше
std::print
1150 2843300
>>843186
Братва вы перепутали, копро треды в других категориях
1151 2843358
>>843300
Не, не, ничего не перепутали, всё правильно
1152 2843366
стд::авто_птр
16941682484170.png362 Кб, 735x690
1153 2843369
1154 2843374
>>843369
Блять, пиздец, оно реально существует.
1155 2843400
>>843146
Ты даже не понял сути притензий, ваще тупой походу, не трать время на плюсы.
Хотя и анон с низу про малоки прав.
1156 2843403
>>843400
так разверни мысль нах в чем причина претензий заключается
у тя там в посте только три строчки гринтекста и смишной комментарий
1157 2843425
>>842842
Что за конструкция с оператор Нью? В чем её смысл?
1158 2843467
>>843425
ну любой оператор можно так вызвать типа operator == (a, b)
конкретно operator new вызывается при вычислении new expression но можно это сделать и вручную
1159 2843500
>>843425
Выделение памяти без вызова конструктора.

С malloc я кстати пробовал, результат тот же.

>>843152

> (char *)


Трудночитаемая магическая хуйня по сравнению с кастами.
1160 2843504
>>843500

> Трудночитаемая магическая хуйня


Ничего лучше ещё не придумали

> магическая


Значение знаешь?
1162 2845978
Как посмотреть содержимое стандартных библиотек с++ в vscode ?
Например хочу заглянуть внутрь std ?
1163 2846049
>>845978
Вскод это текстовый редактор, он не имеет ничего общего ни с одной из стандартных либ плюсов.

> как


Зайди на сайт разраба или мейнтейнера той библиотеки которая тебе интересует, скачай сурсы и ознакамливайся.
Тред утонул или удален.
Это копия, сохраненная 18 сентября 2023 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски