Двач.hk не отвечает.
Вы видите копию треда, сохраненную 30 августа 2022 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
2 2345643
>>345617 (OP)
плюсы для пидоров
мимопидор
3 2345649
>>345617 (OP)
Что читать по win api 64 кроме Харта?
4 2345650
5 2345655
>>345650
Спасибо но я новичок и мне хотелось бы что-нибудь для вступления.
6 2345656
https://gcc.godbolt.org/z/bTb1qPjsb
Есть у кого идеи, как починить точность? Или хотя бы определить, кто виноват, чтобы точечно отработать.
7 2345660
>>345656
Не совсем понял в чем проблема. Опиши по-подробнее.
8 2345663
>>345660
Может, я покажусь уёбком самоуверенным, но всё равно скажу-- если ты не понял, в чём там проблема, то вряд ли ты сможешь мне помочь.
9 2345664
>>345660
А так, если просто интересно, я там кубическое уравнение решаю, и меня не устраивает точность в некоторых случаях.
10 2345665
>>345664
Попробуй double вместо float. Может лучше будет.
11 2345666
>>345665
С даблом там точно так же будет иногда выпадать, просто гораздо реже. На флоатах хорошо видно, что алгоритм не очень корректно с точностью обходится.
12 2345667
>>345666
Думаю проблема в округлении.
13 2345669
>>345656
У меня IDE дает ошибки компиляции в строке 68-71 и 74.
complex и norm без аргументов

auto const a = std::complex{dist(gen), dist(gen)};
auto const b = std::complex{dist(gen), dist(gen)};
auto const c = std::complex{dist(gen), dist(gen)};
for(auto const x : CubicEquation<float>::solve(std::array{a, b, c}))
{
auto const sum = x x x + a x x + b * x + c;
auto const d2 = std::norm(sum);
14 2345670
>>345669
-std=c++20 или его аналоги
15 2345672
>>345649
>>345655
новичек в чем? тебе нужно портировать приложение win32 на win64? или просто обеспечить стабильную работу win32 на win64?
16 2345673
>>345672
В ВУЗе на втором курсе у нас есть предмет по Системной Разработке но преподают джаву и поэтому хочу сам найти себе учебник по операционным системам. Нашел по мультиядерности но это для мне рано. Просто изучить процессы мультипоточность, память и всякое такое.
17 2345675
>>345673
а, ты студентик
тогда совет единственно верный: НЕ учи системное программирование под винду
если даже и решил системщиком заделаться то учи сразу линукс
а еще лучше изучай явку
18 2345689
>>345675
Чем это обосновываешь? Никто не пишет софта для винды больше?
19 2345695
>>345617 (OP)
Парсер-комбинаторы на шаблонах С++ никто не писал? Есть примеры?
20 2345711
>>345675

>сразу линукс


Как будто линукс это более продвинутая система. Она бесплатная - в этом я вижу единственный плюс. Ну а значит разработка на ней для тех кто готов жертвовать функционалом ради копеек.
21 2345712
>>345711
Linux - конструктор в открытых кодах, мультиплатформенный, бесплатный.
Windows - готовое решение из коробки
22 2345714
>>345712
Лично мне интересно изучать системы для того чтобы понимать как создавать инфраструктуру для энтерпрайза.
23 2345759
>>345712
Windows - операционная система, среда для запуска приложений, оставляющая тебя на едине с самим собой и своими приложениями.
Linux - куча поломанных костылей, говорящих тебе: "чини нас, бесконечно".

Итого: Линукс это РАБота, от тебя не требуется самостоятельности, только делать что "говорят". Винда же наоборот, ничем не обязыкает, ты предоставлен сам себе. Отсюда проистекает разница. Ничтожества без личности любят линукс, т.к. за ним удобно прятаться, ну как рабы прячутся за своим хозяином. А винда наоборот, оставляет тебя одного самого перед собой, так что винду любят полноценные талантливые люди, у которых есть свои цели, которым они и следуют. Таким людяв кнешние чужие приказы только мешаю, отвлекая от своих целей.
24 2345770
>>345759
съеби пожалуйста
покормил
25 2345777
>>345695
Boost spirit например. Жопаболь от волшебного сочетания функциональных ошибок не соответствия типов аля окамл + крестовых простыней гарантирована, хотя бы на первых порах.
26 2345782
>>345770
Неприятно? Линукс это как приусадебное хозяйство (огород) - штука, обеспечикающая бесконечной работой. Такие вещи любят никчемные люди, вроде выживших из ума стариков, которые изжили своё, но тем не менее, как любой человек. не могут пребывать в бездействии, вот и обожают ковыряться в огородах, обеспечивающих их работой. Когда самому делать нечего, только и остается, что подчиняться "кому-то", быть рабом в данном случае огорода. Рабство как оно есть, слетствие отсутствия самостоятельности, собственной личности и жизни.

Свободный же человек - самостоятелен, сам рулит своей жизнью куда ему надо, поэтому ему не нужны "дилеры обеспечивающие работой". Не нужна свободному человеку чужая работа, у него есть свои занятия. Это суть винды - свобода для свободных людей, которую так ненавидят рабы, ведь винда оставляет раба наедине со своей ничтожностью. Рабу в винде просто нечего делать, у ничтожества нет его собственных целей (разрабатывать какой-то свой софт), а значит и занятий своих нет, только чужие, и тут линукс для малолетних ничтожеств так же хорош как огород для престарелых ничтожеств, избавляя от необходимости иметь собственные цели и делать собственные выборы, давая уже готовую работу.
27 2345812
>>345782
не забудь обновиться перед выключением, и рапорт индусу написать
28 2345814
>>345812

>рапорт индусу написать


Они сами пишутся.
29 2345842
>>345782
А может ты пидор?
30 2345866
>>345759
>>345782

>талантливые люди, у которых есть свои цели, которым они и следуют.


двачую у меня есть цель. Хочу использовать её для того чтобы пользоваться тредами.
31 2345987
вкатываюсь в айти. с++ норм или лучше другой язык для вката выбрать. посмотрел вакансии. для джунов не много и зп не очень. что думаете по этому поводу?
32 2345999
>>345987

>что думаете по этому поводу?


Похуй.
33 2346122
>>345656
Если кому интересно, то я починил.
Логика выбора корня квадратного уравнения писалась под действительные коэффициенты. Если выбрать корень, который по модулю длиннее, то всё получается шикарно.
34 2346125
>>345695
Нагуглил идею, как шлёпать через корутины, может, поможет.
https://github.com/dpacbach/parsco
35 2346129
>>345695
И вот ещё вариант.
https://github.com/codeinred/noam
36 2346249
>>345689
да, по этой причине
не найдешь работы
37 2346251
>>345777
не ты таки путаешь
он спрашивает за парсер комбинаторы, а spirit парсер на основе EBNF грамматики
38 2346258
>>345695
вроде бы boost:metaparse использует этот подход, но для парсеров в компайл-тайме
39 2346259
>>345714
чел, на крестах никто уже не пишет для энтерпрайза по вполне понятной причине
выбирай шарпик или явку если хочешь в энтерпрайз
40 2346263
>>346259

> энтерпрайз


Значение знаешь?
16105705820573.jpg56 Кб, 713x611
41 2346320
download (9).jpg8 Кб, 300x200
42 2346360
>>346263
Энтерпрайз это фейспалм, чаще всего.
43 2346366
>>346125
Жёсткий чел
>>346129
Да, похоже то, что надо.
44 2346392
>>346251

>он спрашивает за парсер комбинаторы, а spirit парсер на основе EBNF грамматики


Ну ну.
Pink sus. 1 [kazenokaze].png1,2 Мб, 1200x1805
45 2346636
>>345617 (OP)
Какой же крутой язык.
Мог бы давно вкатиться в какой-нибудь PHP, но так впадлу.
Хочется просто сидеть и совершенствоваться в плюсах.
46 2346794
>>346636
Он божественнен как минимум статической типизацией. Это уже выносит его на миллиард километров выше питона и пыхи.
Но среди именно статических языков - имхо далеко не самый крутой. Не один и не два статических языка круче крестов (среди которых даже внезапно есть сишка). Но с удовольствием пообсуждаю эту тему.
47 2346816
>>346794

>Не один и не два статических языка круче крестов (среди которых даже внезапно есть сишка)


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

другойанона
48 2346888
>>345712
ААААААААААА!

ПРИШЛО ВРЕМЯ ПЕРЕСОБИРАТЬ 9ENTOO!

9ENTOO САМ НЕ ПЕРЕСОБЕРЁТСЯ! ПЕРЕСОБЕРИ ЕГО ЕЩЁ РАЗ!

ЗАЧЕМ МНЕ НУЖЕН ШИНДОВС, У МЕНЯ НЕТ ВРЕМЕНИ, ЧТОБ ЕБАТЬСЯ С НИМ, ЛУЧШЕ ЕЩЁ РАЗ ПЕРЕСОБРАТЬ 9ENTOO!

Я ПЕРЕСОБИРАЮ 9ENTOO ПО ТРИ РАЗА В ДЕНЬ, КАЖДАЯ ПЕРЕСБОРКА ЗАНИМАЕТ ДВАДЦАТЬ МИНУТ!

Я ЖИВУ АКТИВНОЙ ПОЛНОЦЕННОЙ ЖИЗНЬЮ, Я УСПЕШЕН И ПОЭТОМУ ЦЕЛЫЙ ДЕНЬ ДОЛБЛЮСЬ В БАШ, А ПОСЛЕ ЭТОГО Я ПЕРЕУСОБИРАЮ 9ENTOO!

ТУПЫЕ ШИНДУЗЯТНИКИ, ОДЕРЖИМЫЕ ПЕРЕУСТАНОВКОЙ ВИНДЫ, А Я СВОБОДНЫЙ ОТ КРЯКОВ-КЕЙГЕНОВ ЧЕЛОВЕК!

СКАЧАТЬ ОПЕНСУРС ПАКЕТ ИЗ РЕПОЗИТОРИЯ МОКРЫЕ МОКРЫЕ ПИСЕЧКИ! SUDO APT-GET INSTALL, MAKE LOCALMODULESCONFIG, ЛУЧШЕ Я ПЕРЕСОБЕРУ 9ENTOO ЕЩЁ РАЗ!

Я ПЕРЕПИШУ ЯДРО, СТАБИЛЬНОСТЬ НЕ НУЖНА!

Я НЕ ПЕРЕСОБИРАЛ 9ENTOO НЕДЕЛЮ, ПОЙДУ ПЕРЕСОБЕРУ!

9ENTOO - ВСЁ ПРОСТО И ПОНЯТНО... А, ОШИБКА СТОП НОЛЬ НОЛЬ НОЛЬ НОЛЬ НОЛЬ А!

ЭТО ЖЕ ОЧЕВИДНО, КАК ЕЁ РЕШИТЬ! ПРИШЛО ВРЕМЯ ПЕРЕСОБИРАТЬ 9ENTOO!

КОКОКОКОКОКОКОКОКОКОКОКОКОКО! КОКОКОКОКОКОКОКОКОКОКОКОКОКО!

ЖМУ/ПИНУС, ШВАБОДКА, ПИТУХИ, КОКОКОКОКОКОКОКОКОКОКОКОКОКО!
48 2346888
>>345712
ААААААААААА!

ПРИШЛО ВРЕМЯ ПЕРЕСОБИРАТЬ 9ENTOO!

9ENTOO САМ НЕ ПЕРЕСОБЕРЁТСЯ! ПЕРЕСОБЕРИ ЕГО ЕЩЁ РАЗ!

ЗАЧЕМ МНЕ НУЖЕН ШИНДОВС, У МЕНЯ НЕТ ВРЕМЕНИ, ЧТОБ ЕБАТЬСЯ С НИМ, ЛУЧШЕ ЕЩЁ РАЗ ПЕРЕСОБРАТЬ 9ENTOO!

Я ПЕРЕСОБИРАЮ 9ENTOO ПО ТРИ РАЗА В ДЕНЬ, КАЖДАЯ ПЕРЕСБОРКА ЗАНИМАЕТ ДВАДЦАТЬ МИНУТ!

Я ЖИВУ АКТИВНОЙ ПОЛНОЦЕННОЙ ЖИЗНЬЮ, Я УСПЕШЕН И ПОЭТОМУ ЦЕЛЫЙ ДЕНЬ ДОЛБЛЮСЬ В БАШ, А ПОСЛЕ ЭТОГО Я ПЕРЕУСОБИРАЮ 9ENTOO!

ТУПЫЕ ШИНДУЗЯТНИКИ, ОДЕРЖИМЫЕ ПЕРЕУСТАНОВКОЙ ВИНДЫ, А Я СВОБОДНЫЙ ОТ КРЯКОВ-КЕЙГЕНОВ ЧЕЛОВЕК!

СКАЧАТЬ ОПЕНСУРС ПАКЕТ ИЗ РЕПОЗИТОРИЯ МОКРЫЕ МОКРЫЕ ПИСЕЧКИ! SUDO APT-GET INSTALL, MAKE LOCALMODULESCONFIG, ЛУЧШЕ Я ПЕРЕСОБЕРУ 9ENTOO ЕЩЁ РАЗ!

Я ПЕРЕПИШУ ЯДРО, СТАБИЛЬНОСТЬ НЕ НУЖНА!

Я НЕ ПЕРЕСОБИРАЛ 9ENTOO НЕДЕЛЮ, ПОЙДУ ПЕРЕСОБЕРУ!

9ENTOO - ВСЁ ПРОСТО И ПОНЯТНО... А, ОШИБКА СТОП НОЛЬ НОЛЬ НОЛЬ НОЛЬ НОЛЬ А!

ЭТО ЖЕ ОЧЕВИДНО, КАК ЕЁ РЕШИТЬ! ПРИШЛО ВРЕМЯ ПЕРЕСОБИРАТЬ 9ENTOO!

КОКОКОКОКОКОКОКОКОКОКОКОКОКО! КОКОКОКОКОКОКОКОКОКОКОКОКОКО!

ЖМУ/ПИНУС, ШВАБОДКА, ПИТУХИ, КОКОКОКОКОКОКОКОКОКОКОКОКОКО!
49 2346930
>>346794
Чел, поделись мудростью! Я питонист, и меня вкрай заебала динамическая типизация и отсутствие перегрузки.
50 2346951
>>346888
Владельцы устройств на IOS и Android ссут тебе в еблет и передают привет. К ним присоединяются, водители BMW, Mercedes и Tesla, да и в общем-то все, у кого есть деньги на прогресс, IoT и личный комфорт.

Виндовс то активировал, чмонька?
51 2347005
>>345782
Си тред. Тут люди пишут SoC платформу для линукс + миллион драйверов, читают даташит на китайском без переводчика там просто нечего переводить, даташит на 100% состоит из названия и адресов регистров.
Но для винды ты разве что сможешь написать драйвер для мышка-курсор-вжик-вжик, для чего-то другого винда бесполезна.. ну я понял какие у тебя хобби.
52 2347031
>>345782
О, кажется спермохлёбскую методичку обновили.
53 2347098
>>346816
Если делать нехуй - managed effects, substructural types, dependent types, hott, session types etc; языки pony, agda, koka...
Если программы писать - haskell, rust
54 2347116
>>347005

>линукс + миллион драйверов


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

>>347031
У ничтожества кажется врёти.
55 2347118
Ну ты и дебил блять.
56 2347125
>>347118
Если твоя моргалка светодиодами настолько убога, что требует линукс, достаточно wsl. Убогая затычка для убогих огрызков, кроме затыкания таких дыр больше ни на что не годится.
57 2347127
>>347125
Какой нахуй линукс блять? При чём тут вообще линукс?
58 2347128
>>347116

> У ничтожества кажется врёти.


Проиграл. Да, конечно, я ничтожество, а ты охуенный. А теперь иди нахуй, долбоёб.
59 2347183
>>346794

> реди которых даже внезапно есть сишка


Хорошо, вот ты говоришь круче. В чем-то круче, в остальном не хватает. Нет классов, а значит проблемы с поддержкой большого кода. Нет конструкторов, из этого следует отсутствие смарт поинтеров. А как без динамического полиморфизма реализовать фабричный метод и стратегию? Ссылок нет. А шаблоны где, я без них не могу уже? И недавно я узнал, что даже динамических массивов нет, тупа дается тебе указатель и все. Че там с поддержкой многопотока, мьютексами и лямбдами я вообще не знаю.
60 2347189
>>347183

>А как без динамического полиморфизма


Ну это я думаю накостылять в сишке можно, хотя и неудобно и багоопасно. Думаю кресты в том числе и возникли, чтобы убирать эти костыли пол капот.
61 2347194
>>347189
Видел я это в потрохах Open SSL. Просто пиздец.
Ну и COM тоже под сути то про это.
62 2347195
>>347183

>В чем-то круче, в остальном не хватает.


Чего?

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


Почему?

>Нет конструкторов, из этого следует отсутствие смарт поинтеров.


Зачем?

>А как без динамического полиморфизма реализовать фабричный метод и стратегию?


Зачем?

>Ссылок нет.


Зачем?

>А шаблоны где, я без них не могу уже?


Зачем?

>даже динамических массивов нет


Есть.

>тупа дается тебе указатель и все


Что такое массив по-твоему?

>Че там с поддержкой многопотока, мьютексами


Есть.

>лямбдами я вообще не знаю


Зачем?
63 2347203
>>347183
А тут на самом деле вопрос не к сям, а к крестам. Ведь в крестах нет ООП (на самом деле). Почему нет? Потому что без инкапсуляции нет ООП. А где инкапсуляция в крестах? Её нет. Когда у тебя код ломается, то все твои объекты РРАЗ и протекают, и вместо объектов ты дебажишь просто оперативную память (как в сях), потому что в сиплюсплюс ты можешь переписать оперативную память произвольно в любом месте и нет ни единого человека или машины во всей вселенной, кто мог бы тебе это запретить и соответственно ни в одном языке, где ты можешь так делать - нет инкапсуляции - нет ООП. И тут возникает вопрос - а где профит-то, если в языке по факту та же байда?
64 2347209
>>347203
Ебать шиза
65 2347210
>>347183
В сишке можно сделать всё, вопрос в целесообразности. Так как компилятор тупой и примитивный, все эти свистоперделки придется переносить в рантайм, а это доп расходы и доп проблемы (с безопасностью например)
Вообще, щас как я понимаю тренд на компиляторно-ориентированный код, чтобы самого машинного было минимум и он был очень простой см новые фичи стандартов по типу constexpr/consteval и философию раста как такового
66 2347217
>>347209
Давай, когда начнём?
67 2347243
>>347210

>философию раста


В чем она заключается? Я пока боюсь касаться его даже 20 метровой палкой.
68 2347245
>>347243

>В чем она заключается?


Зачем что-то писать, когда можно переписать готовое.
69 2347273
>>347245
Не думаю что это раст. Это вообще для всех языков.
70 2347278
>>347203
Всё так. Если тебе нужен низколевельный язык, а нужен он в двух случаях:
1. Не похуй на скорость
2. Нет доступа к управляемому окружению (драйвера, ОС, микроконтроллеры и тому подобное)
То юзаешь си
Во всех остальных случаях юзаешь управляемые языки - джавы, шарпы, пистоны, тысячи их.
Кресты это попытка скрестить ужа с ежом - ооп с неуправляемым языком. В итоге вобрало в себя худшее от обоих миров.
71 2347292
>>347194
Да и линукс. Любая приблуда является файлом, полиморфизм во все поля.
72 2347342
>>347203
Профит в структурировании кода, пчел. Инкапсуляция и вне ООП помогает не скатывать код в говно как в процедурных, так и в функциональных языках.

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


Ты это можешь сделать в любом (даже managed) языке.
Но не делаешь — потому что даже со всем своим ебланским нигилизмом который вылечится как поработаешь хотя бы пол годика понимаешь что это отстрел своей же ноги.

>>347183

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


Вот тут с подливой проиграл.

>>347243
В том, чтобы переносить всё что можно по максимуму в компайлтайм. Куда и плюсы двигаются, тащемта.
73 2347353
>>347342

>Инкапсуляция и вне ООП помогает


Причём тут инкапсуляция? Она в крестах как раз отсутствует, об этом и речь.

>Ты это можешь сделать в любом (даже managed) языке


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

>который вылечится как поработаешь хотя бы пол годика


Лучше не переходи на личности, иначе будешь обсираться в дальнейшем ещё сильнее, чем с этим детектом. Держись в лоне дискуссии.
На остальное возражений нет.
74 2347361
>>347353
Вернее дело не в изъёбствах, в ряде управляемых языков это достаточно просто делается, короче если интересно я поясню в чём разница между подходами.
16321909577950.jpg52 Кб, 1280x720
75 2347364
Поясните за программирование под линукс.
Gtkmm, из документации только официальная невменяемая, примеров и учебников нет даже на английском. Плохо ищу или не туда лезу?
76 2347373
>>347278
игры, браузеры, рантаймы managed языков, hpc
везде где нужен си и ты за строгие api и dry > kiss

>>347195
зачем же в си выражения существуют, с операторами всякими, если можно чисто тройками как в асме писать
77 2347384
>>347373

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


Причем тут асм? Очередной крестовик не может в аргументирование своей точки зрения?
78 2347396
>>347373

>игры, браузеры, рантаймы managed языков, hpc


Базара нет, во всех этих случаях юзаешь си, либо пишешь, что юзаешь кресты, чтобы нанять достаточно крестовиков (которых тупо больше), но заставляешь их писать си-стайл. Так многие те же геймдевы делают, потому что от протекающих абстракций крестов вреда нередко больше, чем пользы.
79 2347415
>>347278
С++ используется для 2. С++ огромный яп, но почему не использовать только часть яп, которая пригодится в каком-то случае и не использовать если не нужно?
Как бы, удобно, что из С есть возможность перейти к заимствованию фич из С++.
80 2347425
>>347415
>>347278
Говорить что Си круче С++ может только микрочелик который никогда тольком с Си не мучился по настоящему. Полнейший нуб или жирный Rust тролль.
Без названия.jpg7 Кб, 258x196
81 2347427
А что думаете про Ди? Теперь-то кресты уже точно не нужны?
Си + Ди хватит на все случаи.
82 2347429
>>347427
Охуенно
83 2347430
>>347384
в асме выражения пишутся не так как в си
т.к. асм близок к машинному коду, си очевидно компилируется в похожие инструкции
т.е. происходит некая трансформация выражений из смешанной записи, включающий в себя инфиксные, префиксные операторы, вызовы функций и т.п, в близкую к машинной
я упомянул асм чтобы указать, что даже компилятор си делает некоторые преобразования кода, целью которых является облегчение работы программиста
и многие вещи в спп, например шаблоны, так же упрощают жизнь программисту
конечно, можно сказать что в спп эти вещи излишни, а в си идеальный баланс между абстракциями на уровне языка, но
спп обрёл широчайшее применение, и появился после си, так что видно, что многие не согласны с такой позицией. просто отрицать пользу всех этих вещей. жизнь упрощают, вот "Зачем".

>>347396
Я в команде на плюсах не работал, вполне допускаю, что использование некоторых вещей в плюсах, реализуемых лишь как побочный эффект длительного нагромождения возможностей языка, может помешать взаимодействию программистов с разным уровнем опыта, разными используемыми подходами и ТД. Пример - использование мутабельных значений во время компиляции. Но как любые плохие практики это нужно контролировать. Почему-то популярные языки (и Си в том числе) не считают ошибкой компиляции неверно (грамматически или стилистически) названный идентификатор. Зато везде есть свои стили кода. Плюс спп это выразительность и низкоуровневость, тут он пока один из лучших, как минимум потому что не много соперников (Д, Раст, все? из более менее известных). Минус - легаси и долгое развитие. В си не такого нагромождения, но и нет таких возможностей. Писать игру на си себе дороже ибо придется иногда почти повторять код (шаблоны), писать ручками многие автоматизирующиеся компилятором вещи (раии, корутины) итд. При этом судя по cppreference в си есть к.с. _Generic например.
И managed императивные яп в основном довольно слабые (Шарп, жаба), а функциональные если выразительны, то неразвиты во всем кроме самих яп (хаскель, полупруверы). Лично я считаю что и си и спп надо и вполне возможно заменить (хотя бы просто дропнув легаси, задизайнив все с чистого листа, не делая нечто слишком радикальное, как проверятор боровов у раста, который видимо и мешает местами).

зачем приходить в тред по плюсам с хейтом и с

>Очередной крестовик не может в аргументирование своей точки зрения?


троллингом?
83 2347430
>>347384
в асме выражения пишутся не так как в си
т.к. асм близок к машинному коду, си очевидно компилируется в похожие инструкции
т.е. происходит некая трансформация выражений из смешанной записи, включающий в себя инфиксные, префиксные операторы, вызовы функций и т.п, в близкую к машинной
я упомянул асм чтобы указать, что даже компилятор си делает некоторые преобразования кода, целью которых является облегчение работы программиста
и многие вещи в спп, например шаблоны, так же упрощают жизнь программисту
конечно, можно сказать что в спп эти вещи излишни, а в си идеальный баланс между абстракциями на уровне языка, но
спп обрёл широчайшее применение, и появился после си, так что видно, что многие не согласны с такой позицией. просто отрицать пользу всех этих вещей. жизнь упрощают, вот "Зачем".

>>347396
Я в команде на плюсах не работал, вполне допускаю, что использование некоторых вещей в плюсах, реализуемых лишь как побочный эффект длительного нагромождения возможностей языка, может помешать взаимодействию программистов с разным уровнем опыта, разными используемыми подходами и ТД. Пример - использование мутабельных значений во время компиляции. Но как любые плохие практики это нужно контролировать. Почему-то популярные языки (и Си в том числе) не считают ошибкой компиляции неверно (грамматически или стилистически) названный идентификатор. Зато везде есть свои стили кода. Плюс спп это выразительность и низкоуровневость, тут он пока один из лучших, как минимум потому что не много соперников (Д, Раст, все? из более менее известных). Минус - легаси и долгое развитие. В си не такого нагромождения, но и нет таких возможностей. Писать игру на си себе дороже ибо придется иногда почти повторять код (шаблоны), писать ручками многие автоматизирующиеся компилятором вещи (раии, корутины) итд. При этом судя по cppreference в си есть к.с. _Generic например.
И managed императивные яп в основном довольно слабые (Шарп, жаба), а функциональные если выразительны, то неразвиты во всем кроме самих яп (хаскель, полупруверы). Лично я считаю что и си и спп надо и вполне возможно заменить (хотя бы просто дропнув легаси, задизайнив все с чистого листа, не делая нечто слишком радикальное, как проверятор боровов у раста, который видимо и мешает местами).

зачем приходить в тред по плюсам с хейтом и с

>Очередной крестовик не может в аргументирование своей точки зрения?


троллингом?
84 2347431
>>347427
Не пробовал, хотел ибо вроде много удобного метапрограммировпния сразу, а не как статич рефлексия в спп которую ещё хуй пойми когда завезут. Но что слышал, так это:
- нестабильный компилятор, стдлиба (2 шт?)
- gc / nogc
- тихое коммунити, из-за чего видится что и экосистема слабо развита
Это из жирных причин, вроде было чето по мелочи но мб пофиксил уже.
85 2347438
>>347353

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


При том что она её не может быть в языке, маня. Это чисто концепция написания кода.

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


А он должен указывать тебе, как правильно структурировать код? Скорую вызвать?

>>347361
Ну давай поясняй, чего томишь-то.
86 2347440
>>347364

> Gtkmm


Хочешь плюсы — лучше возьми Qt.

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


Да нет, линукс он весь такой. Все в рот ебали сидеть писать тебе доки, это не микрософт с армией технических писателей.
87 2347442
>>347396
Да нет, там обычно только часть плюсов выкидывают, типо исключений. А вот на всякие RAII, шаблоны и иже с ними в той же разработке браузеров дрочат настолько, что прям усираются вымазывая всё смартпоинтерами.
88 2347443
>>347427
Фанател от него лет 10+ назад, когда ещё был D1 и какие-то надежды на язык.
Потом авторы решили дропнуть нахуй весь софт на нём написанный и сделать D2 ради синтаксических плюшек, половина коммьюнити разбежалась. Я фанател ещё пару лет, а потом повзрослел и понял, что авторы — инфантилы ебаные, мне даже лень писать всю хуйню, которая накипела которые просто хотят ковыряться в компиляторе, а не развивать язык.

Сейчас он никому нахуй не нужен, даже в теории. RIP.
89 2347444
>>347364
https://docs.gtk.org/
>>347440

>лучше возьми Qt.


Нихуя не лучше.
>>347430

>зачем приходить в тред по плюсам с хейтом и с


>>Очередной крестовик не может в аргументирование своей точки зрения?


>троллингом?


Это не троллинг, каждый тред начинается с этого.
90 2347447
>>347444

>Нихуя не лучше.


Qt:
— Нормальная документация (не прям заебись, но всегда up to date и +- и есть на всё);
— Кроссплатформа (работает от мака и шиндовса до андроида и встроенной залупы в машинах);
— Фреймворк с решениями на все случаи жизни.
— Написан на плюсах и юзает современные фичи, а не куча обвязок с кривыми интерфейсами.

GTK:
16038579392850s.jpg4 Кб, 220x197
91 2347450
>>347430

>т.к. асм близок к машинному коду

92 2347451
>>347447
Зачем писать на кьюте, когда система гткшная и наоборот? Фрейм выбирается не из-за удобства кодера, а из-за того, как он впишется в целевую платформу.

Electron:
— Нормальная документация (не прям заебись, но всегда up to date и +- и есть на всё);
— Кроссплатформа (работает от мака и шиндовса до андроида и встроенной залупы в машинах);
— Фреймворк с решениями на все случаи жизни.
— Написан на плюсах и юзает современные фичи, а не куча обвязок с кривыми интерфейсами.
93 2347452
>>347440
Qt к санкциям присоединился, да и не тру с его лицензиями что-то.

>>347444
Предлагаешь исходный сишный gtk?
94 2347456
>>347451

>Фрейм выбирается не из-за удобства кодера, а из-за того, как он впишется в целевую платформу.


На линуксе "нативного" тулкита всё равно не существует, поэтому кьют туда вписывается точно так же как гтк. А если это не хэлловорд — то будет даже консистентнее, ибо фреймворк, лол.
95 2347457
>>347452

>Qt к санкциям присоединился, да и не тру с его лицензиями что-то.


Ну ты же не собираешься коммерческий софт делать? Для линукса такое делать — быть ебланом.
Тогда для тебя всё ок, и на санкции похуй, и на лицензию.
96 2347459
>>347452

>Предлагаешь исходный сишный gtk?


Предлагаю разграничить фронт и бек, чтобы в случае чего, можно было легко портировать на другой фрейм или вообще использовать программу без гуя.
image.png30 Кб, 1234x850
97 2347469
>>347364
бери open motif, смотри какой няшный:
98 2347477
>>347443
вроде как zig щас хочет тоже "как сишка, только лучше"
А можешь подсказать, стоит вообще щас на Д смотреть как расширение кругозора, мб на нем че-нибудь запилить, вместо плюсов не хейчу плюсы, но легаси убивает
99 2347480
>>347353
Только в обморок не падай в си тоже инкапсуляция есть
100 2347485
>>347450
чё сказать хотел? в унике курсач делал по jit x86_64 машинный код руками генерировал. Потом некст семестр легчайше сдал все лабы по всему, не имея именно в асме никакого опыта, вплоть до графических.
101 2347487
>>347485
лабы по асму*
102 2347493
>>347477

>вроде как zig щас хочет тоже "как сишка, только лучше"


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

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


Для такого можешь и посмотреть вообще на что угодно, там много крутой фигни вроде миксинов. Просто он проебал все ниши куда его можно было засунуть и теперь годен только для такого вот досуга.
16500156730160.jpg45 Кб, 700x528
103 2347495
>>347485
Лабы делал, а что такое асм так и не понял.
104 2347499
>>347495
Очередной не может в аргументирование своей точки зрения?
105 2347505
>>347499
Чел ну херня у тебя в том, что асм близкий к машинному коду, хотя это машинный код всегда и есть
мимо другой чел
106 2347514
>>347505
Не совсем, во первых асм это текст. Во-вторых в асме есть макросы, перегруженные мнемоники (mov в асме это и мув в память и в регистр), идентификаторы для меток итп
107 2347516
>>347505
Нука-нука поясни, что коенкретно ты имеешь в виду. Запасаемся попкорном.
108 2347523
Был массив объектов, который записали в память. У меня есть указатель на этот массив. Если я просто скастану нужный кусок памяти к объекту (точнее даже к структуре; никаких методов нет, просто друг за другом переменные идут), то мне анализаторы ругаются на ub. Что им не нравится и что мне делать?
109 2347524
>>347523
Пример кода.
110 2347527
>>347524
struct s{
int a, int b}

char ⚹ data - данный массив.
s ⚹x = (s⚹)(&data[8])
x->a=10
x->b=10

Код примерно такой.
111 2347532
>>347527

>int, int


>[8]


Инты не всегда 4 байта и надо учитывать выравнивание структуры.
112 2347535
>>347532
Ну int32_t, окей. Это не так важно тут. Вопрос не в этом, я просто забыл дописать точный размер
113 2347537
>>347535
Я в этом куске кода не вижу уб.
114 2347542
>>347537
Оно есть. Нельзя обращаться к массиву char'ов, как к объектам типа T. Это,вроде, нарушение strict aliasing rule.
Я помню, что так нельзя делать, потому что есть замечательный пример когда это стреляет, но сейчас писать немного лень. Вот я хз как фиксить это
115 2347548
>>347415

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


Да, но там из фич есть ещё и сомнительные штуки уровня медленной компиляции. Не забываем, что интероперабельность между сями и крестами охуенная (внезапно лучше, чем между крестами и крестами), поэтому лучше, если уж нужно дорабатывать крестовый проект например - сишную часть писать на си, а не крестах (и ни в коем случае не компилировать её крестовым компайлером, хотя он это и может). Есть и другие причины держать сишный код в сях.
>>347425
Пошло нахуй от личности, говно.
>>347427
Норм язык, лучше и чище крестов, эдакие кресты-которые-сделаны-правильно.
>>347430

>Плюс спп это выразительность и низкоуровневость


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

>Очередной крестовик не может в аргументирование своей точки зрения?


Вопросы к тому, кто это написал, а не ко мне. Я не позволяю себе таких дерзостей первым.
>>347438
Пошло нахуй, говно х2. Либо разговариваешь как человек, либо теряешь право участвовать в дискуссии.
116 2347554
>>347480
То что у тебя интересное представление об инкапсуляции, я уже заметил, но private и protected это не инкапсуляция, когда багованный код (заметь, в отличие от джавы - именно багованный код, а не сознательное залезание ручками) может переписать всю память.
У меня простой вопрос: если у меня есть указатель на объект - этот указатель может быть испорченным? Что случится, если я начну что-то с ним делать? Программа крашнется или может случиться кое-что похуже? Вот в целом и всё, что мимокроку нужно знать по теме "инкапсуляция в с++"
117 2347556
>>347527
Размер структуры (в байтах) получай через sizeof(s). Фактический размер зависит от компилятора (он делает выравнивание, а также добавляет указатели на таблицу/ы виртуальных функций и указатели на виртуальных предков) и от размера типов (int не обязательно 4).
То есть надо так:
s x = reinterpret_cast<s>(data + sizeof(s) * element_id);
118 2347559
>>347542
Кто тебе говорит, что там неопределенное поведение компилятор или анализатор, какие версии?
https://godbolt.org/z/8WT5he51M
119 2347584
>>347548

>>Плюс спп это выразительность и низкоуровневость


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


Почему ооп не работает? Ну и ооп это не то, что отличает выразительные от невыразительных или низкоур от высокоур. В хаскеле нет ооп.

>>347554
Как связано наличие уб и отсутствие инкапсуляции? А если я шнур выдерну (оп пик), в жабе все дальше работать будет? private память на диск сохранит? или в облако сразу
120 2347586
>>347554

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


Это не я, это уже второй анон прокекал с тебя.

>но private и protected это не инкапсуляция, когда


Без "когда", это просто не про инкапсуляцию, тупое.

>этот указатель может быть испорченным?


Может.

> Что случится, если я начну что-то с ним делать?


Зависит от окружения.

>Вот в целом и всё, что мимокроку нужно знать по теме "инкапсуляция в с++"


Где тут инкапсуляция? При чём она тут вообще?
121 2347587
>>347548

>Пошло нахуй, говно х2. Либо разговариваешь как человек, либо теряешь право участвовать в дискуссии.


Жесть залётные нормисы ныне обидчивые.
Привыкай зайка, тут такие правила.
122 2347594
>>346794

>Он божественнен как минимум статической типизацией.


https://sites.radford.edu/~ibarland/Manifestoes/whyC++isBad-example.cc
Если принять логику что "но так же ни кто не пишет", то с тем же успехом можно и с Си не слазить.
123 2347596
>>347514

>Не совсем, во первых асм это текст.


Асм — это конкретно представление машинного кода.

>Во-вторых в асме есть макросы


fasm/nasm/yasm/etc — это хайлевел ассемблеры, предназначенные конкретно для написания кода, а не отображения hex кодов в человекочитаемом виде.
124 2347600
>>347596

>fasm/nasm/yasm/etc — это хайлевел ассемблеры, предназначенные конкретно для написания кода, а не отображения hex кодов в человекочитаемом виде.


Да что такое ты, нахер, несёшь?
16414986292540.mp43,3 Мб, mp4,
640x360, 0:45
125 2347603
126 2347606
>>347516
Ту эт чел нормально расписал
>>347596
дебичи щас будут доебываться да терминов, хотя сами их не знают
127 2347609
>>347603
Зачем ты визжишь?

Я про это:

>конкретно для написания кода, а не отображения hex кодов в человекочитаемом виде


Что это должно значить, вообще?
128 2347617
>>347596

>Асм — это конкретно представление машинного кода.



Ассемблер - это программа. Язык ассемблера - язык разметки для последующего составления (ассемблером) исполнимого образа. На языке пишут (исходный) текст, а не код.
129 2347618
>>347609
0х89 0х67 0хFF => mov rax -127
мимо другой чел
16433809607150.jpg74 Кб, 750x419
130 2347620
>>347609
Так стыдно что пытаешься перефорсить?

>Что это должно значить, вообще?


>>347514

>макросы, перегруженные мнемоники (mov в асме это и мув в память и в регистр), идентификаторы для меток итп



или могу так

>>347603

>https://en.wikipedia.org/wiki/High-level_assembler

16414546622790.jpg10 Кб, 512x382
131 2347622
>>347617
C++ - это программа. Язык C++ - язык разметки для последующего составления (ассемблером) исполнимого образа. На языке пишут (исходный) текст, а не код.
132 2347625
>>347622

>Язык C++ - язык разметки для последующего составления (ассемблером) исполнимого образа


C++, конечно.
133 2347630
>>347622

>C++ - это программа.


Нет.

> Язык C++ - язык разметки для последующего составления (ассемблером) исполнимого образа.


Нет. Это ЯВУ.
134 2347631
>>347618

>0х89 0х67 0хFF => mov rax -127


Нет. fasm/nasm/yasm и прочие "хайлевел ассемблеры" так не делают. Это делают дизассемблеры.
16417548216301.png203 Кб, 300x283
135 2347636
>>347631

>Нет. fasm/nasm/yasm и прочие "хайлевел ассемблеры" так не делают.


Там стрелочка просто поворачивается.

>>347630

>Ассемблер - это программа.


Нет.

> Язык C++ - язык разметки для последующего составления (ассемблером) исполнимого образа.


Нет. Это ЯНУ.
136 2347637
>>347636

>> Язык ассемблер - язык разметки для последующего составления ( ассемблер) исполнимого образа.


фикс
у меня уже стек оверфлоувнулся
137 2347639
>>347636

>ЯНУ


Нет такого понятия. Сам выдумал? И что же это такое? И зачем нужно?

>>Ассемблер - это программа.


>Нет.


А что же это?

>стрелочка просто поворачивается


Ну так, поверни и объясни, что там имелось в иду?
138 2347642
>>347639

>Нет такого понятия.


Он не знает...
sage 139 2347644
ЯСРУ
140 2347645
>>347644

>ЯСРУ


Языковая система распределения управления? Это та, которая в расте использовалась?
141 2347646
>>347644
ВТРЕДЕ.
16414638346390.png116 Кб, 736x736
142 2347648
>>347639

>Нет такого понятия. Сам выдумал? И что же это такое? И зачем нужно?


https://en.wikipedia.org/wiki/Low-level_programming_language

>А что же это?


Язык, блять. Если прям упарываться в терминологию — семейство языков как лишп.

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


То что ты обзываешь конкретные программы (nasm/fasm/etc) языком. Это всё равно, что назвать msvc/clang/gcc/etc С++-ом.

>>347644
Я/МЫСРЁМ.
143 2347652
>>347648

>То что ты обзываешь конкретные программы (nasm/fasm/etc) языком


Я обзываю? Где?

>Язык, блять.


Это assembly. А assembler? Короче уточняй, когда говоришь, что имеется в виду: программа или язык.

>Low-level_programming_language


То есть ЯНУ - это все языки, которые не-ЯВУ. Т.е. это ассемблер. Т.е., ты хочешь сказать, что ассемблер - это ЯНУ, а ЯНУ - это ассемблер?
144 2347657
>>347596
Assembler - переведи. И то, тогда получается я назвал ассемблером хай левел ассемблер - похуй, нет? Надо срать в тред? Я в любом случае приводил его просто как пример чего-то ниже уровнем чем си..

бтв
тут звучит норм
>>347617
тут какую-то хуйню высрал типо слова поменял, молодец
>>347622
145 2347662
>>347652

>Это assembly. А assembler?


Сорри, ват лангвич ду ви спикинг райт нау? Мэйби рашн?
У нас тут ассемблером называют всё это, и более приоритетный вариант интерпритации этого слова — язык.

>То есть ЯНУ - это все языки, которые не-ЯВУ. Т.е. это ассемблер. Т.е., ты хочешь сказать, что ассемблер - это ЯНУ, а ЯНУ - это ассемблер?


Ну ты ссылку-то открой.

>>347657

>Assembler - переведи.


Пчел, переведи bear. А теперь to bear.
Потом left и to left.
После — продолжай, пока не поймёшь что дословно вне контекста слова переводить смысла нет.

>Надо срать в тред?


Офк надо, это же суть всех срачей в интернете. Можно доебаться до пердежа и задоминировать его.
146 2347666
>>347662

>bear


Медведь.

>to bear


Медведить.

>left


Левый.

>to left


Леветь.

>После — продолжай, пока не поймёшь что дословно вне контекста слова переводить смысла нет.


Нихуя не понял.
147 2347671
Черти, заебали срать в тред, давайте че нить нормальное уже
Я свое вкину: появилась надобность и не только у меня в том, чтобы во время компиляции пробежаться по полям структуры и сделать че-нить (допустим записать в компайл тайм массив sizeof этих полей для сериализации)
Так вот, индусы люди в интернете советуют макросы, ну это же пиздец. Есть у кого мысли по этому поводу?
148 2347673
>>347662

>более приоритетный вариант


Нет никакого приоритета. Только контекст или уточнение.

>Ну ты ссылку-то открой.


Так сказать то ты что хотел? Для чего это всё?
149 2347674
>>347671

>появилась надобность и не только у меня в том, чтобы во время компиляции пробежаться по полям структуры и сделать че-нить (допустим записать в компайл тайм массив sizeof этих полей для сериализации)


constexpr, примерно так
https://github.com/katursis/StringObfuscator
150 2347676
>>347671

>Черти, заебали срать в тред, давайте че нить нормальное уже


Что еще делать на форумах? Нового ничего нет, все старое уже миллион раз обсосано на каждом из форумов и гуглиться за пару минут, что-то сложное решать за кого-то никто не хочет, максимум направить.
151 2347677
>>347676

>ться


Я во временах запутался.
16341352787680.jpg124 Кб, 630x630
152 2347679
>>347673

>Так сказать то ты что хотел? Для чего это всё?

00be7861d215393ca559a8d342db1611.jpg83 Кб, 750x477
153 2347680
>>347666
translate.google.com < сюда
154 2347685
>>347671
статическая рефлексия, мб в спп23-26 завезут
есть на кланг расширение с этим
выше упоминали D, там это есть)
а так да, макросы. Еще вроде можно попытаться сыницилизировать объект с разным колвом полей пока не сработает
155 2347694
>>347671

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


Boost fusion какой нибудь?
156 2347698
>>347685
Понял, грустно конечно, там выше по треду советовали costexpr и буст, но это походу не особо то (в клиентский код лезть не хочется)
Короче буду хуи сосать кодогенерировать constexpr мапу через шланговский индексер видимо
157 2347719
>>347559
Вроде valgrind. Короче я хуй забил и просто байтики начал копировать, вместо объектов.
16450182794980.jpg194 Кб, 1280x1080
158 2347727
>>347666
Cука, проиграл. Хороший тред.
159 2347729
Есть система компьютеров без центрального узла. Они обмениваются информацией, поэтому у каждого информация о всей сети может отличаться от информации у другого. Существуют ли механизмы, позволяющие "стабилизировать" данные у компьютеров - то есть каждый должен иметь одинаковую информацию? И какие ограничения тут могут быть? Если одна половина заходит по четным дням недели, а вторая по нечетным, то никак прийти к одному виду не получится, но надо хотя бы как то контролировать это.
160 2347772
>>347729
Невозможно. Центральный узел всё равно нужен, в явном или неявном виде.
161 2347775
>>346816
Java божественен.
7xi1YywUcorrY0oGhtQo2vb27oyqANJV7g0EZJb63bHLEw8VrHvcdI0fO1d[...].jpg243 Кб, 1080x1080
162 2347784
Кто-нибудь может объяснить новичку какого хуя все до сих пор еще не собирается в контейнерах?

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

Заранее прошу не кидаться говном. Ведь сейчас же считай уже большинство перешло на docker driven.
163 2347787
>>347784
Поясняю: плюсы мёртвый язык. На той же джаве уже лет 20 всё собирается через системы сборки типа мавена и никто ни с чем не пердолится, собирается всё 1 командой.
164 2347793
>>347772
Вспомни биткоин
165 2347794
>>347784
Если тебе просто либа нужна - скачай её пакетами. Если кастом - ебись сам. Откуда автору знать, под какую платформу и железку тебе надо. А если там докера не завезли, то педалить кросс компиляцию для либы и всех зависимосетй, необходимых для деплоя?
166 2347798
>>347787
CMake, msbuild, conan/vkpcg
167 2347799
>>347798
А перед этим поебись, чтобы работало на любой системе с любыми соглашениями, компиляторами, шеллами и форматами скриптов сборки.
download.jpg12 Кб, 300x128
168 2347814
>>347364

>линукс

169 2347815
>>347784
Докеры для арм отличаются на бинарном уровне от докеров под амд64 и т.д. Это у всяких джав всегда все работает на одной виртуальной машине, си и крестам приходится работать на любом говне, которое высрут производители электроники.
170 2347825
171 2347837
>>347799

>любой системе


Просто отправляем всех линуксойдов и мак питухов в газовую камеру и считай работает у всех.
172 2347845
>>347837
У тебя какие-то детские представления об индустрии. Например на оборудование для гражданской авиации ты должен ставить только сертифицированные ОС реального времени, накиких Виндоус Линукс или макоси ты там не увидешь, как и компилятора раста.
173 2347846
>>347845
Ну вот для ртос придется поебаться, но и мавен там не помог бы.
174 2347863
>>347845
А так вот почему некоторые пользователи говорит что у них пека прям "летает". Основная масса ОС в индустрии это винда. Линукс - дл я бомжей либо извращенцев-нитакусиков-особо_одаренных. Мак - для мажориков-лохов которых системно наебывают на бабки.

Собственно оставим срач. У меня вопрос появился. В сети появились бинарники одной игры и мне охота узнать возможно ли получить профит. Бинарников несколько. Вот думаю это дает бонус для того кто захочет реверс инжениринг провести.
175 2347864
>>347798

>CMake


>>347799

>работало на любой системе с любыми соглашениями, компиляторами, шеллами и форматами скриптов сборки

176 2347865
>>347863

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


Никогда такого не было и вот опять.
177 2347866
Cmake это пиздец
Какие есть альтернативы? Кто что использует?
178 2347867
>>347866

>Кто что использует?


Тебе для чего? Какие задачи?
179 2347868
>>347867
Да хоть для петпроектов
Чтобы можно было мои библиотечки собирать под Винду/юникс с любым компилятором гцц/кланг/мсвс
180 2347869
>>347865
Пробовал провести реверс-инжениринг над одной готовой игрой с помощью Иды. Но там был какой-то tail и вообще я не разбираюсь в Иде толком. Теперь думаю будет проще. Мне надо ассемблер изучить? Чтобы смотреть по адресам и самому именовать их в классы и переменные? Это так работает?
182 2347873
>>347869

>tail


Хвост.

>Мне надо ассемблер изучить?


Да.

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


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

>Это так работает?


Спроси у красноглазых в асм треде.
183 2347874
>>347873
Спасибо за инфу анон.
184 2347876
>>347866
Visual Studio? не?
Снимок экрана от 2022-05-01 12-24-42.png171 Кб, 1207x597
185 2347907
Эксперементирую тут с базама данных. Почему-то перестаёт работать в Qt когда добавляю AUTO_INCREMENT. Сам догадываюсь что надо инкрементировать id через qt-функции, может подскажите чё?
186 2347909
>>347873

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


Лол, я как-то открыл дизассемблер одного говна на дельфи, так там буквально всё было переёбано через тройные указатели⚹⚹⚹ на код.
187 2347910
>>347907

>AUTO_INCREMENT


Разве не AUTOINCREMENT?
188 2347991
>>347907
Исключение выбрасывает? Оберни в try catch и посмотри, что там
189 2348019
>>346951
Не понимаю всего этого дроча вокруг чисто серверной операционки. Какой толк от его открытости, если он пилится корпорациями сугубо для своих вычислительных задач в огромных датацентрах? С таким же успехом можно пытаться ездить в магазин на гусеничном тракторе, мотивируя это тем, что крупнейшие в мире лесозаготовительные концерны используют их в своей работе.
190 2348024
>>348019

>чисто серверной операционки


Почему ты так решил?

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


Не каждый.

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


Почему ты так решил?

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


Из какой методички сравнение?
191 2348031
Я знаю, что исключения это долго (очень). Но вот не помню, программа замедляется уже в случае, если я имею кусок кода с throw или же в тот момент, когда бросается исключение вместо ручной обработки ошибок?
192 2348032
>>348031

>Но вот не помню, программа замедляется


Во время обработки.
193 2348035
>>348032
>>348031
И выбрасывания.
194 2348036
>>348032
>>348035
Спасибо
195 2348048
>>348031

>Я знаю, что исключения это долго (очень).


это неправильное понимание
196 2348056
Покидайте красивого по-вашему мнению кода, желательно из объемных проектов.
197 2348063
>>348056
Глянь сорцы бустов
На всю жизнь хватит
198 2348130
>>348056
OpenSSL, боль в моя дырка задница.
А, ты просил красивого. Такого не видел, при столкновении с реальностью всегда появляются костыли, увы.
Но по возможностям, я конечно люблю boost и lua sol2
199 2348133
>>348056
Плюсового?
200 2348136
201 2348139
>>348136
C++17?
202 2348146
>>348136
Из сишных могу nginx посоветовать. Лучшее, что я читал на Си. ПЛюсы мне читать сложно, но считаю, что tensorflow и opencv более-менее
203 2348158
>>348056
Catboost
204 2348291
в какой IDE в 2022 лучше кодить в Linux? gcc? раньше atom юзал.
205 2348295
>>348291
Да, юзай IDE GCC, альтернатив нет.
206 2348299
>>348295
Ну не надо тут врать. А как же известная ide clang и msvc?
207 2348301
>>348295
ну, я понимаю что это компилятор. Спасибо за совет.
208 2348347
Я правильно понимаю, что яндекс на летнюю стажку берет в любое время и я могу сейчас податься? Или я уже все сроки проебал?
209 2348372
Где найти работу с основным языком - английским? На английском говорю свободно, но хочу еще лучше. Хотел в хуавей, но там образование нужно. Анон, накидай компаний пожалуйста.
210 2348374
>>348347
Сейчас у них вроде как фриз найма
211 2348380
>>348063
Это не сарказм надеюсь? Я как ньюфаг ищу примеры кода, по образцу которого можно развить привычку писать хороший код.
212 2348381
Посмотрел на трубе собеседование, теперь вопросы
1. Спрашивали про свап-идиому, SFINAE, ADL. Я охуел, потому что про это первый раз услышал. Почему в учебниках ничего нет?
2. Уже не первый раз спрашивают про ебаное ромбовидное наследование и виртуальное наследование. Почему дрочат эту хуйню, если в учебниках написано, что это плохой паттерн и лучше так не делать? Неужели это на практике используется?
3. То же самое про ебаный pure virtual call. Ну давай обманем компилятор, ну давай вызовем исключение. Только вот нахуя, чистые виртуальные методы ля того и нужны, чтобы создавать абстрактные классы, нахуя вызывать то, что вызывать не нужно?
4. Уже не первый раз вопрос про перемещение из вектора при реаллокации. И про noexept в мув-конструкторе. Претензия у меня не собеседованию, а к языку. Почему нельзя было сделать, чтобы при реаллокации по умолчанию вызывался мув-конструктор?
213 2348385
>>348063
>>348158
>>348130
Получается проблема не во мне, а просто язык не способствует красивым решениям, ясно.
>>348146
Я крестовый хотел посмотреть.
214 2348387
>>348372

>Где найти работу с основным языком - английским?


Любая английская компания или работающая с ними.
215 2348394
>>348387
А как и где такие искать? В hh только по запросу "c++ fluent english", но это явно не полный нужный мне список. А сидеть перебирать компании я не хочу.
216 2348399
>>348374
По моей инфе разморозили недавно. Мне главное чтобы сам набор не был закрыт официально
217 2348402
>>348381
Как же охуенно. Читаю все что ты написал и понимаю, что у меня все это было в вузе
мимо первокур
218 2348405
>>348402

>Читаю все что ты написал и понимаю, что у меня все это было в вузе


Тебе говорили зачем это знать?
219 2348407
220 2348409
>>348407
Зачем?
221 2348411
>>348409
Для того чтобы писать хороший, удобный, быстрый код без ub, понимать как некоторые фишки языка работают под капотом. Ну и банально показывают примеры когда незнание чего то может привести к плохим последствиям. Иногда препод говорил, что ему это ни разу не понадобилось на практике (не про то что ты написал, а вообще на каких то лекциях), но знать нужно, чтобы понимать как язык работает
222 2348412
>>348411

> знать нужно, чтобы понимать как язык работает


А я знал всю ту хуету раньше, но уже забыл, так как ещё ни разу не пригодилась
мимошёл
223 2348415
>>348402
Значит охуенный у тебя был вуз. По слухам в вузах на паскале и фортране кодят. И дай бог ханойские башни на си сделают.
224 2348419
>>348412
А рассскажи, что пригодилось?
225 2348430
>>348415
Кек, у меня тоже был современный с++ (тогда еще 17). Но кроме него и фортран, и паскаль, и башни на си. и какая-то функциональная залупа, которую похоже специально разрабатывали чтобы добиться максимальной уебищности
мимо другой
226 2348435
Аноны, а нет ли какого фреймворка для крестов, похожего на ангуляр, для написания аппсов под андроид с нативными UI элементами? Qt не подходит.
227 2348436
>>348394
Чел, на том конце сидят такие же европейцы с диким акцентом и уровнем upper intermediate++. Если тебе надо fluent - ищи релокацию в англоговорящие страны.
228 2348444
>>348435
Нет.
229 2348446
>>348394

>В hh только


На hh с английским ты только аутсорс гелары можешь найти.
Хочешь работать с буржуями — ищи галеру на буржуйских сервисах (тот же linkedin), очевидно же.
230 2348455
>>348381
1. Потому что это выходит за рамки среднего учебника;
2. Не используется, суть вопроса — как в пункте — просто доебаться до знания кишков;
3. Просто хотят доебаться;
4. Легоси.

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

>как в пункте


1
232 2348472
>>348381
1. Идиомы это просто идиомы. Сегодня они актуальны, а завтра тебя за них ногами пиздят (за паттерны синглтон, фабриаки, за блокировку с двойной проверкой и т.д.).
2. Просто забей.
3, 4. Увы, но знать надо. Язык про ручное управление ресурсами. Исключения в конструкторе/деструкторе, pwc, нехватка памяти - с этим придётся бороться на практике.
233 2348539
>>348385
Нет, язык позволяет вполне красивые вещи. Проблема в том, что эти красивые вещи вполне делаются и на более удобных языках, а на плюсах делают то, особо по красоте и не сделаешь. Я так думаю. Всякие наивные вызовы, байтоёбство и прочий high performance, где красотой жертвуют.
download.jpg181 Кб, 2048x833
234 2348546
>>345617 (OP)
Привет тред это сново я.

Существуют ли итераторы, которые возможно разименонвывать? При этом сначала надо выполнить find_if для массива.

std::array<B, 23>::iterator it = std::find_if(b[0]->arr.begin(), b[0]->arr.end(), [=](const B b) {
return b->is_something == true;
});
235 2348582
>>348546
Как создать компил-тайм тетрис?
236 2348585
>>348472

> pwc


Что это?
237 2348588
>>348582
Нам препод рассказывал, что в 23 стандарте случайно подвезут новый язык во время компиляции, при этом невозможно понять остановится ли выполнение программы или нет. И компиляторы тупо костылят, что если глубина рекурсии выше 100, то компиляция прекращается
238 2348591
>>348588
Прикольно, дожить бы.
239 2348592
>>348588
Так уже.
240 2348609
>>348585
PricewaterhouseCoopers, но имелось в виду pure Virtual call.
241 2348621
Почему создание pure virtual такое костыльное? Почему нельзя было сделать нормально - ввести ключевое слово pure и писать pure virtual?
242 2348626
>>348621

>Почему создание pure virtual такое костыльное?


Секрет.
243 2348632
>>348621

> ввести ключевое слово


Поэтому. Комитет боится вводить новые ключевые слова и придумывает синтаксические изъёбства. Туда же auto для вывода типов.
244 2348723
>>348621
Еще бы ключевое cлово interface как в шарпах
245 2348731
>>348723
IUnknown
246 2348757
>>348731
No god! Please no!
247 2348867
>>348381
1. Значит ты читаешь хуевые учебники
2. Доебаться. На практике не видел, чтобы использовалось. Но иногда это может тебе встретиться (например при наследовании от чего-то std'шного), поэтому будет лучше - если ты знаешь.
3. Доебаться. И вопрос про понимание. На собесе можно дать понять, что ты выкупаешь и послать нахуй
4. А причем тут мув конструктор? Давай возьмем вектор. Давай возьмем указатель на его первый элемент. А потом дохуя раз вызовем push_back. Произойдет реаллокация и указатель уже не будет валидным. На уровне языка это довольно сложно поправить. И даже если это поправить - будет оверхед, который пользователь(тупой программист) будет не ожидать. Поэтому за скорость платит как программист, зная вот здесь может ебануть
248 2348869
Сап. Изучаю ООП, классы
Для изучения языка я пользуюсь Ютубом, purecode, cppstudio — но везде только элементарные задачки и их решения. Из-за этого я не могу сделать что-то даже незначительно сложнее них

Хотел написать программу, в которой между двумя автомобилями с разными характеристиками проводятся гонки. Нужно выполнить лабу, в которой будут проводиться гонки, а в классе "Результат" выводиться собственно результат, автомобиль-победитель, расстояние, добавление/удаление автомобиля... Из-за того, что во всех уроках по теме ограничиваются тем, чтобы задать класс с парочкой объектов и вывести какие-то из значений объекта, я не могу писать что-то сложнее этого. Подскажите пожалуйста, где можно углубленнее посмотреть? Уже давно раздражает, что везде простенькие примеры и задачки, а мне нужно выполнять лабы, в которых задачи значительно сложнее. И поэтому штудирование информации в интернете как-то не способствует выполнению лаб.
Уже кучу уроков по классам, кучу сайтов посмотрел — нигде что-то хитровыебаннее базы для чайников не предложили. А мне лабы делать надо, ебать их в сраку.
249 2348871
>>348632
Долбоёбы. Вот в питоне норм люди - просто объявили, что устаревшее говно поддерживать не будут, и ебанули новую улучшенную версию.
250 2348872
>>348871
Деды на плюсах просто будут на старой и не поддерживающей сидеть, лол
А с ними и вся индустрия
251 2348877
Я пишу в vs code, но лишь потому что не умею в vs быстро выбирать файлы для компиляции. А мне часто во время проги приходится компилировать основной исходник с разными другими cpp для тестов. Можно ли научиться быстро в vs включать и исключать файлы из проекта? Так бы я и дальше vs code юзал, но профилировщик в vs удобный слишком
252 2348888
Ну ты сравнил молодой питон и плюсы. И да, многие компании теперь просто сидят на старой версии питона, потому что переписывать на новую не хотят. У плюсов и так 100500 компиляторов, каждый из которых компилирует свой диалект языка, если еще и поддерживать компиляторы для разных форков, то люди совсем ебнутся. А поддерживать их придется, потому что баги в компиляторах находят не редко. Вообще да, я иногда тоже думаю, что было бы круто язык форкнуть, но понимаю почему это не делают. Возможно, мне даже немного обидно. Еще хотел вот что спросить: вроде же что то иногда признают устаревшим и просто выпиливают нахуй из стандарта. Может ли это привести к перерождению плюсов в язык без хуевой тучи костылей ради обратной совместимости лет через 15?
253 2348893
>>348871
В динамикодрисне это хоть и больно, но терпимо. Можно по-быстрому раскидать костыли по коду, чтобы поддерживались обе версии петухона. А в крестах начинается адская ебля, когда тебе надо скомпилить проект, написанный кем-то в нулевых, и ты получаешь 100 мегабайт нечитаемых ошибок, сиди, ебись.
254 2348901
>>348381

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


не, чел, это полезная вещь вообще то
для определения поведения по умолчанию или для определения частичной функциональности
можно даже сказать что это такой мини-паттерн, которому уж 30 лет как
255 2348903
>>348893
чел, в том и сила
ты берешь очен старую либу, пытаешься компильнуть ее новым компилятором, в новом окружении, присоединить к своему охуенному сверх современному коду и так далее
ты должен вообще радоваться что компилятор такой строгий и вываливает кучу ошибок, потому что так и должно же быть..
а то что динамикодрисня (без тысяч модульных тестов) может сожрать любой код ну дак это и понятно, и то что у тебя "запустилось" с первого раза, это лишь означает что ты пошел по минному полю
вот так
256 2348906
>>348903
В жизни всякое бывает. При разработке с нуля эти проверки может и хороши, но потом при сопровождении, когда что-то, что всегда работало, вдруг работать перестало, тебе хочется только одну кнопку "запустить любой ценой", и не ебёт, что в одном из стандартов запретили какую-то залупу с енумами.
257 2348917
>>348871
Питун до сих пор жепу не зашил после релиза v3. Ещё попадается залупа, которая работает только на 2.х. И обновлений не будет, так как автор давно перестал её поддерживать или вообще помер от геморроя..
258 2348931
>>348901
Ты путаешь с паттерном template method, который не pure virtual, но virtual и определён в базовом классе.
259 2348934
>>348903
Присоединяешь к сверхсовременному коду и потом начинаешь как сучка пилить адапторы, чтобы легаси говно не вытекло наружу и твои коллеги не растащили его по всему проекту. Охуенно, да.
260 2348969
>>348419
Если касаемо только c++, то стандартная библиотека (без мозгоебства на шаблонах и виртуальных наследований), куте, буст и всякие мелкие библиотечки, немного шаблоны проектирования.
download (1).jpg56 Кб, 800x800
261 2349031
>>348588
Не понял. Есть поподробнее статья? С другой стороны у меня была шизо идея о том как в процесоор загружаются инты и прочие типы. Возможно ли посмотреть как они туда будут попадать и как то оптимизировать чтобы как тетрисе они укладывались ровно в машинное слово? Или это нереально потому что помимо приложения еще и операцинная система работает?

Еще вопрос - реально ли может помочь замена интов на char если я использую очень малые числа. Не больше сотни. На стаковерфлоу сказали что процесоор работает на интах лучше чем на чарах. Это правда?
262 2349042
>>348869
Так делай лабу. Вот и научишься. Когда будешь сталкиваться с проблемой - смотри конкретно по этой теме. А вообще тут Мейерса советовали почитать. Я лично его нашел но так и начал читать. Прочитал только что лучше везде использовать auto вместо типов.
263 2349043
>>348869

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


Напиши.
>>348888

>У плюсов и так 100500 компиляторов


5 или компиляторы g++SuperSpeedAndSmallSizeEditionByCoolVasyanExtentedV3.0.1beta тоже учитываются?

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


Какая корпорация за это будет платить?
>>349031

>Возможно ли посмотреть как они туда будут попадать


Через регистры.

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


Посмотри размеры и количество регистров на целовой архитектуре.

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


Кому?

>Это правда?


Посмотри инструкции, которые генерирует компилятор для чаров и интов.
264 2349048
>>349043

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


Как это сделать? Юзаю VS.
265 2349050
>>349048
Отладчики, генерация асм листинга и тд, миллион способов.
https://docs.microsoft.com/ru-ru/cpp/build/reference/fa-fa-listing-file
266 2349053
>>345617 (OP)
Помогите с кодом пожалуйста. Хочу научиться разименовывать итераторы. Если это возможно. Мне приходится передавать значение в указатель, но хочу сразу доступ к переменным осуществлять через итератор.

Код здесь:
https://pastebin.com/EgUBqeNC
267 2349067
>>349053
Возможно есть более красивые решения, хз не пишу на крестах.
https://godbolt.org/z/Pn7nx75dY
268 2349071
>>349067
Разобрался. Спасибо.
269 2349074
>>349050
Попробовал и получит результат. Только не знаю что происходит. Слышал только про mov. Это вроде запись значения.
270 2349191
>>349043

>5 или компиляторы g++SuperSpeedAndSmallSizeEditionByCoolVasyanExtentedV3.0.1beta тоже учитываются?


https://en.cppreference.com/w/cpp/compiler_support
Только из значимых — уже 12 штук.
А сколько их для всякого эмбедед говна... Ты молодой, шутливый, тебе все легко. Это не то. Это не Чикатило и даже не архивы спецслужб. Сюда лучше не лезть.

>>349048
>>349074
Палю годноту: https://gcc.godbolt.org/z/cex9WPMEa
За тебя прмерно матчит асм с строчками кода — открывай доку по x86 асму и изучай.
271 2349206
>>349191

>Только из значимых — уже 12 штук.


3 вижу, а где еще 9?

>А сколько их для всякого эмбедед говна...


Гсс собранный для разных архитектур?
272 2349209
>>349206

> 3 вижу, а где еще 9?


Это троллинг?
273 2349210
>>349206

>3 вижу, а где еще 9?


А ещё 9 в глаза тебя ебут наверно.

>Гсс собранный для разных архитектур?


Ох зумерок... Если бы всё было так просто...
274 2349215
>>349209

>Это троллинг?


Нет.

>А ещё 9 в глаза тебя ебут наверно.


Не угадал.

>Ох зумерок... Если бы всё было так просто...


Какие?
275 2349216
>>349042
>>349043

>Напиши.


Логичный совет, я и начал писать, но быстро столкнулся с тем, что не знаю, как что-либо сделать. Гуглю — мне выдают ту же хуйню уровня хеллоу ворлд. Мне бы примеры решения готовых задач посмотреть, при чем задач посложнее, а не уровня "Создать класс с двумя объектами, вывести значения объектов"
276 2349217
>>349216

>Гуглю — мне выдают ту же хуйню уровня хеллоу ворлд.


Значит ты неправильно гуглишь.
277 2349220
>>349216
Попробуй то же самое но с наследованием. Тут же станет сложно.
Screenshot20220503-125946.jpg351 Кб, 1080x2400
278 2349222
279 2349223
>>349191

>Только из значимых — уже 12 штук.


>>349222
Почему они значимые?
280 2349227
>>349223
А, ну раз ты сказал, то с завтрашнего дня Intel, nvidia, oracle, IBM перестанут писать кимпиляторы и пересядут на gcc
281 2349229
>>349227

>ну раз ты сказал


Что я сказал?
282 2349231
>>349229
Что они не значимые
283 2349232
>>349231

>Что они не значимые


Где я это написал?
284 2349235
>>349232

> я вижу только 3 значимых


Вот тут
ревун.jpg144 Кб, 960x720
285 2349239
>>345617 (OP)
Зачем устраивать срач из за компиляторов? Не все ли равно?

третий анон
286 2349243
>>349235
Я не писал, что остальные не значимые, а написал, что вижу только 3 значимых компилятора. Где используются остальные? Какой софт собран с помощью них? В чем их преимущество? Почему нельзя было использовать гсс\шланг\студийный?
Снимок экрана от 2022-05-03 13-14-06.png21 Кб, 394x259
287 2349244
Помогите, пожалуйста.
Как мне в определении метода внутри класса обратиться к перегруженному оператору?
288 2349247
>>349244
.operator()(4)
289 2349250
>>349247
Спасибо
290 2349251
>>349244
(*this)(4)
291 2349258
>>349243

> Я не писал, что остальные не значимые, а написал, что вижу только 3 значимых компилятора. Где используются остальные?


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

> Какой софт собран с помощью них?


Не изучал, не знаю

> В чем их преимущество? Почему нельзя было использовать гсс\шланг\студийный?


Я не работаю в интел, но могу предположить, что интеловчский собирает лучше для процов интел, а gcc просто не имеют ресурсов оптимизировать компилятор для разных процов
292 2349301
>>349222
Чел, nvcc это Nvidia CUDA compiler. Он к c++ имеет весьма условное отношение.
293 2349310
>>349258

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



Тем не менее у них больше всего фич.
294 2349333
>>349223

>Почему они значимые?


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

>>349310
Языковых фич. Потому что им не занимаются эффективные манагеры которым похуй на язык, лол.

Во всяких областях типо поддержки инструкций самых новых (либо редких/эксперементальных) фич процессоров (или сопроцесссоров, сейчас же модно сувать NPU в каждую щель), векторизации и прочим оптимизациям математики компиляторы вроде интеловского/амудешного ебали и скорее всего по прежнему ебут всех.
16426941156590.jpg41 Кб, 645x729
295 2349334
>>349239
Потому что делать нехуй на майских.
296 2349335
>>349334
За ассемблер зумеркам уже пояснили, сейчас и за компиляторы поясним.
297 2349337
>>349334
Скорей бы на работку.
298 2349338
>>349335
Що Що?
299 2349339
>>349333

>интела/оракла/ибм гарантированно есть ебейшее количество кода завязанного на них


Получается это корпоративный компилятор? Тогда зачем он обычным пользователям?
16429781320200.jpg188 Кб, 630x429
300 2349341
>>349339
А значимость чего-то определяется количеством васянов собирающих дома линух?
Пиздуй тиктоки смотреть, не засирай тред.
301 2349342
>>349341

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


Чем она определяется по-твоему?
302 2349345
>>349301
ВАШ КОМПИЛЯТОР НЕ КОМПИЛЯТОР
303 2349346
>>349338
Лахта макаки изображают себя гуру плюсов.
304 2349347
>>349342
долей на рынке. У интела 75% так что по идее (того анона) надо компилировать на нем.

другой анон
305 2349350
>>349347
Толсто.
16441402576320.jpg67 Кб, 555x604
306 2349354
>>349342
Востребованностью. Которая не различается по критериям вроде business-to-business, business-to-client или opensource-to-vasyan.

>>349347

>по идее (того анона) надо компилировать на нем.


Нет у меня такой идеи, пчел.
Если у тебя там не какая-то охуительная математика, 10-20% ускорения которой будут покрывать лицензию на компилятор и кучу самого современного железа, конечно.

Аргумент про "обычные юзеры не юзают" — говно уровня "C++ нинужин" в соседних чатах.
307 2349355
>>349346
У вас в треде - зоопарк ебланов?
308 2349360
>>349350
>>349354
Это не троллинг. Я просто не разбираюсь в компиляторах. Возможно бы даже прикупил интеловский если бы мне кто-нибудь доказал что он лучше gcc. И еще возможно это не улучшит байт код а только ускорит компиляцию. Я не шарю в этом вообще. Есть знающие аноны?
309 2349361
>>349354

>Востребованностью.


Для кого? Если компилятор востребован 0.0001% программистов, тогда он становится значимым для всех?
310 2349362
311 2349364
>>349360

>Есть знающие аноны?


Нет.
312 2349365
>>349360
Всё просто — если не понимаешь зачем он тебе — он тебе не нужен, забей и сиди на самом распространённом у тебя на платформе.
313 2349366
>>349361
Для индустрии в целом. Индустрия != программисты, а вот программисты без индустрии в целом никому нахуй не нужны.
314 2349369
>>349366

>Для индустрии в целом.


Каким образом?

>Индустрия != программисты


Получается компиляторы и программисты не связаны? Кто тогда определяет какой компилятор использовать?
315 2349372
>>349369

>Каким образом?


Позволяют выжимать из железа больше.
inb4: Рентабельнее что-то делать => больше проектов => нужно больше программистов (и не только).

>Получается компиляторы и программисты не связаны?


Как ты до этого дошёл? Вроде на сосаче пиздим а не на форуме дислексиков.
Программисты — составляющая индустрии, не вся индустрия.
316 2349376
>>349372

>Позволяют выжимать из железа больше.


Не факт.

>Как ты до этого дошёл?


>>349366

>Индустрия != программисты


>Программисты — составляющая индустрии, не вся индустрия.


Получается компиляторы выбирают программисты, тогда к чему ты притянул индустрию?
317 2349378
>>349365
Разговаривашь как гадалка. Мне кажется ты один лахтинцев Абу который поддреживат дискуссии чтобы траффик был.
318 2349383
>>349345
Пок, пок, пок. Компилятор javac умеет создавать .h файлы для нэйтива. Он c++ компилятор или не компилятор? Или это другое?
16428850238540.jpg56 Кб, 600x451
319 2349385
>>349376

>Не факт.


Когда

>компиляторы выбирают программисты


это работает именно так.

>тогда к чему ты притянул индустрию?


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

>>349378
Вполне конкретно написал — не нужон какой нибудь интеловский MKL — нахуй не нужон и их компилятор.

Пиздец, как же тяжко общаться с тиктокерами...
320 2349389
>>349385

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


Популярные компиляторы не умеют их использовать?
321 2349393
>>348931
ничего я не путаю
pure virtual функция член может иметь определение, и это используется для определения реализации по умолчанию или для определения частичной реализации
322 2349400
>>349074

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


вырубай флаги оптимизации все, когда только учишься читать сгенерированные ассемблерные листинги
без таких флагов машинный код будет проще и его будет легче понять
323 2349444
>>349393
Зачем тогда её делать pure, если у неё есть член реализация и она не деструктор?
То что ты описываешь и есть template method.
324 2349450
>>349400
Ну хуй знает.. Я асм тоже плохо знаю, и мне О0 читать сложнее чем О2, потому что там наоборот насрана куча лишних инструкций.
download (2).jpg33 Кб, 394x406
325 2349513
>>349385

>Пиздец, как же тяжко общаться с тиктокерами...



clang + cmake + VS enterprise. На мой думерский взгяд выросшего без интернета, с игрушками прибитыми к подоконнику и загуглившего тему за 5 минут это самая нормальная комбинация. Поклонники gcc конечно не согласятся, но я жду факты и внятные аргументы.
326 2349517
>>349513

>я жду факты и внятные аргументы


Зачем?
327 2349519
>>349517
прост

вообще хочу скомпилировать с самой лучшей оптимизацией
328 2349521
>>349519

>хочу скомпилировать с самой лучшей оптимизацией


Компилируй.
329 2349524
>>349521
Это чат бот? Не заробрался как cmake еще ставить.
330 2349529
>>349524

>Это чат бот?


Почему ты так решил?

>Не заробрался как cmake еще ставить.


>>349513

>clang + cmake + VS enterprise.


>нормальная комбинация


Почему тогда ты считаешь это нормальной комбинацией?
331 2349535
>>349529

>Почему тогда ты считаешь это нормальной комбинацией?


Прочитал так.
332 2349546
Тело pure virtual функции не нужно.
Если в классах-потомках в реализации этой функции используется один и тот же код - сделайте в базовом классе отдельный protected метод, выполняющий этот код, а не пишите его в теле pure virtual.
333 2349583
>>349444
чтобы базовый класс оставался абстрактным
334 2349585
>>349546
тогда нарушиться условие что базовый класс должен оставаться абстрактным
335 2349591
>>349583
Сделай ему абстрактный деструктор. Всё остальное = 0 без реализации и !=0, если реализация есть.
336 2349606
>>345617 (OP)
В плюсы завезли строки нормальные? Ну или нормальную асинхронность? Может быть кроссплатформенную работу с сокетами?

Дропнул это добро на втором курсе вуза сразу после того как написал компилятор паскаля на плюсах и перекатился на божественную жаву
337 2349609
>>349585
Что там нарушается, долбоёб?
338 2349617
>>349609
Условие что базовый класс должен оставаться абстрактным.
339 2349623
>>349606
Ну и как, счастлив?

все завезено, но не в стд
340 2349648
>>349606

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


const char*, std::string и юникодные варианты

>Ну или нормальную асинхронность? Может быть кроссплатформенную работу с сокетами?


Или? бака
boost asio, давно хотят вроде и вероятно в след-послеслед стд его завезут в стдлибу
1st class поддержка корутин уже давно есть если что

>перекатился на "божественную" жаву


clown
341 2349657
>>349648
Угу, а теперь сделай мне регистронезависимое сравнение юникодных строк ß и ss и ẞ, в utf-8 и utf-16. Печально всё со строками.
342 2349661
>>349657
Чем хоть на жабе занимаешься? Умлауты сортируешь?
343 2349665
>>349657
в стд есть функции конвертации, toupper, как я понимаю можно доставать из uNstring конвертером по символу в char32_t, делать toupper/tower и сравнивать (хотя описания этих функций с названиями аля qwerty cvt mcb просто ну их нахуй, благо мне что строки, что плюсы юзать пока что не придется) . Ебля, но однажды в функцию выделить и все нормально. Или все в стандарт тащить? Интересно, есть ли в жабе все фичи плюсов..
344 2349676
>>349661
Не, я плюсокодер, просто эта фигня с юникодом (точнее, отсутствие вменяемых средств для работы со всем, выходящим за пределы Base Plane или имеющим культурные особенности) доебала уже. Обычно не сортирую, но вот потребовалось, и возник НЮАНС.
>>349665
Ты не шаришь. Эти символы в разных регистрах занимают разное количество code unit.
345 2349691
>>345759
хуя гороскопы какие-то подъехали, в тот ли я тред попал?
346 2349705
>>349691

>в тот ли я тред попал?


Крестотред всегда привлекает шизоидов, пока не ушел в бамплимит. Поэтому все треды 1000+.
347 2349717
>>349691

>в тот ли я тред попал?


Что ты ожидал увидеть?
348 2349722
>>349606

>перекатился на божественную жаву


Перекатился в смысле новую должность получил или просто поковырял литкод? Почему не C#? В СНГ вроде это и есть путь.
349 2349725
>>349722

>божественную жаву


>Перекатился в смысле


Он жирный.
download (3).jpg42 Кб, 474x577
350 2349732
>>349725
Мне кажется это тот студент который здесь вчера про операторы спрашивал
351 2349743
>>349676
utf32 все одинаково занимают же?
352 2349747
353 2349814
Есть какой-нибудь структурированный гайд по работе с бинарниками? Сколько ни искал - всё по крупицам приходилось собирать да в опенсорсах копаться. Т.е. в целом алгоритм ясен: хуяришь структуру правильную, сики-хуики, райты-риды. Но структурировать всё и углубиться не помешало бы.
354 2349821
>>349814
В чем именно у тебя проблема?
16430348038930.png82 Кб, 320x320
355 2349823
регистронезависимости не существует, сына
если считаешь иначе, то ты или семибитный динозавр или запихал себе в очько весь стандарт юникода который уже толще плюсового наху
это база
356 2349829
>>349823

>регистронезависимости не существует


Регистры вообще миф, их не существует.
Не троллинг.
357 2349848
>>349821
Проблема, если её так можно назвать в поверхностных знаниях и не(-знании/-понимании) всевозможных питфолов. Вот я например юзаю std::array чаров, на первый взгляд всё выглядит работающим но я хз, оптимально ли это на дистанции и мб тут есть более лучшая практика (С-массив, ага). Бтв я поначалу вообще пробовал в стрингу или вектор класть. Вот пишу я либу для архивирования файлов. Сделал RW, сейчас думаю как докинуть удаление => перезапись уже существующего файла. Идея такова, чтобы найти начало искомого файла, обнулить занимаемые им байты (скорее всего лишний шаг) и сдвинуть весь контент что шёл после него в позицию начала этого файла - це норм чи не норм? Это из основного и насущного, а так уверен, что есть ещё что-то с чем я не сталкивался.
358 2349870
QML vs QtWidgets vs веб интерфейс через фреймворк JS`a vs Электрон?
359 2349883
>>349848

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


Используй объединения (union) для хранения бинарных заголовков (упростится работа с ними и RW) и контейнеры для бинарных данных, типа std::array.

>Вот пишу я либу для архивирования файлов.


Какие задачи у архиватора? Безопасность, скорость, размер, удобство?

>це норм чи не норм?


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

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


Нет и не завезут. Там хуиту вроде std::format мусолят годами, а тут ты такой — юникод!

> и перекатился на божественную жаву


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

>Ну или нормальную асинхронность?


Только каркас для неё в виде корутин. А дальше как обычно — сам решай че хочешь.

>Может быть кроссплатформенную работу с сокетами?


Кек.
361 2349919
>>349883

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


Полное говно алгоритм тоже. Без задачи сложно описать адекватный алгоритм. Если кратко, то примерные основы такие:
1) Минимизировать работу с дисками.
2) Минимизировать сдвиги и копирование памяти.
3) Многопоточность.
4) Фича почему твой архиватор, а не любой другой.
5) Расширяемость.
362 2349931
>>349870
Зависит от того, чего ты хочешь.

>QML vs QtWidgets


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

>vs веб интерфейс через фреймворк JS`a


Если не нужны фичи которые дают десктопные приложения (нормальный персистенс, доступ к системным апи итд) то можно и так. Хоть сколько нибудь сложный гуй будет жрать ебические ресурсы.

>vs Электрон


Прошлый пункт только с доступностью фич десктопных приложений (но кучей ебли с бриджем итд).
363 2349933
>>349883

>Какие задачи у архиватора?


Дла начала - примитивный CRUD без изъёбов. Я для того либу и пишу чтобы прохавать всю прелесть байтоебли.
364 2349945
>>349933

>примитивный CRUD без изъёбов


Тогда просто реализуй адекватный алгоритм дефрагментации и используй резервирование памяти.
365 2349950
>>349743
>>349747
Нет, я про то что некоторые глифы в некоторых локалях при преобразовании регистра превращаются в два глифа (utf-32 в частности и кодировка вообще, тут ни при чем)
Могли бы уже icu в стандарт запихнуть.
366 2349953
>>349950

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


>>349829

>Регистры вообще миф, их не существует.

367 2349956
>>349823
>>349953
С точки зрения кода вы правы.
А вот с точки зрения юзера с, например, NTFS, всё не так однозначно.
368 2349960
Сап
Препод дал задание за неделю написать эмуль 8086 с четырьмя что-ли командами. В общем обращаюсь к вам, сейчас чёткое условие писать на плюсах. У меня ноль теории по тому как устроен 8086, как начинать писать сам эмуль и знания в плюсах околонулевые. Читал статью на хабре, видел эмуль на гитхабе, но моих мозгов пока не хватает понять. Порекомендуйте источников, книжек, может ютаб канал чтобы хоть с чего-то начать.
Спасибо!
369 2349962
>>349960
Пока для себя вижу такой фронт работ:
Разобраться с тем как устроена архитектура любого процессора
Разобраться с особенностями 8086
Попробовать написать эмуль какого-нибудь простого чипа
Переходить непосредственно к 8086
370 2349963
>>349960

>У меня ноль теории по тому как устроен 8086


https://ru.wikipedia.org/wiki/Intel_8086

>как начинать писать сам эмуль


Читаешь команды, а потом выполняешь действия.
java.png110 Кб, 500x480
371 2349972
>>349963

>Система команд процессора Intel 8086 состоит из 98 команд (и более 3800 их вариаций):


Удачи анон. Ты точно программирование изучаешь?
372 2349981
>>349972

>Удачи анон.


Спасибо.

>Ты точно программирование изучаешь?


К чему этот вопрос?
373 2349984
>>349981
Считай это риторический. Изучать как работает процесоор это для каких-нибудь компьютерных инженеров если только. Препод наверно шиз и омега если такую шляпу задал.
374 2349988
>>349984

>компьютерных инженеров


Системных программистов.

>такую шляпу задал


Там кода на 1к строк, в чем проблема?
375 2349989
>>349988

>Там кода на 1к строк, в чем проблема?


В том, что я ебал.
376 2349991
>>349931
Что выбрать тогда чтобы и шустро работало даже с большим кол-вом элементов, было не всрато и чтобы простую кнопочку 500 строками описывать не пришлось?
377 2349993
>>349950
TIL, спс. Получается был неправ. чем больше знаю про уникод тем страшнее становится
378 2349996
>>349972
Так я же говорю мне не надо полный эмулятор писать, просто выбрать 4 команды

У меня проблема в том что не знаю с чего начать
379 2349997
>>349996

>У меня проблема в том что не знаю с чего начать


Давай начнем с того, что узнаем, что ты умеешь.
380 2350012
>>349997
Если про кресты, то их на начальном уровне я знаю, посидеть погуглить как какие конструкции пишутся в инете не сложно (лямбды, шаблоны их не трогал). Вот с архитектурой сложнее, я банально не знаю с чего начать (если что-то требуется, то беру ручку и блокнот и пишу), просто сижу перед листком и ничего в голову не лезет. Надо понять как вообще процессор работает, какие у него блоки, команды (это препод не дал). Ну и вообще что такое эмулятор и с чем его едят
381 2350015
>>349996
Перечисли команды, или там любые на твой выбор ?
382 2350025
>>350012

>Надо понять как вообще процессор работает


Если тупое объяснение, то он читает команду, выполняет действие, изменяет состояние регистров. Думаю для процессора 80-ых годов достаточное объяснение. Более подробно в даташите.
https://html.alldatasheet.com/html-pdf/130012/INTEL/8086/147/1/8086.html
Список команд.
https://kaf401.rloc.ru/DSP/I8086_commands.htm
384 2350037
>>349988
В том что там 3800 вариаций. Я вот сейчас тоже делаю вариации и это очень тупо. И бесполезно.
385 2350043
>>350012

> и ничего в голову не лезет.


Degeneratus Maximus. Пациент не может в абстракцию. Предлагаю лоботомию.
386 2350044
>>350015
Любые на выбор
387 2350050
>>350037

>В том что там 3800 вариаций.


Что значит 3800 вариаций?
388 2350051
>>349074
>>350044
возьми из моего поста - самые простые: mov, add, push, call. Препод подумает что ты красаучег.
389 2350052
>>350050
Ты на первом курсе?
390 2350053
>>350052
Почему ты так решил?
391 2350054
>>350050
возможностей
392 2350055
>>350053
Глупые вопросы задаешь
393 2350060
>>350054
Возможностей чего?
>>350055
Какие?
394 2350062
>>350051
зачем call? проще всего тупо арифметических, а если по красоте то разве для нормального использования call не надо еще пару инструкций?
395 2350063
>>350060
Эй масленок. Смотри что я нашел. Как раз для 8086

https://youtu.be/PHyIP9g9BQw?t=41
396 2350066
>>350063

>Как раз для 8086


Зачем это уточнение?

Крестовики снова маневрируют и уходят от ответов.
397 2350069
>>350066

>Зачем это уточнение?


Шиз ты думаешь ты самый умный? Я просто запалил 8086 на картинке.
398 2350070
>>350066

>снова маневрируют


Ты не мужчина что-ли заниматься таким гейским траллингом? Выйди со мной раз на раз посмотрим как не поманеврируешь.
399 2350073
>>350069

>Шиз ты думаешь ты самый умный?


Нет.

>Я просто запалил 8086 на картинке.


На какой?
>>350070

>Ты не мужчина что-ли заниматься таким гейским траллингом?


Почему ты так решил?

>Выйди со мной раз на раз посмотрим как не поманеврируешь.


Зачем?
400 2350078
С чего начать вкат в робототехнику и программирование ИИ? Базу языка знаю.
401 2350081
>>350078

>в робототехнику


С электроники.

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


Со сбора инвестиций.
402 2350083
>>349993
Всё так, Бро . Именно страшно. Такая же страшная фигня в операциях со временем с учётом истории изменения таймзон, летнего времени и високосных секунд.
403 2350085
>>350081

>С электроники.


Её я тоже знаю. Мне в контексте языка.

>Со сбора инвестиций.


Нахуя если я сам себе инвестор?
404 2350091
>>350085

>Мне в контексте языка.


Проблема в том, что ты хочешь от ИИ, в этом основная сложность понимания и реализации.
405 2350094
>>349991

>Что выбрать тогда чтобы и шустро работало даже с большим кол-вом элементов


Qt.

> было не всрато


Нейтив. Если таргет линукс — Qt.

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


Прям 500 нигде не придётся.
У тебя требования взаимоисключающие, пчел. Быстро ты можешь либо софт написать, либо софт будет быстро работать.

В целом возьми что проще и больше приглянется — и решай проблемы по мере поступления, можешь например взять QML и растягивать анус пока не начнёт болеть, потом сможешь свичнуться на виджеты, если таки заболит.
406 2350096
>>350094

>Если таргет линукс — Qt.


Почему не гтк?
407 2350101
>>350062

>еще пару инструкций?


еще парочку, пивная, еще парочку
408 2350102
>>350091
Не в этом вопрос. Пока что я спрашиваю про то, что вообще сейчас применяется при написании нейронок и прочих игрушек в контексте языка. Так то конечная цель само собой сильный и независимый ии, лепить лица однокурсниц на тела порноактрис или высчитывать радиус углов нового айфона при которых продажи больше будут - 0 интереса.
409 2350108
>>350102

>которых продажи больше будут - 0 интереса.


Масленок интерес не может быть отрицательным и скорее всего не будет == 0. То есть он будет в любом случае.
410 2350110
>>350108
Да? И почему же тогда мне интересно дрочить сабж, пресный матан который я что в школе ненавидел, что сейчас ненавижу и всё прочее и вытекающее только потому, что мне это внезапно интересно и по этому пути меня не ведёт ничего кроме энтузиазма и одиночества?
411 2350116
16428512974560.jpg80 Кб, 794x798
412 2350117
>>350110

>матан


матан это не математика Масленок, это математический анализ.

>дрочить


завязывай, в этом вся твоя проблема.
413 2350120
>>350117

>матан это не математика Масленок, это математический анализ.


Ну да, проебался с определением. В школе ненавидел математику, сейчас ненавижу математику и матан.
414 2350133
Где вы вообще этот юникод используете? Своими ебучими эмоджи в cli срёте?
415 2350139
>>350096
Тут уже был срач выше.

— Потому что кроссплатформа;
— Потому что нормальная документация;
— Потому что fluent C++ API;
— Потому что один большой консистентный фреймворк.
416 2350149
>>350133
Везде, где может ввести юзер. Путь к файлу, idn имя хоста, что угодно. Ну и соответственно в лог надо писать. Текст ошибки от винды например.
417 2350154
>>350149
А, ну ты бы так и сказал, что в софте для бухгалтерии.
978-3-319-58487-4.jpeg28 Кб, 306x463
418 2350166
>>350078

>>>/ai/

419 2350167
>>350166
Ссылка на трендель отклеилась
https://2ch.hk/pr/res/2286452.html (М)
420 2350226
>>349722
Ну я был джуном на плюсах на заводе с первого курса, а потом препод подкинул халтурку на жаве связанную с банком одним забугорным и так вот пошло поехало.
421 2350240
>>350102
Нейросеточки, cv и slam жрут как не в себя. Особенно если тебе нужна автономность. Посему - avx, neon, cuda, opencl, tbb, и параллелизм, доступный в языке. Кастомные контейнеры, структуры данных, теорвер, дифгем, алгебра, функциональный анал, местами матан.

Может лучше ограничишься робототехникой и на С делать робота Фёдора? За Фёдора сейчас льготную попотеку дают.
422 2350247
>>350240

>Нейросеточки жрут как не в себя


Ну типо, поэтому я в с++ тренде и пишу.

>За Фёдора сейчас льготную попотеку дают.


Как я уже говорил - материальных выгод я не ищу.
423 2350255
>>350247

>выгод я не ищу


А кто сказал, что попотека это выгодно?

Не очень понятно, что ты по факту писать собрался? Всё и сразу? Ты голову себе сломаешь.

Если тебе надо именно сетки писать, то параллелизм низкого уровня (avx, cuda, интринсики), представление о работе с памятью, умение писать свои аллокаторы, понимание механизмов обмена данными между cpu/gpu или ram и различными кэшами.
По языку это первые несколько глав нормального учебника.
Сам C++ вообще никак не приспособлен для такой работы. В языке нет ни типов данных (матриц/векторов) ни операций над ними.

Если бэк, использующий нейросети, то шаблоны/классы, библиотека std - оставшаяся часть учебника по c++. Ещё нужен параллелизм с++ - он обычно в конце книжки (описан на отъебись).
image.png13 Кб, 449x354
424 2350260
>>345617 (OP)
помогите пожалуйста разобраться, как этот код работает. Почему
(49 & 2) это 0
а
(51 & 2) это 2
Как это работает вообще?
425 2350262
>>350260
Гугли побитовые операции.
426 2350265
>>350260
Оператор & это побитовое И: 1 & 0 = 0, 1 & 1 = 1.
Двоичное представление чисел:
49 = 110001
51 = 110011
2 = 000010
Далее по всем позициям проходишься и применяешь попарно &
В итоге для 49 будет 000000 = 0, а для 51 - 000010 = 2
427 2350266
>>350255

>Всё и сразу?


Всё, но не сразу. Ясное дело сначала я увязну в дроче с классификацией ириса и прочей базовой фигнёй. Нахуя мне это? Надоела пустая и бесцельная жизнь фуллстакомакаки, хочу чего-нибудь нового крутого. Паралеллизм не проблема, я зря Уильямса читал что ли?
428 2350267
>>350266
Ну будешь драться с олимпиадниками за те 2 вакансии, которые сейчас размещены. Могу тебе сказать, что собес на такую позицию это 10-15 минут с++ и потом либо адовый параллелизм, либо матан.
429 2350268
>>350267
Я НЕ буду искать никаких вакансий. Я НЕ буду работать в этой сфере на бизнес/НИИХУЯ. Мне хочется занятся этим ДЛЯ СЕБЯ исключительно потому, что мне это интересно. Может быть я обосрусь и скачусь в Qt-макаку, может быть стану крутым спецом и в мидтайме "каръеры" смогу сумею замутить каких-нибудь дроидов/андроидов - сейчас я об этом особо не думаю, сейчас мне тупо интересно с этим поебаться.
430 2350269
>>350268

>каръеры


Да-да, олимпиадники и НИИХУЯ-шевцы победили, согласен.
431 2350270
>>350262
>>350265
спасибо за подробное объяснение, так и думал, что это что-то связанное с побитовыми операциями
432 2350273
>>349883

>Используй объединения (union) для хранения бинарных заголовков


>(упростится работа с ними и RW)


Каким образом?
433 2350279
>>350273

>Каким образом?


Таким union { raw[sizeof(struct)], struct { a, b, c, d } }, read(from, union.raw, sizeof(union.raw)) union.a,b,c,d -> ...
434 2350280
>>350279

>Таким union { raw[sizeof(struct)], struct { a, b, c, d } }, read(from, union.raw, sizeof(union.raw)) union.a,b,c,d -> ...


Хотя в любом случае структуру надо будет выравнивать, поэтому никаким, пиши, как хочешь.
435 2350283
>>350268

>НЕ буду работать в этой сфере


>стану крутым спецом


Кекеке.

>замутить каких-нибудь дроидов/андроидов


А это уже третье направление, не касающееся бэка и нейросетей.
Системное программирование - RTOS/Linux, драйвера, распределённые системы, межпроцессное взаимодействие. Программирование под интерфейсы железяки (преимущественно на С) и ЦОС математика для потоков с этих интерфейсов - преобразования фурье, фильтры калмана/гаусса, дебаеризация, матан для калибровки.
436 2350292
>>350268
Я просто чё тебе хочу сказать. Если ты хочешь сделать своими силами нечто умное и автономное, то покупай Малинку/Ардуинку. Накатывай на них официальные AI тулкиты и с помощью питона реализуй свои идеи. Если ты пойдёшь с другого конца, то оно тебя сожрёт.
437 2350299
>>350283

>А это уже третье направление, не касающееся нейросетей.


Ага, заебись, и будет мой дроид уметь только сварочным апаратом по заранее заданным координатам провести, 10/10.
438 2350315
>>350299
Чтобы он что-то там мог ему надо научиться в пространстве ориентироваться. Но это уже четвёртое направление - SLAM, трекинг и теория управления (матан, матан, матан).
439 2350327
>>350315
Да это всё и так понятно. Всё это отдельные модули которые так и так будут коммуницировать с этим самым "модулем ии" - тут без этого никак. Я же не говорю что-то в духе "Бля, сейчас почитаю авторанейм и завтра на иксвинге на Пандору". Тут и тупому ясно что это марафон в огромный пласт разнообразных наук и техник.
440 2350335
>>350327
Ну так бери малинку, поиграйся с ней и потом снова иди формочки шлёпать.
441 2350340
>>350335

>бери малинку


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

>потом снова иди формочки шлёпать


Таков путь каждого краба в вашем ведре?
442 2350344
>>350078

>вкат в робототехнику


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

>но ты же не последуешь этому совету?


Почему это? Я половину того, что знаю учил по советским учебникам.
444 2350353
>>350340
У меня другая железка. Малинка легче в освоении. Не хочешь - бери ардуинку. К ней много всяких сопутствующих железок продаётся - дисплеи, приводы, сенсоры простенькие.

>путь краба


Вакансий мало, а кушать хочецца.
445 2350354
>>350353
Ну так кушай. И тред читай. Я у тебя хлеб не забираю.
446 2350355
>>350240
лучший способ оптимизировать нейросетку - это отказаться от нейросетки, но пидорасы что делают 10к грина в месяц на этом дерьме никогда в этом не признаются :D
447 2350358
>>350355

>отказаться от нейросетки


И какие альтернативы?
448 2350359
>>350266

>Надоела пустая и бесцельная жизнь фуллстакомакаки


лол, нахуя вы в кресты лезете
у тебя же наверняка на хлебушек с маслом зарплата есть и еще джем сверху? так ведь?
с жиру бесишься
449 2350363
>>350268
чел
если ты работаешь кодером 8м часов
то самое хуевое что ты можешь сделать с собственным мозгом и телом - это приходить домой с работы и снова садиться еще на 3+ часа за комп, без разницы с какой целью, играть в игрушки или заниматься "другим" кодингом
ты можешь спокойно выгореть и все, в 35 лет сдохнуть бомжем от нищеты
450 2350367
>>350359
а) Я начинал с С
б) Плюсы охуенные
в) Я 4 года к ряду пилю охуительные бизнес решения, сраттапы и нфт-блокчейн-крипто хуйню что меня порядком подзаебало.
451 2350370
>>350269
они не победили
просто нет оплачиваемой работы, айтишников слишком много сегодня
бизнес может снимать "верхушку" с выпускающихся вчерашних студентиков, брать лучших
а середняк отправляется в помоечку
а вот в конце нулевых в россии и середняк брали на РАБоту
452 2350373
>>350363

>приходить домой с работы


Но я работаю из дома...

>садиться еще на 3+ часа за комп


Я сижу по 16+ часов в день и что?

>ты можешь спокойно выгореть и все, в 35 лет сдохнуть бомжем от нищеты


А могу послезавтра отъехать от рандомного тромба. И что? Это повод скатываться в потреблядство и нихуянеделание?
453 2350376
>>350358
захардкоженый алгоритм под решение частной проблемы
для тех же задач распознавания образов есть сотни алгоритмов, с соответствующим мат аппаратом
454 2350379
>>350373
чел ты очень странный
хвастаешься тем что работаешь по 16+ часов в день и тут же сообщаешь что у тебя уже есть вариант умереть от инсульта?
хм, может стоит все же начать работать 8м часов в день и заняться собственным здоровьем? не?
image.png106 Кб, 533x300
455 2350381
>>350376

>2022 год на дворе


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

456 2350384
>>350379
Я тебе про вероятности говорю, а не на здоровье жалуюсь. И выгорание у меня не от того, что я за компом живу а из-за рутины.
16450153374170.jpg18 Кб, 480x325
457 2350386
>>350381

>2030 год


>алгоритм

image.png601 Кб, 682x544
458 2350389
>>350386

>2030 год

459 2350396
>>350381
Ну он тебе дело говорит. Если речь идёт о поисках объектов на картинке, то часто их геометрия известна и не нужно гонять нейросеть. Достаточно сделать свёртку для edge detection и по маске найти то, что надо. Работает вот прям намного быстрее.
460 2350409
>>350354
Я тебе назвал 4 из 11 направлений, необходимых для создания умного устройства. Так как ты сам не знаешь, куда хочешь двигаться, то очевидно что надо брать конструктор на базе эмбед решения и пробовать разные направления.
461 2350410
>>350409
Ну так ты красавчик. Спасибо. Что тебе ещё сказать?
462 2350412
>>350410
Скажи чей Крым.
463 2350413
>>350412
Не, это не интересный вопрос, сорян.
464 2350426
>>350413
На сколько сократится количество рутины, если ты будешь работать не 16 часов, а 8? Описать мат модель и обосновать её. Написать на c++ код, вычисляющий количество рутины для произвольного интервала времени.
465 2350514
>>350426
Всё ещё скучно. Ещё попытку?
466 2350567
>>350412
матери твоей
467 2350620
>>350567
Родина-мать и так всё знает.
468 2350741
Хелпаните. Что такое резюме в Яндекс? Я заполнил все предыдущие поля кроме необязательных и все что можно рассказал. Но обязательно надо загрузить резюме, а я хз что там должно быть.
469 2350749
А еще такой вопрос: контест открывается сразу после отправки резюме или как? А то я надеялся в резюме написать хуйню, но зарешать контест. Будет обидно, если к контесту не допустят
470 2350770
>>350741
>>350749
Там надо написать о себе. Про то на каких языках кодил и тому подобноее. Кинь свой имэил может вместе поготовимся. Думаю тоже попробовать.
471 2350774
>>350770
Спасибо. Мой тг @nosok2005, но я не уверен, что буду готовиться к собесу).
472 2350776
>>350774
А почта у тебя есть? По телеге тут деанонят.
473 2350786
>>350776
Номер можешь скрыть просто. Почта у меня есть, но там имя и фамилия в названии. А остальные я не чекаю и твои сообщения потеряются. Если ты закроешь номер, то никто не сдеанонит. В крайнем случае за 15 рублей номер купи и акк сделай фейковый
474 2350801
>>350786
проверь сообщения
475 2350823
Планирую пилить 3D игру на Qt, какие подводные?
bred.png121 Кб, 600x420
476 2350833
477 2350837
>>350833
Хочу запилить игру а учить целый UE для этого не хочу.
478 2350841
>>350837
Ну у тебя 2 стула в таком случае:
1) Запилить всё на движке попроще. Если не станет похуй на гейдев — рано или поздно упрёшься в движок и пойдёшь учить UE (лучше сразу пиздуй туда);
2) Запилить всё с нуля. Та же буханка что и с Qt а ещё ты скорее всего никогда не допилишь своего игоря до вменяемого состояния, но вне зависимости от того забьёшь на гейдев или нет получишь кучу знаний.
479 2350849
>>350841
Да мне и сейчас похуй на гейдев. Хочу и знания Qt-хи прокачать и запилить что-нибудь такое неплохое.
480 2350858
>>350849

>Хочу и знания Qt-хи прокачать


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

>запилить что-нибудь такое неплохое


"Неплохое" в соло не запилишь.
Можно что-то средне-хуёвое с пизженными ассетами.
481 2350865
>>350858

>средне-хуёвое с пизженными ассетами


Извинись, я сеньор-блендерист.
482 2350875
>>350865
Тоже пилю движок. Научился создавать окно, закружать текстуры, передвигать юниты (с текстурами), сейчас пишу логику для атаки. Клики мышки тоже сделал. Пока полет нормальный. Есть знакомый дизайнер который уже заинтересовался проектом. Думаю летом плотно за ней сидеть, каждый день (плюс-минус). Единственный подводный это то, что стим заблокирован. Так что надо будет еще и свой магаз пилить.

другой анон.
483 2350907
>>350875

>Так что надо будет еще и свой магаз пилить


Не с того конца начал, для начала сделай свою материнку, процессор, ОС и т.д.
16487818977110.mp4515 Кб, mp4,
450x360, 0:10
484 2350909
>>350907
жиный троллинг от омежки который ничего не умеет
485 2350911
>>350909
Урыл, продолжай изобретать велосипеды.
486 2350913
>>350911
Работать в юнити это та еще запара. А так у меня будет и пэт и навыки, а у тебя будет нескончаемая боль и кривой продукт.
487 2350914
>>350913

>А так у меня будет и пэт и навыки


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

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


Какой продукт? Боль от чего? Я предпочту взять готовое решение везде, где это возможно а не писать всё с 0.
488 2350917
>>350914

>выгорание


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

>геморрой


Ты походу старый

>незаконченный проект


твое воспитание масленок

>готовое решение везде, где это возможно а не писать всё с 0.


Это рационально не спорю. Но на этом далеко не уедешь. Или у тебя получится пошлятина которая миксимум 5/10 по оценкам будет. Людей интересует что-то новенькое.
489 2350919
>>350917

>Людей интересует что-то новенькое.


Что-то вроде очередного гейдвижка не предлагающего миру ничего нового?
490 2350927
>>350919
Я запросто создам что-нибудь. А ты упрешься в мейнстрим. Если вообще найдешь у кого своровать.
491 2350929
>>350927
Морально приготовился к тому, что твоё запросто затянется на n лет регулярного дрочерства?
download (4).jpg28 Кб, 474x392
492 2350933
>>350929
Я не из тех кто хоп-хоп и в продакшн
493 2350941
>>350933
Удачи тогда.
494 2350956
>>350567
Ванек я смотрю ты смелый дохуя
495 2350968
>>350956
Ванек это очередная js либа какая-то или что?
libs.png5 Кб, 205x335
496 2350983
>>350968
Что скажите по поводу либ Victoria 3, господа?
497 2350985
498 2350986
499 2350989
>>350986
Мы тут таким не занимаемся, пожалуйте вслед за своим военным кораблём.
500 2350993
>>350983
А чё сказать то? Обычный набор. Рантайм плюсов, рантайм куды, дефолтные либы для картинок, zlib для архивов с ресами и рантайм для иксов с компилятором (видимо для шейдеров).
501 2350997
>>350989
Victoria 3 написана на плюсах соси бобон
502 2350998
>>350993
Знаешь что такое CUDA? Я вот только понял что это для аппаратного ускорения.
503 2351003
>>350997
Нормальный плюсовик для винды не пишет
504 2351004
>>351003
Дай определение нормальности.
505 2351008
>>351003
А кто из нормальных пишет для винды?
506 2351009
>>351004
Всё что не имеет отношения к винде - норма.
>>351008

>кто из нормальных


>пишет для винды

507 2351010
>>351008
Поясни пожалуйста. Для чего все пишут тогда если не винды? Самая распостраненная система. Правильно?
508 2351220
>>351010

>Для чего все пишут тогда если не винды?


Для денег.

>Правильно?


Независимой статистики все равно нет, любой ответ подходит.
509 2351249
Я уже заебался гуглить, помогите. Ебучий компилятор пишет что конструктор копирования implicitly deleted. Не могу класс скопировать, блять. При этом я проверил — все его элементы имеют конструктор без параметров и рабочие конструкторы копирования, если вдруг он не может элементы класса копировать. А ещё ссылку можно с класса взять, но операторы сравнения не работают — пишет портянку про отсутствие подходящего метода для сравнения. Что за ебень? Почему он не может дефолтный конструктор копирования сгенерить и почему операторы сравнения не сравнивают?
510 2351252
>>351249
От кюобжект наследуешься?
511 2351296
>>351252
Вообще без наследования. Я пока на void* переписал всё и вручную написал в процедурном стиле что надо. Поебень какая-то.
512 2351316
>>351296
Тогда правило шести видимо? Если определить один из конструкторов, операторов присваивания или деструктор то дефолтные удаляются. Ты их должен explicitly объявить default.
1608547443989.png16 Кб, 1102x146
513 2351319
>>351316
А ему похуй. Он всё равно удаляет. И я не смог нагуглить на каком основании он это делает.
514 2351321
>>351319
Ты там должен const написать, по l ссылке только так.
1609533792535.png17 Кб, 1168x134
515 2351322
>>351321

> там должен const написать


Ещё варианты?
516 2351341
>>351322
Вот теперь вообще без вариантов...
517 2351387
Как можно обнаружить обнаружить изменение значения переменной? Через тхред или как-нибудь ещё?
518 2351392
>>351322
У полей точно есть правильные публичные конструкторы копирования (c const&) и не deleted деструкторы?
не говоря о ебучих случаях вроде полей типа T&&, надеюсь такой хуйни у тебя нет
519 2351407
>>351387
Обернуть в объект и повесить колбеки на операции изменения, но это только для явного изменения сработает.
520 2351412
>>351387
Можно повесить PAGE_GUARD на нужный кусок памяти и ловить эксепшен STATUS_GUARD_PAGE_VIOLATION при любом обращении к нему. Будешь знать прям какая инструкция лезет туда, даже про попытки чтения узнаешь.
521 2351427
>>351392
Бля, ну я даже проверил сейчас - сделал всё публичным, вручную создавал новый класс, каждое поле копировал в новый и всё копируется. Но дэфолтный всё так же удаляет. Если через STL пытаться что-то делать с этим классом, мне сблёвывает портянку на 10 строк про "no matching overloaded function found", "attempting to reference a deleted function" и "could not deduce template argument for '<unnamed-symbol>'". Пиздец кал, это кстати MS C++20.
522 2351431
>>351427

>MS C++20


В этом и есть твоя проблема
523 2351439
>>351431
А хули делать? На cmake я не хочу. А C+20 мне нужен, у меня на корутинах и STL всё.
524 2351441
>>351439
Ручками всё, ручками.
525 2351442
>>351439
Зачем писать под стандарт, которому даже полгода нет?

>На cmake я не хочу


По-твоему проблема в системе сборки?
526 2351445
>>351442
Зачем писать на мёртвом языке?
527 2351446
>>351445

>Зачем писать на мёртвом языке?


Легаси.
528 2351448
>>351446
При чём тут 3 пидора в трусах?
529 2351450
>>351448
Какие?
530 2351452
>>351450
Три
531 2351453
>>351442

> которому даже полгода нет


Он уже почти год как на 100% реализован везде. У GCC вроде вообще года 2 как.
532 2351454
>>351448
Они с тобой в одном треде сидят? Когда вкладку в браузере переключаешь они пропадают?
533 2351455
>>351454
Не знаю, я на это не тестировал.
534 2351458
>>351455

>Не знаю


Логи скинь.
535 2351464
>>351458
Лапы, хвост и усы - вот мои логи.
image.png5 Кб, 523x28
536 2351556
Что есть базовый набор стандартной либы и буста?
537 2351567
>>351556
YAP, Type Traits, TTI, CallableTraits, HOF, Fusion, Metaparse, Hana, Preprocessor, MPL - абсолютный минимум который должен знать каждый вкатывальщик!
окей, это шутка
на самом деле под "знанием буста" обычно подразумевают одну практическую библиотеку, а именно asio
538 2351572
>>351439

>на корутинах


а как сопрограммы реализованы в языке, кто знает?
они используют "волокна" (fibers в windows) операционной системе или как то просто эмулируются на потоках операционной системы? нахуя тогда их было делать если выбрана вторая реализация?
539 2351579
>>351567
Ну Азия это понятно, а что ещё в бусте годного есть чтобы и практично и козырнуть в резюме можно было?
540 2351605
>>351572
Они не реализованы как у других, тут нет жесткой реализации. Корутины в крестах просто перемещают выполнение кода в другой фрейм, остальное как захочешь. Можешь продолжить выполнение корутины в другом потоке, можешь приостановить её через co_await, можешь возвращать из неё асинхронно данные. Через корутины ахуенно делать lock-free многопоточность, контролируя каждый поток, а не как во всяких растах где всё за тебя решили гомогеи.
541 2351607
Есть какой-нибудь справочник по всем фичам 11-20?
542 2351643
>>351607
Спецификацию читай, чел. У крестов она шикарная.
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/n4849.pdf
543 2351645
>>351643

>У крестов она шикарная.


А мне говорили что в крестах вообще ничего хорошего нет.
Бтв если я освою все эти 1800 страниц я стану сеньором?
544 2351660
>>351645
Нет, но сможешь хотя бы быть джуном через пол года практики. Кто не читал спецификацию вообще не могут крестовиками считаться, они просто сишники, пишущие процедуры с классами.
545 2351663
>>351660
Ну ёбана, 2 года читаю Страуструпов, Мейерсов, Александресок и прочих, 3 проекта запилил - 1 с бустом, 1 на qtхе и я всё ещё даже не ждун?
546 2351730
Кто подскажет, по какому принципу выравнивание в структкрах происходит? Нигде не могу нагуглить, чтобы было написано человеческим языком.
547 2351749
>>351663

>я всё ещё даже не ждун


Зачем тебе рабская бирка?
549 2351766
>>351749
Дело не в бирках, а в пирамиде Маслоу.
550 2351771
>>351766
Каким образом?
551 2351773
>>351771
Вкусно покушоть и признание как минимум.
552 2351776
>>351766
Я официально старший инженер - программист. Интересно, как у нас hr зовут?
553 2351778
>>351773

>Вкусно покушоть


Как это связано?

>признание


Откуда?
554 2351781
>>351776

>Интересно, как у нас hr зовут?


А должно быть? Хз, какая-нибудь Алёна или Тимур?
>>351778

>Как это связано?


Получил котлету бабла - покушол нормально, что за вопросы тупые?

>Откуда?


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

>Получил котлету бабла - покушол нормально


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

>что за вопросы тупые?


Я работаю по методичке.

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


Мазохист?
556 2351785
>>351782

>Джуны не получают деньги, им сразу едой платят.


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

>Я работаю по методичке.


Это-то мне как раз понятно.

>Мазохист?


Снова тупой вопрос.
557 2351787
>>351785

>Это происходит только потому, что есть дебилы посмотревшие 1 курс


Уверен?

>нихуя не умеющие и согласные на такие условия


Что ты умеешь?
558 2351791
Зачем принимать указатель на указатель (void-звездочка-звездочка)?
Функция принимает такой указатель в качестве out-параметра, создает объект (структуру), делает указатель на нее и кладет в эту переменную указатель на этот указатель. Не проще ли ограничиться одним уровнем указателей?
559 2351792
>>351791
Изменение указателя.
560 2351793
>>351787

>Уверен?


Я общаюсь с лидами, так что да.

>Что ты умеешь?


С какой целью интересуешься?
561 2351796
>>351793

>Я общаюсь с лидами, так что да.


Почему они являются для тебя авторитетами? Что они умеют? У тебя заниженная самооценка?

>С какой целью интересуешься?


Социальный опрос провожу.
562 2351797
>>351796

>Социальный опрос провожу.


А выглядит так что ты бот который моё время впустую тратит.

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


Они не являются.

>Что они умеют?


Пиздеть они точно умеют, об остальном не ебу.

>У тебя заниженная самооценка?


Не жалуюсь.
563 2351799
>>351797

>А выглядит так что ты бот который моё время впустую тратит.


Ты сам тратишь свое время на оправдания.

>Они не являются.


>>351793

>Я общаюсь с лидами, так что да.


Противоречие.
>>351797

>Пиздеть они точно умеют, об остальном не ебу.


>Не жалуюсь.


Ты принял потенциальное ложное утверждение от других людей и выдаешь его, как подтверждение твоей (навязанной) точки зрения, точно уверен, что у тебя нет проблем с ней?
564 2351872
Есть ли какая-нибудь сетевая песочница? Я пишу сетевое приложение и мне надо проверить как оно работает на куче компов и как они друг с другом взаимодействуют.
565 2351874
>>351791
Если тебе надо вернуть указатель из метода, но не через return, а через параметры, то ты можешь либо передать его по ссылке либо через указатель на указатель. Чаще всего встречается при линковке с кодом на С, так как в С ссылок нет и там у них ⚹⚹ везде. В c++ это пидорская практика и, например, const T⚹⚹ = T⚹⚹ вообще запрещено.
изображение.png9 Кб, 405x74
566 2351916
Почему?
567 2351921
>>351916
Потому что это не указатели на классы из одной иерархии и не void*.
Для таких случаев используется reinterpret_cast или каст в стиле C.
568 2351923
>>351921
Спс
569 2351971
Как в qt получить mac адрес непосредственно Ethernet, а не vmware, не openvpn и тд?
570 2351974
>>351971
В целом нашел решение путем сравнения с именем адаптера. Только вопрос, он зовётся Ethernet на любой винде?
571 2352028
С чего начать вкат в системное программирование не линупсе?
572 2352031
>>352028
С выбора языка.
573 2352032
>>352031
Он выбрал меня сам
574 2352037
>>352032
С определения, что для тебя является системным программированием.
575 2352039
>>352037
Байтоебля с ядром, модулями, драйверами, тыры-пыры.
576 2352042
>>352039
Пиши под пингвина.
577 2352044
>>352042
А что писать то?
578 2352046
>>352044
>>352039

>Байтоебля с ядром, модулями, драйверами, тыры-пыры.

579 2352048
>>352046
А учиться как?
580 2352054
>>352048
Как хочешь.
581 2352060
>>352054
Ты очень плохой собеседник и советчик
582 2352061
Помогите.
583 2352063
ШинСдк не стоит или не все пути к нему прописаны.
c++.png37 Кб, 889x510
584 2352068
Сап. Изучаю ООП, даётся сложно, путаюсь и постоянно забываю материал и все такое
Объясните, в чем разница между двумя этими программами? Я написал программы с одними и теми же объектами и одинаковым результатом. В чем разница и в каких случаях как объявлять переменные объектов? Знаю два этих метода, но нахера они — пока в башке не отложилось, запутался сильно.
585 2352069
>>352068

>конструктор, деструктор, public-private, virtual и только


>сложно


Что же будет когда ты до логических конструкций дойдёшь...
586 2352071
>>352068
Слева вроде бы конструктор по умолчанию: переменные не инициализируются и выводятся те значения, которые записаны в конструкторе. А справа наоборот: в конструкторе нет значений, но они даются уже в объекте. А какая разница то? Где мне может понадобиться первый вариант, а где второй? Просто не понимаю, зачем мне эта информация.
587 2352079
>>352069
Да, у меня совсем нет способностей в программировании, но и в универе хочу доучиться, и понять базу С++ для себя. А так, может, найду себя в чем-нибудь попроще веб-макака, 3d. Усугубляется проблема тем, что мне не хватает практики. До ООП я изучал С++ по курсу на Степике, и информация хорошо отложилась, проблем совсем не было. До курса я изучал так же, как сейчас, и у меня были проблемы. Но ООП курс не затрагивал, поэтому его я изучаю по сайтам:
http://cppstudio.com/cat/274/
https://purecodecpp.com/
Канал SimpleCode на Ютубе
И опять сталкиваюсь со старой проблемой: информация быстро забывается, не закрепляется, т.к нет практики. В курсе я писал программы, которые проверял преподаватель, мог спросить у него, что я сделал не так, получить помощь. Сейчас я придумываю задачи сам себе. А когда у меня что-то не получается — а у меня всегда что-то не получается — я начинаю простаивать. В лучшем случае мне смогут помочь на Cyberforum
Может, есть какие-то советы, как практику получать, чтобы всё не забывалось и не путалось в башке? Если просто читать, смотреть, а самому либо не кодить, либо просто повторять то же самое, что в примерах — то будет как у меня: хуёво. А как нормально?
588 2352083
>>352079

>В лучшем случае мне смогут помочь на Cyberforum


Если тебе на нем могут помочь, то тебе уже ничего не поможет.

>Может, есть какие-то советы, как практику получать


Пиши код.
589 2352105
>>352079

>Пиши код.


И только. Причём не всякую хуйню вроде игрищ с i-o в cli а придумать что-нибудь крупное и работать над этим. Тебе не нужна жирная теория, базу выучил - начинаешь писать. Поначалу будет хуйня получаться, не будет компилиться, память потечёт. Ты должен учиться искать информацию, гуглить, читать референс, даже сорсы хедеров иногда. Стак и прочие форумы нужны только в рид онли моде, абсолютно всё, с чем ты столкнёшься - уже было решено до тебя. И самое главное, анон, и это не касается только прогерства, помни главное: не ешь жёлтый снег ты должен всегда и во всём стремиться прыгнуть выше головы.
Screenshot from 2022-05-07 22-21-16.png54 Кб, 581x523
590 2352133
Блять, ебаные вы пидарасы нахуй, мне кто-то скажет, почему это ваше ебаное гавно не работает? Шо, опять UB? Самих не заебало говно жрать?
Screenshot from 2022-05-07 22-27-53.png55 Кб, 683x525
591 2352136
>>352133
Лол, вот почему так всегда? Честно, анончик, я искренне и продолжительно насосался, но только после гневного поста понял, что когда в байтиках попадается ненулевой sign бит, при конвертации uint64 он заполняет единицами весь остальной bitwise or.
592 2352139
>>352136

>почему так всегда?


Потому что только встав с колен после киберунижения от конпелятора и дебаггера ты обретешь крылья.
593 2352142
Что происходит, когда я пытаюсь вызвать boost asio connect к устройству, к которому я уже подключен?
594 2352144
>>352133

>Шо, опять UB?


Таки да, res не инициализируется.
595 2352151
>>352144
не, я уже сам себе ответил, на res похуй, он и так на всю свою ширину сдвигается за левый край экрана в итоге
596 2352159
>>351660

>Кто не читал спецификацию вообще не могут крестовиками считаться, они просто сишники, пишущие процедуры с классами.


А ну-ка, синьор-помидор, вот тебе вопрос: верно ли утверждение "чисто виртуальная функция - это виртуальная функция у которой нет тела"?

Салтовка-кум
597 2352162
>>352159
Чтобы ответить на этот вопрос никакой спецификации читать не нужно.
598 2352165
>>352159
Верно?
599 2352167
>>352142
Ничего
600 2352177
>>352162

>Чтобы ответить на этот вопрос никакой спецификации читать не нужно.


Так ответь, чо ты как не синьор, а как трейни позорный
601 2352179
>>352177
Ответила в директ
602 2352195
>>352167
Соединение не установится?
603 2352199
>>352195
На всё воля Силы
604 2352234
>>352179
Скинь сисечки
605 2352277
>>352234
Ты сегфолт пофиксил, селкат немытый?
606 2352325
>>352234
Там жыросиськи второго размера и борода
607 2352457
В одном из прошлых тредов кто-то как-то обмолвился, что сейчас за использование функций-фабрик могут отхлестать ссаными тряпками.
Вопрос: почему? Ведь функции-фабрики можно для удобства по-разному назвать. Если такая фабрика бросит исключение (например, при попытке получения какого-нибудь ресурса) это исключение возникнет в функции-фабрике, а не в конструкторе, и его можно будет спокойно обработать.
Код для примера
https://0bin.net/paste/MZZRUmdk#dk7zaNNiLH4cyhJbelE9OGm0K3WuFmgqg+JQnPoRbFk
Где подводные?
608 2352468
>>352457

> Где подводные?


В оптимизациях. Изобретаешь велосипед вместо конструкций языка - отсекаешь возможность оптимизаций.
609 2352470
>>352457

>Ведь функции-фабрики можно для удобства по-разному назвать.


+15 строчек в документации.

>Где подводные?


В написании дополнительного кода.
610 2352534
>>352457

>Вопрос: почему?


Потому что конкретному ананасу не нравятся фабрики.

>Где подводные?


Нигде, если проект твой — пиши как удобнее. Если не твой — пиши как там принято.

>>352468
Давай пруфай чего он там отсекает или отсеку тебе за щеку.
611 2352538
>>352470

>+15 строчек в документации.


### create()
Builds class Huita.
@throws: ProizoshlaHuita
612 2352564
>>352538
Причина? Отличия?
613 2352574
>>352457
Таскать фабрику нужно будет вместе с объектом по всему коду. При этом тебе придётся закрыть часть конструкторов порезав интерфейс. Смысл есть только если Foo это ресурс, добываемый каким-то хитрым способом, о чём должна знать только фабрика. А ради исключение такой педалить точно не стоит.
614 2352663
>>352159
Так никто внятно и не ответил
"Эксперды" ояебу

>>352457

>использование функций-фабрик


Надо идти от задач, а не слушать долбоебов. Named constructor позволяет:
1. вместо 10 разных Xynta::Xynta иметь нормально проименнованные Xynta::fromSosach, Xynta::fromForchong и т.д.
2. зафорсить аллоцирование объекта только на куче (в shared_ptr)

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


Щито? По описанию похоже что ты не знаешь про function-try-block (https://en.cppreference.com/w/cpp/language/function-try-block --- просвящайся), хотя ловля эксепшонов в конструкторе нужна НУ ОЧЕ редко

>>352534
Двачую

Салтовка-кум
615 2352723
Пишу архиватор. remove.cc отвечает за удаление файлов из архива. Насколько платформонезависимым, по вашему мнению, является такой жадный способ выгрызания кусков из середины файла?
616 2352728
>>352723

>char ⚹⚹argv


Да иди ты нахуй
617 2352729
>>352723
Вот куда ты из Си-треда сбежал.
618 2352734
>>352723
Чухан.
619 2352735
>>352728
Спокойно, я это все еще переделаю. Пока что функции addToArchive, extractFromArchive, removeFromArchive и listArchiveContents вызываются прямиком из мейна. Потом будет интерактивщина, чтоб один раз закешировав все Entry делать множество операций, и естественно я приду к другому интерфейсу. А пока я завернул это говно в Args. Правда, оно какого-то хуя не хочет работать с ranges::алгоритмами, хотя begin и end возвращает полноценные указатели. Хуй знает, чего ему в iterator_traits не хватает, заебался разбираться в логах.
620 2352738
>>352723
Ебать, отдельные еще и методы iterateDrisnya. Сделай кастомный итератор и пронзи своим STL небеса!
Screenshot from 2022-05-08 18-15-40.png68 Кб, 733x557
621 2352742
>>352738
Уже делал подобную пиздень на работе. Тогда придется очень много говна писать и на инпут, и на аутпут. Не хочу.
622 2352744
>>352742
Ты специально скринами показываешь, чтобы код не скопировали?
623 2352746
>>352744
Я просто хуй его, как на pastebin несколько файлов залить. Ну, а это последнее почему бы и не скрином, тут же пара строчек.
624 2352759
>>352663
Ты тупой и не можешь прочитать, что в стандарте написано про virtual функции may have and destructor must have?
625 2352769
>>352663

>1. вместо 10 разных Xynta::Xynta иметь нормально проименнованные Xynta::fromSosach, Xynta::fromForchong и т.д.


Шаблоны нинужны, да. Ты наверное ещё в название меременных тип вписываешь, ка диды из Микрософта советовали.
Screenshot from 2022-05-08 18-55-17.png64 Кб, 799x675
626 2352806
>>352723
ай бляяяя, перемудрил и обосрался с еофом
627 2352809
>>352759

>Ты тупой и не можешь прочитать


Тупые тут местные эксперды, которые как раз несут хуиту

>>352769

>Шаблоны нинужны


Мань, шаблоны не помогут, когда у тебя реализации внутри разные
628 2352813
>>352809

>не помогут


Про адапторы и композицию ты, конечно же, не слышал.
629 2352816
>>352813
А ты, конечно же, не слышал про именованные конструкторы и теперь пытаешься набрасывать паттерны на задачу, условия которой даже не озвучены
630 2352839
>>352806
А вот если бы писал в ИДЕ, то она тебе бы сказала не писать такой хуйни как конструкторе или ифе. Кста, хули const нигде нет? На производительность кладешь хуй?
631 2352853
>>351781

> >Интересно, как у нас hr зовут?


> А должно быть? Хз, какая-нибудь Алёна или Тимур?


Не, я имел в виду, что мне интересно какая у них должность по штатному.
632 2352855
>>352839
Сейчас бы на плюсах писать ради производительности а не ради киберебли.
633 2352859
>>352083

>Если тебе на нем могут помочь, то тебе уже ничего не поможет.


Почему? Хоть бы пояснил, а не многозначительно накинул дизморали. Если возникают проблемы, то можно создать тему там. Что не так?
В разрабы С++ я никогда и не метил, надо просто программу ВУЗа осилить

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

> базу выучил - начинаешь писать


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

>Поначалу будет хуйня получаться


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

Ты няша ^_^
634 2352871
>>352816

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


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

635 2352877
>>345617 (OP)
Нафига существует поток cin в С++, если им не возможно пользоваться? Нужно сделать простейшую вещь: сбросить как-нибудь этот поток, но нет, сделать это никак нельзя! cin.ignore() работает только, если в буфере есть символ '\n', которого там может и не оказаться, например, если пользователь ещё ничего не вводил. Проверить, пуст ли он тоже нельзя. В чем смысл всего этого, если приходится пользоваться getline? Причем всегда (я не могу придумать случай, когда это было бы полезно, кроме примитивных программок). Т.е. эта хрень cin вообще ни для чего не пригодна.
636 2352885
>>352877
Лабы делать удобно)

ну а вообще не вижу проблемы, не нужно - не пользуешься
637 2352887
>>352877
Предложи альтернативу
638 2352907
>>352885
>>352887
Просто это как-то по-уродски. Есть поток, со своим буфером там, методов у него куча, оператор >> для него перегрузили создатели и т.д. Но пользоваться им нельзя, потому что при всем этом нет простейших средств для работы с ним. Т.е. все сводится к использованию getline(). Альтернатива: нормальная реализация, а не эта хрень. Зачем нужно копировать в строку с помощью getline() ? А потом из этой строки создавать stringstream. Это лишняя трата ресурсов, когда уже есть готовый поток. Да и выглядит это все неестественно.
639 2352914
>>352907
Ты не понял, предложи альтернативу назвав имя уже существующей либо приложив полностью работающий код который решал бы описанные тобой проблемы и который работает хотя бы не многим хуже оригинала. Пока не можешь этого сделать - все твои визги не более чем ослиная моча.
640 2352917
>>352914
ослиная моча тебе читать мешает: проблема с вводом успешно решается с помощью getline. Далее stringstream или функции работы со строками (C-style или string).
641 2352924
>>352917

>Далее stringstream или функции работы со строками (C-style или string).


Ты не понял, я сказал "хоты бы немногим хуже оригинала".
642 2352933
>>352924
При чем тут альтернативы и код? Недостатки есть, и они объективные. Зачем передергивать?
643 2353049
>>352859

>Что не так?


1) Комьюнити говно.
2) Моча говно.
3) Рейтинги.
644 2353071
>>353049

>Комьюнити говно


В чем это проявляется? Мне там помогали пару раз уже. До этого задавал вопросы на stackoverflow. Мне в принципе без разницы, где их задавать, отвечают везде

>Моча говно


Возможно, частое явление на пидорашьих форумах, где могут забанить даже за мат

>Рейтинги


Какие рейтинги?
645 2353135
Поясните нубу, вот допустим я описал тип структуры MyStruct (структура держит в себе только примитивные типы, грубо говоря пару интов), далее если я например создаю локальную переменную в теле какой-то функции:

>MyStruct s = MyStruct{1,2};


Нужно ли предварительно выделять (и, соответственно, освобождать) память, например, malloc-ом?
И еще вопрос, если я например переприсвою значение этой переменной, кинув в нее новую структуру того же типа, куда денется память, которую занимала старая - значение в ней перезапишется, рантайм/ОС как-то высвободит ее или она будет болтаться где-то (грубо говоря, произойдет утечка памяти)?
646 2353138
>>353135
В таком виде структура создаётся тупо на стеке, и выделять/освобождать память не нужно. При присвоении перезаписывается значение. Это всё равно что работать с примитивами наподобие int или double.
647 2353155
Принял решение об уходе из мертвого энтерпрайза в мир С++.
Какие подводные?
648 2353164
>>353155
Если ты джавист, то никаких подводных, будешь жрать говно как и раньше.
649 2353214
>>353155
Когда в Сирии или на Украине дроны крошат людей я знаю что приложил к этому клавиатуру. Приходится как-то с этим жить. Это тебе не сайтики клепать.
650 2353230
>>353155

>Какие подводные?


никаких
наконец то сможешь просто загружать-выгружать классы из динамически загружаемых модулей, а не городить подобия COM на структурах с указателями на функции
651 2353243
>>353214
Когда нейросети обнулят всех прогеров я буду знать, что лично приложил к этому руку и лично мне будет похуй.
652 2353245
>>352028

>С чего начать вкат в системное программирование не линупсе?


начать нужно с оценки доступных ресурсов
как минимум нужно иметь 2 квартиры: одну сдаешь, во второй живешь и 20 лет изучаешь это самое системное программирование, через это время может быть сможешь сделать что то полезное
653 2353278
>>353245
Ого, аж с экрана потекло.
654 2353296
>>353138

> В таком виде структура создаётся тупо на стеке, и выделять/освобождать память не нужно. При присвоении перезаписывается значение. Это всё равно что работать с примитивами наподобие int или double.


А если я передам в другую функцию указатель на созданную таким образом структуру? Она продолжит существование или умрет, когда завершится первая функция, в которой она (структура) была создана?
655 2353308
>>353296
Умрёт, когда завершится первая.
Но если создашь объект через new или malloc(), будет жить, пока не вызовешь delete/free().
656 2353321
>>353308
Т.е. если я хочу из функции вернуть структуру, надо вызывать new или аллоцировать память? Просто

>return MyStruct{1,2};


Делать нельзя?
Или возвращенное значение (структура) будет в стеке вызывающей функции?
657 2353327
>>353321
Можно, структура целиком скопируется.
658 2353398
Чем отличается My_class x; от My_class x(); ?
659 2353409
>>353398
Двумя скобками в конце
660 2353459
>>353398
() это value initialization. дальше ищи сам.
661 2353463
>>353459
В данном конкретном случае () это most vexing parse.
662 2353469
>>353398

>My_class x();


Зачем смайлики добавил?
663 2353478
>>353214
Как вкатиться в дронов для военки? Что нужно знать?
664 2353479
>>353478

> Что нужно знать?


Как лизать очко руководству.
665 2353485
>>353478

>Как вкатиться в дронов для военки?


Можешь попробовать связаться с Аеророзвідкой, но пишут что там итак слишком много народу
666 2353486
>>353398
Первое это объявление переменной, второе функции
667 2353487
>>353478

>Что нужно знать?


Василия Аркадиевича, который о тебе договорился.
668 2353943
Хочу поиграться с ASCII графикой, но мне не нравится виндовый терминал - и окно убогое, и цветов 16 и отзывчивость нулевая...

Кароч, есть самые простые эмуляторы терминала? чтобы:
- дохулион цветов
- можно менять размеры окна, в том числе на весь экран
- реалтайм-рендер
- поддержка юникода и шрифты ttf
- не пердело на холодильниках
- либа была в стиле header only, а не этом ебаном стиле "навалить говна и побольше" (я может в код поковыряю, да и не хочу ебаться с компиляциями, хочу кинуть себе в проект и чтобы работало)

Можно было бы и самому на opengl - но это вечная боль - вывод текста в opengl... Зачем велосипедить..
669 2353951
>>353943
Вместо боли с выаодом текста ты получишь боль с вообще всем.
670 2354163
>>353478
Байтодроч в обработке изображений. Всякие хитрые фильтры, LAGC например для 16 битных равок с тепловизора. Дружить с плисоводами.
671 2354164
>>353943
Тебе нужна поддержка ANSI X3.64 and Xterm 256.
Например, в ConEmu
https://conemu.github.io/en/AnsiEscapeCodes.html
672 2354173
>>353478
Ну как. Меня по факту брали по знакомству, но я того стою. Программирую ещё на питоне, шарпе, жопаскрипте, пишу свои дсл и компиляторы.
673 2354188
Прочитал 3 книги Мейерса, смотрю выборочно C++ weekly, уже на красном поясе, пилю 2 проекта. Но всё равно такое ощущение что я не знаю ещё овердохрена всего. Подскажите путь из такой позиции? Куда дальше раз я сам не знаю, чего я не знаю?
674 2354248
>>354188
Работай иди.
675 2354263
>>354248
Не хочу переезжать с сытных 150к на нищие стажёровские 20
676 2354266
>>354263
Откуда такие фантазии?
677 2354268
>>354266
Фантазии о чём?
678 2354291
>>354268
Фантазии о 20ке, если МРОТ нынче ~14к.
679 2354312
Анончик, какой из стандартных контейнеров гарантирует что если я сохраню указатель на его элемент, то после удаления/вставок - это указатель все еще будет валиден
680 2354314
>>354312
Указатель или итератор?
681 2354318
>>354314
Указатель на объект. То есть я добавляю объект в контейнер, затем беру указатель на этот объект (не итератор), и сохраняю его в другой переменной.

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

Мне не важно время доступа к элементу или порядок их хранения в памяти (можно хоть по всей памяти)
Конечно же вставка-удаление хотелось бы за O(1), но тоже не критично.

Я думаю что возможно std::list, но не уверен
682 2354359
Аноны, go тред полумёртвый, а мне нужна помощь. Как с помощью tcp передавать данные на go сервер? Вот есть например строка, массив и целое, как их передать? Пока кроме преобразования этого всего в строку и дальнейшего парсинга на самом сервере идей нет.
683 2354361
>>354359
Конечно нет идей, ведь это единственное возможное решение.
684 2354376
>>354359
TCP только строки передавать может, так что это единственный правильный вариарт.
685 2354398
>>354359

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


В чём проблема байты отправлять? Или у вас байтоёбство запрещено? Строки же это пиздец как медленно.
686 2354476
>>354359
Protobuf?
x+=y.mp425,4 Мб, mp4,
1280x720, 1:39
687 2354501
Это правда??
688 2354539
>>354501
Нет, он несет хуйню.
689 2354545
>>354501
Полная хуйня. По спецификации эти выражения эквивалентны и не могут разный код генерировать, в обоих случаях там xvalue, никакого prvalue там нет. Вот таких чуханов, в глаза не видевших спецификацию, наслушаются, а потом пишут нечитаемый код-лапшу с багами.
690 2354547
>>354318
Про ради интереса - что за задача такая где тебе такая херня требуется?
691 2354548
>>354545
Он в яндексе еще работает, лол

> xvalue


Тогда может до 11 стандарта было именно так, как он говорит?
692 2354554
>>354548

>яндексе


контора чуханов, сливающих данные пользователей
693 2354559
>>354548
Хочешь сказать он про C++98 рассказывает? Но компилятор из 2022 года в любом случае это оптимизирует даже с О0. Хуйню пиздит в любом случае.
694 2354560
>>354318
Тебе подойдёт list, map, unordered_map. И не подойдёт vector, array, deque.
695 2354562
>>354545

>Полная хуйня. По спецификации эти выражения эквивалентны и не могут разный код генерировать


Че?
>>354501

>Это правда??


Бля, а проверить самому?
https://godbolt.org/z/aWGq3GKKM
Внутри создастся еще один объект (a+b) - тут создается. *this = (a+b) -- тут скопируется
Так что да, он прав
696 2354564
>>354559
Тот чел>>354545 скорее всего говорит неправду.
697 2354566
>>354562

> а проверить самому


Что за хуйню ты написал? У тебя же совсем две разные реализации, естественно они работают по разному. Переопределением ты можешь что угодно накостылять. А дэфолтные операторы так никогда не будут работать.
698 2354568
>>354566
Ты долбоеб?
Какие дефолтные операторы, сука?
У тебя есть operator +. Ты, сын шлюхи, через него пишешь +=. Но. Оператор + возвращает не ссылку, а объект. Поэтому когда у тебя += пишется через +, то объект все равно создастся. Про это и говорит чел в видео.
699 2354570
>>354568
Про move-семантику никогда не слышали, да? Серьёзно на C++98 пишете код? Это просто кринж. Если уж взялся писать свой оператор вместо стандартного, то пиши по человечески, а не говнокод.
Правда или хуйня.mp44,5 Мб, mp4,
640x360, 0:44
700 2354572
>>354568

> Какие дефолтные операторы


Именно про дефолтные операторы он и говорит.
701 2354575
>>345617 (OP)
Аноны помогите. VS сошла с ума.

Дело в том, что перестала видеть вызовы функций в CPP файле. VS выдает ошибку компиляции E0020. Хотя функция находится в том же CPP файле. До этого были глюки в ЗАГОЛОВКЕ где сигнатуры подчеркивались зеленым, но в итоге код компилировался, а теперь это зашло слишком далеко. Реквестирую помощь.
702 2354577
>>354570
Ты долбоеб?
Причем тут move-семантика?
Ты понимаешь, что в видео чел объясняет, что нельзя писать += через +, а вот + через += можно
Допустим у тебя там мув семантика. Но ты все равно создаешь объект, а создаешь ты его через + и как же ты его, долбоеб, сделаешь через move?
703 2354579
>>354577
двачую адеквата
1516072351423.png98 Кб, 2089x224
704 2354593
>>354572
Пикрилейтед. Пусть пиздует читать спецификацию, а не изобретать свой язык на ходу.
705 2354602
>>354593
Ты не Русский? Не шаришь про контекст который он говорит. У вас с другим аноном испорченный телефон получается.
706 2354612
>>354602
А какой контекст? Абсолютно вымышленный пример, не имеющий ничего общего с реальной реализацией этих операторов? Я тоже могу сделать из оператора сложения вычитание и говорить потом что складывать надо минусом, а не плюсом, потому что я так захотел. А факт в том что в реальном С++ эти операторы обязаны иметь одинаковое поведение, за исключением когда объект присваивания сам временный и может быть оптимизирован. Ну и как писалось выше, move и был придуман чтоб не копировать переменные лишний раз. Заканчивайте уже, сейчас зайдёт кто-нибудь из растотреда и засмеёт нахуй всех нас за копирование переменных.
707 2354615
>>354612
Окей. Напиши.
Адекватный пример. Где += будет реализовано через +.
708 2354625
>>354562
https://godbolt.org/z/63h164osx
А так не создастся. :)
709 2354630
>>354625
Ты балбес?
Ты заменил один конструктор (для которого есть принт) на конструктор для которого нет принта. Типа закрыл глазки и ничего там не создается. Крутааа
710 2354633
>>354612

>А какой контекст? Абсолютно вымышленный пример, не имеющий ничего общего с реальной реализацией этих операторов?



Вот именно. Речь про велосепидирование всего что видишь. Особый путь дегенерации.
711 2354638
>>354612
>>354633
Вы реально долбоебы или в чем проблема?
Какое нахуй велосепидирование? Какой нахуй контекст?
Чувак говорит, что нельзя писать += через +. Либо вы показываете пример, где вы так написали и нет лишних операций по сравнению с наивной реализацией (val1 += oth.val1; ....) либо нахуй идите
712 2354645
>>354638
Я тебе уже ответил что препод прав. Но перед этим тебе какой-то дебыч проорал что-то. Препод прав. Тема закрыта. Вопросы?
713 2354647
>>354645
Никаких. Ты зайка. Чмок тебя в лобик
714 2354678
>>354630

> на конструктор для которого нет принта


Ты ёбнулся? Где ты там увидел вызов конструктора? Уноси своего долбаёба, неумеющего складывать числа.
715 2354681
>>354678
похоже в треде швайнокарась

другой анон
716 2354683
>>354678
https://godbolt.org/z/cbefxv684
Что с ебалом, долбоеб?
717 2354685
Я ассемблер не понимаю, не душите своим годболтом плиз((((
718 2354702
>>354476
>>354398
>>354376
>>354361
Всем спасибо, в го треде подсказали использовать json. Вроде очевидно, но я как-то не додумался.
719 2354713
learncpp или ravesli?
720 2354719
>>354575
вопрос закрыт. я ебанулся
721 2354722
>>354713
а ты сам пробовал второе? Мне бы видосов по OpenGL.
722 2354723
>>354719

>VS


>я ебанулся


О, ты тоже это понял?
723 2354725
>>354722
Пробовал, но это было давно. А так параллельно со Страуструпом читать довольно хорошо помогало в некоторых темах. Сейчас год не писал на плюсах, хочу знания освежить прежде чем камбек делать.
724 2354728
>>354723
Если есть получше IDE то поделись. Дело было во мне. Забыл добавить Class:: перед определением фунции как лошара последний.
725 2354730
>>354728
Всё вкусовщина, забей. Дохуя людей знаю которые в итоге тупо в вим переехали и ни о чём не жалеют.
726 2354731
>>354728

>получше IDE


Зачем тебе иде? Сиди на редакторах.
727 2354757
>>354728
Clion имхо получше, и ворочается быстрее. Еще нравится QtCreator, но эти пидоры забанили скачивание для России.
728 2354766
>>354638

> показываете пример


https://godbolt.org/z/f47zzrb6d
Держи, никаких созданий объекта, никаких лишних вызовов конструктора. С -O1 там вообще одна инструкция add. Схуяли мне кто-то там будет запрещать писать += через +? В Си-тред с такой шизой идите.
729 2354780
Как в языке происходит работа с хардварью? Расскажите в общем, я вообще зелёный в этой теме. Как я понимаю, на около высоком уровне это работа с api системы, дёргание драйверов, прерываний и всего такого?
730 2354784
>>354780

> прерываний


На MS-DOS уже никто не сидит.
731 2354786
>>354780

>Как в языке происходит работа с хардварью?


Апишки\асминлайны если их не вырезали еще, язык не может в лоулвл взаимодействие.
732 2354788
>>354766
Ты долбоеб. Ты просто конченный хуесос
Я в ахуе
Ты. Чтобы доказать что-то написал такой шмат говна, что любой адекватный человек захотел бы выброситься из окна
Foo& operator=(Foo&& oth) {
return oth;
}
Реально? С ебалом все хорошо? А мать живая? Оператор присваивания будет возвращать ссылку. И ничего не присваивать. Гениально нахуй
А оператор + будет тоже возвращать ссылку.
И теперь давай напишем F(a, a+b); и сходим нахуй
Потому что какой-то говноед решил что так будет правильно и никто ему ничего не запретит
Ты наглухо отбитый долбоеб. Просто нахуй иди
Ты поменял местами правильный вариант попутно разъебав всюлогику, чтобы доказать, что изначально ты не ошибся.
Признай что ты сын шлюхи и выйди в окно
733 2354790
>>354786

>Апишки\асминлайны


Системные абстракции еще офк.
734 2354791
>>354786

>язык не может в лоулвл взаимодействие.


Доколе?
735 2354794
>>354788

> Реально?


Это называется move-присваивание. Ты первый день с крестами знаком?

> И теперь давай напишем


Пиши move-конструктор сначала или оборачивай в std::move так же, наркоман. Ты сам поставил ебанутую задачу, получай соответствующее решение. И нехуй тут вилять жопой, условия задачи выполнены, с другими требованиями ты следуешь нахуй.
736 2354801
>>354794
Какое move присваивание, сын шлюхи?
Где у тебя присванивание, хуесос?
В move конструкторе идет мув членов класса. Где он у тебя, долбоеб?

>условия задачи выполнены


Охуенно.
Открой буст, сука, открой stl, открой любую нормальную либу. Попробуй найти там хоть один оператор =, который возвращает ссылку. Ты не сможешь, хуесос. А знаешь почему? Потому что так никто не делает. У тебя оператор присванивания портит объект. Напиши просто a+b; Это валидно с точки зрения синтаксиса. И это не должно изменять а. А у тебя меняет. И все потому что твоя мать плотно сидела на герыче во время беременности.
737 2354802
>>354791
Никогда.
738 2354803
>>354802
Это хорошо или плохо?
739 2354805
>>354803
Ожидаемо, абстракция над машиной запрещает (не может разрешить) полное использование всех ее возможностей, из-за этого образуются абстрактные решения в языках, в виде неопределенного поведения и неуточненного поведения.
740 2354809
>>354805
А как тогда инлайн асмр решает эту проблему если запускается всё в той же абстракции над машиной?
741 2354810
>>354801

> move конструкторе идет мув членов класса


Дегенерат, не путай конструктор с присваиванием.
https://en.cppreference.com/w/cpp/language/move_assignment

> Ты не сможешь


Потому что никто в здравом уме не будет через переопределённое сложение переопределять +=. Это же твой ебучий говнокодер из Яндекса такую хуйню из пальца высосал.

> a+b


Долбаёб, результат этой операции - rvalue. Чтобы его куда-то впихнуть тебе надо создать move-конструктором нормальный lvalue-объект, либо сконвертировать его через std::move. Сам объект там ничего не меняет, ты впервые ссылки видишь что ли?
742 2354811
>>354809

>инлайн асмр


Он нестандартизирован, поэтому и решает.
743 2354820
>>354811
Сложно и звучит как какой-нибудь блекхэт.
744 2354825
>>354810

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


По твоей ссылке
A& operator=(A&& other)
{
s = std::move(other.s);
std::cout << "move assigned\n";
return *this;
}
У тебя где мув члена класса? Где, хуесос?

>Чтобы его куда-то впихнуть тебе надо создать move-конструктором нормальный lvalue-объект


Я просто хочу его впихнуть в твою мертвую мать
Ее на земле нет. Поэтому делаю это просто вот так https://godbolt.org/z/nfbjdGoWs
Значение a.x изменилось. ЧТО С ЕБАЛОМ, хуесос?
1555238726567.png16 Кб, 559x295
745 2354831
>>354825

> По твоей ссылке


Чухан, глаза протри. Это просто второй объект перемещается в первый.

> ЧТО С ЕБАЛОМ


Нихуя ты как приложил. Только ты приложил не меня. В оригинальном коде такая же хуйня. Спроси вот у этого хуесоса что с его кодом >>354562
https://godbolt.org/z/9b44PMf1h
Я надеюсь это не ты его писал? Будет просто орево тогда.
746 2354837
>>354831
https://godbolt.org/z/d5drnsa4q
Окей, долбоеб. Вот тебе твое мув-присваивание. Почему а не меняется?
А мне похуй чья это ошибка? Твой охуенный код для а меняет значение. Задачу ты не выполнил. Так что твоя дорога прямо нахуй и в окно
747 2354848
>>354837

> Почему а не меняется?


А схуяли должен? std::move принимает rvalue, идиотина. А "b" у тебя lvalue. Для копирования "b" в "а" тебе надо конструктор копирования определить:
Foo& operator=(Foo& oth) =default;
Это тебе не раст, чтоб ты мог вот так переменную переместить. Ты же понимаешь, что после того что ты пытаешься сделать b должна стать инвалидной? Ты точно кресты не первый раз видишь?
748 2354859
у меня хуй воняет
749 2354903
Как создать конструктор с несколькими обязательными параметрами и несколькими необязательными? И как можно проверить на то, инициализировано ли поле класса.
изображение.png17 Кб, 591x406
750 2354920
Какую красоту делает С++20 госпаде, шаблоны функций не нужны.
751 2354924
>>354920
А потом жмёшь на компиляцию и тебе высерает что не может определить тип где-то в кишках STL. И начинаешь перебирать этот кал в поисках что не так.
752 2354927
>>354920
#define summ(a, b) a + b
#define print(text) std::cout << text << '\n'
изображение.png25 Кб, 691x429
753 2354929
Хотел ссылки поставить для эффективности, он мне хуйню пишет.

>>354927
Макросы для быдла и сишников.
изображение.png18 Кб, 624x392
754 2354932
Ну конечно, ссылки константные. теперь все работает.
755 2354933
>>354929
Хуя дэбил
756 2354944
>>354924
Концепты перед auto

>>354929

>Макросы для быдла и сишников.


>>354933

>Хуя дэбил


Чел прав объективно, любое юзание макросов кроме как для разн версий платформ - хуйня

>>354903
struct a { a(int p1, int p2 = 42){} };
Поля инициализированы все после конструктора. Если нужно именно рациональное, а не дефолтн значение - std::optional, так и поля сделать можно "неинициализированными" и проверять с помощью has_value()

>>354848
move принимает не rvalue

>>354766

>https://godbolt.org/z/f47zzrb6d


ну и здец, noop присваивание, мутирующий +
757 2354945
Дайте советов как изначально писать высокопроизводительный код. Ну конечно же кроме "делать всё конст" да "ссылки принимать".
758 2354948
>>354945
Избегать лишних выделений памяти, копирования (юзать move, передавать по ссылке), меньше индирекции (доступ нанапрямую, а не через цепь указателей), нормальное выравнивание (? вроде же можно делать упакованные структуры, с битами итп, хз в спп или ток си, это сто проц медленней обычн представления), максимально переносить вычисления на компайл тайм (вместо рантаймы, т.е. constexpr например), комптайм полиморфизм > рантаймового, оптимизировать на локальность доступов к памяти (например юзать массив (последовательный кусок памяти) вместо связных списков), ! использовать алгоритмы и структуры данных под задачи, включать оптимизации, fast-math, избегать простоя (типо ожидание ввода, решение - корутины), распараллеливать прогу, юзать статическую линковку вместо динамической, gpgpu, понимать оптимизации компилятора и как не мешать ему...
759 2354992
>>354848
Я немного в ахуе
Ты же сам долбоеб скинул ссылку на move-assing (https://en.cppreference.com/w/cpp/language/move_assignment)
Давай, даун, возьмем код оттуда. Уберем (как у тебя) конструкторы. И оставим только operator=.
И смотри
https://godbolt.org/z/683sqxcqb
Магия. Магия!!!!
Бездарный долбоеб
Ты даже не можешь глянуть что находится в ссылке, которую ты, хуесос, сам и постишь
760 2355008
>>354547
ну типа такого

struct ResourceDataRef
{
ResourceData* ptr;
};

struct ResourceMgr
{
ResourceDataRef Add();

std::list<ResourceData> data;
};
image.png140 Кб, 1781x879
761 2355010
>>354501
Да

>>354539
>>354545
>>354554
Ебать сколько говнокодеров, которые не могут даже проверить
https://godbolt.org/z/3TWe8x5T4

>>354566
>>354572

> дэфолтные операторы так никогда не будут работать.


Он блядь не говорит про дефолтные. Он говорит что нельзя писать this = this + value; при чем тут блядь дефолтные?
Он говорит про перегрузку
762 2355012
>>354570

>Про move-семантику никогда не слышали, да?


Сука, при чем тут move семантика? Просто есть дауны которые пишут в перегрузке операторв:
return this = this OP value;

Тут никакая move сементика не спасет от лишнего присваивания и лишнего вызова перегрузки оператора. Смотри мой код >>355010

Конечно компилятор может подумать что ты даун и убрать... А может и не убрать.
763 2355015
>>354766
Бля... какие же вы долбоебы... Я ебу, и такие вот пишут код?
Да вы даже интерфейс godbolt не осили.

Вам же блядь прямо в окне подсвечивает - какие строчки будут выброшены компилятором, а какие уйдут в код... Бля, одна инструкция... Бля.

>>354766

>там вообще одна инструкция add


Какая нахуй одна, если там вызов конструктора копирования?

Эта перегрузка в принципе не должна вызывать никаких конструкторов.
1604696670502.png456 Кб, 2782x1269
764 2355057
>>355015
Ты траллишь тупостью что ли, почему на скринах какой-то левый код? Нахуя ты написал другой код и сам с собой споришь, дебил? Я тебе даже картинку нарисовал, тупая ты хуесосина.
765 2355168
Помогитепж, не программист вообще, так что не смейтесь
в магазине имеется ассортимент из n флешек. о каждой флешке заданы сведения:название, объëм памяти, цена. напишите функцию, которая возвращает название и цену самой дешевой флешки
766 2355169
>>355168
Это в универе такое задание дали на плюсах??
767 2355174
>>355169
Да, мы ебланы, вы правы
768 2355181
>>355174
Ну создай объект флешка. Создай ему геттеры, которые возвращают его цену и название. Создай вектор флешек, заполни его. Напиши функцию, которая принимает ссылку на вектор, перебирает его и возвращает новый объект флешка (очевидно, потому что два значения возвращать в плюсах нельзя.)
769 2355207
>>355168
Шлёшь условие нахуй и маппишь цены с названиями, профит.
770 2355310
Аноны, как бороться с "error LNK2001: unresolved external symbol" для моего же кода? Один класс внезапно перестал линковаться. Если копипастом переношу код из .cpp в .h и вставляю после объявления класса, то всё работает, с кодом в .cpp — нет. При этом при компиляции в консоли я вижу что он компилирует этот .cpp, но один хуй выдаёт ошибку линковки. Сама IDE никаких ошибок не показывает и видит код в .cpp. Что он хочет от меня? Как понять что не так?
1533458972654.mp45,6 Мб, mp4,
1280x720, 1:21
771 2355376
Подскажите плиз. Мне нужен контейнер, чтобы можно было по key брать value, но в то же время чтобы этот контейнер можно было отсортировать по value.
Сначала я стал использовать QMap<QString, MyStruct>, но оказалось, что он сортирует только по key и только по алфавитному порядку, что мне не подходит. Потом попробовал QVector<QPair<QString, MyStruct>>, но из него брать содержимое геморно, приходится перебирать весь вектор, хотя его вроде отсортировать можно.
Что делать? Существуют ли вообще такой контейнер типа QMap, но который можно отсортировать по value?
772 2355390
>>355376

> Q


Мы не понимаем на петушином. Попробуй использовать что-то, где нет этой буквы в названии.
773 2355392
>>355390
Поймёшь, если вместо Q будет Z?
774 2355399
>>355390
Электроноговну неприятно
775 2355400
>>355392
Хотя бы три буквы std должны быть там. Если не такой как все, то boost.
776 2355403
>>355399
Даже элетрон лучше того кала, xml + стили — очень хорошее решение для быстрого и красивого интерфейса, а для производительности wasm есть. Qt — просто самая отвратительная либа для крестов, изобретающая велосипед везде, куда смогла дотянуться.
777 2355418
>>355403
Давай своё экспертное мнение насчёт QML
778 2355420
>>355390
Ну подставь вместо "Q" "std::". Та же хуйня, тот же вопрос. Как сделать то? Я пробовал гуглить, там кроме вектора с парой внутри ничего не предлагают. А мне че то не хочется такую конструкцию юзать, как то уродливо выглядит.
779 2355423
>>355376
https://en.cppreference.com/w/cpp/container/map
третий шаблонный параметр - компаратор
передай в него лямбду которая нужным образом сравнивает объекты
780 2355434
>>355423
Я пробовал, не получилось. Ругается, что не определен operator-. Пока не разобрался, хули ему сдался этот минус.
И я вообще не уверен, что мапа отсортируется по value. Мне кажется, этот компаратор подействует только на сортировку по key. Ну то есть map он итак по дефолту сортируется по key, просто ты дефолтный компаратор заменяешь своим.
781 2355436
>>355403
Т.е. на петушином ты всё-таки понимаешь?
782 2355461
>>355376
Boost multiindex
783 2355476
>>355376
если ты помнишь теорию реляционных баз данных что в вузике учил, то поймешь что для решения этой задачи нужно сделать 2 структуры поиска, если бы это была табличка в субд то ты навесил бы на ее 2 индекса, главный и вторичный
ну а как сделать похожее на крестах для структуры в оперативной памяти, сам уже сообразишь, надеюсь
784 2355477
>>355461
скорее ему надо boost.bimap
а вручную это обычно делалось через 2 мапы: std::map<X,Y> и a std::map<Y,X>
785 2355479
>>355476

> в вузике учил


Чё бля?

> 2 структуры поиска, если бы это была табличка в субд то ты навесил бы на ее 2 индекса, главный и вторичный


Это чё такое-то вообще?
786 2355488
>>355477
А как эти две мапы синхронизировать?
787 2355561
>>355057
потому что ты долбоеб, внимательно посмотри на operator+() - тебя за такое в продакшене кастрируют. Потому что этот оператор должен быть константным. Нахуя ты модифициуешь сам класс в нем?
То есть ты в принципе всю логику написал неправильно (попробуй написать Foo c = a + b и посмотри что будет в a.

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

И все это ради того чтобы не писать правильно operator+=().

Повторю, если писать operator+=() правильно, то никакие move не нужны, там в принципе нет никакого выделения памяти. И не должно ничего выделяться.

Память выделяется, если ты шизоуебан, пишешь this=this+value. И вот это уебанское решение ты подпер своим костылем move.
788 2355563
>>355561
Соси хуй, дегрод. Я не менял поведение оригинального кода, на этом вопрос закрыт. И не должен был, задача была оптимизировать создание временного объекта - это сделано.

> если писать operator+=() правильно


Спроси у того питуха из Яндекса почему он решил не писать его правильно, а переопределять через переопределённый operator+. До меня-то ты нахуй доебался, шакал? Естественно со стандартным operator+ это всё пишется без костылей и временных объектов.

> Память выделяется, если ты шизоуебан, пишешь this=this+value.


Уебан, она выделяется при возврате результата этого выражения из метода, а не от наличия этого выражения. У тебя rvalue кастуется в lvalue через вызов конструктора, мудила. Если ты сам пишешь некорректный код с созданием временного объекта вместо явного запрета делать это, то это проблемы твоего говнокода.
789 2355568
>>355563

>Спроси у того питуха из Яндекса почему он решил не писать его правильно, а переопределять через переопределённый operator+.


Ты долбоеб? Он говорит, что так делать не стоит именно из-за создания объекта
operator+ можем быть определен через +=
Но += не можем быть определено через operator+
И объясняет почему. Конец блять. Вы из какого-то видоса для школьников/студентов развели пиздец какой срач. Причем в видосе все и объяснено
790 2355571
Ебать тут у вас забористая шиза, давно я так не проигрывал.

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

>rvalue кастуется в lvalue через вызов конструктора


тут перетолстил уже
791 2355768
Пара тупых вопросгв по asio.
1) Я правильно понял, что при смерти сокета другой компьютер не узнает о том, что сессия всё и будет по таймауту отрубаться?
2) Если я сделаю connect к тому же ip/порту к которому уже подключился, то мне вернётся копия сокета? И теперь если я буду писать парллельно в них, то данняе перемешаются?
792 2355779
Какие же плюсы пиздатые, господи...
793 2355783
>>355768
А вообще мне нужно отправлять пакеты, но с подтверждением доставки. Если подскажете как это правильно делать, то буду рад
794 2355784
>>355783

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


- Клиент: Привет!
- Сервер: Привет!
- Клиент: Вот тебе данные: "КАКОЙ-ТО БОЛЬШОЙ КУСОК ДАННЫХ", а вот их хэш: 0x12345678.
- Сервер: Принял данные, а вот их хэш: 0x12345678.
...
- Клиент: Пока!
795 2355790
>>355784
Т говоришь юзать udp? Но там же 100500 нюансов. Я заебусь писать это всё так, чтобы оно везде хорошо и быстро работало. А еще файлы через udp одним паке ом не отправить
796 2355795
>>355790
Это тсп.
797 2355797
>>355795
Ну тогда у меня остаются те же вопросы. Как одновременная отправка нескольких пакетов одному компьютеру будет происходить? Оно вообще будет работать?
798 2355799
>>355797

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


Очередь произойдет.

>Оно вообще будет работать?


Работает же.
изображение.png14 Кб, 1888x58
799 2355812
Но при этом пик (кстати для write такого условия нет). То есть если один пакет уже отправляется, я хочу отправить второй, подключаюсь, от сервер у себя создает уже другой поток из которого я могу читать независимо от первого?
изображение.png14 Кб, 1888x58
800 2355817
>>355812
А для async read some такого условия тоже нет. Хммммм.
801 2355820
>>355817
И даже если считать, что пока выполняется один read второй ждет, всё равно им нужно иметь разные потоки, чтобы порядок был сохранён и каждый считал своё
802 2355888
Как наиболее эффективно удалить n байт из определённого места в бинарном файле и после сдвинуть весь контент идущий после него на позицию начала удалённого куска?
803 2355902
>>355888
Перезаписывая партиями байт, размер партии к сожалению подбирается только экспериментально, слишком много нюансов.
804 2355906
К блокировке ютубчика готов.
805 2355909
>>355902
Блоки по 512 байт, это я тар архиватор пишу. Просто думаю как сделать удаление файлов максимально оптимальным.
806 2355912
>>355906
Умница, теперь начинай готовиться к блокировке интернета и выкачивай СО. После можешь перфокарты начать скупать.
изображение.png79 Кб, 1354x416
807 2355914
>>355912

> начинай готовиться к блокировке интернета


Уже в процессе
808 2355923
>>355461
>>355477
Короче проблема решилась гораздо проще. Просто поменял местами key и value в QMap, получился QMap<MyStruct, QString> который и отсортировался автоматом по MyStruct. А уже из QMap можно брать и по key(value) и по value(key), как угодно.
809 2355924
>>355914
Ты дебил?
810 2355925
>>355923
А зачем QMap, если есть std::map
811 2355926
>>355924
Нет, а что?
812 2355930
>>355926
А нахуя тебе весь этот шлак когда в лучшем случае работать будет только I2P?
813 2355934
>>355930

> в лучшем случае


Ты сам ответил, есть лучшие случае, есть худшие, есть средние, алгоритмы не учил чтоле?
814 2355935
>>355934
Я то учил, а вот у тебя с логикой проблемы конкретные.
815 2355938
>>355925
А из std::map можно брать key по value?
816 2355940
>>355906
Лучше бы порево с конями качал.
817 2355941
>>355940
Лучше бы Метро-2033 переигрывал/читывал.
818 2355942
>>355941
Сейм, но книги по ведьмаку.
изображение.png8 Кб, 312x192
819 2355943
820 2355944
>>355942
Сразу к респауну приготовился? Тоже неплохо, молодец.
821 2356011
Если прога довольно хорошо нагружает процессор (поток) то в какую сторону прежде всего смотреть? Математики особой не происходит, итерируюсь рекурсивно по директориям, читаю контент некоторых файлов.
822 2356038
directory_iterator всегда начинает обход со скрытых файлов или как-нибудь ещё бежит? (те что в линупсе с точки начинаются, ну).
823 2356059
>>356038
Нет.
824 2356060
>>356011
Рекурсия и циклы потребляют все время, которое им дают.
825 2356071
>>356060
Или которое для них не ограничивают?
826 2356079
>>356071
1) Как ты собрался это делать?
2) Зачем это делать?
827 2356081
>>356079
Я не хочу ничего ограничивать. Я пытаюсь понять проебался ли я где-нибудь в коде или нет.
828 2356082
>>356081
Посмотри на файловые менеджеры и менеджеры процессов, посмотри сколько они потребляют ресурсов, посмотри сколько потребляет твоя программа, если больше и логика обработки данных небольшая, то ты проебался. Если программа однопоточная, то забей на потребление времени.
829 2356182
Есть ли способы выйти из множества вложенных циклов быстро, кроме как использовать goto?
Может есть способ выйти из функции при этом сразу зайти в другую при выходе.
А то заебало флаги городить и проверять.
И я не пойму что такое callback функция
830 2356190
>>356182
Вынести множество вложенных циклов в отдельную функцию и делать return?
image.png63 Кб, 608x497
831 2356205
>>345617 (OP)
Доброго дня, аноны! Я в проге новенький, поясните, можно ли так делать? Из функции снова вызывать эту же функцию снова. А то goto - это очень дурной тон, насколько я знаю, но иных вариантов прекращения выполнения функции (или передачи управления предыдущей функции) в центре кода я не знаю.
832 2356206
>>356205

>Из функции снова вызывать эту же функцию снова.


Рекурсия.

>А то goto


Лучше готу, чем рекурсия.
833 2356208
>>356206
Касательно рекурсии такой вопрос: если я 10 раз введу данные неправильно и 10 раз вызову функцию саму из себя - чем это чревато? Жор памяти?
834 2356209
И почему рекурсия хуже, чем goto? Я сколько не сталкивался с описанием гото - будь-то комментариями в интернетах или словами преподов - его все рекомендуют избегать.
835 2356211
>>356208
Да, жор памяти, сделай цикл и булеву переменную о том что данные не правильно введены.
Когда ты вызвал функцию считывающюю и проверяющую правильность данных она должна эту булеву переменную пометить, типо если правильно, то тру, а если не правильно то фолс. Патом когда программа из функции выходит, то цикл проверяет булеву переменную, если она тру то выходит из цикла, а если фолсе то опять функцию вызывает. Ну или сделай что бы функция не флажок меняла, а возвращала значение true или false, в результат от правильности или не правильности ввода данных. И помести в while(!имя_функции());
836 2356213
>>356211
Спасибо, пойду мозговать.
837 2356215
>>355906
Создай раздачу пожалуйства. Много интересного.

Препод сказал что Concurrency in Action это не оч.
838 2356276
>>356211
А если я сделаю функцию типа Int, по центру кода сделаю проверку условия, и при выполнении этого условия буду вызывать return xxx - правильно я понимаю, что return завершает выполнение этой функции, и сколько там кода дальше написано - не важно?
839 2356291
Что за ssize_t? Я либу какую то в qt юзал, всё нормально собиралось. Перенес на винду в visual studio и qt tools и теперь ошибка ssize_t неизвестный идентификатор
изображение.png9 Кб, 931x86
840 2356299
Как он нашел 17, если ее у меня нет, а только 20?
841 2356301
>>356291
<sys/types.h>
842 2356302
>>356299
Как же хочется pip install и всё. Было бы расширение норамльное для vs, так нет. Только для 17 и 19 версии
843 2356303
>>356302
Или как на linux
844 2356305
>>356299
Используй vcpkg.
845 2356309
>>356301
Не помогло. Ничего из #include <sys/types.h>
#include <stdint.h>
#include <stdio.h>
846 2356313
>>356309
Есть только SSIZE_T. Сделаю define, потом разберусь
847 2356314
>>356305
Спасибо
848 2356315
>>356313
А нет, не сделаю. SSIZE_T это не тип
849 2356316
>>356309
Вообще это нестандартный тип, из posix, он может как быть, так и не быть.
850 2356317
>>356315
Попробуй typedef long ssize_t;
851 2356318
>>356317
Ты на Си пишешь? Есть же using.
852 2356330
>>356318
Никакой разницы, только сахарный диабет быстрее наступит.
853 2356339
>>356330
Про using даже Мейерс писал, маня.
854 2356349
>>356317
Спасибо
855 2356350
>>355820
Бамп
856 2356414
>>354593
Чел, так там и написано что он говорит, буквально слово в слово. Пиздуй учить английский, лол.
857 2356425
>>356414

> на видосе говорит "не эквивалентные выражения"


> в спецификации "expression is equivalent"


Действительно, слово в слово.
858 2356446
У меня есть много функций и методов, принимающих структуру из двух флоатов (vector2f), есть ли смысл передавать их через ссылку, или лучше во всех случаях передавать по значению? Собираю проект под 32 онли
859 2356473
>>356425
Чел, не включай дурку, хуй на видео говорит о том что в одном случае E1 эвалюируется единожды, в другом - дважды (без оптимизаций).
860 2356474
>>356446
Всегда по значению, всё в кешлайне бесплатное. Но могут быть варианты в зависимости от того откуда ты эту структуру взял, может быть эффективнее переместить её в метод.
861 2356476
>>356473
По второму кругу пойдём, да? Одного раза не хватило обоссать?
862 2356489
>>356476
Зависит от твоей емкости и готовности принимать еще и еще.
863 2356559
Пизда, я чуть не умер. Пойду дальше про паттерны читать, а то так сложно получилось, шо пиздец просто. И мне кажется, что я все таки многовато инфы кеширую.
https://pastebin.com/8t47Pw3k
https://pastebin.com/KRdzbPfk
https://pastebin.com/AB6G10H9
https://pastebin.com/DDjKwF4N
864 2356580
>>356559

>pastebin


Боишься спалить свой гитхаб со своей омежной аватаркой омежки?
865 2356585
>>356559
Ну и пиздец же. Алсо, советую переменные называть одной буквой, тогда вообще никто нихуя не поймёт в этой лапше ифов.
866 2356598
>>356559
На гитхаб закинь, глаза вытекают же.
867 2356604
>>356580
Сыш, ты бы меня, гигачеда, вживую увидел, у тебя бы голос задрожжал, а твоя тян сама попросилась бы ко мне в Москвич.
>>356585
Если ты про test.cc, то это чисто для проверки работоспособности бэкенд части, я еще нормальную программулину на ncurses планирую сделать. Или ты про лесенки в archive.cc без фигурных скобок? Алсо, главной проблемой считаю наличие лютого хардкода с отрицательными оффсетами, в нескольких методах сразу. Это надо как-то капсулировать. Ну и в принципе sync-методы у меня разраслилсь маленько, надо рефакторить. Алсо, я забыл почистить deletedFolders после синка.
>>356598
Закину как-нибудь.
868 2356608
>>356604
Ошибаешься. Что я, что моя несуществующая тян класть на тебя хотели.
869 2356773
Тут кто-нибудь пользуется модулями? Как сделать чтоб инклюды из интерфесного файла можно было использовать в .cpp? Я пока только два варианта вижу - дублировать инклюды в .cpp или писать весь код в интерфейсе .ixx.
870 2356793
Какой канон обмена информаций между очень разными классами? Например сервер должен считать с сокета и вывести в форму. У меня обработчик сервера это класс. Мне в него как то передавать указатель на функцию формочки которая выведет сообщение? Заморочно как то
871 2356800
1) Можно ли перенести расширение с одного VS2019 на такой же другой, например не могу теперь найти расширение viasfora на другом ПК в той же VS2019 2) Почему оно исчезло 3) Есть ли ему замена, оно раскрашивает в разный цвет скобки например и легко заметить ошибки
873 2356851
Почему я слышу как язык С используется в высоконагруженных серверных приложениях или ядрах систем. Какие в нем инструменты, которых нет в С++ или даже в С#?
874 2356863
>>356851

>Какие в нем инструменты


Толсто.
875 2356865
Посоветуйте примеры кода хорошие (желательно не огромные в которых несколько дней разбираться) с сложной архитектурой. Я закопался сильно очень и не знаю как правильно написать сложный код, как всё разделять и склеивать там, где это необходимо. Вот мне надо написать простую на словах штуку: синхронизацию с помощью паксоса файлов на диске. Тут нужно и с сетью работать, и паксос в отдельную сущность вынести, и структуру файлов поддерживать, понимать что когда надо засинькать. При этом паксос должен иметь взаимодействовать с синхронизируемым значением, значит полностью независимым его не сделать.
1643774368792.png13 Кб, 1377x139
876 2356884
Это это за говно? Ошибка откуда-то из std::wstring. И как этот кал фиксить?
877 2356886
>>356884
В интернете искать пробовал?
878 2356888
>>356886
Да. Но я уже пофиксил - удалил проблемный, создал новый файл с таким же именем, скопипастил содержимое старого и оно собралось. Что за параша?
879 2356891
>>356888
Ну например символы кириллицы в названии - с вместо c.
881 2356906
>>356899
Формат файла лучше описать таблицей, текст долго воспринимается. Формат файла говно.
882 2356907
>>356906

>Формат файла говно.


Формат файла говно.
фикс
883 2356911
>>356899

>using namespace std;


как детектор
884 2356915
>>356907
В чем фикс заключается?
>>356911
Ой бля, мне эти std::tri(std::chetire(std::ja), std::pidoras) на работе хватает, дай пообщаться с любимой STL-ечкой на ты. Спасибо, что напомнил, кста. Я там в паре мест по привычке написал std::string. ПОЙДУ-КА ИСПРАВЛЮ И УБЕРУ ЭТОТ НАХУЙ НЕНУЖНЫЙ ПРЕФИКС ВО ВСЕХ МЕСТАХ, ДО КОТОРЫХ ДОТЯНУСЬ. И ШО ТЫ МНЕ ТЕПЕРЬ СДЕЛАЕШЬ? А??? А???????
885 2356917
>>356906
Вообще, я думал забить хуй и тупо хранить список пасов со слешами в конце, и тупо строить по ним рантайм-дерево, чтоб в таком же виде отсериализовать обратно. Но это я сейчас все дерево кеширую, а идея в том, чтоб обмазаться паттернами и усовершенствовать это все в будущем, чтоб как-то кусками подгружалось. Максимально жадно. Хотя, можно просто сплошных буферов со своими кастомными вьюхами наделать, уже экономнее выйдет, чем все эти векторы со стрингами.
886 2356918
>>356899
Это вообще уровень джуна или не дотягивает? Мне бы было стыдно за такой код.
887 2356919
>>356918
Каковы твои SUGGESTION?
888 2356920
>>356915

>В чем фикс заключается?


В спойлере.
>>356917
У тебя неопределенный порядок байт, неопределенная кодировка имен файлов, избыточное потребление памяти на формате и т. д.. Для лабы подойдет, для реального кода нет.
889 2356925
>>356920

>В спойлере.


Пиздец, охуенно пофиксил, прям сразу эффект появился.

>неопределенный порядок байт


Вообще-то, fileutils.hh как раз конвертирует endianness.

>неопределенная кодировка имен файлов


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

>избыточное потребление памяти на формате


Это да, особенно в моем примере. Я решил на абсолютных оффсетах в сегмент данных не экономить, чтоб хоть терабайт паковать, но можно какой-то бит придумать, чтоб оно кондишенали работало. Это все еще пересмотрю.
1558109323842.png20 Кб, 1191x220
890 2356926
>>356919
Да там с первой строчки говно какое-то. Нахуя static и лишняя нелинейность кода? Зачем constexpr, если оно никогда не выполняется во время компиляции? Буквально каждую строчку надо переписывать, не говоря уже про то что написано как будто сишником.
891 2356928
>>356926

>Зачем constexpr, если оно никогда не выполняется во время компиляции?


Я там в одном месте numFolders=0 передаю.

>не говоря уже про то что написано как будто сишником


Так и есть. Хотя, я иногда пытаюсь в функциональный стиль.
892 2356932
>>356925

>fileutils.hh как раз конвертирует endianness.


https://github.com/VimDefecator/archiver/blob/6ac9514a1854051295baf9d7b453dabf12144b84/fileutils.hh#L15
https://github.com/VimDefecator/archiver/blob/6ac9514a1854051295baf9d7b453dabf12144b84/fileutils.hh#L28
Вот это? Где тут определенность? Он из машинной преобразует в альтернативную, в итоге образуется неопределенность.

>Остальное - забота фронтенда.


Переносимость между системами нулевая, в одной может быть ютф-8 кодировка для имен, в другой ютф-16 и т. д.. Узнать в какой кодировке было исходное имя очень сложно.
893 2356940
>>356932

>Вот это? Где тут определенность? Он из машинной преобразует в альтернативную, в итоге образуется неопределенность.


Все там нормально. convertEndianness всегда ставит в соответствие least significant byte с последним адресом. На big endian машине вернет без изменений, на little endian - вернет задом-наперед. То есть после сериализации всегда получится big endian, а после десериализации - по архитектуре.

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


Это да, надо как минимум создать для фронтенда геттер-сеттер ендпоинт для дополнительной секции, которая всегда пишется в архив, чтоб продвинутый фронтенд умел в такую переносимость. Мой test.cc не в счет вообще.
894 2356953
>>356940

>convertEndianness всегда ставит в соответствие least significant byte с последним адресом


Он просто переворачивает порядок байт.
895 2356968
>>356953
Нет. Ты переоцениваешь свое умение "видеть" семантику кода за полсекунды.
896 2356979
>>356800
Не хочет инсталиться а через исходники её можно собрать?
897 2356982
>>356940

> всегда ставит в соответствие least significant byte


Ставил бы, если бы ты кастанул правильно. А в твоём варианте просто переворачивает. А вообще у тебя в STL есть платформонезависимый конвертер, нахуй ты велосипед изобретаешь.
898 2356984
>>356979
4.2/4.3 пробовал поставить?
899 2356990
>>356984
Спасибо, установилось
900 2357015
>>356982
Не понял. Но про STL посмотрю, не знал, что оно там есть.
901 2357021
>>356982
Да што я блять кастанул не так-то епт???
902 2357025
>>357021
Фаерболл.
903 2357081
И еще тупой вопрос по ООП и архитектуре. У меня есть класс A который работает с сетью (это не конкретно его цель, но сеть он использует). Есть класс, который занимается еще другой штукой B. И собственно сам класс, который занимается работой с сетью C. В и С должны быть внутри A. Как прокидывать связи между A,B,C. А->C понятной как. Он имеет к нему доступ, может просто дергать нужные функции. А как адекватно взаимодействовать между B и C. Они на одном уровне абстракции. Сделать C членом B не могу, поскольку экземпляр сети должен быть единственным. Просто ссылки делать?
904 2357085
>>357081
И еще хочется уметь в зависимости от данных, которые пришли дергать B. Мне делать коллбеки вверх по иерархии?
905 2357091
>>356276
да после ретурна уже ничего не важно
906 2357094
>>357081

> А как адекватно взаимодействовать между B и C.


Это уже по умолчанию не адекватно. Если С - низкоуровневая работа с сеть, а А - абстракция над ней, то В не должно вообще знать о существовании С. Отправляй из А в С данные, которые нужны С.
>>357085

> коллбеки


Лучше не надо, кидай лямбды как параметр функции. А ещё лучше корутины используй. Но для работы с сетью, опять же, лучше передавать данные куда надо, а не код.
907 2357097
>>357094
A вообще занимается всем по сути. Это такой главный объект программы. B - некая довольно объемная логика, которая тоже использует сеть. Совсем оградить B от C я не могу. Значит буду наверх подниматься, а оттуда уже вниз. Спасибо
изображение.png64 Кб, 1890x797
908 2357100
>>357097
Ну или пытаться делать пик 1 вместо пика 2, но хз чет
909 2357107
>>357100
У тебя дерево зависимостей должно быть. Не пирамида и не кольцо. Сечёшь, чел?
>>357097

> главный объект программы


Очень плохая хуйня. Делай дерево, не гриб ебаный.
910 2357108
>>357107
Хорошо, спасибо верните мне мои однофайловые контесты
911 2357109
>>357107
Лол, что значит гриб?) Это как?
1597333243131.png663 Кб, 1000x707
912 2357110
>>357109
Вот так.
913 2357116
А как лучше связывать объекты, если никто не является друг другу предком? Передавать в конструктор указатели на функции другого класса? Или делать эдакий коннектор, который внутри себя хранить что и когда куда перекидывать и в нём уже все связи разруливать? Что то типо системы событий получится. Я в qt похожее видел
914 2357135
>>357116
Проблемы с менеджментом памяти порешали все шизоидные джава-паттерны. Взаимодействовать с экземпляром объекта должен владелец этого экземпляра, если прям очень сильно надо, то передавать ссылку на этот экземпляр, но стараться по минимуму. Отдавать указатель на себя кому-то нельзя, лучше делать грамотный интерфейс у потомка и взаимодействовать с ним через вызов его методов, передавать только то что ему надо. А ещё можешь получить цикличную зависимость - это вообще пиздец, сразу знай что ты обосрался когда такое получилось и надо серьёзно переосмыслить что ты делаешь.
Алсо, вместо указателей должен быть unique_ptr, когда передаёшь по значению что-то желательно при любой возможности делать move или forward.
движок.jpg63 Кб, 379x426
915 2357155
916 2357158
>>357116
Не слушай шиза>>357135
Их лучше не связывать вообще.
917 2357168
Сап двощ. Чому не могу член передать в ляммду? Приходится писать aboba =&aboba вместо просто &aboba или &this->aboba
918 2357180
>>357155
Игровые движки, да? Пик не имеет никакого смысла.
Их пишут потому, что это тупо интересно, а не чтобы превзойти студии с AAA.
919 2357185
920 2357186
>>357180

>Пик не имеет никакого смысла.


Я один вижу что динозавр орет что-то про Unity и Unreal engine?
Тогда сорян.
921 2357200
>>357116
1. включение
2. умные указатели, реализующие различные модели владения
3. слабая связанность через шаблоны
4. паттерны (банда четырех)
922 2357260
>>357081
>>357116
У вас в голове вопросы не возникают? Например, что говно какое-то получается?
923 2357314
Повторяю вопрос - чем обусловлено использование чистого С для высоконагруженных приложений, что в нем есть, чего нет в С++ или С#?
924 2357329
925 2357340
>>357314

>чистого С для высоконагруженных приложений


Для каких?
926 2357344
>>357260
Почему говно? Может быть сервер, а может быть гуй. Разные объекты без наследований. Как их связывать?
927 2357345
>>357344

>Может быть сервер


Не помню сервера на крестах.

>а может быть гуй


Ивенты.
928 2357353
>>357025
очень смешно, пиздец. Я все еще не понимаю
929 2357401
>>357340
Я этого не знаю.
930 2357436
>>357314

Писать на си вместо плюсов бред. Для низкоуровневых штук 0 разницы. Зато синтаксис приятнее во многом. На си обычно пишут там, где компилятор нормальный плюсовой не завезли
931 2357526
>>357436
Понял тебя. Чувствую, ты человек шарящий. Недавно тут сказали, что красивый код в проектах OpenCL и BOOST. А есть маленькие проекты на гитхабе, по котором можно поучиться писать красивый и эффективный код?
изображение.png3 Кб, 432x37
932 2357529
Что это?
933 2357595
>>357529
Когда подключен дебаггером, то при вызове этой функции тебя в него выкинет на этой строчке. У каждого компилятора свой механизм этого, у тебя на пике чисто MSVC-шная реализация.
image.png38 Кб, 462x974
934 2357649
Сап, крестовый. ВУЗик ебёт прогой на самом лучшем ЯП конечно же я о С++. Надо отсортировать массив работников по фамилии. Ну а по правилам если первая буква одинаковая то сравнивать надо вторую. Но у меня почему-то код не хочет двигать элементы массива структур хоть убей.
Код: https://0bin.net/paste/fE-I3J32#9JfraPh0wdd5a118sjRikedebIsdO3r9oehWfJeJY69
Скрин результата выполнения прикрепляю.
Софт: VS 2022, MSVC
Заворачивание функций и структуры в namespace в headerе не моя прихоть.
Как видите: что-то там сортирует с ебейшим числом пропусков, в чём и проблема, но я так и не понял, какого хуя, но по факту хуй там. Функция вывода даёт массив в том виде, в котором я его заполнял.
Примечательно что первая реализация, накиданная для каркаса, сравнивающая только первые символы, работала очень даже хорошо: https://0bin.net/paste/L2jk6YKV#AT3U11+R1+U3b7hVeqvFm35Dk0TysqJsxeO8YOGKypg
Тут только функция сортировки, а не весь код, но больше ничего не менялось, кроме замены cin на cin.getline() и добавления скипа \n оба изменения чтобы читался пробел.
935 2357652
>>357649

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


Отбой с этим замечанием, в этот раз, почему-то, пропусков сколько и должно быть. До этого же оно мне по 30 раз выводил Skipping. Т.е., сейчас вроде всё верно, но толку всё равно нету, должно быть Алах -> Аллах -> Алллах.
936 2357660
>>357649
Памятка нюфагу:
- Лабы идут на хуй
937 2357868
>>357595
Класс. А почему бы не кинуть исключение?
938 2358090
Ответьте на вопрос пожалуйста. Через месяц надо идти на практику, после буду устраиваться на стажировку/работу. На выбор есть завод, там микроконтроллеры, ПО на c++/c. Так же есть офис, там c#.

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

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

Что делать ? Идти на завод или учить шарпы и идти в офис?
Работа на плюсах у нас только на заводе, либо в говно студии, где клепают визуальные новеллы.
939 2358117
>>357660

> Все идут на хуй


Так что после тебя.
940 2358122
>>358090
Кодить под железо на С это самое дно по ЗП. Если на заводе именно это - сразу нахуй. Если с++, то смотри что за железка и какой уровень абстракции софта. В идеале если железка умеет обрабатывать серьёзные потоки данных (например от радаров, лидаров, камер) и работает под полноценной осью, имеет фронт и бэк.

С C# можно прокачать разработку бэкенд и сервисов, а потом перекатиться на нормальный язык в нормальную контору. Но опять же, если это тупо интерфейс к системе документооборота - то назуй.

За C# платят примерно как за c++, так что оба стула не очень.
941 2358125
>>358117
Прохождение нахуй осуществляется в прямом порядке, начиная с первого пункта. Так что никаких после.
942 2358144
>>357314

>C++


На мой взгляд, там слишком много всего есть. И это проблема
943 2358217
>>358144
В чем проблема? Глаза разбегаются, долго не можешь выбрать?
944 2358219
>>357314
Как и сказал >>358144, С++ жирный.
С банально быстрее. В нём нету ООП и всей этой модной хуиты, он может показаться довольно топорным для тех, кто знаком с Java/C# или ещё более простыми ЯП, но эта топорность вызвана чисто техническими ограничениями компьютеров. И если в иных языках эти ограничения обойдены костылями из коробки, то С перекладывает эту роль на пользователя, где он может поебаться и сделать тем, что есть, придумывая свои собственные костыли, которые, однако, куда меньше херят производительность, так как делают только то, что нужно в конкретном проекте. Это преимущество и С++, но С++ всё же куда гуманнее в этом плане.
>>358125
А я сказал с конца, значит с конца. Меня порядок пунктов слабо ебёт. Аж никак.
945 2358227
>>358219

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


На ходу фантазируешь? Кресты с кодом в си-стиле работают так же быстро как и сам си. Но при этом есть большое количество задач, в которых кресты быстрее си. Ну и вспомни хотя бы какое извращение выдумывали в ядре линукса, чтоб изобрести свой ООП с динамической диспетчеризацией.
946 2358234
>>358219
Ну так ты с любой стороны нахуй идёшь, причём по 4 пунктам из 5.
947 2358237
>>358122
Благодарю за ответ, буду думать.
image.png8 Кб, 325x110
948 2358244
Говнокод или нет?
949 2358245
>>358237
В догонку ещё можно сказать, что на c# будет быстрый старт - открыл студию и пиши код. А вот с c/c++ тебе придётся поначалу тратить до 70% времени на борьбу с линуксом, системами сборки, кросскомпилцией, прошивками, редакторами типа vim, консольными отладчиками и ковыряниями в логах. Остальные 30% ты будешь писать код.
950 2358249
>>358122
Как вкатиться в это ваше кодирование под железо?
951 2358269
>>358249
1. Закончить радиотехнический техникум.
2. Пойти на завод.
2.1. Подписаться на Си тред.
952 2358274
>>358269
Этот план пахнет хуем. Почему я думал что это что-то крутое?
953 2358287
>>358274
Потому что ты смотрел видосики как соевые няшатся с малинками и как робот Atlas весело скачет по коробочкам. На скрепных заводах такого нет обычно. Максимум какой-нибудь слабовичок из семейства STM и FPGA к нему впридачу.
954 2358288
>>358287

>соевые няшатся с малинками и как робот Atlas весело скачет по коробочкам


Ну так это я и хотеть. Я не в скрепной живу, потому повторю вопрос: как вкатиться?
955 2358313
>>356915

>И ШО ТЫ МНЕ ТЕПЕРЬ СДЕЛАЕШЬ? А??? А???????


error: reference to ‘N’ is ambiguous
Твои действия?
956 2358406
constexpr или static constexpr для полей класса?
957 2358421
>>358406
Чел...
А вообще, static стоит использовать только для совместимости с сишкой, пока this self не завезут для статики никогда не завезут.
958 2358422
>>358421
Что чел? Я только ~3 месяца в языке. И что значит только? А что там по статичным мемберам класса?
959 2358426
>>358422

> статичным мемберам класса


Нахуя? Они тебе не нужны, пока ты не соберёшься их в си использовать. Всегда есть лучше решения, чем статика.
960 2358428
>>358426
И какая же альтернатива? Хуярить функциональщину?
961 2358442
>>345617 (OP)
Комрады, посоветуйте нормальные плагины для эклипса. Только поставил, думаю на нее перекатится.
962 2358458
>>358442

>эклипса


Он же загнулся еще 10 лет назад?
963 2358459
>>358458
Тогда посоветуйте нормальную среду.
964 2358460
965 2358464
>>358459

>посоветуйте нормальную среду.


Сегодня вроде нормальная.
966 2358466
>>358464
Сегодня у меня унылая среда.
967 2358473
>>358459
Visual Studio
968 2358475
>>358459
Чел, сейчас фактически только две IDE существует: VS для винды и CLion для любителей опенсорсного говна типа линукса. Ну ещё есть текстовый редактор VS Code для любителей консольки. На этом всё.
969 2358478
>>358475
Винду никто не любит (
справедливо
970 2358484
>>358478
2% вообще странные люди, они ничего не любят, кроме долбёжки в консольку. Про то что можно писать системный код на чём-то кроме С и питона узнали только пару лет назад. Больные люди.
971 2358488
>>358484
Не знаю, я просто хочу комфорта. У нас писали в основном в CLion'е. Ну а мне нужна среда легкая (по ресурсам) ибо часто таскаю нетбук с собой, да и там i3 стоит, не будет гармонии. Хотя я не хейчу остальные Ide или ОС, мне просто так комфортно.
972 2358586
>>358475

>текстовый редактор VS Code


Расширение от мс не может распарсить средний проект на крестах, кланговское расширение выглядит, как говно. Проще сразу саблайм ставить.
973 2358593
>>358488
Я же сказал тебе уже: берёшь nvim и бед не знаешь.
974 2358637

> static



Кратко о том, как распознать явопидора или шарпахуесоса.
975 2358640
>>358478

> Винду никто не любит


Говори винда круто!
Безымянный.png442 Кб, 1290x688
976 2358648
Вот пидоры же, хуйню написали. p++ (или ++p) аналогичен p+=1, я проверил.
977 2358652
>>358648

>Вот пидоры же


Рыбак рыбака
978 2358659
Что дешевле: memset или деструктор+конструктор?
979 2358661
>>358648
А вот тут опять пиздёж, ++p и p++ не эквивалентны, хоть и могут генерировать одинаковый код с оптимизациями.
980 2358685
>>358288

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


Как и всюду: смотришь вакансии, если где-то половина строчек в requirements совпадает с твоими скиллами, то отправляешь резюме. Если нет, то осиливаешь требования.
981 2358740
>>357868
Потому что ты хочешь остановиться и глазами посмотреть состояние программы в определённый момент. Это именно функция для отладки, не для обработки ошибок или чего-либо другого.
982 2358791
Безопасно ли записывать данные в объект по его адресу напрямую? Хочу с сети получить структурку и сразу записать ее без конструкторов и тд. Если бы я юзал просто struct или class без полей, то можно. Но мне хочется отнаследоваться от абстрактного класа и хранить вектор наследников. Не возникнет ли тут проблем?
983 2358792
984 2358796
>>358792
Какое элегантное решение есть?
985 2358799
>>358791

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


Шиз что ли? Просто бери структуру с alignas и пиши в неё байты. А структуру хоть залупой оборачивай.
986 2358800
>>358796
Могу упороться и написать структуру чисто для записи и уже класс с конструктором от этой структуры, который буду в вектор писать. Но выглядит немного некрасиво
987 2358833
>>358659
Бамп. Речь о структуре с массивами чаров и интами.
988 2358869
>>358791
Всё, что не-POD, близко нельзя подпускать к read/write/memcpy и чтению сырых байт их экземпляров. А то ненароком vptr перетрёшь или залезешь на другое поле. Выдели отдельную структуру, оберни её в pragma pack и читай в неё хоть из файла, хоть из сети.
989 2358870
>>358869

>memcpy


Да бля, вы издеваетесь что ли? reintepret_cast нельзя, memcpy нельзя, что можно то?
990 2358871
>>358870
Можно взять два целых числа от 0 до 10 и сложить их, всё остальное - UB.
991 2358876
>>358871
На 4-битном процессоре это тоже UB
992 2358879
>>358876
На таком процессоре стандарт не реализовать.
993 2358939
>>358593
Я neo попробовал, мне зашло лучше чем micro, разберусь сегодня какие еще плагины накатить и радоваться буду.
Добра тебе анон.
994 2358993
>>345617 (OP)
Сап. Qt Creator не доступен для скачивания в рф, удалось скачать open source версию ide, но там отсутствует комплект для c++. Где его взять отдельно без гомоебли с vpnнет такой возможности
995 2358994
>>358993

>удалось скачать open source версию ide


>но там отсутствует комплект для c++


Что ты скачал?
996 2358999
>>358994
Установщик
Qt-creator-open-source-windows-x86_64-6.0.1.exe
997 2359018
Как сделать так, чтобы VS Studio 2019 сохранял свёрнутые функции?
998 2359024
>>359018
Что?
999 2359040
>>359018
Сворачиваешь функцию, нажимаешь ctrl+S ?
1000 2359047
>>359040
а потом при открытии получаю где свёрнуто где нет, а иногда вообще ничего не свёрнуто.
1001 2359055
Здравия желаю, аноны!
Подскажите, как в плюсах можно написать консольный ввод так, чтобы символов не было видно или они выводились звездочками? Знаю про С-шный getch и putch('c'), а в стандартных библиотеках С++ есть что-нибудь с подобным функционалом? Допустим, чтобы я сразу мог писать в стринг, а не в массив чаров, потом стринг приравнивая с этому массиву
1002 2359060
>>359047
Ну хуй знает, попробовал посворачивать в разных файлах, сохранять и перезапускать студию - вроде при открытии всё остаётся как было при закрытии
1003 2359144
>>358993
Тебе нужен сам фреймворк а не иде. Последний оффлайн инсталлер у них был 5.12. Поищи версию с мингв.
1004 2359338
В каком ide есть функция автодобавления инклюдов?
1005 2359340
>>359338
Нет.
1006 2359361
>>359338
у меня clangd это умеет
в вижаке тоже такая штука есть, только хзы она там из под коробки, или её как то прикручивать надо
1007 2359399
>>359338
В старых ВС прикручивалась решарпером, сейчас хз, не работал.
1008 2359420
>>358870
Как я сказал, то можешь всё делать только с POD объектами. Если у тебя https://en.cppreference.com/w/cpp/named_req/StandardLayoutType, то спокойно издевайся над байтиками.
1009 2359468
>>359399
Можно Visual Assist поставить.
1010 2359478
Решил на днях начать разбираться в новом сорте говна

Будучи избалованной C#-макакой, привык к тому, что интеллисенс в Visual Studio на ходу объясняет, чё делает классы/методы/переменные, к которым я пытаюсь обратиться, чего теперь пиздецки не хватает, см. пикрел. (Методы на картинках абсолютно рандомные, чисто чтобы показать, о чём я.)

Есть, конечно, https://en.cppreference.com с вроде бы годными рефами, но очень хочется увидеть их прям в редакторе, не копипастя название метода в окно браузера. Находил какие-то упоминания doxygen, но как заставить его работать с интеллисенсом для стандартных библиотек так и не разобрался.
1558634279138692575-converted.gif5,2 Мб, 200x249
1011 2359486
>>359478
Собственно, вопрос: как пофиксить?
на данный момент я использую Visual Studio, но мне в целом не принципиально до тех пор, пока мне не нужно слезать с винды.

Гифку с попугаем в качестве оплаты прилагаю.
1012 2359565
>>359486
Никак. Для дотнета документация тянется из xml doc комментов (если их кто-то написал) или метаданных сборки (куда она попадает из комментов).
Для плюсов такого никто не писал, хорошо хоть плюсовый интелисенс научили работать с док комментами, так что если в какой либе (бусте например) они будут, то в подсказку потянутся, а так - увы.
Пользуй cppreference, там все что надо есть, всё равно раз только начал, без подробностей не разберёшься, или протопчешься по всем граблям.
1013 2359567
>>359565
На cppreference есть несколько вариантов для скачивания документации, один из них это документация от doxygen - нельзя никак заставить интеллисенс тыкаться в неё?
Если и это не прокатит, есть ли возможность в вижуал студии перенаправить "Search online" (пикрел) с богомерзкого бинга на cppreference?

С меня шебм с котом.
bing.png35 Кб, 800x434
1014 2359603
>>359567
Попробуй поменять тут.
1015 2359633
>>358313
Не юзать using namespace в хедерах, вестимо. В рамках одного cc такое можно хоть каждый раз ловить и фиксить.
1016 2359679
>>359567
Про скачивание знал, но думал, что там только html и pdf, про doxygen не знал. Надо расширение для студии поискать, может и есть, чтобы внешний док подхватывать.

Про поиск тебе >>359603 ответил.
Screenshot from 2022-05-20 10-56-44.png21 Кб, 373x309
1017 2359693
Сап, плюсач. Это нормально, что у меня эта пиздища не компилится на clang-10? На какие-то коллаблы-хуёллаблы ругается, ебу шо не так...
1018 2359695
>>359693

>На какие-то коллаблы-хуёллаблы ругается, ебу шо не так...


Лог ошибок.
1020 2359700
>>359699
Пиздос кал. И после такого вы ещё что-то пиздите на VC++?
1021 2359702
>>359700
В мс не знают о существовании крестов, как и о си.
>>359699
Хуй знает, собирай гссом.
1022 2359708
>>359702

>Хуй знает, собирай гссом.


Не я решаю. В конторе clang-10, так что пока так выживаем. Штош, буду юзать projection, всем спасибо.
1023 2359770
Блять, как же неудобно, пиздец просто, почему плюсы так долго рожают это все, что я не доживу, по ходу? Хосспаде, как же хочется писать:
std::set_intersection(std::views::keys(map), requiredKeys, std::back_inserter(result))
1024 2359945
>>359693
Верстю плюсов нужную указал?
1025 2360205
Я создаю функцию main, а в ней
int i = 0;
int n;
int* ptr = &n;

Затем в бесконечном цикле 1) инкрементирую счетчик i, указатель ptr и мусорное значение по указателю ptr и 2) вывожу всех троих в cout.

В результате получаю непредсказуемо от 1200 до 2200 проходов цикла, причем последние несколько значений по разыменованному указателю перед сегфолтом всегда одинаковые. Как объяснить такой разброс? Больше в программе ничего нет.
1026 2360212
>>360205

> инкрементирую указатель ptr


> Как объяснить такой разброс?


Ты вообще вменяемый? Тут нечего объяснять, оно работает ровно как и должно - неопределённо.

> UB


> непредсказуемо


Ахуеть просто.
1027 2360215
>>360205

>получаю непредсказуемо


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

>Как объяснить такой разброс?


Неопределенное поведение.

>Больше в программе ничего нет.


Без оптимизаций собери, у тебя будет 3 вывода. Зависит от системы и компилятора, но скорее всего так и будет на x86_64 clang\gcc, возможно и со студийным.
1028 2360243
>>360215
>>360212

>неопределенное поведение



Уи нид ту го дипер, я пытаюсь конкретизировать это определение, насколько возможно. Скажем, если указатель наоборот декрементировать, я получаю итераций минимум на 3 порядка больше. Также я никогда не получаю меньше 1000 итераций в первом варианте. Собственно меня интересует, что конкретно происходит в этот момент.
>>360215

>Без оптимизаций собери, у тебя будет 3 вывода.


-fno-builtin попробовал, или это не то? Результаты те же.
1029 2360248
>>360243

> я пытаюсь конкретизировать это определение


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

> что конкретно происходит


Выделенная память кончается, наркоман.
1030 2360254
>>360248

>Выделенная память кончается, наркоман


Почему память кончается иногда после 1200, иногда после 1700, а иногда после 2200 итераций? Одна и та же система выделяет одной и той же программе разное количество памяти прикаждом запуске процесса? От чего это зависит?
1031 2360258
>>360254

> От чего это зависит?


Я ебу на чём ты запускаешь? Спроси у того кто писал твою ОС.
1032 2360260
>>360254

>Почему память кончается


Она не кончается.

> иногда после 1200, иногда после 1700, а иногда после 2200 итераций?


Возможно это связано с аслр.
1033 2360262
>>360260

> Она не кончается.


Кончается read-write участок памяти, попизди мне тут.

> Возможно


Не возможно, а оно и есть. Релокации по дефолту динамические.
1034 2360265
>>360260

>аслр


Во, что-то такое меня и интересовало, видимо.
1035 2360267
>>360262
Четакой едкий, выпей чаю.
1036 2360271
>>360262

>Кончается read-write участок памяти, попизди мне тут.


Но память не кончается.

>а оно и есть


Откуда ты знаешь какая у него система? Может быть там аслр нет?
1037 2360326
Как обнулить инстанс структуры хранящийся в unique_ptr?
1038 2360348
>>360326
⋆uPtr = StructName{}
чем не устраивает?
1039 2360437
>>360348
Это создаст новый и уничтожит старый.
1040 2360444
>>360437
А тебе что надо?
1041 2360451
>>360444
У меня лупа
1042 2360497
>>360444
Хз, я не он >>360326, просто на создание нового объекта и уничтожение старого уйдет больше времени, чем на обнуление старого. Или компиляторы такое поведение умеют оптимизировать?
1043 2360511
Кстати, про уничтожение объектов, можно ли вызывать их асинхронно? Например, чтобы деструктор не задерживал выполнение следующего кода? Просто стало интересно. Может быть есть какие-то нестандартные расширения компиляторов?
1044 2360530
>>360511
То, о чём ты говоришь обычно называют deferred reclamation. Но это уже другая парадигма времени жизни и владения объектами, нежели RAII, который стандартно используется в плюсах. В RAII ты точно знаешь, когда выполнится деструктор и какие ресурсы будут освобождены.
1045 2360559
>>360497
Тогда проще сделать метод обнуления.
1046 2360563
>>360559
Чем вариант ⚹pointer = {} не вариант?
1047 2360681
>>358245
>>358090

В итоге я выбрал научно-производственное предприятие (завод про который я писал). Он связан с разработкой ПО и оборудования для электроэнергетики.

Вспоминаю С++, подтягиваю знания ООП, решаю задачи, учу алгоритмы, разбираю библиотеку STD и умные указатели.
Линукс и гит надо изучить.
1048 2360730
>>360681

>Через месяц


>Вспоминаю С++, подтягиваю знания ООП, решаю задачи, учу алгоритмы, разбираю библиотеку STD и умные указатели.


В итоге идёшь нахуй по причине Segmentation fault
1049 2360764
У меня базовый класс. Хочу чтобы все наследники имели одинаковую функцию (по имени), которая должна возвращать разные по типу значения. Такое возможно?
1050 2360776
Поймал себя на том, что вместо даже простейших функций создаю целые классы. Как отучиться от этой пагубной привычки?
1051 2360777
>>360764
Да, если она возвращает std::variant или union.
1052 2360814
>>360776
Используй неймспейсы всегда, пока не почувствуешь что тут нужен класс.
1053 2360880
>>360730
Ну если не баловаться с сырыми указателями, то для сегфолта надо что нибудь нетривиальное сделать. Например сотворить (global) static initialization order fiasco и дёрнуть разрушенный объект из деструктора другого глобального объекта.
1054 2360882
>>360777
Или указатель
1055 2360889
>>360880

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


https://godbolt.org/z/G646v519G
1056 2360952
Я чет туплю, но как сделать нормальный интерфейс для передачи данных пакетами? Если бы всё было фиксированной длины, то ок, но у меня могут быть строки переменной длины. Хочется не писать каждый раз простыню. Правильно ли я понимаю, что оптимальный вариант это перегрузка для каждого типа.
1057 2360955
>>360952
Юзать std::string?
1058 2360956
>>360955
??? Как я string в сокет отправлю без мороки?
1059 2360957
>>360956
А ебу что там у тебя за сокет? Юзай любой подходящий контейнер поддерживающий ресайз и не выёбывайся.
pepe.png183 Кб, 491x315
1060 2360964
>>345617 (OP)
Кто-нибудь тут писал интерфейсы? Я осознал что пишу 100% hard code и мой класс для контролера к игре разрастается до слишком больших размеров. Раньше это был класс Mouse, но теперь туда добавилось много вычислений для юнитов. Я захотел расширяемости. Паттерны раньше не применял. Нужно ли мне написать интерфесы?
1061 2361000
>>360956
send(socket, &string[0], string.length(), flags)
1062 2361011
>>360952
Можно передавать длину строки перед ней. Можно вообще жсоны гонять если скорость не критична.
1063 2361039
>>360952
Чем тебе http и json не угодили?
1064 2361043
>>361039
Микропенисная макака итт.
1065 2361047
>>361043
Велосипедоеб, спок.
1066 2361050
>>361047

>Велосипедоеб


Почему?
1067 2361067
Так-так-так, москалики, доложите как у вас там с плюсовыми вакансиями? Все ещё продолжаете ржать с Kharkiv IT Hub или уже несмешно?

>>360952

>как сделать нормальный интерфейс для передачи данных пакетами?


protobuf

>>360764

>Хочу чтобы все наследники имели одинаковую функцию (по имени), которая должна возвращать разные по типу значения.


https://en.wikipedia.org/wiki/Covariant_return_type

>>360511

>Кстати, про уничтожение объектов, можно ли вызывать их асинхронно?


В Qt есть deleteLater, можешь реализовать что-то аналогичное (очередь в которую перебрасываются объекты)

>>360326

>Как обнулить инстанс структуры хранящийся в unique_ptr?


std::memset(ptr.get(), 0, sizeof(⚹ptr.get()));

>>360205

>получаю непредсказуемо


Во-первых UB (уже сказали), во-вторых ты двигаешься по стеку внизу. В лялексном стеке будут лежать argv и env. Также расположение стека по ASLR может быть весьма рандомным (тоже уже сказали в треде)

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


Понятное дело, дефолтный размер стека в лялексе - 16 Мб, и двигаясь снизу-вверх ты просто проходишь неинициализированную память (точнее система ее заранее почистит нулями, но в стандартной glibc слишком дохуя чего происходит при стартапе)

Салтовка-кум
1068 2361112
>>352159
>>352663
>>361067

>Салтовка-кум


зарепортил вниманиеблядь
1069 2361152
Класс принимает лямбду при конструировании. Как сделать так, чтобы лямбда имела доступ к объекту класса?
Курсы SkillBox 1070 2361163
Привет Двач программисты.
Мне 22,заканчиваю экономический институт и так как я нахуй не нужен как специалист за больше чем 900евро в месяц то решился изучить c++ через SkillBox.Cкажите,нормальное ли это обучение,и все так как они говорят? За себя могу сказать что готов к усилиям в этом направлений,но нуждаюсь в кураторе.
1071 2361167
>>361152
Передавать ей при вызове this в параметрах? Подозреваю захват окружения при создании лямбды будет ещё до выделения памяти под класс.
1072 2361176
>>361163
Скиллбокс(скиллфактори, и тд) это инфоцыгане. Гугли отзывы на подобные канторы, там расписано как преподают материал, какое качество материала и в чем будет менторство заключаться.
Игра не стоит свеч.

Книжки, ravesli, learncpp и прочие условно бесплатные источники информации - вот путь.
1073 2361181
>>361067

>как у вас там с плюсовыми вакансиями



Точку стабилизации уже прошли. Идёт откат к старым значениям с одновременным укреплением рубаса. Ну и как следствие участились попытки прописать зарплату в далларах (хотят ка раньше свои нищенские 3к платить).
1074 2361183
>>361163
Жабу лучше изучай. Она ближе к делам экономистов. Или Один Эсс.
1075 2361184
>>361163
Толсто.
изображение.png21 Кб, 336x357
1076 2361186
>>361167
Так? Не работает
1077 2361190
>>361186

>Не работает


Баг компилятора, попробуй другим собрать.
1078 2361191
>>361190
Я msvc компилирую....
1079 2361196
>>361186
Нет. Лямбда должна принимать указатель на твой класс в качестве аргумента, если собирается его использовать.
1080 2361199
>>361196
Так а как, если класс еще не сконструирован?
1081 2361205
>>361199
Ладно, видимо подход хуевый. Надо иначе делать. Если интересно, то мне показалось хорошей идеей сделать максимально общий класс сервера, который будет новые соединения в переданную лямбду передавать, а она внутри себя их уже обрабатывать. Но затем мне понадобилось в лямбде использовать метод сервера и всё. Сделаю значит просто наследника от своего максимально общего класса.
1082 2361215
>>361205

>показалось хорошей идеей сделать максимально общий класс сервера


Зачем?
1083 2361226
>>361215
Он должен был взаимодействовать с кучей других объектов и мне показалось хорошей идеей передвать в сервер лямбду, которая захватит эти объекты. Видимо придется преисполниться шаблонами и писать сервер, который примет ссылки на все те объекты и будет внутри себя их дергать.
1084 2361229
>>361226
Зачем усложнять?
1085 2361231
>>361229
Чтобы при каждом чихе не лезть в код сервера и не менять его, если вдруг ему понадобится еще один объект для взаимодействия.
1086 2361243
>>361231
Максимально абстрактный код сервера на псевдокоде, зачем усложнять?
https://0bin.net/paste/+B9N3PVY#BTUPMznhI9e7S8EF2qpiRTaZfpDlF67M8MR5fsYlFEN
1087 2361244
>>361229
Ну а вообще я хуй знает. Я в первый раз пишу прогу в которой несколько сущностей разных и они должны как то с собой взаимодействовать. + хочу писать максимально модульный код, поэтому qt с его слотами/сигналами не юзаю, а пытаюсь как то из сервера вызывать нужные функции. Хотя может этт и странно и лучше взять qt с его системой сигналов и слотов.
1088 2361247
>>361243
У меня то же самое по сути. Но мне в хэндлере надо другие объекты юзать. Вот их законнектить было проблематично. Сначала решил лямбду с нужными объектами передавать, но оказалось хуйня
1089 2361251
>>361247

>Но мне в хэндлере надо другие объекты юзать.


>extra


Указатель на какой-то объект.
1090 2361299
>>361251
Значит будет у меня специализация под конкретные объекты, а не общий обработчик. Ну ладно. Мне уже не важно. Главное чтобы работало
1091 2361332
>>361299
Это вообще хуево или нет? Принято ли в проектах писать структуры заточенный под связь с другими или все стараются максимально модульным сделать?
1092 2361344
Есть тип FT_Face, который определён как
typedef FT_FaceRec_ ⚹FT_Face;

Этот код компилируется:
FT_Face f;
auto error = FT_New_Face(lib, filename, index, &f);
shared_ptr<FT_FaceRec_> face(f, FT_Done_Face);

А этот выдаёт ошибку:
FT_Face f;
auto error = FT_New_Face(lib, filename, index, &f);
shared_ptr<remove_pointer<FT_Face>> face(f, FT_Done_Face);

Почему?
1093 2361356
>>361344
::type
1094 2361386
>>360964
бамп вопросу. Собственно писал на эмоциях от этого видео
https://www.youtube.com/watch?v=Bw6RvCSsETI
сорян за типа "рекламу инфоцигана левого", но все началось со спока с одной php макакой в /b про SOLID

Как по мне SOLID это противоположность YAGNI. И я больше за YAGNI и 100% hard code. В то время как SOLID это на самом деле софт код из за "D" который размывает структуру ИМХО.

второкурсник-кун (да еще один в влимание-особая-личность, тяжело...)
1095 2361405
4 дня сидел без интернета, благо был референс скачанный на харде. Прочитал почти весь тупо как как книгу. Я уже стал сеньором-джедаем или да?
1096 2361422
1097 2361429
>>361422
Заебись. Дайте инвайт на собес.
1098 2361484
>>361429
Устроим собес прямо здесь. Могу взять тебя программистом если умеешь что-нибудь. Что ты умеешь?
1099 2361520
>>361484
Вышивать могу, и на машинке шить.
1100 2361524
>>361520
бан
1101 2361525
>>361524
За що?
1102 2361526
>>361525
за траллинг тупостью
1103 2361528
>>361526
Не бубни
1104 2361533
>>361528
Админ бань его. Заранее спасибо.
1105 2361554
>>361520
А примус починять?
1106 2361634
>>350989
это крестовый, а не переможный тред, мыкола.
Минус три мивины.
изображение.png15 Кб, 873x183
1107 2361761
Как в QT задать время ожидания ответа на http запрос? Пока что написал пик, в целом работает, но как-то всрато. Пришлось родить целых две новых сущности (QTimer и QEventLoop)
1108 2361771
>>361634
Сильно же тебя это задело
image.png39 Кб, 1101x396
1109 2361813
>>361761
Во-первых пикрел,

>QEventLoop


Лолщто, зачем это? У тебя ивентлуп крутится в QCoreApplication::exec уже.
Надо делать коннект на QNetworkReply::finished и в обработчике слота уже вытягивать данные. А ты какую-то синхронщину ебашиш

Салтовка-кум
1110 2361825
>>361813

> Лолщто, зачем это?


Для ожидания же. Как sleep, только система по прежнему обрабатывает сигналы.

> Надо делать коннект на QNetworkReply::finished и в обработчике слота уже вытягивать данные


Надо, но я хз как. У меня все это дело в классе. Я вызываю метод с того пика для получения данных, так что он должен вернуть какое-то значение. Поэтому отдельный слот тут никак не вставить.
1111 2361853
>>361825
connect(reply, &QNetworkReply::finished, this, [this, reply]()
{
reply->deleteLater();
auto data = reply->readAll();

/// ........
});
1112 2361909
>>361853
Пока этот сигнал сработает, функция уже выполнится. Ну или я не понял, куда ты предлагаешь его вставить.
1113 2361933
>>361909

>Пока этот сигнал сработает, функция уже выполнится.


Ну да. Т.е. программа может заниматься другими полезными вещами
1114 2362074
Как же хочется вкатиться...
1115 2362129
Почему размер void⚹ = 8 байт?
1116 2362131
>>362129
void⚹ это указатель. А указатель это адрес в памяти. А адрес в памяти это целое беззнаковое число от 0 до 2 ^ (разрядность системы) - 1. 8 байт = 64 бита и как раз позволяет закодировать весь диапазон адресов. В 32 разрядной системе void⚹ будет 4 байта.
1117 2362297
Здорова педики, вопрос к шарящим.
Как правильно организовать ебучий cmakelists? Вот есть проект, он хочет залинковаться на либу, лежащую на том же уровне что и он. Как это по-человечески сделать?
1118 2362352
Я правильно понимаю, что для создания красивого модного интерфейса в qt мне придётся использовать qt quick?
1119 2362357
Можно ли сделать шаблонную функцию вида?
template<typename T>
T test(int n)
{
return 42;
}
test(55);
Если в параметрах указать T то всё компилируется, а реально ли сделать без неё, как в примере?
1120 2362371
>>345617 (OP)
Тут есть программисты микроконтроллеров? Хочу уйти из АСУТП к вам. На каком уровне крестов можно начинать открывать headhunter? На младшие позиции, естественно.
1121 2362397
>>362352
Можно и на виджетах, но жопоболи будет на порядок больше.
1122 2362398
>>362357
В таком виде он не может вывести тип. Вот test(T n) должно прокатить.
1123 2362434
>>362398
Ясно, просто не хочется передавать в функцию переменную только для определения. А что-нибудь подобное сделать можно?
template<typename T>
T testfunc(int n, T t)
{
int num = 5;
std::string str = "ABC";
if (1)
{
return num;
}
else
{
return str;
}
}
1124 2362438
>>362371
C thread is two blocks down
1125 2362450
>>362434
Можно из с++ жопаскрипт сделать, но зачем?

Выше по треду уже писали про variant, union и void⚹ в качестве возвращаемого значения.

using result_t = std::variant<int, std::string>;
result_t func(int i) {
result_t res;
(i > 0) ? res = i : res = std::to_string(i);
return res;
}

auto res = func(42);
auto val = std::get<int>(res);
auto str = std::get<std::string>(res);

get кидает исключение, если тип не соответствует фактически хранимому значению (есть get_if и проверки - смотри доки).
1126 2362468
>>362450
Все эти variant где+то кроме говнокода применяются?
1127 2362489
>>362468
Наговнокодил тебе в штаньі
1128 2362491
>>362489
Хрюкни
1129 2362494
Обновил qt, с удивлением узнал, что некоторые используемые функции были выпилены. Зачем так делать? Чем они мешали? Почему я должен перелопачивать код после перехода на новую версию?
1130 2362504
>>362494

>Обновил qt, с удивлением узнал, что некоторые используемые функции были выпилены.


>Что такое мажорная версия?



Обновил Qt5->Qt6?
1131 2362505
>>362494
Какие?
1132 2362507
>>362504

> Обновил Qt5->Qt6?


Да

> Что такое мажорная версия?


Из крестов же ничего не выпиливают, только настоятельно советуют не использовать, если было совсем непотребство.
1133 2362509
>>362505
Ну например setCodec из qtextstream
1134 2362510
>>362507

>Из крестов же ничего не выпиливают


Как там с std::auto_ptr?
1135 2362513
>>362510
Хах, когда писал пост как раз держал этот пример в голове, мол заменили, но не удалили, а оказалось в 17 версии таки выпилили. Но все же это буквально единичные случаи.
1136 2362517
>>362513
Этот единичный случай насрал очень сильно в одном проекте
1137 2362540
>>362517
Каком?
1138 2362543
Давно не программировал на C++
Не подскажете, почему у меня русский текст не печатается?
std::wstring str1(L"Жил был пёс.");
std::wcout << str1 << std::endl;
1139 2362546
>>362543
Потому что хз какие кодировки у тебя в консоли и в программе.
1140 2362551
>>362546
Если я всё правильно понимаю, то в консоли и текстовом файле стоит UTF-8.
1141 2362553
>>362551
А ты не понимай, а установи кодировку сам.
Chcp 65001
1142 2362570
>>362553
Не работает.
1143 2362586
>>362551
Если винда, то utf16 например. Лучше выведи в файл и открой редактором где можно пощелкать кодировками .
1144 2362601
>>362586

>Если винда,


У меня не винда,

>пощелкать кодировками .


Ничего не меняется.

В общем странная фигня, если перед wcout вывести обычный текст, то текст выведется транслитом (на сайте вместо транслита знаки вопроса):
cpp.sh/3psus
cpp.sh/35bkx
1145 2362610
>>362450

>Можно из с++ жопаскрипт сделать, но зачем?


Есть библиотека при получении значения она выдает результат и можно запросить его тип (число, строка) моя задача написать функцию универсальную для запроса числа и строки. Реализация за исключением нескольких строк одинаковая. Писать две разные функции которые содержат почти одинаковый код не хорошая идея.
1146 2362622
>>362468
union в коде на C встречается. Там нет наследования или полиморфизма и поэтому убогие пишут вот такое (чтобы распарсить сообщение, пришедшее от железки):
union {
struct {} __(packed)__ header_base;
struct {} __(packed)__ header_type1;
struct {} __(packed)__ header_type2;
}
или для работы с указателями:
union {
void⚹;
base_class⚹;
child_1⚹;
child_2⚹;
}
В с++ всё это особо не нужно. Ну а varaint вообще редкость. Слишком громоздкий и без задач.
1147 2362627
>>362601

>У меня не винда,


Линух? Попробуй обычный string и cout.
1148 2362673
>>362622
в крестах для union все же осталось одно применение, а именно когда нужно заглянуть внутрь примитивных типов
1149 2362677
>>362673

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


Пофиксил.
1150 2362680
>>362677
Волков боятся - в лес не ходить.
1151 2362694
>>362677
implementation defined != UB
1152 2362701
перекатите немедленно
1153 2362710
>>362701
Перекати.
1154 2362713
Проконсультируйте или как загуглить про такой механизм:
Приложение работает следующим образом: есть сервер который отправляет какие то данные, которые нужно обработать, делает он это не часто, но обработка занимает много процессорного времени, а само приложение должно работать параллельно с этим обработчиком. Создавать тред в классе с бесконечным циклом в ожидании данных плохая же идея? Это вообще можно при помощи стандартной либы как то сделать?
1155 2362728
>>362713
boost::asio
1156 2362734
>>362713
Для асинхронного выполнения тебе нужен std::future в качестве результата и нечто, что будет работать асинхронно - std::async или std::thread t(callable, args).detach() в паре с packaged_task или promise.
15640323477300.jpg17 Кб, 600x600
1157 2362912
>>362297
symlink
1158 2362921
Было бы здорово добавить эту годноту в шапку. Лучший материал по cmake на русском из всех, что я видел.
https://libgen.rocks/ads.php?md5=FD03DB39EE5F06D2CA025601BBCB9A16
1159 2362924
>>362921
Зарепортил за саморекламу
1160 2363078
>>362713

>Создавать тред в классе

1161 2363097
>>362713
если отвечать формально на вопрос, то возможно тебе придется задействовать асинхронный ввод вывод, поэтому только при помощи стандартной библиотеки это сделать не получиться, придется использовать либо средства предлагаемые операционной системой, либо кроссплатформеные библиотеки
1162 2363109
>>363078
А чё такого если инстанс глобального времени жизни?
1163 2363407
>>362517

>s/auto_ptr/unique_ptr/g


>добавляешь std::move, где компилятор ругается


И никаких проблем. А у тебя что приключилось? inb4 старая либа без исходинков возвращала их в апишке
1164 2363408
>>362673
Наконец-то завезли православный bit_cast для такого
1165 2363468
Как вкотиться в маш. зрение?
1166 2363484
Классы A и B таковы, что B при конструировании просит ссылку на экземпляр A. Хочу создать пару A, B, но не могу. Есть решения? Я думал, думал, но не придумал
1167 2363486
>>363468
Читать книжки, учить математику в вузике. Освоить Python.
1168 2363489
>>363486
Питон я знаю, для чего-нибудь серьёзного он в любом случае не катит.
1169 2363493
>>363489
Довольно много ML/CV кода написано на Python. И считай он нужен банально для чтения и изучения примеров (как английский для чтения документации).
1170 2363494
>>363493
Да я не спорю, что на нём дохера всего написано. Суть в том, что в риалтайме такое всё равно не поюзаешь.
1171 2363501
>>363494
Ну ты не с того конца заходишь. Язык это только инструмент и не более.
Сначала глянь насколько хорошо пойдёт сама тематика. Есть книжка от Szeliski (быстро гуглится). Она довольно много аспектов CV затрагивает (и про особенности нашего зрения и про цифровые камеры и про алгоритмы - сегментация/классификация/выделение особенностей/трекинг и ещё докучи). Полистай по диагонали и посмотри как оно вообще. Матана там ояебу конечно, но куда ж без него.
1172 2363502
>>363486
A a;
B b(a);
1173 2363511
>>363501

>Szeliski


Вот это годный контент, спасибо. Ушёл курить. Превозмогать придётся, робототехника сама себя не освоит.
1174 2363513
>>363484
struct A {};
struct B {
A& ref_a;
B(A& a) : ref_a(a) {}
}
A a;
B b(a);
std::amke_pair(a, B(a));

Ссылки инициализируются в конструкторе. Но не в теле, а в списке после : .
1175 2363532
>>363513
Вот только у тебя b из пары ссылается на а вне пары. А вопрос наверно был как создать пару аb, где у .second ccылка на .first
1176 2363533
>>363532
Да, вопрос ровно такой
1177 2363535
>>363533
Ну это С++, так что РЕШЕНИЕ ЕСТЬ ВСЕГДА. Но не всегда оно тебе понравится..

https://godbolt.org/z/E9h1aPf3s
1178 2363537
Как понять почему cin падает? У меня прога юзает асинхронные операции с бустом и почему то после их использования cin падает при попытке чтения.
1179 2363539
>>363535

>РЕШЕНИЕ ЕСТЬ ВСЕГДА


В чём смысл жизни?
1180 2363540
>>363539
Зависит от имплементации. В гцц просто вызови __builtin_life_meaning() и узнаешь.
1181 2363541
>>363539
void⚹
1182 2363547
Сука, я рот его топал. Буст просто не кидает исключение если порт занят, хотя раньше кидал. Что изменилось? Я и 443 порт писал, и 1, и 10. Просто ничего не происходит
1183 2363549
>>363547
Я писал и acceptor_(io_context, tcp::endpoint(tcp::v4(), port), false) и true, нет разницы
1184 2363550
>>363535
В голос с этой хуйни
1185 2363551
>>363549
А, соре. Я дурак. Мне просто очень везло на свободные порты. И я думал, что маленькие нельзя выбирать, а оказалось можно
1186 2363553
>>363537
Причем если соединение не удалось, тогда cin падает. Как это дебажить?
1187 2363554
>>363553
А, лол. Это не cin падает. Странно. Забавно получалось, но ошибка выскакивала именно там.
1188 2364047
Стек или очередь?
1189 2364049
В чём подводные использования/написания своих header-only либ?
1190 2364051
1191 2364052
>>364047
Дерево отрезков или система непересекающихся множеств?
1192 2364062
>>364051
Пизда
>>364052
Множество элементов с которого на каждой итерации нужно снимать исключительно пенку
1193 2364073
Как создать инструкцию с внутренней логикой и оборачивающую код? Т.е. что-то вроде for, while, try-catch.
1194 2364089
>>364073
Ты про макросы?
1195 2364103
>>364089
Нет, мне нужна собственная конструкция вида
do {
...
} then {
...
}
1196 2364167
>>364073
Написать свой язык. Ну или макросы. Ключевые слова на то и ключевые что являются частью языка.
1197 2364173
>>364167
Так плюсы же умеют всё. Вот и скажите мне как это сделать.
1198 2364187
>>364173
Плюсы не умеют всё, тебе соврали.
1199 2364188
>>364187
А чего плюсы не умеют?
1200 2364191
>>364188
Создавать ключевые слова.
1201 2364192
>>364191
А тяночку могут помочь найти?
1202 2364194
>>364192
Косвенно.
1203 2364195
>>364194
Это как?
1204 2364201
>>364195
В доках посмотри.
https://www.cplusplus.com/reference/
image.png36 Кб, 760x299
1205 2364203
>>364201
4ever alone(9
1206 2364206
>>364203
Чё за Tyan нахуй? Chan блять.
1207 2364216
>>364206
Тоже ничего
1208 2364227
>>362734
нах этот кал когда корутинки завезли уже? корутинки с https://github.com/facebook/folly/blob/main/folly/experimental/coro/README.md и погнал
1209 2364228
>>364227

>facebook

1210 2364234
>>364228
Чо facebook?
image.png2,7 Мб, 1920x1080
1211 2364235
>>364234
Corpos are bad
1212 2364236
Тут уже спрашивали что то подобное, но там речь шла про наследников и variant, а у меня не наследники, а variant выглядит избыточным. Суть следующая: нужен десереализатор который получит на вход указатель на данные, а вернет объект. Но вот незадача: объекты разных типо и между собой не связаны. Вариант возвращать void указатель на объект и пометочку о типе, а потом кастовать выглядит гиперопасным.
1213 2364239
>>364227

>c++ 20, не кал, слышите.


Чел, я педалю cv под эмбед и нам это ещё не скоро завезут в нормальном, рабочем состоянии. Для корутин есть пихонг.
1214 2364242
>>364234
фейсбук топ
1215 2364244
>>364236
а чего variant избыточен? он как раз для таких целей
1216 2364246
>>364239
земля пухом
1217 2364302
Посоветуйте, пожалуйста комплятор на с\с++ под винду только чтобы он лёгкий был, быстрая установка быстрый запуск типа как текстовый редактор. А то я не хочу визуалку ставить она тяжёлая, много лишнего и т.д.
1218 2364315
>>364302
Раз твой вопрос пробил дно, сразу посоветую Dev C++
1219 2364318
>>364315
спасибо большое
1220 2364341
>>364315
годно, а то мой ноутбучок надрывался прямо под визуалкой. а тут можно спокойно и на двощах параллеьно сидеть.
1221 2364344
>>364341
Желаю тебе однажды открыть для себя генту с вимом.
1222 2364346
>>364344
Мерси, ещё раз. Но мне даже арч с трудом собрать по гайду какой там генту
1223 2364347
>>364346
./arch-install.py -> Enter -> Enter -> Enter
Тяжелоооо...
1224 2364466
>>363535

> ((ab_t*)mem)->first


UB
1225 2364589
>>363407

>s/auto_ptr/unique_ptr/g


Авотнихуя

>И никаких проблем. А у тебя что приключилось? inb4 старая либа без исходинков возвращала их в апишке


Старый цомпилятор не знал про unique_ptr (одна параше платформа), а новый - про auto_ptr (шланг на макоси).
1226 2364593
>>364206

>Чё за Tyan нахуй? Chan блять.


Что за chan нахуй? ちゃん блядь.
1227 2364823
>>363511

>робототехника сама себя не освоит


да конечно, штрафокамеры будешь ставить простому люду
1228 2364947
>>364823
Та не, там ещё картография, медицина, дефектоскопия. Не обязательно слабовички и охранка.
1229 2364948
>>364593

> Что за chan нахуй? ちゃん блядь.


Что за ちゃん нахуй? 嬢 блять.
1230 2364955
>>364947
Все твои наработки в любом случае будут использоваться для таких задач.
1231 2364959
>>364955
Ладно, пойду тогда шлюзы для криптобиржи писать, HFT и сервисы для наёбки гоев на деньги.
2022-04-08-mixnews-comment-21.jpg44 Кб, 325x650
1232 2364971
>>364955
А ещё они едят, поэтому фермеры тоже их на самом деле поддерживают.
1233 2365181
Помогите, пожалуйста.
У меня программа в которой создаётся множество объектов одного класса и их данные загружаются из базы данных расположенной на жёстком диске при запуске программы.

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

Но я не понимаю как это реализовать автоматически? Допустим у меня 157 объектов и как их программно именовать? a1, a2, a3... черзе шаблоны чтоли это делать? Или как? Опытные люди помогите, пожалуйста, как делаются подобные вещи.
4444.png25 Кб, 1435x570
1234 2365184
>>365181
вот так. я диаграмму нарисовал что я хочу чтобы вам проще было понять. я не понимаю как присваивать имена объектам которых множество и т.д.
1235 2365188
>>365184
>>365181
может массив объектов какой сделать?
1236 2365189
>>365188
типа записывать объекты в массив после записи каждого добавлять к индексу +1 и так пока база данных не закончится, а их номера в массиве и будут id идентификационными...

как бы это элегантно сделать
1237 2365219
>>365181
Ты докуда учебник успел прочитать?)
Тебе нужен обычный вектор. Ну или мэп если в приоритете поиск по имени например. В общем разбирайся со стандартными контейнерами.
1238 2365317
>>365189
Использовать List
1239 2365329
>>365219

>вектор


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

да я читал целиком его, оригинал от страуструпа все 1000 с лишним страниц пол года читал, но было это года 3-4 назад и я после этого не писал на плюсах, только на си. а щас нужны классы замахнулся на высокую программу.

>>365317
благодарю. если с вектором не пойдёт рассмотрю list.

спасибо вам
1240 2365335
>>365219
>>365317
А можно ещё к вам вопрос. А какую базу данных лучше использовать для автономной программы на с++? Ну чтобы полегче там была. SQL или что-нибудь другое может есть получше что для этого подходит?
1241 2365348
>>365335
А что тебе хранить надо? Может json хватит.
1242 2365353
>>365335

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


0. SQLite
1. если хочешь выебнуться - dbm и его разновидности
1243 2365363
>>365348
Программа работает со множеством объектов одного класса и нужно хранить их данные в базе данных чтобы прии запуске программы загружать их с жёсткого диска в озу, а затем при выходе сохранять их из озу назад в базу данных

>>365353
спасибо, тогда наверное sqlite рассмотрю к тому же уже работал как-то с ними
1244 2365387
А это можно имена перменных вот с такими пробелами писать? variable_name?
1245 2365405
>>364244
Ок, спс
1246 2365408
>>365387
Можно. Только старайся использовать один стиль именования, а не смешивать все сразу.
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#nl8-use-a-consistent-naming-style
1247 2365416
У меня есть вектор, который хранит указатели на объекты. Вектор должен сохраняться между запусками, а еще он может разростись, поэтому хранить его полностью в оперативке нельзя. А еще он может содержать указатели на огромные объекты - файлы, которые моей программой даже не открываются. Можно ли как то кусок вектора на диск записать, а когда надо доставать обратно? И сложно ли это делать? Могу ли я пока что забить хуй, а потом эту возможность добавить? Или всё таки надо об этом скйчас думать?
1248 2365427
>>365416
Я конечно могу написать свою обёртку, которая по запросу будет файл на диск сбрасывать и куски подгружать, но выглядит довольно муторной задачей
1249 2365431
>>365408
спасибо, понял. в рамках проекта буду так и делать

>>365416
лел, не один я такой ньюфаня
1250 2365434
>>365416
Тебе нужен полноценный storage layer, думать об этом надо уже сейчас, когда вытаскивать данные с диска и когда сбрасывать их обратно
1251 2365462
>>365416
Тебе нужен кеширующий провайдер данных. Пока можешь накатать его интерфейс, а в имплементации использовать вектор, ну а потом сделать как надо будет.
1252 2365529
>>365416

>хранит указатели на объекты


>сохраняться между запусками


>может разростись


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


>указатели на огромные объекты


>Можно ли как то кусок вектора на диск записать, а когда надо доставать обратно?


Маппинг+обертка кучей вокруг куска памяти.
1253 2365531
Кто в изображениях разбирается, в кутах есть такая функция QPixmap::loadFromData, где она берет массив чаров. Так что
это за массив? Это просто буфер где хранятся цвета каждого пикселя? Или этот буфер хранит еще всякую инфу типа размера изображения, метадаты?
1254 2365532
>>365531
Так может ты глянешь документацию? У Qt она очень хорошая.
1256 2365545
>>365532
А ты думаешь откуда я это взял и уточняющие вопросы написал? Я прочитал, но не понял
1257 2365561
>>365531
Это просто файл загруженный в память.
1258 2365564
Там же специально про формат написано, чего ты взял что это просто буфер с пикселями?
1259 2365626
>>365531

>the loader probes the file for a header to guess the file format


Это файл (jpg, png, ...), загруженный в оперативку в виде массива data.
1260 2365908
Сап плюсач появилось два вопроса касательно использования std::thread в системах с несколькими CPU:
1) первый и самый важный - что вернёт std::thread::hardware_concurrency в системе с 2 CPU (допустим, у каждого CPU 16 ядер и 32 потока)? По идее, на том же cppreference говорится, что функция вернёт число всех поддерживаемых потоков, то есть для такой системы она должна вернуть 64. Вообще интересно почитать, что сам стандарт регламентирует в таких случаях
2) насколько мне известно, если создать все 64 потока из прошлого примера, то планировщик в ОС сам раскидает потоки между CPU. Однако я знаю, что планировщик в ОС может распределить эти потоки неравномерно между CPU, а также между ядрами конкретного CPU (банально из-за алгоритма регулирования температуры, расположения кэшей, etc). Однако эта проблема решается использованием affinity mask ( https://en.wikipedia.org/wiki/Processor_affinity ). То есть чисто технически при создании потоков я могу закрепить их к определённому CPU (32 на первый и 32 на второй), но только с помощью механизмов Windows API или линуха. В <thread> нет ничего для работы с этой маской? И как вообще стандарт на неё ссылается (если ссылается)?
1261 2366145
>>365908

>что вернёт std::thread::hardware_concurrency в системе с 2 CPU


Самый простой способ - посмотреть исходники стандартной бибилиотеки, благо даже у мелкософта она открыта.
https://github.com/gcc-mirror/gcc/blob/master/libstdc++-v3/src/c++11/thread.cc#L190

>int __n = _GLIBCXX_NPROCS; ,


где _GLIBCXX_NPROCS - макрос, вызывающий одну из кучи функций
И все они, судя по мануалам, возвращают полное число потоков из всех цпу.

>В <thread> нет ничего для работы с этой маской?


Не припомню такого. Но всегда можно вызвать std::thread::native_handle и работать с системными апи.
1262 2366152
Почему нельзя скопировать вектор интов в вектор лонгов?
1263 2366165
>>366152
Потому что это разные типы данных?
1264 2366167
>>366152
Потому что ты под линуксом.
1265 2366173
Вернее под линуксом на х86-64
1266 2366470
Посоветуйте гайдов по gdb
image.png110 Кб, 1301x919
1267 2366725
>>345617 (OP)
аноны, как на с++ подключать инклюды ? или почему у меня эти ошибки, за плюсы вообще не шарю
1268 2366749
>>366725
в другом разделе сказали мфс пакеты скачать
1269 2366794
С чего начать свой путь в коммерции? Ясное дело, многого не знаю, но уже чувствую что петами сыт не будешь. В целом и шаблоны пишу, и с абстрактными классами наебался, поинтеры-аллокаторы, мультипоток копал, с бустом игрался. Qt не зашёл. Можно куда-нибудь с нынешним стеком податься чтобы уже боевой опыт зарабатывать? Язык пиздатый, а чего хочу от него - пока только в собственных проектах и отображается. Я бы вкатился наверное в нейронки/зрение, да это опять минимум несколько месяцев учёбы, дрочения примеров.
1270 2366928
>>366794

>В целом и шаблоны пишу, и с абстрактными классами наебался, поинтеры-аллокаторы, мультипоток копал, с бустом игрался. Qt не зашёл.


>С чего начать свой путь в коммерции?


С приношения денег кабанчикам, каким образом твои навыки могут принести ему денег?
1271 2366955
>>366928

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


Ну я могу отсосать ему. Тоже не то?
1272 2367009
>>366794
Всем нужен опыт и конкретные навыки, те не с бустом поигрался, а я могу сделать то то и то то.
Ну и да, никому ты не нужен, мужик. Вкатусю на плюсах видеть никто не хочет, это слишком кринж, тем более в этой стране
1273 2367223
>>366794

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


Открываешь хехе.ру, вводишь там c++, потом вводишь c++ && machine learning. Получаешь <5% от общего числа вакансий. Затем убираешь оттуда senior, lead, knowledge of c++ is a plus, huawei/samsung/etc и в итоге идёшь в НИИ клепать аналоговнеты под линукс для stm32.
1274 2367377
>>367223
в нии норм работать, если есть хата от бабки доставшаяся, и не планируешь заводить семью (остаться девственником), на покушать будет хватать денежек
1275 2367399
Так, я чет не понял. Такая операция:
std::vector a = b;
bool copied = true;
Может выполниться не последовательно?
1276 2367404
>>367399
Нет.
1277 2367454
>>367399
Конечно. На современных ЦП инструкции обращения к памяти могут начать выполняться одновременно, но вторая может выполниться раньше первой, если кэш-мисс или просто долгая инструкция. Естественно ты в одном потоке не сможешь увидеть эффект от такого, ЦП не станет выполнять одновременно инструкции, если есть рядом зависимая инструкция от того участка памяти. Но вот из другого потока реально запалить это. Гугли про memory order, чтоб понимать что за relaxed-память и чем отличается поведение strongly-ordered от weak-ordered архитектур.
Но в твоём случае если чекнешь copied==true в другом потоке, то уже скорее всего не успеешь поймать такое. В стандартной библиотеке, кстати, разрешены такие проёбы в порядке выполнения и это даже не UB, потому что надо std::atomic юзать вместо простого обращения к памяти. Например std::latch умеет в такие фокусы, но шансы поймать это очень низкие, хоть и не нулевые.
1278 2367477
Qt creator крашнулся. Сука.
1279 2367530
>>367377
Имея хату от бабки сложно остаться девственником.
1280 2367538
>>367399
Конпелятор может переставить во время оптимизации или вообще убрать то, что посчитает не нужным.
1281 2367603

>>2367597


А если я из Донецка? Я норм, отвечаю.
1282 2367609
А как скомпилировать 2 .cpp файла в одну файла не объявляя один из них .h заголовочным? Я в одном объявил класс и его функции и переменные. а в другой main пользуюсь. И при стандартноо компляции выдаёт что этот класс не объявлен. Если файл с классом сделать .h и через обычный инклуд включить от всё заебубма станвоится.

Алсо вообще модульную программу делаю у меня каждая функция и класс в отдельном исходники. Как это лучше всё держать в .h и подключать всё это или в .cpp и потом всё это вместе комппилировать? Помогите, молю, нюфаня я обосраная
1283 2367612
namespace fs = std::filesystem безопасно прописывать?
1284 2367614
>>366145

>И все они, судя по мануалам, возвращают полное число потоков из всех цпу


Подтверждает мои мысли и то, что написано на cppreference

>std::thread::native_handle


А вот за эту наводку огромное спасибо, анон!
1285 2367615
Похоже у первокурсников сессия начинается. Сейчас опять вот этим вот >>367609 >>366725 >>365181 весь тред будет засран..
1286 2367616
>>366725
Старина, съеби нахуй
1287 2367617
>>367609

>как скомпилировать 2 .cpp файла в одну файла


Узнать разницу между объявлением и определением. Вынести объявления в .h, включить его везде где нужно, в том числе в .cpp с определением.
1288 2367619
>>367617
Всё понял, спасибо.
1289 2367620
>>366725
Пишет что не может открыть их. Они точно у тебя находятся в рабочей директории?
1290 2367621
1291 2367623
>>367621
Так-то вся наша жизнь UB
1292 2367624
>>367617
Годно годно. То есть можно сделать чистый .h 1 и там объявить все классы, функции и всё говно что хочу. А в остальных .cpp написать определение этому годно, годно. Мерси ещё раз
1293 2367679
>>367399
В 2022 - с очень большой вероятностью. В общем случае зависит от процессора и компилятора
1294 2367968
если я компилирую программу и ide написано что комплятор x64 release он точно сгенерирует код assemblera x64? это можно как-то проверить разрадяность программы кроме того что попытаться её запустить на 32 разрядной системе?
1295 2367982
>>367968
От формата файла зависит. В PE код целевой машины идёт сразу за меткой COFF хедера например. Для 64 так будет и написано - 64 86.
1296 2367984
>>367982
не понимаю что такое PE и COFF.
1297 2367990
>>367968
ещё можешь в настройках указать чтобы компилятор выдавал асм или заюзать дизассемблер, а там чекнуть нету ли регистров 64битн и тп

>>367984
открой exe (или аналог) в hex и загугли формат как читать
1298 2367992
>>367990
Спасибо понял. Наверное в hex редакторе посмотрю. Дизассемблера у меня нету.
1299 2368024
Я правильно понимаю что языки типа java или шарпа они при компляции сперва компилируются в C++ код, потом тот код в ассемблер, затем в двоичный?
1300 2368026
>>368024
Нет.
1301 2368027
>>368024
Нет, не правильно. Где ты эту чушь вычитал?
1302 2368031
>>368027
Нигде. Я всю жизнь изучаю только ассемлеры, с\с++, и просто где-то мельком читал про какие-то интерпретаторы в java я решил что они наверное переовдят этот код в c++
1303 2368041
>>368027
Хорошо а как тогда они построены? Так же как c++ переводятся в ассемблер, потом в двочиный код объектных файлов, а потом компоновщиком связываются в единый файл исходного кода? А? А? А? А? А?
1304 2368053
>>368041

>c++ переводятся в ассемблер,


Неа, он сразу в двоичный, так больше возможностей для оптимизации.
Шарп и джава компилируются в байт код, который исполняется (интерпретируется) виртуальной машиной.
1305 2368079
>>368053
спасибо. то есть у шарпа и джавы есть снизу какая-то виртуальная машина со своей маняархитектурой которая их код обрабатывает или что? как она работает? чем им не подходит нативный процессор?
1306 2368147
>>368079

>чем им не подходит нативный процессор?


Им нужно чтобы за них кто-то памперсы менял.
1307 2368235
>>368147
ну погоди. скажи зачем им нужна виртуалка которая их будет преобразовывать в оригинальные команды процессора? нахуй им этот ёбаный интерператотор ебучий? почему нельзя а с\с++ это компилировать?
1308 2368236
>>368235
Чтобы один и тот же артефакт работал на любой платформе, а не "скачайте версию либы для винды, скачайте для линукса, скачайте для андроида, для x86_32, для x86_64, для ARM, для ещё какого-нибудь говна, или ебитесь со сборкой сами".
1309 2368244
>>368236
А понял. То есть вся работа по кросс платформенности передана этому маняитерпретатору годно, годно.

Но я привык если честно компилировать. То есть мне нужна какая-то либра, я беру и компилирую её парой команд и всё.
1310 2368247
>>368236
Я правильно понял что при компляции с\с++ языка идёт сперва создание объектного файла с двоичным годом а потом связывание их в один исполняемые?

сорри я ещё до книги по компляторам и отладчиков не дошёл, только ассемблеры читаю поэтому не знаю но интересно очень узнатт
1311 2368295
>>368244
Ну там есть не только интерпретируемый байт код, но и JIT компиляция (при выполнении часть байт кода на лету компилируется в платформенный бинарник). Но программист ручками её не может сделать - виртуальная машина сама решает как и когда это делать.

>>368247
Компилятор из текстовых фалов делает бинарные объекты. Связывание бинарных объектов в исполняемые файлы делает линковщик.
1312 2368296
>>368244
В реальном мире компиляция не редко делается прям в процессе выполнения. Например JIT в виртуальных машинах или компиляция шейдеров, которые запускаются на видеокартах (c-подобные языки GLSL, HLSL).
1313 2368344
>>368295
>>368296
спасибо более менее представление появилось.
1314 2368383
>>368296
на русский dynamic translation почему то переводят обычно как "динамическая компиляция", что создает некую путаницу все же
имхо, прямой перевод был бы в этом случае точнее
1315 2368414
Можно ли как то быстро глянуть данные с указателя на char в виде hex?
1316 2368417
>>368414
Вывести в консоль?
1317 2368418
>>368417
Там не только символы. Там вообще любые данные.
1318 2368419
>>368418
Ну можно конечно, но как то не красиво
1319 2368443
Как правильно логи записывать? Мне много не надо, хочется только многопоточно писать в лог и потом достать его. Просто свой поток с мьютексом подойдет или за такое по рукам бьют?
1320 2368449
>>368443
Поток логированния тогда у тебя должен быть высокоприоритетным иначе другие потоки будут ждать его
1321 2368450
>>368414
Вывести в файл, открыть редактором с показом текста.
1322 2368453
>>368450
*Хекса
1323 2368455
https://www.boost.org/doc/libs/1_79_0/doc/html/boost_asio/reference/steady_timer.html
Можете пояснить за потокобезопасность? Не очень понимаю о чем там говорят
изображение.png62 Кб, 746x250
1324 2368558
Почему в qt не завезли нормальной документации по кастомизации? Почему я должен вслепую прописывать qstylesheet? Хочу вот сделать няшную табличку как на пике, как это реализовать?
1325 2368565
>>368558

> как это реализовать?


Через нормальные фреймворки типа WPF. Там одним нажатием кнопочки исходники стилей нативных контролов экспортируются в XAML и можешь перепердоливать их как хочешь.
1326 2368593
>>368565

>нормальные фреймворки


>виндоговно


Школа закончилась, цирк начался.
1327 2368645
>>368593
Анальный цирк - это использовать проприетарную либу в опенсорсе и жаловаться на недостатки кастомизируемости. Жри что дают и не морщи ебало.
1328 2368659
>>368558

>Почему в qt не завезли нормальной документации по кастомизации?


RTFM https://doc.qt.io/qt-5/stylesheet-reference.html

>Почему я должен вслепую прописывать qstylesheet?


Сделай текстовый виджет из которого по кнопке будешь присваивать стайлщит

>Хочу вот сделать няшную табличку как на пике, как это реализовать?


Всё можно, за 100$ сделаю за тебя. И даже без qml

>>368645

>проприетарную либу


>проприетарную


Ебанулся? Она опенсорсная и бесплатная.
А вообще, сасихуй, пидар

Салтовка-кум
1329 2368666
>>368659

> Она опенсорсная и бесплатная.


> бесплатная


Чел...
Вот у майков дотнет действительно опенсорсный и бесплатный, под MIT-лицензией. А у qt мало того что GPL, так ещё и есть чисто проприетарные зависимости с проприетарными qt-лицензиями. О какой бесплатности ты говоришь, если в реальном коммерческом продукте ты обязан башлять им бабло и сидеть под проприетарной лицензией? Вы там совсем ёбнулись, петучи?
1330 2368705
>>368558
Хз что те не хватает, на кюмл накатать такой делегат для отображения списка можно за пару минут.
1331 2368715
>>368705
Так у меня уже готовое приложение на qwidget. Как его на qml перевести?
1332 2368752
>>368558
Когда уже "комнатные дизайнеры" поймут, что красивый дизайн заключается не в том, как выглядит твое приложение, а как оно визуально вписывается в систему.
1333 2368821
>>368715
Если уже все на виджетах, то довольно геморройно, но можно отдельные элементы на qquickwidget делать.
image.png16 Кб, 1003x93
1334 2369000
>>368666

>А у qt мало того что GPL


Папизди мне тут
https://doc.qt.io/qt-5/licensing.html
https://doc.qt.io/qt-6/licensing.html

>>368752
Тебе бабки платят (если канешна плотють, лол) за то, чтобы ты реализовывал хотелки заказчика (либо старшего по званию).
Умничать о том, какой должен быть дизайн ты можешь, когда у тебя будет свой стартап и где ты сам будешь музыку заказывать

>>368821
В QTableView можно кастомный делегат просунуть тоже, если чо
https://doc.qt.io/qt-5/qabstractitemview.html#setItemDelegate
Но я бы добивал стайлщиты

Алсо в куте-дезигнере (или креаторе сразу) можно играться со стайлщитами напрямую
1335 2369043
>>369000

> Папизди мне тут


И что ты принёс? У тебя же по ссылкам и написано, что опенсорс под зоопарком разных версий GPL, а коммерческая под проприетарной лицензией самой qt.
1336 2369055
>>369043

>LGPL == GPL


Ясно, изучай матчасть, а потом возвращайся
1337 2369059
>>369055
== != ===
1338 2369066
>>369059
так ты еще и js-петуч. пашол нахуй!
1339 2369080
Глобальные переменные зло?
1340 2369081
>>369080
А то я слышал, что да, но если у меня объект должен жить все время, то почему бы и нет?
1341 2369092
>>369080
Глобальные неконстанты - зло.
1. приколы при рефакторинге
2. приколы при тестировании
3. приколы последовательности создания
4. приколы при остановке программы, деструкции
5. и вообще SOLID йопта

>>369081

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


>все время


Всё да не всё
1342 2369097
>>369055

> Note: For open-source licensed Qt, some specific parts (modules) are not available under the GNU LGPL version 3, but under the GNU General Public License (GPL) instead.


Иди нахуй, слепой петуч.
1343 2369102
>>369097

>Аддоны - это ключевая часть либы


Тебе сказали учить матчасть, а не выебываться.
1344 2369107
>>369080
Всякие литералы и константы математические - норм
1345 2369110
>>369102
Нихуя пошли манёвры. У тебя базовый модуль многопоточности сразу под тремя лицензиями, в том числе и GPL, а ты тут виляешь жопой. Сейчас может ещё скажешь что половина qt ненужно, да? Так же как он у тебя стал бесплатным, так же и на LGPL натягиваешь, шиз.
И я так и не услышал как в реальном коммерческом проекте использовать qt и не сидеть под анальной проприетарной лицензией. Понабежали тут студенты-прыщевики со своей вымышленной швабодкой, которая кончается ровно в тот момент, когда начинаешь писать код не для хобби.
1346 2369112
>>369080
Да нет в общем то. Но раз уж ты в плюсовом треде, то и пользуйся нарративом, который задает язык, ооп, инкапсуляция и тд. Это как на бэхе картошку возить, довольно странное решение, не находишь?
1347 2369118
>>369080
Любые данные хуй пойми где - зло. Классы с состоянием тоже так-то говно в плане архитектуры. Если зайдёшь в какой-нибудь нормальный проект типа UE5, то там в классах почти нет переменных. У тебя данные должны жить ровно столько, сколько нужно коду и уж тем более не валяться где-то снаружи. Подобное говно только во всяких джавах и сишарпах используется, где фанатичный ООП и бюджеты в десятки мегабайт ОЗУ на вывод Хэлоу ворлда в консоль. А кресты никогда не были чисто ООП-языком, нехуй и стрелять себе в ноги, намеренно оставляя потенциальные места для утечки памяти, багов и ухудшения читаемости кода.
1348 2369122
>>369110

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


>Что такое dual licensing


Ну йопт тваю мать, тебе же сказали учить матчасть. Написано же английский по-белому "licensing options" - выбирай любую, а ты опять хуйню постишь

>И я так и не услышал как в реальном коммерческом проекте использовать qt и не сидеть под анальной проприетарной лицензией.


Ну тебе же сказали узучать матчасть, там вообще ничего сложного нет.

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


Ты такой молодой и юный, а уже старый закостенелый пердун, который не может RTFM.
Еще и на мелкомягких дрочишь
1349 2369127
>>369122

> выбирай любую


> Qt contains some code that is not provided under the GNU Lesser General Public License (LGPL)


Вот ты хуесосина тупая, любую выбирать можешь только есть оно под LGPL. У тебя в половине модулей нет выбора. У тебя даже Qt Core не весь под LGPL, дегенерат. Не говоря уже про анальную Qt Commercial License, которую ты в любом случае будешь использовать в любом не опенсорс-проекте.
1350 2369129
Как же хорошо, что можно юзать опенсорсный Qt в коммерческом проекте и ничего при этом не нарушать.
1351 2369143
>>369127

>У тебя даже Qt Core не весь под LGPL, дегенерат.


И тут ты такой с пруфами? Или опять в лужу пердишь?
1352 2369206
и все таки, указатели и символы * & это что такое?
допустим на собесе спрашивают такое, что бы вы ответили? что это просто число? индекс в массиве байт памяти или как
1353 2369223
>>369206
& взятие адреса - получение адреса объекта в памяти
⚹ разыменование указателя - получение ссылки на объект по адресу указателя
Указатель - переменная, хранящая адрес ячейки памяти (адрес 1 байта объекта). Адрес - целый беззнаковый тип от 0 до 2 ^ (разрядность ОС - 1).
1354 2369265
>>369223
что такое переменная?
область памяти? тогда получается что область памяти хранит адрес ячейки памяти
что такое ссылка?
1515244167717.png333 Кб, 1901x1980
1355 2369287
>>369143

> И тут ты такой с пруфами?

1356 2369319
>>369223

>до 2 ^ (разрядность ОС - 1).


Ты чему детей учишь, ирод?
1357 2369340
Пиратка CLION есть у кого, котаны?

в гугле забанили, да.
1358 2369342
>>369340
Есть
1359 2369343
>>369265

>что такое переменная?


абстрактная хуетень, которую ты используешь для временного хранения данных. На практике это либо часть стэка, либо область данных из секции данных(для x86-64 это .data)

>что такое ссылка?


Это синтаксический сахар для указателя. Позволяет менять данные в другой области видимости без разыменовывания указателя и прочей ебалы.
1360 2369344
>>369342
Кинь магнит или еще какую нибудь торрент ссылку.
1361 2369345
>>369223

>Адрес - целый беззнаковый тип от 0 до 2 ^ (разрядность ОС - 1).


Хуету несешь.
FAR/NEAR указатель имеет размер, равный разрядности ОС[в битах].

Указатель стека имеет размерность, зависящую от многих факторов, но обычно это 2 байта.
1362 2369353
>>369287

>Что такое перелицензирование и совместимые лицензии?


Б-же какое ты воинствующее необразованность
1363 2369354
>>369345

> FAR/NEAR указатель имеет размер, равный разрядности ОС


А вот теперь уже вы оба пиздите. Указатели бывают разные, но они почти никогда не бывают в полную ширину, если мы про машинный код говорим. Абсолютные адреса почти никогда не используются в реальном машинном коде, не говоря уже про то что не каждая 64-битная инструкция может принять 64-битный адрес в принципе.
1364 2369361
>>369345

>FAR/NEAR указатель


Вспомнил турбо це и прослезился

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


Подменяешь понятия. Способы адресации в ассемблере - это не указатели.
1365 2369362
>>369353

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


Вот же ты наркоман. Перелицензирование нельзя делать на несовместимые лицензии. У тебя copyleft-лицензии там.

> совместимые лицензии


Тебе там явно пишут что они не доступны под LGPL. Ты совсем дегенерат что ли?
1366 2369367
>>369362

>Перелицензирование нельзя делать на несовместимые лицензии. У тебя copyleft-лицензии


Пруф хоть одной copyleft лицензии в списке

>Тебе там явно пишут что они не доступны под LGPL.


Кто они? Ты можешь матчасть сначала выучить, а потом лезть со своим охуенно важным мнением?
1367 2369374
>>368296
>>368295
Программы которые написаны на этом крайне медленое говно наверняка. Теперь я понял почему всё это говно написаное на шарпах, с .net фремворками и прочим такое медленое
1368 2369375
>>369367

> Кто они?


Модули из Qt, у них список на сайте лежит, блять. Тебе черным по белому написано - те модули доступны только под лицензиями владельцев этих опенсорс-проектов, LGPL не доступна.
1369 2369382
>>368236

>Чтобы один и тот же артефакт работал на любой платформе


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

Раз у меня есть компьютер, мне нужны приложения именно под него, под мой компьтер, а не под какую-то левую виртуальную дерьмину. Это дерьмище, а не приложение. Так что этот мемчик "мультиплатформенность" это лозунг пропагандонов дерьма вместо софта. Мультиплатформенность это дерьмо и не нужна, рак убивающий софт, с которым нужно бороться, травить, уничтожать, обоссывать, а не нахваливать.
1370 2369420
>>369375
Ты мало того что матчасть не учишь, так и английского не знаешь?
Код модулей перелицензирован под LGPL, точка.
Прекращай пердеть в лужу, мастдайщик
1371 2369421
>>369382

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


Тыкнуть бы рожой вот этой базой всем питонистам, шебмакакам, джавистам и сишарперам, для которых "С++ — мертвый язык".
1372 2369424
>>369421
>>369382
Хуясе боль. Пора понять, что выгода от мультиплатформенности в 90% случаев превышает выгоду от оптимизации. Поэтому на рынке кресты все менее и менее востребованы.
1373 2369429
>>369421

>всем питонистам, шебмакакам, джавистам и сишарперам


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

>>369424

>Что такое глубокая интеграция с системой?


Ахаха, лол. То-то уже даже в мобайлговне отказываются от джавасрикт говна и переписывают всё на нативу

>Поэтому на рынке кресты все менее и менее востребованы.


Каком рынке? Очередных НИИ петухов? Или стартаперов смузихлёбов "теперь я тут кабанчик"?
1374 2369431
Нахуя вообще создали все эти фремворки и говно да ещё и запилили их на джаву си шарпы и прочее? Это всё нихуя неоптимизировано.

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

И кстат эти программы максимум быстро работают, а вот гоовно построенное на .net через winforms это уже подтормаживает
1375 2369443
>>369382
Ты не осилишь на байтоёбском небезопасном языке с UB писать такое количество бизнес-говна, какое пишут на интерпретируемой параше. Там для заказчиков важна бизнес-логика, а не оптимизация вызовов методов ради 0.0001% перформанса.
>>369431
Не было такого "раньше" никогда. До жаб и петухонов писали бизнес-говно не на байтоёбских языках, а на коболе, PL/SQL, перле и другой хуйне. Байтоёбство всегда было нишевым.
1376 2369446
>>369443
Спасибо, понял. Буду знать. то есть высокороневные всегда были.
image200 Кб, 592x532
1377 2369450
>>369443

>байтоёбском небезопасном языке с UB



Зумер, срыгни с треда
1378 2369452
>>369443

>байтоёбском небезопасном языке с UB


>оптимизация вызовов методов ради 0.0001% перформанса.



Хуя шебмакака рвётся, даже не додумалась методичку сменить.
1379 2369453
>>369450
>>369452
По делу нечего аозразить? Слиты.
1380 2369480
Каникулы...
1381 2369550
>>369319
Внимательности
sage 1382 2369556
Аноны, узнал тут про uniform инициализацию.
int x{10};
Так вообще делают или все по старинке пишут:
int x = 10;
1383 2369562
>>369550
Внимательности ты учишь не детей.
>>369556
Делают.
1384 2369620
Есть вебка, как к ней подключиться? Как вывести изображение? Как манипулировать изображением? Как сделать быстро и в 1080p60?
1385 2369627
>>369620

>Как сделать быстро и в 1080p60?


mplayer tv://
1386 2369629
>>369627

> mplayer


Прыщавое чмо, плиз.
1387 2369631
>>369629
Ты не дал никаких вводных, а уже выебываешься
Учи DirectX тогда, мастдайщик
1388 2369652
>>369345
В языке нет "указателя стека", нет far/near указателей. Есть абстракция, имеющая тип, который я указал. То что ты натужил - это аспекты реализации модели памяти ОС.
1389 2369659
>>369652

>модели памяти ОС


или среды выполнения
1390 2369676
Как мне написать масштабирующийся график? Есть массив точек который я соединяю линиями. Я решил что масштабирование будет происходить путем умножение координаты точки на коэффициент масштабирования. Коэффициент масштабирования будет прибавляться и убавляться с помощью поворота колесика мышки. Можно будет перемещать график с помощью зажатой левой кнопки мыши. Осталась проблема как мне при увеличении масштаба оставаться в той же точке где мышка стоит. У меня в коде который я скину ниже есть offSetX и offSetY, я вот не пойму каким образом мне нужно добавлять и отнимать значения и что это за значения должны быть.

https://pastebin.com/mP0HWvne
1391 2369684
а можно комплятор от визуалки отдельно скачать? чисто комплятор консольный без этой ебучей студии
1392 2369687
>>369684
Нет, теперь никак.
Можешь скачать mingw.
1393 2369690
>>369687
спасибо. ладно. пожалуйста, скажи, молю а что так сильно gcc от микрософтовского отличается? Ну в плане того какой код генерируется?
1394 2369694
>>369687
Ну mingw короче скачаю. Спасибо. Я уж загуглил что это тотже gcc но под шинду. Мерси.
image.png15 Кб, 903x483
1395 2369697
Двач, нужна помощь.
Есть кнопка, создающая на windows форме массив кнопок. Нужно модифицировать этот код так, чтобы программа создавала эти кнопки в виде цветков. Пытался найти в гугле и что-то нифига дельного не нашел. Код можно глянуть тут https://0bin.net/paste/SxhzkgTX#9gwqRes9DFl4kdmFRL53+BLC-R6x36mzGCxLzG/6FtY
1396 2369700
>>369697

>winforms


Ну это больше наверное в c# тред чем сюда
1397 2369706
>>369700
Это сюда, у него же древний Managed C++/CLI
1398 2369707
>>369676
Что значит в виде цветка? Типо что бы они по кругу вокруг первой кнопки? или что бы они были повернуты перпендикулярно касательной относительно центра окружности вокруг которого они вытроились?
1399 2369712
>>369697
>>369707
ааа, что бы каждая кнопка была сама ввиде цветка, ну это надо юзать маски, либо прозрачные текстурки накладывать
1401 2369718
>>369717
ааа бля там на C#
1402 2369719
>>369706
Жесть я думал они же давно все в шарпистов переродились
1403 2369997
>>369659
А еще я видел интерпретатор С, где можно говнякать скрипты без компиляции. Для С++ наверно тоже есть, хотя хз - для развлечения слишком сложный проект, а ни для чего больше такое не нужно..
1404 2370021

> интерпретатор


g++ hui.cpp -o hui && ./hui && rm -f hui
1405 2370033
>>370021
Значение знаешь?
1406 2370035
1 wHKe6W4opLmk6pb7sxZz6w.png16 Кб, 518x556
1407 2370071
1408 2370073
посоветуйте плиз текстовый редактор для проверки синтаксиса с\с++ желательно без комплятора у меня уже есть. мне просто синтаксис чекать
1409 2370079
>>370073

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


А до этого ты в блокноте что ли писал код?
Capture.PNG23 Кб, 1182x612
1410 2370081
>>370079
Ну вообще-то да. И честно говоря устал уже потому что элементарной подсветки комментариев нет. Хорошо хоть комплятор ошибки выдаёт по которым можно понять. Устал от этого. Посоветуй, пожалуйста, редактор кода.
1411 2370083
>>370073
Такого не существует в природе. Шаблоны только после компиляции скажут что ты пидор.
1412 2370084
>>370083
Хорошо, а можно текстовый редактор к которому можно подключить свой комплятор?
1414 2370088
>>370087
мерси.
1415 2370090
>>370087

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


найс
1416 2370091
>>370090
Ничего не сравнится с тутроиалами от индусов. Хелло тудэй ай виль шоу ю хау то инсталь визуаль студио ту вазуанд найнтин...
1417 2370093
Можно notepad++ скачать и туда комплятор прицепить(вроде бы) это уж прям для таких любителей всё ручками собирать себе.
1418 2370107
>>370081
Советую сходить к доктору, у тебя с башкой проблемы.
1419 2370111
>>370083
Синтаксис все равно чекается, пидор скажут на более тонкие вещи.
1654199418768.jpg161 Кб, 1018x1115
1420 2370113
1421 2370116
>>370111
Да нихуя. До компиляции он может быть нормальным, а после - подчёркнутым красным и с ошибкой.
1422 2370118
>>370113
Блэт а кто же прав, мне одни говорят что в ассемблер а ты говоришь что сразу в двоичный...
1423 2370122
>>370118
Все правы, в разных компиляторах сделано по-разному. В стандарте нигде не сказано "надо обязательно сначала компилировать в ассемблер и только потом в двоичный, иначе у вас не C++".
1424 2370125
>>370122
Спасибо. А как допустим вот излюбленый всеми gcc и g++ компилируют с ассемблером или без? а от майкрософт как?
1425 2370140
>>370125
Он компилирует во внутреннее представление фронтендом, которое потом уже трансформируется бекендом в двоичный код.
1426 2370147
Как в 11 стандарте получить время модификации файла? Есть универсальный способ для всех систем? Сейчас трахаюсь с fs experimental, но ничего рабочего не могу найти.
1427 2370148
>>370140
Спасибо. Последний воропс и я отстану. А g++ по умолчанию в каком режиме компилирует в debug или release? У меня он компилирует программу, но стоит её переместить за пределы директории комплятора она ругается на отстствие библиотек, подозреваю что режим debug стоит
1428 2370179
>>370147
Очевидно, что если нет std::filesystem::last_write_time, то оно есть в бусте. Либо дёргай посекс или винапи.
1429 2370180
Шёл 2к22 год, кресты всё ещё неюзабельны без буста.
1430 2370183
char же везде 1 байт?
1431 2370184
>>370180
Зато есть корутины.
1432 2370187
>>370183
Да, но байт не всегда был 8 бит.
1433 2370191
>>370187
Зато сейчас всегда.
1434 2370195
>>359478
>>359486
Опять я.
Вот только что наткнулся на вот такую хуйню на сайте вскода https://code.visualstudio.com/docs/languages/cpp, пикрел 1. Заставить это дополнение работать у меня не получилось, см пикрел 2.

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

На данный момент могу представить только два возможных способа реализации:
1) Где-то раздобыть уже подписанные в формате doxygen файлы хедеров для сдк винды и заменить ими дефолтные
1.5) самому всё подписать нахуй
2) Научить интеллисенс читать doxygen документацию из стороннего архива.

Ни первый, ни второй, я не ебу где и как находить/делать.
Всё ещё испражняюсь в Visual Studio не code, предпочёл бы ide не менять, но если совсем без вариантов - то хз.

шебм для привлечения внимания приложил
1435 2370196
>>370148
debug/release это понятие VisualStudio. Фактически это наборы директив для компилятора, включая пути для объектных файлов, бинарников и всяких вспомогательных файлов типа pdb. Студия всё это делает за программиста. Проекты под gcc часто пишутся на make файлах и им подобных и там какие-то свои рукодельные конфигурации.
Основное отличие debug от release это уровень оптимизации генерируемого кода. В случае с g++ задаётся флагом -O{0.2.3}. По умолчанию -O0 то есть без оптимизации, что эквивалентно debug. При этом если ты ничего более не указываешь, то всё будет валиться в одну папку перезаписывая то, что там есть.

А то что у тебя бинарь не запускается, так это дело не в уровне оптимизации. Зависимые модули должны либо лежать в одной папке, либо система должна знать где их искать. Допустим в лялексе их надо кинуть в /usr/local/lib и дёрнуть ldconfig.
1436 2370197
>>370195

>Заставить это дополнение работать у меня не получилось, см пикрел 2.


Не исключаю свою рукожопость, кстати. У меня очень хуёво получалось работать с плюсами в vscode потому что, в отличии от вижуал студии, с компилятором приходится работать чуть ли не напрямую
144537564718310874.jpg54 Кб, 673x668
1437 2370216
Аноны, нахуя нужно ООП? В книгах и тытруба нашел примеры, аля, создают два класса - жук и паук. Если вводят цифру 6, то срабатывает первый, если 8 то второй. Зачем ебать себе мозги, вместо написания ифов в две строчки?
С наследованием один тип вообще замудрил. Создал класс А, в нем переменную, унаследовал в класс Б, там унаследованную переменную посчитал со второй. После перекинул все это в класс В и вывел. Пиздец просто. Аноны, приведите, пожалуйста, примеры, где ООП облегчает работу, или без него вообще нихуя работать не будет. Заранее спасибо.
1438 2370248
>>370216
ООП как и почти все в программировании придумали для управления сложностью. Дебильные примеры про жуков, работников и т.п. из учебников вообще не дают понятия нахрена это надо, там слишком простые структуры данных и управления. Надо сразу давать делать что-то более менее структурно сложное, а когда человек охуеет от ифов - показывать как это элегантно решается с ООП
1439 2370250
>>370118
В ассемблер раньше компилировали потому что ассемблер обычно уже был написан, для простоты. Современным компиляторам это обычно не надо, в ассемблер лезут только для использования редких опкодов, которые компилятор не вывозит.
1440 2370251
>>370116
Значит у тебя не очень хороший статический анализатор, не думал об этом? Мой пишет варнинги даже на то, на что гцц пофиг.
1441 2370255
Господа, есть вопрос. Хочу написать программу-поисковик. Пользователь вводит название продукта, и код должен его найти в текстовом файле. С этим текстовым файлом довольно заебно работать и хочу спросить - чем его можно заменить?
1442 2370398
>>370216
Ну я понимаю опп, как свой тип данных. Вот у нас есть int, float, string. Я представляю это все ввиде коробочек в которые мы ложим значения и при необходимости можем их достать. А вот иногда нужно к примеру написать такую коробочку, но которая была бы с функционалом, например нужно написать коробочку в которую ты ложишь int, она этот int принимает в себя, но когда ты захочешь взять обратно, то что в ней лежит, то ты можешь попросить коробочку: "А ну ка, коробочка, выдай мне значение которое я тебе дал, но что бы оно было не в int, а в string. (типо положили число 123, а когда захотели получить в string, то получили строку "123")". Или же эта коробочка может вычислять квадратный корень, числа которого положили, и тебе не нужно писать sqrt(переменная), ты просто пишешь коробочка.квадратный_корень_числа_которое_лежит_в_тебе. Просто так удобно, и это позовляет писать меньше кода, но программа может становиться более многофункциональной. Ты просто знаешь что у тебя есть объекты с такими то функциями и такими то данными. Ну и опять же, с жучками пример. Допустим ты пишешь игру - шутер, где нужно стрелять по жукам, и в зависимости от того куда ты попадешь, наноситься жуку разный урон. Допустим есть класс Жук, и у него есть следующие поля(переменные класса):

int Здоровье_жука;
координата Голова_жука;
координата Тело_жука;
координата Усы_жука;
координата Ноги_жука;
Также у жука есть метод(функция класса):
int проверить_попадание(координата координата_пули);
{
if(координата_пули == Голова_жука)
{
return 50;
}
if(координата_пули == Тело_жука)
{
return 10;
}
if(координата_пули == Усы_жука)
{
return 5;
}
if(координата_пули == Ноги_жука)
{
return 5;
}
return 0;
}

В классе Жук я использовал, класс(тип переменных) координата
Он имеет следующие поля

class координата
{
public:
int x;
int y;
//По хорошему нужно еще написать переопределение оператора == для класса координата, что бы можно было писать вот так - координата1 == координата2, типо что бы научить понимать компьютер, что из них больше, а что меньше. Но я ни разу не переопределял операторы(Не было нужды), поэтому не знаю как это делается.
}
Так вот теперь когда ты стреляешь, можно в каждом цикле игры вызывать следующий алгоритм: Жук.Здоровье_жука = Жук.Здоровье_жука - Жук.проверить_попадание(координата_пули);
Ну вообщем ооп нужны что бы меньше кода плодить, это все равно что не использовать функции, а просто брать и копировать код. Гораздо легче написать функция такая то вот тебе данные сделай с ними что то. Чем каждый раз Ctrl+V код вставлять.
1442 2370398
>>370216
Ну я понимаю опп, как свой тип данных. Вот у нас есть int, float, string. Я представляю это все ввиде коробочек в которые мы ложим значения и при необходимости можем их достать. А вот иногда нужно к примеру написать такую коробочку, но которая была бы с функционалом, например нужно написать коробочку в которую ты ложишь int, она этот int принимает в себя, но когда ты захочешь взять обратно, то что в ней лежит, то ты можешь попросить коробочку: "А ну ка, коробочка, выдай мне значение которое я тебе дал, но что бы оно было не в int, а в string. (типо положили число 123, а когда захотели получить в string, то получили строку "123")". Или же эта коробочка может вычислять квадратный корень, числа которого положили, и тебе не нужно писать sqrt(переменная), ты просто пишешь коробочка.квадратный_корень_числа_которое_лежит_в_тебе. Просто так удобно, и это позовляет писать меньше кода, но программа может становиться более многофункциональной. Ты просто знаешь что у тебя есть объекты с такими то функциями и такими то данными. Ну и опять же, с жучками пример. Допустим ты пишешь игру - шутер, где нужно стрелять по жукам, и в зависимости от того куда ты попадешь, наноситься жуку разный урон. Допустим есть класс Жук, и у него есть следующие поля(переменные класса):

int Здоровье_жука;
координата Голова_жука;
координата Тело_жука;
координата Усы_жука;
координата Ноги_жука;
Также у жука есть метод(функция класса):
int проверить_попадание(координата координата_пули);
{
if(координата_пули == Голова_жука)
{
return 50;
}
if(координата_пули == Тело_жука)
{
return 10;
}
if(координата_пули == Усы_жука)
{
return 5;
}
if(координата_пули == Ноги_жука)
{
return 5;
}
return 0;
}

В классе Жук я использовал, класс(тип переменных) координата
Он имеет следующие поля

class координата
{
public:
int x;
int y;
//По хорошему нужно еще написать переопределение оператора == для класса координата, что бы можно было писать вот так - координата1 == координата2, типо что бы научить понимать компьютер, что из них больше, а что меньше. Но я ни разу не переопределял операторы(Не было нужды), поэтому не знаю как это делается.
}
Так вот теперь когда ты стреляешь, можно в каждом цикле игры вызывать следующий алгоритм: Жук.Здоровье_жука = Жук.Здоровье_жука - Жук.проверить_попадание(координата_пули);
Ну вообщем ооп нужны что бы меньше кода плодить, это все равно что не использовать функции, а просто брать и копировать код. Гораздо легче написать функция такая то вот тебе данные сделай с ними что то. Чем каждый раз Ctrl+V код вставлять.
1443 2370434
>>370196
спасибо понял. просто проблема в том что эти модули не относятся к моей программы этоо библотеки комплятора самогоо. на другом компляторе она компилировалась и без всяких проблем перемащалась.

в любом случае сппасибо анон, годно пишешь. пойду тогда сам гуглить не буду тебе на мозг садиться
1444 2370436
>>370250
Спасибо анон, за поправочку тоже.
1445 2370439
Как мне написать масштабирующийся график? Есть массив точек который я соединяю линиями. Я решил что масштабирование будет происходить путем умножение координаты точки на коэффициент масштабирования. Коэффициент масштабирования будет прибавляться и убавляться с помощью поворота колесика мышки. Можно будет перемещать график с помощью зажатой левой кнопки мыши. Осталась проблема как мне при увеличении масштаба оставаться в той же точке где мышка стоит. У меня в коде который я скину ниже есть offSetX и offSetY, я вот не пойму каким образом мне нужно добавлять и отнимать значения и что это за значения должны быть.

https://pastebin.com/mP0HWvne
1446 2370474
>>370439
Написать функцию преобразования координат из оконных в координаты графика и обратно? При преобразовании запоминать реальные координаты, потом их восстанавливать.
1447 2370483
1448 2370555
У меня rsa в дебаг режиме генерируется порядка 4-9 секунд (как повезет) в дебажном режиме. Почему так долго? Понятно, что в релизе будет быстрее(интересно на сколько, ведь я еще не тестил). Но как то супер медленно, имхо. Как всякие i2p используют ассимнетричное шифрование и не грузят проц? Чяднт?
1449 2370633
>>370180
ой да ладно, по большому счету в бусте из действительно нужного только asio так как предоставляет кроссплатформенную обертку для асинхронного io
1450 2370645
>>370633
А как же сигналы и слоты?
1451 2370747
>>370555

>используют ассимнетричное шифрование и не грузят проц


Минимизируют его использование.
1452 2371152
>>366470
Бамп
1453 2371159
>>370216
Работать начни, писать большие проекты и поймешь. Вообще ооп не панацея, тем более с современного взгляда на прогу, но без него не обойтись в любом болилимени крупном проекте, это коммерческий подход, профессиональный код над которым могут работать сразу несколько человек
15795260281-1.png1 Мб, 1600x1131
1454 2371270
Анон, как сделать, чтобы выдавалась ошибка, если путь к создаваемым файлам в sprint_s введен некорректно?

https://hastebin.app/629afff9191a62001c35ebaf

Сейчас вообще никаких ошибок, даже если туда написать хело ворлд.
1455 2371277
>>371270
Доки прочесть религия не позволяет? Проверяй что поток good.
1456 2371329
>>371277
зачем рыться в каких то унылых доках, когда гномики на форумах готовы отвечать на любой банальный вопрос
1457 2371330
>>371329
Затем что мозг усохнет и ты не вкатишься.
1458 2371426
>>371270

>sprintf_s(buf, "C:/Users/user/Desktop/test/test%d.txt", i);


Читаю https://docs.microsoft.com/ru-ru/cpp/c-runtime-library/reference/sprintf-s-sprintf-s-l-swprintf-s-swprintf-s-l?view=msvc-170, а там

>int sprintf_s(char buffer, size_t sizeOfBuffer, const char format,...);


Ты неправильно функцию вызываешь
1459 2371501
Можно ли как то boost::asio::async_wryte для нескольких данных сразу вызвать, чтобы он друг за другом их записал? А то я хочу отправить размер файла и файл, а копировать целиком файл в новое место, чтобы вплотную размер записать долго. Писать async write внутри другого плохо и муторно.
1460 2371512
>>371501
А все, сори.
1461 2371522
приказ: в кратчайшие сроки осуществить перекат треда
об исполнении доложить
1462 2371524
Умные указатели это дорого? А то я в асинхронщине прям обмазался люто ими. По идее там только 8 байт скопировать, да счетчик поменять. Звучит дешево
1463 2371525
>>371522
Приказываю тебе в кратчайшие сроки осуществить перекат треда. Об исполнении доложить.
1464 2371532
>>371524

>в асинхронщине прям обмазался


Главное чтоб не в многопоточности
1465 2371543
>>371525
боец ты охуел? наряд в /b/ вне очереди
1466 2371632
>>371524
shared_ptr неатомарный, так что потом очком своим за него расплатишься. А так да, копейки.
1467 2371634
>>371632
У меня с порядком норм. Я его последовательно тягаю
1468 2371636
Я пишу код в visual studio и vcpkg. Другой чел пишет на линуксе хуй знает в чем. Схвает ли моя vs его cmake?
1469 2371639
>>371636
Все таки в qt creator, а не в хуй знает в чем. Уточнил
изображение.png4 Кб, 794x35
1470 2371757
Что за модули умножения? Это видимо что то от cryptopp. Почему это модули? Если это модули, то оно видимо дергает какие то либы постоянно для умножения?) Это разве не долго? Нельзя это оптимизировать?
1471 2371759
>>371757
А, лол. Это несколько модулей, а не умножение. Но все равно вопрос остается таким же
1472 2371818
У меня сервер хранит ссылку на мапу из объектов которые он дергает потом в обработчике. И получается такая забавная вещь: если вдруг объект в мапе удалится, то будет ub. Объекты могут удаляться - это дело рук пользователя приложения. Пока в голову приходят три костыля:
1) запретить пользователю вообще удалять объекты
2) Разрешить, но делать это при выходе из приложения когда все операции с объектами завершены
3) (Кстати это уже походит не на костыль, а на решение). Написать обертку, которая кстати будет потокобезоасность обеспечивать и которая будет за запросы к объекту возвращать shared_ptr на него и в случае если пользователь хочет удалить объект, проверять, что на него указывает всего один умный указатель и удалять. Иначе давать ошибку.
Мнения?
1473 2371875
>>371818
ub из-за чего? У тебя итерация по мапе на серверсайде? Тогда это iterator invalidation.
Если же на сервер сайде ты просто дергаешь по ключам элементы, то в чем проблема делать if (find(…)) {} ?
1474 2371876
>>371875
> if (find(…)) {}
Пока искал элемент был, а потом пропал и всё.
1475 2372000
Можете посоветовать хороший гайд по Qt Quick, Qml? Попытался гуглить, но путного ничего не нашёл.
1476 2372021
>>372000
Хочешь что то сделать, гуглишь как это сделать, копипастишь. Всё, постепенно разберешься если регулярно писать будешь что-то. Ну а если нет, то и нахуй не надо
image.png8 Кб, 57x65
1477 2372040
>>370195
>>370197
Бамп вопросу первый и последний, наверное.
iyt13pu59o291.mp41,2 Мб, mp4,
520x292, 0:10
1478 2372511
1479 2372597
>>370250
Вроде сейчас большая часть языков компилируются в LLVM IR где можно провести оптимизации под процессор/архетектуру.
Длинная и нудная лекция на эту тему https://youtu.be/rLshTsxgDcw
1480 2372603
>>371818
Насколько помню shared_ptr имеет интересный контрольный блок. Он считает ссыки на shared_ptr и weak_ptr Если кол-во ссылок на шаред равно нулю - он удаляет объект, но продолжает существовать если есть живые ссылки слабый указатель.
1481 2372607
>>371818
Бля, я жоска уебался при попытке реализовать третий вариант. Я с атомными умными указателями не работал. Ладно, выглядит не запредельно сложно. Потом напишу как нибудь.
1482 2372610
>>370434
Тот чел не совсем прав. Дебаг/релиз это не уровень оптимизации. В дебаге в бинарник добавляется отладочная информация
1483 2372724
>>372610
Спасибо большое за дополнение возьмём на заметку, анон.
1484 2372736
>>372610
Там даже на уровне стл различия, в дебаге вектор проверяет выходы за пределы памяти например.
1485 2372756
>>372736
А это дополнительные инструкции в программу?
1486 2372759
>>372756
Конечно
1487 2372763
>>372759
Мерси.
1488 2372840
>>345617 (OP)
сап двачик, помогите ньюфагу.

1. Зачем нужны аргументы функции? в чем заключается принципиальное отличие присваивания значения переменной через вызов функции и просто объявлением?

2. Зачем нужны указатели? Только для работы с памятью?
1489 2372877
>>372610
Тот чел сказал ((основное отличие)).
Есть ещё ряд функций и макросов типа std::assert, которые убираются в "release" версии.

А то что отладочных символов нет в release версии - это ты жиденько серишь. Ты можешь дебажить и релизную версию. Чтобы удалить символы из объектника ему надо делать strip (команда в лялексе такая).
1490 2372879
>>372877

> лялексе


Никто этим говном не пользуется, в нормальных ОС отладочные символы всегда отдельно от бинарника в pdb лежат.
1491 2372889
>>372879
1. Чел использует mingw / GCC / g++.
2. pdb генерируется и для release, то есть отладочные символы есть ((всегда)).
1492 2372892
(((отладочные символы)))
1493 2372917
>>372840

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


Указатель указывает на кусок памяти. При том память может быть как данными, так и функцией. Архитектура фон Неймана едить её.

>в чем заключается принципиальное отличие присваивания значения переменной через вызов функции и просто объявлением?


Не совсем понял вопроса.
1494 2373096
https://godbolt.org/z/hKhGjxEEW
Нормально ли писать так сеттер? Можно ли сделать лучше?
1495 2373197
>>373096
Чел, ну что за хуита? Ты в прошлом треде что ли подхватил про std::move? Иди читай про copy elision и учись правильно пользоваться им. А ещё концепт убери, у тебя там одинаковые методы генерятся ещё и с кучей оверхеда, хотя строку можно и без этого говна в одну функцию передавать.
1496 2373271
Поясните твердо и четко, нахуя &&:
1) в аргументах функции
2) в переменных внутри функции
3) в полях класса/струткуры
1497 2373280
>>373271
Я байтодебил кукож либераха, так что если че пойму на низкоуровневых примерах, мне так проще.
1498 2373290
>>373271
Как я понимаю && в описанном тобой контексте используется как обозначение Rvalue. Если смотреть глубже, то это короткоживущие объекты которые будут очень скоро удалены. Это позволяет тебе реализовывать вместо копирования - перемещение. К слову после функции можно то же поставить один или два амперсанта, что позволит компилятору вызывать разные функции при встрече с разными ссылками.
1499 2373291
>>373290

>Это позволяет тебе реализовывать вместо копирования - перемещение


падажжи это как? Ка кэто реализовано? Вот копирование понятно как, mov dest, src
или load effective address
1500 2373294
>>373291
Это волшебная крестовая абстракция, впиленная в язык с целью повышения количества UB в коде.
1501 2373295
>>373294

>впиленная в язык с целью повышения количества UB в коде.


То бишь хуйня без задач правильно пынямаю?
1502 2373303
>>373295
Ну на сколько я помню lvalue - это у чего есть адрес в памяти, а rvalue - всё остальное (вроде есть ещё xvalue и gvalue но это фетишистам любящим стандарт оставим)

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

Если ты используешь правую ссылку для инициализации. Это значит, что источнику, откуда ты копируешь жить осталось 2 понедельника. И можно не выделять память, дрочить указатели и так далее. А просто свапнуть их местами.

Как пример - строки. Вроде с 11 года COW (копирование при записи) строки в стандарте запретили. По этому копируя строку по левой ссылке ты будешь выделять память. А через правую - просто переместишь.
1503 2373314
Кстати от мува в пределах одного скопа помимо простой передачи владения есть какой-то профит? Он же для примитивов память не освобождает?
1504 2373319
>>373314
Мув просто перемещает же. Памятью объект сам должен управлять.
1505 2373320
>>373319
Ну це да, вот я и спрашиваю есть ли смысл мувать.
1506 2373322
>>373320
Ну только из временного объекта жи.
1507 2373330
А допустимо ли для записи в переменную a по адресу писать так &a?
Или лучше создать указатель
a и использовать его?
1508 2373340
>>373271
&& нужно, чтоб перегружать функции; можешь ебануть
int f(int &x) {return x;}
int f(int &&x) {return x + 1;}

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

перегрузку с && у тебя получится вызвать с хуйнями, у которых имени нет, вроде литералов f(0) -> 1 или те штуки, которые вернула другая функция f(f(0)) -> 2

если у тебя уже есть переменная, вроде
int x = 0;
то ты можешь вызвать перегрузку с && вот так:
f(static_cast<int &&>(x));
это и есть знаменитый std::move, который нихуя не двигает, а просто кастует

эта хуетень появилась примерно так -- пиздец как захотелось сделать альтернативу копированию, а именно -- перемещение, которое получает ссылку на объект, уродует его, пиздит все ресурсы и так далее, но!
непонятно епта как между перемещением и копированием различать, как кого вызывать, какие у уонструкторов сигнатуры должны быть, типа T(T const &) и T(T &)? ты как минимум ебанешься педалить код так, чтобы вызывалось то, что нужно.
ну и придумали хитровыебанные ссылки с хитровыебанными правилами. что тут хитровыебанного, казалось бы?

вспомним выше определенные f(int &) и f(int &&) и ебанем вот такое:
template<typename T>
auto g(T &&x) {return f(x);}
ну и как ты думаешь, что вернет g(0)? 0 ебать, вот так вот!

чё происходит? T честно выводится как int, это можешь проверить сам; значит, что-то нехорошее происходит при вызове f(x)
знакомься ебать, правило схлопывания ссылок!
предлагается мыслить примерно так: упоминание переменной это же ну типа ты на переменную ссылаешься, да? так вот, при упоминании переменной ты прихуяриваешь к её типу &, вот и сослался. был у тебя int &&, стал int && &, и как-то дохуя стало этих &&&, поэтому, мы их схлопнем:
T & & -> T &
T & && -> T &
T && & -> T &
T && && -> T &&
запоминай как хочешь, лично мне напоминает булеаны и логическое умножение, или сложение, да в принципе похуй

ну вот тебе и разгадка: если был какой-то x с типом int &&, он входит в f(x) как int && & -> int &, соответственно, получается 0

ответом на вопрос "сука я хочу чтобы ссылка осталась такой, какой я её сунул в первую функцию" является конструкция std::forward<T>(x), где x был объявлен как T && -- это важно, именно &&, именно под эту хуйню и написали этот несчастный forward -- он, зная T и зная, какой получился x, выдаёт всё, как ты хочешь
1508 2373340
>>373271
&& нужно, чтоб перегружать функции; можешь ебануть
int f(int &x) {return x;}
int f(int &&x) {return x + 1;}

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

перегрузку с && у тебя получится вызвать с хуйнями, у которых имени нет, вроде литералов f(0) -> 1 или те штуки, которые вернула другая функция f(f(0)) -> 2

если у тебя уже есть переменная, вроде
int x = 0;
то ты можешь вызвать перегрузку с && вот так:
f(static_cast<int &&>(x));
это и есть знаменитый std::move, который нихуя не двигает, а просто кастует

эта хуетень появилась примерно так -- пиздец как захотелось сделать альтернативу копированию, а именно -- перемещение, которое получает ссылку на объект, уродует его, пиздит все ресурсы и так далее, но!
непонятно епта как между перемещением и копированием различать, как кого вызывать, какие у уонструкторов сигнатуры должны быть, типа T(T const &) и T(T &)? ты как минимум ебанешься педалить код так, чтобы вызывалось то, что нужно.
ну и придумали хитровыебанные ссылки с хитровыебанными правилами. что тут хитровыебанного, казалось бы?

вспомним выше определенные f(int &) и f(int &&) и ебанем вот такое:
template<typename T>
auto g(T &&x) {return f(x);}
ну и как ты думаешь, что вернет g(0)? 0 ебать, вот так вот!

чё происходит? T честно выводится как int, это можешь проверить сам; значит, что-то нехорошее происходит при вызове f(x)
знакомься ебать, правило схлопывания ссылок!
предлагается мыслить примерно так: упоминание переменной это же ну типа ты на переменную ссылаешься, да? так вот, при упоминании переменной ты прихуяриваешь к её типу &, вот и сослался. был у тебя int &&, стал int && &, и как-то дохуя стало этих &&&, поэтому, мы их схлопнем:
T & & -> T &
T & && -> T &
T && & -> T &
T && && -> T &&
запоминай как хочешь, лично мне напоминает булеаны и логическое умножение, или сложение, да в принципе похуй

ну вот тебе и разгадка: если был какой-то x с типом int &&, он входит в f(x) как int && & -> int &, соответственно, получается 0

ответом на вопрос "сука я хочу чтобы ссылка осталась такой, какой я её сунул в первую функцию" является конструкция std::forward<T>(x), где x был объявлен как T && -- это важно, именно &&, именно под эту хуйню и написали этот несчастный forward -- он, зная T и зная, какой получился x, выдаёт всё, как ты хочешь
1509 2373346
>>373340
а, забыл добавить
в итоге, люди пишут примерно так:
struct T
{
----int a;

----T(T const &t) : a(t.a) {} // copy
----T(T &&t) : a(t.a) {t.a = 0;} // хитровыебанный move
};

че где копируется и перемещается:
T t1 = {1};
1. переменная копируется:
T t2(t1);
// t1.a -> 1, t2.a -> 1
2. перемещённая переменная перемещается:
T t2(static_cast<T &&>(t1));
или, более человечно, T t2(std::move(t1));
// t1.a -> 0, t2.a -> 1
3. безымянное перемещается:
T t3(T{2});
// t3.a -> 2, безымянное сначало обнулилось, потом умерло
4. константное хуй переместишь, скопируется:
T const t4(t1);
T t5(std::move(t1));
// t4.a -> 1, t5.a -> 1
потому что T const && может превратиться в T const &, а в T && не может. спасибо, что конст
1509 2373346
>>373340
а, забыл добавить
в итоге, люди пишут примерно так:
struct T
{
----int a;

----T(T const &t) : a(t.a) {} // copy
----T(T &&t) : a(t.a) {t.a = 0;} // хитровыебанный move
};

че где копируется и перемещается:
T t1 = {1};
1. переменная копируется:
T t2(t1);
// t1.a -> 1, t2.a -> 1
2. перемещённая переменная перемещается:
T t2(static_cast<T &&>(t1));
или, более человечно, T t2(std::move(t1));
// t1.a -> 0, t2.a -> 1
3. безымянное перемещается:
T t3(T{2});
// t3.a -> 2, безымянное сначало обнулилось, потом умерло
4. константное хуй переместишь, скопируется:
T const t4(t1);
T t5(std::move(t1));
// t4.a -> 1, t5.a -> 1
потому что T const && может превратиться в T const &, а в T && не может. спасибо, что конст
1510 2373348
>>373346
блджядь
T t5(std::move(t4));
1511 2373615
>>345617 (OP)
opengl это альтернатива directx или они вместе могут быть в в проекте?
1512 2373814
>>373615
Это инструмент для управления видеокартой. Как и vulkan и metal api. Их основное назначение - рисовать на мониторе. Ты можешь их включить в один проект, дабы была кросплатформенность. Но тебе нужно тогда будет придумывать более абстрактную обвязку к ним.
1513 2373879
>>373615
Да, альтернатива, ты либо используешь одно, либо другое.
image.png273 Кб, 3064x1002
1514 2373933
list <connection>::iterator it = listConnection.back();

почему подчеркивает ошибкой

и зачем во всех гайдах пишут вот так?
it = listConnection.erase(it);
почему нельзя просто удалить элемент, а нужно обязательно приравнивать итератор, типо приудалении он возвращает теперь новый элемент который теперь занял его место?
1515 2373965
>>373933
Back это не итератор, а ссылка на элемент.
Используй auto.
Ну и до кучи https://en.m.wikipedia.org/wiki/Erase–remove_idiom
1516 2373967
>>373933
auto it = huita.back();
1517 2373971
>>373965
ну я не хочу использовать auto, и как мне удалить последний элемент листа? end() - 1?
1518 2373978
>>373971
pop_back()
Почитай мануал, не ленись.
1519 2373980
>>373978
ох ё, точно, я забыл что такое есть
image.png354 Кб, 3051x1399
1520 2373982
>>373978
стой не уходи, не знаешь что может быть не так?
1521 2373992
>>373982
Предположу что в классе connection у тебя есть буфер вида char buff[16424]. Либо убирай флаг компилятора (или это санитайзер/решарпер/или что там у тебя стоит) либо выделяй в куче через new int[size].
1522 2373995
>>373982
Ебать у тебя монитор конешн. Неужели удобно?
1523 2374000
>>373992
но ведь лист выделяет данные в куче, то как может быть что элемент char buff выделиться не в куче.
image.png36 Кб, 687x462
1524 2374005
>>373995
это на работе, какой дали с таким и сижу, я до этого пользовался монитором 4 на 3, 1240 на 1024. Нормально, удобно, иногда приходиться шею чуть чуть поворачивать, что бы нужное увидеть
1526 2374016
>>374000
Выражение в скобках (connection()) это создание временного безымянного объекта на стеке, которое потом копируется/сдвигается в новый элемент std::list (который создан в куче).
1527 2374017
>>374016
точно, это надо создать в куче его и патом сдвинуть в листе
1528 2374020
>>374017
и удалить патом
1529 2374290
Как вкатиться во многопоток?
1530 2374506
А как вообще пишут сложные приложения на плюсах без кутов? Точнее без механизма сигналов слотов.
Вот допустим у меня есть класс повар, готовящий печенья и класс, продавец эти печенья продающий, оба работают в отдельных тредах. И как вы сообщите продавцу что печенье готово и положите его в ящик очередь на продажу? На кутах понятно, просто сигнал вызвать соединяющий два класса.
Кстати что вообще про сигналы-слоты думаете? Есть какие то подводные камни использования? Я пока не столкнулся, по-моему очень крутая штука. Подобное вообще есть в ядре других языков?
1531 2374509
>>374506

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


Это подход всяких джаваскриптов: верить в магию, не задумываться, как она работает, хуйнул готовый компонент из фреймворка, и всё заебись. Хотя хватило бы обычной конкурентной очереди.
1532 2374528
>>374506
Никак. Куты и существуют чтобы дрессировать макак-рабов которые без кутов не могут. Хитрожопая схема подсаживать на зависимость всякий слабохарактерный сброд, которого всегда дохуя, а значит стабильный бизнес гарантирован.
16436537685330.gif1,3 Мб, 379x400
1533 2374640
чому нельзя написать using для неймспейса((
я хотел сделать типо два класса foo::bar::win32::Window и foo::bar::x11::Window, и потом написать

using foo::bar::win32
или
using foo::bar::x11

чтобы можно было писать win32::Window или x11::Window

но так нельзяяЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ
1534 2374645
>>374640
using win32 = foo::bar::win32;
using x11 = foo::bar::x11;
1535 2374647
>>374645

> namespace win32 = foo::bar::win32;


> namespace x11 = foo::bar::x11;


Fix
1536 2374650
>>374647
хайпово спасибо
1537 2374678
>>374509
>>374528
Информативно, а я и не спорю что макака, но пытаюсь тащемто разобраться
1538 2374725
Блять я умолюя ну помогите на ёбаные советы из интернета не работают уже забеался. Ну как этой ёбаный sqlite3.h прилинковать на c++ умоляю блять поомгите нахуй заебался уже блять с этой поеботиной ебучей

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

Уже и блять вставлял туда оригинальный файл кэтому заголовку ебаному который sqlite.c и с ним комплировал и в связке блять и dll библоетку высрать пытался по официальной команде из гайда с оф сайта к моему копилятору один хуй ошилбки ошибки блять ебаные ошибки сука нахуй тогда вообще эти гайды ебаные елси там одни ошибки блять лучше бы вообще не пислаи нахуй
1539 2374728
>>374725
Ну как блять ну почему эта залупа пиздец что она не видит эту ебаную бибилиотеку ну в чём дело от блять7 Ну сука же объявлена она как в той же директории блять лежит там файл ну сука ну что блять что блять не так то нахуй что блять не атк ёбаная тварь?
1540 2374735
>>374725
Как ты линкуешь sqlite3.dll?
1541 2374750
>>374735
Никак. Я не могу собрать эта ёбаную хуйню. Вот вот я слинковал нахуй по официальному гайду нахуй официальной командой блять вот оно нахуй .dll библиотека эта ебаная блять вот что у меня вышло блять сука. Не комлилируется ни библиотека, ни на голую этот ебаный файл не подключается НИ-ХУ-Я. нахуя этот гайд писали не знаю блять, с таким же блять усппехом могли бы и не писат эту хуйню ебаную

Я просто тупо беру и голвый .h файл инклюдом включаю и всё.

Ссылка на ссаный бесполезный ебаный гайд по компиляции https://www.sqlite.org/howtocompile.html
1542 2374753
>>374735
Я уже блядь эту ебаную библотеку с исходниками и в дефолтные либры комплятора впихивал и чё только блядь я не делал я уже блять не знаю как эту хуйню сликновать блять я сука блять ненавижу нахуй эту поеботину ебаную блять сука. Мне блять хуйню делать надо блять я на этой хуйне ебаной сижу из за того что эти гайды ебаные поеботина блять и эти пидоарсы из формов SOLVED блять которые пишту очевидную хунйю ой а блядь добавьте инклюд нахуй вы забыли её включить ВОТ Я ДОБАВИЛ НАХУЙ НЕ РАБОТАЕТ СУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУУКА
1543 2374759
>>374750
>>374753
>>374735
А всё я долбаёб. Прри компляции .dll ббилиотеки надо было убрать с третьего скрина назване исходника потому что он уже включен. я смотрю он пишет в ошибках множественное определение то есть я как бы один файл 2 раза компилировал. всё скопилировал. я долбаёб да я знаю
1544 2374774
>>374735
>>374735
>>374735
>>374735
ОООООООООООООО КАЕФ ЭТО СКОМПИЛИРОВАЛОСЬ ВМЕСТЕ С .DLL БИБЛЕОТКОЙ. ТАКОЙ КАЕЕЕЕФ ПОЙМАЛ БЛИН. Ребят спасибо огромное вам.. ООООО ОНО СКОМПИЛИРОВАЛОСЬ НАКОНЕЦ-ТО Я СМОГ ЗАГРУЗОЧНЫЙ МОДУЛЬ ДОПИСАТЬ А ТО Я ОХУЕЛ СО ВЧЕРАШНЕГО ДНЯ.

не люблю просто когда на хуйне останвлвиается всё
1545 2374777
Мммм. Я понял в чём ошибка была. Мало одного файла sqlite3.h положить в папку нужно ещё его sqlite3.c скомпилировать в либру .dll и потом .dll + sqlite3.h закинуть в папку с проектом.

А вот они пробелы в знании о работе компляторов и компоновщиков...
1546 2374778
падает на этом коде программа, что не так?
1547 2374782
>>374778
Типо после того как я удалил элемент списка, то функция erase вернула елемент который при удалении занял его место, тоесть если у меня одно соединение, то у меня получается удаляется единственный элемент, и патом он заменяется end(), а так как у меня в конце каждой итерации i++, то итератор пытается выйти за приделы списка и получается ошибка, так что ли? И как это обойти? А почему во всяких примерах это работает, а у меня нет?
image.png28 Кб, 1071x334
1548 2374786
>>374782
ну да, так и есть, блять какие же контейнеры уебанские в stl
1549 2374792
>>374786
Да нормальные там контейнеры, просто они обмазаны универсальностью.
1550 2374803
>>374786
Нормальный человек напишит это гораздо проще через remove_if
1551 2374844
>>374778
Ну ты и костелеписец. Ты же лабу просто делаешь, да? Надеюсь что да
1552 2374855
>>374844
Невозможно знать все сахарные функции
1553 2374872
>>374844
нет, не лабу, но эта программа ни куда не пойдет
1554 2374880
Ходит слух что вкат в программирование через с++ самый сложный, но при этом именно на этом языке много вакансий где вроде как не требуют знания 9 тысяч технологий. Где правда ?
1555 2374888
>>374880
Пиздеж. Вакансий вообще нет для вкатунов. Учи шарп, там тоже особо не надо знать левые фреймворки, всё свое. Лучший язык для вката и первой работы.
1556 2374893
>>374880
лично мне повезло я вкатился в работу на С++ с уровнем знания - я умею создавать классы и писать функции.
У меня специальность не программистская, у меня на 1 курсе было программирование С++, а дальше я сам изучал чуть чуть. Начал пытаться устраиваться на разные работы, делал тестовые задания, попутно изучая С++, меня не брали, а патом взяли. уже 5 месяц работаю
1557 2374894
>>374855
Начнем с того что это база. Закончим тем что написано дебильно и некрасиво, даже исправленная версия
1558 2375015
>>374778
std::erase_if / remove_if
image.png9 Кб, 623x126
1559 2375165
Ребята, не понимаю. Как в данной функции, вводя логин пароль сохранить полученные значения? Всё до чего я додумался, это привязать вводимые значения к конкретному человеку через объект класса(Но я не уверен что мыслю в нужном направлении).
1560 2375184
>>375165
Храни в базе данных, захешировав пароль
1561 2375208
а что означают двойные звёздочки?
есть p
а
*p это что?
1562 2375211
>>375208
разметка сработала вот есть

p

а что такое
*p?
ццццц.PNG27 Кб, 460x480
1563 2375214
>>375208
>>375211
блять как это всё заебало.

p
*p - что это?
1564 2375220
>>375214
Указатель на указатель
1565 2375221
>>375220
Серьёзно?
1566 2375226
>>375221
Что тебя смущает?
1567 2375228
>>375184
Понял, спасибо
1568 2375230
>>375226
А зачем нужен указатель на указатель? В чём смысл? Почему просто не передать сразу указатель зачем на него указатель делать?
1569 2375234
>>374880
Для вката достаточно получить техническое образзование и потом идти в гос или окологос контору. Сложен не сам вкат, а поиск сытого места в позиции мидл.

В текущих реалиях язык самодостаточен. В довесок может идти немного питона, Qt / boost, линукс и git. Всё остальное сильно специализировано и вкатуну не нужно.
1570 2375245
>>375230
Смысл в том, что есть такой ущербный язык как C. В этом чудесном языке нет ссылок. И вот допустим тебе надо из функции вернуть через параметры объект, созданный в функции:

Вот так не сработает:
void func(object⚹ obj_ptr ) { obj_ptr = malloc(...); }
object⚹ ptr = NULL;
func(ptr); // ptr == NULL
потому что ptr передаётся по значению и в func это локальная переменная

Поэтому передают указатель на указатель:
void func(object⚹⚹ obj_ptr ) { ⚹obj_ptr = malloc(...); }
object⚹ ptr = NULL;
func(&ptr); // ptr != NULL

И соответственно ⚹⚹ это обычно либо код, который писал говноед, перекатившийся из С, либо это использование компонент, написанных на C.
1571 2375248
>>375245
Спасибо, анон годно расписал. Да я sqlite функции изучаю там на с написано
1572 2375249
>>375230
Либо это двумерный массив, например матрица
int matrix = new int*[4];
for (int i = 0; i < 4; ++i)
matrix = new int[4];
1573 2375253
>>375249
int⚹⚹ matrix = new int⚹[4];
for (int i = 0; i < 4; ++i)
matrix = new int[4];
1574 2375434
>>375230

>А зачем нужен указатель на указатель? В чём смысл?


Чтобы вернуть указатель, очевидно.
Ошибка нубов и дебилов >>375245 в том, что они думают что указатель это что-то особенное (типа ссылки), но это чушь. Указатель это просто переменная, как любая другая переменная. А что там конкретно хранится в переменной, тебя ведь не ебёт, когда ты учишь что такое переменные, верно?

Смотри где ошибка:
Почему ты считаешь, что вернуть указатель на переменную int (int = число → переменная с числом) это имеет смысл, а указатель на переменную-указатель (указатель = число → переменная с числом) смысла не имеет? Это же чушь ёбаная, это буквально одно и то же. Указатель это никакая не ссылка, а переменная с числом (адресом), именно поэтому ссылка на ссылку не имеет смысла, а указатель на указатель имеет. Потому что ссылка не имеет смысла без того на что она ссылается, ссылка это лишь алиас, псевдоним, а указатель имеет, это самостоятельная переменная (с числом, но содержимое без разницы) кк любая другая, а переменная самодостаточна, ей кроме самой себя больше ничего не нужно. Переменные нужны ради их самих, их содержимого, а ссылки это абстракция, просто еще одно имя для чего-то другого.

Ты ведь согласен, что переменные нужны, верно? И указатели на переменные нужны, верно? Следовательно и указатели на указатели нужны, ведь указатели это и есть переменные. Указатель на указатель = указатель на переменную. Как можно спиздануть что это не имеет смысла?

Итого:
Указатель на указатель нужен там, где нужно вернуть адрес, что тут непонятного? Почему вернуть например структуру через указатель это нормально, а вернуть например адрес через указатель это что-то странное? Ничего странного, адреса - нужны, как и всё остальное, а значит и указатели на переменные с адресами (указатель) тоже нужны.

---
А то, что указатель можно разыменовать изображая из него ссылку, это свойство РАЗЫМЕНОВАНИЯ, а не указателя. Указатель и процесс разыменования это отдельные вещи, не надо их лепить в одно.

Указатель это просто переменная с адресом (числом). Адрес это ссылка на память, а память вся одинаковая, состоит из одинаковых байтов, так что все адреса одинаковые, а соответственно и указатели - переменные их содержащие тоже одинаковые. Поэтому придумали дурацкий тип void который ничего не значит, а служит только для указателей, как затычка для несуществующего нечто, на которое этот адрес якобы ссылается - в никуда, ибо в контексте текста программы нет такого объекта "память", есть только объекты данных в хранящиеся в памяти. А адрес не подразумевает никаких объектов, это всего лишь место в памяти, ячейка ОЗУ, - void, пустой несуществующий объект, точнее самой концепции объекта не существует, но синтаксис языка требует объекта, вот и затычка.

Так вот, вернувшись к началу. Указатель это не ссылка, ссылкой является разыменование, поэтому для разыменования нужен объект-цель как для любой ссылки. Но указателю это не нужно, не его проблемы.
1574 2375434
>>375230

>А зачем нужен указатель на указатель? В чём смысл?


Чтобы вернуть указатель, очевидно.
Ошибка нубов и дебилов >>375245 в том, что они думают что указатель это что-то особенное (типа ссылки), но это чушь. Указатель это просто переменная, как любая другая переменная. А что там конкретно хранится в переменной, тебя ведь не ебёт, когда ты учишь что такое переменные, верно?

Смотри где ошибка:
Почему ты считаешь, что вернуть указатель на переменную int (int = число → переменная с числом) это имеет смысл, а указатель на переменную-указатель (указатель = число → переменная с числом) смысла не имеет? Это же чушь ёбаная, это буквально одно и то же. Указатель это никакая не ссылка, а переменная с числом (адресом), именно поэтому ссылка на ссылку не имеет смысла, а указатель на указатель имеет. Потому что ссылка не имеет смысла без того на что она ссылается, ссылка это лишь алиас, псевдоним, а указатель имеет, это самостоятельная переменная (с числом, но содержимое без разницы) кк любая другая, а переменная самодостаточна, ей кроме самой себя больше ничего не нужно. Переменные нужны ради их самих, их содержимого, а ссылки это абстракция, просто еще одно имя для чего-то другого.

Ты ведь согласен, что переменные нужны, верно? И указатели на переменные нужны, верно? Следовательно и указатели на указатели нужны, ведь указатели это и есть переменные. Указатель на указатель = указатель на переменную. Как можно спиздануть что это не имеет смысла?

Итого:
Указатель на указатель нужен там, где нужно вернуть адрес, что тут непонятного? Почему вернуть например структуру через указатель это нормально, а вернуть например адрес через указатель это что-то странное? Ничего странного, адреса - нужны, как и всё остальное, а значит и указатели на переменные с адресами (указатель) тоже нужны.

---
А то, что указатель можно разыменовать изображая из него ссылку, это свойство РАЗЫМЕНОВАНИЯ, а не указателя. Указатель и процесс разыменования это отдельные вещи, не надо их лепить в одно.

Указатель это просто переменная с адресом (числом). Адрес это ссылка на память, а память вся одинаковая, состоит из одинаковых байтов, так что все адреса одинаковые, а соответственно и указатели - переменные их содержащие тоже одинаковые. Поэтому придумали дурацкий тип void который ничего не значит, а служит только для указателей, как затычка для несуществующего нечто, на которое этот адрес якобы ссылается - в никуда, ибо в контексте текста программы нет такого объекта "память", есть только объекты данных в хранящиеся в памяти. А адрес не подразумевает никаких объектов, это всего лишь место в памяти, ячейка ОЗУ, - void, пустой несуществующий объект, точнее самой концепции объекта не существует, но синтаксис языка требует объекта, вот и затычка.

Так вот, вернувшись к началу. Указатель это не ссылка, ссылкой является разыменование, поэтому для разыменования нужен объект-цель как для любой ссылки. Но указателю это не нужно, не его проблемы.
1575 2375455
>>375434

>Чтобы вернуть указатель, очевидно


Нет. ⚹⚹ это также и способ задания многомерных массивов переменной длины. Например >>375253. Соответственно void func(int⚹⚹ matrix) работает с матрицей и никаких указателей не возвращает.

В мире c++ подобная неоднозначность устраняется с помощью ссылки: void func(int⚹& vector). Если ты попытаешься в такую функцию передать матрицу, то получишь ошибку компиляции. Если же напишешь в стиле C, то получишь утечку/порчу памяти в рантайме.

Ссылки в языке с++ нужны для того, чтобы более точно и лаконично описывать поведение кода.

>указатель на переменную-указатель смысла не имеет


Многоэтажные указатели несут те же проблемы, что и c-style cast.

>чушь ёбаная, это буквально одно и то же


Вот такая операция неявно снимает константность:
int⚹⚹ a = nullptr;
const int⚹⚹ b = nullptr;
b = a;
Компилятор C++ выкинет ошибку, потому что такое в языке запрещено. Компилятор C скажет малаца и в рантайме будет беда.
Для обычных указателей такое присваивание легально.
1576 2375503
>>375455
Сорян, я не читал выше, просто прокомментировал насчет двойных указателей, зачем они нужны, что ответ самоочевиден. Если конечно понимать что такое указатели, а не путать их со ссылками.

>void func(int⚹⚹ matrix)


Если написал говнокод язык не виноват. Для матриц не нужны указатели, значит и нечего их пихать. Оберни как-нибудь красиво, чтобы без граблей пользователю твоих функций, включая тебя самого.
1577 2375504
А я так и не понял чем ссылки от указателей отличаются, и то и другое вроде адрес в памяти, разве нет?
1578 2375506
>>375504
Ссылки это сахар, по сути указатель по умолчанию разыменованный.
1579 2375508
>>375506
аа ну так то да, мне же звездочку не приходится ставить при использовании
1580 2375511
>>375434
А твоя ошибка в том что ты думаешь будто бы переменная со звёздочкой - это реальный указатель. Нихуя подобного. Никто тебе не гарантирует что не получится dangling pointer после оптимизации. Делать указатель на указатель в крестах - быть конченым дебилом. Для борьбы с даунами уже даже volatile пытаются из языка убрать.
1581 2375516
Вот бы работку для джуна...
1582 2375517
>>375511

>Никто тебе не гарантирует что не получится dangling pointer после оптимизации. Делать указатель на указатель в крестах - быть конченым дебилом.


Опять высосанный из пальца говнокод? Я же вроде ясно писал - возврат указателя. Твоя оптимизация его поломает? Нет? Ну вот и ответ.
Дауны это клоуны мнящие себя умниками, сидят придумывают хуйню как поломать компилятор. Ну поломал, и что? Зачем ты нужен такой?
1583 2375522
>>375517

> Твоя оптимизация его поломает?


Она может его поломать потом, когда ты его станешь использовать.
1584 2375526
Почему у конце строки мусор? Как убрать?

char* d = new char[9];
for (int i = 0; i < 4; i++)
{
d = (rand() %10)+'0';
}
cout << &d[3];
1585 2375527
>>375517

> высосанный из пальца говнокод


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


При этом половина багов памяти в сишном коде связаны с dangling pointer. Все прям сидят и специально ломают компилятор, да? А ведь можно просто не ложить хуй на рекомендации, они же очень простые: использовать вместо указателей везде где можно ссылки или unique_ptr, не использовать сишные массивы, не использовать больше одного указателя на участок памяти.
1586 2375528
>>375526
Ты какую-то хуйню написал. У тебя значения только первый элемент массива перезаписывают.
А мусор потому что строка должна оканчиваться \0
1587 2375545
>>375528
спасибо, поправил
1588 2375559
>>375516
Завод.
1589 2375563
>>373982

>пик


Кстати, а есть ли какое-нибудь расширение, в котором вместо всплывающего текста, показывалась бы аниме девочка, которая рассказывала бы этот текст? Необязательно для VS.
1590 2375564
>>375563
я не знаю, у меня на работе визуал студиа была уже с таким фото, я не стал убирать
1591 2375577
>>375434

>указатель это что-то особенное (типа ссылки), но это чушь.


Если мне память не изменяет, то в некоторых системах он мог иметь плавающий размер. Из-за разницы размеров машинного слова, и адреса памяти.

Имхо указатель - просто ячейчка, которая может куда-то указывать.
1592 2375691
В чем преимущество VS Professional перед VS Community?
1593 2375693
>>375528
Двощ считает, что (скобка) i (скобка) это тег разметки italic.
1594 2375736
>>375691
V Pontax
image.png1,5 Мб, 1200x675
1595 2375743
>>375559

>завод

1596 2375765
>>375752 (Del)
ну тебе надо библиотеку/самому написать 3д движка, наверняка там есть функция загрузки 3д модели
1597 2375778
Сап, объясните долбаебу нахуя в плюсах макроссы?
1598 2375831
>>375778
Предположу что это груз наследства от СИ.

К слову как думаете дерективу #pragma once включат в стандарт или нет?
1599 2375860
>>375831

>Предположу что это груз наследства от СИ.


Их в разработке используют? Просто не понимаю нахуя мне на курсе "для начинающих" рассказывали 2 часа про макроссы, а в конце сказали что это хуйня без задач для долбаебов.
1600 2375872
>>375860

>используют?


Да. Они есть и в стандартной библиотеке. Например std::assert() сделан вот так:
#ifdef NDEBUG
# define assert(condition) ((void)0)
#else
# define assert(condition) /implementation defined/
#endif
В релизной версии он полностью удаляется из кода, иначе будет вызываться std::terminate и завершение программы.

Условная компиляция на макросах используется при сборке с разными сторонними либами (допустим directx/opengl) или аппаратными особенностями (cuda, sse, neon).
1601 2375874
>>375872
Да, и ещё это способ порешать проблемы с компиляторами c++ под разные версии стандарта.
1602 2375915
>>374506
Колбеки
1603 2375916
>>375516
Яндекс.
1604 2375918
>>375831
Да и с инклудгвардами норм
1605 2375945
>>375778
На функциональных макросах можно делать всякие интересные вещи, чисто текстовые, которые ты не сделаешь на шаблонах. Их часто используют во всяких бустах уровня hof, библиотеках юнит тестирования, да в том же кюте, но там все серьёзней (вообще свой препроцессор).
1606 2375979
>>375945
В макросах надо знать меру, чтоб не получалась магия. Но вообще на шаблонах и consteval можно всё тоже самое сделать. В современных STL уже нет макросов.

> кюте


Кал.
1607 2375987
>>375831
Да её уже наоборот выпиливать пора. С модулями она нах не нужна.
1608 2375993
Есть ли альтернатива Qt для гуи? Насколько qml медленнее виджетов по производительности?
1609 2375995
>>375993
Смотря под какие задачи, альтернативы конечно есть и не мало.

> по производительности


У Qt в принципе производительность такая себе.
1610 2375998
>>375995

>У Qt в принципе производительность такая себе.


Вряд ли хуже электрона. Но в любом же случае универсальное и мейнстримное решение?
1611 2376000
Я вместо qt использую win32 api гуй, очень хороший и быстрый. Рекомендую.
1612 2376006
>>376000
Не, у меня рабочая ось пингвин. А если без бубна кроссплатформа выйдет так вообще огонь.
1613 2376012
>>375998

> Вряд ли хуже электрона.


Хуже какого-нибудь WinUI 3. Как по производительности, так и по функционалу.

> универсальное и мейнстримное решение?


Ну что-то вроде винформса у шарпистов, Qt примерно такое же отсталое говно.
Но вообще всё упирается в задачу. Если надо написать побыстрее гуй без лишней ебли, то лучше и проще брать гибрид крестов с шарпом - шарп под фронт, кресты под бэк. Если нужна нативность, то брать нативный гуй - WinUI под виндой и GTK на линуксе. Если нужен красивый, то HTML+CSS - вариантов помимо электрона куча, в том числе и вполне производительных. Если нужен гуй для отзывчивых утилит с кучей элементов, то лучше взять какой-нибудь нормальный фреймворк на GPU без оверхеда и лишнего говна - CEGUI или ImGUI.
1614 2376015
>>376012

>гибрид крестов с шарпом


Звучит как Франкенштейн какой-то. Такое вообще где-то практикуется помимо репозиториев с 0 звёзд?

>HTML+CSS


Звучит как план но есть ли для них нормальные решения на крестах? Ну и чтобы целое двигло за собой не тащило.
1615 2376016
оператор вставки токена
оператор вставки токена
1616 2376020
в с++11 добавили вариативные макросы
1617 2376028
при помощи и макросов и метапрограммирования на шаблонах можно осуществлять кодогенерацию
но макросы оперируют токенами языка, а при помощи оператора вставки токена могут так же генерировать новые токены, в то время как шаблоны работают только над типами, макросы используют там где шаблонов уже не хватает
а добавление во встроенный препроцессор вариативных макросов упростило и усилило возможности кодогенерации
1618 2376029
>>376016
>>376020
>>376028
Ты ебанулся, анон?
1619 2376032
>>376015

> Такое вообще где-то практикуется помимо репозиториев с 0 звёзд?


Почти в любом крупном гуевом проекте на шарпе. Там же отличная поддержка FFI.
1620 2376033
>>376032
В который раз убеждаюсь что кресты вечны на квесты как вов. Казалось бы только сегфолты на хуйне перестал ловить - бери да учи шарп.
1621 2376104
>>376029
кормлю с ложечки
манная кашка
кушай, расти, кашка вкусная и полезная
1622 2376141
>>375979

>Но вообще на шаблонах и consteval можно всё тоже самое сделать.


Нет, всякая строковая хрень не получится.
1623 2376148
>>376012
Лол, фанбой шарпа. Хуже червя пидора: нихуя не знает, что-то советует.
1624 2376194
>>376148

> фанбой шарпа


Где ты у меня увидел там про шарп, кроме предложения пилить простые кроссплатформенные гуи в стиле хуйк-хуяк на шарпе? Альтернатив этому просто нет, разве что так ненавидимые вами веб-рендеры. В любом случае, retained-гуй - это забагованый кал, гуй должен быть отделён от основного кода или хотя бы использоваться immediate-фреймворк.
А WinUI - это нативный гуй Винды на крестах в 2022, как бы ты не копротивлялся. Классический гуй на GDI уже легаси и не будет развиваться. Рендерить гуй на ЦП в 2022 уже должно быть стыдно.
1625 2376267
>>376194

>WinUI


Мда.., шарпоскаму было мало шарпоговна, оно еще и uwp притащило, еще пара постов и будет втирать за html/js
Индусы совсем одебилели, уже на людей бросаются, нужно изолировать буйных.
1626 2376291
>>376267
Анон с winui аргументировал свою позицию, ты же только срешь аки школьник. Еще кого-то буйным называешь, хах.
1627 2376329
>>376291
Пусть аргументирует в своем шарпотреде, сраль.
1628 2376331
>>376267

> uwp


Чел, UWP больше не разрабатывается и легаси, гуй там был WinUI 2, никакого отношения в актуальному не имеет. Актуальный WinUI 3 писался с нуля и работает на подсистеме Win32 но всё же есть обратная совместимость с UWP, майки услышали кодеров, поняли что идея UWP и контейнеризации были говном и сделали нормально. Актуальный API Винды - крестовый WinRT, только он разрабатывается сейчас, но и WinAPI никто не запрещает параллельно использовать. Привязку к Стору выпилили, софт распространяется MSIX-пакетами или напрямую экзешниками. Шизам уже просто не к чему доебаться.

> будет втирать за html/js


Фактически весь интерфейс Windows 11 сейчас на XAML, который компилируется в нативный код. Даже проводник и пэйнт на нём переделан. Всё рендерится на GPU.
1629 2376386
>>376194
Ну фанбой ксамла.
1630 2376534
>>376194

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


Тот же Кют давно клал на нативные оконные функции и рисовался опеглом, с 6 версии может в вулкан и метал. Ты реально долбоеб который ничего не видет.
1631 2376580
Сап, в проге на qt есть модули(.pri). В одном из них есть свои подмодули, которые называются так же как и в основной части приложения. Файлы одинаковые, классы одинаковые, имеем множественное определение. Нашёл опцию object_parallel_to_source, которая раскидывает объектные файлы по папкам и нивелирует проблемы с одноимёнными файлами. Есть что-то что пофксит одинаковые названия классов, структур, переменных? Ограничит область видимости класса модулем/папкой. NameSpace не очень помогает, да и супергеморно руками всё править.
1632 2376605
>>376534

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


Но работает он одинаково дерьмово. Самые уёбищные интерфейсы, которые я когда-либо видел как юзер, были именно на Qt. Возьми хотя бы qBittorrent, которым приходится пользоваться каждый день - эта параша работает как будто однопоточная срань на WinAPI, ещё и в нормальный HiDPI не может, регулярно распидорашивает его при перетаскивании на другой монитор.
1633 2376635
>>376605

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


Юзай без фронта и не стони.
1634 2376638
>>376605
Хз, по моему интерфейс кубита очень даже хорош.
1635 2376662

>>237660


Работает он как заявлено. То, что некоторые его использующие его являются дебилами, не делает его плохим. Делает дебилом тебя твои заявления, though.
1636 2376726
Как вкотиться в многопоточное пограммирование?
1637 2376872
>>376726
Написать многопоточный калькулятор.
1638 2376873
>>376872
Может, тебе ещё и змейку на сокетах?
1639 2376874
>>376873
На пайпах.
1640 2376886
>>376872
Толсто
1641 2377104
Как собирать консольные приложения, чтобы они занимали пару десятков килобайт? А то стоит статически прилинковать стандартные либы, и уже вес мегабайтами измеряется.
Или такой размер возможен только на c# так как все либы хранятся в винде?
sqlite3.PNG14 Кб, 639x343
1642 2377151
Есть кто по sqlite3? Пожалуйста. помогите. Что я делаю не так при вызове exec функции? Хули она не вызывает call back у меня, вообще ничего в консоль не выводится и никаких ошибок. Что я не так то сделал?

https://www.sqlite.org/c3ref/exec.html
ccылка на функцию в документации
1643 2377153
>>377104
Ну очевидно что юзать либры которые доступны в винде по умолчанию. Я не претендую на истинность но наверное писать приложение с использованием windows.h либры он же win32api
sqlite3.PNG16 Кб, 819x345
1644 2377154
>>377151
прокомментировал кое что чтобы вам было проще код понять
1645 2377168
>>377154
Твоя проблема в

>function pointer

пофиксил спасибо.PNG8 Кб, 763x146
1646 2377171
>>377168
спасибо, анон огромное. пофиксил. я просто нафаня, первый раз на практике делал указатель на функцию
1647 2377191
>>377171
Чел, может лучше на modern c++ поднажать? А то пишешь как дед-пердед в стиле C.

через объявление типа указателя:
using func_ptr_t = decltype(&callback_function);
func_ptr_t func_ptr = callback_function;

или сразу объявление переменной:
auto func_ptr = callback_function;
1648 2377192
>>377191
спасибо, я о таких конструкциях просто не знал. учился в основном по С книге, с++ читал но упор больше на классы и шаблоны там делал, стараясь не обращаться внимания на то что итак есть в си.
1649 2377194
>>377192
Лучше напиши отдельный класс для работы с sqlite
1650 2377198
>>377194
Спасибо, но это всё для меня сейчас пустые слова. Мне бы сейчас минимально базово научиться хоть что-то делать, потом уже можно будет переписывать код лучше, думать о каких-то классах. Я щас даже не могу высрать хотя бы как могу то что мне нужно.
Первая серьёзная программа крупная
1651 2377321
>>377171
Нахрена нужен отдельный указатель, если и так есть функция? Имя функции и есть указатель же.
1652 2377323
>>377321

>Имя функции и есть указатель же


Хуя у вас тут в палате №6 запоздалое обострение.
1653 2377332
>>377323
>>377191

>лучше на modern c++ поднажать

1654 2377333
>>377321
Их так в книжках учат. Там ещё и пишут, что функцию через указатель надо вызывать как (*fp)(args), когда можно просто fp(args).
1655 2377336
>>377321
>>377323
Кстати, да. Анон а поясни в чём отличие между указателм функции и прямым вызовом функции? Разве обычный вызов функции не перенаправляет на исполнямый её блок кода?
1656 2377345
>>377336
Ебать не должно
1657 2377348
>>377345
Новый мем узнал?
1658 2377421
>>377336
В том, что имя функции - константный указатель.
void f(int a){}
void g(int b){}
auto ptr = f;
f = g нельзя, ptr = g можно.
1659 2377435
>>377421
А если указатель объявить const, разницы никакой?
1660 2377443
>>377435
Не совсем. Время инициализации разное. Имя функции получает своё значение на этапе компиляции, ⚹ const - во время выполнения.
1661 2377457
>>377421

>имя функции - константный указатель


существует неявное преобразование, так корректней
1662 2377462
>>377104
неужели уже в интернете пропали все эти статьи и форумные посты как делать парукилобайтные экзешники и новое поколение мамкиных хакеров вынуждено подниматься на эверест заново?
1663 2377465
>>376726
с учебными целями пишешь fpt-сервер, например
в процессе написания как раз и освоишь и многопоточку и сетевое программирование
алсо, если хуево кодишь то первым учебным проектом можешь написать компилятор яп, например того же оберона
1664 2377469
Как же заебали растошизы, просто пиздец какой-то.
1665 2377472
>>377104
1. Используешь сторонние библиотеки по-минимуму, желательно вообще только стандартную+winapi.
2. Пишешь на C вместо плюсов.
3. При компиляции выставляешь флаги, чтобы оптимизировали размер (обычно за счёт понижения скорости работы).
4. Через strip выкидываешь таблицу символов и прочее.
1666 2377485
>>377472

>winapi


Бля, когда же вас копрофилов банить начнут.
1667 2377493
>>377485
Не вижу ничего плохого в winapi. Интересная и прикольная штука открывающая целый спект возможностей, зная winapi можно даже на ассемблее под винду писать
1668 2377504
>>377485
А какие альтернативы? Можно не брать винапи, обмазаться каким-нибудь Qt и получить хеллоуворлды на 50 мегабайт, но исходной цели 20 килобайт это не соответствует.
1669 2377511
Почему в последнем случае надо явно float указать?
1670 2377517
>>377511
Не юзай float
1671 2377518
>>377517
Почему?
1672 2377547
>>377511
Как я понел, там неявное приведение лямбды к указателю на функицю не срабатывает. Допиши "+" перед лямбдой, чтобы насильно привести её

И я как-то хз, почему не сделать просто ещё один шаблонный параметр вместо указателя, чтобы функция принимала любой callable, а не только указатели?
1673 2377922
Блет один и тот же код в мейне, на тех же компиляторах, с той же версией языка, в той же иде, но на разных системах сборки (qmake, cmake) работает по-разному. Это вообще как нахуй
1674 2377943
>>377922
Они разные флаги компилятора выставляют.
1675 2377977
>>377922
дай пример. Интересно
1676 2377980
https://www.boost.org/doc/libs/1_79_0/doc/html/boost_asio/overview/implementation.html

>For sockets, only client-side TCP is supported.


Что блядь? А как работают примеры с сервером?
1677 2378008
Как накатить gcc 12 на шинду без злоебучих костылей? Да хоть что-нибудь, что модули поддерживает и не от майкрософт
1678 2378025
>>378008
Куда ты так торопишься?
1679 2378034
>>378008

>gcc 12 на шинду


msys2?

>что модули поддерживает и не от майкрософт


а какие сборщики поддерживают модули сейчас?
симейк вроде не поддерживает
ты будешь вручную прописывать команды компилятора?
1681 2378048
>>378044
Делать тебе нехуй, сервера на винапи писать.
1682 2378059
>>378048
Qt socket тоже гавно какое то если честно, ебал эти сигналы хуялы.
Я разные либы тестирую. Собсно мне нужна небольшая часть кода и на асио у меня есть рабочая версия, но чет впадлу тянуть стороннюю либу, когда можно нативными инструментами обойтись
1683 2378063
>>378059
Winapi тоже сторонняя либа.
1684 2378070
>>378059
QtSocket очень удобная и легкая в использовании либа.
1685 2378071
>>378063
А stl, qt какие либы? Winapi в винду так то зашита, а за бустом надо идти куда то, я это имел ввиду
1686 2378077
>>378070
Наверное так и есть. Но она у меня подбаговано работала, принимает пустые сообщения иногда, с асио таких проблем нет. И асио быстрее работает
1687 2378091
>>378071
Stl стандартная, но пока что не поддерживает сокеты.
1688 2378101
>>378091
Надеюсь никогда и не будет
1689 2378266
>>378077

>И асио быстрее работает


Как тестировал?
1690 2378283
>>378266
В кутах тулза есть чел
1691 2378302
>>378283
Т.е. кутовая тула показала, что сокеты Qt медленнее Asio ? ? ?
1692 2378327
Как написать FTP сервак на асии?
1693 2378344
>>378283
Что за тулза, что тестировать?

>>378327
Пальцами по клавиатуре // блядь, я хуею с таких вопросов
1694 2378348
>>378344
А куда код писать?
1695 2378353
>>378348
В IDE // тьі студентота?
1696 2378356
>>378302
По секрету рассказала, только шш
1697 2378370
>>378353
Я крепкий мидл 2 года опыта
1698 2378535
>>377472

> Пишешь на C вместо плюсов.


Шиз, плиз. Си-компиляторов не существует в 2022 году. А вообще в Винде просто релизный билд собирает бинарники размером в ~15 кб, остальное уже как сам наговнокодишь. Я вот писал простенький виндовый сервис с TCP-интерфейсом к нужному API одной либы, чтоб потом цепляться по вайфаю с ведроида - получил экзешник 18 кб, потребление ОЗУ 900-1600 кб. Естественно использовал ноль зависимостей, только API винды. Специально ничего для уменьшения размера не делал, просто писал на крестах как обычно.
1699 2378698
>>378535

>просто писал на крестах как обычно.


Не пизди. Ты просто высрал 500 строк кода без классов в main.cpp
1700 2378728
>>378698
Он написал программу, а у тебя пердак порвался. Вот и вся история.
1701 2378729
>>378728
Вот это ты меня урыл от 3 лица.
1702 2378734
>>378698
В чём вообще проблема? Голый хелоу ворлд даже меньше 15 кб весит, а в O2 все классы ликвидируются, минимум отличий от простыни сишного кода. Просто используй системное API, а не всякие бесполезные комбайны вроде буста или Qt.
1703 2378779
>>378734

>Голый хелоу ворлд даже меньше 15 кб весит


Если у тебя 5 строк кода весят ~15кб то ты явно не тем по жизни занимаешься.
1704 2378835
>>378779
Чел, не бывает экзешника из голого main. У тебя всегда перед выполнением твоего кода происходит инициализация рантайма и окружения. Ты первый день что ли?
1705 2378850
>>378835

>не бывает экзешника из голого main.


А ведь когда-то были, в DOS .com файлы, но тому даунёнку конечно неоткуда знать.
1706 2379059
>>378850
Ты даунёнок. Речь про твои dos com файлы или exe?
1707 2379072
Dos exe файлы.
1708 2379150
у меня ща браузер лопнет нах
перекат будет или всем норм что тред минуту открывается?
1709 2379155
>>379150
Перекати.
1710 2379370
Сорян за нубовопрос: как включить freeglut.dll в exe при компиляции? Желательно на примере codeblocks. Знаю, что так делать не принято, но просто два файла уж больно уебищно выглядят. Один exe-шник для небольшой проги проще и красивше
1711 2379375
>>379370
Если коротко - никак. Либо бери статическую либу, либо вручную делай маппинг dll.
1712 2379377
>>379370
Никак ты DLL в EXE не включишь, тебе нужна отдельная статическая версия либы. Гугли "freeglut static linking". Но там свои изъёбства, может понадобиться линковать ещё больше либ, чем с DLL.
1713 2379402
>>379370
Запихни dll в ресурсы, а при запуске программы сохрани во временную папку и оттуда загружай через LoadLibrary()
1714 2379446
>>379377
>>379375
>>379402
Спс за ответы. Понял свою ошибку. DLL - вообще не про включение в exe. Спрошу еще: как в codeblocks задавать строку параметров компилятора? А то пока приходится вручную компилить (но оно хотя-бы работает без dll теперь)
изображение.png6 Кб, 972x84
1715 2379451
1716 2379488
>>379451
Спс, чуть позже изучу
1717 2379501
>>379150
Хромоног закукарекал.
1718 2379512
Я сегодня перекачу
1719 2379559
Есть какой-нибудь адекватный способ проитерироваться по файлам в папке в порядке их времени создания? Нужно вообще достать самый последний сохрененный файл, но видимо придется всю папку обойти?
1720 2379566
>>379559
Смотря что у тебя за ФС там. В винде если включена индексация, то можешь через запрос Windows Search SQL получить файл из индекса. Если пердоликс с ext4, то не выёбывайся и обходи вся папку.
1721 2379572
>>379566
Сук пздц за что. Это долго и все лагает
1722 2379661
Ладно, что-то меня затрахало самому ковырять: как запилить в glut плавное перемещение на низких скоростях (меньше пикселя в секунду)? Все дергается, ебать. Видно, что фигуры перемещаются скачками в 1 пиксел
1723 2379664
>>379661
Как обычно, разобрался сам, сразу после того, как спросил. Нужен мультисемплниг крч. Хотя пока все равно не особо въехал, как его количественно задавать.
1724 2379681
>>379664
Ок, и с этим тоже разобрался. Всем спасибо за внимание.
1725 2379863
Почему в qt6 убрали qvector? Теперь это qlist с другим именем.
1726 2379867
>>379863
Потому что могут. И хули ты им сделаешь?
1727 2379869
1728 2379871
>>379869
Ты дурак?

> QVector is an alias for QList

1729 2379874
1730 2379890
>>379874
Перекат говно, сидим дальше тут хотя бы до 2500.
1731 2379891
>>379890
Что не так?
1564968348094.webm3,3 Мб, webm,
854x480, 0:24
1732 2379893
>>379891
ОП - пидор. Ненавижу пидоров.
1733 2379895
>>379893
Ясно
1734 2380678
Компилил вручную glut-прогу вот этими командами
1) gcc -c -o 1.o main.cpp -D FREEGLUT_STATIC -I"C:\MinGW\include\GL"
2) gcc -o 1.exe 1.o -L"C:\MinGW\lib" -lfreeglut_static -lopengl32 -lwinmm -lgdi32 -Wl,--subsystem,windows
Добавил в прогу #include <math.h> #include <string> и функции этих библиотек. В кодблоке (с динамической либой glut) все компилится нормально, а вот в командной строке выполняется, почему-то, только первая команда. Как дополнить вторую (а может еще и первую) команду, чтобы все заработало?
Я прост рили пока нуб, не бейте сильно.
1735 2380681
>>380678
Навскидку жеппой чую, что сюда надо стринговую и\или математическую либу как-то прилинковать, только хз как.
1736 2380736
std::move(vec) имеет смысл когда либо писать? Оно же просто скопирует объект, да?
1737 2380744
>>380736
Там std:move(vec)
1738 2380745
>>380744
Блядь, короче там после мува обращение по индексу еще
1739 2384840
>>380736
Что такое vec? Если тривиальный тип, то копи конструктор, если есть мув, то он будет вызван.
1740 2384856
>>380736
Это не копирование, а приведение типа - static_cast<T&&>(T vec). Применяется как обычно - приводишь аргумент к нужному типу, чтобы вызвать соответствующий ему метод.
1741 2385925
Решил расширить область навыков в плюсах и захуярить условный хеллоуворлд с UI, чтобы посмотреть, как эта хуйня выглядит изнутри и заодно сравнить с шарпом, почему бы и нет. Собственно, весь код https://nekobin.com/tebejizela программы сгенерен вижуанал студией.

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

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

Объясните, пожалуйста, долбоёбу, почему небо голубое и как срать в окно кнопочками.
1742 2385978
>>385925
Всё верно, в винапи нет ничего визуального кроме ресурсов, так что без ресурса диалогового окна лепить кнопочки просто некуда, ведь твоё окно создается кодом, а не грузится из ресурса (смотри код, дура).

Там сгенерилось еще окно "О программе..." показываемое через меню "Помощь", вот посмотри его ресурс и код который окно из ресурса создает и показывает на экран, а потом замени код выводящий на экран главное окно на код этого диалога, чтобы при запуске программы показывался этот диалог, и лепи туда свои кнопочки. Вот тебе и программа куда можно лепить визуально, а ставший ненужным код старого окна удали.
1743 2386247
>>385978
Ну об этом я и думал. Только какую тогда роль играет ресурс меню, если он может показывать только тулбар в верхней части окошка?
1744 2386408
>>386247
У окна есть атрибут меню (смотри код создания окна, дура), куда меню присваивается как и остальные атрибуты.
А в виде ресурса просто для демонстрации применения ресурсов, ну и проще же мышкой редактировать.

>я и думал


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

Это в шарпе генеренный код - магия, куда лезть руками нельзя, а в чистых сях это наоборот прямой твой код, в него нельзя не лезть, это тупо пример для демонстрации, который ты сам должен своими руками писать, или по крайней пере переделывать как тебе надо. Должен смотреть и понимать что там происходит, как раз удобно для примера расписано же. Иначе хули ты приперся вообще, клоун?
1745 2386485
>>386408
Быстро же ты на говно извёлся.

>У окна есть атрибут меню


Знаю, и что с того? Хочу высрать кнопку посередине окна, мои действия?

На вопрос в >>386247 лучше бы ответил, вместо того, чтобы так трястись.
1746 2386500
>>386485
Код ответит на все вопросы, тупорылая свинина, не может осилить пару небольших функций выложенных студией на блюдечке. Кто тебя еще с ложечки будет кормить, тупое недоразвитое говно, мамашу-шлюху попроси, может поняньчится со своеё личинкой.
1747 2386507
>>386485
Кнопка это то же самое, что и окно.

1. Находишь метод InitInstance(...)
2. Хуячишь туда:
HWND hwndButton = CreateWindowW(
L"BUTTON", L"OK",
WS_TABSTOP | WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,
10, 10, 100, 100, // координаты
hWnd, // дескриптор родительского окна
NULL,
(HINSTANCE)GetWindowLongPtr(hWnd, GWLP_HINSTANCE),
NULL);
3. Там же:
ShowWindow(hwndButton, nCmdShow);
UpdateWindow(hwndButton);

Но лучше через такую залупу не делать, а выбрать какой-нибудь фреймворк типа QT, MFC или ещё чего.
АХАХА.mp4215 Кб, mp4,
360x434, 0:02
1748 2386550
>>386500
Ебать тебя рвёт с простых вопросов.
Я код смотрел, поэтому и спрашиваю здесь. Ты же, в свою очередь, либо неумело троллишь тупостью, либо с серьёзным ебалом бугуртишь из-за того, что пытается разобраться в плюсах лучше тебя.

>>386507
Спасибо, учту.
1749 2386985
>>386550
Это не простые и не вопросы. Это охуевшая свинина хочет залезть на шею, хочет няньку-слугу, которая за него всё думать и делать будет. Типичный дегенерат.
1750 2394103
>>345617 (OP)
Можно ли обойтись без Microsoft Visual Studio?
1751 2395449
>>394103
Да. Подбери IDE под себя и систему сборки проекта.
1752 2395907
>>386985
Эта "охуевшая свинина" сейчас в одной комнате с тобой, анон?
акак выучить алгоритмы и структуры 1753 2445648
Доброго времени суток, аноны! Подскажите, есть ли норм способ фастом выучить алгоритмы и структуры данных? Сейчас смотрю видосы на ютубе от препода М(ФТИ), но их штук 40 и они по 1.5 - 2 часа. Может быть, есть какие-нибудь годные книжки или видео-уроки?
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 30 августа 2022 года.

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

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