Этого треда уже нет.
Это копия, сохраненная 29 ноября в 10:07.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
2 2847448
Аноны, вам в вашей практике пригождалось метапрограммирование?
Rias Gremory [OldHorrorZ].png2,9 Мб, 1700x2800
3 2847559
Что это? Да это же лучший тред, посвященный самому прекрасному языку программирования!
4 2847604
>>847448
В смысле, пригождалось? Нет таких задач, которые нельзя было бы решить без метапрограммирования, не считая требований сделать это во время компиляции.
Ты думаешь, стоит ли тратить время на его изучение? Если тебе не интересно, то смысла ебать мозги нет.
Нужно ли оно в коммерческих проектах? В лучшем случае похуй. Если есть какие-то требования к читаемости кода, то на ревью могут завернуть.

Метапрограммирование на шаблонах отличный способ сократить количество бойлерплейта без потери производительности и заодно решить некоторые проблем заранее, на этапе компиляции. Но кому оно нахуй надо.
5 2847970
Есть пару вопросов к тем, кто в плюсах хорошо шарит.
1. Почему мув-конструктор не должен бросать исключение, чтобы объект мог муватся при реаллокации вектора? Что мешает в случает исключения мувнуть все обратно? Копирование более сложная операция, но на случай исключения в копирующем конструкторе, в векторе все возвращается в первоначальное состояние, давая строгую гарантию. Вот и говорят например, что auto_ptr не мог работать с контейнерами, потому что умел только перемещаться, а почему он, а не я?
2. Говорят еще, что auto_ptr не различается обычное удаление и удаление с []. И тут я завис, а что мешало просто сделать частичную специализацию auto_ptr<T[]>?
6 2848043
что написать на плюсах?
жсон парсер уже написал
7 2848064
>>848043
Хмл парсер.
8 2848085
>>848043
Выложи на гитхаб, а то ЛОХманоская библиотека мне названием не нравится.
9 2848086
>>848064
тоже
10 2848098
Есть стджсон, он збс.
11 2848100
>>848086
C++ парсер.
12 2848140
>>847970
Если у тебя при муве объекта вылетело исключение - ну это уже совсем пиздец. Мув задуман как абсолютно лёгкий и прозрачный механизм передачи владения, если ты хочешь/можешь бросить оттуда исключение - ты делаешь что то не так.
13 2848144
>>848140
Ты не ответил на вопрос вообще.
14 2848435
>>848144
Пошёл нахуй значит.
15 2849624
>>847970

>Мувнуть все обратно



Мув обратно опять выкинет исключение, что делать будем?
16 2849629
>>849624
Собирать с фноексцепт, разумеется.
17 2849641
>>847970

>Говорят еще, что auto_ptr не различается обычное удаление и удаление с []. И тут я завис, а что мешало просто сделать частичную специализацию auto_ptr<T[]>?



Ничего, уже сделали, unique_ptr называется.
18 2849668
Почти дочитал книжку Праты, решая все примеры и отвечая на все вопросы в конце главы. Сейчас остановился на итераторах и уже задумываюсь, что стоит изучить дальше?
Как я понял, мне нужно знать паттерны или хотя бы как это работает, пытался почитать про это вскользь, но не разобрался даже с синглтоном и не понял зачем он нужен.
Посоветуйте пожалуйста, какую литературу стоит изучать после Праты?
19 2849691
>>849668

>что стоит изучить дальше?


Бля ну какая у тебя конечная цель? Что ты хочешь сделать? Электроникой заниматься - тогда изучай электронику. Ты понимаешь что добрые 95% вакансий на С++ это тупо программирование микроконтроллеров, написание драйверов к железякам. Оставшиеся 5% - это QT и высокочастотная торговля. Окей возможно ещё чуть-чуть игры. Если ты не знаешь шину MCU, GPIO, SPI, I2C, то можешь свои паттерны себе в жопу засунуть. Ты программист С++ и не шаришь в электронике, тогда ты нахуй не нужен.
20 2849700
>>849691
Собсна, пока уже год как вкатился в микроконтроллеры, но на чистый Си. Хз, откуда у тебя 95% это контроллеры, но база по контроллерам уже есть. Но хотелось бы уйти для начала в Qt, либо что-то для железок писать на более высоком уровне, вот примерно такая конечная цель. В какую сторону лучше двигаться?
21 2850666
>>849700
Не слушай этого далбаеба зеленого. Мк на всяких верилогах с си прогают. Человек занимающийся этим имеет звание инженер, скорее всего схемотехник, скорее всего он вертел на хую все паттерны и делает как деды в универе учили. Скорее всего он выдаст тебе таску, что то типа принять данные по такому то интерфейсу, как-нибудь с ними поманипулировать и вернуть, может регулятор какой-то прикрутить. Только какой-нибудь зелёный конч из этого треда может попросить тебя реализовать устройство от начала до конца, от схемы - до десктопного приложения. Тут как минимум три человека нужны, схемотехник, тополог, программист.
22 2851045
Бля чет ООП мне как-то не хватает для написания удобного кода. Или может я какие-то абстракции не использую?

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

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

Неужели люди так годноту и не придумали и жрут говно под названием ООП? Потому что у меня дико в заднице чешется объявить все эти объекты просто статиками\синглтонами и пользоваться ими в .cpp, есть сеймы? Какие решения есть, я не верю что мне одному это не нравится
23 2851076
>>851045
Делай так, что бы работало так, как тебе нужно. Все.
ну и предствать как на сях все это воид птрами делалось
24 2851083
>>847323 (OP)

>Пик 2


Почему в плюсах в названии экспешенов не принято добавлять что это экспепшен или что-то подобное? Непонятно же с первого взгляда.
мимо из другого языка
25 2851094
>>851083
Нахуя? Ты же его только в катч блоке встретишь
26 2851096
>>848100
Это надо как Перельман до 50 с мамкой жить.
27 2851120
>>851083
Потому что кидать можно любое значение, хоть int.
28 2851604
Есть шаблонный класс с шаблонным параметром int N. Могу я добавить метод класса, который будет работать/существовать только при N == 1?
1695393836197.jpeg23 Кб, 859x205
29 2851644
>>851604
Лол, сделал методом тыка. Слабо понимаю, что тут происходит. Может есть варианты, как упростить? Ехал typename через typename.

класс содержит буфер длины N, хочу чтобы он автоматически конвертировался в число, если длина буфера равна единице
30 2851665
>>851644
Ты можешь перегрузить шаблон для INT 1
template<>
class zalupa<1>{
...
};
31 2851667
32 2851669
>>851604
А блять, метод...
Сори в глаза ебусь.
33 2852515
Как грамотно нарисовать опыт на плюсах и вкатиться в фаанг?
34 2852666
>>852515
Никак.
35 2852959
>>852515
Скажи, что 10 лет программировал плк на заводе для нужд родины.
36 2853320
Анончик, помогите советом, плиз
значитса, чтобы научиться премудростям погромистским ,я хочу собрать просмотрщик картинок.
Как референс того что должно получиться это pureref но со встроенным файловым менеджером.
как в общих чертах это делаются на с++?
пока что я пришел к тому, что мне нужны библиотеки.
компилятором выбрал g++
sdl для отрисовки самих картинок.(просто первое че попалось то и поставил)
sdl_image для загрузки разных форматов картинок.
нужна какая то библиотека для сканирования диска и построения дерева файлов(кукую взять?) но она должна как отдавать данные для последующей отрисовки.

ну и еще я подумал что мне нужна какаято библиотека с ui wxwidgets, подойдет?

вобщем я сначала хотел рисовать картинки прям средствами sdl

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

как правильно делать такое?
37 2853325
а ещё такой вопрос чет не могу найти.
к в сдл скрыть срандартный хедбар с кнопками закрытия и прочим. что бы было чистое окно.

и еще как само окно делать прозрачным.
че для этого надо курить? винапи? или в sdl это есть где то
38 2853432
Мне одному задачи контеста Яндекса ебут самооценку в ноль?
39 2853545
>>853320
Совета лучше, чем "начни делать", тут не дать.
40 2853593
>>853545
так я и начал.
ну так а че для гуи сишники то используют? я вообще начинаю понимать что тут вообще не все как в остальном мире.
вот например почитал что wxwidgets нафиг не нужен. поидее используют qt

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

ебать нахуй. есть хоть какаято стандартизация тут?
41 2853653
>>853593
Бери Qt.
42 2853733
>>853593
Qt и qtquick на плюсах
На сях gtk. Всё.
Еще как альтернатива элеатрон+нативные библиотеки.
VSCode так делает, OnlyOffice и nwjs
43 2853753
>>853733

>qtquick


Я уж хотел было возразить, но дочитав

>элеатрон


понял, что в этом нет смысла.
44 2853809
>>853753
В чем проблема? Стандартный Qt гуй хуевый. Ну то есть он нормальный для стандартных окон со стандартными крутилками вертелками уровня виндовс хрю и гноме2, но для кастомных интерфейсов типа телеги ор не подходит.
Qt квик довольно сложный, а еще кривой нахуй какой то. Тем кто умеет в веб (html+js+css) на мой взгляд не стоит мучится если не стоит задача сделать маленькое приложение.
Лучше взять электрон нахуевертить там гуй, а все функциональное припиздячить библиотеками и вывести функциями.
Так же собственно как в кутеквике, заисключением того что там экмаскрипт (как джаваскрипт только совсем голый без всего) и лютое метопрограммирование. На н пиздец как сложно реализовать то что на хтмл с цсс проблем не вызывает.
45 2853825
>>853733
а че там за метакомпилятором таким в qt стращают? че это такое добавочный препроцессор?
46 2853900
>>853825
Ну там как я сказал экмаскрипт но исполняется он не как js в электроне то есть считай как в браузере через джиткомпилятор+компилятор с весом овер 100мб, а прекомпилируется в какую то хуйню вместе с qml в бинарные moc файлы вроде.
Но это не машинный код, я так понимаю а коды для интерпритирования, это связано с тем что метаговно и джаваскрипт это впринципе языки где типы данных подставляются во время исполнения и подставить их заранее нельзя.
Но я не вижу проблема так как весит это все 1,5мб, а гуй это не то что должно максимальное колличество нажатий быстро обрабатывать, оно должно просто с приемлемой скоростью отзываться и оно на квике одзывается шустро. Что еще надо
47 2853916
>>853593
Не похоже что ты начал. Ты сидишь и дрочишь какую то хуйню
48 2853987
>>853900

ага понятно. ну я наверное пока на сдле посижу. чето я в нее залип. простая приятная как блиц3д из детства ебать.
>>853916
ну так а как не дрочить то? яж не хуя не знаю.
49 2853993
кароче нашел почти весь нужный мне функционал.
попробую все на SDLе сделать. насчет интерфейса пока затык, но мне там немного надо. списки да кнопки я сам поди рилли напишу. интересно да и похуй.

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

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

кароче я решил пока это обойти и тупо спамить новыми окнами.
50 2854039
>>853993
Здорово, брат, а ты как, покушал сегодня уже? А покакал?
51 2854207
>>853432
да нормальная эта хуйня, специально придумана рептилоидами чтобы умных детишек уничтожать
типа дрочишь физику-математику в школке, ездишь на олимпиадки до которых дотянешся, потом ебашишь задачки для поступления в бауманку, потом тебя дрочат в вузике типа делают ученого на хуях не верченого, а в 30 лет вешаешься режешь себе вены выходишь в окно
то же касается и химии и математики, и соответствующих факультетов мгу
ну а сегодня и дрочь на cs добавился
52 2854214
>>851045
не, челик, ты вкорне не прав и поэтому мучаешься
раз это как ты выразился "объект времени жизни программы" то ты делаешь синглетон и тупо его юзаешь везде где надо

забавно что я будучи безработно й хуйней over 10 лет сразу же понял что к чему, хехе зайдя в этот итт тред после годового перерыва
53 2854226
>>854214
Синглтоны можно, но так себе. Лучше просто на глобалах завести экстернами что нужно.
Синглтоны могут в херовой последовательности уничитожаться, а глобалы сам пропишешь.
54 2854271
>>853432
Три месяца назад проходил какие-то дно задачи для fast-track. Не ебут. Я даже задачи на их собеседовании с подсказками все смог сделать. Решил, постфактум, что мозг свой прямо сейчас на 100% заюзал и лучше уже не будет.

Но этого им всё равно не хватило. Жирные уебаны.
55 2854272
>>854039
Полужидким.
56 2854280
>>851045
Ты просто юзаешь ООП там где оно не нужно.

У меня например в одной программе vector<class ImageType>

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

На си конечно можно реализовать структурой с указателем на функцию:

typedef struct _IMG_T_ image_t;

typedef void (× method) (image_t ×self, int arg0 ...) fn_method_1;

struct _IMG_T_ {
. . uint32_t w, h;
. . uint8_t × data;
. . fn_method_1 foo1;
};

Но это выглядит во первых как говно, во вторых не гарантируется что в метод попадет self указатель этой же структуры и вообще раз уж пишем на си то уж проще свитчом выбирать нужный метод по значению а не таскать в структуре адрес на хуй знает что. Когда на си приходилось писать такой код всегда хотелось просто объявить класс с виртуальными методами, а деструктор записать free(data).

Несмотря на то что это все компилируется в лютое говно с вызовами перевызовами, не всегда программе это по сравнению с джавами пистонами минимальный оверхэд.
57 2854431
>>854271
Значит я правда тупой.
58 2854448
>>854280
Ты не понял о чем я говорю. Я не про оверхед, а про неудобство использования объектной системы в программе, когда классы вынуждены знать друг о друге. Было бы лучше если б ООП в плюсах было полным с реализацией сообщений между объектами, то есть на уровне языка чтобы скрывать под капот всю парашную реализацию. А сейчас абсолютно любой проект на плюсах это лапша так или иначе
59 2854478
>>851045

>Вот допустим есть...


У меня же есть подозрения, что ты просто сложность хуёво контролируешь.

Без конкретных примеров не сказать.

Объект времени жизни программы обычно почти всегда синглтон. Если нет, то либо у тебя что-то странное и/или интересное, или ты накосячил с проектированием и это должен быть именно одиночка.
60 2854485
>>854478
В чем тут сложность? Есть класс сокета, который засылает данные куда-то. Как ты организуешь в плюсах как эти данные он передает дальше? Либо агрегация либо коллбек. Если программа большая то это неизбежно превращается в адские зависимости.
Синглтон это антипаттерн в современном программировании
61 2854489
>>854485

>Синглтон это антипаттерн в современном программировании


Тыскозал?
62 2854491
>>854485

>Есть класс сокета, который засылает данные куда-то. Как ты организуешь в плюсах как эти данные он передает дальше?


>В чем тут сложность?


Почему у тебя так много подписчиков этого класса, что это становится проблемой? Почему ты не сделал иерархию, которая разделяет сложность? Single responsibility principle? Или тоже "антипаттерн"?
63 2854493
>>854489
Быстрый гугл солидарен, но я и без него это знаю.
Да, антипаттерн, с тех самых пор как в плюсах есть многопоточка
64 2854497
>>854493

>Да, антипаттерн, с тех самых пор как в плюсах есть многопоточка


Хуясе клэйм. Ты хипстеров своих больше слушай.

Сам синглтон не хорош и не плох, это инструмент. Написанный через static переменную, он по умолчанию должен быть thread-safe.

Другое дело как ты сделаешь синхронизацию его внутренних процедур.
65 2854499
>>854491
ООП и есть самый большой антипаттерн и оверхайп параша
66 2854501
>>854499
Ну вот и выявили неосилятора. Сдрысни в хаскель-тред.
67 2854506
>>854497
Я никого не слушаю, это мое мнение.

Бля чел, о том и речь, "сделаешь синхронизацию", ты че, того чтоли? Лучше уж лапшу писать
68 2854516
>>854506

>Бля чел, о том и речь, "сделаешь синхронизацию", ты че, того чтоли?


Если у тебя миллиарды запросов в наносекунду и тебе нужна полная lockless хуйня, то лапша - последнее, о чём ты должен волноваться.
69 2854521
>>854478
Совсем не обязательно он синглтон.
Синглтон он только если к нему нужен глобальный доступ. А иначе нахуя оверхед.
70 2854525
>>854521
Тащемта да, но у него проблема такого уровня, что до синглтона недалеко.

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

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

Что за хуйня?
71 2854526
>>854525

>чтобы не следить за передачей ресурса через подписки

72 2854533
>>854525

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

73 2854535
>>854533
Опять неосилятор порвался. Тогда беги в ассемблер программировать, оверхэдный ты наш.

В плюсах ты не платишь за то, что не используешь.

Не хочешь контролировать сложность, чтобы твои собственные углеродные мозги нахуй в кашу не расплавились? Твоё право.
74 2854545
>>854535
Шляпа объектно ориентированная че за тряска? Я съебусь куда мне надо а ты позади останешься, запомни это
75 2854547
>>854545
Да мне насрать. Ты пришёл с плюсовый тред просить советов, но просишь без уважения.
76 2854607
>>854448
Да я понял о чем ты, но я и говорю что это класс задачь где реально не нужно ооп, но его используют просто потому что функциональное, которое бы лучше подошло в ряде задачь не завезли.

> Было бы лучше если б ООП в плюсах было полным с реализацией сообщений между объектами, то есть на уровне языка чтобы скрывать под капот всю парашную реализацию.


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

А лапшеговнокод можно встретить на любом языке, даже на си.
77 2854625
ЧЕМ C++ ЛУЧШЕ CLOJURE
78 2854671
>>854625
Тем что все знают что такое си плюх плюх, а кладмена жору не знает никто.
79 2854854
>>854625

>ЧЕМ C++ ЛУЧШЕ CLOJURE


Не JVM.
80 2854964
>>853432
Дай ссылку, гуглится какой-то древний понос
81 2855076
>>854964
Во время ближайшего Фаст трека попробуй.
Алсо я вообще понял что у меня супер херово с динамическим программированием.
82 2855180
Аноны хелп, это братишка с сдл.

Как сделать открытие файла?
типо вот я щелкаю на файл пикчи, винда запускает мою программу и она как то передает пикчу(или ее путь) в мою программу.

как это делается? куда копать? как это называется вообще в программерском мире?

пока что я допер только как открывать и закрывать файлы через fistream и инфа чет не гуглится.
83 2855191
>>854854
ТОГДА ЧЕМ С++ ЛУЧШЕ JAVA
84 2855192
>>855180
Для того чтобы ОС открыла именно твою прогу - в разных системах по разному. Гугли file extension to program.
Далее она запустит твою прогу, передав первым аргументом путь к файлу.
85 2855193
>>855180

>куда копать?


От ОС зависит. В твоём случае нужно WinAPI курить.
Попробуй данный вопрос гопоте задать, думаю, что оно ответит с примером.
86 2855195
>>855192

>передав первым аргументом путь к файлу.


Так не всегда путь же. Может какой нибудь хендлер вернуть.
87 2855196
>>855195
Вот это уже я не ебу, честно. Я думал всегда путь отдает.
88 2855199
>>855192
>>855193

не посоны, я кажется допер. тут надо просматривать аргументы main(int argc; char*argv[]).
и если туда закинуть файл, то аргументом придет его путь.
и вот этот путь использовать для загрузки пикчи.

а линковать взаимосвязь с файлом похоже вручную или через батник при установке.
89 2855206
ебать посоны, работает! я написал простенький имедж вьювер bmp файлов!

теперь как то надо консоль скрыть. это наверное гдето в компиляторе до ставить
90 2855208
>>855199
Ты опиши саму ситуацию, епта. Ничего же не понятно. Выглядит так, будто ты хочешь, чтобы ОС использовала твою программу по-умолчанию для открытия некоторых типов файлов. Чтобы когда ты кликал по файлу, то вызывалась твоя прога и в неё передавался путь/хендлер файла. Правильно понимаю?
91 2855210
>>855208
да да именно это и хотел.
может ты знаешь как заставить винду ассоциировать файлы прямо из с++?
возможно ли вообще такое
92 2855217
>>855210

>может ты знаешь как заставить винду ассоциировать файлы прямо из с++?


Можно более подробно? ЯННП.
Ты можешь скомпилить бинарник и указать его в качестве проги по умолчанию самым обычным способом - через системные настройки, либо ПКМ - открыть с помощью.
Далее тебе нужно узнать каким образом ОС передаёт информацию о файле проге по умолчанию. В виде пути, либо в виде более сложной структуры. И отталкиваясь от этого уже писать обработчик.
93 2855237
>>855210
Гугли что такое MIME types и как их установить в виде.
94 2855336
>>855237
ммм хуй знат мне же не надо свой формат внедрять в систему? но спасибо на будущее , вдруг я ебать свой 3дмакс напишу охохо

ладно кароче. нашел два способа скрыть нахуй консоль.

первый подключил windows.h
и там вызвал процедуру ShowWindow(GetConsoleWindow(),SW_HIDE)
это я так понимаю винапи чистый пошел.
а так как у меня sdl, то поди это нарушит портируемость.

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

посоны да я вообще погромист ебать!
95 2855449
>>855191
Тем что на с++ пишут ос, в том числе микроядерные, а на джаве гоночный робот томми решил собрать мусор от накопившихся объектов проебал поворот и убился об стену.
96 2855452
>>855336
Тебе надо было брать qt и не ебать мозги, там все есть и встроенный просмотр файлов и выбор при тыке по кнопке.
SDL это низкоуровневая библиотека-прослойка между программой и рендером, оно не предназначено для взаимодействи с виндовсапи и линуксовыми де. Оно само по себе, что бы 2d/3d графику в окошке рисовать грубо говоря.
изображение.png9 Кб, 279x269
97 2855454
>>847323 (OP)
Сап Анонсы! Как считается хэш сумма файлов? Есть два старых зип архива, которые надо открыть. Знаю что есть хэшкэт, но хочу разобраться в том как это всё работает, на практике. Поэтому подскажите, пожалуйста, как получить хэшсумму ZIP/RAR файла и как сделать генерацию хэш-таблиц для сравнения. Думаю просто сделать открывалку с генератором слов будет всё-же более затратно, в плане времени исполнения.
Пробовал на питоне, но там люди жаловались на быстродействие а у меня нихуя не 4090+i9, да и сам питон немного не прижился.
98 2855469
>>855076

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


А по-другому быть и не должно.

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

Обычно если и есть, то это ебейшая таска на весь спринт, которую нужно вылизать и тестами обмазать, чтобы работала как часы.
99 2855470
>>855469
Да я не ебу.
В целом почти нихуя из того что я задрочу на литкоде мне в прогерской практике не было нужно.
Ну исключения - бинарный поиск, префиксные суммы. Мне блять производные чаще нужны. Но в яшку хочется.
100 2855471
>>855454

>но хочу разобраться в том как это всё работает, на практике


>хэшсумму ZIP/RAR файла


>как сделать генерацию хэш-таблиц


Так тебе шашечки, ехать или суп есть? инб4 суп ешь ложкой

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

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

Для хэш-таблицы твой хэш может быть очень тупым. Он обычно очень тупой и есть. Там суть не в отсутствии коллизий, возможности нахождения обратного и прочая. Поэтому про хэш-таблицы и говорится, что там доступ за O(1) амортизированное. Потому что тебе может очень крупно не повезти, и ты получишь доступ за O(n).
101 2855472
>>855470

>Но в яшку хочется.


Гугли видос про их зарплаты. Душу дьяволу продаёшь и не чешешься.
102 2855473
>>855472
Это ворота в любые вакухи в России. Да и после моих 70к на заводе похуй. Спасибо гляну
103 2855494
>>855454

> как сделать генерацию хэш-таблиц для сравнения


Пчел...
EgmmAHQLFr8.jpg221 Кб, 914x1280
104 2855753
>>855471

>нужно хэш-алгоритмы подучить


>свойства криптографически сильного/стойкого хэша


Не подскажешь уроки или книги? Примерно 1/2 из книг по csec, которые постят в телеге, имеет очень поверхностную информацию. Вот ребята есть WEP и WPA2. WPA2 лучше чем WEP, WEP хуже чем WPA2. Однако даже примеров восстановления ключа из handshake я вам не покажу, потому что потому.
Пока что полезная инфа попадается лишь на хабре, вики и стеке. Форумы чуть сложнее найти, но думаю тоже есть.

>надо юзать либу


Полагаю, так-же как и в питоне? импорт инклюд, а потом вызываешь класс или функцию и даёшь ей свои данные в работу.
Но с точки зрения работы. По идее архиватор пытается открыть один файл, с заданным паролем, или один блок наименьшего размера. А потом уже возвращает True для дешифровки и False для ввода нового пароля, на основа несовпадения хэш суммы.
Выходит, нужно лишь попытаться открыть один файл или блок из архива и сохранить целевое значение хэш суммы. А дальше уже можно пытаться в перебор AES 256. Для начала попробую какой-нибудь тестовый txt вытащить. А потом уже за архив можно браться. Верно ли это?

>Потому что тебе может очень крупно не повезти


Мне пока известно лишь 2 метода и табличный должен быть чуть-чуть выгодней обычного перебора. Так что ничего удивительного, что что-то может не сработать как планировалось.

>за O(n).


Где n это...?
105 2855782
>>855753

>Не подскажешь уроки или книги?


Ниет. Меня учили дядечки в универе. Это было давно и неправда.

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

Какой один блок? Какой AES перебором, прастихоспади?

ЖИРНО СУКА
изображение.png279 Кб, 525x724
106 2855786
>>855782

>Ниет. Меня учили дядечки в универе. Это было давно и неправда.


>Остальное жир вообще.


>ЖИРНО СУКА


Ладно.

Спасибо и на том что рассказал.
107 2855797
>>855786

>Ладно.


А на что ты рассчитывал?

Делаешь какие-то танцы с бубном, какие-то хэш-таблицы.

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

Хешировать ты сможешь только весь файл целиком. Если сможешь из готового хэша восстановить хэш для одного блока - мильоны далларов тока так можешь собирать.

Если у тебя AES-256, то перебором ты его будешь ломать 2256 итераций. Если кто-нить не выдумал крутых техник взлома, конечно.

2256 итераций, даже если ты будешь подбирать по квадрилиону ключей в секунду - это 3.67... x 1057 лет.
Я подозреваю, что вселенная кончится раньше.
108 2855800
>>855786
Во, может ты хотел пароли подбирать? А под таблицами - радужные таблицы имеешь в виду? Тогда да, я не вдуплил твоего гения.
109 2855944
>>855800
Всё так. Но пока чёт все пишут что AES256 эт прям неприступная крепость и вообще даже Тяньхэ-2 его не потянет. Тем не менее, в 2016 на дваче кто-то разыгрывал BTC кошельки, пароли к которым были как раз в RAR архивах. Тогда знакомый сильно бомбил, что пароль оказался больше 12 символов и перебор стал уже не выгоден, как по времени, так и по энергии.
Думаю, будь AES так крепок, никто не стал бы упарываться GPG и делать ключи по 4кб.

>либо андерквалифаед


>либо уникум


Хочу восстановить 2 фото бывшей, которой уже скорее всего и в живых нет. Буду ли я при этом кем-то или нет - безразлично. Есть задача - пытаюсь найти её решение.

>Если сможешь из готового хэша восстановить хэш для одного блока - мильоны далларов тока так можешь собирать.


Я понимаю твой сарказм, но хотя-бы попробую.
110 2855994
>>855472
Бро, я так и не понял про какой ты видос. Можешь линкануть?
111 2856255
>>855797

> Если кто-нить не выдумал крутых техник взлома, конечно.


Уже выдумали, за 2254
113 2856463
>>855944

>никто не стал бы упарываться GPG и делать ключи по 4кб


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

А, как сказал вот этот мудрец >>856255, там всё очень не просто с этими новыми симметричными шифрами.

Надежда, рили, только на то, что пароль подберётся.

>Я понимаю твой сарказм, но хотя-бы попробую.


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

Причём с "несколькими блоками" выйдет только если необходимые данные в начале лежат. Или хуй.
114 2856625
Друзья, мне нужно использовать в проекте хедер <curl/curl.h>. Сразу скажу, я на винде, curl у меня поставлен через chocolatey, поэтому в cmake я прописал брать curl'овые потрошки оттуда и получил cannot find -lcurl-x64.
Я так и не понял, где и как мне на Винде получить libcurl4-openssl-dev. Мнение?
115 2856647
>>856625
Мнение - винде надо было выкинуть наследие дос давно и идти по пути макоси.
А так страдай, хуй его знает как это на говнокнах чинить. Надо патч до либ прописывать.
116 2856672
>>856625
Как ты их прописал? Ниче нельзя сказать по твоему описанию. Не ебу что за говно, но наверное твой шоколадный поставил либу + файнд к ней наверняка. Поюзай симейковский дефолт по инклюду зависимостей типо файндпэкэдж
117 2856708
Почему std::cout обьект, а std::endl функция ?
потому что cout это наверное класс, а endl функция внутри этого класса верно ?
изображение.png4 Кб, 415x74
118 2856758
>>856463

>Надежда, рили, только на то, что пароль подберётся.


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

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


Вот это самое интересное. Поскольку известен формат и размер файла внутри, можно примерно прикинуть размер и содержание его заголовка, который уже будет лежать в некоторых границах. Если бы можно было проводить расшифровку только заголовка, то сравнивая с заголовком другого jpeg'а можно было бы очень быстро подобрать ключ, а уже из него пароль. Другое дело, что мне не известно как происходит расшифровка zip, идёт ли она одним длинным потоком или имеет некую цикличность которую могли бы разделять те самые блоки.
В меру моего слабого понимания, выглядит это пиздец как интересно и вполне решаемо. Тем более что пароль где-то между 6 и 15 символами. Так что можно убрать все короткие и сэкономить хоть немного времени и энергии.
119 2856789
>>856463
В догонку к прошлому посту. Дешифровка AES имеет уязвимость в виде связи значений настоящего ключа со скоростью выполнения операции. У меня нет ни осциллографа, ни прочего нужного железа, но может быть можно симулировать выполнение распаковки в VM, которой можно задать маленький параметр clock, по которому уже можно будет прикинуть диапазон значений, получая график быстродействия из самой VM.

Но у меня в прошлый раз не вышло разобраться с VM, когда пробовал освоить дебиан. Хз, есть ли у них функция дебага медленной работы. На них же можно симулировать быстродействие какого-нибудь пентиума 2, возможно получится опуститься и ниже, до какого-нибудь 386го.


Но это мысли в слух. Хз насколько это позволит сузить круг поиска.
120 2856922
>>856758
Не, ты всё-таки почитай по криптографию, твоя интуиция тебя подводит. По сути, ты предполагаешь, что: а) есть какой-то «неправильный» более быстрый способ расшифровать зашифрованное; б) никто о нём не подумал, а ты найдёшь. По сути, это означает, что шифрование будет взломано. Теперь оцени вероятность случайно взломать AES.

Во-первых, готовые программы для решения твоей задачи давно существуют. Во-вторых, работают они все одинаково: берётся минимальный блок для расшифровки, расшифровывается с первым сгенерированным по какому-то шаблону паролем, проверяется корректность, пароль не подходит. Расшифровывается со вторым сгенерированным паролем — и так до конца. Принципиальной разницы между ними быть не может (если шифрование надёжное), разница только в немного более оптимизированном коде, позволяющем быстрее перебрать простые (короткие, словарные, частично известные) пароли. Если вариантов слишком много, перебор становится бессмысленным, поскольку нет разницы, ждать тысячу лет или две тысячи лет.

Что-то мне подсказывает, что тебя развели мошенники, предлагающие «проверить своего партнёра на измену». Тогда это просто случайные файлы со случайным паролем в архиве, и никто не собирался после получения денег что-то тебе раскрывать.
121 2856924
>>856922
Ну а почему нет. В пиндосы специально закладку заложили в алгоритм что бы зашифрованные данные читать. Она может быть хитрая изощренная. Intel Me же вскрыли и выяснилось что оно не просто так сидит пердит железо инициализирует а еще сука в сеть ходит даже когда комп выключен. Может дамп памяти снимать и запросто отсылать.
А в интелах еще есть аппаратное шифрование aes
Вроде как это просто векторные инструкции, но они генерируют конечные ключи, а еще в интеле есть аппаратный генератор случайных чисел. В общем тут вопрос то интересный на самом деле.
122 2856934
>>856924

> Intel Me же вскрыли и выяснилось что оно не просто так сидит пердит железо инициализирует а еще сука в сеть ходит даже когда комп выключен.


Действительно, почему же оно делает то, что в инструкции сказано? Агент, который должен быть активен даже при выключении основной системы, чтобы её можно было удалённо включить обратно, активен при выключенной системе, м-м-м.
https://en.wikipedia.org/wiki/Out-of-band_management

ЗаКлАдКа ПиНдОсОв, к сожалению, никак не поможет тебе перебирать пароли, пока ты не знаешь, в чём она состоит.
123 2856936
Не ебу чё вы тут сретесь, но когда встала проблема квантовых компов и начали думать об квантовоустойчивых алгоритмах АНБ сильно продавливали свои алгоритмы, которые были при анализе слабее "общепринятых" и видимо имели в себе доп закладки.
124 2856939
>>856934
Когда ты такую функцию не заказывал, а она все равно есть и производитель об этом никак не предупреждает и не дает отключить это зонд в жопе, товарищь либерахен.

> никак не поможет тебе перебирать пароли


Шифрование это не только запароленый архив с лолями.
125 2856940
>>856939
Ну конечно, этот дурак решил, что я поддерживаю услуги, оказываемые Intel тем, кто попросил сделать именно так. Очень близоруко полагать, что проблема только в том, то тебя, Господина Покупателя, наебали с описанием товара. Надо пошире смотреть на то, в какой позиции пользователи находятся в пищевой цепочке и в чём корни проблемы.

И, всё-таки, надо понимать, о чём говоришь, а не о каких-то случайных числах в процессорах, которые тебе волшебным образом раскроют пароль для архива. Ламерство излечимо.
126 2857075
https://www.youtube.com/watch?v=eo-4ZSLn3jc

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

> JUST BE CAREFUL



Все надеюсь в треде core guidelines прочитали?
127 2857110
>>857075
Так в расте тоже есть usafe
А в плюсах можно использовать только безопасные ссылки и итераторы.
128 2857113
>>857110

>Так в расте тоже есть usafe


Это к чему?

> безопасные


> ссылки и итераторы


Страуструп, залогинься. Слишком жирно
129 2857240
>>857113
К тому что все познается в сравнении.
По сравнению с си плюсы очень безопасны.
Объекты между процедурами можно передать без явного указания поинтера, а елементы вектора или массива перечислить без риска выхода за пределы бай дизайн.
Любой метод в плюсах это вызов конкретной функции по имении, а не вызов поинтера из массива, (как часто делают на си). В этом мне кажется и есть главный смысл ооп.

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

Но если совсем откровенно то в дедовских книжках читал правило в духе unsafe программа/код может породить safe процесс, а наоборот safe->unsafe() нет, потому что тогда оба прастранства ансейф. Так что до безопасности раста тоже можно доебаться если захотеть.
130 2857251
>>857240
спасибо конечно за пасту, не знаю кому ты пишешь, но к моему посту эта вся информация никак не относится
131 2857331
>>857251

> хаха полтора часа страуструп пытается доказать что плюсы это безопасный язык


> К тому что все познается в сравнении. По сравнению с си плюсы очень безопасны.


Ты тупой.

Могу сказать за него: возьми свой дохуя безопасный язык и напиши на нём небезопасную хуету, чтобы падала по сегфолту на каждый чих.

Смог? Смог.

Плюсы отличаются лишь умением, которое нужно иметь, чтобы не отстрелить себе ногу. И за это плюсы дают байтоёбский контроль и скорость.
Я считаю, что всё честно.
132 2857380
>>857331

> безопасность


> познается в сравнении


...

> возьми свой дохуя безопасный язык


Шизойд, какой мой язык? Ты кому пишешь? Ты кому отвечаешь?

Ты когда про безопасность говорят что себе в голове представляешь?
133 2857387
>>857380
про сравнение я говорил, ты пукнул что то невразумительно про то что не о том вообще говорил.

Сейчас ты к дискуссии с другим аноном мою реплику приплитаешь, с какой целью, шизойд?
image.png7 Кб, 613x103
134 2857397
>>857387

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


Вы два шизойда, научитесь на посты отвечать нормально
Зачем вы кому то другому отвечаете в ответ на мой пост, я отгадывать должен что у вас там в голове происходит и кому вы пишите?
135 2857402
>>857397
Ты ветку нихуя читать не умеешь и в глаза ебёшься, дебил.

Вот тебе ветка
>>857075 ты
>>857110 он
>>857113 ты
>>857240 он
>>857251 ты
>>857331 я
>>857380 ты

Теперь не отвертишься, хуйло. Это АИБ и даже если половина "ты" в этой ветке - это не ты, всё равно конкретная сторона дискуссии понятна.

А теперь перечитай ветку очень сука внимательно. И вынь, наконец, мужские половые хуи у себя из глазниц.
136 2857413
почему мне постоянно такие шизы пишут
137 2857925
>>857397
Двачую. Похуй что за срач, но долбоебы которые влезают в ветку и даже мимо не ставят дико бесят
138 2857929
>>857925
Постоянно так делаю
139 2857935
>>857925
Тут "мимо" и не нужно.

Этот хуй либо является веткастартером, либо влез в дискач на стороне веткастартера.

Вот этот пост: >>857075
Противоположная сторона вот этот пост: >>857110

Далее всё довольно прозаично. За исключением, наверное, стороны, что решила посрать на С++ в С++ треде не попытавшись не то что привести аргументы, а даже не попытавшись уточнить контекст беседы.

Из-за чего выступают такие охуенные финты, когда постер спрашивает
>>857380

>Ты когда про безопасность говорят что себе в голове представляешь?



Так хули ты влезаешь в дискуссию, даже не представляя что такое "безопасность языка"? Это комбинация ограничений языка и здравомыслия программиста. Именно поэтому можно писать на "безопасных" языках разъёбывая всё к хуям. Именно поэтому можно писать на С++ "безопасно".

Первоначальный клэйм был
>>857075

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



Ответ: "Да, и он доказал. Чё дальше?"
140 2857945
>>857935

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


Дебил? Дебил
141 2857947
>>857945
Контраргументы будут, серун?
142 2857950
>>857935
Чел всем поебать, ты когда в чужую ветку влезаешь где идет какое то обсуждение с претензиями на аргументы и позицию, обязан отписывать мимо, если нет то ты тупой мудак
143 2857952
>>857950

>обязан отписывать мимо


Тыскозал? Книжка с правилами где? У тебя около поста написано "Аноним". У меня около поста написано "Аноним".

Хочешь уникального экспириенса, когда никто не может влезть в дискуссию? Используй трип-код. Или съеби куда-нибудь ещё, где есть DM'ы, имена, профили, конфочки... нутыпонел.
144 2857953
>>857947
Про мемори сейфти хоть что то слышал?

Да лол, мне реально надо обьяснять что безопасность это не метофизическое ограничения, а конкретные пункты
145 2857955
>>857953
Тебе тут же в видосике он поясняет, что не станет убирать эту фичу, иначе все ваши охуенные мемори-сейф языки окажутся без языка на котором их рантайм написан.

Зато добавили фичи, юзая которые можно добиться функциональной memory safety.

Хуй будешь?
146 2857958
>>857955

> что не станет убирать эту фичу


Какую фичу?

> иначе все ваши охуенные мемори-сейф языки окажутся без языка на котором их рантайм написан.


Нет, не окажутся

> функциональной memory safety


Какой?...
147 2857959
>>857952
Да, это я сказал и так кстати люди здесь делают, так что не только я. А если ты мудень тупорылый который отвечает за другого человека то ты просто идешь нахуй и на этом все заканчивается и никакого содержательного диалога не будет ни с тем ни с другим
148 2857965
>>857959

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


Я, пожалуй, воспользуюсь советом в более общей форме.

>>857958
Начинается жир ебаный. Отрастишь мозг - приходи.

А пока пошёл нахуй отсюда.
149 2857966
>>857965
Ну слив засчитан
Следующий раз хоть разберись о чем пишешь
150 2857968
>>857966
Можешь перед "сливом" сразу список пунктов для признания языка "memory-safe" выкатить. А не просто список проблем с памятью, часть который можно решить так, а часть можно эдак. И уж тем более не просто твой уткоязык, который ты облизываешь, будь то раст, жава или ещё какая хуйня.
151 2857969
>>857965
Да пользуйся чем хочешь, просто нахуя ты тут сидишь пишешь свои кринжовые простыни типо ты тут знаешь что-то и хочешь пояснить если тебе в итоге ебальник обоссывают и ты с мочей сидишь и бессодержательно срешься как в б помойке
# OP 152 2857970
Пиздец.
153 2857973

> ФУНКЦИОНАЛЬНЫЙ memory safety



Это уже старая хуйня, сейчас модно OOP memory safety

в голос с этих выдуманных определений
154 2857974
>>857973
А как насчёт object based memory safety?
155 2857976
>>857973
>>857974
Тем не менее тот хуй сверху так и не объяснил свои

> конкретные пункты


И не определил свою memory safety. Которая не определяется от конкретных пунктов в имплементации языка. Скорее от функциональных возможностей этого языка. Будь то GC или смарт-поинтеры. Поэтому он нихуя сказать и не может, а только огрызается.

Так что, выдуманное или нет, слился пока что он.
16917990060120.jpeg235 Кб, 2500x2100
156 2857995
>>857935
Зачем ты зеленому гастроллеру берешься что то разжевывать?
Школьник пришел тротлить на авось -
Пук. Хрюк. Мнум. вы дебилы повзрослеет книжек почитает придет набросит по нормальному.
157 2858039
>>857075

> JUST BE CAREFUL


Даже жаль дедулю, чтобы он не делал, а все равно продолжают си с классами юзать

> Все надеюсь в треде core guidelines прочитали?


Да даже если прочитают, половина на него хуй клала
изображение.png781 Кб, 512x768
158 2858086
>>856922

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


Если только я сам, когда решил закинуть пикчи в закрытый архив. Но тогда и время было другое, был резон. или ты про ту стори с битком?

>готовые программы давно существуют


Да, hashcat например. Но у него закрытый код, поэтому даже посмотреть как он устроен не получится. А разобраться всё так-же интересно. По сути, мне нужно лишь повторить кусочек hashcat и может быть - сделать это лучше. Либо найти более оптимальное решение, что тоже может быть.

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

>>856940
Кстати. Не знаю, может уже исправили, но вроде года до 2016го в процессорах распределение случайных чисел было вовсе не случайно, из-за чего генераторы делали и продавали в виде отдельных PCI платок. Хз как сейчас, но доля истины в посте того парня была.

аниме-бамп го!
159 2858093
Как вкатиться в CMake?

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

Хочу стать CMake богом.
160 2858101
>>858093

> я часто вообще не могу понять, что не так с зависимостями и почему проект не собирается.


Это нормальное состояние

Мне в свое время это выступление помогло разобраться с основами
https://youtu.be/y7ndUhdQuU8?si=2roV1Lf8r1Djx33A
161 2858117
>>858093
Хочешь стать CMake-программистом?
162 2858121
>>858117
Так симейк Тьюринг полный, я видел даже рендерер на чистом симейке
163 2858123
>>858101
Благодарю

>>858117
Нет, просто хочу, чтобы было какое-то понимание симейка, чтобы не отвлекать тупыми вопросами занятых симейк-богов.
164 2858265
>>858093
О это боль та ещё.
Смотри в чужие проекты и смотри как у них сделано.
Самая главная проблема СраногоМейка - это find_пукидж и последовательность для crate_lib/exec
В остольном все просто.
165 2858311
>>858265

> последовательность для crate_lib/exec


Это что такое?
166 2858341
>>858311
Симейк не собирает проект же он генерирует мейкскрипт(ы) как ./configure. Только если ./configure это обычный башскрипт к которому надо либо приложить талант в программировании на баше либо еще один генератор autoconf/automake (к которым прилагается еще файл конфигурации, три уровня блять)
То cmake он как бы сразу конфигуратор и генератор make скрипта.

А в make если ты когда нибудь пробовал на нем писать, код программы можно подробить на секции:

libxyz.so(): .. build lib

test(): libxyz.so(), ...build test

xyz(): libxyz.so(), ... build program

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

У мейка и смейка есть альтернатива - ninja и meson, если нет нужды добавлять в проект сторонние библиотеки использующие для сборки cmake, то лучше юзать мезон для проверки / сборки нужных компонентов в mpv используется можешь глянуть как оно там реализовано.
167 2858353
>>858341
есть еще scons где ты можешь на привычном питухоне написать билд скрипт
168 2858363
>>858353
Так мезон тоже на петухоне и опять таки с хорошим примером в виде mpv.
169 2858379
>>858341
Не слушай его, используй везде смейк в проектах на плюсах, дефакто это стандарт, а все остальное недоразумение должно сдохнуть
170 2858382
>>858379

>а все остальное недоразумение должно сдохнуть


Слыш ты, за мэйк и двор стреляю в упор! Петы на мейке, даже лисповые.
171 2858387
>>858382
Так ты же дурачок, нет?
172 2858437
>>858387
А может ты? И не дурачок даже, а недальновидный зумер, который не понимает изящества простых инструментов?
173 2858438
>>858437

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


Такое только с опытом приходит ну или не приходит никогда
174 2858489
Аноны, как в VS чинить не желание подхватывать хидеры на лету, создаю хидер, прописываю там описание класса, потом создаю для этого хидера cpp файл, начинают в нем писать реализацию класса, указываю в нем инклуд на заголовок всё как надо, ну в подсказках нихера не всплывает ничего после всех :: и прочего, и даже инклуды на всякие std не видет те которые уже включены в заголовки
175 2858514
>>858489
Используй VSCode
176 2858519
>>858489
Или QtCreator в нем хорошо плюсы визуализированы. Например мне нравится что если функция принимает ссылку то переменная в аргументе курсивом выделяется.
177 2858528
>>858514
>>858519

Мне VS надо
178 2858534
>>858528
Это закрытая платная говнина под винду онли, иди спрашивай у микрософта как ее настраивать.
179 2858537
>>858534
Уходи.
180 2858575
>>858534

> говнина



Говнина не говнина, ну если вкатываться в плюсы, да еще в купе с какими-то фреймворками типа как JUCE в моем случае, то эту гавнину приходится кушать хочешь не хочешь, даже тупо тянуть чужой код с гитхабов, чтобы у себя его откомпилировать, по изучать, в большинстве случаев он будет в VS проектах
181 2858577
>>858575
так что советы про смену IDE вообще не уместны
182 2858581
>>858577
Советы про смену языка
183 2858596
>>858575

> в большинстве случаев он будет в VS проектах


Так это виндософт завязанный на вижуалс++ нахуй он нужен?
184 2858597
>>858596

Кому нахуй он нужен? Лично тебе?
185 2858610
Опять линуксо шиз весь тред засирает
186 2858621
>>858610
И я его полностью поддерживаю
мимошел
187 2858773
>>858596
Ну тут ты не прав хотя студия коенчно то еще говно
многие норм разрабы и под винду и мсвц симейком собирают.
>>858519
>>858514
Эти правы, и вскодиум и креатор лучше студии галимой и все профилировщини лучше самому настраивать
>>858610
съеби
>>858621
бро

Я например все пишу под линуксом, потому что это банально удобнее, а потом уже билды под виндой проверяю. и нет я не тот ваш шиз
188 2858879
Опять линуксо шизы весь тред засирает
189 2858896
>>858773
А что vs-code на винде не популярен?
Интересно всегда было как там решен вопрос с отсутствием хидеров libstd из коробки, как там предлагается все вот это доустанавливать.
190 2858923
>>858896
С чего ты так решил и тем более почему из моего поста?
Я на винде собираю с буилд тулз сл.экзе и все необходимое, за вычетом выше упомянутой не нужной студии это в догонку к >>858596 , на платформе лучше использовать нативный копилятор, как ни крути.
Так вот, винда не предполагает что она используется для разработки, хочешь собирать - ставь булд тулз, ну или студию, или мингв/всл всякие, тут уж сам смотри.
191 2858956
>>858923
А ну то-есть есть билд-ессентиалз от микрософта? Ок тогда.
Мне просто было интересно как они выкрутились с VSCode -ом на винде, не уж то на родной операционной системе предлагают mingw скачать (может оно там в расширениях есть)
192 2859012
>>858489
Своруй решарпер с++.
193 2859055
>>858956
Вскод этро редактор, не требуй лишнего это плюс.
https://visualstudio.microsoft.com/ru/visual-cpp-build-tools
https://github.com/VSCodium/vscodium
https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools
>>859012
Ну или так, если все же студию охота юзать.
Или силион попробуй.
194 2859069
>>859012

>Своруй решарпер с++.


>>859055

>Ну или так,


Для братьев меньших
https://3.jetbra.in/
195 2859138
>>859069
знаю знаю , но кидать не стал, пусть хоть чутка погуглят
196 2860305
>>847323 (OP)
У Jetbrains есть годная IDE для С++? Подскажите какая, потому что VS выёбывается лицензией, а телефона чтоб сделать акк у меня сейчас тупо нет. Вообще нет. И взять его неоткуда.
197 2860308
>>860305
У меня нет ни телефона, ни почты. Но их отсутствие мне никак не мешает юзать вижуалстудию.
198 2860310
>>860308
Значит я что-то установил не то, потому что "ваш 30 дневный срок истёк, зайдите через свой микро-акк".
199 2860311
>>860305
>>860310
>>860308

ЗАКРЫТО
Clion
200 2860313
>>860305
Есть, но платная
CLion

можешь попробовать по советам выше qtcreator или VScode, но если с тулингом в плюсах не знаком - то готовься к аду
201 2860319
>>860313
Я из питона перекатываюсь, конкретно с PyCharm. VS выглядел очень приятно и знакомо, но решил послать меня нахуй после 30 дней.

IDE мне нужна для обучения и освоения библиотек. Я бы сказал что PyCharm был идеален, но кажется С++ в него никак не запихнуть и такой-же удобной работы с библиотеками и сборкой там не будет. Или это ошибочное мнение?
3fac61154f8f5d744fabc4193223a6a1.JPG102 Кб, 944x900
202 2860331
>>860313
QT заебись, спасибо что подсказал.
203 2860340
>>860313

>free trial


ЪУЪ СУКА

Ладно... А если NetBeans
204 2860342
Пиратство.
205 2860343
>>860319

> такой-же удобной работы с библиотеками и сборкой там не будет


У меня для тебя плохие новости, в плюсах работой с библиотекой иде почти не занимается, придется почти все делать ручками
Пакетных менеджеров всего два, conan и vcpkg, оба имеют свои плюсы и минусы пользуются ими все ещё не большинство

>>860340

> Ладно... А если NetBeans


Уж лучше спирать
206 2860350
>>860343

>спирать


А это что?
И что насчёт Eclipse? Судя по описанию, надо лишь на 1-2 вечера заебаться настройкой, а потом будет слегка прожорливая, но полнофункциональная IDE.

>conan


>vcpkg


Региональный блок. Ахуенное начало.
9vkByZQMPek.jpg128 Кб, 1023x685
207 2860440
>>860350
Блять... Я 4 часа ебался с установкой ебаных компиляторов и получил IDE без менеджера пакетов. Хотя в С++ немного другие способы ввода библиотек в проект, я хуею с того как вы этим пользуетесь. Сука... Посли питоши аж ныть хочется. Как же там всё было удобно. Теперь понятно, почему багфиксы по репортам делают так долго. Пока с какой-нибудь мелкой хуйнёй разберешься, уже и вечер пройти успеет. А как механику или неткод в играх исправлять, так вообще наверно вешалка.

Зато теперь с кудой не будет проблем. АУФ!

Но я всё ещё в ахуе... Даже с ассемблером не было так сложно.
208 2860441
>>847323 (OP)
Почему GCC создаёт такой массив информации в helloworld экзешнике? 3881 строка. При этом сам код на пике справа.
IDE Eclipse, C++ , toolchain - GCC, вспомогательно стоит Mingw.

В продолжении ветки ахуевшего питоноёба >>860305 ... >>860440
209 2860450
>>860441
Это рантайм плюсов. В плюсах ты платишь и за то, что используешь, и за то, что не используешь.
210 2860462
>>860450
-О3 врубаешь и не используешь.
211 2860482
>>860441

> #include <iostream>


Это если что не линковка с библиотекой через хидер (как в си), а включение части stdlib в файл.
Плюсы это ооп язык и что бы реализовать наследование как в языках с рантаймом нельзя базовые классы выделить куда то там в отдельный модуль как в glibc, они все добавляются в исходник и компилируются с программой.
Для прикладного языка это не проблема, хэловорлд на электроне вообще в себя браузерный движок будет включать и ничего.
212 2860735
>>860305
Дополню что еще есть fleet, но это какое-то обрезанное говно которое они допиливают онлайн. Зачем её такой выпускать хз, очень странный мув
213 2860876
Пытаюсь разобраться с концептами

https://onlinegdb.com/Soh_GxKB5b

почему первая проверка дает false?

может я концепт same_as неправильно использу в requires?
214 2860891
>>860450
>>860482
Спасибо что объяснили. Но это вроде статический метод включения библиотек, а есть ещё динамический. И вот вроде в нём можно положить либу рядом с exe и она будет вызывать по мере необходимости. Если не проебался гайд смотрел глубоко ночью, то плюсы и минусы есть в обоих методах.

>>860735
Если смогу вкатиться в опен сорс, мб смогу оформить себе Clion. С другой стороны, если разберусь с Эклипс - в этом не будет необходимости. Тем более если с библиотеками всё равно работать в ручную, по большей части, то и смысла в clion нет.
215 2860899
>>860891
Под линуксами годная иде для плюсов kdevelop
216 2860984
>>860899
>>860891
Эулипс и кдевелок кал говна.
Креатор, силион ну или кодиум. Все.
1696083312593.jpg28 Кб, 638x474
217 2860988
Вим, емакс
218 2861085
Вим лучший. Вешаешь Искейп на ненужные кнопки для удобства и наслаждаешься быстрейшим редактором.
220 2861104
>>860899
До линукса ещё не дополз, но уже надо Centos изучать. Но это можно и на OracleVM замутить. Но раз зашла речь, то вопрос такой.
Насколько сложно собрать предельно легковесный линукс, но с поддержкой CUDA, для выполнения кода? Просто чтоб заюзать больше ресурса, который раньше мог бы уходить на всякие кнопочки и виджеты бубунты/винды.

>>860984
А теперь расскажи почему.
221 2861130
>>860876
Равно убери в первом случае
222 2861143
>>861104
просто ставишь спин федоры минималистичный, который понравится и все. например с i3wm https://fedoraproject.org/spins/i3/
223 2861171
>>861130
Хех. Это так в учебнике Лоспинозо проверяется наличие оператора += у типа в шаблоне. Проблема в том что концепты в С++20 успели видимо синтаксис изменить с тех пор как учебник написан. Теперь
requires (T x, U y) {
{expression} -> concept
}
А в книжке
requires (T x, U y) {
{ x += y } -> T
}
224 2861175
>>861171
requires (T x, T y) {
{ x += y } -> T
}

фикс
225 2861189
>>861143
Да я хочу VPN поднять, а для него вроде проще всего юзать именно centos. Тем более сервак и так будет виртуальный, так что легкость и прожорливость оси имеют значение.
226 2861247
>>861104
Линукс это не винда.

Устанавливаешь минт (или росу если не хочешь gtk оболочку а хочешь lxQt или kde) с оболочкой которая больше всего подходит под комплюктер.

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

В минте или росе включаешь в специальной утилитке проприетарные дрова nvidia (чтоб опять не пердолится) находишь где надо этот твой cuda sdk под линупс компиляель с ним программу переключаеешь в tty1 (то есть выключаешь товарища графони и переходишь в сосноль ) запускаешь там свою программу профит.

Как перейти в tty и все остальное сам уже разберешься, главное почему роса или минт потому что они хорошо настроены из коробки при этом в первом случае это 100% пакетная база убунты а во втором нпято близкое к федореному горю, соответственно проблем с установкой куды под убунту или федору проблем не будет.
228 2861253
229 2861254
>>861189
В виртуалке cuda работать не будет.
230 2861259
>>861254
Ты немного не так понял.
Виртуалка для сервака - Centos.
Реальная ось на реальном ПК - для работы с CUDA. Конкретно для высвобождения ресурсов. Написать можно на винде, а запустить уже под линуксом. Глядишь чуть-чуть быстродействия смогу получить за счёт легковесной ОС.
231 2861278
>>861259
Логинишься не в иксы а в tty без оболочки и все, потом обратно.
Минималистичная ос тебе не нужна, ты на ней заебелься проприетарные дрова устанавливать и куду свою.
Бери стандартные.
232 2861285
>>861253
А блин ясно, что я тупой для плюсов операторы в полюсах часто возвращают референс
233 2861320
>>861285
Да не парься, концепты мало кто в целом понимает и использует.
234 2861334
с++ хуйня
235 2861346
>>861320
Тупоскриптеры постоянно используют констрайнты в дженериках. Но там все проще и ограничивается extends и иногда тенарным оператором на типах https://www.typescriptlang.org/docs/handbook/2/conditional-types.html

>>861334
Ты не лучше.
236 2861351
>>861346
Ну так я ваще тупой зумер
Rias Gremory [Astavelia].jpg262 Кб, 1133x1600
237 2861765
Вчера переписывал прогу с питона на плюсы. Что могу сказать? Разницы почти нет. Срезы чуть удобнее substr. Если не хочешь прописывать типы, ебашишь везде auto. Библиотека std::filesystem мне показалась удобнее и гибче аналогичной питоновской. На любом языке код будет выглядеть секретной шифровкой, если не обернуть его в абстракции. Прототипирование не нужно? Единственное преимущество питона, как мне видится, наличие бесконечного количества прикладных библиотек для самых разных высокоуровневых задач. Например, бота в телеграме с нейросетью я скорее всего напишу на питоне, потому что на с++ я толком прикладных библиотек не знаю, кроме ЛОХмана.
238 2861769
>>861765
веб фреймворк на с++ для микросервисов где? кроме китайского drogon
239 2861779
>>861769
userver
240 2862061
>>861765
Ясно, а шлюху эту нахуя ты запостил?
241 2862107
>>847323 (OP)
Как правильно искать overlay программы или примеры для c++? Пару лет назад видел у R6S киберкотлеты реалтайм оверлей с температурой и загрузкой CPU/GPU который выглядел как консольная строка вверху экрана, только без самого окна консоли. По сути это должно было быть консольное приложение, но в безрамочном режиме. Как такое написать или нагуглить?
242 2862216
>>862061
Говорит же развлекался с питоном раньше в одиночестве, решил вот взяться за плюсы. Не набрасывайся а объясни чем плюсовики увлекаются.
жирными бабищами с большими отвисшими ООПаями
243 2862308
Нужно ли применять ключевое слово extern для всего содержимого файла ?
Нужно ли при определении класса всегда создавать конструктор копирования, деструктор, конструктор перемещения, оператор переобразования и тп. ?
244 2862311
>>862308
Лучше взять нормальную книгу и прочитать ее
245 2862336
>>862308
Конструктор и деструктор обезательно, оператор и константы-"геттеры" нет.
Экстерн нужен что бы сказать компилятору что у тебя функция/конструктор будет объявлен позже, но пусть все знают что она есть.
246 2862337
Всем привет. Есть вопрос, на который я не смог найти решения.
На работе есть температурный котёл, в нём два датчика. Один измеряет температуру корпуса, второй температуру содержимого. Показатели передаются в arduino, с него через монитор порта в компик. Там в простой программе данные выводятся на экран каждую минуту с этих датчиков. Просто в одну строчку через пробел. Интернета на ноуте цеху и не будет, юсб работает только один, и в него уже воткнута ардуина. И есть старый телефон на андроиде. Нужно сделать так, чтобы данные отправлялись смской по мобиле. Я предложил такую структуру: не отключать на экране телефон никогда, оставить открытой прогу с смсками, а этот ноут подключить к мобилке как блютуз клавиатуру.
Вопрос: как сделать так, чтобы печатать на клавиатуре ноутбука, а цифры набирались на телефоне? Я пробовал свою блютуз клавиатуру дома подкл, она нормально работает. А вот как ноут превратить в эту зуб-клавиатуру ну могу догнать
247 2862345
>>862337
Отправлять данные через гсм модуль
248 2862346
>>862337
А отправлять по сети нельзя?
249 2862361
>>862336

>Экстерн нужен что бы


extern нужен чтобы сказать что переменная (ее начальное значение) определяется в другом модуле, а там где extern там только декларация переменной. Функции все по уморчанию extern. Чтобы их сделать локальными нужно сделать их static
250 2862366
>>862345
>>862346
К сожалению, у меня только такой вариант разрешили к реализации, который я описал
251 2862370
>>862361
Т.е от этого зависит какую информацию компилятор оставит для линковщика. Есдли переменная extern, то линковщик будет искать ее в другом объектном модуле, чтобы связать.
252 2862408
>>862366
В чем принципиальная разница между отправкой с телефона инфы и напрямую с ардуины через гсм модуль?
253 2862418
>>862308

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


в 99% случаев да

> Нужно ли применять ключевое слово extern для всего содержимого файла ?


в 99% случаев нет
254 2862439
>>862418
Но а если у меня в коде не будет задействован конструктор копирования, перемещения, операторы и деструктор ?
255 2862442
>>862439
Как у тебя может быть не задействован деструктор?
256 2862447
>>862361
Ну как бы не совсем. "Модуль" возникает уже при компиляции объектных файлов, а сам по себе язык не содержит семантики архитектуры приложения, даже препроцессор это по сути не си и не плюсы уже, а extern именно что паттерн языка и говорит он что эта функция - есть:

extern "C" { void foo(); }

Но она будет объявлена после.
Это придумано не для модулей, а для того что бы функции например взаимовызывали друг друга без экстерна как ты объявишь иначе?
257 2862459
>>862408
Я попробую задать завтра такой вопрос. Ине поставили очень жёстко задачу использовать вариант, который я описал выше. Рискну уточнить
258 2862480
>>862447
Не понял тебя. В С++ и так если напишешь сто раз
void foo();
void foo();
void foo();

То все нормально соберется. Деклараций функций может быть сколько угодно. Проблема в переменных. Там декларация = определение пока ты extern впереди не написал.

extern "C" в плюсах это вроде только для совместимости с сишным кодом
259 2862553
>>862459
Ну и задача не совсем понятна. Тебе для чего нужно отправлять эти данные? Ноут, который с ардуиной связан подключен к сети?
260 2862657
>>847323 (OP)
Сап крестоносцы, дело такое, сам пишу на java и работаю соответственно spring макакой. На этой неделе уволили с работы, пару дней сижу и вала ебу с выгоранием. Давно хотел что-то новое попробовать, решил взяться за кресты, у меня есть две-три недели исключительного кайфа без ебаной работы. Так вот, пришел к вам с вопросами, в основном они вам наверное тупыми покажутся, ну да похуй

1. В основном на джабе пишут веб говно, особенно ентерпрайзное, у вас так же? Или с++ используется везде и по чуть чуть?

2. Каким веб фреймворком вы пользуетесь на крестах? Нашел вот эти
crowcpp.org
oatpp.io

3. Что нужно знать джаба макаке перед тем как браться за кресты?

Щитаю уж лучше с вами пообщаться чем читать мусор копирайтеров которые друг у друга пиздят калтент как обезьяны пиздят бананы друг у друга на тайланде
261 2862697
>>862657
На плюсах пишут всё, кроме веба.
262 2862778
>>862657
Джава дэбилы со сборщиками мусора умудряются писать код который по памяти течет, какие вам нахуй плюсы брат.
Ты вообще куда-то не туда забрел, веб на плюсах действительно странно, иди лучше го какой-нибудь поковыряй или питон.
А тебе вообще для чего? Целей своих ты так и не написал
263 2862798
>>862107
Это платформозависимая вещь, на линуксе это можно сделать через kms\drm драйвер ядра
264 2862835
>>862798
То есть нужно искать либы для Win11 на С++? А есть какие-либо стабильные и популярные либы для работы получения системных параметров? Типа...
"Процесс жрущий максимум оперативы/CPU/аптайма диска в данный момент". У меня на 8.1 стояли гаджеты для этого, но на 11й они уже не работают. И там не было контроля над ресурсами относительно процесса. То есть нельзя было глянуть, какая именно программа резко-дерзко решила закрутить твой HDD, пока ты куришь у окна. Хочу решить эту проблему, ещё и с оверлеем.
265 2862843
>>862835
Даже искать ничего не нужно. winapi
266 2862848
>>862442
Мб он имел в виду что деыолтного хватит.
267 2862872
>>862480
Ну да, ты прав, это именно что объявление функции вовне, для линковки.
И семантика для разруливания указателей на уровне архитектуры есть, например restrict.
268 2862878
>>862848
Нужно всего лишь помнить что
1) Дефолтный конструктор копирования и оператор присваивания делает буквальное копирование всех свойств, следовательно если у тебя есть указатели внутри твоих данных то они будут также скопированы. У тебя может получится что копия будет содержать указатель на на одни и те же данные что и оригинал. Если общие данные разрушаются в деструкторе оригинала или копии, то копия или оригинал соответственно получают UB.
2) Буквальное копирование может быть затратным. Иногда хватает перемещения вложенных данных из оригинала в копию. Следовательно нужен не дефолтный оператор присваивания перемещения.
3) Если есть наследование. struct B: A {} то при
A b = new B;
и если деструктор ~A не виртуальный то у b будет вызван деструктор ~A, который может не учитывать свойства из B. Следовательно нужен не дефолтный деструктор.
4) При динамическом выделении ресурсов (в том числе памяти) следует использовать паттерн RAII чтобы не было утечек. Но RAII не избавляет от возможной двойной деаллокации. Соответственно могут быть нужны конструкторы и операторы копирования и перемещения
5) Следует обратить внимание на правило пяти, есть табличка в каких случаях какие дефолтные конструкторы и операторы генерирются.
6) Лучше руководствоваться принципом что явно не разрешено то запрещено. Следовательно в коде лучше явно удалить дефолтные конструкторы и деструкторы если ты их не собираешься использовать.
269 2862883
>>862878
7) Если ты не собираешься на дядю работать, то глядя на эту порнографию лучше писать пет своей мечты на расте наверное.
270 2862884
>>855449
graal vm
271 2862895
>>862884

> graal vm


О, это то самое о чем говорили софтовики из мцст, универсальный вм с фирменным джитом для всего.
Они тоже делают https://m.youtube.com/watch?v=vw6pZd8wamw но бля почему на это деньги не вяделяют команду не собирают, почему вечно какие то студенты джавы портируют да дяди на энтузиазме за низкую зп.

Где обещаная поддержка айти. Нихуя не понимаю.
272 2862997
>>862835
Бля пиздец чел, я то думал у тебя интересная задача с рисованием поверх оконной системы, а ты неиронично строчку в гугл написать не можешь
273 2862999
>>862778

>А тебе вообще для чего? Целей своих ты так и не написал


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

>>862697
>>862778

>На плюсах пишут всё, кроме веба.


>веб на плюсах действительно странно


Ну раз не пишут то окей, а что вы пишете тогда?
274 2863029
>>862999

>Ну раз не пишут то окей, а что вы пишете тогда?


"Мы с Тамарою в нии программируем хуи"
Что душе угодно.
275 2863069
>>862553
К сети не подключен.
Нашёл, что можно использовать hidclient. За ночь научился устанавливать линукс. Сейчас нашёл архив с этой программой, ищу, как компилировать
276 2863130
В программе для эмуляции Xbox геймпада для DualSense, DualShock 4 и т.д. баг появился, вроде раньше не было https://github.com/r57zone/DSAdvance/blob/master/Source/DSAdvance/DSAdvance.cpp

По какой-то причине переодически сбоит, отрубается USB (высокая частота опроса? слип 3 мс), также после сбоя или иногда использования не выключается винда (толи неверно эмуляция vigem запускается)

Может кто знает в чем может быть причина? Может есть какие идеи? (Сам уже хз куда копать, где найти баг)
Проект интересный, с кучей фишек, код не самый красивый, постепенно улучшается, на 1000 строк.
277 2863172
>>863130
*толи неверно эмуляция vigem завершается, то ли хз
278 2863194
>>863130
Ну раз появился откати до версии где его не было? Какое решение ты от нас ждешь? Вряд ли тут кто то страдает как и ты такой же хуйней. Можешь еще разработчику написать
279 2863203
>>863194

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


В старых нет нужных фишек

> Какое решение ты от нас ждешь?


Может кому интересно будет поискать

> Вряд ли тут кто то страдает как и ты такой же хуйней


геймеров среди разработчиков немало, может кому-то будет интересно
280 2863205
>>863194

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


В старых нет нужных фишек

> Какое решение ты от нас ждешь?


Может кому интересно будет поискать

> Вряд ли тут кто то страдает как и ты такой же хуйней


геймеров среди разработчиков немало, может кому-то будет интересно
d94-1755027537.png279 Кб, 710x842
281 2863296
>>862843
Спасибо.

>>862997
Интересные задачи у меня в другой области, но там чистая математика. А так хочу сделать минимальный оверлей для ресурсов системы.
282 2863398
>>863296
Чел ну не позорься - бери мангохуд изучай.
283 2863492
>>863130
Несколько часов работает, в простое, потом перестает работать и vigem виртуальный контроллер остается, но ни как не реагирует
284 2863533
>>862459
Спросил. Сказали, задача была конкретная, никаких других вариантов.
285 2863555
>>863398
Ууу... Как раз то что искал. Спасибо анон :)
286 2863675
>>863492
Откатывай по чуть-чуть версии смотри в которой бага нет, дифай изменения и ищи что там и как перепиливалось и найдешь.
1569563184466.png201 Кб, 1205x856
287 2864019
Почему так?
288 2864046
>>862895
У меня в конторе студенты бинарный транслятор писали с x86 на эльбрус недавно за зп кассира в пятёрочке)
289 2864096
>>864046
как меня это заебало
Н лет ебашил в нии и ушел в торгаши
290 2864119
>>864019
Каким нужно быть упоротым ебланом чтобы всю эту хуйню дрочить
291 2864127
>>864019
Потому что когда мы принимаем && нам как бы нахуй не нужно конструировать что то.
292 2864135
>>864127
И? Ей же на входе приходит rvalue
293 2864150
>>862657
1. Прошивки для вибраторов
2. Никаким, владельцам типичного бизнеса дешевле во всех смыслах нанять java/python/golang крудошлепов.
294 2864151
>>862657
3. У ресурса/памяти 1 владелец, владелец живёт, пока он нужен, когда он не -- самой за собой говно: деаллоцируй память/отпусти ресурс. Все остальное -- это причмокивания, а это база
i(52).webp42 Кб, 479x320
295 2864163
>>864046
(Ядро, сбер, т-платформы, роснано) эта компания ест слишком много бюджетных средств (МЦСТ).
296 2864164
>>864135
Что такое rvalue? Возвратное что ли?
298 2864271
>>864259
Пиздец. Как будто чиновник сидел придумывал. Так и не въехал что к чему и почему.
299 2864290
>>864135
Как я понимаю:
Когда функция принимает &&, ей в целом похуй что ты ей дал. Рвал? Отлично. Лвал? Заебись, работаем.
Когда функция принимает & или значение, ей приходится создать объект из твоей рвал ссылки и она воспользуется мув конструктором.
300 2864619
>>864290
Какая-то жопа выходит.
Функция принимает аргумент&& и ей на входе приходит &&, и отчего-то move может не произойти. Бред.
301 2864650
>>864619
РефРеф - это универсальная ссылка. Значит прийти может что угодно, а не только РефРеф.
302 2864735
>>864046
Ну так зп кассира за качество продукта и получали видимо.
303 2864748
>>864735
Двачую, что там вообще могли написать студенты, причем даже не "вчерашние" студенты как написал чел, а буквально студенты и скорее всего 3 курса
304 2864755
>>864046
Унипро что-ли? Разве они jit x86->e2k писали?
305 2865175
>>864046
Эльбрус разве продается в открытом доступе ?
306 2865177
Что такое xvalue, gvalue и prvalue ?
307 2865241
>>865177
Категории выражений.
308 2865301
>>865175
Продается юрлицам под подписку.
309 2865750
>>857953
Плюсы являются memory safe, так как иначе это UB, а делать UB в плюсах запрещено. На щеглов похуй.
310 2865764
>>862480

> extern "C" в плюсах это вроде только для совместимости с сишным кодом


Это чтобы использовать сишный ABI. Тогда имена функций будут не заманглены, и их можно будет по имени звать из DLL.
А через сишный ABI уже можно будет вызывать твои функции из других языков.
311 2865953
>>865177
Код на С++ это набор объявлений. Некоторые из объявлений могут быть одновременно определениями. Внутри определений могут быть другие объявления, а также выражения. Выражения могут быть только внутри определений. Примеры выражений:
x = a + b;
++x;
x;
Не следует путать int x; и просто x;. Первое - объявление и определение, второе - выражение. У выражения есть тип и есть категория. glvalue (не gvalue как ты написал неправильно) это одна из разновидностей категорий выражения, указывающая на то, что выражение обладает идентичностью и постоянным местом в памяти. rvalue это наоборот что-то временное, сущность у которой можно забрать право владением ресурсом. lvalue - подвид glvalue, у которого можно взять адрес в памяти и еще некоторые другие вещи можно с ними делать. prvalue - это подвид r-value, которые не могут быть полиморфными и обладают еще некоторыми ограничениями. xvalue - это подвид одновременно и gvalue и rvalue, своеобразный гибрид, который имеет идентичность, но в то же время, у которого можно украсть ресурс.
Примеры:
10; prvalue
x; lvalue
x + 10; prvalue
x = y; y неявно преобразуется в prvalue, все выражение целиком имеет категорию lvalue
"mudak"; lvalue
std::move(x); xvalue
f(x); prvalue если возврат по значению
g(x); lvalue если возврат по ссылке
r(x); xvalue если возврат по правой ссылке &&
Правыми называют национал-социалистические ссылки
312 2866010
>>865953
Случай со строковыми литералами может подорвать неподкованных, тут лучше пояснить.
313 2866038
>>865953
Это абстрактная демогогия.
Зачем они и для чего их ввели вот в чем вопрос.
Что они дают компилятору (если это очередной слой абстракции для реализации статического ооп ) или программисту (помимо запутывания).
314 2866062
>>866038
Ввели все это, чтобы поддержать семантику перемещения, чтобы увеличить производительность программ и удобство написания кода. С++11, где все это появилось, далек от от классического С++ гораздо больше, чем классический С++ далек от С, можно сказать, что это новый диалект языка, возвышающий его над всякими жабами и шарпами.
315 2866108
>>866062

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


Так нет никакой семантики же, std:move() можно юзать как угодно пихать куда угодно, при этом реально никуда никто не перемещается потому что на самом деле просто свайпается указатель/аллокатор данных внутри классов (типа как в си всем известный макрос). Либо ничего не свайпается потому что программист не понял сути и тыкает функцию после копирования или перед копированием.
r, g, x, pr value вообще ничего не дают ни языку ни программиста ни компилятору, они есть только в голове тех пто их придумал.
316 2866120
>>866108
Если просто написать std::move(x); действительно ничего не переместится никуда, x скастуется к правой ссылке на x.
Если написать y = std::move(x);, то вызовется перемещающий конструктор, и владение ресурсом (если он есть) переместится от x к y.
317 2866134
>>866108
Глвал пюррвал и Хвал не выдумали, они появились при попытке осознать что можно,а что нельзя мувать.
В повседневном использовании тебе вообще поебать на них, это верно. Это инструмент дизайнеров языка.
318 2866150
Гуляя по лесу, нашёл во мху презентацию НЕУДОБНЫХ для C++ замечаний.
http://www.fefe.de/c++/
319 2866201
>>866150
Ну так и тащи их сюда. Нахуй мне по твоим ссылкам ходить
321 2866237
>>866223
Ссылка на ссылку, блять.
322 2866364
>>866223
Слишком много написано, в основном боль неосиляторов, которой никого не удивить.
323 2866438
>>866038

>Зачем они и для чего их ввели вот в чем вопрос.


Для строгости и компактности формулировки правил.

>>866108

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


В некотором смысле да. В релизном конфиге ни у чего в твоем коде не будет такого атрибута, как value category.
324 2866649
Я у себя в шараге работы делаю по C++, и меня как-то Visual Studio заебал так как это чистой воды блоатваре. Решил поставить TDM-GCC но в нём не работает setlocale(LC_ALL, "Rus"). Как-то можно поправить?
sage 325 2866668
>>866649

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


Вот и пердолься, тупая свинина.
326 2866677
>>866649
Сменить командную строку на MSYS2.
327 2866679
>>866649

> GCC но в нём не работает setlocale(LC_ALL, "Rus"). Как-то можно поправить?


В GNU libc такой локали нет, вынь пробку майкрософт из попы и поищи стандарт (скорее всего что-то вроде en-US ru-RU.UTF-8 ja-JP.JIS)
328 2866770
>>866679

>ru-RU.UTF-8


Какие же пердоли тупые, господи.
изображение.png37 Кб, 857x391
329 2867348
>>860876
Во-первых, используй std::boolalpha вместо пиздеца, который ты написал.
Во-вторых, false выдает из-за несоответствия типов. Оператор += возвращает ссылку на double.
1696513109337.png9 Кб, 64x64
330 2867356
>>867348
Вы что с плюсами сделали
Это что
331 2867361
>>867356
Плюсы нужны, чтобы докопаться до истины Вселенной, для всего остального есть питон и жабаскрипт.
332 2867378
>>867361
Почему в плюсах столько минусов?
333 2867380
>>867378
Чтобы выжать максимум производительности из железа.
334 2867403
>>867348
Парашная блевотина. Кто неиронично так пишет тот идиот
Untitled.png35 Кб, 1042x699
335 2867448
>>867403
Никто "так" не пишет. Это был разбор как работают концепты в плюсах. Полный код с концептом Averageble
sage 336 2867541
>>867448
Сблеванул
337 2867567
>>867541
надеюсь помог )))))
338 2867692
>>867541
>>867403
Да нормально же. Чем дальше от Си, тем лучше.
В стиле Си нужно на Си писать.
339 2867710
>>867692
При чем тут СИ вообще, наркоман
340 2867735
>>867710
При том, что нужно писать на новых плюсах, а не на си с классами.
341 2867738
Дайте названия годных книг по программированию или какие-нибудь лекции по с++ интересные.

p.s. - магистерские лекции по с++ не зашли, много воды.
342 2867752
>>867735
Ты что несешь понимаешь? То у него стиль СИ, то теперь СИ с классами, вращаешь своей жопой прямо в полете.

Где это начинается и заканчивается? Писать надо понятный и хороший код, хороший в категории плюсов производительный и безопасный. А если ты хочешь дрочить, заниматься хуйней, а не программировать то иди хаскель какой-нибудь тыкай, а не энтерпрайз язык
343 2867761
>>867752
А че там непонятного. У тебя есть шаблоны. Шаблоны в плюсах слишком общие. В них сначала типы подставляются, а потом они компилятся, те работают как препроцессор фактически. Из-за этого:
1. ошибки в шаблонах наркомансие непонятные
2. типизация хромает по сравнению дженериками в том же шарпе, где ты на тип накладываешь ограничения. Ведь если ты внутри дженерика итерируешь, ты должен как-то в шаблоне заявить что тип ирерируемый.Концепты решают ту же проблему что where T: Inteface в шарпе
344 2867772
>>867752

>Ты что несешь понимаешь? То у него стиль СИ, то теперь СИ с классами, вращаешь своей жопой прямо в полете.


Не нужно прикидываться дурачком, ты понимаешь о чем я.
345 2867796
>>867735

>При том, что нужно писать на новых плюсах, а не на си с классами.


Стиль Qt мне кажется гораздо более читаемым и удобным, чем то, что комитетчики толкают в новых плюсах.
346 2867865
>>867735
Писать надо код, а не инструкции для генератора кода. Если ты не программист, а макака обслуживающая генератор, пиши сразу на питоне, ведь это и есть твоя мечта.
347 2867868
>>867738

> магистерские лекции по с++ не зашли, много воды.


Я даже не могу представить где воды меньше
348 2868043
ананасы помогите пожалуйста если кому не лень, есть одна программа удаляющая дубликаты https://github.com/pauldreik/rdfind она при удалении дубликата оставляет самый первый файл и удаляет остальные (из пары файлов 1.txt и 2.txt будет удалён второй, из пары файлов a.txt и z.txt будет удалён второй). как поменять её поведение на обратное? я обычный гречневый кузьмич и ни разу не писал на крестах, поэтому открыв код я вообще ничего не понял. это можно сделать поменяв какую-нибудь одну строчку в коде и перекомпилировав программу?
349 2868053
>>868043
Почему не rsync? Там вроде можно настроить поведение.
350 2868135
>>867868
Он постоянно показывает примеры с кодом, говорит про функции, а мне хочется кишечек, не воды.
351 2868172
>>868135
Если тебе не нужны примеры и объяснения, то просто иди на цпп референс/стандарт и зачитывайся
352 2869201
Аноны, нормально будет прочитать кирпич Праты, а потом шлефануть новыми стандартами для вката?
353 2869316
>>869201
На завод да.
Туда можно в целом и без знаний.
Знаю что в ЦАГИ есть внутренний курс по плюсам, походу настолько все плохо.
354 2869328
>>867865
Предлагаешь ебашить на ассемблере? Ведь любой высокоуровневый ЯП это просто набор инструкций для генератора кода.
355 2869413
>>869201
Какого вката, конкретнее мысль. Озвучить в общем вводные и свои цели
356 2869521
>>847323 (OP)
всем привет я новенький как тут дела у вас
357 2869528
>>869521
стагнируем
358 2869537
а я не могу свой коммент удалить?
16909952822890.webp55 Кб, 824x745
359 2869547
https://www.youtube.com/watch?v=lgivCGdmFrw

Ну что, готовы переходить с плюсов на няшный свифт?
360 2869554
>>869547
А при чем тут платежная система
361 2869559
>>847323 (OP)
Подскажите, пожалуйста, что можно почитать, чтобы вникнуть в программирование микроконтроллеров stm32.
362 2869781
>>869547
Нет, я ещё не всё ноги отстрелил.
Но учитывая то, что когнитивная нагрузка во время использования плюсов растет экспоненциально, я скоро не смогу писать на современных стандартах.
363 2869843
Пацаны.
В общем. Есть ли какой-то пакетный менеджер для C++?
Чтобы типа прописал в файлике зависимости. Сделал cpppm install - и все само на нужной машине докачалось в какую-то папочку packets?
Ну не может не быть. Не поверю, что в 2023 году - надо все еще возиться с MAKE'ом и руками качать все библиотеки нужные, разбираться че там с чем взаимодействует и прочие вещи делать.
364 2869856
365 2869857
>>869843
Conan и vcpkg

> Чтобы типа прописал в файлике зависимости. Сделал cpppm install


К сожалению, ебаться ещё придется

Если пользуешься симейком то самый простой способ - качаешь себе локально пакет - в симейке прописываешь add_subdirectory(...) - добавляешь нужные таргеты куда тебе нужно
Делов на минуту

> Ну не может не быть. Не поверю, что в 2023 году - надо все еще возиться с MAKE'ом и руками качать все библиотеки нужные, разбираться че там с чем взаимодействует и прочие вещи делать.


Ну так по заветам дедов, пэкедж менеджеры это утерянные технологии

хотя мейком сейчас наверное совсем дедушки пользуются, есть симейк, сезон, премейк и так далее
366 2869929
367 2869947
>>869856
>>869857
>>869929
Спасибо, пацаны!
368 2869995
Купил ReSarper, поставил на студию 2022.
А че дальше-то делать?

Дайте гайд какой-нибудь.
369 2870019
>>869995
Теперь продавай.
370 2870037
>>869781
Тогда тебе волноваться не о чем. Новые сьандарьы говно и нахуй не нужны в большинстве своем.
371 2870116
новые это после 11 или 98 ?
372 2870117
>>870116
Начиная с 11.
373 2870118
По сути в новых стандартах из-за ranges пиздос как все меняется. Вся stl новая.
374 2870132
>>870118
Старый код продолжает работать. Можно начать помоленьку писать на новых рэнджах. Совместимость 100%.
375 2870176
>>870118

> пиздос как все меняется


Что все?
376 2870188
>>870176
Да все
377 2870240
>>870118
Так ренжи достаточно простая концепция, как и отображения. Если не особо задумываться как оно там работает. Концепты мой мозг сильнее насилуют. Но я так понял, что везде есть пара сильных челов, что пишут шаблонный код, а остальные смотрят на них как на аутистов и используют эти поделки.
378 2870248
>>870240

> Концепты мой мозг сильнее насилуют


Чел... Концепты самая простая вещь в плюсах Типы для типов
379 2870252
>>870248
Ага, а темплейты это просто подстановка типов, что сложного
380 2870264
>>870248
Для понимания простая, а использовать их ебля неимоверная. Именно свои создавать, а не уже существующие. Ну или я не осилил, хотя мне и не особо надо было.
.png25 Кб, 443x835
381 2870338
Плюсаны, а это реально у вас так принято код писать, или это алиса с ума сошла?
Просто бредовый же какой-то ситль. Вот я в старом C++ коде видел более приятный с f_fieldName. Ну или _fieldName. Или вообще идеальный: fieldName. А тут какое-то непонятное _ в конце.
382 2870345
>>870338
Везде по разному.
383 2870356
>>870338
Алиса код с яндекса слизала, а яндекс, как известно, говно.
384 2870362
>>870338

>Вот я в старом C++ коде видел более приятный с f_fieldName. Ну или _fieldName


> А тут какое-то непонятное _ в конце.


Сорта говна, в последнее время чаще стали писать m_var
385 2870374
>>870362
В последнее время? Так писали динозавры когда из иде был только вим.

>>870338
Лично мне не нравится что такой стиль системщину напоминает. Вот там реально пиздец с их акронимами в три буквы, бесконечными подчеркиваниями и тп.
А вообще спалить дауна по код стайлу изи, он не переносит скобку на новую строку
386 2870405
>>870338

>это реально у вас так принято код писать, или это алиса с ума сошла?


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

>вообще идеальный: fieldName


Ога, идеальный.
Тебе придется:
а) ебать мозг на выдумывание синонимичных имен для параметров конструктора;
б) потом ебать себе мозг, сопоставляя имена параметров с синонимами;
в) нельзя иметь метод с именем fieldName.

>какое-то непонятное _ в конце


Чисто служебная информация, самое ей и место в конце. Начало слова для человека всегда бол инф нес, ем нец ова. Поэтому чтение кода с префиксами требует больше внимания.
Один малюсенький символ в самом неприметном месте. Что можно лучше вообще придумать?
387 2870498
>>870405

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


this->fieldName = fieldName
Чи в плюсах так нельзя? Вроде помню что можно было. В вузе-то так и писал.

> потом ебать себе мозг, сопоставляя имена параметров с синонимами


Допустим this-> действительно нельзя. Так а в чем проблема, я проинициализировал в конструкторе, дальше - просто использую, че там сопоставщять-то?

> нельзя иметь метод с именем fieldName


Это уже вообще странный доеб.
Во-первых, потому что раз это метод, он должен состоять из двух слов в любом случае. Глагол+Сущестительное. Это обычная практика. Что делаем и с чем. getAge, setAge. Исключение - ассесторы для булевых значений, там обычно is как префикс. isRunning, isConnected
Во-вторых, если это реально валидный доеб. Ну, тогда к языку вопросы, ведь и метод f_field, field_, _field - тоже нельзя будет. Беда-то какая. Надо срочно новый язык, чтобы было как-то так: this->methods->field или как-то так, чтобы можно было мешать имена полей и методов.

> Чисто служебная информация, самое ей и место в конце


А мне вот удобнее было бы, чтобы я написал f_ и все поля класса в выпадающем списке увидеть, потом найти то что надо мне.
388 2870608
>>870498

>раз это метод, он должен состоять из двух слов в любом случае.


T age_; // поле
T age() const; // гет (подчеркивания в конце нету)
void age(T newSize); // сет (подчеркивания в конце нету)

>Это обычная практика. Что делаем и с чем


Из контекста итак очевидно, где гет, где сет. Как по мне, писать их явно - лишнее, как и добавлять сюда название класса
vector.size(); // пизже, чем
vector.getVectorSize(); // зачем тут эта бредовая обстоятельность?

>Во-вторых, если это реально валидный доеб.


В части явного написания префиксов гет/сет - вкусовщина.

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


>this->fieldName = fieldName


Многословно.

>А мне вот удобнее было бы, чтобы я написал f_ и все поля класса в выпадающем списке увидеть, потом найти то что надо мне.


А мне вот удобно не потом, а сразу найти, чо надо, а не устраивать всякий раз инвентаризацию всех полей.
389 2870686
>>870498

>в чем проблема


В том, что одно и то же имеет разные имена.

class Item {
Item (int price) : cost = price;

void setValue(int price) {cost = price;};
int getValue() const {return cost;};

int cost;
};
390 2870712
>>870498

>чтобы я написал f_ и все поля класса в выпадающем списке увидеть


По-хорошему, все поля запривачены.
Не так уж и часто тебе вообще доведется добираться до полей через список.
391 2870726
>>870498

>в плюсах так нельзя?


можно но есть шанс что отвалится жепа - стандартный ответ на любой вопрос в крестах
конкретно с this-> может сдохнуть мать если написать/не написать это в конструкторе при особом стечении трехэтажного виртуального наследования и еще какой-то залупы щас не помню
392 2870829
Как вы справляетесь с задачами который требуют мозг включить? Вот вас по сути наняли решить какую-то проблему и оставили один на один, но вы даже не знаете как к ней подступиться, не то что эффективно решить. Что делаете в таких ситуациях?

Бля наверное я тупой и мне не нужно было даже суваться в эти плюсы ебаные? У меня тряска пиздец каждый день что я лоу айкью дебил
393 2870869
>>870829
Никак. Копипащу куски из ближайших частей проекта, колупаю методом тыка пока не заработает. За два года еще не спалился, но и прогресса тоже нет.
394 2871032
>>870829

>Вот вас по сути наняли решить какую-то проблему и оставили один на один


Все проблемы уже кто-то когда-то решал тем или иным способом. Сиди читай, выискивай, гугли, спрашивай совета в инете.
395 2871036
>>870338
Подчеркивание спереди нельзя по стандарту (не везде и с первой заглавной буквой ЕМНИП), поэтому обычно используют подчеркивание в конце.
396 2871041
Я чет гуглил но нихуя не понял. Можно ли в c++ создать поток stream и записывать в него данные, а в другом методе читать из него же данные?
397 2871051
>>871041
Почему не std::queue?
398 2871061
>>871041
Если это не в разных потоках, то зачем вообще стрим, а если в разных, то очереди.
399 2871203
>>871036
Стандартом, кажись, только двойное подчеркивание зарезервировано.
400 2871211
Как хранить в мапе два значения под ключем ?
401 2871216
>>871211
стд пара
А еще лучше, запили псевдоним типа для пары и пользуй структуред биндингс.
402 2871220
>>871211
Или у тебя ключ из двух значений?
Тогда тоже самое плюс кастомный оператор сравнения.
403 2871245
>>871211
multimap
404 2871261
>>871211
Хуярь структуру не думая
405 2871309
>>870338
Всё так и надо. Хороший код. А всё, что ты видел раньше - говно.
image.png94 Кб, 789x892
406 2871315
>>870338
Вот блин, я у Алисы тоже самое спросил, и получил уже другой ответ. Теперь _ в начале переменных.
407 2871334
>>871315
Нах ваши коды настоящему AGI нужны? Он будет сразу в машинный код хуярить прошивку для T-800.
408 2871928
>>851045

>и жрут говно под названием ООП


А ты думал натянутая на глобус сова, где данные объединены с методами их обработки, и с паттернами с названиями вроде "мост", "фасад", "фабрика" - будет работающей?
История развивается стихийно, сделали какую-то всратую хуйню чтобы хоть как-то разделять большой код на модули - продали менеджменту, оно и прижилось.
В идеале ты должен владеть всем - и ООП, и ФП, и процедурным стилем, и применять каждый там, гле это требуется. Это я сейчас не про С++ конкретно, это я вообще.
409 2872113
>>871928
Так и скажи, что не осилил.

> "мост", "фасад", "фабрика"


Не пользуйся, пиши if-else лесенки, ебись с поддежкой кода.
410 2872125
>>872113

>Так и скажи, что не осилил.


АРгумент уровня фаната ООП.
Что там можно не осилить, несколько базовых абстракций?
411 2872130
>>872125
Ты так и не понял зачем все это, раз говоришь, что ООП - натянутая на глобус сова.
412 2872141
>>872130
Ну это твоё утверждение, ни на чём не основанное.
А по сути ФП хотя бы основано на теории категорий, что есть маетиматика. А ООП на чём? На бытовой реальности, судя по терминологии?
Но ведь даже с ней оно не перескается. Ведь стул не содержит в себе конструктор для новых стульев, ни даже сеттера для цвета и веса. А сидеть можно не только на стуле, но и на перилах, анпимер, хотя в них не описали интерфейс Sittable при проектировке. А, например, метод "гулять и веселиться всей компанией" не привязан явно ни к какому конкретному объекту, по крайней мере в мышлении психически здоровых людей, чей разум не осквернен ООП.
Ну и так далее. В общем, пиши интуитивно понятный AbstractSIngletonFactoryProxyAdapterBean ИТТ, иначе обосрёшься.
413 2872244
>>872130
Чел а ты кажется вообще не здесь и не понимаешь ни примерно где находишься, ни что тебе люди пишут. Дурачок одним словом
414 2872473
Есть класс.

Есть его методы, которым надо только паблик данные (и методы) для своей работы.

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

То есть я хочу чтобы моя функция, которая принимает первым аргументом объект этого класса и что-то там считает не меняя объект, стала частью этого класса. Но при рефакторинге класса, мне бы не пришлось в неё смотреть, потому что я ТОЧНО ЗНАЮ что она только с паблик работает.

Хочу сделать её методом, для удобной подсветки в IDE, но чтобы не пришлось внезапно случайно её написать заново в третий раз, когда забыл что такая функция существует. Чтобы проще было вкатиться читающему код... и т.п.
6.jpg59 Кб, 360x732
415 2872487
>>872473
кдпв
8b0c6659c87ea996122166da9e8f5ffd.jpg86 Кб, 500x383
416 2872491
>>847323 (OP)
чё у вас за vector_name.d блять? лень сука полностью написать? direction??? distance???

мимо c#-господин
417 2872532
>>872491
Да, лень. А что? Сколько раз нажимаешь таб при написании одной строчки кода? Он у тебя не стёрся ещё?
АФЫВАЫФАФ.png3 Кб, 461x160
418 2872542
>>872532
Один таб на каждый цикл. Лучше чем стрелочки со звёздочками писать.
419 2872571
Шизы, выйдите из треда, заебали.
420 2872575
https://godbolt.org/z/jseEabEav
Напердолил примитивный недо-брокер сообщений, дайте кодревью что ли.
421 2872589
>>872575
Добавь возможность останавливать воркеров.
422 2872599
>>872571
Нет, нам и здесь хорошо.
423 2872615
>>872575
Так у тебя почерки с переди. Переделывай.
424 2872655
>>872575

> нюфаг начинает программирование с симулятора манагера погонщика рабов


Сразу видно прирожденное быдло, все в говноманагеры метят с самого начала.
425 2872678
>>872615
Чего? Какие почерки?
>>872655
Сразу видно прирождëнного либерала
426 2872697
>>872575
Что такое брокер сообщений и нахуй он нужен?
427 2872864
>>872575
А зачем потоки детачить? И мьютексы в плюсах так никто не локает
428 2872913
>>872864

>А зачем потоки детачить?


Там же потом главный поток срёт в пул данными для тестирования.

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


lock_guard? Забыл про них, давно не писал на крестах.
429 2872959
>>872913
Ну срет и что? А детачить зачем?
430 2872961
>>872959
Если заджойнить то главный тред заблочится и будет ждать пока треды отработают, а там в них вечный цикл.
431 2872964
>>872961
Ну так не джойнь
432 2872968
>>872964
Так я и не джойню, я детачу.
433 2873225
>>872968
Суть в том что открепленный поток может продолжить исполнение после завершения твоего мейна.
434 2873265
>>873225
А как правильно тогда? Вроде у Мейерса читал что всегда надо так: заспавнил тред - заджойнил/задетачил.
435 2873361
>>873265
Анон, я тебе скажу как, и вообще это общее решени для большинтся вопросов итт.
Берешь качаешь сурсы чего-то крупного из прода, и смотришь как твоя фича-нейм реализована там.
Берешь нгинкс и смотришь как у них там пул потоков реализован, ну или тбб какой нибудь.
436 2873366

> ооо, щас посмотрю как там в бусте это реализовано


> в исходниках происходит полный мрак, ассемблер более читаемее

437 2873368
>>873366
Удвою.
Читать сурсы хоть чего то серьезного boost, stl невыносимая боль. Кроме кутяшечки.
438 2873407
>>873366
С подключением.
439 2873413
>>873366
дибил раз
>>873368
дибил два

Оба дибила спизданули чушь быстрее чем попытались подумать.
440 2873427
>>873413
Третий дебил (я)
Мне тоже тяжело ориентироваться в исходниках крупных проектов, и зачастую я либо подключаю cheat engine для трассировки, или вообще запихиваю бинарь в иду, в обоих случаях получая в разы менее громоздкий код. Абстракции и динамические типы -- для пидоров.
441 2873438
>>873427
Чел ты ..., блять вы даже пост в три строчки прочитать не в состоятии - куда вам на плюсах писать?
Привел пример простых целевых либ - нгинкс и интел тбб посмотреть тредпулы - что там сложного?
Нет дебичи про стандартные темплейт либы, которые внезапно не иллюстрирую реального решения вышеупомянутой задачи.
442 2873439
>>873427
Единственный умный (я) в море дебилов
Пишу на шарпе, расте и питон-мл и не имею никаких вышеописаных проблем.
443 2873446
>>873439
Уже написал что-то кроме helloworld ?
444 2873459
>>873438
>>873413

долбоеб, на твой пост даже никто не отвечал, шизло
445 2873479
>>873459
Так не отвели что у троих бичей жопа треснула и на выш визг шарпист прибежал?)
446 2873487
>>873438
СиЕшка также отображает треды и позволяет между ними переключаться. Как правило, меня интересует результат выполнения конкретной ветки кода, и я смотрю её в иде. Если там насрали динамическими вызовами, то приходится трейсить. Зачем мне ещё одна программа для этого?
447 2873499
Ебануться сколько тут долбоёбов.
448 2873666
не знаю чем так плюсы шизов притягивают

>>873499
скоро привыкнешь
449 2874439
Сап, программисты!
Где-то 4 года назад я заходил к вам в тред и добрый анончик помог мне, хочу попросить вас о помощи снова.
Нужно сбилдить Aseprite из сорсов https://github.com/aseprite/aseprite/releases
Если кому не впадлу, помогите, пожалуйста, с меня как всегда.
450 2874456
>>874439
Там же инструкция по сборке есть.
https://github.com/aseprite/aseprite/blob/main/INSTALL.md
451 2874476
>>874456
Есть, но мне нужно устаналивать много чего, а у плюсовиков по-любому у кого-то уже установлено это всё. В этом и суть просьбы, как бы.
изображение.png50 Кб, 925x617
452 2874478
Задача.
Дан CRTP-интерфейс, стандарт с++20. Как сделать так, чтобы при попытке передачи в функцию f структур наподобие Fake, где нет своего нужного метода (например sound()), выдавалась ошибка компиляции.

Пробовал создать концепт requires (T x){x.sound();} и даже requires (T x){x.T::sound();} - метод sound() считается принадлежащим типу T, даже если он просто унаследован.
453 2874481
>>874476
Вот и устанавливай. В чём проблема?
454 2874500
>>874481
Ни в чём, иди нахуй.
455 2874512
>>874439
С чем помочь то? В чем проблема?
456 2874515
>>874512
Собрать билд из сорсов для винды.
457 2874518
>>874500
Сам иди нахуй, никто за тебя собирать всякую малварь не будет
458 2874520
>>874518

> всякую малварь


Молчал бы, за умного сошёл бы.
459 2874533
>>874478
так-то в цртп имена интерфейсных методов и их реализации обычно делают разными в том числе чтобы не ебаться с этим
460 2874626
>>874515
И что с ней?
461 2874720
>>874626
Ему лень самому, и он хочет, чтобы ты собрал за него.
462 2874726
>>874720
Щас домой приеду и скину ему малварь

он реально собирался бинарь от рандом анонс запускать?..
463 2875183
>>874439
Сбилдить под что?
464 2875190
>>874726
Так там даже вроде есть билд, или первый .zip это не оно?
465 2875215
>>874478
А если метод вызывать через T::sound()?
466 2875271
Когда в вакансии пишут опыт разработки под Linux, что имеется ввиду? Я какие-то системные функции должен знать?
467 2875299
>>875271
Может, умение запустить apt-get в баше. А может, написание драйверов и модулей ядра. Зависит от вакансии.
468 2875440
>>874478
У меня получилось только упасть при компиляции при попытке вызвать f(fake);
469 2875458
>>847323 (OP)
Что за книга была в шапке самая первая? По ссылке в вк файл удален
470 2875502
>>875440
>>875215
Да решили уже задачу -> >>874533
471 2875554
>>870338
Я с тобой согласен, что без _. Но лучше - field_name. Всё равно, если код не знаешь/не понимаешь и не хочешь этого (особенно если тема кода говно, и проект говно), то никакие подчёркивания не помогут. А если код топчик или просто интересен, и у тебя к нему нет негативного настроя типа ФУУУ ГАВНО, то хоть код на сях вроде ffmpeg'а разберёшь и nginx'а с переопредлёнными handler'ами на каждом шагу
1697066429113.jpg69 Кб, 1436x268
472 2875616
473 2876056
>>870338
Какие подчёркивания? Вы ебанутые? С тредом пидорасов джавистов перепутали?

Удваиваю вот этого господина >>875554

Просто, сука, нормально научитесь именовать. Даже для простых как пробка set/get это будет set_field_name и get_field_name. Уже не говоря про тот случай, если вы функции верблюжьими горбами городите.
474 2876060
>>870405

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


Если использовать инициализацию, а не в теле конструктора срать, то не будет коллизии имён.
А вот сраньё в тело конструктора уже достойно ебли с именами. Потому что ты нихуя не тривиальную вещь делаешь.
475 2876081
>>876060

>Если


Это и есть ебля мозгов.
Тебе в Стандарте чтоле "еслей" не хватает, еще надо выдумать на ровном месте?
476 2876120
>>876081
Нахуя тебе тело конструктора? Чтобы исключения и говно кидать?

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

А я напомню, что ветка начинается с проблемы именования.

Здесь проблемы нет, есть хуёвые "бест практисес" от "гуру индустрии". Стандарт ещё зачем-то приплёл.
477 2876138
А в CoreGuidelines что то по поводу неймингк сказано?
478 2876149
>>876138
МАМ ГДЕ МОЙ СЛЮНЯВЧИК?!
479 2876154
>>876149
Я не твоя мама
480 2876159
>>876154
Сказала мне твоя мать сегодня ночью.
481 2876161
>>876159
А ей зачем слюнявчик?
482 2876164
>>876161
Я-то откуда знаю? Слюнки тебе подтирать поди. Твоя мать - тебе знать.
483 2876167
Сдвиги эффективнее обычного умножения/деления?
484 2876172
>>876167
Побитовые сдвиги? Ты ими можешь заменить только умножение/деление на 2
И то в том случае компилятор скорее всего час соптимизирует
485 2876177
>>876172
Тогда почему в любом коде который я открываю этих сдвигов половина сама кода? В чём смысл сего действия кроме понтов?
Также почему прописывают адреса памяти константами? Разве она не должна от одного устройства к другому меняться?
486 2876178
>>876177

>Тогда почему в любом коде который я открываю этих сдвигов половина сама кода?


Лелблядь.
487 2876183
>>876177
Потому что ты открываешь какой-то эмбедерский код. Сдвиги юзают не только для арифметическмх операций. Например, ими удобно установить нужное значение одного или нескольких битов.
sage 488 2876238
Репорт.
489 2876315
>>876120

>Если там что-то есть


Не еби мне мозги своими еслями.
Я 1 раз подумал и выработал методу, которая никогда не подведет без всяких если.

Больше к этой хуйне я возвращаться не намерен.
sage дедушка 490 2876365
>>876177
Объяви f(int х) и сравни код для х/2 и х>>1,
sage дедушка 492 2876408
>>876400
Две лишние инструкции. Это после оптимизаций.
Бля, картинки с Задорновым нет
493 2876410
>>876408

>Бля, картинки с Задорновым нет


Он же умер
494 2876415
>>876408
А почему?
495 2876417
>>876315

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


И потом вот эти хуи ещё права на работе качают.

> я синьор-помидор


> нет, моя ценнность исходит не из знаний говна видеокодеков, в которые никто кроме меня лезть не хочет, а из уникального НаДёЖнОгО подхода к С++



Держи в курсе, как смачно ты гниёшь.
496 2876515
>>876417

>И потом вот эти хуи ещё права на работе качают.


Ты с моим хуем по работе пересекался?
дед 497 2876867
>>876415
Потому что деление обязано усекать к 0.
-1/2 должно вернуть 0, но знаковый сдвиг (sar) -1 вправо дает -1.
Поэтому делить на степень двойки быстрее сдвигом, или объявлять аргумент unsigned.
498 2876871
Пахнет UB.
дед 499 2876873
>>876871
Если аргумент правда отрицательный, то таки да.
500 2878252
Деформировали ли вам плюсы мозги? Я в том плане как на другие языки смотрите или может переходили на другие технологии, как ощущение?
501 2878270
>>878252
Есть немного. Пишу на других языках и всё равно пытаюсь не проебать 0.000001% перформанса при написании циклов, а имена переменных, методов и классов придумываю максимально краткие, будто завтра у меня отберут IDE и заставят писать в виме.
1686584353169928438.png919 Кб, 1200x877
502 2878356
>>878252
Да, смотришь на другие языки и пикрелейтед
43ca5a4a5b896deb2ddfb05472f5e88a.jpg37 Кб, 540x540
503 2878399
>>878252
C вот таким ебалом на другие языки смотрю
16150320245471.jpg111 Кб, 1097x776
504 2878404
>>878399
база
505 2878405
>>878252

>Деформировали ли вам плюсы мозги?


Да, определенно.

>Я в том плане как на другие языки смотрите


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

>как на другие языки смотрите


Вообще, смотрю с позиций минимализма, как по отношению к количеству языков в своем арсенале, так и к объему фич языка, которые мне нужны.
До крестов я немношк знал Паскаль. В силу синдрома утенка (наверное) вспоминаю о нем с теплотой. Это мое личное мерило "ламповости" языка.
Блюпринты из анрил инжайна воспринял с энтузиазмом.
Примерно так чувствую, что рано или поздно придется взяться за Питон, т. к. в своих изысканиях часто натыкаюсь на его фичи.
Если бы у меня было больше свободного времени, то я бы посмотрел че за https://ru.wikipedia.org/wiki/ДРАКОН

>переходили на другие технологии,


Поставил C++ Builder (современный).

>как ощущение?


Как в детство окунулся.
506 2878458
А есть у кого пошаговая инструкция как самый простой и понятный conan на винду установить? Я читаю доку, там настоятельно рекомендуют использовать pip. Окей, собираюсь использовать эту срань, но тут они опять настоятельно рекомендуют использовать pip в виртуальной среде, а инструкции как именно нет, хуй его знает, ебитесь сами.
507 2878469
>>878458
Хз, на винде всегда игнорил виртуалэнвы.
sage 508 2878549
>>878458
блядь, как же вы бесите, как же вы в айти вообще выживаете...
509 2878607
>>878458
Чел там буквально msi есть. Я сам ставить через питон, хотя все равно в итоге говном этим не пользуюсь
510 2878632
>>878458
choco install conan
511 2878655
>>878458
Vcpkg.
512 2878709
>>878458

>Окей, собираюсь использовать эту срань, но тут они опять настоятельно рекомендуют использовать pip в виртуальной среде


спокойной забиваешь хуй на это

всё что симейк рекомендует делать, тоже будешь выполнять?
elonmusknatgeo.webp22 Кб, 1200x675
513 2879391
Еб твою мать, я целый час пытался собрать этим ебаным g++. Оказывается, чтобы работало -lname, надо что у моей библиотеки было имя libname.so. Охуеть, а нельзя было сразу сказать о таком незначительном факте. Нигде про это не написано, даже чатгпт об этом не вспомнил. И неизвестно сколько бы я с этим ебался, если бы не нашел ответ на рандомном форуме.
Screenshot2023-10-15-09-22-40-739com.android.chromecompress46.jpg219 Кб, 1080x2248
514 2879395
>>879391
Мде кхе-кхе да уж угу вот так-то ага
515 2879408
>>879391
Ахах, вспоминаю мою первую попытку линковки, с той же хуйней столкнулся.
516 2879919
>>879408
Нахуя что то линковать руками?
517 2879921
Считаю, что отдельный курс в универе нужен по системам сборки и системам контроля версий.
518 2879928
>>879921
Не нужен
Нужны нормальные системы или хотя бы нормальная документация или туториалы
519 2879955
>>879919
Для того, чтобы в теме разобраться, не? Или люди сразу с пониманием как компилятор работает рождаются?
520 2879964
>>879955

>Или люди сразу с пониманием как компилятор работает рождаются?


Эм, ну да. Если ты при нажатии на зеленую кнопку в VS не знал изначально, что там в КИШОЧКАХ происходит, то вон из профессии. Тут востребованы только те, кто может байты информации из воздуха генерировать.
521 2880134
>>879921
Это две лекции и две лабы, нахуя целый курс?
522 2880164
>>879921
Уже есть.

> по системам сборки


"Смотрите в методичке к первой лабе, как создать и собрать проект в Visual Studio 2005".

> системам контроля версий


"На семинары носите лабы на флешках, потом скиньте мне их на почту в RAR-архивах".
523 2880172
>>878458
pipx install conan бля
524 2880216
>>879921
Ваще да, но нет. Слишком простой курс будет, да и вообще это не академично, потому что это изучение слишком проходящей технологии. Даже языки толком не изучают, обычно стараются преподавать какое-нибудь ооп или алгоритмы на базе каких то языков
525 2880228
Пытаюсь перекатиться с d3d9 на d3d12, но мне потребовался целый день только на то чтобы из кода-туториала отрисовать вместо 1 треугольника 2 (и то, его стало растянуло, и он будто бы зеркально отразился, если судить по цвету углов, но по крайней мере это был прогресс понимания)

Мне потребовалось подключить imgui, чтобы более наглядно видеть, как что меняется от разных параметров, но теперь я потратил целый день И НЕ СМОГ ПОДКЛЮЧИТЬ ИМГУИ. Блять! На девятке это занимает меньше 20 минут!

Не понимаю, что и для чего тут создаётся, что единожды, а что ежекадрово, что для каждого ресурса отдельно, а что общее. И в туториалах об этом комментарии типа >
// create the command list with the first allocator
hr = device->CreateCommandList(0, D3D12_COMMAND_LIST_TYPE_DIRECT, commandAllocator[frameIndex], NULL, IID_PPV_ARGS(&commandList));
.
Спасибо, папаша, но это не объяснило мне, нужно ли создавать эту штуку второй раз для другого содержимого отрисовки и какое значение тут играет индекс кадра, если мы только девайс подготавливаем, и зачем вообще он тут

Есть тут, там, где-нибудь вообще, хоть на китайском, подробный справочник по d3d12 для пятиклассников, чтоб я перестал час за часом проёбывать полурандомно редактируя туториал и наблюдая за изменениями?

да, можно просто дальше идти по урокам, но дальше будет лишь больше кода и я буду лишь больше путаться, нужно изучить механику и хоть немного уметь её менять
526 2880402
>>879921
Считаю, что в университетах вообще нинужно это ваше айти.
Университет - это про фундаментальное, а тренды в айти устаревают прежде, чем успевают появляться.
527 2880418
>>880228
Ну и позорище
и это ты еще нв вулкане не писал
528 2880419
>>880418
>>880228
А вообзе посмотри сэплы нвидии, у них ято ттбылр для д3д12
529 2880479
>>880134
Еще забыл сказать про пакетные менеджеры. Еще можно добавить лекции по зависимостям и методам их разрешения и оптимизации.
>>880216
В учебном заведении, где готовят специалистов, хорошо бы чтобы учащиеся умели пользоваться современными инструментами, которые программисты реально используют на рабочих местах.
>>880134
Там множество нюансов, ты весь cmake знаешь? Знаешь отличия от qmake? Отличия autotools от GNU make? В чем преимущество cmake перед любым IDE?
530 2880480
>>880134

> Это две лекции и две лабы


Ты мудак чтоль? Эти две лекции только про историю появления, назначения и виды систем сборки.
531 2880481
>>880479
В вузе не готовят специалистов, пиздуй в шарагу ради этого. То что у нас вузы = шарага это вопрос другой
532 2880482
>>880481
Ты заебал, че ты прицепился к названию.
533 2880486
>>880482
Бро ну не о чем тут говорить, это ты че ко мне приебался
534 2880494
>>880479

>В учебном заведении, где готовят специалистов


Это про всякие ремесленные училища.
Университет готовит специалистов широкого профиля aka не пришей к пизде рукав и исследователей в фундаментальных областях знания.
535 2880497
>>880481

>у нас вузы = шарага это вопрос другой


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

Отсюда всякие бывшие ж/д институты превратились в университеты и всякие оксюмороны навроде университета спецназа.
536 2880517
>>880479
>>880480
А диплом xml-инженера ты не получишь, потому что не сдал зачёт по философии текстовых редакторов
537 2881228
https://hh.ru/vacancy/88005428
В этой факансии тебя попросят пройти полиграф и написать анкету. А после этого две недели на приятия решения об оффере. Зато у них всего один крестовик, им нужен еще один. Может для вкатунца это шанс на непыльную работку, не забудьте только приписать в резюме год-полтора опыта. Удаленочка.

https://hh.ru/vacancy/87323548
Здесь надо выполнить тестовое, но для меня оно занимает слишком много времени, потому что с GStreamer я не знаком (но есть хороший туториал на аглийском). И составлено как-то небрежно, написано, что три задания для разных грейдов, но заданий всего два. Плюс надо решение выложить на гитхаб, написать cmake файл и readme как собирать проект, и еще записать танец в тик-токе. Зато hh показывает, что откликов <10, может их вообще нет, может это шанс для отчаявшихся.
538 2881275
>>881228

>пройти полиграф


Лженаучная хуятина.
Кроме того, если я их попрошу пройти полиграф, то конец немного предсказуем. Такие отношения - это не про правду, а про монополию на ложь.

Передай им от меня просьбу пройти на хуй.
539 2881312
>>881275
Чел, тут и речь быть не может. Очевидно, что компания неадекватная, иначе просто дали бы подписать соглашение о неразглашении вместо унизительного полиграфа.
540 2881320
А вот задание. Платят аж до трех тыщ рублев!
ня.jpg252 Кб, 1366x768
541 2881327
:)
542 2881352
>>881327
Мне тоже это говно сегодня в рекомендации вылетело.
image.png64 Кб, 357x457
543 2881869
Дочитал до конца. Рекомендую. Где найти? На zlibrary
544 2881885
>>881869
что нового\полезного узнал?
undefined - Imgur.gif8 Мб, 400x170
545 2881962
>>881885
всё вот это
546 2881994
>>854207
А от чего ркнишься-то? А? А ?А ?А ?А ?А? А? А?? А?А?ААА?
547 2882031
>>867738
Это которые от Константина Владимирова (МФТИ)? Там их два, базовый и магистерский, есть ли к ним задачи или лабы какие-то в открытом доступе? Да и вообще, норм ли материал для изучения это? Может проще того же Страуструпа почитать? Или C++ Primer?
548 2882674
>>882031

> норм ли материал для изучения это?


Говно материал. Нихуя не объясняет, сидит лыбится. И вообще его курс как будто для разработчиков компиляторов, узкоспециализированный.

Друго дело лекции Мещерина Ильи - пишет код с нуля, старается все объяснить, прямо на занятие отлаживает ошибки.
https://www.youtube.com/@mesyarik
https://www.youtube.com/watch?v=RwziYcZD2-E&list=PL4_hYwCyhAvaWsj3-0gLH_yEZfKdTife0
https://www.youtube.com/watch?v=njfH8PHghWo&list=PL4_hYwCyhAvazfCDGyS0wx_hvBmnAAf4h

Еще вот хороший курс
https://www.youtube.com/watch?v=apUo4I4k6d4&list=PL4_hYwCyhAvY1CNC2azvnDjkQfx5_S13l
16968604348292.jpg354 Кб, 754x563
549 2882708
>>882674
>>882031
Не знаю, у меня отвращение какое-то от всех этих лекций непонятное. Всегда читал книжки, мануалы, потом комп сидел пердолил, делал вещи интересные для себя. А вот лекции скучно смотреть, но всегда есть какой-то страх внутри, что вдруг упускаю что-то важное. Непонятно в общем. Но если кому-то лекции заходят, то добра вам.

Вообще самый топ, имхо, это вариации системы листочков, то есть получаешь список задач по теме, какую-то краткую теорию. И сидишь решаешь. Потом обсуждаешь один на один это с другим человеком знающим.
550 2882811
>>847323 (OP)
У вас в шапке на гите почти все ссылки на книги потёрты.
551 2882817
# OP 552 2882942
>>882811
И похуй.
553 2883187
>>882031

>Да и вообще, норм ли материал для изучения это?


Магистерский 10\10, но стоит учитывать что он не для новичков
То есть изучать плюсы с него плохая идея, для такого лучше посмотри лекции что выше кидал анон

но вот когда захочется узнать побольше о пмр аллокаторах, многопоток, корутины, вывод типов и тд, то магистерские лекции 10\10
87d8fb2s-960.jpg64 Кб, 604x489
554 2883200
>>883187

> корутины


Краткое содержание его рассказа о корутинах
555 2883283
>>883200
Есть какое-то бойлерплейтное говно, которым нормально пользоваться пока что нельзя.
556 2883380
>>883200
Да их никто нормально объяснить не может. Единственный вариант понять хоть что то это взять и написать свою либу по корутинам
557 2883389
>>883380
Просто залетыши вроде тебя не достаточно разумны.
А соевые в комитете тащат в стандарт все говно подряд.
Концепцией корутин пользовались десятилетиями, переключение контекста на асме занимает одну станицу и кому надо имли свою реализацию задолго до. Как и с подавляющим большинством всего дерьма из стл.
558 2883395
>>883389
Дед, успокойся, ты крутой, крутой, очень умный разумный
559 2883585
>>883389

> А соевые в комитете


Уже и в комитет пробрались, ох уж эти соевые!!

ретроградство а аутизм
560 2883634
>>883389
Это и бесит. Тебе надо? Ну напиши сам че ты.
А я хочу спокойно решать бизнес задачи, а не дрочить бойлерплейт по пол года.
561 2883685
>>883634

>спокойно решать бизнес задачи


Бизнес не даст тебе жить спокойно. Если он увидит, что ты спокойствуешь, это будет интерпретировано так, что ты зря ешь свой хлеб.
39b30902e2d347d75692c76de0b9cbb9.gif64 Кб, 869x402
562 2883710
Платина. Я дохуя лет высокоуровневая макака (скрипты, веб, прочее), сколько-то понимаю компуктер саенс. Хочу в минимальный срок проштудировать С++, чтобы комфортнее читать чужой код (уже могу, но все равно затыки бывают). Чтобы без воды и талмудов на 500 страниц. Английский знаю свободно. Какой выбрать порядок для обучения?
563 2883735
>>883710
Добавлю. Хоть я и хочу в первую очередь читать код, хотелось бы знать про ту самую стрельбу себе в ноги, про которую так часто говорят и как делать правильно. Может есть где-то сборник таких надо и не надо?
564 2883737
>>883710
А сфера то какая? На плюсах все подряд пишут.
И знания для разработчиков нейронок/графики/микроконтроллеров нужны совсем разные.
565 2883740
>>883735
Если тебе просто чтоб писать, то сиди и пиши. Ноги обязательно будут отстрелены.
978-1-4842-6047-0.webp87 Кб, 827x1181
566 2883748
>>883710
Мне такого было достаточно (читал первое издание) для интеграции пачки плюсовых либ разной степени несвежести в шарпопитоны, на которых обычно и пишу. Что-то удавалось почти напрямую впихнуть, для чего-то писал сишные ьиндинги, кое-что портировал.

Не совсем правда понимаю, для чего просто читать чужой плюсовый код, если сам на плюсах ничего не пишешь, но вдруг поможет.
567 2883751
>>883737
Геймдев, пишу скрипты для 3д игры, но так же могу заглядывать в исходники движка игры, которые на с++, чтобы искать баги или просить новые скриптовые функции.
568 2883758
>>883751
Game development {движок нейм} with c++ books.
569 2883765
>>883758
Движок кастомный, про него книг нет

>>883748
Взял на заметку, спасибо.

Пока в общем сижу проглядываю все одно за другим на cppreference.com
570 2883809
>>883765
Черрипикай что не понимаешь и SO + cppref. Что то целенаправленно читать не уверен что нужно. Точнее что оно точно покроет твои потребности.
571 2884166
>>864019
Потому что функция не обязана перемещать и вообще что-то делать с этим объектом. Но тем не менее аргумент std::string&& - это контракт между вызывающей и принимающей стороной. Для вызывающей он означает, что переданный объект std::string в общем случае после вызова будет в состоянии moved-from, т.е. ты можешь, например, что-то ей присвоить, но читать ее нельзя. Для принимающей он означает, что ты можешь ее переместить. Ключевое слово - "можешь", делать ты этого не обязан, можешь затроллить всех и себя, скопировав ее, или вообще не трогать. Но вызывающая сторона про реализацию не должна знать и обязана предполагать, что строка была перемещена.

>>864650
Але, универсальные ссылки только в шаблонах или auto.
image.png55 Кб, 1679x237
572 2885453
Люди опомнитесь, астанавитесь!

Смотрите: ошибка в ParentProcessWatcher.cpp лечится прописыванием #include <algorithm> в... системный wchar_t.hpp , нахуй !

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

Бросайте это говно и айда к нам в раст, где любое поделие даже 10-летней давности собирается нормально.
573 2885485
>>885453
Попробуй заинклюдить алгоритм до инлюда вичара.
574 2885578
В visual studio нет пункта Опубликовать. Что делать? Помогите, пожалуйста.
575 2885606
>>885578
А у меня есть.
576 2885607
>>885485
А знаешь, помогло. Или не помогло, просто погода на Марсе поменялась и оно и так бы собралось (из wchar_t.hpp удалил). Или вот я собирал wanproxy - сорцам на тот момент было что-то года 3, а уж говна поел при сборке, боже мой.

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

Пригорело, прибежал, ага
577 2885612
>>885607
Просто разберись как работает инклюд и сможешь предсказывать погоду на Марсе.
578 2886058
>>885453

> 10-летней давности собирается нормально


А панчлайн в том, что расту и 10 лет нет?
579 2886130
https://www.youtube.com/watch?v=MO-qehjc04s

C++ programmers in 2004: "you should move on from C to C++, C++ is so much safer, reduces mistakes and is just as performant"
C++ programmers in 2023: "what even is safety? let me split hairs for half an hour about safety definitons, moving to a safer and just as performant language is not the solution"
2021-09-1901-01.png117 Кб, 786x523
580 2886161
Подскажите, че за программа?
581 2886168
>>886161
Sysinternals process explorer
582 2886171
>>886161
Это системные либы, какая ещё программа?
583 2886234
>>885606
А у меня нетути.
584 2886308
>>885612
А зачем, если я просто беру чужой исходник и пытаюсь собрать по инструкции? Это хорошо ещё, что у меня буст оказался совместимой версии. На расте тебе кроме cargo build вообще ничего знать не нужно, а на плюсах "ты слишком тупой, чтобы использовать эту софтину, азазаз".
585 2886396
>>886308
Заведи ишу у чела на Гите, чтоб такие же юзеры не улетали на орбиту. Ну или может чел снизойдёт и поменяет две строки местами)
Но ток проверь, что решение действительно работает)
586 2886397
>>886161
OS Okowki
587 2887747
>>886130
Чего у них так safety все чешется? Сейчас у плюсов вроде ниша, где текущего уровня хватает, если браузеров не считать. Драйвера и ядра пишут на безопасных диалектах сишки с валидациями и анализаторами на каждый чих, с кучей бюрократии в коде (чувак, который в MS DirectX кодил в нулевые, рассказывал, что у них операторы запрещены были, вся арифметика в обертках из функций). А на десктопе как-то пофиг, что прога изредка падает. В HPC все либы задрочены уже до каждой строчки, месяцами крутятся без ошибок нонстоп. Плюс никто уже старый код на новые безопасные фенечки не будет переписывать.
588 2888218
>>887747

> Чего у них так safety все чешется?


Ну трястись все начали когда АНБ прямо сказало что с\с++ юзать не стоит

NSA advises organizations to consider making a strategic shift from programming languages that provide little or no inherent memory protection, such as C/C++, to a memory safe language when possible. Some examples of memory safe languages are C#, Go, Java, Ruby, and Swift.

Ну и ответить на это заявление собственно и нечем, кроме как

> just dont write bad code


> just use use CoreGuidelines


> actually your safe languages are also unsafe so everyone is unsafe



> Сейчас у плюсов вроде ниша, где текущего уровня хватает


Ну кроме браузеров есть еще и ОС, есть и различный софт который заводами целыми управляет
ну и соответственно уязвимость может тебе от телефона, до целого завода наебнуть
589 2888518
>>888218
На твой завод и космический кал может прилететь.
Это проблема никак не решается, уязвимости будут всегда, просто потому что мир не работает по бумажкам бюрократов и идеальным формулам физиков.
image.png271 Кб, 1080x626
590 2888546
591 2888746
Блять хотел вздремнуть часик в свой выходной но сосед еблан, по-другому не назовешь, включил свой долбеж. Ладно там еще дебильный реп или даже руснявую попсу, но там просто неиронично долбеж дуц дуц дуц на протяжении 10 минут уже, да это реально, хотя я и сам не верю
592 2888755
>>888746
Сука не туда насрал
593 2888827
>>888546
😀😀😀

>>888518

>На твой завод и космический кал может прилететь.


Это да, но сейчас модно MEMORY SAFETY гарантировать
а от метеорита бог поможет
2023-10-21-22-24-14.mp4622 Кб, mp4,
460x240, 0:14
594 2889324
А шарписты так умеют А? А?
2023-10-21-22-24-14.webm209 Кб, webm,
460x240, 0:14
595 2889327
Если на лисе
596 2889331
597 2889339
>>889331
Хмм, целый класс программ построен на UB и при этом они стабильно работают на x86..
598 2889344
Получается некоторые задачи без UB никак не решить 🤷
599 2889373
>>889344
И что ты этим решаешь?
600 2889412
>>889339
Ты правда свой хеллоуворлд на 10 строчек называешь "целым классом программ"?
601 2889490
>>889412
Тебе знать не обязательно
602 2889495
>>889324
Изи Marshal.GetDelegateForFunctionPointer
603 2889510
>>885453

>в раст, где любое поделие даже 10-летней давности собирается нормально.


Как-то неприлично жирно, анон. Я не могу даже код годовалой давности новым компилятором собрать и приходится несколько версий в системе держать. Когда же совсем недавно на Сишке собрал код прямиком из 20-го века. Не без пердолинга, конечно, но собрал.
604 2889532
>>889510

>Я не могу даже код годовалой давности новым компилятором собрать


Самый очевидный вариант, если ты версии зависимостей указал как "*", и после обновления ожидаемо попал. Если у тебя прям вот с твоим кодом проблемы, покажи, интересно. Хотя, тоже, скорее всего, лечится понижением edition.

>собрал код прямиком из 20-го века.


Просто сишка, да, старый код худо-бедно норм собирается, а вот с плюсами беда.

>Не без пердолинга


Ну а как же.
605 2890371
вопрос по QtCreator(С++)

не подскажите, как с помощью QQueue сделать это Задание и как проверить работает программа или нет... (пикрил то что пытался сделать со свич кейс)
606 2890513
>>890371
Что тебе конкретно подсказать? Ты в своем коде даже не попробовал использовать очередь.
607 2890516
>>890513
подсказать, как составить очередь, как она вообще тут может работать, знаю только метод enqueue, с помощью которого можно элемент в очередь добавить
608 2890517
>>890371
ну начни с начала... До цикла чоздай QQueue<QString> и топай читать документацию по этому контейнеру
609 2890519
>>890517
не знаешь сайтов с +- понятной инфой?
611 2890521
>>890516
Реши сначала, как ты будешь считывать команды с терминала.
А контейнер уже потом прикрутишь, это вообще самое просто, лол.
612 2890797
>>890521
для этого метод flush() подходит?
613 2890965
>>890797
Я тебе о другом.
Напиши сначала код, который будет принимать команду и просто отдавать в терминал ее обратно, без обработки.
614 2890982
Почему этот код https://pastebin.com/izFR7ki5 работает на этой задаче https://leetcode.com/problems/counting-bits/ хуже с хешмапой чем без неё?
615 2891100
>>890982
Проверка на 7-9 строках никогда не сработаеттесты изолированы друг от друга.
И хешмапа несколько раз ремаппится(лог(н))
И зачем хешмапа? Мне кажется что вектор справится, тебе все равно для каждого 0-N нужно значения хранить. Храни их в векторе длиной N.
1668872582087.png38 Кб, 1015x188
616 2891107
Ну че сынки, готовы к новым закорючкам? Ведь в языке мало головоломок было.
617 2891111
>>891107
Это рофл?
Что это за кал и нахуя он? Не, я понял, типо можно выводить типы. А СФИНАЕ все, уже не устраивает?
619 2891123
>>891116
Не уверен что рефлексия в таком виде вообще нужна. Будет ещё одна используемая парой десятков/сотен человек опция языка.
Алсо чёт не увидел, возможна ли кодогенерация с помощью такой штуки.
620 2891132
>>891123
Ну там есть пример с туплой, который выглядит ничем не понятней шаблонов но почему то преподносится как революция.
621 2891230
>>890371
Где ты взял QtCreator?
622 2891246
Как сейчас вкатиться на работу плюсовиком? Какие сферы востребованы? Опыт работы 4 года вебмакакой имеется, на плюсах ещё со школы пишу, кучу разного пробовал, либ 10 точно знаю помимо линукс/винапи. Что доучить к этому и что в резюме писать чтобы сразу офферы в лицо кидали?
623 2891275
>>891230
Скачал с официального сайта бесплатно и без смс, но с регистрацией.
624 2891353
>>891123

>Не уверен что рефлексия в таком виде вообще нужна.


Нужна в любом виде. Хоть какая. Все что угодно лучше, чем самописные уродцы на макросах и темплейтной магии.
625 2891433
>>891246
Удвою анона. Какой положняк по вкату в плюсы сегодня?
626 2891447
>>891353
Пока не знаю, где смогу это применить
627 2891490
>>891353
В результате будут самописные уродцы на макросах, темплейтной магии и вот этой рефлексо магии.
628 2891612
>>891275
Так забанено же для России.
629 2891619
>>891612
Во первых Впн.
Во вторых можно собрать из исходников.
В третьих КДЕ. но там не все есть.
630 2891640
Кто-нибудь ИТТ клал хуй на математику в период взросления, а потом в ходе "программисткой" деятельности сталкивался с проблемами, вызванными неумением применять математический аппарат, вследствие чего вынуждены были изучать заново математику? Или ИТТ все успешные олимпиадники, у которых одни 5 были по ней? что в школе, что в вузе.
631 2891657
>>891640
Что именно ты не понимаешь?
632 2891674
>>891657
Всю математику с 7 класса. Сейчас вот решил заново начать изучать. А не понимаю конкретно "умных" книжек, где все написано на языке математики(конкретно всякие формулы, дельта, эпсилон, интегралы и тд., так или иначе все научные книги на этой базе строятся)
633 2891681
>>891640
Я вообще самоучка. К тому же уже и на кладбище начинаю поглядывать. Единственное что в программировании не всегда математика нужна. Если говорить про с++, то в 3д движках, дронах и автопилотах, нужна. А например гонять пакеты по сети, делать базу данных, гуй - не нужна сложнее чем у пятиклассника.
634 2891707
>>891612
Мда, ещё скажи, что торрентами не пользуешься.
635 2891755
>>891612
Вообщето креатор лицензируется отдельно и ты можешь с гита билд виндовый скачать, если собирать лень.
636 2891935
>>891640
Поступил на мехмат далеко за 20, готовился сам.
637 2891966
>>891619

> Во первых Впн.


Не вариант, я нищий для платного впн

> Во вторых можно собрать из исходников.


Это нужно целый день разбираться, мне лень. Какие-то Windows debagging tools достать откуда-то, пиздос.

> В третьих КДЕ


Что КДЕ? У меня на виртуалке убунта и гном, мне лень еще одну ставить.
>>891755

> с гита билд виндовый скачать


Чувак! Ты просто гений. Подскажи где именно билд лежит.
638 2891975
>>891966

> > Во первых Впн.


> Не вариант, я нищий для платного впн


Планет ВПН работает как часы

> > Во вторых можно собрать из исходников.


> Это нужно целый день разбираться, мне лень. Какие-то Windows debagging tools достать откуда-то, пиздос.


Ну окей, осилить пару шагов из мануала не твой путь

> > В третьих КДЕ


> Что КДЕ? У меня на виртуалке убунта и гном, мне лень еще одну ставить.


У КДЕ есть собственный форк Qt, лежит на гите. Но его мб тоже собирать надо, не уверен.
639 2892332
>>891966
https://github.com/qt-creator/qt-creator
ты даже загуглить сам не смог?
640 2892603
Собираю rpcs3
git submodule update --init выглядит так (чёрные скрины, вошло 3 из 4х)

Пиздец, пиздец. А почему я это собираю, вообще? Да потому, что версия из флатпака не может в форкание доп окошек, типа конфигурации.

Бегите от этой ссанины на раст или, хотя бы, zig, что-то с норм тулингом, ребята, нечего тут ловить.
641 2892758
>>892603
Пиздуй переписывать на Раст, это же опенсорс, хули ты в треде забыл?
642 2892964
>>892603

> Пиздец, пиздец.


Так а что случилось то? Зависимостей много?

> переходите на раст


А на расте зависимостей меньше станет?
Собираются там проекты ещё медленнее

сходи траву потрогай пока компилится
643 2892985
>>892603

>Бегите от этой ссанины на раст


На расте все еще хуже будет, потому что растохлебушки либ не пишут, а те что пишут, забрасывают через полгода, а язык на месте не стоит и все очень быстро протухает. Плюс там детерминированная сборка с текущими тулзами в принципе невозможна.
644 2893104
>>891246
>>891433
Дописывайте:
1) Опыт работы на плюсах от пары лет (или олимпиадок в школе/шараге)
2) Проекты с чем-то выокопроизводительным или низкоуровневым

Без этого галеры будут ссать на лицо, если речь не о государственных НИИХУЯ. Да, рынок труда на плюсах куда более тухлый, чем на джаве.
645 2893106
>>893104
Проекты офк имеются в виду коммерческие, то есть на прошлых местах работы
646 2893121
>>847323 (OP)
Собираю проект с библиотектой Torch-ROCm.
Конфигурацию Cmake побороть смог.
Билд с clang поборол.
При выполнении ошибка:

RayCaster: /usr/src/debug/hip-runtime-amd/clr-rocm-5.6.1/rocclr/cmake/../thread/monitor.hpp:180: bool amd::Monitor::tryLock(): Assertion `thread != NULL && "cannot lock() from (null)"' failed.

Есть гайд, как фиксить, или собираться torch-rocm на плюсах?
647 2893156
>>893106

>как вкатиться


>проекты на прошлых местах работы

648 2893165
Спрошу тут
Заметил что в Debian 12 у меня отвалился clang. Не видит стандартных инклюдов типа <algorithm> В прошлый раз я такое фиксил обновив gcc, т.к. он использует их либы. Теперь чет непонятно что делать, так как
clang-16 is already the newest version (1:16.0.6~++20230919124242+7cbf1a259152-1~exp1~20230919124333.105).
libstdc++-12-dev is already the newest version (12.2.0-14).
gcc-13 is already the newest version (13.2.0-4).

>clang -v


Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/13
Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/13
.gif424 Кб, 352x248
649 2893206
>>893165
О, лялех.
650 2893215
>>893206
Ну да, а зачем тут твоя аватарка?
651 2893297
>>891246
Меня с опытом реальным на 350к нигде не взяли
652 2893464
Почему нельзя удалить элемент из массива ? В java это очень легко сделать поместив null.
Screenshot from 2023-10-25 12-19-28.webp8 Кб, 1415x924
653 2893501
>>892758
"Это из серии невкусно - приготовь сам". Не, не, я просто поплеваться пришёл.

>>892964

>Зависимостей много?


Не то, что много, а то, как они хуёво организованы. В расте у тебя всё лежит в Cargo.toml, который част проекта. А тут привязка к гиту.

>>892985

>язык на месте не стоит


да

>и все очень быстро протухает


нет. Для этого есть edition, которых уже 3: 2015, 2018, 2021. И последний конпелятор собирает их все. Вот, я собрал игру из 2018 без особых проблем. https://github.com/DarinM223/mold2d
Ещё могут протухать эксперементальные фичи, которые решили не включать в конпелятор, то да, но их случайно не используешь
654 2893743
>>893464
Включи голову.
Как ты инту сделаешь значение null без создания оверхеда?
655 2893763
>>893501
А собери чё нить 20 летней давности.
Ой...
656 2893811
>>893501

>Для этого есть edition, которых уже 3: 2015, 2018, 2021. И последний конпелятор собирает их все.


И либы из 2015 можно без геммороя использовать в 2021?
657 2893815
>>893501

> А тут привязка к гиту


А ты репозиторий не из гита качал?...
658 2893927
>>893811
Прикинь, можно.

>>893815
1. На расте у тебя есть Cargo.toml , в котором указаны зависимости с человечески приписанными версиями (хотя, гит тоже можно). Сам твой проект - хоть на svn, хоть на базаре. А тут привязка к гиту и его модулям.
2. В Cargo же можно прописать опции для зависимостей. В гите такое хуй сделаешь, надо костылить какую-то жуть в CMake.
3. На расте у тебя единый тулчейн, который собирает всё и обновляется простым rustup. А тут привязка к системным компиляторам и auto*-говну. Надо, чтобы твоя система была не слишком новая, но и не слишком старая. Ну, это на никсах, на винде вообще всё через "сбегай - скачай", по папочкам распихай и пути пропиши.
659 2893969
660 2893986
>>893927

>Прикинь, можно.


Сдается мне, ты пиздишь. Эдишены как раз и сделали, потому что у раста нет обратной совместимости между версиями. Фактически это как писать одну прогу на трех разных языках. Теоретически возможно, но на практике вряд ли будет приятно.
661 2894100
>>893927

> А тут привязка к гиту и его модулям.


Ну и?
Мне как конечному юзеру все равно откуда он репы качает
Мне как разрабу делов на 5 секунд прописать какую версию из гита дергать

> В Cargo же можно прописать опции для зависимостей.


Ну так если у них нет опций зависимости, то в чем притенения?

> В гите такое хуй сделаешь, надо костылить какую-то жуть в CMake.


Несколько опций прописать? Звучит не сложно
sage 662 2894136
>>893927
Это дибилы одной секты или один и тот же дибил переодически срет своим бредлм в с/спп тредах.
663 2894154
>>893986
https://pastebin.com/kWkCRFMs

создай либу с таким кодом. Если в карго стоит эдишн 2015, то соберётся, иначе - нет. Далее попробуй позвать функцию bar из крейта 2021-эдишн. Всё отработает.

С другой стороны, да, признаю, есть ломающие изменения, которые понижением эдишн не лечатся. О них предупреждают за полгода, но если либа заброшена, то никто, ессно, не пофиксит.
Об этом есть целая простыня: https://rust-lang.github.io/rfcs/2834-cargo-report-future-incompat.html
вкратце: что попало не выкидывают, только то, что просочилось в релизную ветку по ошибке. Вообще, для такого есть ночные сборки, где фичи тестируются, но иногда вылазит.

>>894100

>Мне как разрабу делов


Ну, смари: я только прописав крейт в импорте уже могу брать оттуда функции. Ide сама подсказывает, что куда прописать, чтобы импортировать. В некоторых случаях, если обращение идёт по имени крейта, она даже сама предлагает добавить зависимость. У вас также?
Screenshot from 2023-10-25 17-37-15.webp7 Кб, 933x413
664 2894166
>>892758

>Пиздуй переписывать на Раст


кстати, внезапно, пик.

>>894136
Надо же, какой ты проницательный. Впрочем, Rust и тебя тоже любит.
665 2894484
>>894136

>Это дибилы одной секты


Интересно, что этих шизов так к расту притягивает? Такая же фигня как с хаскелем, лиспом или к примеру арч линуксом и веганами. Почему-то вокруг языка формируется группа ебанашек, которые сами на языке в общем ничего значимого не пишут, но непременно лезут во все дыры и доебывают всех рассказами о том, как у них круто, а все вокруг лохи и не узрели света истины. Почему так происходит, что их притягивает?
666 2894491
>>894484
В аниме тусовке тоже много ебанашек - что ж теперь, и аниму не смотреть? Rust is the end and is the beginning. Worship his safety!
667 2894548
>>894136
>>894484
Этож /pr, пагни, не когмите тголя
Плюсотреды тролят растом, пушо тулинг и мемори сейфти
Растотреды тролят сями/плюсами и почему-то шарпогосподо борроучекер сложна
Шарпотреды тролят джавой, пушо зп и вакух больше
Джаватреды тролят котлином/скалкой и шарпогосподо языковых фич больше
Js/ts/php не посещаю, но думаю там тоже хватает тухлого тролинга
668 2895134
Овер каво ?
669 2895322
Где у смарт поинтеров ковариантность? Или объясните что это нах не нужно.
https://onlinegdb.com/Rzv6gsLy48

class A {};
class B: A {};
class C {
vector<shared_ptr<A>> vec;
void add(shared_ptr<A> a) { vec.push_back(a); }
}
C c{};
auto b = make_shared<B>();
c.add(b);
image.png43 Кб, 1027x396
670 2895448
Кто знает есть ли быстрые способы, без ветвления if'ами, получить максимальное число из массива? Хотелось бы сделать свёртку массива в 4 раза с сохранением максимального значения из 4 элементов, как на картинке. Я грежу, может есть какая то битовая хитрость или что то подобное
671 2895460
>>895448
Причем здесь плюсы только, интересно.
672 2895464
>>895448
"x ^ ((x ^ y) & -(x < y));"

"x - ((x - y) & ((x - y) >> (sizeof(int) * CHAR_BIT - 1)))"
673 2895479
>>895464

Ну это я пробовал, вроде работает. Вот думаю может как то можно лучше
https://pastebin.com/FZcyAy11
674 2895487
>>895464
вот просто интересно, как ты пришел к этому решению? как ты рассуждал, когда писал его? какой тактики придерживался?
675 2895504
>>895487
Я прост загуглил "find maximum without branching" и скопипастил код из первого индусосайта в выдаче
676 2895505
>>895448
https://gcc.godbolt.org/z/39sbeaE4P
Достаточно мало if-ов?
677 2895513
>>895487
Это классика, это знать надо:
https://graphics.stanford.edu/~seander/bithacks.html
678 2895519
>>895322

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


Ручками надо кастить:
https://en.cppreference.com/w/cpp/memory/shared_ptr/pointer_cast
679 2895585
>>895519
А шарпогоспода может в ковариантность https://dotnetfiddle.net/KuBAkj для интерфейсов
а в тайпскрипте и для классов работает

А плюсы почему-то не хотят даункастинг сами сделать, а как будто прицип подстановки Лисков нарушается...
680 2895618
>>895585

>А плюсы почему-то не хотят даункастинг сами сделать


Потому что так как минимум множественное наследование, и правила для даункаста могут быть самые причудливые. Ну и вообще, такой автокаст если и возможен, наверняка будет иметь такие подводные камни, что правильно кодить с ним, учитывая все тонкости, и Страуструп не сможет.
681 2895638
>>895618
Разобрался наполовину https://www.onlinegdb.com/JllHZNVU6u
с публичным наследованием работает, хотя у A и B никаких мемберов нет.
682 2895786
>>895618

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


А Страуструп вообще что-нибудь нашкодил за свою жизнь, кроме самого языка?
Даже библиотеку писал не он.
683 2895836
>>895786
Он стратег.
684 2896783
>>895786
Если честно то даже сложно сказать, что он язык "накодил". Изначально это вроде просто был транслятор плюсового синтаксиса в си, а потом уже совершенно другие люди над ним работали.
16968580473010.jpg165 Кб, 960x920
685 2896876

> 2023


> половина функционала из c++20 стандарта до сих пор не работает

686 2896892
>>896876
Например?
https://en.cppreference.com/w/cpp/compiler_support/20
Вижу тут только единичные промахи.
С модулями вот правда полный обосрамс, вместо удобства получилось что то невероятно пердольное, но в этом наверное и смысл был, чтобы с++ бояре не остались без работы и было еще больше кишочек разгребать.
687 2897451

> a = std::move(b)


> b все равно вызывает деструктор



Интересное решение, то есть теперь у меня две опции
- Запретить мув к хуям
- Создать новое состояние у обьекта (дохлый, но почему то еще не умер) и в деструкторе каждый раз проверять не умерли ли мы преждевременно

Дизайн 10\10

Я могу быть уверен что после вызова мув конструктора\оператора деструктор ОБЯЗАТЕЛЬНО вызовется у нового значения? Или тоже есть нюанс?
688 2897469
>>897451
Ты не очень понимаешь что такое мув
689 2897479
>>897469
А что оно такое совпадает с тем что оно должно делать?
После мува объект должен быть валиден?
У него должны оставаться ресурсы которые ему еще надо будет удалить в деструкторе?
690 2897505
>>897479
Если у тебя что либо внутри не мувается, это придется удалить.
А в чем проблема вызова деструктора у мувнутого объекта?
691 2897509
>>897505

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


Даже не знаю

>Если у тебя что либо внутри не мувается


Всё мувается прекрасно, в этом проблемы нет
Просто потом удаляется несколько раз
692 2897534
>>897509
Значит ты неправильно муваешь, если у тебя что-то два раза удаляется. Поинтеры обнуляй.
693 2897540
>>897534
Аааа, а вызывать деструктор у невалидного обьекта это значит правильно

не ну реально чтоли нельзя было не костыльно сделать?
694 2897546
>>897540
Да откуда ты взял, что после мува объект невалидный? Он может быть с нарушенным инвариантом, но точно валидным.
695 2897549
>>897540
>>897546
Хотя ладно, это необязательное требование, я думал там есть ограничения на мув конструктора.
Вот из стандарта:
Unless otherwise specified, all standard library objects that have been moved from are placed in a "valid but unspecified state", meaning the object's class invariants hold (so functions without preconditions, such as the assignment operator, can be safely used on the object after it was moved from).
И это правильный подход.
В целом и почти единственный, ведь иначе будет почти всегда УБ, а программа с УБ не является программой на С++.
696 2897577
>>897549
>>897546

> обьект не невалидный


> но если ты его используешь то УБ и вся твоя программа невалидная


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



Тем более я вобще никогда не хочу чтобы в деструкторе после мува хоть какой то код выполнялся, кроме проверки на то не смували ли нас случайно

>>897546
А нахуя мне валидный обьект после мува?
Нахуя мне валидный обьект с нарушенным инвариантом?

Может после деструктора обьект тоже валидным будет оставлять?

ну вобщем спасибо за ответы и что даже в стандарт заглянул, не понимаю как такое умные дядьки могли в стандарт добавить
697 2897596
>>897577
Хозяин барин, доделай флаг moved.
Хотя мне все равно кажется, что ты что-то накосячил с мув конструктором, раз у тебя delete стреляет.
Можешь показать кусок?
698 2897601
>>897596
Да я уже починил давно, просто поинтеры зануляю и проверяю в деструкторе не занулены ли они уже
699 2897621
>>897601
Ну так в этом и суть, в деструкторе всегда надо проверять, указывают ли у тебя на что-то поинтеры, перед тем как очистить.
700 2897625
>>897601
>>897621
Не надо ничего проверять, достаточно занулить, удаление нуллптр валидно.
701 2897703
>>897625
А если ты не делит вызываешь? А какой нибудь glfwDestroyWindow?
702 2897749
>>897703
То ты тредом ошибся, сишники живут двумя блоками ниже
703 2897758
>>897749
В си мув семантики славо богу нет
704 2897778
>>897703
>>897758
Ты на плюсаз поинтер не мувнешь нинужно точнее мувнешь но нихера не будет. Указатель надо просто копировать а старый нулить.
705 2897927
У треда скоро будет bad week pointer
706 2898199
>>895322
тут ковариантность в том смысле что простые указатели ковариантны: указателю на базовый класс можно присвоить указатель на производный класс, а смартпойнтеры сохраняют это поведение
то есть это не есть ковариантность в полном смысле этого слова какая подразумевается в теории типов, но все же что-то хоть и обрезанное, но похожее
707 2898227
>>881994
от того что слишком умный, окружение давит снаружи, мозги давят изнутри
708 2898320
>>897927
А растотред уже перекатили.
709 2898365
>>897927
Ты о чём? Тред даже не на последней странице. Или ты из JS-треда, где перекаты делают после 500 постов?
710 2898444
>>897479
Гугли moved-from objects placed in a valid but unspecified state.
Суть в том, что часть методов можно вызывать, потому что они не зависят от стейта. Например, is_empty(). Если бы объект был невалидный, то было бы нельзя и такой метод вызвать. Но само состояние не специфицировано. Другие методы могут полагаться уже на состояние, и быть определены только когда is_empty() вернул false.
Это аналог неинициализированных переменных. В других языках всегда проверялось бы чтобы каждая была инициализирована, а каждый мув двинул все. Здесь же язык для скорости, и следить за стейтами на программисте.
711 2898685
>>898444

> Здесь же язык для скорости, и следить за стейтами на программисте.


А что если для скорости после мува не вызывать деструктор объекта?
Ещё и проверки стейта пропадут лишние
Русские пословицы.webm14,1 Мб, webm,
640x360, 2:34
712 2898701
>>898685

>А что если для скорости


Поспешишь - людей насмешишь.
713 2898714
>>883380
В С++ такое гавно под видом корутин майкрософтовские уроды вроде Гора Нишанова протащили, что блевать хочется. Сравни, например, с корутинами в Луа (конфетка) или даже в Питоне - тривиальная вещь, ничего даже объяснять не надо. В С++-же никто не понимает, и никто не может объяснить.
714 2898717
>>898701
Плохо учил пословицы. Вот как правильно:
Поспешишь - в жопу пидарас.
07. Demo - Coroutines.mp411,6 Мб, mp4,
1280x720, 4:28
715 2898777
>>883380

> никто нормально объяснить не может


Курс Pluralsight - What's New in C++20 (Kate Gregory, 2022)
Глава 4. Concurrency Changes
image.png48 Кб, 1496x173
716 2899062
Куда файлы .pdb класть, я так и не понял?
717 2899268
>>883200

>пикрил


сейм хуйня про потоки. Нихуя не понятно

мимо новичок
03. Threads and std--jthread.mp410,5 Мб, mp4,
1280x720, 6:38
718 2899357
>>899268

> не понятно


Что не понятно?
719 2899419
>>899357
Блин ты такой умный и потоки не вызывали у тебя даже с первых секунд никаких проблем! жаль только что потоки это причина 95% багов в системе, но а так да, всё легко и просто. А если что не понятно - вон из профессии, быдло!
720 2899479
Давно не был в треде, но тут залетаю на анальной тяге. Увидел я вот этот кал:
https://github.com/GaijinEntertainment/DagorEngine
И у меня возник вопрос - это серьёзно в рашке крестовики такое пишут или там просто аномалия? Я такой поеботы не видел даже и васянов на линуксе. Такой пиздец, что от одного статического анализатора каждые пять строк варнинги идут по коду, для Wall надо половину кода переписывать нахуй. Про стиль кода я вообще молчу, там даже в одном методе могут использовать NULL и nullptr, от имён глаза вытекают нахуй. Как вообще такое калище можно было в паблик выкладывать? И они ещё позиционируют это как удобный движок. Они серьёзно думают этот высер кто-то будет трогать?
Требую пояснений за это у работающих крестовиков. А то уже макаки-питонисты перестают казаться смешными после увиденного. Или это следствие того что крестовикам платят меньше всех?
721 2899486
>>899479
В геймдеве стандарты ниже, другие приоритеты.
722 2899488
>>899479
Я должен все это говно перерывать? Неси сюда, что конкретно не нравится, обоссым тебя.
723 2899506
>>899486
Но когда память выделяется то через new, то через malloc, а потом в деструкторе memfree, то я даже начинаю теряться на каком ЯП они пишут. Это вообще ни под какие стандарты не подходит.
Куча закомменченного кода и todo в комментах к строчкам - а эта хуета точно будет работать нормально?
Там вообще с каждого файла можно отдельно орать.
724 2899517
>>899479
Открыл рандомный файл, вроде пойдет.
Тащи что именно батхерт вызывает, вместе посмеемся.
image.png116 Кб, 402x315
725 2899600
>>899479
Да допустим и говнокод, на нем вартандер написана, вон даже играет кто-то, а значит деньги зарабатывают - цель выполнена. Ты думаешь в геймдеве клинкод? Во всех играх/движках говнокод, абсолютно везде.
image.png41 Кб, 568x389
726 2899601
>>899479
Там вон даже алгоритм чисто из книжки спиздили, но оно же ведь работает, почему бы и нет?
image.png36 Кб, 998x539
727 2899603
728 2899624
>>899506
Что не так с маллоком и фри лол?
729 2899737
>>899479

>И у меня возник вопрос - это серьёзно в рашке крестовики такое пишут или там просто аномалия?


Это плохой менеджмент, и он не зависит от страны и языка. Когда проект развивается в режиме постоянного аврала, технический долг в миллионы человекочасов, а текучка такая, что средний срок работы специалиста полгода-год, такой результат неизбежен. Они хотя бы сами все пишут, бывает, что проект делает цепочка отсорсеров (например, поляки берут проект и нанимают индусов в два раза дешевле, а те нанимают вообще дешевых филлипинцев) - вот там пиздец гораздо больший.
730 2899739
>>899624

>Что не так с маллоком и фри лол?


Надо созданное маллоком удалять через фри, а нью - через делит, и не смешивать.
731 2899769
>>899479
1. Это геймдев.
2. Это легаси с 20 летней историей.
732 2899915
>>899506
Если проект задействует библиотеки си (а таких много), то без маллока не обойтись.

>точно будет работать нормально?


Ну не будет и не будет, чего бухтеть то? Патчами поправят, график релизов важнее.
image.png7 Кб, 280x156
733 2899957
?)
734 2899977
>>899957
std::default_random-engine - это псевдоним, за которым чаще всего скрывается mersenne twister engine. А он требует относительно большого буфера.

Алсо, хз как на твоей картинке подсчитан размер, но в debug конфигурации всегда к коду добавляется туева хуча отладочной информации.
735 2899980
>>899977
но 5к байт все равно слишком дохуя

> в debug конфигурации


это именно размер переменной
без разницы дебаг или релиз
736 2899998
>>899980

>но 5к байт все равно слишком дохуя


Википедия пишет, что 2,5к нужно в сферической реализации в вакууме.
Порядок величин вобщем-то совпадает.

>без разницы дебаг или релиз


А вот хз, у тебя же из библиотеки подтягивается. Дебажный конфиг это фактически отдельная библиотека, другие файлы и они всегда больше весят. Может там оно на гвоздях прибито.
737 2900221
C++
738 2900481
да
изображение.png271 Кб, 476x717
739 2900750
740 2900755
с начала нулевых сидел по большей части ридонли на всех тематических форумах где были разделы с крестами, плюс где то с середины нулевых стал популярен живой журнал, почитывал и там посты, ну а потом имаджборды появились с тематикой, плюс еще в самом начале нулевых даже почитывал архивы фидошных гейтов в nntp накопленные с 90х
дак вот, общий вывод печален: полезной информации не было прочитано ни разу, все это было тупо проебыванием моего времени, прямо сказочка о потеряном времени, все это чтение нахуй не нужно
как я догадываюсь, сейчас вся эта болтология перекатилась по большей частью в телегу, где продолжается все та же болтовня и информационный мусор
ленин.webm4,6 Мб, webm,
640x480, 1:00
741 2900916
Пишу программу которая парсит выдачи трех разных программ. Так как в обработке выдач этих програм есть одинаковые действия, то написал класс BaseParser, от которого наследуются классы ProgramAParser, ProgramBParser и т.д. В наследующих классах переопределяются некоторые методы через override и добавляются новые поля.
Как в этом коде элегантно сделать так, чтобы не пересоздавать log? Или лучше писать отдельные парсеры для кажой программы и не ебать мозга общим классом?
int main() {
std::string workdir = "../test/";

std::vector<std::string> log_files = GetLogFilesInFolder(workdir);

std::cout << "Found logfiles:" << std::endl;
for (const auto& file : log_files) {

BaseParser log = new BaseParser(workdir, file);
log->PrintValues();

if (log->GetProgram() == "ProgramA") {

ProgramA
log = dynamic_cast<ProgramA>(log);

}
else if (log->GetProgram() == "ProgramB") {

ProgramA
log = dynamic_cast<ProgramB*>(log); //не фурычит

}

delete log;
}
742 2901020
>>900916
Вот это работать не будет:
BaseParser log = new BaseParser(workdir, file);
ProgramA log = dynamic_cast<ProgramA>(log);
Ты не понимаешь как ООП в принципе устроено. Даункаст не преобразует объект в наследника из родителя, а просто приводит тип из Parent в Child, если по ссылке на самом деле Child, которого апкастнули в Parent.
743 2901098
>>899980

>без разницы дебаг или релиз


Вобщето да.
Было бы стремно, если бы в дебаге sizeof() выдавал что-то другое, чем в релизе.
744 2901200
>>901020
Скажи как сделать по красоте чтобы было. Ты же понял суть что я хочу?
745 2901262
>>901200
Гугли паттерн фабрика
746 2901504
>>900916

>выдачи


мочу или говно?
1698764153005.jpg29 Кб, 735x730
748 2901744
>>901738

> work in progress

749 2901771
>>901744
Главное НАЧАТЬ.
Комитет и Страус слов на ветер не бросают. Если сказано, что сделоют - значит сделоют.
750 2901786
>>901771
Ну и когда это будет реализовано хоть в каком то компиляторе? Лет через 6-9?

Мне бы хоть до компайлтайм рефлексии дожить
751 2901790
>>901738
Toward the end of the talk, Stroustrup went into more detail. “I’m suggesting that you have module-based controls.” The slide shows how it would work in code.
Найс троллит
752 2901895
753 2901911
>>901786
Не доживёшь. Кругом дроны, люди тонут в коллекторах, новый штамм короны надвигается, а по весне на головы полетят сосули. Но ты можешь попробовать нормальный ЯП уже сейчас: выбери Rust, выбери жизнь в новом ржавом цвете.

ваши тоже у нас срут
754 2901915
Корпоративный бот не палится >>901911
Если не будет утечек в памяти, то как ломать неолиберальный кибергулаг, ммм?
755 2901920
>>901504
Ичо тебе не понравилось, хуйло?
756 2902048
>>901911
Не нравится борроу чеккер + хочу работу хоть какую то найти
Но спасибо за предложение!
757 2902063
Нравится борроу чекер + РНН.
758 2902091
>>901786
Советую присмотрется к cpp2 / cppfront Герба Саттера. Кое-что там уже реализовано. Боров чекера там не будет, не канонично, но есть пропозал Lifetime safety https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1179r1.pdf
759 2902195
>>901920
еще одно оскорбление с переходом на личности и улетишь в бан
760 2902225
>>902195
Твою мамулю трахал, обоссышь комнатный, ещё ножкой топни хуесосина

мимо проходил, не удержался

>>902091
Проект кончено классный, но опять таки релилизнится через хзы сколько лет, а пригодным для использования ещё позже станет, а уж работу с ним найти...
К тому времени может и карбон уже появится
Или вообще все на Свифт перейдут
761 2902226
Список всех альтернатив плюсам

- Раст
- переписать все на Свифт
- карбон от гугла
- цпп2/цппфронт

Кого ещё забыл?
762 2902227
>>902226
кого-то точно забыл. список "убийц крестов" регулярно пополняется с 98 года
763 2902229
>>902227
Точно, D же ещё был
764 2902252
>>902226
Точнее
- Раст
- какая-то хуйня с безопасностью на полшишечки
765 2902298
>>902226
Val
Circle
Zig (точнее это замена Си)
>>902252
Безопасность раста сильно переоценена. Да там есть микрописька дополнительная, но там так же куча UB, там unsafe в стандартной либе и так далее. Когда обмазываешь кресты анализаторами и ubsan-ами то разница не так уж велика. Раст это полшажочка вперед, а его выставляют как будто прыжок на 10 метров.
766 2902331
>>902298
С начал 2019 года пишу на расте, отладчик понадобился единственный раз - когда память потекла из-за бесконечно падающего форка. Собсно, это было в логе, но я не увидел, так как засрал его отладкой.

>Val


Его переименовали в хуйло. Всюду политика, как видишь. Посмотри ещё в сторону vale, у него схожий подход к безопасности.

>Circle


не вчитывался

>Zig (точнее это замена Си)


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

Вообще, много их, но без ледокола в виде крупного проекта от корпорации, ни у одного шансов нет. Скажем, если гугл скажет "Всё, переписываем хром на хуитанейм", то все ринутся её учить. Тот же карбон, например, хоть он и тоже на полшишечки.
767 2902606
>>902331

> 2019 года пишу


> отладчик понадобился единственный раз


Дебажишь в голове свой код?
Или принтами в консольку?
768 2902677
>>901738
Страус поехавший евангелист, который нашел своё призвание в продаже приставки ++. Что он там пердит на реальность не влияет
769 2902846
>>902606
Принтами, а как жешь. Ещё на расте есть макрос dbg!, он тебе сразу рисует и значение переменной, и строку в исходнике - больше его юзаю.
1628346084281.png33 Кб, 513x718
770 2903036
Почему указатель на временный объект остался валидным?
1679509685604.png35 Кб, 745x707
771 2903048
>>903036
Отвечаю сам себе. Скорее всего сработал SSO.
Как раз 16 символов скорраптились
772 2903172
>>902677
Тебе так кажется. Его зовут на все конференции, слушают его мнение и часто делают как он сказал.
773 2903179
>>902331
Прямой связи между "тебе не понадобился отладчик" и "язык безопасный" нет. Мне тащемта и в с++ редко требуется именно отладчик.
774 2903180
Ну и в чём Страус не прав?
775 2903193
>>902331

>Circle


>не вчитывался


Почитай, там много полезной инфы на пару вечеров.
https://github.com/seanbaxter/circle/blob/master/new-circle/README.md
На практике мне не понравился правда, пользоваться я им не буду. Но сама идея конструктора языка где ты вкл-выкл фичи забавна.
776 2903849
Как лечить ООП головного мозга у людей?
777 2903873
>>903849
Закрываешь в подвале, даёшь задачу на даймонд инхеритенц, через месяц даёшь учебник по хаскелю. Выпускать не стоит, да и они не захотят выходить.
778 2903945
>>903873
Закрыть в подвале не получится. Нужно, чтобы человек сам понял, что структуры с методами решают абсолютно все задачи и перестал городить шаблонное говно с итераторами, виртуальными функциями и прочей шизой.
779 2903968
>>903945
Сейчас бы писать 100500 вариантов одной функции для (int, int), (int, float), (int, long), (float, float), (float, short)...
Ахахахпххпхпха
Попустись шиз
780 2903995

> да ООП этот ваш легкотня ебал в рот его учить


> приходит на собес


> что такое protected


> ох блин, ну это, как там его, ну блин...

781 2904024
>>903968
Про void* ты не слышал?
782 2904032
>>903995
Меня такое не спрашивали. Да и в любом случае это все за вечер учится. Это же даже не программирование по-сути.
783 2904033
>>904024
Ты сейчас серьезно сравниваешь void* с шаблонами?
мимо
784 2904043
>>904032

>Это же даже не программирование


А что это?

> а и в любом случае это все за вечер учится


Вот именно, и не знать такое на собесе приговор
785 2904051
>>904024
Аххахахахаха
786 2904054
>>904043

>А что это?


ООП != программирование. Просто описание какой-либо модели для удобства, можно и без всего этого писать программы работающие.
787 2904055
>>903995
Чем отличается абстракция от полиморфизма?
788 2904058
>>904043

>А что это?


Онтология. Философскиая наука о разделении сущного на частности и давание им названий.
789 2904061
>>904054
С++ != программирование, просто описание какое то модели вычисления для удобства, можно и без всякого с++ писать программы работающие

ты сам то понимаешь вобще что пишешь?
мы вам перезвоним

>>904055
значением
790 2904066
>>904061
ООП не программирование.
791 2904067
>>904061
Таблеточки попей
792 2904068
>>904066

>Объектно ориентированное программирование


>не программирование

793 2904069
>>904061
Каким еще значением?
794 2904074
>>904069
слов

>>904067
>>904066
если вам сказать нечего то просто не пишите
795 2904082
>>904074
Ну так напиши эту разницу
796 2904091
Ебааать. Свидетелей полиморфизма полон тред. Вы в курсе, что самая популярная прошивка для роутеров Linoops написана на C и никто от этого не умер нахуй.
797 2904099
>>904091
От этого буквально умерло много людей. Си убивает.
798 2904101
>>904068
В функциональном программировании слово программирование тоже присутствует.
799 2904107
Опять троллинг от студентоты

>>904091

> Свидетелей полиморфизма полон тред.


Полиморфизм преспокойно живет и без ООП

> Вы в курсе, что самая популярная прошивка для роутеров Linoops написана на C и никто от этого не умер нахуй.


А раньше эти прошивки преспокойно писали на ассемблере, получается С\С++ это не программирование?

>>904101
и?
800 2904119
>>904024
То есть ты послал нахуй типо безопасность и взял в руки дубину тайп эрейжур?
Даже несмотря на то, что чел сверху хуйню написал, шаблоны могут существовать и без объектов.
801 2904204
>>904119

>То есть ты послал нахуй типо безопасность и взял в руки дубину тайп эрейжур?


Да ебать
802 2904314
>>904107

>А раньше эти прошивки преспокойно писали на ассемблере, получается С\С++ это не программирование?


Не получается. Асм - это тоже пердолинг, как и цпп.Только другого рода.
803 2904415
C++ Primer, Primer Plus или книга от Страуструпа? Хочу выучить плюсы для себя, сделать то что начал ещё в школе начал хуево, с видосиков в ютубе, и в итоге бросил. Сам девопс, все что хотел знать в этой сфере уже вроде выучил, поэтому решил добить таки этот ЯП.

В программировании не совсем новичок, знаю Python и Go потому что надо, плюсы тоже в какой-то степени но только базис ООП, не глубже. Делал лабы на win32 в вузике и курсач на Qt. Хотя по большому счету на этом всё, на Питухоне я только скрипты пишу, Go в реальности так и не понадобился, так что я не сказать что прям программист. Но плюсы я слабо понимаю, стоит зайти и посмотреть на комплексный код как тут же приходит охуевание, да и в этом треде уже вижу много того чего не понимаю совсем. Хочу разобраться с языком поподробнее, чтобы понимать его как можно лучше, а не тупо знать как сделать какие-то базовые вещи. После того как освоюсь с ним, наверное, буду ковырять SDL. Писать игрульки было моей мечтой и пусть профессиональный гейдевом я не стану слава богу то хоть для себя буду что-то тыкать палкой, мб какое-то говноинди когда-то да выйдет.
804 2904622
>>904415

>C++ Primer, Primer Plus или книга от Страуструпа?


если

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


то Липпман онли.
Исчерпывающей книжки по плюсам вообще не существует, забудь про это. С++ - язык непознаваемый, чем раньше ты смиришься с этим фактом, тем лучше будешь в нем ориентироваться.
Тем не менее, из переводов на русский, книга Липпмана наиболее полна как по охвату материала, так и по глубине. Из минусов - высосанные из пальца, недоопределенные задачки и примеры, а так же муторный стиль оформления кода.
Время на нее ты потратишь больше, но это не будет зря потраченным временем. В дальнейшем ты будешь гораздо меньше тупить, читая другие книжки, статьи, гайды, справочники.

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

В книжке "с гусями" Страуструп хочет тебе показать побольше, не особо вдаваясь в объяснения почему так, а не иначе.
Книжка с горами на обложке ее вроде как перевели совсем не для вкатунов.

>буду ковырять SDL. Писать игрульки


SDL, SFML есть и для питона, и для сисярпа. Тебе нужен для этого C++.

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


Вот только ради б-га не надо на это смотреть как на какой-то челлендж для твоего интеллекта. Нету в cpp чего-то действительно интеллектуального, чего нет в других языках.
Сложность С++ обусловлена историческим нагромождением инженерных решений, плохо согласованных между собой. Сложность С++ выражается том, что к почти любому правилу прилагается список оговорок, исключений и особых случаев, в разы превосходящий по объему само правило.
805 2904623
>>904622

>Тебе нужен для этого C++.


⚹ не нужен
806 2904630
>>904623
База треда.
807 2904768
>>904622
>>904630
Кстати да. Особенно удивило как про сложность рассказал. Давно такого не встречал и полностью согласен.
а вообще ето правило работает не только к плюсам, но вообще к большинству всей херни в жизни ящитаю
808 2904982
>>847323 (OP)
Нужно ли в плюсах чистить объекты типа vector или map после их использования?
809 2905016
>>904982
Это зависит. Хочешь чисти хочешь нет.
810 2905067
>>902225

>Твою мамулю трахал, обоссышь комнатный, ещё ножкой топни хуесосина


еще раз такое напишешь - репорт и ты в бане
16450153374170.jpg18 Кб, 480x325
811 2905131
>>905067
говно, ты?
812 2905191
>>905067
Разве ты уже не делал последнее китайское предупреждение? Получается твои угрозы ничего не стоят..
16654762758820.png377 Кб, 811x987
813 2905195
>>905191
слыш. забанен
814 2905305
>>904091

>Вы в курсе, что самая популярная прошивка для роутеров Linoops написана на C и никто от этого не умер нахуй.


Да, а еще я в курсе, что ты никогда не открывал код этого самого Линупса, иначе бы знал, что там код написан в ООП стиле.
815 2905481
есть разбирающиеся в QT? Создал в проекте класс MyGLWidget, наследующийся от OpenGLWidget, определил нужные функции, подключил хедеры и все такое. Потом через "Promote to..." промоутнул нужный объект до этого класса.
При компиляции выдает ошибку "myglwidget.h file not found". Этот хедер инклудится в (автоматически сгенерированном) ui_mainwindow.h, который находится хуй пойми где, и видимо поэтому не может найти этот хедер. Как пофиксить?
816 2905567
>>904091
Строго говоря Линукс написан не на Си, а на Си с GCC Extension, это другой язык с отличающимся от стандарта набором фич.
https://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html
Была где-то паста, но я ее потерял.
Бросаются в глаза - массивы нулевой длины, пустые структуры, неконстантные инициализаторы, case ranges (case 1 ... 5), арифметика с *void указателями, вложенные функции, вложенные объявления внутри выражений, typeof, сокращенный тернарный оператор x?:z и тд
817 2905606
>>905481
Хз что за дичь, лет 5 как с работы ушел не ртсал на кути, но:
никогда не используй автогенерацию форм - пиши все руками, так и научишься лучше и лейаут ыорм будет в точности таким как хочешь.
818 2905665
>>905481
Хуй пойми что ты высрал и что тебе вообще надо, какой еще OpenGLWidget? Зачем тебе это? Вряд ли даже кто на кутах веслает пользуются этим говном.
А по описанной тобой проблеме дело скорее в файле сборки, смотри что у тебя там qmake, cmake и пропиши системе сборки где какой хедер лежит
819 2905689
>>905305
когда то давно мне дали такой совет: хочешь посмотреть как пишут на хорошем си, смотри исходники фряхи, а на ядро линукса забей
820 2905775
>>905481
Теневая сборка включена? Если да, то попробую офнуть или наоборот, не помню. Название файла точно совпадает? Он точно существует там где его ищет кумакя?
ui_zalupa файлы генерятся в папке билда.
821 2905776
>>905606
Если руки не из жопы и то и в дизайнере можно красоту делать, а главное в 50 раз быстрее, кабанчик визжит от радости
822 2905826
>>904622

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


Я это и так знаю. Поэтому не написал "понять полностью" а "как можно лучше".

> Тем не менее, из переводов на русский


Инглиш онли. CS и всё что рядом должно быть на инглише, чтобы не охуеть потом от документации. Ладно там как совсем первую книгу совсем нюфагам, но я псина стрелянная.

> книга Липпмана наиболее полна как по охвату материала


Я приложил пару скринов из книги Страуструпа. Это в разделе про указатели, тут он затрагивается довольно таки поздно что модет даже хорошо для нешарящих ну совсем. Полистав я понял что он свой хэдер написал и там много чего упростил чтобы не приходилось разжёвывать то чего неокрепший ум пока не поймёт. У Липпмана никаких рисунков нет, только пара примеров. Оценка на глаз, однако структурно Страуструп явно более мягкий подход использует, Липпман просто проходится по фичам без подробных объяснений с примерами. Что как бы звоночек.
Ирония в том что ни один не показывает что, так как в конечном счёте память это 0 и 1 в большом количестве, то один и тот же кусок можно прочитать как совершенно разные вещи (int/float или long/double) и не почувствовать подвоха. Ну или я плохо искал.

> Время на нее ты потратишь больше, но это не будет зря потраченным временем.


Чисто по страницам +/- одинаково же.

> SDL, SFML есть и для питона, и для сисярпа.


> питон


Сам думал что писал?

> сисярп


В новой его версии можно добавлять поля в интерфейсы. ПОЛЯ. В. ИНТЕРФЕЙСЫ.
Лучше бы на Го уже советовал, хотя без ООП там будет сложновато делать что-то прям комплексное я правда не собирался.

> Сложность С++ обусловлена историческим нагромождением инженерных решений


Как по мне, скорее техническими нюансами работы компьютера. Динамических массивов нету не потому что хуёвое инженерное решение а потому что просить и возвращать память у аллокатора надо руками. Если оставить это дело на автоматику то оптимизаций под конкретно твой юзкейс не жди.

Короче, спасибо за совет, наверное буду пытаться обе чтобы сложить своё мнение по обоим. ХЗ, как у меня это выйдет, но попытка не пытка. Пока "книга с гусями" своими графическими презентациями привлекает больше просто потому что я ХЗ как без этого объяснять что такое память компьютера и почему именно от дауна за монитором зависит как она будет использоваться.
822 2905826
>>904622

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


Я это и так знаю. Поэтому не написал "понять полностью" а "как можно лучше".

> Тем не менее, из переводов на русский


Инглиш онли. CS и всё что рядом должно быть на инглише, чтобы не охуеть потом от документации. Ладно там как совсем первую книгу совсем нюфагам, но я псина стрелянная.

> книга Липпмана наиболее полна как по охвату материала


Я приложил пару скринов из книги Страуструпа. Это в разделе про указатели, тут он затрагивается довольно таки поздно что модет даже хорошо для нешарящих ну совсем. Полистав я понял что он свой хэдер написал и там много чего упростил чтобы не приходилось разжёвывать то чего неокрепший ум пока не поймёт. У Липпмана никаких рисунков нет, только пара примеров. Оценка на глаз, однако структурно Страуструп явно более мягкий подход использует, Липпман просто проходится по фичам без подробных объяснений с примерами. Что как бы звоночек.
Ирония в том что ни один не показывает что, так как в конечном счёте память это 0 и 1 в большом количестве, то один и тот же кусок можно прочитать как совершенно разные вещи (int/float или long/double) и не почувствовать подвоха. Ну или я плохо искал.

> Время на нее ты потратишь больше, но это не будет зря потраченным временем.


Чисто по страницам +/- одинаково же.

> SDL, SFML есть и для питона, и для сисярпа.


> питон


Сам думал что писал?

> сисярп


В новой его версии можно добавлять поля в интерфейсы. ПОЛЯ. В. ИНТЕРФЕЙСЫ.
Лучше бы на Го уже советовал, хотя без ООП там будет сложновато делать что-то прям комплексное я правда не собирался.

> Сложность С++ обусловлена историческим нагромождением инженерных решений


Как по мне, скорее техническими нюансами работы компьютера. Динамических массивов нету не потому что хуёвое инженерное решение а потому что просить и возвращать память у аллокатора надо руками. Если оставить это дело на автоматику то оптимизаций под конкретно твой юзкейс не жди.

Короче, спасибо за совет, наверное буду пытаться обе чтобы сложить своё мнение по обоим. ХЗ, как у меня это выйдет, но попытка не пытка. Пока "книга с гусями" своими графическими презентациями привлекает больше просто потому что я ХЗ как без этого объяснять что такое память компьютера и почему именно от дауна за монитором зависит как она будет использоваться.
823 2905828
>>905826
https://pixeldrain.com/u/JSFR6TqN
https://pixeldrain.com/u/gtbAzohh
Вот обе книги в той версии, в которой смотрел их я, если кто-то захочет проверить мои слова или ещё что.
824 2906210
Iteration Revisited: A Safer Iteration Model for C++ - Tristan Brindle - CppNorth 2023 - YouTube
https://www.youtube.com/watch?v=l3AxYei17ls

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

2

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


>шел 2023 год



>>905826

>ПОЛЯ. В. ИНТЕРФЕЙСЫ.


промытая манька
825 2906290
>>906210

>Интересно на сколько весомы призывы NSA и на что они могут повлиять.


Ахуеть как много на что, на то они и АНБ
Но понятное дело это америкосов в 99% случаев касается

хотя все еще это происходит в рамках "эдвайся", а не запрета

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


Там они еще и рейнджами умудрились дохуя всего поломать, что еще стандарта 3 чинить придется
826 2906324
>>906210

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


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

>промытая манька


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

Вот я рофлю а они реально могут такое выкинуть.
827 2906364
>>906324

>Для многих плюсы это сложно.


в реальности как будто это не так)
828 2906380
>>906324

>А что хорошего в том чтобы иметь переменные в интерфейсах?


А что плохого?

> Может тогда ещё глобальные переменные сделать чем-то обычным


А для тебя глобальные переменные это что необычное?
Да и при чем тут они вобще, какое отношение к интерфейсам и переменным в них имеют?
829 2906695
>>906380

>А что плохого?


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

>А для тебя глобальные переменные это что необычное?


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

>Да и при чем тут они вобще


Порождают такой же говнокод как и интерфейсы с переменными. Глобальные правда хоть чуть-чуть полезны, использовать можно где реально выгодно.
830 2906717
>>906695

> Знаю потому что у меня препод в шараге по нему был сеньйором.


Понятно, делать так нельзя, потому что злой преподаватель накричит и наругает
831 2906916
>>906717
Да нет, знаю потому что никто в здравом уме этого использовать не будет. Он говорил что если кто-то начал бы переменные в интерфейсы совать то в его проектах там половина кода поедет по пизде и это заебуться чинить. Ты нормальные контраргументы приводи, не буквоедство уровня двоща.
832 2906943
>>906695
Ты не думаешь что размышлять такими шаблонами в языке, который предоставляет тебе наибольшее количество контроля как программисту - порочная практика? На этом поле дозволено всё.
Да, в шарпах можно прикручивать какую-то идеологию и следования принципам конкретных людей, потому что сам по себе язык коммерчески направленный и заточен под определенные задачи.

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

В каком-нибудь си ооп вообще только и основано на переменных, это всё просто средства языка, и да, в плюсах нет понятия интерфейса как категории как в шарпах например
833 2906946
>>906916

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


Ну раз ты так сказал...

> половина кода поедет по пизде


Не пойдет
834 2906991
>>906695

>Лол, в том что они порождают говнокод.


Интерфейс с полями и дефолтной реализацией методов - это один из вариантов миксина. Они широко используются в других языках и сами по себе говнокодом не являются, говна с помощью чего угодно навертеть можно.
835 2907060
>>906210
В каком то языке итераторы не инвалидируются если удалять прямо в цикле?
836 2907129
>>907060
Никакой язык не разосрется сегфолтами при этом или еще чего похуже. но это не точно
837 2907137
>>907129
Ну ты почитай все таки. Ну да где то будет nullpointerexception
838 2907142
>>907137
Чего мне почитать, клоунесса, я в отличии от тебя знаю разницу между nullpointerexception и сегфолтом.
839 2907146
>>907142
Ну расскажи же в чем разница, когда на Java или C# программа падает с окошечком. Пиздец первокурсники в треде растекаются.
840 2907151
>>907146

>Ну расскажи же в чем разница


Могу только хуем тебе по губам провести.

>Пиздец первокурсники в треде растекаются.


Ты сам откуда вылез такой умственно неполноценный? Свободное времечко выдалось посреди школьных каникул?
841 2907181
>>907060
Во многих языках итераторы могут иметь ссылку на сам контейнер, как раз для того чтобы такой хрени не было
842 2907202
>>907181
В Java и C# ты получишь IllegalStateException / InvalidOperationException
Правда там есть какие то коллекции, которые делают "снепшот" (наверное ленивую копию) и ты продолжаешь итерировать по старой коллекции
В питоне будет RuntimeError или порча коллекции
JS судя по всему не упадет, но может скипать элементы или зациклиться
В Го, не очень понял, судя по всему надо копировать коллекцию, что будет если менять не знаю.
В общем доеб до итераторов в с++ звучит мега странно.
843 2907206
>>907202
Ну получить эксепшен это уже отлично
844 2908446
Что делать с констатными полями класса, если я хочу сохранить для объекта мув оператор=?
Референсы я научился обходить, с помощью std::reference_wrapper<T>
16025693092500.png131 Кб, 447x478
845 2908625
>>908446
mutable
846 2908697
>>908446
Какой же охуенный язык, с которым тебе надо бороться, вместо того, чтобы писать код.
847 2908710
>>908625
Не думаю что подходит в моем случае
Плюс я хочу оставить константность данных, чтобы я не могу изменить значение переменной

видимо самое верное решение забить хуй на конст, даже в guidelines сказано не использовать референсы\констность, значит так и буду делать

>>908697
Есть такое
849 2908727
>>908711
Да я это первым делом видел, но подумал может все таки есть надежда
1699272238336.jpg26 Кб, 415x331
850 2909034
>>906943
>>906946
>>906991
Удачи вам работать с этим интерфейсом.

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

Как же хорошо когда стартапчик новый и можно легко переходить даже на RC версии фреймворков. И слава богу я девопс и не мне потом разгребать такое.
851 2909201
>>909034
Что сказать то хотел? Наговнокодить можно при помощи любых паттернов.
852 2909221
>>909034

>Удачи вам работать с этим интерфейсом.


Ты в плюсотреде вообще, у нас тут множественное наследование, интерфейсов вообще нет. В итоге, кстати, шарп и джава к похожей модели пришли, потому что это практично.
853 2909314
>>909034
Как сказали выше, ты в плюсо треде
ПРОСТО не пиши плохой код
854 2909318
>>909201
В более старых шарпах это не было так легко. Ну хотя бы потому что переменные или sealed в интерфейсе кидали ошибку. Новые версии позволяют каком-то дауну просто положить нахуй всё на ровном месте. Да, так можно было сделать и раньше, просто сейчас способов стало больше. И это не понятно опытным шарпистам, так как в отличии от плюсов, шарп не системный язык и выдать возможность написания говнокода за оптимизирующую уловку не выйдет.
>>909221

>Ты в плюсотреде вообще


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

>у нас тут множественное наследование, интерфейсов вообще нет


Я в курсе. Интересно, в плюсах композицию вообще никак не сделать? Только наследование?
855 2909339
>>909318

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


Потому что у них кругозор - только шарп, они ничего другого не видели, и не понимают, как новую возможность можно использовать, поэтому она их и пугает. А так в скале есть множественное наследование, в окамле есть множественное наследование, в плюсах кроме самого множественного наследования, миксины с CRTP - довольно частая идиома, в скриптовых языках можно вообще любую хрень сделать, и все едят и нахваливают.
856 2909342
>>909318

>Интересно, в плюсах композицию вообще никак не сделать? Только наследование?


В смысле? В плюсах как везде: добавил поле в класс - вот тебе и композиция.
857 2909598
>>909318
Какая разница что там в шарпах? Речь шла про плюсы. Язык не представляет собой коммерческую поделку для шлепанья, он задизайнен в ответственность программисту, и если ты высрал хуевый код, то это твоя вина.

Да, классно рассуждаешь, бро. Смотри я тоже так могу: авторы и разработчики языка развивают его в нужном им направлении, но вот аутсосным гребцам и гейдевелоперам из жопы мира где не высрали никакой внятной игры это не нравится, давайте ка пиздуйте всё по новой переделывать, не нравится, правда а че им не нравится то я высрать из себя не могу, да и сеньеры ебаные помидоры тоже не могут. Но вот чето не нравится, а стойте - код который они сами же и срут в редактор их не устраивает
858 2909816
>>908697
Звучит как описание раста
859 2909824
>>909318
>>909342
Композиция это скорее если у тебя vector<baseobject>. Тогда их можно и на лету добавлять убирать, ну и обрабатывать их каким нибудь range for each.
860 2909837
>>909318
стандартная библиотека шаблонов вообще то и является примером идеи композиционного программирования, в воспаленной голове создателя библиотеки вы все должны были бы объединять между собой стандартные и собственные операции (алгоритмы и объекты-функции) при помощи предикатов, связывателей, адаптеров, отрицателей, а далее уже применять их по отношению к контейнерам, широко использовались для этого к примеру возможность перегрузки операторов в языке, особенно возможность перегрузки оператора вызова ()
естественно подобный обскур си-макаки никак не могли уложить в свою головушку и продолжили дружно обходить контейнера в циклах высирая лесенки из ифов
861 2910054
>>909837

>обходить контейнера в циклах


>лесенки из ифов

scale1200.jpg87 Кб, 1200x1200
862 2910212
Сап двач, есть функция, принимает двумерный вектор, возвращает новый вектор. Если вместо возврата вектора, просто редачить принятый вектор через указатель в памяти, меньше оперативы жрать будет?
863 2910227
>>910212
Да, будет жрать меньше.
laba1.cpp?
864 2910394
>>909837

>высирая лесенки из ифов


Ну так лесенка из ифов эргономичнее, чем залупа с итераторами из STL, где перед глазами нечитаемая стена из begin(), end().
865 2910427

> лесенка из ифоф


> фуууууу


> лесенка из лямбд


> омномном

866 2910695
Свитч кейс сына
867 2910887
дафф девайс наху
IMG1284.png6 Кб, 512x512
868 2910927
Доброго времени суток, уважаемым погромистам. Начал вкатываться в cpp и интересует, какую литературу стоит читать. Основываясь на вашем опыте, подскажите пж, чего взять.
869 2910969
>>910927
Майерс
И прогать. Много прогать
870 2911000
>>910212
твоя функция, прости господи, должна как минимум принимать диапазон выраженный в итераторной паре, а в идеале это должен быть обобщенный алгоритм работающий над любым контейнером, к которому подходит тип примененного итератора
пишите на си++ утырки ебаные
871 2911035
>>910927
вначале К&R
потом Страуструп "Язык программирования С++ Специальное издание" (это третье издание, 98 стандарт)
хуяришь упражнения в обеих, не хуяришь упражнения - идешь нахуй
тех кто будет советовать то что не нужно знать си перед изучением с++ (те как минимум не прочитать с проработкой упражнении К&R) можешь обоссать
тех кто будет утверждать что можно сразу начинать пердолить на космическом стандарте с++24 27 или какой там текущий, не читая старых книжек можешь так же обоссать
НЕ читай последних книг страуструпа, старик обленился, сидит в своем морган стенли получая лям в год и нихуя не делает, только бухает и попердывает иногда на конференциях
ПОТОМ уже читаешь охуительную книгу Майерса 2014 года "Эффективный и современный С++" по сути единственная книга которая может доходчиво сделать хотя бы введение в новые стандарты языка с11 и с14 и не охуевать при этом
Заполировать можешь все Вандервудом "Шаблоны с++" второе издание 18 года, ибо без шаблончиков никуда эта поебота теперь везде
Но это так, базовый минимум вообще то чтобы просто хотя бы на водичке держаться а не сразу камнем на дно
все я кончил
872 2911043
>>911035
Ахуенный гайд как НЕ вкатиться в плюсы
Вся эта хуйня нужна когда ты УЖЕ устроился и работаешь
Мимо имхо
873 2911054
>>910969
Чел сверху >>911035
написал за мейерса браться в последнюю очередь. Че думаешь?
874 2911059
>>911043
Так а что нужно доя продолжения вката? Немного героина для бодрости духа
875 2911061
Всё тот же >>910927 чел
Мне тут про acmp сказали. Типо тренить. Норм идея?
876 2911076
>>911059
Зис чтобы осознать масштабы проблем
>>904622
Затем прогать. Много прогать. И когда ты на практике повидаешь кучу хуев переходить к книгам выше. Будешь понимать что тебе конкретно нужно и что читать, таргетно.
877 2912220
>>911054
Мейерс это не учебники по плюсам. Это сборники советов для тех, кто уже знает язык и пишет программы.
У тебя должен быть под руками проект, над которым ты работаешь. Прямо по мере чтения Мейерса нужно примерять его советы к своему проекту, иначе у тебя в голове ничего конкретного не отложится кроме имени его собаки.

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

Кроме книжек, пользуйся статическими анализаторами.
878 2912232
>>911000
Бля иди нахуй со своим сленгом, чтоб тебя лесенкой из ифов на легаси удивили
879 2913272
>>911000

>в идеале это должен быть обобщенный алгоритм работающий над любым контейнером

image.png18 Кб, 606x186
880 2914387
Господа помогите и подскажите пожалуйста
захотел добавить в проект библиотеку gli через cmake
( https://github.com/g-truc/gli/blob/master/manual.md )
я раньше просто устанавливал библиотеки через консоль и добовлял в команду target_link_libraries() cmake файла названия библиотек и все работало. Как я понял для них есть Find{libName}.cmake, которые это делают.
я скачал gli, вызвал cmake, далее build\make install и получил пик1.
Зачем мне нужны последние 3 файла и как мне добавить библиотеку в проект не прописывая полный путь к каждому хэдеру библиотеки?
881 2914466
>>914387
Раз уж ты используешь симейк то и добавляй в СВой стмейк файл.
882 2914508
>>914466
Ну я и хотел в cmake своего проекта добовлять,
но я не понимал что прописать туда надо.
но немного разобрался что надо было прописать :
list(APPEND CMAKE_MODULE_PATH "/usr/local/lib/x86_64-linux-gnu/cmake/gli")

find_package(gli REQUIRED)

то-есть путь к target файлу или find файлу. А предыдущем ответе я как раз спрашивал зачем там на пик1 targets.cmake. Ну я к нему путь и прописал и cmake нашел все файлы
883 2914574
>>911035
Си вредно читать до Си++, у тебя случится Си головного мозга и ты будешь прибавлять голвые указатели и ехать UB через UB. Си конечно потом можно изучить чтобы знать подводные, но вкатываться с него - испортить себе всю жизнь.
884 2914645
>>914574

> Си вредно читать до Си++


Самое тупое что я слышал в этом треде
Ты про си++ знать не будешь без си
А все что сможешь написать это всякие велосипеды на стл, причем даже не будешь знать что там творится внутри, потому что неожиданно окажется что внутри там:

> прибавляние голвых указателей и UB через UB

885 2914742
>>914645
Понимаю, трудная мысль, но ее сам Страуструп преподает и это правильный подход.
Стл это не велосипеды, лол, это штатный способ писать на с++, велосипеды это как раз сишники начинают писать нихера не зная.
То что творится внутри для начала знать не обязательно, достаточно выполнять контракты стл, детали уже можно выяснить в процессе.
886 2914744
>>914645
>>914574
Вот и сошлись два барана.
887 2914755
>>914742

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


Это имхо очень важная мысль.
Изначально ты можешь пользоваться технологией/возможностью как черным ящиком, и погружаться в нее только тогда, когда сам поймёшь что пришло время. Как студент ты должен попробовать максимальное количество кала за минимальное время, чтобы понять от какого тебя меньше всего воротит. Разбираясь в кишках СТЛ или в процессе написания собственного компилятора С ты прекрасно изучишь язык, но надо ли оно тебе пока твоя цель получить после диплома работу? Время - конечный ресурс.
Нет никакого стыда в том, чтобы не знать как РЕАЛЬНО устроена хеш мапа, достаточно знать сложности по времени и памяти.
888 2915019
>>914742

> Понимаю, трудная мысль, но ее сам Страуструп преподает и это правильный подход.


А сам Страуструп как учил?
Большинство тех кто такое пиздит как язык учили?

> Стл это не велосипеды, лол, это штатный способ писать на с++,


То то на их дохуя кто не использует

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


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

> Нет никакого стыда в том, чтобы не знать как РЕАЛЬНО устроена хеш мапа, достаточно знать сложности по времени и памяти.


Это не стыд, это необходимость
Ты обязан знать как там все устроено чтобы нормально работать с "абстракциями" из стл
890 2916700
Вот иллюстрация того какие манипуляции мне приходится проводить со значениями точек, что бы найти их позиции в пиксельном пространстве. У меня будет рисоваться график, в котором значения по оси X почти что никогда не будут меняться, а вот значения по оси Y, будут меняться много раз в секунду. Так же значения по оси X будут идти в массиве с определённым известным шагом. Как вы можете заметить, в один пиксель изображения попадают множество точек. Следовательно можно придумать такую таблицу, в которой будут храниться индексы элементов массива vectorY которые попадают в конкретный столбец изображения. Это нужно для того что бы патом по этим индексам найти максимум из всех значений Y что попали в столбец изображения.

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

Так вот я сюда пришёл за тем что бы вы подсказали как такой алгоритм реализовать, и желательно что бы там не было в циклах if'ов
891 2916889
>>916700
Раз пиксельное пространстао то это рендер? Отправь координаты из вертексного шейдера в фрагмеетный и сравни с фрагкоордом. Заберешьна цпу через врайтонли буфер. Получишь максисум/минимум в одном такте.
892 2916986
Аноны, пришел к вам за советом. Прогаю на плюсах на работке, но есть такое чувство, что не развиваюсь или развиваюсь медленно. Также, некоторые конструкции совершенно не использую и начинаю их забывать. Подскажите, что можно сделать, чтобы не регрессировать.
893 2917129
Сколько примерно нужно времени чтобы разобраться в исходниках большого проекта (Krita), если с плюсами последний раз работал в вузике? Понятно, что это во многом от меня самого зависит, но в целом, сколько обычно это занимает?
894 2917133
>>917129
Смотря для чего. На большом проекте можно хоть несколько лет активно пилить какие-то определённые части проекта и так до конца не разобраться в других частях.
895 2917136
>>917133

>Смотря для чего.


Чтобы скопировать часть функционала
896 2917138
>>917136
Месяц плюс-минус.
897 2917141
>>917138
Столько мне никогда не согласуют, эх
898 2917146
>>917141
Сам же говоришь, что от тебя всё зависит, может, за пару вечеров под пивасик всё сделаешь.
899 2917168
>>915019

>сам Страуструп как учил?


У самого молодого Страуструпа тупо не было выбора. У нонешнего умудренного Страуструпа есть опыт преподавания.

>с основ учиться


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


Именно так и делают. На инженерных специальностях никаких основ матана не дают, а знакомят с методами решения типовых задач.
900 2917169
>>917168

>На инженерных специальностях никаких основ матана не дают


Я вас услышал, если кто то еще в треде считает что в универах матан не нужен на ИНЖЕНЕРНЫХ СПЕЦИАЛЬНОСТЯХ, то можете начинать с плюсов сразу, удачи
901 2917171

>Ты обязан знать как там все устроено чтобы нормально работать


А если не СТЛ, если в проекте используется десяток сторонних библиотек?

Просто покажи мне такого синьера, который вместо того чтобы включить свеженанятого миддла/юниора в полезную работу, посадит его изучать кишки библиотек.
902 2917174
>>917171
у тебя этот сеньор еще на собесе будет про кишочки спрашивать
903 2917175
>>917169

>матан не нужен на ИНЖЕНЕРНЫХ СПЕЦИАЛЬНОСТЯХ


Он не не нужен, а попросту невозможен. Технарям за год впихивают то, что на математических специальностях обстоятельно изучают 5-6 лет.
904 2917177
>>917174

>этот сеньор


Так ты покажи, где такое практикуется.
905 2917179
>>917177
на собеседованиях

>>917175

>изучают 5-6 лет


5-6 лет я как понимаю чистый матан изучают, а не какие отдельные его области?

ладно, не пиши мне только больше
906 2917185

>ладно, не пиши мне только больше


Ладно, буду писать не тебе.

>на собеседованиях


Разве что на собеседованиях тебя с твоим же внутренним юношей-максималистом.

>5-6 лет я как понимаю чистый матан изучают, а не какие отдельные его области?


5-6 лет изучают основы того, что технарям дают за один год. Основы технарям просто не влезут в рамках их учебного плана.
907 2917201
>>917179
Меня на собесе спросили только за:
Мьютексы, дедлоки
Авто и почему в строке Х будет предупреждение компилятора
Сколько раз будет вызвана функция хеширования в строке Х для анордеред мапы.
Это уже после прохождения нескольких секций решения задачек с литкода.
908 2917280
>>916889
Пишет что в этом сообщении
https://pastebin.com/nTG9bafc
присутствует слово из спам листа
909 2918384
>>917280
Я надеюсь что ты студент нюфаг, а не распиздяй с завода. Отвечаю в надежде на первое.

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

Но в любов случае даже на цпу сразу заводи буфер размерностью как минимум >= макс Х макс У
Раз значения есть вот и проверяй их по Х и пиши в соответсвующий У.

странная задача, проблему до конца не понял
231241.mp415,6 Мб, mp4,
1280x720, 0:47
910 2918404
>>918384
Задача самая простая вместить в виджет точки. В зависимости от масштаба по оси X, в виджет может попасть или несколько точек из вектора точек или все. Хотелось бы что бы точки за пределами спектра не участвовали в растеризации. Хотелось бы что бы если в один столбец изображения попадает несколько точек, то выбиралась та точка, у которой по оси Y максимальное значение. Патом эти максимумы соединяются линиями.
То что я хочу сделать, я уже реализовал на видео, но это довольно таки кривой и очень не быстрый способ.
Дело в том что я пишу под Raspberry Pi 4, а она не очень шустрая, и хочется каждый процент процессорного времени экономить.
911 2918470
>>915079
В современной разработке это уже не необходимость. Добавлю от себя что это стыд скорее потому что это преподают в любой шараге.
Что касается абстракций из стл ты должен представлять что они из себя представляют, конечно, опять же потому что это база любой шараги. А вот насчет незнания реализаций стл - как бы похуй в большинстве случаев что они там понаписали, в тех что не похуй - ты просто идешь и смотришь и делаешь что тебе нужно.
А если ты дурачок который знает каждую реализацию стл, то вопрос что ты помимо этого еще знаешь? Потому что мне кажется что есть вещи в которых ты не добрал и потратил ресурсы своей головы впустую. Ты такой ходячий человек справочник вроде вассермана, ходишь чето говоришь, но цена твоим знаниям - на форуме что то высрать
912 2918488
>>916986
попробуй заняться кодогенерацией используя метапрограммирование на шаблонах, причем двумя подходами - используя методы рекурсивного программирования на старом 98 стандарте, и методы структурного программирования, ставшие доступные в новых стандартах языка
если по простому напиши какой нибудь парсер, сначала с использованием библиотек буста, а потом попробуй вручную
это как минимум забавно
913 2918490
Как можно отловить событие клика мыши в winapi? Пока только нашел способ с бесконечным циклом и получением состояния левой кнопки, но это пиздец как не эффективно же. Как решают эту проблему в gui фреймворках?
914 2918582
>>918490
если ты про цикл с get message то это и есть нормальный способ
915 2919236
>>918490
не спрашивай как спрашивай почему
916 2919310
>>919236
Почему-то проорал с этого. WinApi это удивительная вещь, с помощью которой только так и пишутся вирусы/читы и другие непотребства, чего только с ним сделать нельзя.
917 2919318
>>918490
Фреймворки крутят за тебя всё тот же цикл и вызывают указанный тобой коллбек.
918 2920361
Сап, нужна хелпа с CMake, до этого ток под винду билдил .sln
Хорошая ли идея, чтобы CMake скачивал сам с помощью FetchContent или ExternalProject и билдить статик либу, чтобы потом юзать в моем проекте?
Мне нужно чтобы либа скачалась с репо и скомпилилась, а потом подключилась к проекту, как мне это сделать?
То что выдал гугл, хуйню какую то, и работает через раз хуй пойми как. Нужна либа libpqxx и openssl
919 2920406
>>920361
Плохая, так как ты и сам сказал что работает через раз.
Пропиши реквайрментс, и пусть пользователь сам будет ответственнен за разрешение зависимостей.
или напиши деплой проекта на нормальном скриптовом языке
920 2920417
>>920406
это на каком? есть что-то помимо cmake?
921 2920433
>>920417
Блин, ну скачай все что нужно питоном и собери.
Какая разница, пользователю что так придется скачивать СМАКЕ и прочий кал что так придется ставить питон.
922 2920465
>>920361
Необучаемые блин.
Клонируй все нужные репы сторонние себе в репу. И просто адд сабтиректори в своем симейке. Все. Никакие фетчконтенты и прочее питоно не ну ж но
923 2920644
>>920465
ща памацаю, но как мне потом либу подключить? я не хочу чтобы весь сторонний проект был присоеденен в мою exe, понимаю что гуглится, но там каждый делает по разному.
924 2920653
>>917201
Большая контора?
925 2920997
>>920644
dll?...
926 2921049
>>920997
мне статик либы нужны, чтобы один файл был для запуска.
.lib или .a
927 2921412
>>920644
Хоче статик либу
Не хочу весь проект
Пизьец у тебя в голове каша, анончик, ой пиздец.
>>920465
Адд сабдиректори!!!

Или не используй чужие стмейки а напиши свой, если это что простое уровня гли.
Хотя в брльшинстве случаев оно нахер не надо. Достаточно готключить ненужное типа примеров/ тестов/инстал таргетов.
928 2921481
>>921412
вообще по хорошему я хотел юзать cpack.
просто полный пиздец когда на моей локалке дебиан 12, а на серваке дебиан 10, то хуй нормально прогу скинешь тупо без компилинга.
Еще для компилинга надо качать dev версию postgresql, где билдишь, а из него ток одна либа нужна, когда весь пакет весит под 500мб. Не хотелось бы качать 500мб на сервак ради того, чтобы скомпилить прогу.
929 2921567
>>921481
От цифры в твоем дебиане ничего не зависит если не древнее протухшее ядро . Зависит от компилятора и сорс кода.

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

Ну и раз ты ты под серв пишешь что то с бд связанное то почему бы раз не скачать фул и забыть?
930 2922336

>собираешь в докер


>отдаешь админу


>идешь курить

16763864664610.webp59 Кб, 1400x1203
931 2922582
932 2923391
Сап аноны, нормально ли функции помещать в контейнеры, и далее их вызывать? Выглядит дико, но в реальностях boost::asio, когда пихаешь в сетевой сервис сообщения вместе с колбэком, использование контейнера функций выглядит единственно правильным решением.

Если так, какие следует соблюдать правила, типа стараться использовать move?
933 2923404
>>923391
Покажи
934 2923465
>>923404
https://github.com/fizyr/modbus/blob/main/include/modbus/client.hpp

Структура transaction_t. Проект не мой.
935 2923505
>>923391
>>923465
Ну а ты название проекта гуглить пробовал?
936 2923526
>>923505
Что?

Анон >>923404 попросил, видимо, показать пример такого использования, я скинул знакомый с гитхаба проект. Про какое название вопрос?

Я спрашивал, насколько корректно и безопасно складывать функции в контейнер, я такое не встречал, кроме проекта выше, хотя всё выглядит правильно
937 2923566
>>923526
Ну у тебя вопросы какие то странные, и не понятно что тебя смутило. Задал ты вопрос чисто по конкретной ситуации, но при этом в самой ситуации и зачем так сделано не разобрался, вот какое у меня сложилось впечатление.
Что касается того что ты спрашиваешь, то с этим проблем нет, функции такие же данные, ты можешь ими оперировать, нет с этим никаких проблем, тем более что в 11 версию языка как раз и завезли тебе лямды
938 2923628
>>923526
Складывай на здоровье.
Только если лямбды складываешь следи как ты туда ссылки захватываешь, чтоб ничего не подохло при вызове.
939 2923650
>>923526
Функцию в контейнер не уложишь. Либо указатель на функцию, либо т. н. вызываемый объект.
Алсо, любой класс - это своего рода контейнер с указателями на функции.
940 2923711
>>923566
Спасибо. Почему и зачем так сделано я понимаю, просто сколько я не видел чужого кода, хранение функций в контейнере в реальной либе вижу впервые.

>>923628
Да, точно, спасибо, забыл про ссылки

>>923650
std:: function ведь и есть вызываемый объект, разве нет? Или щас придирка к терминологии? Тем не менее, std::function прекрасно кладется в контейнер без ошибок и врапперов
941 2924376
Если я брошу исключение и поймаю его, то деструкторы вызываются. Если брошу исключение и его никто не поймает, то деструкторы не вызываются. Как же так, а если надо будет после истечения времени жизни объекта записать лог в файл или активировать самоуничтожение у беспилотника?
>>892332
Чел, здесь исходики, а не билд...
942 2924436
>>924376

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


Каво, должны вызываться
943 2924439
>>924376

> Чел, здесь исходики, а не билд...


Посмотри внимательнее
944 2924455
>>924376

> Чел, здесь исходики, а не билд...


Чел, ну ты конечно...
https://github.com/qt-creator/qt-creator/releases
945 2924581
Аноны, как какать заюзать стороннюю dll либу, если нихера нет, ни хедера, никаких файлов к ней? Я знаю о loadlibrary, что надо писать свою простыню кода, и переопределять в своих типах функции, но может есть какой иной подход, менее геморройный?
946 2924589
>>924581
никак
как минимум нужен хедер-файл, содержащий сигнатуры экспортируемых функций, но по-хорошему нужна документация где описано как пользоваться это библиотекой
есть еще путь реверс-инжиниринга, когда смотриться как используется данная библиотека в других приложениях, и на основе этого восстанавливается сигнатура экспортируемых функций, но раз ты задаешь такие вопросы, думаю что для тебя это более чем неактуально
947 2924599
Умные указатели - не очень удачное название, я бы их назвал умные оболочки для ресурсов.
948 2924618
>>924589
да всё есть, документация тоже, в ида функции экспортируемые все вижу. Нужно именно подключение не через подгрузку вручную, а может есть что иное, чтобы оно само подгружало, а мне пару строчек написать? Не хочу писать кучу кода
949 2924621
>>924589
можно еще собрать вручную, и подключать без геморроя, хоть статически, но это долго собирать, я просто в инете либу нашёл, кто собрал уже.
950 2924625
>>924621

> Можно собрать вручную, не хочу


> Нашел собранную


Давай давай, потом окажется что у тебя УБ в половине кода из за разных версий неба, Аллаха, ГЦЦ
951 2924629
>>924625
из-за разных версий чего?
я просто на .NET брал либу и юзал ее без проблем, а тут пол дня надо убить на сборку как пишут, ппц
вот тебе и натив
952 2924678
>>924629
Конпеляторы разных версий?
И ты пишешь что нет хедеров, в чем проблема взять хедер из сурсов если они доступны?
953 2924713
>>924678
Ну собиралось в VS. А какое это имеет значение? Там же двоичный код, который подгружает прога в процессе работы.
Есть хедер, но он не полный, и тянет еще один хедер, который не доступен, будет доступен после сборки.
Его надо править. Но как мне один хедер поможет решить проблему?
954 2924717
>>924713
Перекрестился за тебя, чтоб работало.
АБИ может ломаться от версии к версии.
955 2924724
>>924717
В .NET же работает, через маршаллинг. Там любую dll можешь подгрузить нативную.
956 2924790
>>924724
У нас тут немного не дотнет.
У меня тут проект не компилился, который должен из примера копипастил. Я сменил настройки версии стандарта туда сюда и скомпилировался. Причем Кланг ошибку так и продолжил показывать но компилятор гцц. И вот что это было?
957 2924797
>>924724
В .net для работы с нативными dll тебе тоже нужны сигнатуры функций, обмазанные аттрибутами pinvoke.
Если кто-то уже сделал за тебя нативную дотнетную обвязку - можешь через рефлексию достать все эти сигнатуры и сгенерить header-файл ручками.
Потом можешь сделать .def через dumpbin.exe и .lib через lib.exe
Версию компилятора можно узнать тем же dumpbin /headers
958 2924825
Да я уже загрузил через LoadLibrary, пару функций попробовал, всё работает. Придется в класс упаковывать это всё и юзать уже в проге.
959 2924830
>>924790
Работает - не трогай))
Я так понял - здесь это актуальнее всего.
В .NET там как-то попроще всё. Ну ВМ хули.
960 2925460
>>924825
тут в замешательстве. ИДА показывает - что у функции нет передаваемых параметров, а в документации есть, тип double. Грешу - что документация для новейшей версии, чем есть у меня. Будем посмотреть.
961 2925464
>>925460
хорошо, что на гитхабе можно откатить "время назад". Посмотрел хедер файл к своей версии - есть передаваемый параметр double. Но ИДА показывает - что нет. Как так может быть? Ошибка декомпиляции?
962 2925828
Оно работает, и работает функция с параметром, хоть IDA Pro показывает - что у нее нет параметров. Вот так и доверяй дизассемблерам. На ней только малварь гонять.
963 2925833
Мужики, где посмотреть можно реализации разных структур данных?
Прям по правильному чтоб, с деструкторами и прочим.
В гугле шляпа одна.А на гитхабе больше решение задачек с литкода
964 2925843
>>925833
Реализации стл глянь
Там хоть и не для людей код пишут, но если поднатужится, то все получится
965 2925845
>>925833
Каких именно? В учебниках все есть.
>>925843
Тут человек базы не знает, а ты ему рекомендуешь в стл залезть?
966 2925847
>>925845

> Тут человек базы не знает, а ты ему рекомендуешь в стл залезть?


А какая там база нужна?
Если чел хочет поглядеть эталонные реализации, то это первое место где поглядеть можно
967 2925897
>>925847
С точки зрения алгоритмов и архитектуры действительно эталонные, но чтобы их понять нужна нехилая экспертиза в языке. Именно понять, почему сделано так а не иначе.
А просто посмотреть как оно работает в теории проще в классических книгах.
968 2925909
>>925843
ахахаххах стл, туда если человек зайдёт, он даже не поверит что это такие же люди писали.
969 2926191
>>925909
хз, единственное что наверное может там удивить не очень опытного челика дак это активное использование placement new, но чутка потыкавшись понимаешь что это збс идея
ну а остальное все привычное будет, если ты до этого чутка разбирался как пишут классы в крестах ну и само собой в шаблончках разбирался
мимо безработный великовозрасный чмошка
970 2926363
>>926191
а имена типа __zalupa_2::___ptr_impl_ и табы пополам с пробелами неопытных челиков не удивят?
971 2926400
Сап, аноны, недавно сьебал на винду после 8 лет прыщеблядикса. Чем у вас плюсы собирают кроме студии? От студии травмирующий опыт из прошлого остался.
972 2926416
>>926400
Да как и везде, cmake

Есть всякие альтернативы build2, premake, meson и тд
973 2926630
>>926400
qtcreator, cmake. Всё тоже самое что и на линупсе
974 2926650
>>926400
Студия очень удобная и крутая.
975 2926652
>>926650

> Студия очень удобная и крутая.


+15 дней лицензии виндовс
976 2926661
>>926400
MinGW. Да, его используют в проде.
977 2927477
Стоит задача узнать какой max Y соответствует X при растеризации линии с помощью алгоритма брезенхема, как на 1 картинке, то есть найти самый высокие пиксели в столбце изображения. Проблема состоит в том что формула линии брезенхема из википедии
https://ru.wikipedia.org/wiki/Алгоритм_Брезенхэма
не совпадает с алгоритмом растеризации в той же статье, как на картинке 2.
Также из других источников я взял алгоритмы растеризации и там тоже не совпадает с математической формулой, как на картинке 3.
Есть ли способы точно найти Y для X, но при этом что бы он совпадал с алгоритмами
978 2927664
>>927477
Тебе шашечки или ехать?
979 2927744
>>927664
Мне спектр отрисовать.
В видео прикреплённом в этом посте >>918404, верхние точки линий брезенхема запоминаются при растеризации линии брезенхема. То есть когда я линию провожу, я и запоминаю максимальный Y. Да, это рабочий вариант, но я хотел бы за одно действие найти maxY в столбце изображения, а не пробегаться в цикле.
980 2927789
Сап, плюсаны. Порекомендуйте какой-нибудь способ распарсить плюсовый проект из какого-нибудь питона. Чтобы были все сущности вроде функций/классов/методов, плюс по инклюдам трэкалось, откуда что берётся.
981 2927824
>>927789
Хз насколько возможно это, особенно для всякого абстрактного кала.
982 2927922
>>927789
см питоньи обвязки для libclang
в зависимости от сложности плюсового проекта, собрать и протрекать сущности питоном займёт пара часов - неделя
983 2928007
>>927922
А ну кстати да, если только в сам тулчейн вклиниться и оттуда парсить.
984 2928255
Зачем нужный shared_pointerы? Зачем ресурсом совместно владеть? Почему всегда не пользоваться unique_pointerом? Расскажите кейсы в которым они нужны?
изображение.png14 Кб, 840x115
985 2928269
Хорошо, я понял. Тогда с какого языка начать?
986 2928280
987 2928283
>>928280
Разве более низкоуровневые языки не должны быть сложнее для понимания?
988 2928306
>>928283
Это высокоуровневый язык. А начать тебе с него стоит, потому что большинство современных языков -сиподобные и повторяют элементы ситаксиса си.
989 2928311
>>928255

> Расскажите кейсы в которым они нужны?


Чтобы совместно пользоваться ресурсом
990 2928326
>>928269

> с какого языка начать?


python -> haskell -> c++
991 2928329
>>928311
Когда поле разных экземпляров класса ссылается на один и тот же ресурс. Я все без вас понял, мудаки.
992 2928350
>>928329
Обращайся, вкатун
вовомас живёт в обществе.png901 Кб, 1309x978
993 2928364
>>928326
>>928280
Это так-то довольно разные пути.
994 2928478
>>928329
У тебя есть К воркеров, и каждый хранит ссылку/шейредптр на очередь задач.
Тут у шейредптр преимущество, что его можно будет изменить, в отличие от ссылки.
Абсолютно абстрактный пример.
995 2928481
>>928283
Си очень простой язык в освоении, гораздо проще плюсов со всеми из подводными камнями.
А база у языков единая.
996 2928504
>>928478

> его можно будет изменить, в отличие от ссылки.


Создать другую очередь задач? но зочем?
997 2928575

> писать на си с классами


А что собственно в этом плохого?
998 2928615
>>928575
Ничего. Но итт маньки не могут в указатели и малок/фри.
999 2928642
>>928504
Вдруг у тебя есть несколько очередей с разными задачами.
А так это абстрактный пример.
1000 2928921
Консоль не пашет в многопотоке, че за хуйня? Думал это кривые руки у меня, а это ебучая консоль, только время убил от сука

#include <iostream>
#include <thread>
#include <fstream>

using namespace std;

int main()
{
thread thr([](){
fstream fs;
fs.open("out.txt", fstream::out | fstream::app);
for(int i=0; i<10;i++){
cout << i << endl;
fs << i << endl;
}
fs.close();

});
thr.join();

return 0;
}


это под виндой
1000 2928921
Консоль не пашет в многопотоке, че за хуйня? Думал это кривые руки у меня, а это ебучая консоль, только время убил от сука

#include <iostream>
#include <thread>
#include <fstream>

using namespace std;

int main()
{
thread thr([](){
fstream fs;
fs.open("out.txt", fstream::out | fstream::app);
for(int i=0; i<10;i++){
cout << i << endl;
fs << i << endl;
}
fs.close();

});
thr.join();

return 0;
}


это под виндой
1001 2928943
>>928921
Чем дальше в лес, тем больше дров.
Я в ахуе если честно.
Везде какие-то костыли.
Скажите еще - что я должен синхронизировать доступ к консоли, как в gui приложухе? Умора плять
1002 2928987
>>928943
>>928921
У меня работает (под виндой)

даю подсказку, кажется дело в fs
1003 2929002
>>928987
в переменной fs?

эта хуйня тож не пашет:

#include <iostream>
#include <thread>

using namespace std;

int main()
{
thread thr([](){
for(int i=0; i<10;i++)
cout << i << endl;
});
thr.join();

system("pause");

return 0;
}

запись в файл там для теста, что поток отрабатывает, а то думал - что у меня вообще поток не запускался, потому что в консоли пусто.
1004 2929027
>>929002
https://onlinegdb.com/4y0Tw-IUo
У меня все работает.
1005 2930093
давеча был в /b тред о программировании на крестах, ушел в бамплимит
дак вот там был челик который искал кодеров на РАБоту, и тестовым у него было написать telnet-сервер, по его утверждению там работы на 4 часа
так чтож учтите что от вас требуется в 2к23
1006 2930242
>>930093
Используя либы можно и быстрее.
1007 2930345
go нехт треад?!
1008 2930377
>>930345
Перекати.
1009 2930395
image.png24 Кб, 818x408
1010 2930403
Зачем volatile?
1011 2930408
>>930403
Чтоб компилятор не выебывался
волатайл отключает оптимизации над переменной
# OP 1012 2930410
>>930395
Если не ты, то кот.
1013 2930413
>>930403
У меня идея. Надо все переменные объявлять volatile. И тогда точно никакого UB не будет!
1014 2930436
я знаю вы все тут эстеты
за последние лет пять появились какие нибудь прямо писк шрифты заточенные под код, само собой, причем которые учитывают особенности крестов само собой (типа звездочек, ну вы поняли), но и причем чтобы были русские буквы в шрифте
1015 2930442
>>930436

>писк шрифты заточенные под код,


Я использую Hack, раньше сидел на Iosevka(советую, на сайте есть конфигуратор своего варианта шрифта)
1016 2930457
>>927744

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


У тебя спектр только при рисовании линий существует что ли? Зачем там в принципе что-то сохранять при рисовании? Зачем Брезенхэм, если линии только вертикальные? Зачем в принципе Брезенхэм в 2023? Это алгоритм для всяких спектрумов, у которых аппаратного умножения не было.
1017 2931416
Почему std::initializer_list такое говно и когда его починят?
1018 2931459
>>931416
А чё там
1019 2931504
>>931459
не работает если у тебя объекты non-copyable
даже если ты муваешь

долбоёбы конст понапихали хуй знает зачем, и теперь неожиданно ломается мув семантика
1020 2931541
>>931504

>долбоёбы конст понапихали хуй знает зачем


Без конста видимо что-то другое ломается.
1021 2931769
>>931416
Делай обычным массивом.
Я так делал когда либу с плюсов на си переписывал зачем лучше ге спрашивай - все работало.
1022 2931779
>>931769

> зачем лучше ге спрашивай


ABI?
1023 2932080
>>931769

> Делай обычным массивом.


Размер в компайлтайме ее известен
1024 2932081
Не*
1025 2932093
1026 2932101
>>932093
Ты наверное не понял какая у меня проблема

https://godbolt.org/z/cfo85b7YT
1027 2932259
Сап тред, написал месяца 2 назад ASCII конвертер на плюсах, вот такие приколы клепает.
Есть идеи, что ещё можно написать?
1028 2932273
Этож
auto long double ld{2.7218};
вроде как не легально.

А чего оно тогда на визуал студии работает? Расширения отключены.
1029 2932275
>>932273
auto ld long double{2.7218};

фикс
1030 2932328
>>932101
А если ты сигнатуру поставишь vector<non_copy> а дальше мувнешь?
1031 2932334
>>932328
Тогда все еще нельзя будет что то подобное написать, так как вектор сам инициализируется с помощью std::initializer_list
Object obj { {non_copy{}, non_copy{}} };
1032 2932357
>>891674
Школьная математика хуйня. Качай конкретную математику Кнута и читай. Еще https://openlearninglibrary.mit.edu/courses/course-v1:OCW+6.042J+2T2019/about есть, там сильно с Кнутом пересекается. Если нужен анализ и общее что-то по вузовской инженерной программе, то основы можно быстро на mathprofi.ru выучить. Дрочи на здоровье пока стоит короче.
1033 2932364
>>932334
Ага, увидел.
Жопа, что уж...
1034 2933332
>>931416
с ним все заебись, люди работают, люди при деле: уже приходиться писать целые трактаты на сотни страниц чтобы описать (почти) все тонкости инициализации в языке
так чтож нужные люди не остануться без работы
1035 2933333
>>932259
пиши теперь чтобы было обратное преобразование!
1036 2933458
>>932259
Движущиеся приколы может конвертировать? Если нет, то впреде
image.png126 Кб, 290x425
1037 2934055
Так вот откуда вся эта залупа пошла

Деды, оправдывайтесь зачем вы это придумали?

только m_ еще хоть куда то пойдет
1038 2934073
Братья, что почитать практичного такого?
1039 2934078
>>934055
И не такое придумаешь, когда дохуя умных IDE ещё не придумали, есть только разновидности блокнота, а об ошибках типизации узнаёшь только при компиляции.
1040 2934254
>>934055
ну, к примеру, указатель на char в си мог означать множество вещей - указатель на символ, указатель на строковую константу, указатель на байт, указатель на массив памяти, указатель на си-строку (с нулем в конце)
ну и для некоторых других типов та же история по аналогии
поэтому приходилось использовать дефайны и использовать префиксы при именовании переменных
или еще один пример, когда в сях эмулировались классы посредством запехивания указателей на функции в структурки, то приватные члены и члены-функции этих структурок клали в конец структурки, иногда после какого-нибудь паддинга чтобы подстраховаться, и чтобы самим не запутаться помечали их каким либо префиксом, само собой наружу либы торчали уже другие усеченые структуры которые получались накладыванием на внутренние структуры.. ну и все это опять сверху макросами обмазывалось
так чтож все это были практичные решения без которых не обойтись
НО потом культура программирования деградировала лол и появились всякие "рекомендательные" системы именования типа венгерской нотации, где уже было прописано че и как делать, без объяснения начинающим кодерам зачем вообще к этому пришли
1041 2934278
>>934073
зачем что то читать, можешь попробовать сам подумать
к примеру, можно ли при помощи крестов написать либу с закрытой кодовой базой оформленную в виде динамически загружаемой библиотеки (нельзя), ну либо можно ли в крестах написать приложение с динамически расширяемой функциональностью при помощи плагинов (нельзя)
и как эти ограничения все же можно обойти, да, пойдя на определенные компромисы но все же
и тогда, возможно на тебя найдет озарение и понимание того в какой луже сидят все крестовики уже оче давно когда закрыли глазки на то у них до сих пор нету стандартизированного abi а все усилия комьюнити направлены на то чтобы ковыряться в шаблончиках и вводить новые закорючки в язык
1042 2934639
>>933458
Поидее, библиотека, которую я юзал, ещё и видео разных форматов воспринимает. Если подумать, то можно законвертить каждый кадр, а после объединить их в один видосик, думаю, вскоре займусь этим
1043 2934686
>>934254
Ну ты разошелся...
От сдвижки указателем по струтуре у молодых итт случится бабах.
15976471474880.jpg29 Кб, 300x303
1044 2934696
1045 2934995
Ну че скажете-то?
Че это за херня?
>>932273
>>932275
1046 2935001
>>934686
Я молодой, бабах не случится, сам так делал, но не вижу смысла если нет задачи написать максимально производительно и нет лучших абстракций
1047 2935228
>>934696
ну вообще SAL annotations были офигенной задумкой у мелкомягких и оче активно у них использовались
смысл в том что эти макросы сворачивались в ничего, и компилятор их не видел, но они нужны были для статических анализаторов, а вот которые могли сделать гораздо больше полезных проверок
1048 2935253
>>935228
Кстати старый код стандарной либы майков мне прям нравится. Не то что гнутый говняк.
жаль что гцц все равно топ, а майки индусы
1049 2935467
>>934696
IUnknown
image.png29 Кб, 885x409
1050 2938602
Блять, разбираюсь с лок фри стеком и не могу понять.
В CAS мы чекаем, равен ли текущий хед тому, что мы сохранили, и если равен( то есть никто не влез между нашим чтением и CAS), то мы заменяем на новый хед.
Отлично, все хорошо.
А ЕСЛИ КТО ТО ВЛЕЗ???
Какого хуя не берется новый поинтер на голову? Почему мы продолжаем долбиться со старым?
1051 2938627
>>938602
А если влез, пытаемся повторить операцию, пока никто не влезет.
1052 2938634
>>938627
Я уже понял.
Почему то сначала нигде не увидел, что compare_exchange меняет desired на текущее значение автоматом.
Даже в cppref об этом не написано, или я в глаза ебусь.
1053 2938636
>>938634
Действительно в глаза ебусь, спать пора.
# OP 1054 2938655
Да бля, опять я должен перекатывать что ли?
# OP 1055 2938660
ПЕРЕКАТ >>2938659 (OP)
ПЕРЕКАТ >>2938659 (OP)
ПЕРЕКАТ >>2938659 (OP)
ПЕРЕКАТ >>2938659 (OP)
ПЕРЕКАТ >>2938659 (OP)
1056 2941657
Молю, ананасы, помогите, я уже начинаю гореть. Как заставить ебаный clangd видеть ебучие стандартные плюсовые и не очень библиотеки? Что прописать этому еблану в compiler_commands? iostream не видит, string не видит, сука sdl2 зато видит.

Mac OS, neovim, сраный coc.nvim и coc-clangd

За мат извени ,третьи сутки потею уже над этим, подскажите как сделать, это пиздец.
1057 2941780
>>941657
ты если собираешься cmake, то он тебе должен compiler_commands.json сам генерить
тогда всё само и должно подхватиться

если на винде билдишь, выберай в генераторы ninja
Тред утонул или удален.
Это копия, сохраненная 29 ноября в 10:07.

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

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