Этого треда уже нет.
Это копия, сохраненная 5 февраля 2021 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
1551923747410.png2 Кб, 250x250
C++ тред #116 /cpp/ !91w9eFu9dM 1758813 В конец треда | Веб
Вместо шапки:
https://github.com/sosachbot/cppthreadhat/wiki

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

Для указателей: ⚹
Прошлый: >>1750735 (OP)
38225a.jpg67 Кб, 500x651
2 1758821
Вкатился
Без имени.png22 Кб, 616x396
3 1758847
Вот есть у метода несколько обязательных аргументов и штук 10 произвольных. Я делаю как на пике. А как надо делать в 2020?
4 1758886
>>758847
Можно упороться в variadic templates по приколу, но не стоит усложнять, благо в плюсах есть дефолтные аргументы, которые для таких целей подходят тютелька в тютельку.
5 1758888
>>758886
А если у функции полсотни аргументов? Не очень красиво будет.
6 1758895
>>758888
Тогда variadic templates, хотя я таких ебанутых функций с полусотней аргументов в жизни не видел.

мимо байтоеб, разраб эмуляторов и гипервизоров
7 1758913
>>758847
По нормальному это должны быть pod структуры Point, Rect и т.д
8 1758936
>>758888
>>758913
Эххъ.. Зделотб бы как в ШИНАПИ.
Чтоб перед вызовом функции еще тридцать строк заполнять структуры в структурах.
9 1758951
>>758936
У шинапи хоть сишный интерфейс, без всяких хипстерских фишечек крестов.
10 1758952
>>758936
Vulkan современный, но там тоже все через структуры. Это не так плохо, как кажется
11 1759044
Поясните, если я буду работать прогером, то у меня будут задачи, над которыми нужно подумать? Типо как в школе с олимпиадными задачами. Или это почти всегда тупа загуглил, написал.
12 1759056
Хочу вкатиться на плюсы. До этого писал лабы на чистой сишке и теперь стоит вопрос с выбором технической литературы. Что посоветуете читать из нее? Хочу написать календарь дел для практики, может есть какие-то советы по библиотекам или чему-то?(я нуфаг)
13 1759069
>>759044
Будут, конечно. Но не все.
Многие задачи загуглить не выйдет, они обычно связаны с логикой самой программы, а не что-то общее техническое.
14 1759086
>>759056
Шапка для кого?
15 1759130
>>759056
А как же ты собираешься вкатиться, если ты настолько непробиваемо тупой, что даже не нашёл эту информацию сам?
16 1759141
>>759130

>что даже не нашёл эту информацию сам?



А что, спрашивать у живых людей, а не у текста уже нельзя?
17 1759144
>>758952

Ну там хотя бы можно понять - задумка была в том что бы дать самый низкий уровень абстракции не раскрывая при этом аппаратную архитектуру видеокарты. Отсюда и пердоль с девайсами очередями очередей и прочим этим.
18 1759160
Поясните почему константный указатель чар может указывать только на строку, а на единичный символ нет?
19 1759166
>>759160
Ты character literal имеешь в виду, например char ⚹c = &('q') ? Потому что это просто промежуточное числовое значение, у него нет адреса. Это то же, что и int ⚹n = &(10).
А строковые литералы обрабатываются компилятором отдельно и сохраняются в памяти в явном виде, то есть адрес у них будет.
20 1759205
Сап! Интересно я один такой или есть такие же, когда у вас появляется проблема, которую вы должны решить, не пугает вас то что вы не справитесь или еще что-то в этом духе, как боритесь с этим, контролируете себя
21 1759222
>>759141
в 2к20 уже моветон
22 1759230
>>759205
Никак. Фейлы неизбежны, чел, а твои способности имеют свой предел. Относись ко всему с долей здравого похуизма и решай свою задачу, если тебе это действительно надо
Безымянный.png1 Кб, 338x53
23 1759321
>>759166
Я просто сейчас пытаюсь разобраться с указателями и константами. Вот почему, например, пик работает? Ссылка это же просто замена разыменованного указателя. Можешь подробно рассказать как вообще работают указатели на rvalue?
24 1759327
>>759230
спасибо, за совет;)
25 1759341
>>759321
Ссылки - это не просто сахарок для указателей, в них куда больше магии.
Lvalue-ссылке можно присвоить временный объект (rvalue), но при этом ссылка должна быть константная. Например, const int &x = 123 тоже будет работать, будто это обычная константная переменная. Если это не примитив, деструктор не вызовется до окончания области видимости ссылки. А у примитива и деструктора не будет.
26 1759381
>>759341
Что такое примитив?
27 1759390
>>759381
Уровень твоего развития.
image.png29 Кб, 1277x230
28 1759392
пытаюсь написать обёртку для окон из шинапи

в апи при регистрации класс окна в поле соответствующей структуры записывается указатель на процедуру-обработчик

в своем классе-обертке я попытался в эту структуру скормить лямбду которая захватила this

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

какие есть способы достичь желаемого эффекта (доступ к this в обработчике) например через промежуточную функцию или передав указатель на оператор() у лямбды
29 1759405
>>759392

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


Потому что лямбда - это не функция. Ты не можешь вызывать лямбду по указателю как функцию. Забудь про лямбды.

> какие есть способы достичь желаемого эффекта (доступ к this в обработчике)


Передавай ссылку на свой экземпляр объекта. А вообще завязывал бы ты с ООП, видно же что не шаришь, пытаешься функциональщину лямбду пришить к жопе классу.
30 1759407
>>759381
Самые базовые типы плюсов - char, int, float, long и прочие.
31 1759410
>>759392
Windows позволяет сохранить пользователь ский указатель в окне, что то типа setwindowlong . Юзай простую сишную функцию как обработчик, в ней извлекая указатель и дальше форвард вызов в свой класс
32 1759430
>>759407
Спасибо анончик <3
33 1759433
>>759392
А на кой хуй, на MSDN есть уже начало реализации и на github тоже.
GUI пилят на QT или шарпах
34 1759464
>>759433

> QT или шарпах


Ты бы ещё электрон предложил. Медленный гуй не нужен.
35 1759474
>>759464
QT вполне себе нормальный GUI. Да и WinAPI сейчас для GUI мало кто использует.
36 1759487
>>759430
Иди нахуй, долбоёб
37 1759493
>>759464
это QT медленный? лул
38 1759494
Все в предыдущем треде сидят? Этот нелегитимный?

>>759410

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


Вот только на этот long может оказаться несколько желающих. Лучше хэш hWnd => this. Ну как вариант.
39 1759497
>>759493

> это QT медленный?


Естественно он медленный. Он даже медленнее WINAPI на GDI+, не говоря уже про нормальный интерфейс на GPU.
40 1759502
>>759497
Делал тест, типа недогуй. Единственный layout - табличный grid, единственный widget - rectangle. Под виндой можно вообще когда хочешь эти ректы рисовать, вне события WM_PAINT или WM_ERASEBKGND, вне Begin/EndPaind, все автоматически завязывается с vsync, ничего не бликает. Попытался повторить на XLib и охуел. Сразу тащи OpenGL, ну ок, но синхронизация у него работает натурально через ЖОПАэль. Нужна правильная видюха и драйвер.
41 1759504
Хули не используете для указателей ✱?
42 1759507
>>759392
Такие же, как и для вызова метода инстанса из обработчика прерывания на микрококонтроллерах, очевидно.
43 1759508
>>759504
Слишком сложно для ньюфага .
44 1759509
>>759464
Куда ты так спешишь, дружище, что Qt тебе медленно?
45 1759511
>>759392
Делаешь указатель на this глобальным/пихаешь его в контекст
Перед лямбдой добавляешь плюс
15948363544220.jpg54 Кб, 500x500
46 1759518
>>759508
А ЖЫРНАЯ лучше

Бонусом задачка для смелых. Что за хуйня ниже написана?
int ✱(✱arr(int, char ✱ const (✱const ✱)⟦10⟧))⟦20⟧;
47 1759527
>>759518
Это в Си-тред лучше. Массив из 20 указателей на функции, которые возвращают int ✱, а аргументы у них int и еще какие-то ебнутые указатели на указатели на указатели. Кстати, сколько помню, по сишному стандарту, массив в аргументах считается как указатель.
48 1759529
>>759527
Вопрос с подвохом, и суть в том, что если ты решил на него ответить, то скорее всего ты хикка-задрот-языков, который ничего не смыслит в программировании
49 1759532
>>759494
Не надо хэш, если у тебя планируется меньше тысячи окон, линейный поиск будет быстрее.
50 1759535
>>759527
Нет, неправильно.
Ваще не массив. Там ваще нет массивов, только указатели на них.
В данном случае 7.2 вообще ни при чем, он применен не будет.
51 1759536
>>759529
Вопрос без подвоха. Т.е. это правильная, корректная строчка, она откомпилируется.
52 1759538
>>758813 (OP)
✧ ✩ ✪
Всех неравнодушных эстетов прошу пройти опрос о наименовании указателя:

https://xoyondo.com/ap/qwCbzfjgtiYZicQ
✮ ✯ ✰
# OP 53 1759539
54 1759541
>>759532
Можно массив (вектор), поиск по 10 окнам будет быстрым.

>>759535
В крестотреде код пишет меня.
55 1759542
>>759536
подвох не в этом
56 1759543
>>759509
С таким подходом и электрон быстрый. Куда спешить, можно нагружать систему по полной всяким говном, таскать с собой комбайн на все случаи жизни и рисовать только на ЦП. Пока не тормозит на ш5 - гуй быстрый.
57 1759544
>>759543
Везде нужно искать компромисс.
58 1759551
>>759538
⚣ ☭ ⚧
https://www.strawpoll.me/20659412

const int ⚣c = NULL;
const int ☭c = NULL;
const int ⚧c = NULL;
59 1759553
>>759551

>Pointer sign?


Oh, have you come from England?
60 1759556
>>759553
☭☭☭ I from Sovietskaja Rodina! ☭☭☭☭
61 1759558
*
62 1759559
int a = nullptr;
int
b = a;
63 1759562
>>759559
b = &a;
Скомпилится

b = a;
даст ворнинг в крестах но скомпилится в си89
64 1759571
>>759539

Почему Абу не дает нам нормальных указателей? Может, в /d/ обращаться? Не помню, чтобы за пару лет здесь видел применение звездочки для жирноты?
65 1759576
>>759571
Двачую. Для math сделали интеграцию с mathjax, а для pr ``` или [code][/code] до сих пор нет

@abu, ti ahuel tam?
66 1759577
>>759571
Какие тебе нахуй звездочки, если ты это >>759518 распарсить не можешь?
67 1759579
Спасибо, Абу!
68 1759583
>>759577
Будет время, распасрсю может быть, че пристал, компилятор ебаыный?
69 1759587
[code]
int a = 1;
int *b = &a;
[/code]
70 1759588
>>759583
Парси строку, парси! Это знать надо, это классика!
71 1759592
>>759518
Это выражение.
72 1759595
>>759588

>это классика


Ебнутый typedef какой-то, примерно как стихи на Perl, лол. ЭТОГО ЗНАТЬ НЕ НУЖНО.
73 1759597
>>759592
Нихуя. Это статемент!
74 1759600
>>759595
Да тебе неделю чистого времени дай - и ты разве что методом тыка угадаешь. Лол, а еще кудахчут, что силечка - илиминтарна. Простейшую строку не могут распарсить!
75 1759603
>>759600
Парсить строки - есть специальный инструмент - парсер. Если ты за него - вот и распарсь эту строку, чтобы я понял, если нет противоположной задачи.
77 1759620
>>759603
Тебя на самом деле про семантику спрашивают, дурачок
78 1759624
>>759620
Че там с семантикой, пояснишь дурачку?
79 1759625
Аноны, condition variable юзается только в unique_lock, насколько я понял. Что делать, если у меня в отдельном потоке функция с бесконечным циклом, где я хочу оставаться, не выходя из нее, и ждать оповещения от другого треда о событии Х, чтобы сделать действие Y и пойти на следующую итерацию бесконечного цикла, опять ударившись в wait? Заранее спасибо.
80 1759629
>>759624
Так это от тебя ждут пояснений, что там за семантика у той строки, дурачок.
81 1759631
>>759620
Давай выхлоп парсера
1515931217168.png34 Кб, 706x479
82 1759637
>>759625
Тут кроется ответ. Прочитай, будешь всё знать об этой залупе
8E5D0687-38BF-402B-B88D-3CE8BC3BDD5D.png263 Кб, 1366x768
83 1759639
Как же горит у тупорылых студентишек и вайтибыдла от простейшей строчки на Си, ору в голос. Ебать сука бля обоссанки тупорылые. Как же вы будете на шаблонах куролесить, маньки )))
84 1759646
>>759625
неважно, я жестко тупанул, думал в таких ситуациях unique_lock работает не так, как на самом деле.
85 1759704
>>759518
Поскольку такая вещь (✱const ✱) не является объявлением параметра функции (типа то нету), вангую пример на знание того что
(int)smth ≡ int(smth)
86 1759713
>>759518
Указатель на массив из 20 указателей на функции, возвращающих int, и принимающих инт и массив из 10 указателей на константный указатель на константный указатель на чар
87 1759718
>>759713
Не подошло.
1595658477740.jpg88 Кб, 1440x574
88 1759725
>>759518
Съебись отсюда, а?
89 1759727
>>759725
Все компилится.
90 1759730
>>759725
Твой сайт говно.
91 1759734
>>759725
Сейчас бы верить нерабочему васянскому сайту, а не компилятору :3
92 1759737
>>759704
А указатель на массив интов-то ты осилишь хоть объявить, иксперд с 1 курса парашевыносительного?
26B88817-50D5-4C01-9B0B-483CC2880DC9.jpeg37 Кб, 600x600
93 1759739
>>759734
Не подсказывай цыпляткам!
94 1759740
>>759737
Конечно дорогой
int arr[];
decltype(arr) *p;
95 1759741
>>759739
Там нед подсказки
1E8FE42E-2CC3-411E-951A-D9D1C81DBE0A.jpeg53 Кб, 444x444
96 1759742
>>759740

>чмоха не может объявить указатель на массив

97 1759745
>>759739
Говори уже что это, с подробным объяснением
98 1759750
>>759742
Объявил же, ты чего? У нас тут С++, а не С тред.
99 1759753
>>759750
Ты бы еще тайпдефами объявил, клоун. Уж указатель на массив-то вполне нормально и напрямую объявлять.
100 1759758
>>759753
Ай мля ты прав. Что то я тупанул.
template<typename T, size_t Size>
using ptr_t = std::unique_ptr<std::array<T, Size>>;
ptr_t<int, 100> p;
101 1759759
>>759758
Подозреваю, что на микрококонтроллерах у тебя такая хуйня не прокатит.
102 1759785
⛧ ⛧ ⛧ ⛧ ⛧
103 1759840
>>759759
Продвигают потихоньку (видос на тему zero cost abstraction, где то с середины) https://www.youtube.com/watch?v=c9Xt6Me3mJ4
Хотя конечно у смарт поинтеров оверхед есть.
104 1759854
Я задам тупой вопрос но всё таки я это правда не понимаю, я новичок в С++. Есть такая штука "Vcpkg" - кросс-платформенный менеджер пакетов с открытым исходным кодом от Microsoft. Но я не до конца понимаю что он делает, то есть к примеру если я установлю библиотеку через него то у gcc не будет проблем с линоковкой либ?
105 1759875
>>759854
На винде vcpkg вроде как берёт всегда последнюю установленную версию msvc, так что gcc в пролёте
106 1759891
>>759875
:( А есть какой нибудь удобный и понятный способ/гайд по линковке либ для gcc? Пробовал я у gcc -L -l -I как-то вообще игнорит указанный путь. Не хочется IDE ставить, меня возбуждает мысль о писании кода в блокнотах.
107 1759911
>>759891
Ну так напиши ещё makefile в блокноте
108 1759913
>>759891
Не игнорит. Ты не разобрался, у тебя где то ошибка.
109 1759914
>>759854
Заставить vcpkg работать на винде с чем-то, кроме вижуалки, у меня не вышло, при сборке всегда была простыня в духе "undefined reference to X". В самой вижуалке работает охуенно.

>>759891
Удобного способа подключать либы на C++ не существует. Кроме vcpkg есть ещё conan и ещё десяток менеджеров пакетов, но одни работают криво, а в других не хватает либ. Так что и по сей день самый удобный способ - вручную качать архивы с сайтов либ и подключать, и ещё повезёт, если есть билд хотя бы для x86_32.
110 1759915
>>759891
Попробуй https://conan.io
Соответственно доступные пакеты можно глянуть https://bintray.com/conan/conan-center и https://bintray.com/bincrafters/public-conan
111 1759916
>>759915
Не хочется разводить срач, но...
Вы реально доверяете всяким васянам упаковку либ?
112 1759917
>>759916
Лучше васянам, чем себе.
такао и атаго.jpg199 Кб, 850x600
113 1759919
>>759913
Ну это да, надо разбираться.

>>759911
Он же для СMake? И ещё дебильный вопрос про CMake - это же не компилятор а хрень которая указывает компилятору на либы и как вообще компилировать?

>>759915
Попробую

>>759914
Ну у GCC -I -L -l вроде по сути легко.

Спасибо всем, пойду дальше разбираться. Держите девочек.
114 1759924
>>759919
CMake - это генератор файлов для разных систем сборок. Например, make-файлов, проекта visual studio (ms build) и ещё куча никому неизвестных. В теории, создаёшь CMakeLists.txt, пишешь в нём пару десяток строчек с указанием путей до либ, запускаешь, и у тебя получится готовый make-файл на несколько сотен строчек, где уже всё учитывается и прописано. На практике всё так себе.
115 1759969
Интервью с ТРУ сиплюсплюстником
https://www.youtube.com/watch?v=QQZmDWnV618
116 1759970
>>759924
>>759919
Можно без генерации промежуточных файлов собирать через cmake
117 1759977
>>759970
Почему никто никогда так не делает?
118 1760006
Что можно почитать об указателях, умею из них делать всякие йобы, по типу списков, двусвязных списков и т.д. Но ведь на этом же их применения 100% не заканчиваются, не понимаю, какое применение есть указателю на функции. В общем, реквестирую хорошую литературу по указателям и работе с памятью.
119 1760020
>>760006
Если ты теорию изучаешь, то читани у праты по указателям неплохо. В реальной работе нинужно, особенно в современных крестах
120 1760035
>>759977
В смысле? Большинство библиотек, что я встречал, собираются так: mkdir build && cd build && cmake ..
Тот же vcpkg так делает.
121 1760036
В чьих-то каментах вступил в дискуссию о недостатке программистов в Америке и тут Линкедин подбросил "работу которая может вас заинтересовать", я октрыл только из за идиотского названия компании...

Job Type: Full-time
Salary: $120,000.00 to $130,000.00 /year
Интересно, кого в конце-концов наймут на эту работу?

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

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

> А чо, норм зарплата, для мидвеста )



Это ЛА ... и зависит от Мидуэста, в Чикаго на такую зарплату народ тоже не набежит.

https://kunaifusu.livejournal.com/648138.html
122 1760043
>>759919
тест
123 1760051
>>760035
Ни одной такой либы не видел, везде после этого нужно запускать make или msbuild.
124 1760079
Крестоаноны, почему такие собесы стали сложные? Либо сразу берут в какую-нибудь шарагу после базаров за жизнь либо блять часа по два-три бесед по си++ и разным многопоточностям с алгоритмами. Я после последних двух трехчасовых собесов к которым я готовился пару месяцев решил вообще в джаву перекатиться, что-то блять с рынком в ДС не то.
125 1760080
>>760079
Знакомые из джавы тупо на похуй приходят со знаниями Spring сразу на 120к без всяких исключений в списках инициализации и реализаций хеш таблицы на бумажке.
126 1760096
>>760080
>>760079
Ну так джавистам нужно будет тупо пилить бизнес-логику, забив хуй на перфоманс. Не как в плюсах, где экономить и оптимизировать нужно всегда, когда есть хоть малейшая теоретическая возможность. На то это и плюсы.
127 1760109
>>760051
Можно запускать cmake --build оно само вызовет нужный сборщик.
128 1760115
>>760109
Когда я пробовал так делать, сработало только с msbuild, с mingw-make были странные ошибки. CMAKE_MAKE_PROGRAM указывал.
129 1760165
>>760079 (You)
По стилистике уже понятно, что ты довольно истеричный парень, у тебя проблемы с логикой и восприятием этого мира. Ты типичный пидорахо-бизнесмен, который нихуя не понимает в бизнесе и нормальных отношениях "работодатель-работник". Думаю, программисты, которым ты писал, были того же мнения, поэтому им было похуй, сколько ты предложишь - работать с истеричкой никто не захочет. Мой совет- выкатись нахуй из айти. Продавай щебень, лес, уголь. Но не трогай айти - это явно не твоё.
130 1760176
>>760165

> (You)


Шиз не палится.
131 1760190
>>760165

>(You)


Ясно.
132 1760191
>>759891

>Пробовал я у gcc -L -l -I


Если указываешь нестандартный путь (например, в папке экзешки) к динамической SO-либе через -L, то экзешка не запустится. Там надо через переменную LD_LIBRARY_PATH указывать эти специальные пути, либо линкеру ld при сборке флагом -rpath.
133 1760209
>>759891
Может быть ты пишешь \ вместо / ? Или у тебя пробелы в названиях папок. Пиши -I"C:/My Include Folder" если на винде.
Кроме того линкеру нужно название либы без префикса. Т.е. если либа называется libSDL2, то линковать надо -lSDL2
134 1760225
>>760165
>>760176
>>760190
Откуда это (You), какой-то клиент для мобилок что ли? В оверчане такого нет.
135 1760227
>>760225

> оверчане


О, ещё один шиз, только ещё и недоразвитый.
136 1760231
>>760225
Руками вписал, хотя скорее это готовая паста.
137 1760236
>>760227
Какие есть варианты? Несколько лет назад он первым попался мне на глаза, с тех пор и юзаю, хоть он и глючный. inb4: браузер
138 1760244
>>760231
Я просто раньше где-то уже это видел и подумал, что это где-то автоматически добавляется.
1525869774135.png27 Кб, 461x394
139 1760246
>>760244
В кукло скрипте. Но, конечно, оно добавляется в ссылку на пост, поэтому будет оранжевым, а не черным.
140 1760248
>>760246
Понятно, спасибо.
141 1760402
Аноны, я ебусь с одной адской хуйней, даже не поверите. Нужно портировать старый код чтобы он на 2019 собирался, у них есть STL map и зачем-то им нужно напрямую манипулировать внутренним представлением map как red/black tree. Они там устанавливают _Myhead = ... и потом _Myhead->_Left, _Myhead->_Parent и тд. Видимо в старых версиях stl этот _Myhead был public, а сейчас его не видно.
Вернее он типа есть но в другом, внутреннем классе _Tree_val. Я вообще не понимаю как эта хуйня устроена так как мне в страшном сне бы не приснилось туда руки сувать. Кто-нибудь знает как при помощи наебок и кастов или итераторов до _Myhead добраться?? Эта вся хуйня в <xtree>
142 1760416
>>760402
Объявить такой же класс_2 но с паблик именами и через конструктор копирования обмануть
143 1760430
>>760096
вообще последние годы я ++ брал только из-за того, что знаю более менее этот язык и можно было делать кроссплатформенное по, которое сразу и на линукс и на винду шлу и на некоторых одноплатниках.
144 1760476
>>760416
Этож UB
145 1760718
Как вообще с зависимостями бороться в ебучем cmake? В либе с гитхаба конфиг на 1000 строк и не хочет собираться в статическую либу. Гугл выдает хуйню, которая сыпет ещё больше ошибок. Нихуя не линкуется, cmake до перезапуска IDE начинает видеть несуществующие строки в конфиге. Нахуя эту парашу придумали, если нужен отладчик для конфига этой дрисни чтоб понять что происходит? И ведь самый пиздец что ничего не пишет конкретного, ошибка линковки и соси хуй. Аж трясёт.
Может есть для людей варианты? Чтоб не ебаться со сборщиком дольше чем пишешь код.
Я бы уж на MSBUILD даже залез, если бы эта хуйня выдавала рабочую статическую либу. Генерирую проект под студию, собираю и пиздец - MSBUILD не хочет это говно принимать, тоже высерает ошибки линковки и гадай что ему не нравится.
146 1760793
>>760718
libastral какой версии?
147 1760910
Аноны, считается ли говнокодом объявлять мьютекс глобальной переменной (хоть и в специально отведенном неймспейсе)?
148 1761004
>>760910
Да. Делай отдельный класс.
149 1761097
>>760910
тут скорее вопрос о том, зачем тебе глобальный мютекс где-то
150 1761145
>>761097
столкнулся с ситуацией, где при использовании двух разных мьютексов в двух разных тредах (в связке c unique_lock и condition variable) у меня происходит дедлок. Используя при этом глобальный общий мьютекс, все шло как по маслу (оба метода принадлежали разным классам, если что). Вот и навеяло вопрос...
151 1761149
Есть один .exe и две .dll.
Как написать в одной dll функцию, которая будет грузить ресурсы из другой dll (или exe), с указанием ID этих самых ресурсов?
Основная проблема заключается в том, чтобы получить HINSTANCE одной dll из другой. Была идея сделать параметр по умолчанию, но, например, GetModuleHandle(0) возвращает HINSTANCE exe, а не вызывающей его dll.
152 1761153
>>761145
Ну хз я бы лучше в контекст это какой-то обернул и снабжал бы им свои классы
153 1761169
>>761149

> 2020


> РЕСУРСЫ


Пчел, ну ты...
154 1761170
>>761169
Не так:

> 2020


> Легаси



Я бы и рад от всего этого говна избавиться, но имнип там одних строчек только около 20к
изображение.png14 Кб, 763x452
156 1761185
Нахуя?
157 1761187
>>761169
Ресурсы - отличная штука, без них приходится костыли изобретать
158 1761232
>>761185
Когда не было RAII и прочего, можно было случайно проебать очистку ресурса, сделав return посреди функции. Поэтому некоторое время людей учили, что return должен быть только один, в самом конце.
159 1761333
>>761232
О, так вот откуда это пошло. Слышал эту рекомендацию, но думал, что только ради читаемости.

мимо
160 1761336
>>761174
Спасибо. Нашёл в комментариях что-то очень костыльное, попробую сегодня. Только не уверен, что тут вернётся HANDLE именно той DLL, которая вызывает эту функцию.
https://web.archive.org/web/20190213021845/https://www.codeguru.com/cpp/w-p/dll/tips/article.php/c3635/Tip-Detecting-a-HMODULEHINSTANCE-Handle-Within-the-Module-Youre-Running-In.htm
161 1761419
>>761185
>>761232
а как же goto error?
162 1761427
>>761419
Это ещё херня, тут кто-то писал, что в libpng обработка ошибок вообще через setjmp().
163 1761429
>>761419
Лесенки if-elsif-else - родовая травма всех алголоподобных языков без оператора return.
164 1761435
>>761429
Но ведь push x; ret медленнее jmp. При return тебе надо в стек писать. Вызов процедуры - это вообще пиздос какой оверхэд по сравнению с простым переходом.
165 1761441
>>761435

>Но ведь push x; ret медленнее jmp.


Гомпилятор сгенерирует тебе jmp из ветки if на тот же
эпилог функции, потому что возвращаться-то надо.
Кстати, сейчас clang/gcc умеют делают эпилог на месте каждого return, чтобы обойтись без перехода.

>При return тебе надо в стек писать.


В С не надо, результат возвращается на регистрах.
166 1761442
>>761435
Зато
167 1761448
>>761442
Проклятый интерфейс двача. Нажал не написав пост, и удалить-то его даже нельзя

>>761435

>Но ведь push x; ret медленнее jmp. При return тебе надо в стек писать


Тебе в любом случае где-то нужно будет сделать return. Ты либо его делаешь сейчас, либо делаешь джамп на return.

>Вызов процедуры - это вообще пиздос какой оверхэд по сравнению с простым переходом


Если листовые функции, то вообще нет. Да и в других случаях тоже, потому что сегодняшние соглашения о вызовах достаточно вменяемые в этом плане. ЕМНИП в какой-то статье из серии Lambda the Ultimate упоминался пиздец, который творился при вызове функций в древних компиляторах. Оттуда, наверное, и пошло, что вызов функции очень тяжёлая вещь.
168 1761490
>>761441

> эпилог на месте каждого return


Что за шиза? У тебя всегда выход из функции через ret, в EIP из стека кладётся адрес возврата.
И то что у тебя в регистрах 4 аргумента ещё ничего хорошего не значит, их ещё компилятору надо туда запихать. fastcall от мягких успешно был обоссан и в 32-битном коде до сих пор stdcall или cdecl в либах. На x64 вынуждено перешли на аргументы в регистрах, т.к. только rax жрёт imm64.
>>761448

> соглашения о вызовах достаточно вменяемые в этом плане


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

> Оттуда, наверное, и пошло, что вызов функции очень тяжёлая вещь.


Это пошло и продолжается от архитектуры х86, где переход в 5-25 раз медленнее других инструкций. Медленнее перехода только деление. Именно поэтому функциональщина всегда сосёт по производительности у Си-портянок. Так же как и кресты с ООПом сосут у голого Си.
169 1761509
>>761490
>>761448

Я надеюсь, что тут в курсе, что то о чем вы спорите (соглашения о вызовах) относится исключительно к библиотечным функциям с явным их экспортом. В рамках того что не экспортируется оптимизатор может спокойно делать всё что угодно, хоть лапшу из джампов, ХОТЬ ИНЛАЙНИТЬ?
170 1761517
>>761509

> В рамках того что не экспортируется оптимизатор может спокойно делать всё что угодно, хоть лапшу из джампов, ХОТЬ ИНЛАЙНИТЬ?


Это скорее к GCC относится, это там компилятор делает что хочет. А у майков в этом плане всё более строго, надо явно указывать что делать можно, по дефолту он не станет наглеть. Но полностью функциональные кишки всё равно никто не вычищает.
171 1761554
>>761490

>переход в 5-25 раз медленнее других инструкций


Посмотрел Агнера, по нему долгий только RETF (но мы ведь все в длинном режиме, так что он не нужен). Обычный RET (он же RETN) в процах 1-4 опсов занимает. Судя по https://blog.stuffedcow.net/2018/04/ras-microbenchmarks/ это действительно так.
172 1761562
>>761554

> Обычный RET (он же RETN) в процах 1-4 опсов занимает


Ну д, выполнение инструкции. А теперь плюсуй запись в стек адреса, чтение адреса из стека, переход после записи по этому адресу. Вот и имеем 20-30 циклов если предсказание совпало, по твоей ссылке столько и есть, примерно. За это время даже пару раз поделить успеем. Или около 50 операций сложения сделать.
А если промахивается, то там пиздец за 100 циклов уходит.
173 1761575
>>761490

>Что за шиза?


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

>у тебя в регистрах 4 аргумента ещё ничего хорошего не значит


Я тоже считаю, что интел = кал.
174 1761577
>>761562
Я, может, не то прочитал, но по ссылке указывается, что вся машинерия для call+return занимает в среднем 5 циклов (таблица 1, колонка CALL+RET). Не вижу, откуда ты взял 20-30.

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


Return Address Stack так и предназначен, чтобы не читать из стека который в памяти и удачно предсказывать направление перехода. А запись в стек адреса возврата в самой процедуре невидима, потому что не порождает зависимости по данным и последующие инструкции спокойно выполняются out-of-order.
175 1761588
>>761577

> вся машинерия для call+return занимает в среднем 5 циклов


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

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


Это только в таком абстрактном бенчмарке всё так просто. Миллион описаний есть как это работает в реальных условиях, почитай.

> последующие инструкции спокойно выполняются out-of-order


Чел, плиз. Открой в отладчике любую функцию и посмотри чем там занят проц на ближайшие инструкции. Нам запись тут вообще поебать. Важнее как быстро в больших процедурах его забирать обратно.
176 1761593
>>761490

>Это пошло и продолжается от архитектуры х86


>Именно поэтому функциональщина всегда сосёт по производительности у Си-портянок.


Этому надо читать AIМ-443
177 1761594
https://www.youtube.com/watch?v=CBRGaOMsit0

пиздец ну и акцент у челов, не могли нормальных кого то найти чтоли
178 1761602
>>761490
enter
/
exit
:3
179 1761605
>>761588

>Миллион описаний есть как это работает в реальных условиях, почитай.


Приведи одно-два описение с замерами тогда. Желательно на современном процессоре (хотя бы core 2). И всё-таки, откуда ты взял 20-30 циклов?

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


Лолшто. Как ты мне предлагаешь внутренние (не архитектурные) регистры через отладчик посмотреть?

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


Совсем нет. Как-нибудь потом загрузка со стека реально выполнится, процессор сверит с предсказанным, скажет "ок" и поедет дальше. Спекулятивное исполнение уже далеко впереди будет.
180 1761667
Вы не забывайте что то что у вас по цифиркам тактов выходит, не то же самое что будет в микрокоде самого процессора.
Не могу найти статью, вроде на хабре была, примерно про то, как в гипертрединге два потока выполнялось медленнее, чем один, потому что конвеерам требовался один и тот же модуль чипа и они начинали тротлить чтобы дождаться его освобождения.
181 1761679
>>761667

>Вы не забывайте что то что у вас по цифиркам тактов выходит, не то же самое что будет в микрокоде самого процессора.


Надо просто в голове совместить циферки throughput/latency команд и знание микроархитектуры. Сразу будет неплохая оценка производительности. И это не 20-30 циклов. Это около 5 циклов на весь эпилог.
182 1761714
>>759551
ГО ЛО СУ ЕМ
⚣ ☭ ⚧
https://www.strawpoll.me/20659412
183 1761735
Boost beast сложный для вката? Первый раз беру его, да и вообще boost.
184 1761791
1
185 1761843
Че то нихуя не понимаю по коду в бусте. Че по языку почитать?
186 1761885
>>761843
код буста понимают только его создатели. Это нормально.

>>761735
Простой, только не ебись с асинхронщиной первое время.
187 1761906
>>761843
Никто не умеет понимать код буста. Дело не в умении и не в желании понимать код буста, и вообще ни в чём. Дело лишь в самом запихивании буста во все проекты подряд.
Screenshot20200727-234514.jpg236 Кб, 1280x720
188 1761910
>>761906
>>761885
Разве это не причина в будущем писать хуйню тяп-ляп? Правда я иногда просто не понимаю, зачем они на самых первых страницах показывают примерный как я понял код по идее встроенных функций, ну да ладно . В любом случае чтение такого кода как на пикриле для меня пытка и я синтаксически мало его понимаю.
189 1761921
>>761910
Пчел, тебе не надо понимать, как написана библиотека, читая ее код - ты должен понимать библиотеку по документации и примерам. То, что ты пишешь хуйню тяп ляп и то, что ты не можешь читать код буста - это вещи никак не связанные.

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

> Пчел, тебе не надо понимать, как написана библиотека


Так это в доке написано. Хз чему тогда верить.

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


Ну мне посоветовали здесь взять boost beast, ну я и взял.
191 1761969
>>761910
Ну конкретно на твоем скрине ничего такого нет, обычный код. Боюсь представить что будет если ты зайдешь посмотреть их заголовок с препроцессором
192 1762003
>>761969
Поэтому я спрашивал что почитать
193 1762028
>>761921

>Пчел, тебе не надо понимать, как написана библиотека


Не слушай этого слабоумного зумерка. Смотреть код популяреых библиотек, в том числе из стандартного набора, должен каждый уважающий себя программист, только так ты научишься писать грамотный код и делать всё по уму. Это отличная возможность быстро развиваться, а не приходить к этому самому сквозь ошибки через n лет. Можно сравнить с человеком, которого научили сложению, но ничего про умножение не рассказали, да когда то он поймет, что 2+2+2+2+2 можно выражать как 2×5, но дойдет ли он до возведения в степень? Дойдет ли он до умножения столбиком?
194 1762030
>>762028

Как разбираться во всех эти бесконечных дефайнах, шаблонах и прочем говне?
195 1762038
>>762030
Учи принципы проектирования, ооп и солид. Главное не паниковать и не бояться перечитывать код по сто раз, до тех пор пока ней поймешь почему сделали именно так. После осознаеия приходит озарение и ты начинаешь не паниковать, а думать о том как всё хорошо устроено и логично, а также о том почему у тебя изначально понимание этого когда вызвало затруднение .
196 1762058
>>762038

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



>кресты

197 1762084
>>762058
Ты, если с чем-то поспорить хочешь, то и отвечай нормально, а не гринтекстом пукай, не в б же сидим
198 1762087
>>762084

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

199 1762095
>>762087

>язык, единственная цель которого добавить ООП в сишечку


>сам труп страуса постоянно кичится тем, что на с++ можно писать хороший ооп код с зиро оверхед


>неостлятор-корзина с двача: нинужна яскозал, вот на си я всё одним полотном хуячид и на с++ такжи нужна!!!


Проиграл с дебила
200 1762112
>>762095

> неостлятор-корзина с двача: нинужна яскозал, вот на си я всё одним полотном хуячид и на с++ такжи нужна!!!



Так ты как раз себя и своих корефанов-крестоблядей только что описал - в какой проект на гитхабе не зайди, везде си с крестами насрано.
201 1762142
>>761910
Я такой код начал понимать лет через 10-15 знакомства с С++ (но я на нем и не работал практически).
202 1762185
>>762058
хз, лично я не пишу вообще в процедурном стиле на крестах, зачем? Если я хочу упороться в процедурщину (или если хочу написать какой-нибудь драйвер на Линукс), то да, Сишка - лучший вариант.
А если плюсы - чистый ООП. ООП удобен тем, что используя эту парадигму, удобнее: а) Скейлить большие проекты, б) Представлять оверолл архитектуру кода. Плюсы позволяют писать чистый ООП (причем для особо требовательных программ можно схитрить и юзать статический полиморфизм, который не трогает vtables и не замедляет программу в рантайме), грех это не эксплуатировать.
203 1762207
>>762185

Речь про то, что возможность пердолить в процедурном стиле, наследие в виде долгого переходного периода, когда десктопная байтоебля переползала с С на кресты и общий объем легаси-кода вызывает рак кресторазработки, когда с соблюдение бестпрактисов ООП нужно еще днем с огнем поискать, а сеньеры разносят рак со старых проектов в новые.
204 1762268
>>762207
Использую кресты только для совместимости с ООП-говном. Как тебе такое?
205 1762269
>>762207
Новые проекты все реже и реже пишутся на плюсах, я уж не говорю про Си, увы :( Клятый раст отбирает всю систем-левел кормушку. А все из-за ссаного левацкого маркетинга про коко-безопасность. Тьфу им в харю!
Вот и пердолят легаси со всеми вытекающими... Красивые кресты с бестпрактисами ты скорее увидишь в репах у любителей-энтузиастов, но никак не в кодовой базе, которая тянется еще с девяностых.
206 1762291
>>762269
Какая чушь. Никакого раста нигде и в помине нет.
207 1762338
>>762028
Долбоеб не знает разницу между популярными библиотеками и АДОВЫМ БУСТОМ. Буст - это антипаттерн на антипаттерне через пиздец внутри.
208 1762348
>>762291
2 конченные конторы, которые занимаются блокчейном, отказали мне из-за того, что, видите ли, они решили с крестов на раст перейти. Ублюдки ссаные. Я во второй спросил: "И что, многие сейчас на раст переходят?". Они сказали: "В лоу лвле или там, где нужен перформанс, если проект пишется полностью с нуля, то да, Раст предпочтительнее крестов для многих компаний". У меня аж ком в горле встал. Обидно за кресты, хоть и продолжаю писать на нем свои пет-
проекты.
209 1762404
Накиньте идею для небольшого проекта в портфолио
210 1762409
>>762348

> 2020


> блохчейн



>>762404
Двухмерная игра "куб сьел квадрат" на SDL или SFML
211 1762410
>>762409

>Двухмерная игра "куб сьел квадрат" на SDL или SFML


Что-то подобное уже есть, только на pygame, на плюсах смотрю в сторону 3d на openGL, создать что-то вроде простого майнкрафта, но может есть поинтереснее идеи/инструменты(например не opengl а Vulkan)
212 1762412
Как при выполнении операции int i = 5; i = ++i + ++i; получается не 13, а 14? А? Ученые, в говне моченые? Если я инкрементну i то в первый раз получится 6 а не 7, у меня не пропадут блядь яблоки все разом нахуй.
213 1762423
>>762412
Потому же, почему "Казнить нельзя помиловать" не парсится в русском.
214 1762426
>>762410

> Vulkan


Это далеко не пет-проект будет. Это целый отдел сеньоров будет ебашить без выходных и сна пару лет.
215 1762432
>>762412
Нахуй ты этот баян раскопал?

О каком первом разе ты говоришь, если, скажем, все инкременты и декременты выполнятся до вычисления выражения, и в обоих разах будет 7, например? А если вспомнить, что это UB, в результате хоть 100 будет, хоть сегфолт, хоть dwarf fortress запустится.
216 1762434
>>762432

> dwarf fortress запустится


Это невозможно
217 1762435
>>758813 (OP)
Мб тут сидят челы шарящие за qml, у меня есть stackview приложение, в хедере сделал label с названием текущей страницы, но проблема в том, что пользователь может пойти по такому пути (главная->настройки->темы) а потом возвращаться обратно, и вот чтобы написать сверху корректное название страницы, мне нужно знать какая именно сейчас страница, есть ли возможность это узнать?
218 1762438
>>762434
Невозможное возможноооо я знаю точнооо ♫♫♫

UB на то и UB.
219 1762439
>>762434
А ты проверь.
220 1762440
>>762438
>>762439
Скажите хоть один кейс при котором это возможно
221 1762447
222 1762461
>>762338
Буст это как раз паттерн того как можно делать одновременно поддерживаемый и производительный код, как сам отец-создатель завещал.
223 1762463
>>761910
Еще раз вопрос задам. Что прочитать чтобы понимать пикрил?
224 1762465
>>762463
А что там непонятного? Простой ведь код
225 1762470
>>762465
Двачую, всё понятно.

мимо джавист
226 1762473
>>762461

> поддерживаемый


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

227 1762475
>>762412
Стыдно должно быть, когда такие вопросы задаешь. Ладно там макако-языки, которые с памятью не работают, но при работе с плюсами ты же должен понимать, что переменная i не продублируется в памяти и обращение всегда идет к одной области, далее достаточно знать приоритет операторов и всё становится ясно - увеличивантся i на 1, получаем i=6, увеличивается i на 1, получаем i=7, складывается значение i с значением i, т.е. 7+7, результат записывается в i
228 1762482
std::bitset copy или reference если <=32(64)?
sage 229 1762491
>>762412
Результат этой операции НЕ ОПРЕДЕЛЕН, довен.
230 1762495
>>762491
а почему не определен? это от компилятора зависит?
231 1762497
>>762475
Толсто
232 1762499
>>762463
Читать такой код.
233 1762502
>>762473

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


>буст поддерживают не при помощи людей, а при помози магии

234 1762503
>>762491
>>762495
Бля чета ору делаем один инкремент и получаем результат ок а делаем два инкремента и все пиздец UNDEFINED BEHAVIOUR ГДЕ ТЫ Я БЕГУ ЗА ТОБОЮ тупа на отъебись исключение сделали и так пойдет
sage 235 1762505
>>762495
Ты не можешь полагаться на значение переменной, если в том же выражении ты ее инкрементируешь. Результат зависит от уровня оптимизации и чего угодно еше.
236 1762507
>>762499
Не, я про синтаксис. Книгу какую почитатать?
237 1762520
>>762503
Даже переполнение знакового инта - UB. Сложил два больших числа - и вот у тебя уже UB. Охуенный язык, правда?
238 1762521
>>762507
В любой книге про C++ это объясняется бля
239 1762522
>>762521
Например?
240 1762525
>>762522
Труп страуса.
241 1762531
>>762412

> 14


Всмысле, блять? У тебя (5+1) + ((5+1)+1).
Уже на пальцах даже посчитать не можешь?
242 1762533
>>762531
Нет, блеать, у тебя ((5 + 1) + 1) + ((5 + 1) + 1)
243 1762534
>>762533

> ((5 + 1) + 1)


Откуда второй инкремент? Плюсики перед переменной - инкремент до выполнения операции с ней. Как у тебя инкремент 5 даёт результат 7, шиз?
244 1762535
>>762534
Вычисление не до операции, а до выражения шиз. Компилятор, полагаясь на то, что ты только один раз заинкрементишь, может поменять порядок вычисления. А ты его наебал, заинкресентил дважды, получил предсказуемое UB и жидко обосрался.
245 1762547
>>762412
sequence points, довны
246 1762553
НАПОМНЮ ОДНУ ВАЖНУЮ ВЕЩЬ

СТУДЕНТОДОВНЫ ТАК И НЕ РЕШИЛИ ПРОСТЕЙШУЮ ЗАДАЧКУ: >>759518
247 1762560
>>762553
так а какой ответ?
248 1762564
>>762553
Массив из 20 указателей на функцию, возвращающих указатель на int, и принимающих инт и массив из 10 указателей на константный указатель на константный указатель на чар
249 1762565
>>762553
Зачем?
250 1762594
>>759759
Zero overhead abstraction гугли. У нас на работе уже все драйвера на С++17 пишут.
251 1762595
>>759518

>Что за хуйня ниже написана?


Говнокод
252 1762598
>>762594
Нвидиякун?
253 1762605
>>762594
И каково писать код в кернел-спейсе без STL? Понятно, что плюсы в лоу лвле дают жесткое преимущество в лице темплейтов, constexpr, ну и ООП, но все же...

И да, дрова же на винду пишите, я так понимаю? На Линукс писать дрова на плюсах - тот еще анальный секс.
254 1762615
>>762595
Победитель.
15918210644823.jpg276 Кб, 1024x724
255 1762617
>>762564
Ты ваще деревянный нахуй ? Тебе ебать уже прямым текстом сказали, что ИТА НИ МАССИВ СУКА НИХУЯ ДОВН ТЫ ЕПТА ТУПОРЫЛЫЙ БЛЯ.
Кристина Финк.jpg77 Кб, 679x1024
хакир я 256 1762635
int ☭ (☭ arr(int, char ☭ const (☭ const ☭)⟦10⟧)) ⟦20⟧;
int
main()
{
char ☭const (☭ const ☭x)⟦10⟧ = 0;
int ☭(☭p)⟦20⟧ = arr(1, x);
return ☭((☭p)⟦0⟧);
}
257 1762643
>>762535

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


Только если в твоих фантазиях. Мой компилятор работает как надо и видит что там написано. Ты, блять, не в карты с компилятором играешь, чтоб наебать его, вытащив из рукава инкремент.
258 1762646
>>762643
Ладно-ладно, ты меня убедил, можешь запустить этот код и убедиться, что результат, как ты и говоришь, будет 13. Возьми пряник с полки.
01.png61 Кб, 376x316
259 1762647
>>762412
собственно, вот так
260 1762650
>>762647
А можно делать что-то типа
i = 0;
a[++i] = 666;
и ожидать, что в a[1] окажется 666? Или это зависит ко конпелятора?
261 1762659
>>762650
Можно, конечно. Инкремент только один.
262 1762677
>>762650
да, в этом случае 666 запишется в a[1], здесь нет UB и не зависит от компилятора.
15958769847640.jpg33 Кб, 400x400
263 1762695
>>762643
>>762646
>>762647
>>762650
>>762659
>>762677
Хули вы тут нанаркоманили, довны? Вам заняться больше нехуй, дебилы великовозрастные? Слово "стандарт" не слышали? Всем насрать на ваши пердольки в соснольке, тестовые запуски и дизасм, канают только цитаты из стандарта. Ибо компилятор сегодня так компилит, а завтра хуяк — и новая версия вышла, которая диск форматирует. И то, и другое будет допустимо по стандарту, т.е. правильно, ибо для вашего примера по нему BEHAVIOR IS UNDEFINED.
264 1762699
>>762695
Когда кто-то говорит "UB", всегда подразумевается стандарт. Но тот анон и слышать ничего не хочет и пытается применить логику других языков к плюсам.
15956055224490.gif31 Кб, 220x228
265 1762708
>>762699
Так а нахуя ты тогда втираешь что-то этому долбоебу, если он тупой? Ему же сказали уже про sequence points.

Кстати, когда кто-то подразумевает стандарт, не приводя цитат и номеров параграфов, можно для простоты смело считать этого умника беспруфным петушком.
266 1762716
>>762708

> нахуя


Прост) Может что и выгорит.

> не приводя цитат и номеров параграфов


Здесь все такие.
267 1762777
>>758888

>А если у функции полсотни аргументов?


делай инициализацию в две ступени
Foo foo = Foo()
.Set()
.Set()
.Set()
.Set();

;-D
(реально так тоже делают)
268 1762783
>>762777
В жабе это был бы какой-нибудь билдер.
269 1762802
>>762783
да, оно и есть, прост забыл
270 1762836
>>762617
Пруфы, чмох?
271 1762843
>>762598
Нет.

>>762605
Ты про рантайм? Один раз написал и забыл, обновляем сдк по надобности. Полная поддержка стандартной библиотеки включая исключения С++.
272 1762875
Пытаюсь вкатиться на плюсы после обычного си. Но мог не желает воспринимать даже банальное std::cout cout<<"sosi pidor"<<endl; Если endl ещё понятно, то :: << что за хуита типа ассемблера блядь. Это пиздец даже хелловорлд по памяти не могу написать. Это пройдёт или мне не дано?
273 1762881
>>762875
У тебя беды с башкой. Сходил бы к неврологу для начала. Без шуток
274 1762884
>>762881
Какой сходить невролог в пик вируса о чём ты?
275 1762901
>>762836
Дурачок, да ты будешь со своими дноклассниками в падике так базарить. Пруфца у конпилятора спроси (но ты не сумеешь, лол).
>>762777
Говно из жопы.
Этот >>762783 дело говорит.
В принципе, конфиг-структурка тоже канает.
276 1762912
Как вы готовите HiDPI в Qt?
277 1762918
>>762875
std::endl вообще лучше не используй
278 1762921
Что я делаю не так?
279 1762923
>>762921
Ну дак а симейк-то что говорит?
280 1762926
>>762875
Стандартные потоки говно.
Юзай fmt::print, к примеру -- https://github.com/fmtlib/fmt
вроде оно в стандарт должно скоро войти
281 1762928
>>762923
Молчит
15956600145010.jpg53 Кб, 444x444
282 1762929
>>762926

>Стандартные потоки говно.


>Юзай fmt::print, к примеру -- https://github.com/fmtlib/fmt


>вроде оно в стандарт должно скоро войти


А можно просто printf
283 1762932
Двачане, через 2 часа собес на джуна cpp. Что повторить чтобы не навалить говна? С меня как обычно Нихуя
284 1762941
>>762932
Студент?
285 1762947
>>762941
Ага
286 1762950
>>762947
Какой курс?
287 1762953
>>762928
Если буст нашёлся, а автокомплит и прочее не работает, то это к Intellisense, гугли, хз чё за IDE у тебя.
Ещё проверь, что ты линканул нужные таргеты буста со своим таргетом с помощью target_link_libraries
288 1762954
>>762926
Даже на элементарный вывод костыли нужны, охренеть
289 1762955
>>762954
Не нужны, тебе сказали, что ЛУЧШЕ использовать
290 1762958
291 1762960
>>762921
Вообще я такой штукой не пользовался, только vcpkg. Проверь битность, попробуй просто boost написать, будет ли она находить что то.
292 1762962
>>762954
И что? Стд вообще лучше не пользоваться. Там обычно нечто раздутое и пытающееся угодить всем но по чуть чуть. Этакий средний вариант. Узкоспециализированные либы всегда лучше. Это же касается всяких контейнеров, строк и т.д.
293 1762968
>>762962

> Стд вообще лучше не пользоваться


> Это же касается всяких контейнеров, строк и т.д.


Съеби
294 1762979
>>762932
sequence points
295 1762980
>>762875
Прочитай какого-нибудь Прату из оп поста, туториалами в интернете не обойдёшься.

>>762926
Зверович, хватит на двачах и в твиттере сидеть
296 1762981
>>762921
target_link_libraries Boost::boost на свой таргет сделал-то?
297 1762985
>>762926
Хули не boost::format?
298 1762991
>>762968
Что не так, школьничек? Никто в здравом уме не будет использовать std::string для чего то сложнее laba2.cpp в текстовых редакторах нужны ropestring, в базах данных тоже свое.
299 1763008
>>762991
А имена файлов в редакторах у тебя тоже роупстринги? А текст в менюшках, диалогах и прочем? А строки запросов в поиске и прочем? А в графических редакторах тоже роупы? Или графические — хуйня для школоты? А в играх? Короч хуйни-то не неси, дядь. То, что ты перечислил — узкие области.
300 1763025
>>763008
Есть много других строк. Например в граф редакторе у меня компайл тайм хешируемые строки. std string так не умеет, она не constexpr
301 1763029
>>762985
Проще потом будет перелезть на format из C++20 (там скобочки, а в бусте проценты)
302 1763055
>>762981
Нет, а как его надо сделать?
TbJ6GdU4hCY.jpg113 Кб, 1229x593
303 1763068
У страуструпа это читать?
304 1763070
Ни в clang, ни в gcc до сих пор не завезли С++ 20, серьезно блять?? Какого хуя?!
305 1763077
>>763055
https://cmake.org/cmake/help/latest/module/FindBoost.html
Тут примеры снизу. Учи симейк, очень пригодится
306 1763087
>>763077
Я видел. Не могу понять, что за foo
307 1763089
>>763087
Ну есть foo и есть bar, а еще baz
308 1763094
>>763068
Она же старая очень, не? 10 лет уже. Скажите что читать
309 1763099
>>763087
foo это сокращенно fooнкция
311 1763103
>>763099
И какую мне функцию туда вписать? Я не понимать.
312 1763106
>>763102
Спасибо
313 1763109
>>763102
Даже не просто спасибо. ОГРОМНОЕ СПАСИБО
314 1763111
>>763070
А ты чего хотел, чтобы коммунити мгновенно это сделало? Жди года 3.
315 1763117
>>763103
Попробуй main
316 1763126
ХВАТИТ ТРОЛЛИТЬ ЗЕЛЕНЬ.
317 1763129
>>763117
Ошибка
318 1763161
>>763126
А где тут запятую ставить?
319 1763171
>>763161
Перед первым словом.
320 1763189
>>762921
Бамп
321 1763190
>>763025
В с++20 уже constexpr
322 1763220
>>763070
В двадцатых дофига больших фич, которые с 11 года варились: рейнджи, модули, корутины, космические корабли, а концепты и того раньше
323 1763254
Читаю книгу Страуструпа, нахожусь на главе 12.3, скачал установил fltk все работает , но не могу найти simple_window.h и т.д, на его сайте не нашел, где еще можно найти эти файлы? Подскажите пожалуйста.
324 1763262
>>758847
Знаю, что слоу, но блядь, какого хера пихать объявление структуры в класс? Это же блядь неудобно, когда у тебя есть многоэтажная херня, тем более такая.
325 1763265
Как много интересных проектов пишется на плюсах?
Под интересными подразумеваю разные алгоритмы, оптимизацию разную
Или большая часть - это дрочево Qt, winAPI, MFC и прочем байтоебстве?
326 1763276
>>763265
Если хочешь алгоритмы ищешь в нете и бабахаешь деревьвя всякие там.
327 1763280
>>763265
Любая программа это набор алгоритмов и оптимизаций, дурик.
328 1763282
>>763276
Ну деревья бабахаю я и так, просто интересно в каких местах нет дрочева каких-нибудь легаси технологий, под винду, да еще и за низкую зп?

Я сейчас в ДС нахожусь, из интересного видел только хуавей и яндекс. Еще смотрел на разработчиков софта для моделирования, сапры там разные, но работы уж сильно мало.
329 1763284
>>763282
Ща никто свои велосипеды как я понял не пишет, ну разве для себя, остальное на готовом.
330 1763311
>>763254
На гитхабе кто то выкладывал.
331 1763395
>>763190
Ну да, наверное, но сколько лет его еще допиливать будут. У меня на компе не работает.
332 1763404
>>763025

>компайл тайм хешируемые строки


А вот диды считали perfect hash и у них получалось лучше.
333 1763417
>>763070
Сударь, вы не потеряли часом стыд требовать поддержку стандарта, который ещё не приняли?
Так-то в GCC 10 из крупных изменений только модулей не хватает, но серьёзно применять всё это дело лет через пять, дай бог через три можно будет без опаски.
334 1763462
Двощек, выручай!

Задали задачку, не смогла решить.
Есть функция на С++. Она принимает параметром указатель на функцию, принимающую параметром void☭ и возвращающую bool.И самая первая функция возвращает bool: true, если функция-параметр возвращает false при передаче ей параметром самой же себя. Вопрос: что вернет самая первая функция, если ей передать параметром саму себя?
335 1763464
>>763462
Инвертированное то, что передаст первая переданная функция по вложенности.
336 1763476
>>763464
Да,я и думаю,что она передаст. Тоесть она вернет инвертированную себя же?
337 1763481
>>763476
Короче false передаст первая функция
338 1763482
>>763265
в сторону машобчика и CV смотри
339 1763509
Почему во многих, даже практически во всех, примерах/туториалах не используется "using namespace x", а просто везде пишется x::? Ведь вариант с using namespace удобней же.
340 1763512
>>763481
Сказали что это неправильно
341 1763513
>>763509
Потому что цель примера/туториала научить и показать как можно детальней, а не "удобней и быстрее".
f274f0df12df40a9d4a2901a03ad2ec2.jpg85 Кб, 700x477
342 1763514
>>763509
Почему бы тебе не спросить это на парах у своего пердподавателя вместо того, чтобы засирать ламповый тредик на двощике? И почему бы тебе вместо того, чтобы считать себя самым умным и задавать "риторические" вопросы космического масштаба и космической же глупости, просто не взять бест практис на вооружение?
343 1763519
>>763509
Если у тебя два одинаковых имени функции или класса, ты охуеешь.
344 1763520
>>763513
Спасиб, я думал может разница какая есть.

>>763514
Я ничего не засираю. У какого преподавателя? Почему тут все думают если задаю вопросы по программированию то я учусь\работаю в этой сфере. Для меня это просто увлечение. И с чего ты взял что я считаю себя самым умным? Мне просто интересно было. Ёбнутый.
345 1763532
>>763462
Звучит как парадокс, типа ты не сможешь написать такую функцию. сиськи будут?
346 1763555
>>763520
Он решил что это продолжение вчерашнего троллинга. Это рили слишком банальный вопрос.
347 1763556
>>763532
Да там изначальное задание какая-то херня.
VrGXs0NZ400x400.jpg9 Кб, 240x240
348 1763599
>>763520
Вы стоите на самой низкой ступени развития, вы ещё только формирующееся, слабое в умственном отношении существо, все ваши поступки чисто звериные, и вы в присутствии анонов со знанием стандарта позволяете себе с развязностью совершенно невыносимой подавать какие-то советы космического масштаба и космической же глупости о том, как удобнее неймспейсы использовать. Вам нужно молчать и слушать, что вам говорят. Учиться и стараться стать хоть сколько-нибудь приемлемым членом социального общества.
349 1763606
>>763532
Кстати, я смог написать (чисто ради интереса).
Естественно, без c-style cast там не обошлось.
Может быть, кто-нибудь придумает лучше.

bool f(void ☭vp) {
bool (☭ff)(void ☭) = (bool(☭)(void ☭))vp;
return !ff(vp);
}

int main() {
return f((void ☭)f);
}
350 1763629
Объясните как компилировать под линпукс? Что там вместо екзешника?
351 1763639
352 1763641
>>763606
Запускал?
353 1763645
>>763641
Я не он, но при запуске ругается на то, что указывает куда-то не туда.
354 1763646
>>763639
шта?
355 1763651
>>763629
g++ laba1.cpp -g -o laba1

g++ - надмножество компилятора gcc для компиляции плюсового кода.
laba1.cpp - твоя лаба на плюсах, которую ты хочешь скомпилить, студентик
-g - флаг, который добавляет символы отладки в бинарь, чтобы ты не отлаживал чистый асм в итоге
-o - флаг спецификации имени исполняемого файла
laba1 - имя исполняемого файла твоей лабы.

Запуск - ./laba1

Формат бинарных файлов в Линуксе - ELF (executable and linkable format), погугли его структуру, гораздо менее заебистая и костылированная, нежели у виндовых бинарей.
15894600332590.png30 Кб, 656x527
356 1763705
>>763641
>>763645
Хорошо, тогда добавьте вначале эту строчку:

#include <dlfcn.h>

Добивайтесь, чтобы отконпилировалось, тогда все обязано работать, как задумано. И запускайте. Ну и почему сегфолт возникает, как вы думаете?
357 1763707
>>763705

>Ну и почему сегфолт возникает, как вы думаете?


Компьютер видит, что на нем пытаются решить проблему останова.
images.jpeg13 Кб, 267x188
358 1763710
stack overflow
359 1763711
>>763606
Упрощу твою портянку чтоб было очевиднее

bool f() { return !f(); }

int main() { f(); }
mini-23.jpg59 Кб, 768x567
360 1763725
>>763711
Ты отсылочку проебал, оптимизатор малолетний.
361 1763744
>>763651

> Формат бинарных файлов в Линуксе - ELF (executable and linkable format), погугли его структуру, гораздо менее заебистая и костылированная, нежели у виндовых бинарей.


Красноглазому дауну с комплексом неполноценности лишь бы на винду насрать
362 1763781
>>763651

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


Именно поэтому надо под каждый дистр собирать эту дрисню или тащить с собой столько зависимостей, что электрон позавидует? Действительно всё для людей.
363 1763787
>>763651

> g++ - надмножество компилятора gcc для компиляции плюсового кода.


Нет, т.к. плюсы - это не надмножество сишки, а в лучшем случае надмножество некоторого её подмножества. Даже набор UB у них разный.
364 1763788
>>763744
Найс пердак у виндауна улетел)
>>763781
Под какой каждый дистр, какие еще блять зависимости, шиндо-шиз? Ты Линукс хоть раз юзал или слушал рассказы неосиляторов, пытавшихся в 2000 году поставить дженту на камплютер?
365 1763789
>>763787
речь про компилятор, а не про язык.
366 1763793
>>763789
Да и компилятор тоже.
367 1763811
>>763793
у каждого компилятора есть свои расширения, это уже отдельный вид спорта.
368 1763818
>>763811
Тогда тем более.
369 1763830
>>763744
LH!This post cannot be read in DOS mode.
370 1763847
>>763788
Подожди, но ведь прыщеось теперь одна из подсистем винды.
371 1763854
>>763847
Сделано для девелоперов, ибо винда для программиста - анальная боль и мучительные страдания, благо до майков дошло это.
372 1763858
>>763854

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


быстрофикс
373 1763861
>>763854
Красноглазые дауны пилят полное дерьмо, которое еле еле забороли в пакетах под луниксом, а под винду оно просто дерьмо.

Спасибо микрософту.
374 1763862
>>763854

> этадругое


Ясно.
375 1763867
>>763847
Сделано через жопу, кстати. Гуй работает криво, systemd задизейблен, докер устанавливается с бубном, с case insensitive пиздец.
376 1763871
>>763867

> systemd задизейблен


О, уважуха майкам.
377 1763873
>>763871
Была бы хоть рабочая альтернатива, хотя бы велосипед от MS. Но хуй.

Вообще, в WSL2 многое обещают переделать.
378 1763881
>>763861

> "Дерьмо", которое крутится на 90% серверов в мире, на 100% роутеров, на 100% суперкомпьютеров, на всем IoT, Андроид (там Линуксовое LTS ядро и подрубленный SELinux), клауды, вся эмбедщина, вся робототехника, автономные машины, а также все вменяемые RTOS тоже на основе Линукса. Линукс - literally костяк почти всех компьютерных технологий в мире и костяк всего Интернета. Нет Линукса - нет Интернета.


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



Пиши еще, виндаун, ты забавный)
379 1763888
>>763867
Что через жопу то? Точно такое же ядро запускается под гипервизором. https://github.com/microsoft/WSL2-Linux-Kernel
380 1763893
>>763888
Ты не понимаешь!!! Ядро зашварилось об шинду! Это теперь не настоящий линупс! Вендекапец! Вендекапец!

>>763881
Игорь тонет.

А серьезно, после введения wsl мне категорически непонятен смысл его существования где-то кроме вышеупомянутых роутеров.
381 1763894
>>763881
Ебать ты клоун, иди хоть глянь актуальные статы. IoT - 30% винда, Server Os - более 50% винда, Desktop - 90% винда. ~60% тырпрайза за бугром - винда. И это еще даже Windows X не вышла. Через годика два винда будет преобладать вообще везде. Легаси линукс не нужен.
382 1763895
>>763888
Ядро-то работает, полноценные эльфы запускаются. Проблемы с сервисами в основном.
383 1763897
>>763881
Дурачок не понимает, для чего нужна каждая операционная система, и искренне считает, что винда всем насильно засунута только благодаря маркетингу. Я в шоке.

Попиши код на роутере, полудурок. А я буду его писать в студии под виндой.
sage 384 1763898
Какие же вы оба долбоёбы, блять. Надеюсь, вы рофлите так.
385 1763900
>>763895
Примеры?
386 1763902
>>763894

> Server Os - более 50% винда


Земля пухом, виндаун. 99%, ага.
387 1763903
>>763897
Visual studio code и под линупсом работает, дебс. А сама студия в дупу не нужна, да еще и со своим кривым мсбуилд.
388 1763907
>>763903
щас бы текстовый редактор на электроне равнять с профессиональным инструментом разработки
389 1763908
>>763900
Я же написал: >>763867

Для гуя надо отдельную прогу ставить, некоторые проги работают, некоторые срут в консоль и падают, ещё куча варнингов про непрааильную версию mesa. Чтобы починить, нужно хитро переименовывать либы в /usr.
Докер просто так не работает, нужно гуглить "как установить докер на всл" и читать огромные статьи, где пишется, что для установки ещё и докер десктоп нужен.
systemd как таковой есть, но через него ничего не сделать. Сервис не запустить, в автозапуск не добавить.
Ну а с case insensitive ничего не сделать, пока это работает поверх NTFS, а не в виртуалке.
yNBzerXD2xo.jpg8 Кб, 200x200
390 1763912
>>763907

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

391 1763913
>>763907
Съеби, зелень.
392 1763944
>>763907

>щас бы текстовый редактор на электроне равнять с текстовым редактором на сисярпе 20-летней выдержки



Поправил.

Сук, вспоминаю шестерку, летавшую на моем Celeron 300 и плачу в подушку.
изображение.png51 Кб, 860x426
393 1763948
++c.png80 Кб, 816x852
just trolling 394 1763949
395 1763952
>>762912
Бамп
396 1763957
VIM
unnamed (25).jpg43 Кб, 512x341
397 1763964
>>763867

>Гуй


Нахуй он на серваке? Запускать фотожоп под вайном? У тебя уже есть охуенный виндовый гуй в самой же винде, хули тебе еще надо?
А ДЕ линуксовые один стыд, что планшетопараша гном, что убогая поебень в духе крысы или, боже упаси, лхде. КДЕ тока более-менее норм, но тоже не дотягивает.

>с case insensitive пиздец


Мак ни разу не видел? Кстати, макось - это, в отличие от прыщеоси, НАСТОЯЩИЙ юникс.
>>763881

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


Ох лол. Пердольное чмо, которое даже блокнот под три системы или ардуино-хуитку под несколько плат никогда не поддерживало, судит о качестве огромных систем вроде винды. Почему же тогда винда до сих пор не сдохла, если она такая нехорошая, а линукс такой хороший? Я тебе как яблочник могу сказать, что во многих аспектах винда как минимум не хуже яблока, не говоря уже о прыщепарашках (хотя вендо-ноуты и вендо-моники то еще говно. насчет surface не знаю.)
398 1763967
>>763964

> Нахуй он на серваке?


Какой нахуй сервер на винде? Это ты выше про 50% серверов писал? Можешь не отвечать.

> Мак ни разу не видел? Кстати, макось - это, в отличие от прыщеоси, НАСТОЯЩИЙ юникс.


Это все знают, при чём тут мак вообще? Речь именно про лялех, а не юникс как таковой.
399 1763970
>>763907
Еще панчи будут?
400 1763972
>>763967
У мака файловая система по умолчанию кейс инсенситив, прыщедаун.

>Какой нахуй сервер на винде?


Ты тупой, блять? Зачем нахуй линуксовый гуй под WSL? Попердольки без перезагрузки устраивать? WSL ради докера пилят в первую очередь, чтобы отказаться от виртуалочки.
401 1763998
>>763967

>Какой нахуй сервер на винде?



Энтерпрайзный блядь. С Active Directory, Skype и прочими приблудами реального бизнеса, сидящего в офисах.
402 1764005
>>763912

Скачай пиратский SDK для PS4,

Скачай UE4

Скачай Unity

Во всех трех студия - стандарт для разработки.

не хипстоблокноты с репопомойками плагинов от васянов, не высеры джетбрейнс, не делфи эмбракадеро

И это только геймдев.
403 1764008
>>764005

>не жирножабные жирновысеры джетбрейнс

404 1764014
>>764005

> высеры джетбрейнс


Тащемта студия без решарпера - это как ворд без шрифтов или эксель без таблиц
405 1764068
Аноны, подскажите, кто на с++ пишет разные многопоточные сервера, с чего блять вообще начать то? Вот нужно мне написать допустим сервер и как это? Есть какая-нибудь литература? Знаю только в с++ QT, немного STL. Какие разделы надо проработать? По вакансиям все более менее вменяемое в основном это.
406 1764081
>>764014

>студия без Visual Assist


Поправил тебя, не благодари.
Хотя для шарпов он хреновый, соглашусь
407 1764100
>>764068

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


Берешь какое-нибудь говно и читаешь:
https://habr.com/ru/post/217437/
408 1764154
>>764081

> Visual Assist


Кал говна, который показывает ошибку ещё до того, как ты закончил писать выражение и потом ещё несколько секунд подсвечивает корректный код красным.
409 1764174
>>764068
Ооо. Я тоже такой целью задался. Начал с ученья плюсов. Мне целых 5 книг посоветовали. Думаю сначала Липпмана прочесть, потом многопоточность на плюсах, и затем буст учить.
410 1764185
>>764068
Если ты реально ничего не знаешь и хочешь глубинных познаний, то почитай про обычные блокирующие сокеты (connect,bind,recv,send), сделай с ними обычный сервак типа 1 тред = 1 соединение. Туториалов полно. Потом сделай с неблокирующими, используя селект/полл/IOCP с пулом тредов/форками и всеми пирогами. После этого всякие асио, libevent и другие библиотеки станут очевидными и можно перейти к их изучению. Какой-нибудь отдельной книги про всё это не знаю, хотя наверняка такая есть.
411 1764186
>>764008
Типо дотнетный высер м$ чем-то лучше, лул.
412 1764189
>>764186

Там хотя бы не заставляют писать бойлерплейт для тамошнего аналога BigDecimal, при том что могли бы основной рабочий тип (для бабла) в примитивы языка добавить, со всеми операторами.
15949332304910.jpg190 Кб, 756x751
413 1764194
>>764189
Чел, мне покс на язык, я про их IDE.
А если говорить про языки, то в контексте "высеры джетбрейнс" имеет смысл обсуждать вот это, а не жаву https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/java.math.-big-decimal/
414 1764296
>>763998
Двачую. Они просто не видели как работает поддержка инфраструктуры в тысячи объектов и десятки тысяч ИТ-устройств. Когда не ты лично следишь за этим, а всякие подрядчики и хуй знает какие ещё дауны. Если нет гуя, то тебе либо сломают все нахуй, либо заебут вопросами.
415 1764366

>Копипастишь примеры из учебников


>Нихуя не работает, куча ошибок


Почему такая ерунда?
416 1764373
>>764366
Ошибки распознавания текста?
Устаревшая версия чего либо?
Примеры подразумевают что объясняется только какой то один аспект, а все остальное надо дописать самому/взять из предыдущего?
417 1764385
>>764366
Не копипасти, учись писать код сам.
418 1764407
>>764385
двачую этого господина
419 1764418
>>764185
да я в общих чертах писал примитивную хуйню один сервер один клиент, а вот как что-нибудь серьезное сделать, х.з.
420 1764473
Как устранить ошибку " обнаружен многократно определённый символ - один или более" при написании иклуда в более одной вкладке в VS 2019?
421 1764475
>>763482
хуйня, вакансий ~ нихуя нет
422 1764477
>>764473
Pragma once или include guards.
423 1764480
>>764473
Что-нибудь почитать о том, как работает компиляция
424 1764482
>>764480
Тебе надо что-нибудь почитать про то, как работает мозг, почему человек может думать и откуда берутся мысли, чтобы подумать, что мне, может быть, читать эти твои мануалы нахуй не нужно, а нужно мне просто взять и пользоваться?
425 1764488
>>764482
Тебе надо почитать о том, как гуглить, твоя проблема встречалась уже тонны раз
426 1764493
>>764488
Зачем гуглить, если есть яндекс? И решения я таки не нашёл, хотя искал. В решении типа "консольное приложение" проблема сохраняется.
427 1764510
>>764373
По разному. Часто не переваривает заголовочники функции, иногда ругается на фигурную скобку и сидишь такой тупишь не знаешь что делать
428 1764516
>>764482
Ну тогда я рекомендую закончить с программированием, раз мануалы читать тебе нахуй не нужно
1577256671466.png65 Кб, 690x419
429 1764532
>>764510
Поставь нормальную IDE с плагинами и проблема скобочек исчезнет навсегда.
430 1764533
>>764510
Ну, хоть покажи этот пример со скобкой.
431 1764579
>>762112
ЭТА ДРУГОЕ ЛЕГАСИ!!1!1
432 1764581
>>762112

>одним полотном


Нет, надо 5-строчными методами, которые связаны глобальными переменнымиполями класса.
433 1764583
>>762087
На каком языке кодишь?
434 1764667
>>764581
Дядя Боб, уходи
435 1764674
>>763102
Где украсть книгу Александреску на 2019 год для нищебода?

А то везде только старье
436 1764687
>>764473
Для начала надо понять, что инклюдить файл -- это то же самое, как если просто взять весь его текст, и вкопипастить в место инклюда.
437 1764707
>>764687
Я кстати считаю это киллерфичей С++. Ведь можно так вставлять нагенерированные куски файлов. В других ЯП так не получится
438 1764710
>>764533
Указывает на скобку но ему не нравится что чего-то не хватает перед ней или перед ней что-то не правильно.
439 1764712
>>764710
Покажи сам код, придурок, тут нету экстрасексов.
440 1764822
>>764710
И скинь заодно скрин кода в книге. Не копию текста, а именно скрин. Вдруг в самой книге хуйня (такое бывает), а не просто криво распозналось.
441 1764866
Я ток начал изучать плюсы и хотел бы спросить нахуя нужны указатели?
sage 442 1764870
>>764866
Чтобы найти дырку твоей мамаши среди жировых складок.
443 1764925
>>764707
Лучше бы нормальную интроспекцию и std::embed завезли
fc.jpg31 Кб, 276x471
444 1764952
Почему в классе можно вызывать функцию до ее объявления?
445 1765016
>>764952
По той же причине, почему можно использовать поля класса до их объявления. Компилятор сначала сканирует все имена в классе и затем только на втором проходе начинает обход по их определениям. А вне класса нельзя, потому что совместимость с сями.
446 1765021
>>765016

> совместимость с сями


А как бы это помешало совместимости с сями? Код, который нельзя было в сях, теперь можно было бы в плюсах. Не запретить же что-то сишное, а только сделать предварительные объявления необязательными.

мимо
447 1765032
>>765021
В сях, вроде, необъявленная функция считается за int fun(void)
448 1765034
>>765032
Ой, наврал, int fun(...)
449 1765041
>>765034
Все равно наврал: f()
450 1765071
>>765032
То есть, совместимость с сями, получается, уже и так сломана?
451 1765073
>>765071
Она сломана давным-давно и с каждым новым стандартом ломается ещё сильнее.
452 1765077
>>765073
Не понятно тогда, чего бы не позволить объявлять функции где угодно в файле.
453 1765083
>>765077
Чтобы хоть какая-то совместимость была. Лишь бы не писать биндинги FFI.
454 1765087
>>765077
Класс все равно нужно парсить целиком перед кодогенерацией, а файл--необязательно. Поэтому правильное поведение на уровне файла не стали делать.
Безымянный.png7 Кб, 228x447
455 1765115
Объясните почему вариант с указателями проходит. Ведь это присваивание указателю производного указатель базового, я что-то упускаю?
456 1765118
>>765115
У тебя оба варианта не будут работать как ты думаешь. Во втором варианте у тебя несоответствие типов.
457 1765144
Как перестать запутываться в операциях разыменовывания, взятия адреса и ссылки?
458 1765174
>>765144
перестать говнокодить
459 1765210
>>765144
тебе в обычном коде (не системщина сишная и не qt) - нахуй все это не нужно. Value семантики достаточно
460 1765217
>>765115
В твоих примерах вообще никаких присваиваний нет, о чем ты? А перегрузки по типу возвращаемого значения нет.
461 1765219
>>765144
Делаешь упражнения и перестаешь путаться.
462 1765235
>>765217
Я не так выразился конечно, да. В смысле что происходит переопределение возвращаемого типа функции, и для указателей все почему то работает. Те ну это же разные типы A и B? Почему это все компилируется, а для A и B - уже нет?
463 1765255
>>765235
Почитай про ковариантность
464 1765266
>>765174
>>765219
Я понял, анончики, спасибо!

>>765210

>qt


Хм, а там-то зачем?
465 1765270
>>765144
Через некоторое время привыкнешь.
466 1765307
Как кастануть произвольный адрес к адресу функции?
467 1765310
>>765307
https://godbolt.org/z/49KWjn

А в чем проблема?
image.png9 Кб, 739x332
468 1765314
>>765310
Ну я хз как тут сделать Я понимаю что это хуйня получится и меня ос нахуй пошлет
469 1765316
NtQueryInformationProcess фейлится на защищенном процессе. Только не чекал lasterror, только лишь BasicInfo.PebBaseAddress на NULL.
Есть идеи какие системные процессы могут эту хуйню вызывать, мож в них заинжектиться?
470 1765317
>>765314
Тебе надо раскурить как записывать тип для указателей на функцию.

Посмотри мой пример с годболта и сделай так же.

возвращаемый_тип(*)(типы_аргументов_через_запятую)
471 1765318
>>765310
>>765314
так, не понял. Че за скобки? Чому так много? Я думал эо делается типо как на моем пике
472 1765320
>>765317
Спасибо
473 1765321
>>765318
потому-что так заведено
474 1765324
>>765307
Не думаю, что это хорошая идея. Звучит чуть ли не как потенциальное UB, хотя не факт.
Вот тут пишут, что на некоторых архитектурах такое вообще не будет работать (наверное, намёк на гарвардскую, где код и данные нельзя смешивать), хотя там про сишку: https://stackoverflow.com/questions/36645660
475 1765325
>>765321
То есть мне надо просто запомнить и никаких объяснений нет?
476 1765326
>>765325
Абсолютно верно. Такой синтаксис записи указателей на функцию. Можно немножко себе помочь, и сделать ченить в духе

using sig = int(⚝)(int, int);
auto func = reinterpret_cast<sig>(pointer);
477 1765327
https://godbolt.org/z/G67YxP

Почему я не могу написать это так? Это высосанное из пальца ограничение языка с невозможность агрегировать конструктор, или есть реальная причина, почему мне нужно отказаться от подобного синтаксического сахара и указать имя анонимной структуры?
478 1765328
>>765326
Спасибо большое. Правильно ли я думаю, что такая хуйня могла использоваться для передачи управления в вредоносный код. Да и сейчас по идее можно так сделать, но нужно заранее в бинарник в часть с кодом записать нужный код
479 1765329
>>765327
Про =default просто случайно нашёл, что с ним работает.
480 1765332
>>765316
Learncpp лучше а не сиди тут
481 1765365
Прежде чем что-то пробовать, хочу узнать: не будет ли каких-то проблем, если я попытаюсь одновременно одной программой совершать запись в файл, а другой чтение из того же файла?
482 1765386
>>765365
Могут быть.
483 1765396
>>765386
Например? Я под проблемами подразумеваю конфликты. У меня задача стоит сделать два таких параллельных процесса, которые создаются родительским процессом.
485 1765420
>>765327
Ты обязан проинициализировать значение Union
486 1765422
>>765365
При открытии файла во втором процессе скорее всего будет ошибка доступа. Я так понимаю, тебе нужно подождать, пока кто-то пишет/читает?
Для тебя уже всё придумали:
boost::interprocess::file_lock
QLockFile
487 1765425
>>765422
Не будет ошибки, если не запрещать доступ к файлу при открытии. Можно даже одновременно в один файл писать, главное не закрывать к нему доступ со стороны других процессов.
488 1765431
>>765425

> Можно даже одновременно в один файл писать


А зачем? думаю, это как-то связано с потоками в ФС?
489 1765502
Можно ли без десятка строк кода занести в переменную string весь текст из файла при помощи одной команды?
490 1765504
>>765502
Можно.
491 1765505
>>765502
Да, можно.
492 1765506
>>765502
Можно Машку за ляжку, а у нас итт — разрешите
493 1765508
494 1765509
>>765508

> Как?


std::string str((std::istreambuf_iterator<char>(std::ifstream t("file.txt"))), std::istreambuf_iterator<char>());
sage 495 1765515
как же я блюю с крестового синтаксиса
комбинация снейк кейса, двойных двоеточий, круглых и угловых скобок это наверное самое мерзкое что можно было придумать
496 1765517
>>765515
Сделай лучше.
497 1765525
>>765509
Использование имени типа не допускается.
498 1765529
>>765515
Самое мерзкое - это форматирование разрывом строки и отступами.
499 1765538
>>765517
Уже сделали, см шарп.
500 1765545
>>765538
Нахуй иди со своим сисярпом.
501 1765551
>>765545
Гнида ебучая, ты ахуела?
502 1765556
изображение.png4 Кб, 417x102
503 1765567
изображение.png4 Кб, 500x151
504 1765576
>>765567
Что я делаю не так?
505 1765578
>>765576
#include <sstream>
506 1765579
>>765578
Я уже сам нашёл.
507 1765623
>>758813 (OP)
[Перекат]

>>1765587 (OP) >>1765587 (OP) >>1765587 (OP) >>1765587 >>1765587 >>1765587 >>1765587 >>1765587 >>1765587 >>1765587 >>1765587
>>1765587 (OP) >>1765587 >>1765587 >>1765587 >>1765587 (OP) >>1765587 >>1765587 >>1765587 >>1765587 (OP) >>1765587 >>1765587
>>1765587 (OP) >>1765587 >>1765587 >>1765587 (OP) >>1765587 (OP) >>1765587 (OP) >>1765587 >>1765587 (OP) >>1765587 (OP) >>1765587 (OP) >>1765587
>>1765587 (OP) >>1765587 >>1765587 >>1765587 >>1765587 (OP) >>1765587 >>1765587 >>1765587 >>1765587 (OP) >>1765587 >>1765587
>>1765587 (OP) >>1765587 (OP) >>1765587 >>1765587 >>1765587 >>1765587 >>1765587 >>1765587 >>1765587 >>1765587 >>1765587
508 1765679
В чем разница между const int &r и просто int&r?
509 1765690
>>765679

> int&r?


Можно изменять значение того, на что указывает r.

> const int &r


Нельзя, но зато можно присвоить временный объект.
510 1765695
>>765690
Спасибо
511 1765949
>>765690

> > const int &r


>Нельзя


Неграмотное студентобыдло не палится.
512 1765968
>>764174
На кой хуй тебе весь BOOST, все равно не выучить, да и смысла не несет. Все что тебе нужно, это когда тебе будут давать задачу, ты будешь понимать что средства для её решения должны быть в boost, не более.
513 1765970
>>765968
Ну не весь. Конкретно beast.
514 1765974
>>765970
Boost::asio тоже не забывай в таком случае.
515 1765978
>>765974
Я пока просто открыл доку beast. Понял, что знаний не хватает. Выстроил вот такой план >>764174
Ну я вроде хоть что то по плюсам знал, поэтому липпман пока не сложно идет. 400 страниц за 1.5 дня. Хотя потом наверное тяжелее будет. Но мне кажется что многопоточность из этого всего самая сложная, хотя хз.
516 1766289
>>765978
400 страниц за полтора дня - это ты его так, пролистал нихуя не поняв
517 1766309
>>766289
Я же говорю, с плюсами до этого кое как был знаком. Что то пролистывал, просто глазами сканируя, чтобы нового не пропустить. Где надо, я читал вдумчиво.
518 1766390
>>766309
Кстати там ошибочка вышла. В программе, в которой я читаю, в книге 2000 страниц, вместо 1200. Поэтому мои 400 это 200 нормальных
image.png13 Кб, 383x334
519 1766802
Анон, у меня вопрос. Почему-то многие умные дядьки (вроде включая Мейерса) пишут что такая вещь как на пикче не нужна и избыточна.

Почему? Ладно, if там точно не нужен, но вот присваивание nullptr после удаления очень даже нужно. Я лично с таким сталкивался в таком виде
delete ptr;
...// много кода
delete ptr; // critial error - попытка удалить чужую память
image.png37 Кб, 511x619
520 1766803
>>766802
Собственно вот что происходит если вызвать второй раз delete
521 1766804
>>766802
Потому что пора переезжать на смартпоинтеры и вектора.
522 1766808
>>766804
многа букв писать
523 1767062
>>766802
это double free пчел
В некоторых ситуациях можно исполнить произвольный код в программе, где есть подобный баг.
524 1767116
>>766802
Это прям классический говноС++, от которого все плачут. Используй контейнеры и умные указатели.
525 1767128
>>767062
Как?
526 1767505
>>766808
Ну typedef в рашке-парашке же запрещен.
527 1767697
>>767062
Зависит от реализации аллокатора памяти в куче, на это нет однозначного ответа. Ну и митигации вставляют палки в колеса.

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

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

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

Но эксплуатация double free очень сильно зависит от аллокатора, которым пользуется программа (и даже от его версии порой), и считается одним из самых сложных багов для эксплуатации.
528 1767764
>>767697

> Результат - у тебя есть 2 указателя (А и В), которые указывают на один и тот же адрес. Допустим, ты контролируешь указатель В и можешь писать по этому адресу произвольные данные. В самом плохом случае, указатель А, который ты контролируешь через указатель В, используется как указатель на функцию в программе. При перезаписи указателя на функцию ты можешь перенаправить поток исполнения в произвольный исполняемый участок памяти, когда атакуемая программа вызовет функцию по этому модифицированному указателю. Если этот участок памяти указывает на твою заранее подготовленную полезную нагрузку в виде, например, ROP чейна, то происходит произвольное исполнение кода (программа вместо того, чтобы вызвать функцию foo по указателю, прыгает в адрес, контролируемый взломщиком).



Всмыслке? Функции же помечены как исполняемый код. Туда же писать нельзя. Или я что то не понимаю
529 1767811
>>767764
В примере привелся случай, когда в куче есть объект/структура, в которой есть указатель на функцию (что не такая уж и редкость, особенно в крупных программах на С++). В кучу можно писать и оттуда можно читать. В таком случае, в куче может храниться адрес на функцию, который можно переписать, если есть соответствующий баг, который позволяет это провернуть.
Если ты можешь перехватить поток исполнения программы и направить ее в произвольный адрес - это уже минимум пол-победы.

В большинстве ОС по дефолту есть ASLR (рандомизация адресного пространства), но этот механизм можно обойти, если в программе есть баг на произвольное чтение (можно спиздить адрес из кучи/стэка/код сегмента, когда как, все очень зависит от ситуации). В тот момент, когда ты можешь писать данные в произвольные участки памяти и знаешь куда прыгать - можно надежно исполнить произвольный код в 98% случаев.

Так как стэк/куча давно неисполняемы, используются code reuse атаки, именно поэтому я упомянул про ROP chain, а не про тот же шеллкод (хотя в 2к20 и его можно исполнить, но нужно знать OS internals (подсказка для линуксоидов - mprotect syscall, дальше сами думаете)).
sage 530 1768707
Идите в #117, посоны
531 1771705
Привет

В тредах уже обсуждался курс от Яндекса практикума?
Хочу после фронта стать нормальным человеком
532 1778273
Сап, есть такой эмулятор для второй соньки: https://github.com/PCSX2/pcsx2
Но заточен он под 86 архитектуру, ну и собсно не понял я: а где эта зависимость? Может кто носом тыкнуть? было естественно предположить что где-то ассемблер спрятан, но чет не нашел. Мож либа какая х86 онли?
533 1778383
>>778273
Или либо в 18 плюсовой, либо в сишнный
534 1778544
>>778273
У них там требования - поддержка AVX2
535 1787074
На каком IDE лучше сидеть Qt или codeblocks. Qt конечно легче настроить, но он похоже скурвится совсем, перейдёт полностью в коммерческую версию.
По codeblocks подскажите: если мне надо приложению создать GUI то надо ставить wxWidgets ?
536 1787821
>>787074
Если не хочешь писать на голом WinAPI, ставь wxWidgets. Например по инструкции отсюда:
https://jenyay.net/Programming/Wx

Если поставить SHARED=0, то wxWidgets будет компилироваться в exe-шник, и тогда не надо, как в Qt, таскать dll-ки.

И да - на CodeBlocks+wxWidgets релизы получаются намного меньше по размеру.
537 1878443
>>787821
Cockblocks дерьмо, wxwidgets дерьмо, отличные советы
Тред утонул или удален.
Это копия, сохраненная 5 февраля 2021 года.

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

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