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

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

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

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

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

Прошлый тред: >>2410386 (OP)
0.png1,7 Мб, 1700x2800
2 2451845
Лучший тред для лучшего языка.
3 2451847
С++ это кал малята
Просто говорю
4 2451851
C++ лучше чем шарп.
5 2451858
>>2451689 →
Стл это функциональщина та ещё
>>2451705 →

>зачем-то вынесли стандартные классовые методы в отдельные функции


Ооп-дурачок.
6 2451874
>>451858
Зачем ты его обзываешь, ведь все правильно пишет. Алгоритмы должны быть интегрированы в классы, либо как шарпе, нужно добавить возможность расширения классов из вне.
7 2451886
>>451830 (OP)
Нахуй вы на 1500 перекатили, чмошники? До 2500 хотя бы досидели.
8 2451909
>>451874
Предлагаешь например дублировать алгоритм сортировки для каждого контейнера?
9 2451911
>>451886
ты че пёс
10 2451979
Когда будет полная поддержка c++20 нахуй?
11 2451982
>>451979
Чел, уже полтора года как...
Половина фич из 23 запилено даже.
12 2451992
>>451982
В вижуал студио?
13 2451999
>>451992
Конечно. Разве что-то кроме неё существует?
14 2452001
>>451999
Ну есть ещё парочка компиляторов...
15 2452018
>>452001
Не слышал о таких.
16 2452049
Начал учить c++. Стоит ли переходить на Rust?
17 2452051
>>452049
Стоит переходить на жабу
18 2452053
>>452049
Работы для джуна на крестах нет. На расте тем более. Учи шарп, за ним будущее. Чудесный язык.
19 2452141
Поясните за memory allocation error в плюсах. После Си некоторые вещи неочевидны. Вот создал я объект класса string. Он же наверняка в конструкторе выделяет память под данные динамически. С освобождением памяти, вроде, все понятно, деструктор будет вызван автоматически, утечки не произойдет. А что, если по какой-то причине не удастся выделить память? Нужно ли каждый раз при создании такого объекта отлавливать bad alloc exception? Ни разу не видел, чтобы так делали. Это безопасно?
20 2452143
>>452141

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


Нет. На этом все свои рассуждения можешь нахуй отправлять.
21 2452146
>>452143
Ок, а как это работает тогда, если длина массива заранее неизвестна? И зачем так грубо? :(
22 2452148
>>452146

> И зачем так грубо?


А как ещё с дегенератами, неспособными освоить БАЗУ перед тем как задавать тупые вопросы?
23 2452151
>>452143

>Нет.


>>452148

>дегенератами, неспособными освоить БАЗУ


https://en.cppreference.com/w/cpp/string/basic_string/basic_string
Крестовик срет под себя. Реально.
24 2452154
>>452148
Я просто не понимаю, как ещё это может работать. Варианта всего три: статический массив с фиксированной длиной, VLA-массив в стеке и динамический массив. Массив с фиксированной длиной точно не вариант, а VLA не позволит произвольно менять длину массива. Ну и в чём я не прав?
25 2452158
>>452154

> Ну и в чём я не прав?


В том что твой код не запрашивает у системы память.
26 2452161
>>452154
VLA вроде нет в стандарте без расширений компилятора
27 2452168
>>452158
А зачем тогда Allocator в объявлении string?
28 2452170
>>452168
Чтоб ты свой мог написать. А написать ты можешь любую хуйню, она от этого не станет стандартным поведением языка.
29 2452174
>>452170
А по умолчанию там что тогда, лол
30 2452175
>>452170
И это всё равно не отвечает на вопрос, где массив располагается в памяти
31 2452176
>>452175

> где массив располагается в памяти


В уже выделенной памяти, блять.
32 2452177
>>2451084 →
https://pastebin.com/tCMENdFx
Во так реализовал
33 2452178
Массив располагается в памяти.
¯\_(ツ)_/¯
34 2452180
>>452176

>уже выделенной памяти


Кто ее выделил?
35 2452181
>>452180
Рантайм крестов. Но никак не твой код.
36 2452182
>>452176
Ты говоришь, что память не выделяется динамически. Ок, вот выделил ты в стеке массив размера N. А потом попытался считать из потока строку длиной 2*N. Как будешь увеличивать массив?
37 2452184
>>452141

>Вот создал я объект класса string.


Там short string optimization, короткие хранятся на стеке, длинные в куче. Соответственно где хранятся данные зависит от длинны строки конструктора.
38 2452187
>>452181
Толсто.
39 2452188
>>452184

>Соответственно где хранятся данные зависит от длинны строки конструктора.


Не только.
40 2452193
>>452184
То есть bad alloc в принципе возможен? Try-catch прописывать?
41 2452194
>>452193
А у тебя такие длинные строки, что может не хватить памяти?
42 2452204
>>452194
Ну, например, память забита и фрагментирована так, что куска памяти длиннее мегабайта нет. А я пытаюсь прочитать текст из файла размером 1.5 мегабайта.
43 2452217
>>452204
Если это возможная для тебя ситуация, то проверяй.
https://en.cppreference.com/w/cpp/memory/allocator/allocate
44 2452219
>>452204
Если у тебя строка из коробки, то аллокатор среды выполнения может кидать bad_alloc и его надо ловить. Если ты написал свой аллокатор и подсунул его в конструктор строки, то можешь разруливать всё в аллокаторе без кидания исключений наружу.
45 2452221
Аносы, обьясните нуфагу за изучение стандартов. Вот, допустим, я осилил кирпич Праты по 11 стандарту и понял БАЗУ. Как мне переходить к изучению 17 стандарта и т.д? Просто ботать изменения стандарта на сайте ЦПП?
46 2452223
>>452221
Есть книги и статьи про изменения в новых стандартах.
47 2452229
>>452221
Да в принципе никак. Увидел какую-то новую конструкцию - почитал, потыкал в неё. Язык невозможно выучить ни брутфорсом ни академически. Каждый год вываливают очередную спорную фишкуи потом её в трёх следующих стандартах доделывают, где-то расслабляют, где-то делают потуже.
48 2452239
C++50: программа на любом языке является синтаксически верной программой на C++.
49 2452243
>>452239
без оверхеда?
50 2452246
>>452243
Не платишь за то, что не используешь, всё стандартно.
51 2452252
Почему по qml почти нет инфы в интернете?
52 2452254
>>452229
Пиздец, а как использовать этот ворох функционала? Как выбирать нужные инструменты из такого количества говна?
53 2452255
>>452252
Qml - миф, его не существует.
54 2452256
>>452254

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


google: как сделать хуету
google: хуета работает не правильно
google: как сделать хуету без ебалы
google: хуета примеры
2ch: сегодня делал хуету через ебалу убил 2 часа нихуя не работает сделал через пиздорвань с первого же примера гугла сразу заработало. ебалобляди оправдывайтесь.
55 2452259
>>452256
Пиздец, а есть гайд, чтобы макакой с гуглом не стать? У меня, конечно, есть пару идей на эту тему, но их озвучивать пока что не стану.
56 2452261
>>452259

>макакой с гуглом


Ты в любом случае ей будешь, только макакой с книгой/наставником/курсами/доками итд. Ты никогда не сможешь знать все с чем работаешь, кроме случаев когда ты 20 лет пишешь микропенисы на жабе и сидишь на 1 работе.
57 2452262
>>452259
Я же тебе ответил, что есть книги, петух
58 2452266
>>452262
Плюс статьи на сайтах modernescpp, fluentcpp и т. п.
59 2452286
>>452261
Справедливо.

>>452262

>петух


Та за шо? Я видел твой ответ про книги, но задал еще один вопрос, более фундаментального характера.
60 2452294
>>452286
Настроение плохое
61 2452306
>>452262

>пик 1


>the exciting features


чёт проиграл
62 2452350
>>452252

> Почему по qml почти нет инфы в интернете?


По нему есть исчерпывающая дока с дохулионом примеров, как и для прочего куте. Какая инфа тебе ещё нужна блеать, ты эту читать пробовал?
63 2452369
>>452239
Получается, кресты тот самый язык из пророчества, что объединит все языки и платформы.
64 2452440
>>452239
Но не эквивалентна ей семантически, лел.
65 2452474
66 2452476
67 2452517
>>452369
Зачем будущее, когда уже в настоящем, стоило создать тред, как в нем сразу 60 порванных срак макак и ничего больше. Как видно, С++ и так доминирует на недостижимой высоте.
68 2452545
>>452517
Толсто.
69 2452584
>>452239
Где картинки(
70 2452589
>>452584
Поддержка компиляции картинок в C++60, к C++75 можно уже компилировать экзешники в другие экзешники.
71 2452591
>>452589

>C++75 можно уже компилировать экзешники в другие экзешники.


Я б так развлекался. Находил бы циклы и смотрел бы заворожённо на эту эволюцию хтонического пиздеца.
72 2452601
Вы так погнались за всякой хуйнёй, что уже и новые классы в своих проектах на создаёте.
73 2452615
>>452601
ООП устарело
74 2452618
>>452615
ФП-блядь закукарекала. Вас пиздить надо блять
75 2452620
>>452618
Я вообще не программист
76 2452625
>>452620
Все равно пиздить!
77 2452626
>>452615
А парни в геймдеве с их ECS то не знают!
78 2452628
>>452626
Сейчас игры - хуйня полная.
79 2452631
>>452628
шизоид, какое отношение паттерны программирования имеют к тому, что сюжетка и геймплей в играх нынче говно?
80 2452636
>>452631
Паттерны сковывают мышление
81 2452639
>>452631
Прямое. ООП это корпорастия, а корпорастия не может в творчество, в искусство по определению, производя только говнище вместо игр.
82 2452641
>>452636
>>452639
Челы открою секрет: современные игры уже даже не программисты создают, они просто конвертируют в код то что им скажут верхние
83 2452642
В чём разница между
std::string s = "Hello world"
и
std::string s = "Hello world"s
?
84 2452643
>>452639
>>452636
Ребят, сколько нынче пенсия по шизе то?
85 2452644
>>452643
24к где-то
86 2452647
>>452642
В первом используется один конструктор, а во втором - два.
87 2452648
>>452647
Есть ли смысл тогда приписывать эту буковку при инициализации?
88 2452649
>>452648
На самом деле во втором тоже один конструктор из-за copy elision.
Смысла - ну только если для авто

auto s = "Hello World"s;
89 2452651
>>452642

> В чём разница между


> std::string s = "Hello world"


> std::string s = "Hello world"s



Тут разницы нет особо, а вот между "Hello\0world" и "Hello\0world"s разница будет ощутимая.
90 2452653
>>452642
>>452647
Блять вы о чем говорите? Что за бред написан? У меня это даже не собирается
91 2452655
>>452648
Если только ты хочешь включить в строку нулевой символ. "123\0456"s сделает тебе строку длинной 8 байт.
92 2452656
>>452653
Ну одна строчечка то ессно не соберется
93 2452657
>>452653
using namespace std::string_literals;
94 2452660
>>452651
>>452655
Любопытный факт, спасибо
95 2452690
>>452651

>а вот между "Hello\0world" и "Hello\0world"s разница будет ощутимая.


Это интересно. Надо попробовать.

Двач - познавательный.
96 2452691
>>452690
Мне годболт при итерации for'ом выдавал одинаковые результаты.
мимо
97 2452721
>>452655
Вернее 7
98 2452723
>>452691
Видимо тип "hello\0world" оказался char const[12] а не char const*
изображение.png78 Кб, 1920x782
99 2452725
100 2452732
>>452725
У тебя написано не \0 а \07
101 2452742
102 2452873
Правильно ли я понимаю, что вся сложность плюсов - это знания о костылях языка и способы их обхода?
103 2452877
>>452873
Nyet.

Python language reference: ~130 pages,
C language reference: ~500 pages,
Java language ~650 pages,
C++14 language reference: ~1400 pages.
104 2452881
>>452877
Это не много о чем говорит, вот референс Rust'a 207 страниц. https://easyupload.io/744q38
105 2452882
>>452877
Это не много о чем говорит, вот референс Rust'a 207 страниц. https://easyupload.io/744q38
106 2452895
>>452882
У раста вообще нет ни стандарта ни каких то альтернативных компиляторов, не?
107 2452904
>>452895
А при чем тут референс? Они заявляют что он неполный - нет описания nightly фич, которые находятся в статусе проработки.

Базовые фичи-то они не меняют, а про них и референс. Не про стдлибу.
108 2452914
Только если твоя цель к запятым цепляться то да. Но де-факто это референс раста, в нем описан весь стабильный раст.
109 2453039
>>452877
Это че такое, научные статьи?
110 2453060
>>453039
language reference (справочник языка)
Это сколько примерно страниц занимает описание всех языковых конструкций (лексем?).
У Питона скорее всего спецификация побольше, а у плюсов поменьше, но 1000 страниц для последнего стандарта вполне реально.
111 2453061
>>453039
Это типо справочника для вкатуна с другого языка программирования. Он эти конструкции по смыслу уже знает, но выглядеть в разных языках программирования они могут по-разному.
Загрузи файл в меня.webm1,6 Мб, webm,
498x498, 0:01
112 2453066
>>451830 (OP)
Поясните где лежит указатель на динамически выделенную память для объекта Стринг?

Стринг 22 символа серет в стек, а потом резко переобувается и начинает срать в кучу, где лежит указатель на массив чаров который находится в куче?
113 2453071
>>453066
стринг это 2 числа и указатель. тот самый, который указывает на строковые данные в куче
114 2453076
>>453066
Вычислить "где конкретно" не так просто как кажется из-за правил POD
Вот норм статьи на русском.
Обзор о размещении в памяти: http://scrutator.me/post/2014/01/29/objects_memory_layout_p1.aspx
И про конкретно строки: http://scrutator.me/post/2014/09/02/cpp_strings_basics.aspx
115 2453089
>>453071
>>453076

Спасибо господа, нашел, второй байт, литл индиан - хуиндиан меня спутал.
116 2453239
>>452601
Зачем нужны классы?
117 2453298
>>452877

>Python language reference: ~130 pages,


>C++14 language reference: ~1400 pages.


Зачем единичку перед 400 приписал? Чтобы пожирнее вбросить?
16430929863460.jpg284 Кб, 781x464
118 2453391
uint64_t ptr2 = (uint64_t) x+2;
uint64_t ptr = (uint64_t) *ptr2;

Есть одна тян строка x, так я вытаскиваю указатель на массив чаров этой строки из кучи, можно как-то это сделать в одну строчку без второго указателя?

Я просто пытаюсь выучить ебаные указатели.
119 2453396
>>453391
Блядь, долгоносик звёзды пожрал, ну я думаю вам и так понятно.
120 2453402
>>453391

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


&x[0] должно работать
121 2453409
>>453402

&x[0] - это адрес объекта, а не массива.
122 2453420
>>453239
Удобная абстракция. При этом ты абсолютно на 100% понимешь что тебе сгенерирует компилятор. Чего нельзя сказать о шаблонах. Хотя шаблоны тоже неплохи. Главное применять всё это там, где это оптимально, и не применять там, где в этом нет смысла.
123 2453426
>>453409
x[0] - ссылка на нулевой символ в строке (char&). Сравни &x и &x[0] - адреса будут разные.
124 2453443
Че юзать для криптографии? Чет не хочу подключать либу в которой каждый день по несколько багом находят
126 2453462
>>453456

>1.png


Объекта тогда уж, а не переменной
127 2453467
>>453426

>>Сравни &x и &x[0]



&x это адрес указателя на объект, а &x[0] это адрес объекта. Похоже ты ещё хуже меня знаешь указатели, лол.
128 2453474
>>453467
А блять у тебя x это char*, я думал string, пардон
129 2453479
>>453467
Так падажжи ебана, тебе же нужен был указатель на массив чаров. Если x это char*, то че тебе надо-то? А если x это string, то я всё правильно сказал.
131 2453499
>>453456

> пик 2


Вот же дегенераты, рассуждающие о языке, которого не знают. Схуяли в их больном мозгу должно получиться 10, если там инт копируется? Пользоваться массивами учат ещё в самом начале, а этот даунёнок про какую-то память пишет и не знает основ. А с оптимизациями вообще эти 3 строчки нахуй удалятся компилятором, потому что они нихуя не делают.
132 2453513
>>453499
Так x2 же это ссылка, там всё правильно написано, если предположить, что оптимизации нет, а память действительно будет перевыделена.
133 2453524
>>453513

> Так x2 же это ссылка


Да, ссылка на скопированный инт, чел. Ахуеть, да? vec{2} всегда возвращает инт, а не ссылку на него. С кем я вообще в одном треде сижу?
134 2453526
>>453524

>vec[2] всегда возвращает инт


А тут ты обосрался
https://cplusplus.com/reference/vector/vector/operator%5b%5d/
135 2453532
>>453524

> ссылка на скопированный инт


Более того, ссылка на копию может получится, только если это ссылка на const. С кем я в одном треде сижу?
136 2453547
Зачем так жить, если языковые конструкции могут быть непонятны без гугления даже тем, кто на этом языке десяток лет пишет? Это даже не библиотека какая-нибудь и не фреймворк.
137 2453552
>>453298
Вот draft С++14 ISO/IEC на 1368 страниц. Думаешь там 70% это графомания? Добавь ещё к этой портянке c++17 и 20.

https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4296.pdf
138 2453570
Кстати, реквестирую квиз по С++ наподобие https://dtolnay.github.io/rust-quiz

Чтобы было видно "приколы/странности/неочевидности" языка. А не "как называется функция ассоциированная с объектом" и прочие тупости по стандарту языка.

Типо такого https://cpp.godbolt.org/z/4oW9PcGfx
139 2453577
>>453499

> Схуяли в их больном мозгу должно получиться 10


С того что напиши гребаную программу и запусти ее.
140 2453587

> ссылка на скопированный инт, чел. Кококо пок пок?

141 2453607
>>453570
Квиз на знание нюансов стандарта языка
https://cppquiz.org/
142 2453652
>>453577
Попробуй не использовать недокомпиляторы.
144 2453664
>>453658
У тебя x это string*, а я подразумевал string. Естественно, результат другой. Посмотри мой код с пастебина, и все станет понятно.
145 2453671
>>453664
Нет разницы куча или стек, после 15 или 22 символов всё улетает в кучу.
146 2453674
>>453671
Так я не об этом. Ты не понял, у тебя тип другой, поэтому и операторы работают по-другому. Для string оператор [ ] переопределен, и возвращает ссылку на символ (char&). Дальше ты берешь его адрес оператором & - и это указатель на саму си-строку в памяти. А то же самое выражение, примененное к указателю на строку (string*), не делает ничего.

P.S.: не "всё улетает в кучу", а только сами данные. Объект string, если не создавать его через new, будет в стеке всё время.
888.png65 Кб, 1045x683
147 2453711
>>453674
Так это не работает.
148 2453716
>>453552

>Вот draft С++14 ISO/IEC на 1368 страниц.


Ты питон language reference вместе с library reference считал?
149 2453718
>>453711
Что не работает-то? У тебя строка длинная, поэтому она в куче, а не внутри объекта. Это подтверждается тем, что &s и &s[0] совсем разные, на скрине же видно. Этот "кусок массива" на экране не имеет отношения к самой строке, это мусор внутри объекта string - можешь проверить сам. Может быть, всё это было бы понятнее, если бы ты выводил не char, а шестнадцатиричное представление байтов. Запусти этот код у себя и поэкспериментируй: https://pastebin.com/q2xaF0fW
150 2453727
>>453718

>Что не работает-то?


Твой код не может вывести строку. В основном это не работает, ещё он не может найти её в куче, но это уже второстепенно.
151 2453740
>>453727
Посмотри внимательно мои скрины выше: короткая строка - внутри объекта (видно по данным, выведенным на экран и по адресам), длинная строка - в куче, адрес опять же на экране. Но ты скорее всего троллишь тупостью.
152 2453756
>>453740

>в куче, адрес опять же на экране


напиши уже new чтобы полностью обосраться, хотя у тебя и так ничего не работает, куда ещё дальше срать.
153 2453816
>>453756
Может наконец дойдёт до тебя
https://pastebin.com/MkBvA1rV
154 2453818
>>453547

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


Потому что Плюсы - язык-выгребная яма, миллиарды котылей и тонны бесполезного функционала, который нужен лишь 0.00001% людей. Выше по треду даже шутили, что программа на любом языке является синтаксически верной программой на C++50. Но даже такому говноязыку не могут райти замену и приходится его использовать. Вся гадежда на Раст, но шансов мало.
155 2453826
Как считать бустом только линию? read until считает до разделитиля, а потом еще немного, но я не могу остаток просто взять и выкинуть. Варианты?
156 2453840
>>453826
Первая идея хранить буффер, но я не уверен, что если я передам этот буфер потом в async read, то данные не сотрутся.
157 2453854
>>453577
>>453587

Как же вы заебали в говне копаться. Говорю без особой злости, просто заебали.

Я вот отношусь к С++ как к Си с классами.
Ну и stl помаленьку пользую, когда надо что-то быстро захучить, а оптимизировать под задачу лениво или не нужно.

Ну зачем спорит, если всё давно разжёвано - https://stackoverflow.com/questions/29859796/c-auto-vs-auto
eew.png117 Кб, 1224x702
158 2453871
>>453816
>>string ps = new string("");
>>string& s =
ps;

Какой же ты дебил, просто пиздец, ты чё реально только в стеке можешь найти массив? Попробуй что-то попроще, с++ это явно не для тебя.
159 2453883
>>453854

>Я вот отношусь к С++ как к Си с классами.


БАЗА
160 2453897
>>453871
Ты безнадёжен.
161 2453903
>>453897
Сказала чмоня которая не может повторить то что я делаю в две строчки, лол. А я ещё надеялся что тут подскажут как сделать это в одну строчку.
162 2453916
Чё за хуйнёй вы тут занимаетесь?

>>453391

>uint64_t ptr2 = (uint64_t) x+2;


>uint64_t ptr = (uint64_t) *ptr2;


А это что за йоба?

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


Про c_str() слышал?
Снимок экрана (25).png7 Кб, 482x37
163 2453923
>>453916

>А это что за йоба?


Учу указатели. Уже сам нашел способ сделать это в строчку кста.
164 2453924
Это не тот шиз опять выходит на связь, который пару месяцев назад тут троллил двачь оператором= ?
165 2453927
>>453924
Пока только вы меня троллите тупостью, я им блядь про указатели , а они мне индексный оператор.
166 2453930
>>453923
Чем в твоём случае является x?
167 2453932
>>453930
Строка в куче.
168 2453935
>>453932
Тип какой.
169 2453939
>>453935
Стринг
170 2453948
>>453939
Ну раз стринг, то в таком случае так >>453923 делать нельзя. Во-первых, это нечитаемый кринж, а во-вторых, ты после разыменования указателя на string присваиваешь другому указателю не адрес, а данные, хранящиеся по этому адресу, преобразованные к типу указателя.
Запускать хоть свой код пробовал?
Снимок экрана (26).png46 Кб, 1205x483
171 2453950
>>453948

>Запускать хоть свой код пробовал?

172 2453956
>>453950
Классно троллишь, мне понравилось
173 2453960
>>453956
Хуй знает где тут троллинг увидел, я просто указатели учу.
174 2453963
>>453960
Ну учи, учи, хорошо учишь
175 2453981
>>453950
User 123
А ха ха. У тебя Винда нелицензионная что-ли?
Или специальная учётная запись для двачей?
176 2453986
>>453981
Даже если лицензионная не хочется перед микрософтом штаны снимать.

мимо
177 2454006
>>453986

>хочется перед микрософтом штаны снимать.


>в системе дохуя левых системных процессов


>не удаляемая Кортана


>не удаляемый Заshitник Windows


>миллиарды телеметрии


>ряяяяя я написал user123 и меня тепеь не узнают


Лол
178 2454013
>>454006
Все правильно. Не хочется самому снимать. Это унизительно.
Поэтому доверяем самое сокровенное космонавту.
179 2454017
>>454013
А про меня Microsoft знает всё. Опасаюсь что даже больше, чем я сам. И что? Пущай уважают кодера старого программиста.
180 2454020
>>453986
Купил ключ на ебае лет пять назад, рублей за 300 вроде. Раньше сидел на Windows 7 90 day trial, постоянно сбрасывая счётчик.

>>454006
А хули делать, Ну посидел я на Раче, чёт надоело гуглить Как правильно какать и настраивать этот велосипед под себя. Больше всего бесит что 99% софта под линукс написано на всяком говне, бог им дал божественный gcc, компилируйте сколько влезет, нет блядь хотим писать на всяком говне.
182 2454053
>>454041
Тебе ж сказали, что это троллинг, нахуй кормишь.
183 2454059
>>454041
Там от платформы зависит, у тебя 64 бита? Вообще нужно писать size_t, ещё посмотри где лежит адрес, он может быть + 2 в других компиляторах.
184 2454080
>>454053
Да хуй его знает, может быть, компилятор от МС какую-то свою магию применяет.

>>454059

>у тебя 64 бита?


Да.
Начнем с того, что, прочитав тред, я еще больше запутался и перестал понимать условие задачи. Нужно просто найти указатель на массив из char-ов или вытащить указатель на массив char-ов из string?
185 2454086
>>454080

> вытащить указатель на массив char-ов из string



Вот анон тебе вопрос очень правильный задал - >>453916

>>>>>> Про c_str() слышал?

image.png94 Кб, 866x605
186 2454097
>>454086

>c_str()


А здесь важно понимать, что этот метод возвращает. Из формулировки пикрила нихуя не понятно возвращает ли он указатель на массив в string или же возвращает указатель на НОВЫЙ массив идентичный изначальному.
Схожу поем и поебу байты в поисках ответа.
187 2454101
>>454080

>Да хуй его знает, может быть, компилятор от МС какую-то свою магию применяет.


Я проверял на своей студии. Кидает эксепшн.

> А здесь важно понимать, что этот метод возвращает.


Возвращает const char*. Никто не будет заморачиваться и копировать массив ради указателя на константу. Ты же не думаешь, что компиляторы пишут долбаёбы?

Даже если твой охуенный метод работает что невозможно, и я уже объяснил, почему >>453948, то он может перестать работать при малейшем пуке со стороны разработчика компилятора.
Снимок экрана (27).png61 Кб, 1559x939
188 2454103
>>454080
>>454041

В gcc скучно, вообще нет смещения.
189 2454105
>>454101

>Я проверял на своей студии. Кидает эксепшн.


Покажи что ты написал.
image.png30 Кб, 614x194
190 2454108
191 2454112
>>454108
Посмотри где адрес лежит, и поменяй на size_t
192 2454116
Я в тупике. Хочу уметь читать с сокета до разделителя и заданное количество байт. Проблема в том, что read until читает не ровно до разделителя, а чуть больше. Я хотел обернуть все в свой сокет, со своим буффером в который буду перемещать остатки с read until, а далее при чтении определенного количества байт высвобождать часть заполненного буфера, а остальное читать с сокета с помощью read. Хотел взять deque чтобы быстро сначала высвобождать, но read until просто не принимает дек. Хотел взять streambuf, но тогда объект перестает муваться. Просто vector не подходит, потому что с его начала очень долго объекты убирать. Я не знаю что делать, помогите пожалуйста
193 2454119
>>454112
Маня, ты почему-то старательно игнорируешь >>453948
Оно не заработает, хоть ты все типы испробуй.
На маленьких строках из-за SSO сработает (char⚹)x, но уж точно не тот бред, что ты написал.
194 2454122
>>454119
Маня, я тебе скинул как это работает на Линукс и Шиндовс, Андроед скинуть?
195 2454127
>>454122
Заставь onlinegdb, ну или любой другой онлайн компилятор, который мы все вместе итт сможем проверить, показать такой результат.
https://www.onlinegdb.com/PffgLySU3

Ну или хотя бы шебмом пруфани, а то скриншоты это как-то скучно, сам понимаешь
196 2454132
челы пчелики завязывайте нахуй я заебался жир с монитора вытирать
197 2454134
>>454127
На пока андроед пожуй.
198 2454143
>>454127
https://onlinegdb.com/c3HpM3G3m

Тут тоже gcc похоже
199 2454158
>>454116

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



Думаешь ты правильном направлении. Не со всем согласен, но в целом здравое зерно есть. Твоя проблема в том, что у тебя С++ головного мозга. Это такая болячка, когда ты используешь лишь те инструменты, которые знаешь. Внимание, вопрос: "Что тебе мешает забить на STL и реализовать буфер руками????"

И не ебать мозги себе и нам. Пойми, если С++ тебе что-то позволяет, то не обязательно это использовать.
200 2454165
>>454122

>Андроед скинуть?


Змиялся до слёз.
Андроид типа не Линукс?

Тогда уж сравнил бы MSVC, gcc и Clang.
Гы гы. А мог бы ещё и потроллить Watcom C++ и Borland C++Builder
201 2454168
>>454165
Шиндус смещение 1
Линупс смещение 0
Андроед смещение 2
202 2454173
>>454158
Нужно будет наследоваться от бустового буфера. Я это ни разу не делал. Боюсь, что там будут всякие хитрые проблемы которые я ебнусь реализовывать. Но спасибо, попробую
203 2454187
>>454168

>Линупс смещение 0


>Андроед смещение 2



32/64 бит?

> Андроед смещение 2


Гы. А ты попробуй на девборде на ARMv7 с Debian на борту.
Тут не в ОС может быть дело, а в архитектуре.

Или у тебя Android на x86?
204 2454190
>>454187
всё 64 бит.
206 2454205
>>454196
У меня горит че то. Вроде очень простая задача, а целый день провозился, сука. И еще не решил. Так бы уже либу нужную дописал и сидел капчевал спокойно
207 2454371
>>454101

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


Ну вот смотри, что получается. Пока что выводов делать не буду, проверю еще одну теорию.
208 2454376
>>454371
Так, подожди, я что-то сломал.
209 2454435
А вы какое расширение у исходников предочитаете?
Я мощно оргазмирую от .cc и на полшестого от .cpp
210 2454459
>>454435
cpp и hpp, всё остальное для поехавших шизоидов.
211 2454462
>>454376
>>454371
Вот пофиксил. Да c_str() на массив внутри string ссылается. Собственно, через указатели это сделать тоже можно.
212 2454500
>>453818
У раста нет обьективных плюсов перед крестами
213 2454502
>>454500
Как думаешь, почему Tor переписали на Раст, а не на Плюсы, учитывая, что он изначально написан на Си?
214 2454503
>>454502
Да можно и в присядку дрочить, толку то. На си/спп можно сделать вообще все. Практика показыапнт чтотпо сути так оно и есть. Это база. Хочешь на чем то другом - попробуй, но смысла нету.
215 2454506
>>454503

>На си/спп можно сделать вообще все.


Как и на многих других языках. Что тебе конкретно на расте мешает писать?

>рактика показыапнт чтотпо сути так оно и есть.


Практика показывает, что с 70-х годов ничего не могут поделать ни стилистика программирования, ни санитайзеры, ни линтеры, ни прочие ухищрения, придуманными людьми. Как было 70% ошибок некорректной работы с памятью, так и остаётся эта печальная статистика для более-менее крупных проектов. Вот это БАЗА.
Но маня с двачей конечно же знает сикретный метод самих ДИДОВ, который позволяет писать код без утечек, УБ и use after free. А то, что Раст - глоток воздуха в мире ЯП, совершенно новая концепция с 80-х годов(или когда там языкостроение остановилось?) это паебать. Мы люди не гордые, видим байты - ебем.

>Хочешь на чем то другом - попробуй, но смысла нету.


Ну почитай дневничок разработчиков версии Тора на расте, узнаешь в чем смысл.
216 2454507
>>454502
Мозилла создала Firefox, на котором основан Tor, затем создала для себя же раст, и было бы удивительно, если бы она не начала юзать свой же язык, ведь то очень подозрительно, когда IT-компания не использует свои же технологии.
217 2454508
>>454507

>Мозилла создала Firefox, на котором основан Tor


Что, блядь? Какой нахуй Тор от мозиллы? Остальную шизу даже не читал.
Сосач, 2022. Абу. Итоги.
218 2454509
>>454503

>На си/спп можно сделать вообще все.



А что нельзя сделать на си/спп, то можно сделать тулом, написанным на си/спп.
219 2454510
>>454508
Вот именно, что не читал. Ты ебанутый? Тор основан на Firefox, но из этого никак не следует, что сама мозилла этим занималась.
220 2454511
>>454506

>сикретный метод самих ДИДОВ, который позволяет писать код без утечек, УБ и use after free



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

Ты лучше предложи инструмент для мнопотоных приложений, который гарантированно исключит deadlockы и при этом будет иметь хорошее время отклиа.
221 2454513
>>454510

>Тор основан на Firefox, но из этого никак не следует, что сама мозилла этим занималась.


Это тролинг? Ты знаешь, что такое Тор, болезный?

>Ты ебанутый?


Такой же вопрос хочу тебе задать.

>>454511

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


Не предложу, своими ручками.
https://doc.rust-lang.ru/book/ch16-00-concurrency.html
222 2454514
>>454511

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


Алсо, жаль, что эти правила кроме тебя, видимо, не знал и не знает.
223 2454515
>>454513
Я знаю, а ты нет.
image.png94 Кб, 225x225
224 2454516
>>454515
Пожалуйста, перестань толстить.
https://letmegooglethat.com/?q=what+is+a+tor
225 2454517
>>454516
А что если ты разговариваешь с современной нейросеткой?
226 2454518
>>454517
По задачам.
227 2454561
>>454097
Там ниже написано, что до c++11 гарантировалось, что оператор [ ] выдает те же символы, что и в c_str(), то есть совпадают значения, а не адреса. А начиная с c++11 уже гарантируется, что совпадают адреса, то есть с c++11 c_str(), хоть это и указатель на const, указывает на тот же кусок памяти, что и [ ], который точно выдает ссылку на оригинал, а не на копию.
228 2454594
>>454561

> А начиная с c++11 уже гарантируется, что совпадают адреса


Ты знаешь что x[1] это тоже самое что x + 1

Я хуею с дегенеративности этого тренда.
229 2454627
>>454594
Не знаю, троллишь ты или нет, но для справки: если x это указатель, то x[1] это то же самое, что *(x+1) обращаю внимание на звёздочку, так что ты обосрался.
15379904743381.webm8,5 Мб, webm,
960x540, 2:00
230 2454667
>>451830 (OP)
Помогие с тупым вопросом.
Никогда не программировал и ничего такого

Хочу вкатиться в Унреал Енгине, мне для этого надо бы изучить С++ по какой-нибудь хорошей книге? Еще наверное дополнительно специальные книги про ООП и алгоритмы, и я смогу делать в УЕ все что придумаю?

Или не правильно себе это представляю, и надо бы другим путем двигаться?
231 2454684
>>454627

>x[1] это то же самое, что (x+1)


Нет, это то же самое, что
(x+sizeof(*x)), так что вы оба обосрались.
232 2454685
>>454684
Там тоже звездочка стоит, просто харкач принял это за разметку.
233 2454688
>>454514
Ладно, пару скажу.

После delete присваивай указателю nullptr
При этом шансы получить "use after free" снижаются на порядок.
А вероятность поймать исключение во время отладки увеличивается на порядок.

Что касается UB, то вместе с опытом ты теряешь UB, просто потому что ты знаешь "слабые места".

С утечками сложнее. Тут надо заморачиваться на этапе проектирования. Я несколько напиздел насчёт "проствх" правил. Правила для исключения утечек не простые. БольшАя засада когда ты выделяешь память в одном потоке, а освобожаешь в другом, тут очень легко чего-то недосмотреть. Поэтому этап проектирования решает.
234 2454691
>>454667

>мне для этого надо бы изучить С++


На чём сейчас пишешь?
Изучать С++ как первый язык это такое.
235 2454694
>>454691

>Никогда не программировал и ничего такого


Такие дела
236 2454699
>>454684
Арифметика указателей не так работает
+1 это смещение не на 1 байт, а на 1 размер базового типа.
237 2454700
>>454694
Не, изучить конечно реально. Но это будут весьма специфические знания. Без базы знаний и опыта получаются своебразные С++ программисты.

Ну что ж, могу дать совет - когда будешь здесь (на двачах) задавать вопросы по С++, то (я имею в виду конкретные вопросы по конкретным свойствам, операторам, синтаксису, поведению, etc.) - будь эпатажным, провокационным, неунылым. Тогда народ выльет на тебя кучу говна вместе с решением твоей проблемы.
Иначе высок шанс получить игнор вместо ответа.
238 2454702
>>454699
Да.

Это надо понимать ещё до перехода с Си на С++
239 2454703
>>454702
Кстати да, странно "учить указатели" на плюсах, а не на си. Нежданчики с перегрузкой операторов и ссылочными типами гарантированно помешают.
240 2454784
Зачем нужны кресты, если они по скорости проигрывают шарпу?
https://ru.stackoverflow.com/questions/189730/%D0%A1%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D1%8C-%D0%BD%D0%B0-c-%D0%BA%D0%B0%D0%BA-dictionary-%D0%BD%D0%B0-c
241 2454805
>>454784
Если они по скорости проигрывают шарпу - где вообще все на шарпе, игоры, браузеры, кады, ОС?
242 2454829
>>454805

>игры


А как же Unity?))
243 2454838
>>454829
Ну и какая репутация у игор на юнити?
244 2454844
Как в utf-8 писать все? Я написал '\n', но оно не в юникоде отправляется на сервер
245 2454846
>>454805
Всё тобой перечисленное это дремучее легаси, которое начало разрабатываться во времена, когда шарпа ещё не было.
246 2454847
>>454829
В юнити на шарпе только скрипты, весь рантайм на крестах.
247 2454859
>>454699
Да, значит я обосрался.
248 2454861
Я сейчас вот сравниваю. Если я пишу с помощью сторонней проги перенос строки, то приходит 20 0d 0a 20, а моя прога почему то пишет 20 0a 55 45. Что делать?
249 2454863
250 2454865
>>454844
\n никак не связано с юникодом.
251 2454875
А не, лол. Все норм, просто пакеты потерялись. У сука
252 2454876
А не, не. Проблема есть
253 2454881
Да ты заебал!
254 2454884
>>454846

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


А что не легаси, мобилкопараша для дебилов?
255 2454890
>>454784

>Зачем нужны кресты, если они по скорости проигрывают шарпу?



Это невозможно. Сейчас схожу по твоей ссылке объясню почему невозможно.

Ну вот, там же по твоей ссылки ответ - кастом аллокатор.

А теперь смотри. Вот у тебя в памяти таблица чего-то на гигабайт. Тебе нужно найти элемент. У тебя две программы - одна на С++, которая перебором ищет искомый элемент, другая на Бейсике, которая использует hash-функцию. Ря-я-я-я-я, интерпретатор быстрее компилятора.
256 2454892
Короче суть в чем. Прога на сокете читает пакеты по новой линии и перенаправляет. Оно читает в utf8. Когда я делаею в текстовом редакторе винды файл и отправляю, то идет на сокет \\n как разделитель, а если в utf8 notepad'ом, то на сокет идет \r\n как разделитель и не работает нихуя. А моя прога отправляет что то, что wireshark видит как 20 0a. Вообще пиздец. Что делать?
257 2454893
>>454844

>Как в utf-8 писать все?


В Visual Studio - save as и выбираешь там сохранять в юникоде.
В FAR Manager: Ctrl+A, Ctrl+X, Shift+F8, выбираешь utf8, затем Ctrl+V.
258 2454897
>>454893
Исходник в юникоде вроде бы..
259 2454898
>>454892
Причем \\n почему то как разделитель считается прогой нормально. Пиздееец
260 2454918
Короче долбаебы писали прогу, что пакеты читает. Написано, что \n требуется, а на самом деле \n\r. Очень круто
261 2454998
Аноны, а на современных ЦП размер бинарника влияет на производительность? У некоторых игровых движков уже за 100+ мб переваливает и вроде нормально работает всё. Будет ли разница между обмазом библиотеками с мусором или ручным пердолингом при одинаковом исполняемом коде?
262 2455017
>>454998
А ты не смотри на размер бинарника, все равно динамических библиотек всегда ещё как тыщу бинарника догрузит
Снимок экрана (28).png36 Кб, 665x229
263 2455075
>>454699

> 1 размер базового типа


Чмоня, напомни какой размер у size_t на 64 битном инцеле?
264 2455108
2022-09-04 194130-Window.png16 Кб, 274x482
265 2455176
Анон я заебался. Может у меня gcc багованный? Как state может быть не 0 или 1? Это просто C, не плюсы.
https://pastebin.com/tu4Rmh5v
266 2455193
>>455176

> int w[0]

267 2455195
>>455193
И как это задевает state?
268 2455197
>>455193
Так, что он в параметрах к printf вместе с твоим state
269 2455198
270 2455258
>>455197
И как он задевает? Он же просто указывает что второй %d это его value?
271 2455270
272 2455275
>>455258
Ты бы лучше сначала исправил эту ошибку и запустил код, а потом рассуждал. Выше правильно написали, что это неопределенное поведение, поэтому результат может быть неожиданным.
273 2455282
>>455270

'0' = 48

w[i-'0']=0;

ты на 47 машинный слов залез по стэку вверх и затёр что-то в вызывающей функции. Хорошо бы это адрес возврата из функции, чтобы программа рассыпалась в клочья. Гораздо хуже если твоя программа управляет каким-либо критическим процессом и ты вот так поступаешь. Так по ошибке можно страшных дел натроврить.
274 2455436
>>455282
Мне чтобы понять это объяснение нужно знать азы ассемблера?
275 2455437
>>455270
Что это значит?
276 2455444
>>455437
Undefined behavior.
277 2455445
>>455444
Кстати, кто может пояснить за разницу между undefined, unspecified и implementation-defined behavior? Есть какая-нибудь хорошая статья на эту тему?
278 2455453
>>455445
Undefined - нигде не описано, что произойдёт, поведение совершенно непредсказуемо. Например, переполнение знаковых. Однозначное зло, которого надо избегать, остальные два варианты допустимы в различных ситуациях.
Implementation-defined - не описано в стандарте, но может быть описано где-нибудь в доках компилятора или ОС. Например, размеры типов в зависимости от платформы.
Unspecified - тоже не описано нигде, но смысл "оставлено на усмотрение авторов компиляторов".
279 2455464
>>455453
Правильно ли я понимаю. IDB должно быть четко описано в документации компилятора (например, "int = 4 байта"), и если оно не прописано, то компилятор не вполне соответствует стандарту. А USB может быть разное даже в рамках скомпилиррваной однажды программы (например, программа то вычисляет аргументы функции слева направо, то справа налево), и это стандарт не нарушает. Получается UDB > USB > IDB по степени важности. Всё так?
280 2455466
>>455436
Азы наверное нужно. Даже не ассемблера, а азы ABI - https://ru.wikipedia.org/wiki/Двоичный_интерфейс_приложений

При этом главное правило - пусть лучше программа вываливается с ошибкой, нежели неправильно работает.
Если лениво с этим разбираться, то лучше посмотри в сторону C#/Java/интерпетаторы
281 2455470
>>455436
Ты из переменной i, которая у тебя равна единице, вычитаешь код символа Q, который равен 48.
Получется -47
Затем ты используешь отрицательное число как индекс массива.
Компилятор это пропустил, хотя, возможно, сделал замечание.
Не факт, что допустил константный отрицательный индекс - проверять лениво.
А посколько переменные у тебя локальные, то память для них выделяется на стеке. Там же фрейм вызова функции с адресом возврата. А ты берёшь, и пишешь куда по стеку вверх. Если затрёшь адрес возврата - программа упадёт при выходе из функции, потому как обратится адресу, который ей не принадлежит, ОС это перехватит и аварийно завершит программу.
Если порушишь фрейм вызова, то с вероятностью близкой к единице программа упадёт тоже.

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

Если это программа управляющая технолгическими процессами, банковская или математическое моделирование, то... мне даже страшно писать какие могут быть последствия.
282 2455485
>>455436
Если хочешь без ущерба по скорости исполнения не мучиться с байтиками, то есть еще Rust.
283 2455743
>>454699
Арифметика указателей не так работает
+1 это смещение не на 1 размер базового типа, а на следующий элемент массива. (https://timsong-cpp.github.io/cppwp/n4861/expr.add#4.2)
284 2455752
Надо принять (по сети) и обработать структуру, но какая именно это будет структура, я узнаю только в рантайме (выбор из трёх, возможно четырёх структур, какая именно - выясняется в момент приёма). Собираюсь принимать её и записывать адрес в void указатель, выяснять тип пришедшей структуры, а потом кастить этот указатель в указатель на нужный тип, чтобы можно было уже получать доступ к полям структуры и обрабатывать данные. Взлетит? Может, есть вариант получше?
285 2455791
>>455752
Структура в один recv() помещается? Ну то есть в буфер помещается?
Если да, то разницы нет - по сети ты её принимаешь или как-то ещё.

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

Например, Макрософт для заголовка часто использует первый байт/слово структуры под размер структуры и уже размер структуры определяет её тип.
286 2455815
>>455752
У нас используется внутренняя либа для описания структур. Это позволяет избавиться от их хардкожинья, можно грузить их описание из файла настроек, передавать по сети и т.п. Когда у тебя тысячи параметров это очень удобно. Возможно для тебя это будет оверкилл канеш
287 2455817
>>455752
protobuf. Юзай его. И он будет нужен в каждой первой вакансии на крестах
288 2455844
>>455817

>protobuf


Ух, какая же хуйня. Вроде и бинарный протокол, а присмотришься, это какой-то франкенштейн. Не, как замена XML/JSON он хорош. Но только как замена XML/JSON.

Радует лишь то, все эти XML/JSON/protobuf родились сильно после IP/TCP/UDP. Не хотелось бы даже представлять мир, в котором поверх Ethernet фреймов бегал бы XML.
289 2455845
>>455844

>поверх


внутри
290 2455854
>>455844
Чем хуйня то? Рефлексия есть, с задачей заебашить IPC - справляется.
291 2455866
>>455854
overhead по сравнению с передачей данных размером sizeof(my_structure)
292 2455956
>>455791

>Структура в один recv() помещается?


Да. Точнее, у меня в MsgReceive помещается, это под QNX всё пишется

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


Ну я, собственно, так и планировал. Но у меня проблема в том, что при касте из void что-то ломается и поля структуры становятся не видны. Т.е. если я принимаю в struct foo и обращаюсь к полям, то всё ок, но если принять в void и кастануть в foo, то в тех же самых полях уже лежит мусор.
>>455815
>>455817
Не особо понял, причём тут свои либы со своими структурами и protobuf. Мне, наверное, стоило отметить, что состав структур не я писал, они стандартизованы все. Первые два байта - тип, дальше уже у каждой по-своему. (К слову, в данном конкретном случае мне даже не нужно смотреть внутрь структуры, чтобы опознать её, я могу ориентироваться по значению, возвращаемому функцией приёма.)
293 2455966
>>455956
Не буду тебя просить код, потому что лениво и некогда разбираться. Могу лишь совет дать - отладь это место в Visual Studio и уже затем перетаскивай в железку. Очень похоже что проблема не там, где ты думаешь.
294 2456006
>>454134
Что за прога? Ни разу не видел, что бы на андроиде можно было компилировать
295 2456017
Реально ли вообще написать общий класс, который позволяет объекты в байты и обратно трансформировать? Если он тривиально копируемый, то да, а вот если нет? Вроде нельзя, я права? Можно только специализации писать
296 2456022
>>456017
Нельзя, рефлексии нет.
297 2456032
Как написать шаблонный класс, который примет T, но при этом T должен быть наследником другого класса
299 2456044
>>456039
А как мне прекратить компиляцию, если это не так?
300 2456054
>>456032
#include <concepts>

struct B {};
struct D : B {};

template<std::derived_from<B> T>
struct S {};

S<D> d; // ok
S<int> xuy; // хуй
301 2456056
>>456054
Спасибо
302 2456057
Кстати, первая штука из 20 плюсов которая мне понадобиласб
303 2456063
Очень жаль, что ошибка компиляции все равно огромная, если не то что надо передать. Я надеялся, что там будет что то аккуратное
304 2456072
Чтение/запись асинхронятся или нет? Вот я могу в сокет асинхронно писать. То есть пока данные отправляются я могу что то другое делать в этом потоке, а потом выполнение придет в коллбек. А с чтением и записью на диск такое прокатывает? Могу ли я в одном потоке дать команду записать на диск 100гб, а пока оно пишется делать другое? Кто нибудь делал? Профиты есть?
305 2456085
У меня большой вопрос. Как организовывать быструю работу с большими данными? Для конкретики возьмем пример. Чат в телеграмме имеет столько сообщений, сколько в оперативную память никак не влезает. Нужно уметь быстро писать и читать с диска, чтобы получать нужные куски чата, а потом обратно сбрасывать, как только они перестанут быть нужны. Как это быстрее всего делать?
306 2456089
>>456072
Тебе похоже нужна паралельщина, а не асинхронщина.
307 2456091
>>456085
Кеш с предиктивной загрузкой?
308 2456093
>>456089
Не, именно асинхронщина. Я точно не ошибся. Так просто 2 потока и хуй с ним.
309 2456094
>>456091
Че ты у меня спрашиваешь?)) Я не знаю. Впервые такая проблема. Погуглю что это спасибо
310 2456108
>>456017
А что тебе даст тот факт что он тривиально копируемый?
311 2456132
>>456044
static_assert
312 2456201
>>456072

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


Там тяжелая и долгая история с асинхронным дисковым I/O. В винде вроде как есть поддержка этого, в линуксах очень долго не было, потом высрали AIO, которое оказалось говном из жопы, что неудивительно, лол, и только вот недавно завезли io_uring, который в теории это может делать. Про макось не знаю ничего, скорее всего kqueue не умеет по дефолту в асинхронное дисковое ио.
313 2456276
Тред байтродрочеров ей богу, вам больше делать не чего как над стрингой издеваться?
314 2456284
>>456276
Каждая крестоблядь обязана написать свои строки и кастомный аллокатор, это база.
315 2456313
>>456085

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


>быстро писать и читать с диска


Докупаешь память, а не занимаешься хуетой.
316 2456356
Имеется данная книжка, издана она в 2013 году. И вот что в ней написано.
Я так понимаю, что оно совсем устарела и изучать язык по ней нельзя? Или фундаментальные вещи не сильно изменились и она все же норм будет?
317 2456451
>>456356
Если в этой книге описывается auto_ptr, её уже сразу можно пускать на растопку мангалов.
image.png34 Кб, 240x400
318 2456465
>>456006

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


Хмм. Серьёзно не видел? Видимо ты не искал.

Ищи botbrew например. Но вроде как он умер. Но в сети находится.

Или вот это смотри - https://github.com/meefik/linuxdeploy
Или вот это - https://termux.dev/en/
319 2456467
>>456085

>Как организовывать быструю работу с большими данными?



посмотри в строну mmap.
man mmap
За тебя всё сделает говноядро говнолинукса.
320 2456468
>>456284

> кастомный аллокатор


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

А если ты бы видел мой аллокатор, то от его созерцания и втыкания в код оргазмировал бы радугой. Но я жадный говнюк и не покажу.

Он настолько быстрый, что быстрее сделать уже невозможно. Он быстро выделяет память и так же быстро освобождает. Лишь одна беда - он не универсальный, он может выделять память лишь для одного типа объектов. Х.з., может кто и догадается как он сделан.
image.png492 Кб, 600x600
321 2456469
>>456276

>байтродрочеров

322 2456470
>>456006
Ты много чего ещё не видел. На, посмотри - http://sven-ola.commando.de/repo/debian-kit-office.mp4
323 2456762
А нах нужен си тред, если все норм сишники уже здесь сидят?
324 2456774
>>456276
Если ты не хочешь выжать из железа всё возможное, нахуй лезти в кресты.
325 2456852
>>456762
Для не норм сишников.
326 2457071
>>456356
На помойке нашёл?
image.png12 Кб, 337x131
327 2457112
Подскажите, что делает это объявление? Я знаю, что наследую класс G4VUserDetectorConstruction с помощью своего DetectorConstruction. Тут вроде как определяется конструктор, но почему-то после названия самого конструктора ещё идут переменные, которые в заголовке класса DetectorConstruction/

private:

G4VPhysicalVolume
fBox;
G4double fBoxSize;
G4Material* fMaterial;
328 2457116
>>457112
Тупо инициализация переменных. Происходит до тела конструктора, необходима когда у членов класса нет конструктора по умолчанию.
329 2457142
>>457116
А зачем нужно дополнительное уточнение :G4VUserDetectorConstruction()?
330 2457164
>>457142
Указание на то, какой конструктор предка и с какими параметрами вызвать:

struct A {
A() {};
A (int ) {};
};

class B : public A {
B() : A(10) {}
}

Если не указать, то будет вызван A::A(){}
331 2457274
>>456276
Вот бы посмотреть на тебя, пишущего с браузера, написанного на питоне, из ОС написаной на нем же.
332 2457438
>>457274

> ОС на питоне


Я считаю, давно пора создать процессор, способный выполнять .пук байт-код питона
333 2457644
Прошу подсказать реальное положение дел разработчиков на плюсах. Я уже изучил основы языка и он мне нравится более остальных, хочется развиваться в нем. Стоит ли? Как бы вы оценили ситуацию на рынке плюсов?
334 2457720
>>457644
Положение дел на рынке тебе hh подскажет, лоль
335 2457754
5 сентября интел официально распустило офис в новосибе, где работали драйверисты. Слышал, что 40% только релоцировалось. Интересно, остальные сильную конкуренцию составят начинающим плюсовикам?
336 2457797
ЯННП, почему выпадает ошибка на 22 строке в лямбде?
can't dereference out of range vector iterator
https://pastebin.com/V23dGJED
Причем касается только игрека. И если подать arr.end()-1, тогда запускается норм, но и ответ неправильный.
337 2457809
>>457797
У макса нет такой сигнатуры, которую ты хочешь использовать.
338 2457816
>>457809
Тьфу, совсем разжижил мозги питоном. Мне нужен max_element.
Не сразу вкурил, но спасибо за наводку.
339 2457827
Кто юзал openssl? Долго вкатываться?
340 2457840
>>457827
Она сишная. И да, это пиздец, наверное самое говеное из того с чем я сталкивался.
341 2457844
>>457840
Бляяя. Я знаю, что она сишная, но там помимо этого дохуя сложный интерфейс вроде. Но она самая быстрая, причем в несколько раз. Видимо другое возьму. Че подскажешь? Хочется побыстрее, конечно, но чтобы не надо было неделю доки курить
342 2457867
Вкатываюсь не с нуля, есть знания Си среднего уровня, до этого писал под микроконтроллеры stm32. Как лучше освоить кресты, учитывая мою базу знаний?
Начал читать Прату, первые 4 главы идут очень легко, за пару дней их пролистал и спокойно решил задачки. Стоит полностью пролистать Прату, или лучше юзать его как справочник и сразу переходить к моментам, которые есть только в крестах? (типа ООП, классы, ссылки итд)
343 2457876
>>457644
В твоей ситуации вообще всё равно. Айтишечку сейчас лихорадит и куда мы придём через 2-3 года - никому неизвестно.
344 2457894
>>457867
Прата он вроде с самого низу. Читай лучше Мейерса. Заодно поймёшь, что ты вкатываешься с нуля, относительно того, сколько нахуевертили в C++ поверх C.
345 2457903
>>457867
Проходил курс по крестам на Яндекс Практикуме. Там тоже был сишник читающий Прату. Вылетел одним из первых. Так что не советую.
346 2457906
>>457644
В военку легко вкатишься. В какое-то НИИ или КБ или НТЦ. Платить хуйню будут, но попасть легко и опыт какой-никакой получишь.
347 2457912
>>457112
Хуяси, физик в треде. Ну что, с частичками своими пердолишься всё? В ОИЯИ тусуешься? А Geant4 вещь годная, да. Кореш один тоже с ней пердолился.
348 2457943
>>457754

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


Ну как минимум часть вакансий отожрут, это точно.
На самом деле вакансий для начинающих нет почти что никогда. Максимум - стажировки в яндексе, хуавее, а раньше еще и в интеле, ну ты понял.
Обычно команда всегда запрашивает как минимум мидла, но так как денег у конторы мало, кабан жмот, да или просто HR работает на похуизме, то берут вкатуна. И вот вместо мидла команда получает вкатуна, которого потом учит просто от безысходности. Это вот так вот работает. Джунов и стажеров кроме яндекса сейчас почти никто не ищет. Устроиться без опыта это как выиграть в лотерею. Ну или на завод/нии/кб идти, там особая атмосфера найма всегда.
349 2457967
>>457943
Ещё дотекание будет. Думается что 20% ещё укатят вдаль. Сам вот сижу и смотрю приглосы. Из тех, что нормальные - в основном перекат. Остальное - госзаказ в разных вариациях.
350 2457987
Я правильно понимаю, что все деньги у смузихлёбов, а настоящим инженерам-плюсовикам нихера не платят?
351 2457991
>>457894
А какого именно? Их целых 3 в шапке. Глянул самого последнего по году, там подразумевается что ты уже знаешь язык, а я пока не очень его знаю.
>>457903
Ты весь курс прошёл? И как оно? Ты с нуля начинал? Он вроде платный, как я понял.
Интересно, чего он вылетел. Не думаю, что дело в Прате. Хотя мне кажется, что если сейчас пойду, то тоже не осилю так как что-то там нагрузка большая, да и я очень хреново понимаю, как ооп работает, точнее не могу нигде придумать, как это реализовать на практике.
352 2458001
>>457906
Я так вкатился, но у меня должность низкая. При этом все коллеги уже 5+ лет сидят там, у нескольких семьи и дети есть, неужели они за гроши там сидят? Сам как-то стремаюсь напрямую спросить.
353 2458051
>>458001
Во всяких нии всегда за гроши работают.
354 2458058
>>458051
Как они тогда семью содержат, машину и платят коммуналку? Мб я тоже так научусь, если пару лет просижу тут, по крайней мере надеюсь хотя бы 2 года опыта сделать.
355 2458090
>>457991
Да, закончил недавно. Курс годнота, если иметь адекватные ожидания. Но последние деньги на него тратить точно не стоит.
Начинал не с нуля. Много чего знаю, но всё по верхам. Первая треть очень простая, на уровне всех остальных курсов и туториалов, потом резкий скачок сложности и становится гораздо интереснее. Подход к обучению там TOP-DOWN. Сразу дают вектора, мэпы, сеты, стл алгоритмы, умные указатели, лямбды и т.п(про массивы, например, расскажут сильно позже этого). Ну так вот, ты их крутишь-вертишь, уживаешься с ними, а только потом идут детали реализации. Сишнику очень пекло с этого. Вместо того, чтобы мыслить на нужном уровне абстракции и решать задачки, жаловался, что не может проложить мостик от своего си прошлого до c++ настоящего. А вот у Прата он говорил правильные методики, как наших дедов учили. Может быть, но есть шанс, что если ты встретишь те же лямбды только на тысячной странице, они недостачно плотно войдут в твою жизнь, как и все остальные актуальные фишечки.
356 2458145
>>458090
Лол, я примерно поэтому и начал с Праты, потому что реально тяжело дается этот уровень абстракции после пары лет Си.
А сколько по времени курс занял и как много ему надо уделять времени примерно?
Я бы может и записался попозже.
357 2458151
>>458058

>Как они тогда семью содержат, машину и платят коммуналку?


Ну, видимо, так же, как и учёные и инженеры из этих же НИИ.
Живут на копейки, иногда, возможно, перепадает денежный грант, но это редкость. Конечно, зависит от области, чем более прикладная, тем больше денег в основном.
Но ты же понимаешь, что учёные в этой стране живут впроголодь? Вот и программисты НИИшные так же. Хорошо живут только чиновники от науки и 3,5 профессора топовых вузов.
Поэтому, собственно, программированием в НИИ и занимаются те же учёные и инженеры, а собственно программисты туда не идут -- им деньги нужны. А там нет смузи и денег. А 95 процентов потенциально научной молодёжи либо на Запад сваливают, либо идут в айти в итоге. Такие дела.

>Как они тогда семью содержат, машину и платят коммуналку?


Знаю годного профессора теорфизики, живущего в одиночестве, ездящего на автобусе и живущего в убогой студенческой общаге годами.
358 2458181
>>457844
Просто я хотел еще сам уметь имходники чекать, а в опенссл на это придется наверное хуеву тучу времени потратить
359 2458196
>>458145
Курс длится 9 месяцев. Пишут, что нужно тратить от 15 часов в неделю. Но 15 это если без сдвг, у меня получалось больше. Так же есть вариант получить скидку от государства по программе "Цифровые профессии". Раньше была 50% для всех, сейчас нужно принадлежать к какой-нибудь льготной категории и размер скидки вариативный.
360 2458207
>>458196
Если это не академические часы, то нехилая такая нагрузка выходит, особенно если работаешь. А как оттуда ввлетают вообще? Вылететь легко, или надо быть совсем дубовым? Как контролируют усваиваемость материала? А есди что-то непонятно, норм объяснят?
361 2458213
>>458207
Курс разбит на спринты по 2-3 недели. Если не укладываешься в дедлайн, то можешь взять академ и начать спринт заново с другой группой. Со скидкой от государства это можно сделать один раз, без неё три. Вылететь легко, если проблемы со временем и тайм-менеджментом, сам материал достаточно доступный. На курсе задания сдаются в тренажёр, который прогоняет твоё решение по тестам. В конце спринта большое задание, которое нужно сначала сдать тренажёру, а потом живому ревьюеру. Учишься вместе с одногруппниками, так что есть с кем поболтать в чатике. Так же на каждый спринт выделяется наставник, который отвечает на все твои вопросы. В основном наставники были толковыми, но это не фуллтайм работа, так что ответить могут сильно не сразу.
362 2458232
>>457274

>пишущего с браузера, написанного на питоне, из ОС написаной на нем же.


Байтоеб еще не понял реализации машин...
363 2458263
>>458232
И где она "реализация машин" ?
364 2458271
>>458263
С ним в комнате
365 2458325
>>453076
Молодец, что посоветовал. Там написано, что структура нетривиальна, если ее поля лежат в разных спецификаторах доступа. Однако std::is_trivial на MVSC C++20 говорит, что тривиальна.
366 2458362
Как красиво передать двумерный массив из мейна в функцию?
367 2458366
Этот тред это местный анекдот, сидишь, читаешь и проигрываешь. Надо же было из простой си-няши такого франкенштейна сделать. Пхп из мира системного программирования.
368 2458370
>>458362
void⚹⚹
369 2458375
>>458362
template<class T, size_t N, size_t M>
void f(T (&arr)[N][M]);

int a[10][20];
f(a);
370 2458379
>>458366
Только на вопросы по си с большей вероятностью ответят в этом треде, чем в полумертвом тематическом.
371 2458384
>>451830 (OP)
Не понимаю, как закодить максимальный размер буфера в 1.5 килобайта с Qt, ебаный пиздец
372 2458387
>>458366
Говна пожуй
373 2458393
>>458370
Дак он тогда одномерным станет типа он до этого не был одномерным, лол.

>>458375
Ебать велосипед, уже проще создать класс или структуру.
374 2458397
Питонист, хочу научиться плюсам хотя бы на уровне "написать обёртку для либы", что посоветуете для изучения?
375 2458404
>>458393

>Ебать велосипед, уже проще создать класс или структуру.


Ты просил красиво. На входе двумерный массив любого размера и любого типа, без необходимости передавать размер ручками. Куда уж красивее?
image.png465 Кб, 703x462
376 2458413
>>458397

> Питонист



Ахахах
Ахахах
377 2458414
>>458404
Я просто надеялся что есть изи вей который я не знаю, а тут оказывается или пики точеные с указателями или темплейты дроченые болтаться будут.
300px-CryingCatscreaming.jpg9 Кб, 300x300
378 2458454
>>458413
Ты чё я датасаентист
379 2458465
>>458454

>Ты чё я датасаентист


В данный момент в этой стране ещё возможно вкатиться в датапососаенс?
Алсо, МЛ-инженегру нужен С++, или ему достаточно петухона?

>>458397

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


Алсо, обычно на петухоне пишут обёртку для С++, а ты собрался делать наоборот?
Это типа шутка, но ты бредово написал. Не знаю, чего посоветовать, посмотри основы из шапки треда https://github.com/sosachbot/cppthreadhat .
380 2458512
Ваномас реально C++ программист?
381 2458538
Вот вы берете какую-нибудь любимую мапу, суете туда 10к строк любимого типа, средней длиной 20. Кто из вас способен ответить, сколько памяти это займет в вашей любимой реализации Схх?
382 2458542
>>458538
Шо, не 20 x 10k + некоторый небольшой оверхед?
383 2458543
>>458538
Похуй, не програмистское это дело, везде компилятор довезёт.
384 2458545
>>458362
Всегда лолирую с дебилов, которые реально делают двухмерные массивы или вложенные вектора.
385 2458732
Можно как-то запретить создание временных объектов? Просто по приколу.
386 2458743
>>458732
std::block_creation(std::time_object)
387 2458752
>>458743
Смешно.
>>458732
-fno-temp-objects
388 2458754
>>458512
Хуй знает, Патлатый говорит, что как программист он хуйня. На работе просто роутеры настраивал.
Ну, а учитывая, что он не может почистить себе винду, чтобы дота не лагала, то каа бы все становится на свои места.
389 2459572
Вопрос не совсем по теме, но тут самый образованный анон сидит, так что хз куда еще идти.
У меня проект на крестах ~800 файлов, решил собрать еще и под винду.
На линуксе слион сам все парсит, навигация по проекту быстрая.
На винде он не парсит, пака я сам файл не открою.
Какие варианты?
390 2459608
>>459572
Предположу, что под "парсингом" ты имеешь ввиду навигацию в студии. Какая билд система? CMake? Он вроде как нативно поддерживается в последних двух студиях. Открываешь, настраиваешь параметры конфига и запускаешь. Ещё один вариант - можно из симейка сгенерить проект студии. Если не CMake, то придётся вручную создавать новый студийный проект
391 2459711
>>459608
Чел ты в глаза долбишься? Я же про силион пишу, а не про студию, ты хоть прочитал бы куда овечаешь.
Разумеется cmake, это же стандарт. Но он не имеет абсолютно никого отношения к разбору проекта.
image.png79 Кб, 924x1197
392 2459736
Кто разбирается в дискретном преобразовании фурье? Я не особо силен в математике, вот в конце книжки прикрепленной, есть библиотека fftw, там вот такой алгоритм использования как на пике. Я вот получаю массив с распределением мощности по частотам и рисую по ним график, но у меня есть эталонная программа, которая совсем другой график рисует, исходя из тех же данных.
https://ofvp.phys.msu.ru/wp-content/uploads/2021/03/diskretnoe-preobrazovanie-fure.pdf
393 2459739
>>459572
Собирай под винду на линуксе.
394 2459756
>>459572
Не понял зачем тебе навигация по коду если задача стоит просто собрать
395 2459759
>>459736
Чо строишь действительную и мнимую часть или модуль?
396 2459787
>>459739
>>459756
Вы не поняли. Собрать как раз таки вопроса нету. Собирается все хоть в консоли без проблем.
Вопрос именно в непонятной работе иде.
397 2459796
>>459759
inputListVector это лист, в котором два вектора. Вектор [0] это действительная часть, вектор [1] это мнимая часть.
Я этот inputListVector скармливаю массиву комплексных чисел in, где in[0] - действительная часть, in[1] - мнимая. Я просто совсем не разбираюсь в математике. Все на что меня хватило, это установить библиотеку fftw. Вот я делаю прямое преобразование фурье, получаю на выходе массив out, по алгоритму в книжке нужно найти сумму квадратов действительных и мнимых частей. Зачем я не знаю. Алгоритм представлен на странице 77. Там написано что это power spectral density. Я почитал надо как то сдвигать гармоники влево, но я не понимаю точно как это делать. 1 пик это эталонный график на который я равняюсь, второй пик то что получается у меня.
398 2459826
>>459787
Этой иде почти никто не пользуется (на работе).
399 2459892
В кресты завезли оператор возведения в степень?
400 2459893
>>459892
Нет и не завезут никогда.
401 2459966
>>457943
C++ это реально какая то ловушка Джокера. Люди учат его на полшишки, не могут найти работу, учат его еще, а дальше получают стокгольмский синдром, мол, не буду же я останавливаться на полпути, надо доучить и вкатиться наконец в плюсы. И так проходят годы, годы, годы.
402 2459982
>>459892

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


А нахера нужен такой оператор?
403 2460072
>>459966
Хорошие перспективы, контента лет на 5 будет лол
404 2460137
>>459892
С помощью буста и нехитрых манипуляций ты можешь делать работающие выражения типа
z = x <vozvesti_v_stepen> y;
Оно тебе надо?
image251 Кб, 766x900
405 2460152
>>459982
Оператор возведения в степень нужен для читаемости кода, который имплементирует вычисления по сложным инженерным или физическо-математическим формулам.
Чем меньше формула, написанная в коде, и отображаемая в IDE, похожа на формулу из печатного источника, тем зашкварней этот код.
Язык - это не только для второсортных макакеров-кнопкокрасов и байтовертов, по сути обслуживающего персонала, которые тем не менее думают только о себе и своём удобстве и варится в своём токсичном соку. Любой язык, он прежде всего для элиты, для вершины эволюции технического специалиста - т.е. физиков, математиков и инженеров.
Математики используют оператор возведения в степень в современном виде 4 сотни лет. И тут приходит грязная макака, которая нихуя не знает, но у которой инфиксные операторы сложна парсятся и вообще это по сути функции и записываться должны как функции, поэтому этот астронавт чистоты языка считает нужным это всё искоренить. Разумеется, таким тупорылым макакам умные люди обычно во время давали крепкого пня под немытый сракотан, не дав им возможности обильно нагадить. Но всё же в отдельных языках грязные байтокруты успели поднасрать белым людям.

>>460137
Это стандартный базовый оператор, который должен быть из коробки. Вы уж будьте последовательны, и либо искореняйте все человеческие операторы, как то сложение, вычитание, деление, умножение, либо не выебывайтесь, и делайте, как говорят люди, которые знают и понимают сильно больше вашего.
406 2460153
>>460137
Ыыы)

#include <iostream>
#include <cmath>

using std::cout;
using std::endl;

class Dbl
{
public:
Dbl(double v){value=v;}
double value;
};

double operator^
(const Dbl& a, const double& b)
{
return pow(a.value,b);
}

double operator^
(const double& a, const Dbl& b)
{
return pow(a,b.value);
}

double operator^
(const Dbl& a, const Dbl& b)
{
return pow(a.value,b.value);
}

int main()
{
Dbl a(2.3), b(1.7);
cout << (a^b) << endl
<< (a^0.5) << endl
<< (2^b) << endl
<< (Dbl(5.2)^0.7) << endl;
}
406 2460153
>>460137
Ыыы)

#include <iostream>
#include <cmath>

using std::cout;
using std::endl;

class Dbl
{
public:
Dbl(double v){value=v;}
double value;
};

double operator^
(const Dbl& a, const double& b)
{
return pow(a.value,b);
}

double operator^
(const double& a, const Dbl& b)
{
return pow(a,b.value);
}

double operator^
(const Dbl& a, const Dbl& b)
{
return pow(a.value,b.value);
}

int main()
{
Dbl a(2.3), b(1.7);
cout << (a^b) << endl
<< (a^0.5) << endl
<< (2^b) << endl
<< (Dbl(5.2)^0.7) << endl;
}
407 2460165
>>460152
Шиз
>>460153
Введение лишних сущностей, а у меня будет работать с базовыми типами. kiss.
408 2460168
>>460165

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


Покажи
409 2460169
>>460152

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


Двачую тебя.
410 2460184
>>460168
X = 2 <vozvesti_v_stepen> 2;
411 2460200
>>460184
Реализацию покажи
412 2460203
>>460200
Да стандартная хуйня на шаблонах. Только скорее x=pow<2,2>
414 2460207
>>460200
С телефона могу только скопировать из доков:
#include <boost/hof.hpp>
#include <cassert>
using namespace boost::hof;

struct plus_f
{
template<class T, class U>
T operator()(T x, U y) const
{
return x+y;
}
};

int main() {
constexpr infix_adaptor<plus_f> plus = {};
int r = 3 <plus> 2;
assert(r == 5);
}
Работает с любыми бинарными функциями.
415 2460214
416 2460303
>>460206
>>460214
Нихуя не смог понять, как это работает. До чего ж ебанутый язык, пиздец просто. Почему такую хуйню нельзя как-то явно сделать?
Мимо шарпист
Алсо, использовать для указателя и для умножения один и тот же символ - такая же лютая легасная ебанина, от которой хорошо бы отказаться.
417 2460310
>>460303

>Почему такую хуйню нельзя как-то явно сделать?


Потому что не нужна.

>один и тот же символ


Чем меньше конструкций тем лучше, ты на крестах вообще никогда не писал? Они из-за таких слов растут каждую версию в 1.5 раза.
418 2460511
Какие подводные юзать мезон?
419 2460536
>>460511

>мезон


А лептон?
420 2460554
А могли бы добавить оператор и еще постфиксный ⚹.
Разве трудно распарсить a⚹⚹⚹⚹b по сравнению с тем адом, который уже парсится?
421 2460563
>>460554
Нахуя? Тебе мало? В хаскелле вот вообще можно свои операторы создавать из произвольного набора символов, и количество нечитаемого и неподдерживаемого говна росло бы экспоненциально, если бы на этом языке хоть кто-то писал реальные проекты.
422 2460567
>>460563
Тащем-то это уже в прологе было.
423 2460571
>>460567
Может и было, хз, пролог забыл давно.
424 2460649
>>452252
Qml достаточно простой язык, qmlbook за глаза хватает, если у тебя какой то вопрос, задай мне, возможно я смогу тебе помочь.
425 2460663
>>452252
Потому что Qt помойное говно мочи.

А если серьезно, инфы дохуя. Просто офф сайты и доки. Да, там вначале кривая обучения, но так и везде. По бусту документацию открой
426 2460716
>>460152

>Это стандартный базовый оператор, который должен быть из коробки


Я могу представить несколько различных алгоритмов для тех же, например, флотов. Все с различными сходимостями и размерами ошибки. Тейлор? Метод Ньютона? Через экспоненту с логарифмом? А для целых экспонент будет ли быстрое возведение в степень? Это ни разу не "базовый оператор", и должен быть отдан на откуп библиотеке, а не являться частью языка, как и всё, что связано с IEEE 754. И если ты не следишь за ошибками в плавающих запятой, то цена грош твоему "инженерному" коду.
жж.jpg42 Кб, 645x482
427 2460725
>>460716
Раз ты такой прошаренный в вычмате, поясни за оператор степени в Фортране -- как там обходятся одним единственным вариантом?
428 2460730
>>460725
Спроси в фортран-треде. Ой, а почему такого треда нет?
429 2460786
>>460725
А ещё в фортране есть встроенные функции для работы с векторами и матрицами. Казалось бы ебать как нужно и хули их писать то, но тож чет не завезли. Ни в C# ни в C ни в Java.
430 2460789
>>460725
>>460786
А ещё я очень хочу swizzle operator.
431 2460790
>>460786
Фортран создан для математиков и физиков, а кресты созданы для нормальных людей. Но нет блять, вместо того, чтобы ебаться со своим фортраном, они лезут сука в кресты со своим говном, прям как арабы едут в Европу.
432 2460793
>>460790

>кресты созданы для нормальных людей


/0
16582557603470.mp4507 Кб, mp4,
336x442, 0:03
433 2460794
>>460790

> кресты для нормальных людей

434 2460799
>>460790
Фортран и просто как язык (был) хорош, просто он теперь старый и ненужный. Для такой хуйни сейчас есть бейсик, ну или питон если ты дегенерат.
435 2460801
>>460799

> сейчас есть бейсик


/0
436 2460805
>>460799
Вообще-то фортран местами быстрее С из-за особенностей работы с памятью (то что в сях фиксят вручную через restrict на указатели) ну и конпелятор за столетия был вылизан до совершенства.
437 2460806
>>460805
Ты нихрена не понимаешь что такое С, его нельзя сравнивать с фортраном. Си это машинный язык, там даже тупо математики нет, только машинные слова и байты. Поэтому там нет и степеней и прочей лабуды, это просто вообще не то, задачи у Си другие, это язык другого порядка.

Так что, как я сказал, с фортраном можно сравнивать бейсик или питон на худой конец.
438 2460807
>>460805

>фортран местами быстрее С из-за особенностей работы с памятью


Каким образом?
439 2460808
>>460806

>Ты нихрена не понимаешь что такое С


>там даже тупо математики нет


math.h?

>только машинные слова


Покажи хотя бы 1 машинное слово в Си.

>задачи у Си другие


Решать поставленные задачи, у форта разве другая задача?
440 2460814
>>460808
Любой оператор для встроенных типов в C/C++ заменяется 3-4 строчками ассемблерного кода. Почему из этого правила должно быть исключение? Если бы существовал оператор возведения в степень, он всё равно вызывал бы pow.
441 2460815
>>460808
>>460814
Уточнение, чтобы ты не доебался: 3-4 инструкциями процессора, не полагающимися на еще какой-то код. Т.е., сложение можно заменить на add/fadd, побитовые операции на and, or и т.д.
442 2460816
>>460808

>math.h


Это библиотека, хоть и стандартная. Выше правильно написали

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

443 2460817
>>460808

>Задача - решать поставленные задачи


А конкретней? Си нужен, чтобы писать код, максимально приближенный к машине. Ты пишешь код и можешь примерно представить, как он будет транслирован в ассемблер. А фортран нужен (был) для математических вычислений.
444 2460828
>>460817
Странно что фортран не преподают в школах и универах, ведь именно в системе образования бытует шиза, что программирование родственно математике. Раз уж такие математики мамкины, вот и брали бы подходящий инструмент. Но нет, обязательно надо через жопу, еще и в си лезут, дегенераты.
445 2460832
>>460828

>в школах и универах


>бытует шиза, что программирование родственно математике


>еще и в си лезут


Сам выдумал, сам разоблачил
446 2460835
>>460828
У меня лабы по фортрану были на первом курсе универа. Их ещё вел дед пердед, который не очень хорошо объяснял.
447 2460838
>>460828
У нас был фортран, но его не преподавали, а тупо давали лабы и курсачи, там препод занимался какой-то научной хуйнёй на суперкомпьютере, для которого были свои компиляторы на C и фортране, но препод требовал сдавать лабы именно на фортране, видимо, сишку он не осилил.
448 2460842
Возведение целого в отрицательную степень должно возаращать флот. Возведение целого в степень 2 крайне желательно возвращать как целое. Система типов затрещала? А я даже еще не цитировал man pow.
449 2460843
>>460842
Тип результата должен определяться при компиляции, это тебе не петухон. Для разных типов разные инструкции процессора.
450 2460848
>>460814

>он всё равно вызывал бы pow.


Или использовал бы инструкцию pow, ему ничего не мешает.
>>460817

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


Си нужен, чтобы заменить куски зависимого кода.
>>460817

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


Так можно сказать про любой нативный компилируемый язык.
451 2460858
>>460716

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


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

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


Для перегрузки с интовым правым аргументом может и быть.
452 2460894
>>460848

>инструкцию pow


Дальше не читал, слишком толсто
453 2460897
>>460848

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


Пример, кроме C/C++?
454 2460913
>>460897
Паскаль?
455 2460921
>>460913
И как, завезли уже в паскаль оператор возведение в степень? Есть хоть один "нативный компилируемый язык" с "базовым" оператором возведения в степень?
456 2460944
>>460921
А при чем тут оператор возведения в степень? И что он вообще должен делать в языке, который может компилиться под всякие микроконтроллеры где всяких fpu нет и близко?
457 2460962
Работа на плюсах есть или нет?
Если ты джуниор мальчик
458 2460968
>>460944

>А при чем тут оператор возведения в степень?


Тред читал?
459 2460977
Подскажите пожалуйста современных и актуальных книг для изучения.
Не совсем новичок, поэтому хочется ближе к нашему времени информацию прочитать
image.png208 Кб, 358x500
460 2461019
>>460977
Пикрил
461 2461031
Зачем нужны педали, когда есть божественная жаба?
462 2461035
>>461031
java.lang.OutOfMemoryError
463 2461039
>>461035
Но ведь время программиста стоит дороже, чем ещё одна плашка оперативы.
IMG20220912130905.jpg2,4 Мб, 3264x2448
464 2461050
>>461019

> второе


А не старье ли? У меня пикрил и кажется только в нем появилось про цепепе11
465 2461055
>>461039

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


Это пока. Пыня старается изо всех сил чтобы в скором будущем стало наоборот
466 2461059
>>461050
Во время написания/выхода второго издания C++20 был в черновике, кажется. Вроде бы, все стандарты до него там описаны нормально.
Кажется, уже 3-е вышло на ангельском, но хз, можно ли его найти где-нибудь забесплатно.
467 2461064
>>461039
Ага, а если программа пишется для широкой публики, а не внутреннего использования? Пользователям тоже предложишь докупить 60 Гб оперативной памяти?
468 2461078
>>461064
Жабадауны так не умеют, их мышление ограничивается серверным говном.
469 2461099
>>461064
Для широкой публики нельзя у себя на серверах всё посчитать чи шо?
470 2461101
>>461099
Посчитай на сервере торрент-клиент, например.
471 2461106
>>461101
В какой маняреальности торрент-клиент на джаве сожрёт 64гб памяти?
472 2461131
>>460894
Инструкции процессора могут быть любыми, которые заложил разработчик, что мешает ему оптимизировать степень, если это требует заказчик? Ничего.
473 2461132
>>460897

>Пример, кроме C/C++?


Почему ты вынес кресты, когда обсуждается Си? Асм.Это не машинный код.
474 2461143
>>461106
Ну например сброс на диск только после полного скачивания.
475 2461153
>>461143
Понятно что при остром желании можно хоть пустыми объектами всю память занять, если ставить себе цель именно занять всю память.
Но без злого умысла сделать тобой описанное - я хуй знает, как.
476 2461169
>>461132

>Асм


Про ассемблер можно сказать, как он будет транслирован в ассемблер. Великая мысль.
477 2461181
>>461050
Это разные книги
478 2461183
>>461153

>жава кайфовый язык создавай столько объектов сколько нужно вм всё порешает за тебя)


>ой а почему мой калькулятор использует целый гиг памяти а где сборщик мусора((

479 2461188
>>461169

>транслирован в


Машинный код, крестовики даже такое не знают.
480 2461209
>>461183
Что ты этим пытаешься сказать?
Торрент клиент - каловый пример, его школьник-имбецил напишет на каком угодно сахарном языке и будет норм работать.
Самая прибыльная игра в мире написана на жабе (игра блядь), вот и ответ можно ли клиентский софт писать на жаве. Да можно, если он кому-нибудь нужен.
481 2461217
>>461209

>Самая прибыльная игра в мире написана на жабе


Какая?
482 2461219
>>461209

>Самая прибыльная игра в мире написана на жабе (игра блядь)


Это которая потом была на плюсы переписана, чтобы в неё можно было играть?
Хороший пример, хороший.
483 2461245
>>461219
Чёт в шёпот.
Ты хотя бы минимально ознакомься с вещами, о которых рассуждаешь.
Во-первых копрокубы были самой продаваемой игрой в мире задолго до появления bedrock edition. Во-вторых, задача этой версии - принести кубач на каловые платформы. Сначала появилась мобильная версия, потом консольные версии, получился зоопарк разных версий, потом их все поубирали из магазинов и выкатили ЕДИНУЮ кастрированную говноверсию, в которую играют только те, кто по каким-то причинам не может играть в нормальную.

>чтобы в неё можно было играть


Чтобы в крестовую версию можно было играть, в неё нужно хотя бы моды завезти, но модов там нет и не предвидится.
484 2461255
>>461209

>Самая прибыльная игра в мире


>самой продаваемой игрой


Прибыль основывается не только на продаже копий.
>>461245

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


Интересно, а почему они просто не портировали жабу?
485 2461259
>>461255

>Интересно, а почему они просто не портировали жабу?


Ой, а жаба оказывается есть под все платформы... неловко получилось.
486 2461260
>>461255

>Интересно, а почему они просто не портировали жабу?


>>461259

>пук среньк мам я иронизирую


https://apps.apple.com/us/app/minecraft/id479516143
На айфон? Ну хуй знает. Может у эппла спросить, почему?
487 2461261
>>461245

> кто по каким-то причинам не может играть в нормальную


Например, по причине лагов и статтеров на кривой жаба-версии.
А ой...
488 2461263
>>461261
Вытекаешь
489 2461266
>>461260

>На айфон?


Ты сейчас сказал, что жаба код невозможно выполнить на айос?
490 2461270
>>461266
Ты сейчас сказал, что можно, и без каких-либо подвохов?
Я про такое не слышал и нагуглить сходу не удалось
491 2461275
>>461270

>можно

492 2461452
>>460807
Он уже написал из-за чего - неиспользование restrict keyword'a новичками при вероятности алиасинга (перекрытия) структур данных, переданных функции в параметрах-указателях.
/мимо rust-бой где такой нужды нет (как и в фортране)
493 2461456
>>461039
Чем больше оперативы по коду требует программа, тем меньше вместится в кеш процессора. Соотв. программа будет работать медленней.
494 2461673
Ну шо господа - с профессиональным праздником.
495 2461675
>>461673
Праздничной музыки треду
https://youtu.be/5EHPETP8lZ8
496 2461677
>>461673
Да, всех с днём парикмахера! ✂️💇🔥
497 2461693
>>461673
Ура, всех с днем войск радиационной, химической и биологической защиты!
498 2461703
Помогите.

>.clang-format


>.clang_complete


Мне не нравится, что в одном случае используется "-", а в другом "_".
499 2461709
>>461703
Решено.
500 2461716
>>461673
Международный день дауна уже же прошёл. Или о чём речь, я очень плохо соображаю?
501 2461728
>>461716
День программиста бля.
502 2461729
>>461728
Когда?
503 2461736
>>461729
Сегодня.
504 2461741
>>461736
Да при чём тут сегодня? Нихуя не понимаю.
505 2461819
>>461741
Это норма.
506 2461867
>>461675
Ох епт, сегодня Кресты наблюдал, когда на собес шёл.
507 2462076
А вы читаете черного барана?
https://thephd.dev/
508 2462103
>>462076
Лучше бы уже функциональщину пилили бы в новых стандартах, а не всякие {{zalupa::pizda}}. Уже тошнит от их изобретений велосипедов и новых конструкция языка под эти велосипеды.
509 2462187
>>462103

>Лучше бы уже функциональщину пилили бы в новых стандартах


Функциональная блядь закукарекала. Пошёл нахуй!
510 2462194
>>462103
Это такой троллинг тупостью? Какой функциональщины кроме паттерн матчинга тебе не хватает?
511 2462233
А я сегодня уместил три флажка и счетчик ссылок в short.
512 2462236
>>462233
А нахера?
513 2462237
>>462194

> Какой функциональщины кроме паттерн матчинга тебе не хватает?


Монады, нормальные лямбды к монадам. Возврат значений из выражений, например из циклов. Нормальные диапазоны и итераторы на уровне языка, а не стд-высеры не пришей к пизде рукав. Что-то с rvalue сделать для накручивания лапши.
514 2462238
>>462233
А мог уместить их у себя в очке. Ещё сфотать это и сюда запостить.
515 2462424
>>462237

>Монады


Реализуются.
>>462237

>нормальные лямбды к монадам.


Элаборейт.
>>462237

>Возврат значений из выражений, например из циклов.


Корутины что-ли? Есть.
>>462237

>Нормальные диапазоны и итераторы на уровне языка, а не стд-высеры не пришей к пизде рукав


Доебка ни о чем, они есть и все.

Да, кресты не задумывались как фп язык и фп на нем неудобно, но оно есть. Хочешь удобного фп иди в не мультипарадигменный язык, а не выдавай здесь свою шищу.
516 2462438
>>462424

> Хочешь удобного фп иди в не мультипарадигменный язык


В этом контексте дело же не в том, что он мультипарадигменный, а в том что у него сборщика мусора нет. (ИМХО)

Покажи удобный ФП язык без сборщика мусора. Он также страшно будет выглядеть как кресты.
517 2462441
518 2462492
>>462438

>сборщика мусора


Зачем?
519 2462498
>>462492
Удобно. Какие вообще подводные в сборщтке мусора?
520 2462506
>>462498

>Какие вообще подводные в сборщтке мусора?


1. Бесполезность.
2. Потребление.
3. Бесконтрольность.
521 2462515
>>462498
Добавлю. >>462506
Утечки всё равно происходят.
Любит вылезать в самый не подходящий момент.
522 2462519
>>462498
Самые большие подводные - очень сложно его обойти. В том же шарпе надо дико пердолиться, чтоб иметь пародию на RAII.
523 2462563
>>462506

>1


Ну давай считать ссылки. Циклические структуры у тебя, конечно же, никогда не возникнут.

>2


Его нет в Фортране 66, где все выделяется статически. Как только начинаем выделять/освобождать динамически, ПОТРЕБЛЕНИЕ неизбежно появляется.

>3


Это необязательно. Например, в Т (вроде бы) сборщик мог быть написан на самом Т. Во многих лиспах сборщик можно приостановить. В системах с реалтаймововй сборкой есть жесткии гарантии.
524 2462566
>>462506

> >Какие вообще подводные в сборщтке мусора?


> 1. Бесполезность.


Он крайне полезен

> 2. Потребление.


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

> 3. Бесконтрольность.


Им можно управлять. Кстати насчёт отзывчивости - а маллок какие то гарантии вообще даёт, за какое количество времени он даст тебе блок памяти, или при росте потребления он будет все более и более задумчив?
525 2462582
>>462563
>>462566
Такие несвязные куски текста...

https://ru.wikipedia.org/wiki/RAII
Удивительно, но каждый ГС проигрывает ей.
Или я ошибаюсь?
526 2462584
>>462582
Скорее каждый ГЦ выигрывает у него, лол
527 2462585
>>462584
Аргумент.
Screenshot20220914-113352.png385 Кб, 1920x1200
528 2462590
529 2462594
>>462590
Как он может быть быстрее?
530 2462595
Это бред. Я кастомный аллокатор сделаю и твой сборщик останется сзади пыль глотать
531 2462597
>>462585
Хачкель GHC. На нём можно писать код быстрее крестов, при том что в нём сборщик мусора.
532 2462599
>>462590
Чем этот текст отличается от слов двачера?
>>462597

>писать код быстрее крестов


Писать быстрее или код будет работать быстрее?
533 2462601
>>462599

> код будет работать быстрее?


Это. Например, парсер текста на хачкеле по производительности ебёт парсеры на крестах.
534 2462605
>>462601
Возможно, но успех был точно в использовании ГСа, а не из-за алгоритма?
535 2462611
>>462601
Код в студию
536 2462613
>>462605
Как минимум гс там не мешает писать быстрый код.
537 2462650
>>462590

>1. запостить хуйню


>2. запостить хуйню картинкой


Как называется эта болезнь, когда второе считается за весомый аргумент, а первое отбрасывается даже не думая?
538 2462655
Подскажите крабу, как мне с g++ подлючать стороннюю dll к своему проекту?
539 2462657
>>462655
-L + -l
Аноним 540 2462996
>>452053
Сиди в своём контейнере и не булькай, петушок
541 2463036
>>462996
Андрюха, ща мы тебя сдеаноним.
542 2463166
>>461143

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


А где тут вина жабы? Такую хуйню можно и на С/С++ накодить.
543 2463208
>>463166
А причём тут жаба? Ты мне сказал придумать, как с помощью торрент клиента проебать 64 гб памяти, я придумал.
vivaldiKMKVyPVhXq.png94 Кб, 1537x712
544 2463263
Умоляю, помогите собрать под цыгвин. Вроде все что нужно поставил
https://github.com/kaitai-io/kaitai_struct_cpp_stl_runtime
545 2463674
ОТКУДА ТАКОЙ МАССОВЫЙ ДРОЧ НА Rust?
Объясните пожалуйста, кто это форсит и чем оно лучше C/C++ и Go
image1,1 Мб, 800x1300
546 2463687
547 2463725
>>463674
Тем что в нём код короче, работает как ожидается и выплёвывает ошибку компиляции в любой непонятной ситуации. А на крестах приходится писать простыни кода, ебаться с чудесами управления памятью и кишками макросов/шаблонов, сосать хуи в реалтайме потому что работает не так как ожидается, а компилятор промолчал.
ГОвно в принципе синоним слова кал.
548 2463730
>>463725

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


Видел я как делают связный список на Rust'е.
549 2463800
Сап плюсач, я школьник-самоучка, в последнее время в основном пишу на расте, плюсы всегда как-то обходил стороной, но сейчас решил подтянуть их, ибо придется писать олимпиадные задачки на нём да и что-то чувство неполноценности из-за неумения в плюсы гложет. Уткнулся в непонимание move-семантики. Правильно ли я описал код здесь и что происходит с переменными после мува? Если обратиться к ним, случится segfault или ub?
https://pastebin.com/C6pAPM2v
550 2463802
>>463730
Unsafe-неосилятор пожаловал
551 2463805
>>463674
Первый язык с 2000 года, который привнес что-то новое в языкостроение, а не очередная реализация идей 70-х годов.
552 2463812
>>463800
После мува невалидные ссылки просто нельзя использовать. Но в конкретно твоём примере разницу между мувом и копированием не будет, у тебя же тут дефолтный конструктор и все типы примитивные.
1558441613489.png148 Кб, 1729x1071
553 2463816
>>463802
Что не так с ансейфом? Смотри какая красота вместо лапши ифов на 100 строк крестах.
554 2463817
>>463812
Разве компилятор не сгенерирует дефолтный мув-конструктор? Получается, в этом случае объект всё равно просто скопируется, а не будет чего-то вроде передачи владения новой переменной?
555 2463819
>>463816
Так я и говорю, что критиканы за двусвязные списочки вроде него банально не могут в ансейф
556 2463825
>>463817

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


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

> Получается, в этом случае объект всё равно просто скопируется, а не будет чего-то вроде передачи владения новой переменной?


У тебя обычные сраные инты, нет тут никакого владения, владеть нечем. Владение появится когда у тебя будут какие нибудь указатели которые надо почистить в деструкторе, сокеты и тому подобное.
557 2463838
>>463825
Понял, спасибо
558 2464017
>>463802

>Unsafe-неосилятор


Логика растошизиков с бесполезным языком.
559 2464018
>>463800

>школьник-самоучка


>пишу на расте


>пидор-чулочник


пофиксил
560 2464019
>>463730
За связный список надо сразу ломать пальцы.
Ситуаций когда он нужен в природе не бывает.
561 2464022
>>464019

>Ситуаций когда он нужен в природе не бывает.


Он не знает...
562 2464076
>>464019
В хэлоувордах не нужен.
У меня работало через void *. Старый добрый си не контрится.
563 2464153
>>464132 (Del)

>Они грузят сразу весь файл в оперативу или там сама по себе реализована работа с кусками размера n?


Зависит от реализации.
564 2464174
>>464132 (Del)
Там просто системный вызов который работает хуй знает как. Может поискать, но вряд ли есть какая то строго единая реализация
565 2464236
>>463816
Что это за дерьмо? Как это читать?
566 2464253
>>464236
Это говно называется DirectX 12. Читать построчно.
567 2464422
>>464253

>Читать построчно.


Там весь скрин - одна строчка, типичный жабаскриптовый понос.
568 2464462
>>463800
https://youtu.be/PZvoTX4pXV8?t=2517
чел хорошо рассказывает
569 2464473
>>462506
Пацанам из Epic Games расскажи, а то они не в курсе, пускай срочно выпиливают GC из движка
570 2464579
Кто знает книгу или статью по программированию графиков? Алгоритмы отрисовки, хитрости.
571 2464580
Кто кроме яндекса и хуавея стажки дает сейчас?
572 2464660
>>464579
Какие ещё хитрости?
gLBegin(GL_LINES)
for (...) { glVertex2f(x,y,o); }
glEnd()
573 2464662
>>464660
За FFP нужно пиздить.
574 2464664
>>464660
Как там в нулевых?
575 2464701
>>464664
Пок пок пок... Надо нарисовать 4 палки... Подключаю glew, glut, выбираю ARB, 50 строк кода.. Еще десяточку... Запускаю... Почему экран синий?
576 2464708
>>464701
Хотя не, лучше сгенерить кастомный загрузчик через glad. Ну и там VAO, VBO, дескрипторы в классы завернуть. Ну чтоб не стейт и не вонючий C-style. RAII там, все дела.
577 2464834
>>464253
Белые люди пишут под вулкан нампрпврславном си. А раст доя арабов-индусов.
578 2464877
>>463816
Как. Это. Читать.
579 2464888
В GO оказывается есть гарбедж коллектор. Я чето охуел ребят. Ну и какая он замена си? И оказывается из-за этого в некоторых фирмах сервера переписывали на RUST.
580 2464889
>>464877
>>464236
Вы кроме Си-подобного говна ничего не использовали? К новому синтаксису привыкнете через неделю и не захотите потом возвращаться.
581 2464890
>>464889
Так у тебя си-подобный синтаксис
582 2464892
>>464890
Да, я после отправки понял, что обосрался. Имел ввиду другое, но из-за своей лени и косноязычия было лень подробно свои мысли расписывать, поэтому просто забей.
583 2464898
>>464877
А что тебя смущает? То что там 3 строчки кода развернуты в 20? Или то что вместо цикла там find_map с диапазоном и лямбдой? Или то что коды ошибок через паттерн матчинг и unwrap обрабатываются? Это всего лишь немного функциональщины, в расте вообще норма писать цепочки вызовов методов столбиком и лямбды в них, даже вместо заполнения структур предпочитаются билдеры. Для читаемости наоборот лучше такое - код после "=" очевидно отвечает за создание объекта, паттерн матчинг на вызовах функций спасает от кучи ифов, которые сливаются в кашу и могут быть раскиданы по коду. Да, уровней вложения много и надо форматировать код чтоб не получалась лапша, но зато код логически скомпонован. По крайней мере нет хуйни как в крестах, когда в простыне кода приходится скролить вверх-вниз, чтоб понять как оно связано между собой, ведь в пределах файла с реализацией класса часто буквально в процедурном стиле на 500+ строк всё написано.
584 2464899
>>464888

> замена си


Его позиционировали как замену питону (перлу)...
585 2465086
Я нубик в шаблонах, хочу стать про. Что читать?
586 2465118
>>465086
https://youtu.be/FshTrPe_Woc?t=4753

Думаю тебе стоит посмотреть рекомендуемую литературу.
587 2465181
>>464889
Я вообще джава-боярин и для меня даже код на педалях кажется малочитаемым, что уж говорить о том, что ты там серанул.
588 2465267
Порекоммендуйте либу для быстрой работы с файлами. Не считая mapping-a.
589 2465284
>>465267
std::fstream
590 2465287
>>465284

>std::fstream


Медленная что пизда хуита, как и весь STL.
591 2465291
>>465287
Раз ты такой умный, то тебе есть с чем сравнивать. Вот и бери то, что быстрее.
IMG20220908142649295.jpg85 Кб, 512x512
592 2465345
Поясните за рекурсию в бинарных деревьях, это типа заебись или нет? а если дерево будет ебических размеров стек не пукнет по шву?
593 2465371
>>465345
Для дерева, в котором 2^32 значения, глубина рекурсии будет всего лишь 32.
594 2465402
>>465371
Это если оно сбалансированное, а в худшем случае глубина рекурсии = кол-во элементов

Поясните, кстати, нахуй нужны бинарные деревья блять??
595 2465412
>>465402
Чел, поступи в норм вуз или учебник себе найди, чтобы тупые вопросы не задавать
596 2465428
>>465402

>нахуй нужны бинарные деревья блять??


Банально синтаксические выражения парсить. Попробуй написать калькулятор с учетом приоритета вычислений и различными фукциями, тогда на практике поймешь зачем. Например, чтобы оно решало выражения вида sin(24) + cos(5)
597 2465433
>>465402

> Это если оно сбалансированное, а в худшем случае глубина рекурсии = кол-во элементов


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

> Поясните, кстати, нахуй нужны бинарные деревья блять??


Ну как минимум для написания упорядоченных сетов и мап.
598 2465444
>>465412
>>465428
Ладно, я тупанул, походу.
Я не мог понять, чем обычный бинарный поиск хуже дерева. Потом дошло, что поиск за O(logn), а вот удаление и добавление новых элементов за O(n), потому что сдвигаем элементы в массиве/векторе. Сначала показалось, что тоже должно быть за O(logn). В дереве добавление и удаление тоже за O(logn). Если балансировка дерева это тоже O(logn), то, в принципе, всё понятно.

Осталось разобраться с балансировкой
599 2465589
>>465444

> Осталось разобраться с балансировкой


И это самое сложное, что есть в деревьях. Есть дохуя видов балансировки: AVL-деревья, красно-чёрные деревья (юзаются в STL), B-деревья и B+-деревья (юзаются в базах данных для индексов) и другие.
600 2465599
>>465371
Только в идеально сбалансированном (на практике не бывает), школьник ты эдакий.
601 2465601
>>465599
Бывает, школьник ты эдакий.
602 2465688
Вкатуны в кресты здесь? Есть шанс получить место джуна у кормушки - одной из главных контор цифрового гулага РФ

https://hh.ru/vacancy/69632450?from=vacancy_search_list&hhtmFrom=vacancy_search_list&query=C%20%20
603 2465775
>>465688

> международная компания-разработчик продуктов


Какой смысл писать такое в 2к22м? Или имеются в виду народы белоруссии и казакстана?
604 2465842
Анонсы, прошу помощи.
Есть прога, инжектит указанную dll в другую(не читы, честное слово, попросили помочь просто). С этим всё ок, но есть необходимость аутпут этой проги получить, когда в неё загружена библиотека.
Сталкивался кто-нибудь? Гугл находит пару-тройку способов достать аутпут другого процесса, но везде(даже если в строке поиска обратное) рассматривается ситуация с дочерним процессом, когда ему STD_OUTPUT_HANDLE передаётся родительский.
Но у меня процесс не дочерний, по условию запускать его самому нет варианта. Как с этим справляться?
Пробовал запустить на стороне процесса через CreateRemoteThread GetStdHandle, чтобы получить handle устройства вывода, но этот вариант тоже не сработал - ни через ReadFile, ни через пайпы, ни через SetStdHandle.
605 2465849
Ну хз, хук повесить на какой-нибудь Write*(). Правда тогда получишь весь вывод, а не только std. и вообще я не настоящий сварщик и в теме не разбираюсь, но вот в тред насрал зачем-то
606 2465852
https://onlinegdb.com/Yrz560cfK

Поясните в чём прикол, написал говнокод который не должен работать, а он сука работает, но если хоть что-то дописать в конце функции он перестаёт работать.. Короче должно выдавать 31, если раскоментить cout тогда уже ничего не работает, Подскажите почему так.
607 2465860
>>465852
Конпеляптор шалит оптимизацией.
Выставь во флагах компиляции, например, -O1 - будет бесконечная рекурсия.
Ну или просто другой компилятор попробуй.
screams internally.gif993 Кб, 500x279
608 2465889
609 2465951
>>465860

>будет бесконечная рекурсия


Не будет бесконечной рекурсии, он просто не сможет зайти в нужную ветку и дропнет это говно... Фишка в том что он сам дописывает return 1 там где этого быть не должно.

>>465889

>*&


А как ещё можно это реализовать?
610 2465955
>>465951

>А как ещё можно это реализовать?


Тут все ок, это ссылка на указатель. Только не понятно, зачем писать !&*ptr, если проще и безопаснее !ptr
611 2465960
>>465955
А, ну тут я обосрался да, потом уже поправил.
612 2465962
>>465852
Небось UB.
ScreenRecording20220918130511.mp414,7 Мб, mp4,
1080x2280, 0:21
613 2466144
>>465951

>Не будет бесконечной рекурсии.


А это кто?
22.png18 Кб, 304x451
614 2466314
>>466144
Лол. Чёт я забыл что он не может пересоздавать адреса.

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

https://onlinegdb.com/mmadu_HQo
615 2466317
>>466314
Также интересно как проверить утечку памяти, где посмотреть хорошо я жопу подтёр или размазал по булкам?
616 2466350
>>466317
valgrind
618 2466823
>>466468

>Переходим на rust++


пофиксил
619 2466865
>>466317
Зачем подтирать жопу, если есть биде (GC)?
620 2466868
>>466468
Как называется эта болезнь? Почему они все пытаются вместо идеального C синтаксиса высрать это нечитаемое говно, которое ещё и занимает больше места?
621 2466880
>>466865
Зачем снимать штаны и садиться на унитаз, перед тем как срать, если мамочка (GC) всё сама уберёт и постирает одежду?
622 2467082
>>466868
людям заняться нечем
623 2467126
>>466868
Ты не понимаешь, ноука докозала, что читабельность кода увеличилась на 0.1%
624 2467133
>>466468
Кал. Надо упрощать синтаксис, а не усложнять. Хороший дизайн языка - это когда одна и та же конструкция может решать много разных задач. А когда под каждую задачу пилят новую конструкцию языка - это соевые костыли. Например, как шаблоны высрали в виде языка в языке, так и тут такое же нечитаемое говно.
625 2467145
Раз уж подняли тему синтаксиса, то тоже задам свой вопрос. Насколько приемлем для вас "синтаксический сахар"? Мне кажется, что в плюсах его количество идеально. Его не сильно много как современных язычках и не мало, чтобы приходилось миллиарды раз писать рутинный код для рядовых вещей. Он вот именно решает возникшую проблему, а не существует ради существования. Наприимер, в каком нибудь JS или Питон - цикл for уже моветон. Хотя лично я ничего плохого в нем не вижу.
626 2467156
>>467145
Синтаксический сахар в плюсах это auto и серийный for? Или о чём речь?
627 2467165
>>467145
Какой нахер синтаксический сахар в крестах? Эти уебки все никак не могут инициализацию полей в структурках сделать, тогда как в си уже лет 10 есть.
image.png251 Кб, 680x709
628 2467175
>>467156

>Синтаксический сахар в плюсах это auto и серийный for?

629 2467178
>>467165
Дедуля, попроси старших динозавров на проекте, чтобы все перешли на c++20. Там есть инициализация типа
ClassName obj = ClassName { .x = 1, .y = 2}
Правда, надо, чтобы поля были в том же порядке, как и в структуре.
630 2467189
>>467178
Ебать в том же порядке. Сложна+¹1
631 2467192
>>467189
Эт я не сдержался с тупости вопроса. Извиняюсь. По факту перед скобками и тип писать не нужно.
632 2467217
>>467178
Так это в каком-то виде даже до 11 стандарта было.
Просто, как я понимаю, там вызывался дефолтный конструктор и надо было все поля указывать.

Бтв не хватает порой такой штуки, когда ты можешь явно указать, в какой аргумент функции что передаёшь.
То есть что-то вроде
void proc(int x = 0, int y = 5, int z = 10) {...}
proc(z=> 20);
633 2467253
>>467217
То есть как в питоне. Да, было бы неплохо.
634 2467292
Аноны, где-то пару лет назад выпал из языка и не следил вообще ни за чем.
Хочется освежить в памяти (или узнать) вещи которые были с 17 стандарта и по текущий момент.
Есть какие ресурсы или блоги для этого?
635 2467296

>пару лет назад выпал из языка


Рожу этого хипстора представили? Он выпал из языка и потерялся.
636 2467305
>>467178

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


В этом и есть пиздец. В сишке не нужно соблюдать порядок, внезапно. Это жутко неудобно, когда у тебя там 20 полей, как я должен догадаться в каком они порядке? В итоге сначала пишешь, потом по вылезшим ошибкам переставляешь их.
637 2467314
>>467292
Вконтактике полно внезапно
https://vk.com/wall-54530371_298535
638 2467322
>>467314
Сенькс
639 2467396
Вот в шарпе есть стек и куча. На стеке доступ к данным значительно быстрее, но он имеет ограничения. Структуры в шарпе размещаются на стеке, а классы в куче. А в крестах есть подобное? Как здесь работают с памятью?
640 2467404
>>467396
Естественно. new - выделит память в куче (если не placement, тогда вообще нихера выделять не будет), остальное на стеке.
641 2467442
Как добавить либу к проекту?
У меня есть .so файл, который я линкую. А откуда доставать хедеры? Из сорцов либы?
642 2467612
>>467396
Всегда интересно наблюдать, как изучавшие программирование с питона и джавы открывают для себя новую модель памяти.
Представь что всю жизнь ты знал о стеке только то что он переполняется при рекурсии а рекурсия это, как известно, просто мем башорга. А тут оказывается что где-то люди сохраняют туда данные разного размера. Понятие размера структуры тоже требует переосмысления если теперь поля это не ссылки в кучу а реальные объекты.
643 2467613
>>467612
Начинал программирование с карт для варкрафта 3 https://xgm.guru/p/wc3/jassintroduction
Всё остальное в последствии воспринимал как само собой разумеющееся
644 2467624
>>467613
Аналогично, только начинал с программирования мышкой в gamemaker 8.
Культурный шок испытал только при встрече с функциональщиной, когда узнал что вместо добавления элемента в список создается новый список.
645 2467679
>>467404
Кстати, в стандарте вообще упоминаются стек и куча, или от них абстрагируются? Есть гарантия, что глобальные переменные - в дата сегменте, локальные - в стеке, а созданные через new объекты - в куче? Или зависит от компилятора?
646 2467681
>>467679

>стек и куча


Нет, есть только storage категории. На самом деле раньше делали компы вообще без стека.
647 2467686
Кстати а зачем существует ограничение на размер стека? Типа потому что он при переключении контекста копируется?
648 2467701
>>467686
Потому, что так проще. До появления всякого пидорства вроде потоков стек мог расти, пока не упирался во что-то еще.
649 2467738
>>467701
Так а хуле на стек не выделить терабайт виртуальной и пусть растет. Что поток должен знать о нем кроме указателя на верх?
650 2467800
>>467681

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


Может все таки без кучи? Без стека чё то делать анрил, весь вызов функций на нем работает.
652 2467854
>>467738
Нет терабайта виртуальной, поридж, это не бесплатно даже на amd64. Каждому потоку резервируют адреса от А до Б. Если процесс полез в невыделенную память между А и Б, ядро наращивает стек. Если полез в другие адреса, его убивают.
653 2467857
>>467828
Так нету стека или все таки нет аппаратного стека, то есть синтаксического сахарка для него? Ты уж определись
15738192891120.jpg37 Кб, 750x423
654 2467905
>>467857

>синтаксический сахар для стека

655 2467993
Аноны, чёт не вдуплю никак. Гарантирует ли
std::atomic<int> value;
value.store(1, std::memory_order_relaxed);
то, что значение value после исполнения этой операции будет видно во всех других тредах? Или memory_order_relaxed гарантирует только то, что это value запишется корректно (а когда и где его обновлённое значение будет видно - неизвестно)?
656 2468053
>>467993
Я синхронизовал треды атомиками чреез сторе, без мемори ордера, и ваит и нотифи, если нужно было. Все работало ожидаемо.
657 2468063
Котаны, почему не получается заменить символ '\n' ни в файле, ни в массиве char'ов? с другими символами прекрасно работает
658 2468067
>>468063

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


Что именно?
659 2468069
>>468067
замена типа 'char' на 'char', кроме '\n'
660 2468070
>>468069
замена типа 'char1' на 'char2', кроме '\n'
661 2468106
Аноны, а какую литературу можно почитать после крпичей Праты по Си и Си++?
662 2468185
почему код не работает:
ifstream file_input(in_path,ios_base::in|ios_base::binary);
ofstream file_output(out_path, ios_base::out | ios_base::binary);

if (!file_input.is_open()) { return 1; }
if (!file_output.is_open()) { return 1; }

char k;
while (file_input) {
file_input.get(k);
if (file_input) {
if (k == '\n') { k = ' '; }
file_output.put(k);
}

}
ДА КАК БЛЯТЬ ИЗБАВИТЬСЯ ОТ ЭТИХ ЕБУЧИХ \n
663 2468193
>>468185
Работаешь в винде?
664 2468200
>>468193
да
это меня VS и windows от атаки переполнением стека пытаются спасти?
665 2468202
>>468200
Нет, это в файлах на винде перенос строки обозначается как \r\n
666 2468210
>>468202
спасибо, но не заработало(

ifstream file_input(in_path,ios_base::in|ios_base::binary);
ofstream file_output(out_path, ios_base::out | ios_base::binary);

if (!file_input.is_open()) { return 1; }
if (!file_output.is_open()) { return 1; }
char k;
while (file_input) {
file_input.get(k);
if (file_input) {
if (k == '\r\n') { k = ' '; }
file_output.put(k);
}

}

далеко не первый час бьюсь над этой проблемой, не могу найти ответ. сейчас надо идти, вернусь часа через 3-4, кодировка ASCII или UTF-8(любая годится), если у тебя будет решение - буду чрезвычайно благодарен, если нет, но и за то что есть ещё раз спасибо
667 2468212
>>468210
\r это один char
\n это ещё один char
668 2468220
>>468212
я и так и так успел попробовать - не помогло
теперь точно пора бежать по своим делам(
669 2468223
>>468220
Хуёво попробовал, ибо говнокод с пикрила, внезапно, работает.
670 2468414
Аноны помогите я тупой
Хочу написать обобщенный класс, разделил на .h и .cpp (на 1-2 скринах пример определения и реализации одного из методов)
При вызове методов в main'е кидает ошибку компиляции (скрин 3 - CMakeLists, скрин 4 - ошибки)
671 2468447
>>468414
У тебя функция приват и статик.
Она может быть статик, только если класс можно использовать без инициализации экземляра.
А вот приватнкю ты за пределами класса никак не вызовешь.
Мотоды которые ты хочешь вызывать из вне должны быть пабликами, так или иначе.
672 2468470
>>468414
Ещё бы. Нельзя всю эту шаблонную поебень в цепепе переносить, ее не существует, конпелятор генерит конкретизацию по требованию.

Или явно затребуй экземпляр нужного шаблона нужного тебе типа в хедере.
673 2468533
Для чего нужны кастомные аллокаторы? Что такого можно сделать, написав свой аллокатор, чего нельзя сделать с дефолтным?
674 2468544
>>468533
Ну, можно налодить кучу объектов из одного куска памяти, а потом грохнуть разом кусок целиком. Дефолтный должен быть универсальным, он не будет знать как ты его намереваешься использовать.
675 2468605
>>468223
Спасибо тебе, Анон добра тебе и твоим близким
676 2468612
>>468053
Потому что без ордера там по умолчанию стоит самый параноидальный и тормозной барьер.
677 2468710
>>468533
Есть такая тема, необходимая в определенного рода по, что память заказывается вообще только один раз, в начале инициализации, почти вся физ память, например. А по ходу исполнения и по мере необходимости выделяется память из уже взятой из системы. Так быстрее.
678 2468728
>>468710
Не обязательно быстрее. Просто позволяет добиться того что ты хочешь от аллокатора - гарантированное время аллокации, например.
679 2468786
>>468533
Выделить 1кк объектов по 3 байта и уложится в 3мб.
680 2469243
Как работает подобное масштабирование, какой алгоритм, я чето не могу придумать запрограммировать такое же поведение сетки со значениями
681 2469418
>>469243
Смотри срц имплота или кукастомплота.
682 2469503
>>469418
я не умею смотреть сырцы, я очень долго в них разбираюсь.
683 2469526
>>469243
Какое масштабирование? Там просто оффсеты значений.
684 2469534
>>469526
Ну я так посидел подумал, там типо есть максимальное и минимальное количество линий умещающееся по осям, допустим минимальное количество линий 4, максимальное 6, если мы масштабируем график то, проверяем, после масштабирования у нас количество значений кратным допустим 10(100, 110, 120, 130, к примеру), меньше чем 4, значит уменьшаем кратность до такого количества, что бы у нас было не больше 5 линий на экран, и не меньше 6. Тоесть теперь будет не кратность 10, а кратность 7.5, или кратность 5. Ну надо подумать еще над формулой
685 2470351
Реализовал сам string::split, string::join, map. Производительность получилась в точности как у однострочника на питоне.
686 2470375
хуево реализовал значит
687 2470390
>>470375
Я и не претендую, мне просто в кайф, что смог ёбнуть шаблоны и передачу функции как параметра, я на cpp толком не писал с универа.
688 2471169
>>451830 (OP)
подскажите, как получить имена локальных дисков и их буквы на компьютере? То есть, если у меня есть 3 диска C, D и E, и например у E имя папки E_folder_name, то как мне их все получить?
С помощью filesystem? Что в path нужно писать?
689 2471184
>>471169
# include <windows.h>
TCHAR szBuffer[512];
GetLogicalDriveStrings(512, szBuffer);

Раз уж ты оперируешь понятиями дисков, можешь забить на кроссплатформенность.
690 2471214
>>471184>>471184
спасибо за ответ, не знал про такую функцию
но мне нужно получить именно название диска, а эта функция возвращает только имена дисков
691 2471215
>>471214
то есть букву диска, а мне нужно получить имя диска, то есть если у диска D название D_disk_name, мне нужно получить кроме буквы D ещё и имя D_disk_name
692 2471228
>>471214
Есть другие функции:
GetVolumeInformationA("C:\\", szVolumeName, NULL, NULL, NULL, NULL, 0);
GetVolumeInformationW(L"C:\\", szVolumeName, NULL, NULL, NULL, NULL, 0);
693 2471238
>>471228
какой тип должен быть у szVolumeName?
694 2471243
>>471238
Для GetVolumeInformationA - LPSTR, для GetVolumeInformationW - LPWSTR.
См. документацию: https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getvolumeinformationw
695 2471261
>>471243
спасибо за информацию, буду смотреть
и ты третий аргумент в функциях пропустил
696 2471408
вот я рисую график, допустим мне надо рисовать точку на координатах 28.4365. Если округлить то получиться 28. То есть на координате 28, я рисую пиксель, и допустим мне надо еще точку нарисовать через 28.4365, тогда я еще через 28. пикселей рисую точку. Но если мне нужно нарисовать метку что здесь в этой точке координата по Х кратна 10, то есть 10, 20, 30. Получается, если я буду прибавлять значение, по 1. Но дело в том что почему то не работает такая схема. При масштабе 1 пиксель на 1 единицу измерения, есть такие координаты и положения графика, когда я увеличиваю X на 1, а на графике все остается также. Как вы поняли точки следуют через определенное количество значений, то есть равно удаленны друг от друга. Если я буду просто рисовать точки от начала координат, путем умножения i*28.4365, i это номер точки в массиве, то получится такая ситуация, что кое где точки будут на 1 пиксель дальше друг от друга, а кое где ближе, получится примерная такая последовательность интервалов. 28, 28, 28, 29, 28, 28, 28, 29. Да я также не хочу рисовать все точки, из массива, только те которые входят в пределы виджета. И также расстояние между точками мне нужно заполнять цветом, ввиде прямоугольника, высотой значением y. Но 1 пиксель убрать что бы все не сливалось воедино.
697 2471424
double offsetXValueLeft = (startVectorValueWidget - startValueWidget);

double x = (joneElementValuescaleX) + offsetXValueLeftscaleX;
x = trunc(round(x));
Вот такая формула вычисления позиции x для элемента массива
offsetXValueLeft - это разность между ближайшей точкой слева от начала виджета. Типо позиция начала виджета - ближайшая точка слева. И вот тут либо такую формулу использовать и и мириться с тем что некоторые точки будут шире, а не которые уже. Либо использовать формулу такую:

double offsetXValueLeft = (startVectorValueWidget - startValueWidget)
scaleX;
offsetXValueLeft = trunc(round(offsetXValueLeft));

double valueWidth = oneElementValue scaleX;
valueWidth = trunc(round(valueWidth));

double x = (j
valueWidth) + offsetXValueLeft;

Но тогда появляются места где при увеличении Х не изменяется положение графика
image.png578x70
698 2471500
Решил делать переменную ширину столбца, путем вычитания от следующей координаты столбца, предыдущую, выглядит уже не так плохо, но все равно не очень. Блять я наверно когда нибудь книгу или лекции по программированию графиков запишу, это блять великая проблема
699 2471522
>>471500
Когда решу кончено эту задачу
700 2471557
Приветствую, Аноны
возможно ли по итератору обратиться к полю контейнера pair (итератор указывает на pair)?
701 2471572
>>471557
Паир это всего 2 чего то.
Итератор по сути дает тебе элемент массива. Если у тебя итерируемый массив пэиров, то да.
702 2471622
>>471557
Итераторы это же просто интерфейс. Ты можешь написать свой итератор который будет принимать pair и выдавать из него значения. Хз зачем это нужно правда.
703 2471701
>>471572
>>471622
Спасибо

получилось так:
iterrator_obj->first
или
iterrator_obj->second
разыменовывать не нужно
704 2471762
>>471701

>разыменовывать не нужно


>->


Хех.
705 2474237
Друзья, я нуб помогите.
Вот перегружаю я операторы, чтобы работали с моей структурой и все хорошо, пока структура - левая, тоесть
"T operator...(T t)" - ок
а вот как сделать чтобы T было справа, например "1/T"
хз хз.
706 2474239
что можете посоветовать для работы с БД?
707 2474248
>>474237
friend T operator/(int left, const T& right)
708 2474316
>>474248
Во. Век живи - век учись. Спасибо, анон.
709 2474992
как вкотиться в хайлоад на плюсах?
710 2475239
>>474239

>БД


Зачем?
711 2475873
712 2476095
Здравствуйте. Насколько реально для одного человека имея клиент Lineage 2 написать эмулятор сервера с нуля (не заглядывая в код pts и java версии сервера, а так же не анализируя входящий трафик с работающих серверов)? Можно начать риверс инжеринг, дебаггером поковырять клиент, расшифровать и проанализировать исходящий трафик, но меня мучают сомнения касательно того будет ли этого достаточно.(И вообще реально ли исходящий трафик расшифровать) Lineage 2 взял для примера. Существует много старых, закрытых онлайн игр сервера которых уже не функционируют даже у себя на родине. Просветите про историю Lineage 2. Как обстояло дело до того как получили доступ к PTS версии игры. Были ли пиратки? Каким образом их создавали? Заранее спасибо всем за потраченное время на написание конструктивных комментариев.
713 2476109
>>476095

>Насколько реально


Да.
714 2476121
>>476095
Вопрос в квалификации упорстве и времени. Строить с нуля все велосипеды, начиная от реализации протоколов связи до поднятия СУБД задача долгая и нудная.
Ещё более нудная (не менее сложная, хотя кому как) это обратный реверс. Особенно, если ты хочешь создать сервер, реверся клиент.

> Были ли пиратки?


Были. Чаще всего пиздился сервер у издателя, по этому версии всегда отставали. Потом, когда интерес не охолодевал, некоторые ебанутые переписывали сервер.

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

Но это всё разные пути, но они все требуют нехилой ВОЛИ для их реализации.
715 2476141
>>476121
Ты не шаришь. PTS это и есть сворованный сервер, но пиратки были до того как его украли. Короче ты не шаришь.
716 2476269
>>475239
>>475873
Я хочу подключаться к БД из C++ кода, отправлять туда SQL-запрос и получить результат. Есть ли лимбы для такого? В boost смотреть?
717 2476272
>>476269
*либы
718 2476301
>>476269
БД - не мамаша анона, к ней не может прийти кто угодно и выебать.
Какая у тебя база? Оракловая, mysql, постгре?
Вот и гугли библиотеку для своей конкретной базы, которая позволит тебе подключаться к ней.
Например для Oracle это OCCI называется.
image.png732 Кб, 1024x768
719 2477206
Я вам в шапку нашел котика
720 2477333
>>452626
ECS это же типа data-oriented design
721 2477938
>>477333
data-oriented design звучит слишком непонятно.
Назовем этот метод fortran strikes back.
722 2478507
>>477938
strikes from behind
723 2478616
работа есть? нету
че вы тут тогда обсуждаете
724 2478620
>>478616
Лабы.
725 2478630
чото тред утих после мобилизации. Всех плюсовиков забрали на фронт?
1588953244697.mp43,7 Мб, mp4,
784x960, 0:37
726 2478633
>>478630
Хуй знает. Я с другой сфере ИТ сижу, но мне похуй на мобилизацию. Ссыкуны возможно и разбежались как тараканы на свету.
727 2478646
>>478630
Ну да. Эксперты по всем вопросам в школе, разработчики laba02.cpp на парах, байтослесари на заводе, остальные в окопе.
728 2478929
Объясните скриптомакаке, как разрабы на сях ищут и устанавливают пакеты? В питоне есть pip, в жиес есть npm, а в сях? Копируют руками сорсы себе в папку с проектом или что?
729 2478932
>>478929
Пакетный манагер если для себя/опенсорц, или же оно упаковано в сабмодули и торчит в репе если разработка коммерческая.
730 2478942
>>478929
conan, vcpkg или используется пакетный менеджер линукса
731 2478943
>>478929
В плюсах тоже есть менеджеры пакетов, самые популярные - Vcpkg и Conan. Но это в первую очередь для винды, на линуксах либы обычно ставят из репозиториев дистрибутива. Например, есть либа SFML, и для неё в репозиториях может быть условный sfml-dev, ты пишешь apt-get install sfml-dev и получаешь хедеры/бинари либы вместе со всеми зависимостями. остаётся заинклудить и указать компилятору путь к системному каталогу, куда ставятся все либы. Часто так делают и на скриптовых языках, вместо pip могут, к примеру, поставить либы через тот же apt-get.
Ну и в плюсах не принято юзать по библиотеке на каждую мелкую фичу, и либы обычно самодостаточны или требуют совсем немного зависимостей. Нет такого, чтобы для использования одной либы требовалось поставить ещё 20 пакетов и выкачать полгигабайта зависимостей. Так что не такая и проблема скачать либы с сайтов разработчиков.
732 2478951
>>478943

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


А как тогда контролируется одинаковость зависимостей у всех разрабов проекта? Не писать же каждому челу в команде типа Славик, установи либу вот этой командой: sudo apt get ...? Обычно есть файл с декларацией зависимостей (requirements.txt, package.json), который потом пакетным менеджером обрабатывается. А если линухоидный манагер пакетов использовать, то как это реализовать? Бащ скриптом? CMake про это?
733 2478957
>>478951

> Бащ скриптом? CMake про это?


Да. Только они занимаются именно сборкой, а не скачиванием зависимостей, и есть множество нестандартизированных костылей, чтобы научить CMake управлять пакетами. В каждом проекте ебутся как хотят, для каждой либы своя специфичная ебля, потому что есть 100500 способов их подключения, будь то vcpkg/conan, bash-скрипт с несколькими командами apt-get install пакет_нейм=версия, субмодули git, архив с зависимостями на корпоративном сервере, хранение зависимостей в Git, либо просто файлик с инструкцией, откуда что качать и куда распаковывать (это как у новичков в линуксе, которые гуглят "как установить программу X?" и вместо простых инструкций об установке из репозиториев получают ответы "запустите ./configure && make && make install, а если будут ошибки, качайте зависимости с сайтов и с ними ебитесь так же").
Да, в 2022 звучит как пиздец, это пиздец и есть. Хорошо только то, что зависимостей обычно немного.
734 2478963
>>478951
Если вкратце, то как при работе с докером - пишется Makefile, в котором прописаны все действия для создания образа (считай скрипт на баше с вызовом apt-get, ldconfig, make, ./configure и прочими или батник для win cmd).

CMake в lin и win не встроен, поэтому на нём обычно описывают сборку проекта из исходников. При этом пути к внешним ресурсам выносят в виде переменных, которые ему укажет тот, кто будет собирать.
735 2478965
>>478963

> пишется Makefile, в котором прописаны все действия для создания образа (считай скрипт на баше с вызовом apt-get, ldconfig, make, ./configure и прочими или батник для win cmd)


Ты же не знаешь, о чем говоришь, да?
736 2478970
>>478965
Я не знаю о чём говоришь ты.
737 2478973
>>478970
О том, что в Makefile не пишется большая часть из тех команд, что ты написал.
Особенно проиграл с make и ./configure
738 2478975
>>478973
Пишутся в конфиг для сборки rpm пакета, и чё?
739 2478978
>>478975
Какой нахуй rpm пакет, шиз. Проблемы с концентрацией?
740 2478980
>>478978
Выпей валерьяновички, буйный ты какой то
741 2478981
>>478973
Так я про докер написал. Называется он там Dockerfile. Я не имел в виду CMakeLists.txt или Makefile для утилиты make/nmake.
742 2479333
Блять, как же я заебался с торчем. Я думал такая ебля с PyTorch и кудой только на петоне, но нихуя. Дебага нет никакого, почему куда не заводится нихуя не понятно. Сам торч выдаёт простыню с такой припиской: Could not run 'aten::empty.memory_format' with arguments from the 'CUDA' backend. This could be because the operator doesn't exist for this backend, or was omitted during the selective/custom build process (if using custom build). If you are a Facebook employee using PyTorch on mobile, please visit https://fburl.com/ptmfixes for possible resolutions.
В итоге три часа ебался, чуть не дропнул нахуй, каким-то чудом завелось.
743 2479470
Плюсаны есть кто в вулкане шарит, поясните точку сарата помимо офф доков и сеплов.
744 2479473
>>479470
А что ты ещё хочешь? Если не понимаешь как работает графон, то нахуй лезешь?
745 2479758
>>479750 (Del)
С прочтения книги дракона или хотя бы брошюрки Вирта
746 2479821
>>479750 (Del)

> - С чего начать написание своего языка программирования?


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


> - Чтобы что?


Шизло ебаное, съеби из треда нахуй.
747 2480476
>>479750 (Del)
Хотя бы грамматики вспомнить
https://youtu.be/93eipfA32G8
748 2480520
Давайте веб-йобу напишем.
749 2480525
>>480520
Нет, иди нахуй со своим вебом.
750 2480601
>>479750 (Del)
Очевидно с описания грамматики.
751 2481040
Сидел писал клиент, чтоб маняме смотреть из приложения, трекер просмотренных и т.д. Даже до апишки не дошел, пока сидел красивый сплеш с авторизацией делал и понял, а нахуй оно надо-то, в браузер зашел и открыл. Пиздец, уже кучу проектов побросал из-за этого
752 2481065
>>481040
Напиши бэк тогда, чтоб из браузера к нему коннектиться и смотреть. Многопоточка, транскодинг, и чтоб на GPU крутилось. Захуячь ещё туда рестапи и вёбсервачок с ui на жопаскрипте. А бэк пусть стартует от папки какой-нибудь с онеме. Так по чуть-чуть и нетфликс свой скрафтишь.
753 2481197
>>481040

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


AnimeBest App например.
754 2481214
>>481197

>Скачать на windows


>Скачать на Android


Ебаный рот этого разработчика
755 2481336
756 2481466
>>481040

>сидел красивый сплеш с авторизацией


Решил сделать проект.
@
Сделал красивую хуйню.
@
Тыкаешься в эту хуйню целыми сутками.
@
За год существования проекта в нем только 100 строк с реализацией красивой хуйнюшки.
@
Заходишь чтобы потыкать в эту хуйнюшку и посмотреть как хорошо она работает.
757 2481494
>>451830 (OP)
Подскажите, пожалуйста, что здесь делают фигурные скобки. Какую важную функцию они выполняют, потому что без них код либо не запускается, либо выдает в конце полную неразбериху.
int sum[CNT] = {0};
https://0bin.net/paste/Q9BDz14l#nSOc4nmoxZwjJ8IEHGsn1Gs-Qgq4Y55IYY6MXopsWSx
758 2481515
>>481494
Очевидно, задают массив из CNT элементов.
759 2481520
>>481515
ой блять, я думал, ты про квадратные скобки.
Фигурные фактически инициализируют массив нулями, иначе там будет мусор.
760 2481587
>>481520
Спасибо, вроде как понял
761 2481597
>>481494

>int sum[CNT] = {0};


Тут разве не только первый элемент проинициализируется?
762 2481598
>>481597
все остальные - zero-инициализация будет
763 2481669
>>481598
Почему тогда не {}, а {0}?
764 2481701
>>481669
ну, = {} в этом контексте делает абсолютно тоже самое да.
765 2481741
>>481669

>{}


Некрасиво.
766 2481780
>>481768 (Del)
Запасясь должным количеством спиртного.
767 2481827
>>481669
ISO C запретил.
768 2481947
>>481597
Прочитал как
int cum[CUNT] = {0}
Я обдвачевался?
769 2481980
Не совсем понятна задумка статических функций. Зачем они? В моём понимании они не выделяют дополнительную память, возвращая результат. А функция, возвращающая пойнтер разве выделяет новую память под него?
770 2481985
>>481980
Ты про статические функции из сишки или про статические функции класса?
К памяти это не относится в любом случае. static перед функцией - это просто аналог private, чтобы функцию не было видно в других единицах трансляции. А в статические функции класса почти как обычные функции, но относящиеся каким-то образом к классу и не имеющие ссылки на объект (то есть this не работает).
771 2481992
>>481985
Я про второе. Вот у меня, допустим есть функция
static SomeType* Function() {};

Ты имеешь ввиду, что, мне необязательно создавать экземпляр класса, чтобы вызывать эту функцию?
772 2482010
>>481992
Да, просто пишешь ClassName::Function()
773 2482056
>>481980
Статические функции это из сишки, в крестах их обычно кладут в безымянные неймспейсы.
774 2482439
>>481980
В эти функции не передается скрытый аргумент this. Вот и все.
775 2482628
Да почему, блеать это (пик1) дает это (пик2)? Я ж предоставляю данные в правильном формате, и, очевидно, что числа в этих данных есть
776 2482632
>>482628
Ладно, я настолько заебался разбираться, что написал свой варик функции с теми же, блеать, данными, и он, блеать, работает. Так что я вобще не ебу, что с кодом выше не так. Если кто понял, в ччм там косяк - дайте знать
1665026904039.jpg71 Кб, 976x379
777 2482634
>>482632
Чё-то я не догоняю...
У тебя строка которую получает в atoi() это "health: 32"
Что по-твоему эта функция должна делать со словом "health:" ?
778 2482635
>>482634
Она должна делать 32. Ведь так?
779 2482636
>>482634
Блет, сорь, не прочитал пикчу. Понял, что ты иммешь ввиду.
image.png29 Кб, 794x293
780 2482941
>>482635
Нет, ты себе шизу какую-то придумал.
781 2483216
>>483213 (Del)
Нужен. Не нужны шарпы, электрон и веб.
782 2483234
>>483219 (Del)

> А для чего нужен? Ну кроме гуи?


Для всего. Это фреймворк для всего
783 2483241
>>483239 (Del)
Ну если ты поверх него игровой движок напишешь то почему бы и нет, но зачем?
784 2483259
785 2483262
>>483219 (Del)

>Ну кроме гуи


Работа с последовательными портами, nfc, спутниковое позиционирование, преобразование кодировок текста, работа с изображениями, с шинами данных машин и некоторых летательных аппаратов, конечные аппараты искаропки и т.д. И все это может собираться например под эмбеддед или андроид.
Вощем это фреймворк общего назначения, для киберпанка тебе нужен специализированный игровой движок, хотя кют в 3д тоже может
786 2483346
>>483266 (Del)
Позиционировал свой хуй тебе за щеку, проверяй
787 2483465
>>483266 (Del)
Оборудования с gps датчиком.
788 2483473
>>483392 (Del)
Хуле тебе отвечать. Всё уже расписали нормально, а ты решил доебаться.
Вот и позиционируй писюны за щекой теперь.
789 2484470
Подскажите как написать шаблонную функцию только для некоторого ряда типов. Она у меня делает одно и то же и явно определять для каждого конкретного слишком много лишнего кода получается.
Что то тип такого?:

template <typename T> void foo();

template <> void foo<int | double | float>();
790 2484476
>>484470
Чел, концепты используй.
791 2484477
>>484470
Просто не передавай некорректные типы, один хуй получишь ошибку компиляции.
792 2484513
>>484470
Можешь добавить в тело проверку, если c++ < 20:
static_assert(std::is_arithmetic<T>());

Или добавь концепт после tempate<class T>, если с++ >=20:
requires std::is_arithmetic<T>
793 2484536
Есть ли разница между
void foo(initializer_list<int> il);
и
void foo(const initializer_list<int>& ilr);
Я так понимаю, если вызвать foo({1, 2, 3}), сначала будет создан временный объект, соответствующий аргументу, и далее, в первом случае, этот объект будет скопирован, и мы получим еще один объект, соответствующий il, а во втором случае копирования не произойдёт, и будет создан только один временный объект. Если это так, то почему обычно используют первый вариант, а не второй?
794 2484546
>>484536
Если в первом случае не происходит копирования, то почему? Разве это не copy initialization? Почему этот

class A {
public:
A(int) { cout << "A"; }
};
int main() {
A a = A(2);
}

код выводит "A", а не "AA"?
795 2484555
>>484546
Оптимизируется
796 2484566
>>484555
То есть, это UB получается? Или стандарт гарантирует такую оптимизацию?
797 2484568
>>484566
Стандарт гарантирует.
798 2484588
До этого был не совсем правильный код. Вот так лучше

class A {
public:
A(int) { cout << "A\n"; }
A(const A& a) { cout << "a\n";}
};
int main() {
A a = A(5);
}

Этот код выводит "A", а не "Aa". Я так понял, копирующий конструктор не вызывается для временных объектов, и A a = A(5); это то же, что A a(5);
799 2484593
Скопировал код, в нем определен тип возвращаемого значения функции в .hpp:
inline static auto WStringToUTF8() -> std::string
Но у меня работает само по себе и без этого, все из-за того, что я сижу на более новой версии c++?
800 2484617
>>484588
Блядь, вот для кого лекции там в университетах читают, стандарты всякие описывают.
Теперь сделай
A a;
a = a(5);
И опиши свои ощущения.
801 2484721
Сделал класс-обёртку над unix-вым сокетом
https://github.com/mamkad/Network/tree/main/Socket

Чо можно подправить?
802 2484725
>>484721
Пиздос каша в хедере. И сам код как будто на сишке написан. Алсо, от комментариев блевать хочется, должны быть нормальные имена методов, а не пояснения в комментариях что это за говно. Если bool возвращаешь - в имени должен быть вопрос.
803 2484744
Ща шел в подъезде, и увидел у соседа повестку в двери. Походу отправится могилизовываться. Ух, страшно…
https://youtu.be/-9SEfavF9oA
804 2485051
>>484617

>A a;


>a = a(5);


Даже я знаю, что присвоение и инициализация это не одно и то же
805 2485193
>>485051
А присвоение и присваивание это одно и то же?
806 2485200
>>485193
Не выёбывайся плиз.
807 2485251
>>484470
сильно много хочешь. Проверяй на типы сам
808 2485252
>>485251
Да ну блять, в шарпе и жабе в дженериках есть такие механизмы, а в крестовые шаблоны до сих пор не завезли.
809 2485577
Сап двач, я изобрел абстракцию:
https://pastebin.com/qeH2MDfc
Пикрил 1, если не открывается ссылка.

Прикол в том, чтоб можно было сделать, например
ThreadSafeObject<std::set<std::string>> mySet;
И потом можно было делать операции как под мьютексом
mySet.withLock()->insert(...);
Так и без
mySet->insert(...);
Но я не уверен, какой будет лайфтайм моего прокси объекта. Для эксперимента запустил хуйню на пике 2, и вроде все ок, но гарантировано ли такое поведение? В смысле, чтоб деструктор прокси класса вызывался после того, как выполнено выражение с return value его метода.
Screenshot from 2022-10-10 13-21-01.png92 Кб, 573x1187
810 2485579
>>485577
Ой блять, ну, я, как водится, обосрался с операторами.
Вот фикс: https://pastebin.com/uAXdXW4p
811 2485580
>>485577
Это каждый второй изобретает. Погугли по «C++ lock wrapper»
https://stroustrup.com/wrapper.pdf
Screenshot 2022-10-10 160011.png111 Кб, 927x743
813 2485682
Почему не генерируется ошибка out of range?
814 2485686
>>485682
Потому что доку читать надо блять

> Accessing a nonexistent element through this operator is undefined behavior.

815 2485688
>>485580
>>485589
Спасибо. Значит я все пиздато изобрел. Ну да, вроде лайфтайм временных объектов как раз совпадает с лайфтаймом выражения. Припоминаю
IMG20221010160718084.jpg2,3 Мб, 4608x2074
816 2485692
>>485686
В книжке у пчела всё работает, вот и спросил
817 2485700
>>485686
Алсо вон тут написано
https://cplusplus.com/reference/stdexcept/out_of_range/

>It is a standard exception that can be thrown by programs. Some components of the standard library, such as vector, deque, string and bitset also throw exceptions of this type to signal arguments out of range.



Хули ты меня наябываешь.
818 2485702
>>485692
Ну у него так undefined behavior проявляется. Может выкинется, может не выкинется.
819 2485707
>>485702
От компилятора зависит?
Типа есть g++, clang++, MSVC. В каких то ошибка проявится, в каких то нет?
820 2485716
>>485707

>От компилятора зависит?


Это называется implementation defined
821 2485721
>>485700
Шиз, ну да, вектор его бросает. Только не в operator[]
shocked-ohreally.gif160 Кб, 220x259
822 2485722
>>485716

>A program can be said to contain unspecified behavior when its source code may produce an executable that exhibits different behavior when compiled on a different compiler, or on the same compiler with different settings, or indeed in different parts of the same executable.



Охуительные истории конечно. Ну спасибо за помощь.
823 2485723
>>485692
Книжка тебя наебала. Что за книжка, какой автор и год?
Screenshot 2022-10-10 170642x.png109 Кб, 928x735
824 2485727
>>485723
Из оп поста книжка за 2014, Б. Страуструп. На самом деле у меня глаза в жопе оказались, там внизу страницы сноска, что надо использовать их специальный файл с библиотаками, разработаный спецом для этой книжки и тогда все работает всегда. В любом случае всем спасибо за помощь.
825 2485768
>>485727
Это вопрос не к Страуструпу, а к переводчикам, которые листинги херачили в книгу.
Стоит только заглянуть на референс и будет видно, что operator[] не проверяет границы - и, следовательно, не должен выбрасывать исключение согласно стандарту, а метод at кокрастаке выбросит тебе out_of_range.
826 2485769
>>485768
Хотя про переводчиков я еблан, да, вопрос к этой самой либе.
827 2485786
>>485579
Уууу сука как охуенно! Уже в 100500 местах применил эту обертку, и убрал нахуй все голые мьютексы из стейта классов. И заодно с ними утилизированы двухстрочные методы-паразиты, которые всего лишь заменяют делают операцию под lock_guard-ом. Короче, никто не узнает код, когда моя ветка в мастер попадет. Я бог рефакторинга.
828 2485844
>>485786
А итерировать как ты по своему
ThreadSafeObject<std::set<std::string>>
собрался?

Есть вероятность что если тебе нужно лочить вызовы методов на уровне std::set, то тут что-то не так в архитектуре
829 2485856
>>485844
Нормально собрался. Там сначала кое-какая хуйня происходит во много потоков, и сеты/мапы аккумулируются инсертами/эмплейсами, а потом я без лока захожу. Ну, иногда чтение тоже с локом, когда одновременно идут и пишущие, и читающие операции, но у меня нет такого UB, что управляющий поток запушит что-то раньше управляемого или позже, и от этого поведение второго потока изменится. Там оно скорее сделано для того, чтоб флашить только один раз кое-где.
830 2485858
>>485856
Сори за скомканное объяснение, я просто хохол придерживаюсь привычки не разглашать лишнее на дваче, и вот-такими-вот местоимениями затыкаю потенциальные бизнес-детали.
831 2485861
>>485844
Ну и да, у меня ж для таких случаев мьютекс торчит наружу. Его можно руками засунуть в локгард и хоть десять операций атомарно сделать. Вот финальная версия.
https://pastebin.com/DZB8nqaT
832 2485867
Хотя, я уже и так обосрался, потому что ты мой конкурент. Теперь применишь это в своем проекте, до чего никто раньше не додумался, и скорость дальнейшей разработки на такой порефакторенной кодовой базе ускорится на 3%, из-за в следующем году ваш важный релиз состоится чуточку раньше, и крупные заказчик выберет вас раньше. Ключевая сделка проебана, а там и сокращения, и до меня дойдет, и до истории тредов на рабочем компе, и до суда...
Ладно, похуй, я не жлоб и вообще адепт Столлмана. Немножко.
833 2485969
>>485858

> потенциальные бизнес-детали


> C++

834 2486115
>>485969
Сам охуел, но есть еще конторы здорового человека, которые для высоконагруженной части бэкенда используют C++, а помимо крестов - Common Lisp. Это просто идеальное сочетание, как по мне. Тупо шах и мат говноедам.
835 2486346
>>486115
Ебать, это что за контора мечты такая? Странно, что бизнес деятельность, а не какая нибудь техническая работа.
836 2486451
>>486346
Бэкапим данные всяких организаций, которые юзают общеизвестные облачные сервисы для работы. С возможностью рестора туда же. Например, office365. Через API майкрософта выкачиваем все на свои датацентры от админа клиентской организации, и через майкрософтовское же API ресторим что-то обратно, если потребуется.
837 2486465
>>486451
А CLisp где используется? Как клей для модулей на плюсах?
838 2486546
>>486465
Вот этой инфы в описании вакансии не было, так что боюсь сообщать инфу. Не из открытых источников, все таки. Ничего личного, при капитализме живем просто. Эх, поскорее бы коммунизм.
839 2486547
>>486465
Ладно похуй. LISP на отдельном серваке ранится. И шлет реквесты на сервак с плюсами.
840 2486692
>>484725

> сам код будто на сишке написан



И как это исправить? Убрать вызовы Си функций из if-ов? Или из-за стиля кода?
841 2486708
Антоны, ща немного погуглил про
typedef struct example { ... } example;
Пришел к выводу, что в C++ вообще похуй, есть тайпдеф или нет тайпдефа - т.к. неявно все равно тайпдеф есть, а в C разница только в том, что структура пишется в пространство имен тегов, а тайпдеф пишет в ПИ идентефикаторов. Я правильно все понял? Есть что-то, что я упустил?
842 2486717
>>486708
Кресты тебе не сишка.
843 2486795
Кто знает можно ли как нибудь сделать так что бы кастомные виджеты в QT Designer имели свои типы данных? Просто хочу сделать виджет, и что бы этот виджет в зависимости от значения которое ему пришло, менял цвет, текст, шрифт, цвет текста, на нужный. Хочу сделать это красиво, в виде динамических свойств, что бы типо, можно было к примеру добавить свойство с именем "1", и в этом свойстве были настройки типо такой то цвет, такой то шрифт, такой то текст, такой то цвет текста. В общем как мне добавить свой тип свойств в QT Designer. Что бы патом мой виджет в зависимости от пришедшего к нему сигнала смотрел и искал у себя свойство с таким же именем, как значение полученное из сигнала, и если у него есть такое значение, то он все значения из динамических свойств себе устанавливал.
844 2486967
>>486692
Конечно нет.
Си стиль это когда футкции. Нету обьектов содержащих информацию. Локальные переменные и что угодно прдается в функции.
А с++ стиль это классы. Экземпляры классов вполне могут и сами хранить какую то инфу, а все ыкнкции запихнуты внутрь, пусть дпже это и си функции, куда же без них.
Си стиль не значит плохо или хорошо. Пиши как удобнее.
Некоторые вот вообще на чистом си пишут, и ничего.
845 2487090
Мужики, помогите неофиту решить вопрос. За плечами пару лет любительского говнокодинга на Си. В основном писал рипперы для игровых форматов и небольшие патчи для старых игор. Сейчас нахожусь в поиске работы и присмотрел +- подходящие для меня вакансии. Одна из них на жабе, а вторая на плюсах, оба бекенд. На вакансии с жабой требования полегче чем у плюсов, но зато у оных более иинтересная предметная область. Оба языка я знаю на уровне "что-то когда-то слышал", но готов потрать месяц-два на изучение основ каждого, благо большего не требуется. Что посоветуете? ВЫбрать более надежный вариант, но не очень желаемый или рискнуть на интересную работу с шансом оподливиться?
846 2487134
>>487090
Твой опыт - он отрицательный. Проще обучить кодить с нуля, чем выправлять мозг программисту на С в сторону ООП и modern c++. В Java тебе ещё меньше обрадуются. Там выше по треду чел сокет обёртывал - вот прям видно, что одним полушарием продолжает на сишке писать, а другим пытается впихнуть исключения, STL и то, что вчера в книжке про сдвиг прочитал. Тот чел - это ты после 2 месяцев "изучения основ".

В принципе ты дашь подливы по обоим направлениям, так что будь спокоен. Пробуй и там и там, терять тебе всё равно нечего.
847 2487143
>>487134
Функционально программа должна обеспечивать требования тз. В каком стиле она написана никого не ебет.
Ясное дело на около си ему больше кода писать придется, но работать оно может и не хуже современных плюсов.
че вы так от си рветесь
848 2487146
>>487134
Ну я не совсем формо-гнездовой еще, чтобы Си-шка оставила сильный отпечаток на мне. Я и на CLispe некоторые вещи писал и Guile в качестве встраиваемого языка для плагинов использовал, так что с пониманием новых концепций не все так плохо. Вопрос в другом, у меня времени не так много, чтобы все сразу проьовать, поэтому нужно сделать выбор, либо плюсы точеные, либо жаба дроченая. На жабе как-то попроще с поиском работы, судя по хх.ру, но на плюсах более интересная деятельность, собственно, меня к ним и тянет. Вы бы что выбрали?
namana.jpg232 Кб, 1080x1080
849 2487156
>>487143

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


>В каком стиле она написана никого не ебет.


Ты из НИИ капчуешь или с дивана вкатился?
850 2487157
>>487146

>на CLispe некоторые вещи писал


>новых концепций


Первый выпускапрель 1987
Последняя версия 2.49 (7 июля 2010)

>времени не так много


>Вы бы что выбрали?


Java. Она меньше и знания предметки (математики, ос, железа) или профильного образования не нужно. Кровавый энтерпрайз он везде +/- одинаковый.
851 2487159
>>487157

>Первый выпускапрель 1987


>Последняя версия 2.49 (7 июля 2010)


И? Ты в курсе, что языкостроение застряло где-то в 90-00 годах? Все "новые" концепции, которые добавляют в современные популярные язычки, зачастую уже использовались в других, менее известных, языках сто лет назад.
мимо
852 2487165
>>487159
И в этих "менее известных" языках было несколько удачных концепций совместно с десятками неудачных. В итоге получалось, что в 20% случаев код был хорош и в 80% - очень не очень.
Алсо с тех пор и железо драматически поменялось и отношение к коду как к продукту.
853 2487325
>>487143
Да ему сначала собес бы пройти. Он там c-style cast с malloc/free зарядит и сразу на пересдачу отправится. На Java хоть такой возможности нету.
854 2487328
>>487325
>>487134
Можно подумать, переучиться с c-style на современный c++ так уж трудно. Сишники же не макаки пустоголовые, чтобы настолько не уметь адаптироваться. Как минимум, переключиться с malloc/free на new/delete вообще не проблема, особенно когда понимаешь разницу.
PTSDOwl.jpg4 Кб, 300x168
855 2487333
>>487328
Его постоянно будут преследовать флэшбэки, потому что c++ позволяет писать на c. Глобальные переменные, статические функции, макросы, с-style массивы, с-style касты, с-style enum, c-style структуры, c-style строки, работа с памятью, ввод/вывод. Это лишь малый перечень того, что нужно переосмыслить и забыть.
856 2487343
>>487333
Ещё нужна функциональщина. Curriyng, композиция функций, паттерн-матчинг, монады, нормальные лямбды. Вот тогда заживём.
857 2487357
>>487333

> Глобальные переменные, статические функции, макросы, с-style массивы, с-style касты, с-style enum, c-style структуры, c-style строки, работа с памятью, ввод/вывод


Почти всё из этого переучивается за 1 вечер. Мб ты реально про каких-то проперженных дедков из НИИ пишешь, которые уже слюну пускают.
Бтв что не так с си стайлом? Интересуюсь как нюфак.
858 2487436
>>487165
Что не отменяет того что последней новой идеей был пролог, а с тех пор в основном меняют один нескучный синтаксис на другой.

Алсо

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


в приличном обществе за такие выражения принято в рот срать
859 2487450
>>487343
не нужна
860 2487555
>>487343
Большую часть из перечисленного, если не всё, можно реализовать самостоятельно. А что с лямбдами не так?
inoneday.png439 Кб, 728x566
861 2487565
>>487357

>что не так с си стайлом


В нём получается много закладок, ведущих к пиздецома, так как меньше контроля за происходящим от компилятора.
862 2487568
>>487436

>приличном обществе


>в рот срать


Это самоирония?
863 2487576
>>487568

>Это самоирония?


Так-то богатые люди - самые большие содомиты на Земле, поэтому срать в рот, в каком-то смысле, один из признаков приличного общества.
864 2487579
>>487576
О, двачи-то оказывается место высокой, ебать её в рот, культуры, епта бля.
865 2487580
>>487579
Конечно, а ты е знал, что двач - борда для успешных людей? Здесь какждый первый зарабатывает 300кк/ннсек и разбирается во всех сферах жизни.
866 2487654
>>487565

>контроля за происходящим от компилятора


Так это минус.
Сначала дрочат на агрессивную оптимизацию, потом ахуевают от чудес в выполнии
16570266150660.png2,3 Мб, 1280x1209
867 2487672
REFERENCES WAS A MISTAKE

надо было просто добавить автодереференсинг к указателям
868 2487726
>>487672

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


Накладные расходы в рантайме, либо закос под раст.
869 2487731
>>487654
Какая ещё оптимизация, чел.
Я про подстановки матрасов, касты констов в неконсты, касты со сдвигом в нетуда, неупорядоченное создание глобалов, перемешивание пространств имён и прочее c-style говнецо.
870 2487942
Столкнулся я с дико странной хернёй, связанной с инкрементами.
В компиляторе от майков получается один выход, в g++ - другой. Кто прав всё-таки?
871 2487944
872 2487952
>>487944

>UB


спасибо, разобрался
874 2487998
>>487990
Между одним инкрементом и двумя очень большая разница.
875 2488027
>>487998
Сам принцип пойми почему это UB.
876 2488031
Поиск по треду дал нихуя поэтому спрошу. Решил-таки наяривать на кресты, но не успел я начать читать Страуструпа, как шарага решила погонять меня по Win32. Ессэсна эта же шарага а точнее пары дали мне целое нихуя поэтому ищу материал чтобы освоится с этим вашим WinAPI. Пока нашёл только http://www.winprog.org/tutorial/, но оно для С что вроде не большая проблема в контексте основ, видосеки от индусов муторные и сводятся к "мммм ви скип зис фор нау" от русскоговорящих ещё хуже часто (кроме https://www.youtube.com/watch?v=JV1bro7eK04 но хуй его).

Что посоветуете, аноны? В шапке нихуя нету, тутор на сайте Майков видел, но он какой-то сжатый, что-ли. Подчеркну, что мне чисто чтобы в азах разобраться и закрыть предмет своими силами.
877 2488068
>>488031
Вряд ли в шараге требуют именно винапи, скорее всего там что то типа "системное программирование". Забей на это говно мамонта и делай под линукс/posix. Я делал так и никаких подводных не было, вместо дельфи использовал лазарус с фрипоцкалем, вместо цепепебилдера куте...
878 2488092
Каково мнение анонов по anonymous namespace?
Это хорошая мировая практика?
879 2488203
>>488031
Качели хелп для вьюжал студии, там все есть.
880 2488204
>>488203
Качни, мать его
881 2488397
>>451830 (OP)
Аноны это я туплю или код на хабре херовый?
Перемножение матриц
https://habr.com/ru/post/359272/
Во-первых, мне непонятно как он тут одномерный у него в коде, матрица же всегда двухмерная.
Во-вторых, почему при M,N,K = 2048 программа работает 1 цикл? С точки зрения кода она и должна работать 1 раз потому что за индексы уйдёт, но тогда код неправильный?

Мне надо 2048х2048 матрицы перемножить по заданию.
882 2488452
Плюсоёбы. Делаю миникарту на Qt. Скажите как можно сделать ебучее ограничение чтобы сраный прямоугольникне вылетал за пределы миникарты, а болтался в ее границах?
883 2488471
>>488397
я некоторое время решал что делать:
1) написать пасту на 200 строк объясняющую в чем ты не прав
2) послать тебя нахуй

как видишь, строчек в посте явно меньше 200, так что выбор невелик
884 2488527
>>488452
Если(прямоугольник вылетел за пределы карты) то прямоугольник_в_позицию(пределы карты)?
885 2488569
Qt-треда не нашёл, из ньюфажного треда меня погнали сюда.
Может вы знаете - можно ли для QHBoxLayout задать ширину одной колонки в процентах от родительского элемента? Чтобы при изменении размера окна (и самого родителя) она бы менялась автоматически?
886 2488646
>>488527
Бля. Так то можно и в центр поставить конечно. Тогда правда дергать будет его. Думал просто виджет как то ограничить. Только сука с фиксированным размером границы нет, а к краям не привязаться. В общем придется события мыши пересчитывать. Сука.
887 2488709
>>488569
Для этого есть сигналы/слоты.
888 2488715
>>488569
resize event запили. Будет тебе изменение колонки при изменении окна.
889 2488716
>>488569
resize event запили. Будет тебе изменение колонки при изменении окна.
890 2488723
>>488709
Эмм... А при чём они тут? Или ты имеешь ввиду - у родительского элемента перехватывать события resize?
891 2488725
>>488716
Так и собирался сначала. Но думал, может можно как-то штатными методами без пердолинга.
892 2488794
>>488725
Только штатный resize.
893 2488814
>>488072 (Del)
Все эти ваши книги и статьи полная хуйня и никому не интересно что ты там там читаешь. Тебя спросят что ты делать умеешь и если ты скажешь умею писать драйвера для линукса, тогда ты потянешь на джуна+, а так ты ничем от макаки после курсов не отличаешься
894 2488816
>>488031
Нахуй этим говном заниматься, ты че даун, как тебе уже указали есть что то что полезнее поизучать, а это просто спизди у своих тупых одногруппников, а не будь этим самым тупым одногруппником
895 2488845
Опытные аноны, обьясните мне пожалуйста, зачем учить плюсы?
896 2488851
>>488845
мне хочется бытрого вката в айти, уже прочитал три книжки по плюсам базовые, потом посмотрел вакансии и с грутью сейчас ковыряю жаваскрипт. Может я чего-то не так понял?
В плюсах привлекает некая самодостаточность,что в теории можешь всё на плюсах сам написать и сидеть довольный.
Но с другой стороны каждый раз будто тебе нужно будет велосипедить....
897 2488853
>>488851
А вы за что любите с++?
898 2488890
>>488845
За то что на них пишутся интересные ёбы. Зрение, автопилоты, 3d печать и реконструкция, нейросеточки, робаты.
Правда на одних плюсах ты туда не доберёшься - нужно ещё петухон осилить и всякую матешу и предметку (хорошие плюсы дают лишь 30-40% от вката в желаемый хайтек).
899 2488909
>>488890
Звучит классно,можно обсмотреться всякими фильмами про киборгов и на мотивации сидеть писать код
image.png400 Кб, 981x573
900 2489004
>>488068

> там что то типа "системное программирование"


Оно и есть. Но там win32. Ещё, кстати, заметил что препод залил пикрил. Годно или проходняк?

> Забей на это говно мамонта и делай под линукс/posix.


Хуй там, надо на WinAPI. Курсач, наверное, тоже.
>>488203
Это в инсталяшке?
>>488816
Мне писать индивидуальные работы и, скорее всего, курсач. В своём манямирке выбросишь.

Кстати, а какой нынче дефолт для GUI на крестах в Шинде? Неужели Qt?
901 2489042
>>489004
К сожалению qt
902 2489058
>>488845
За абсолютную свободу действий. Я дрочу так, как хочу. Я могу отстрелить себе ногу любым способом, и даже не заметить этого.
А ещё я лютый мазохист. У крестов нет никакого тулкита. Дрочишь как хочешь.
Даже стектрейса нет искаропки.
Писать код на плюсах это как мастурбировать и бить себя током по яйцам во время этого.
903 2489067
>>488845
Плюсы мне дали 10+кб зарплаты на руки и перекат в Цюрих (в процессе).
904 2489103
>>488853
Идеальный баланс между скоростью написания кода и скоростью работы программы. Никакого гарбедж коллектора, jit-компиляции, миллиона ненужных сущностей и прочего кала, существующего только ради того, чтобы чуть эффективнее писать код засчет резкого понижения эффективности программы. При этом, проблемы с безопасностью, которые вменяют плюсам, решаются, насколько я могу судить, очень просто - в языке есть всё необходимое для написание безопасного кода, стоит только захотеть. Имхо, телега про небезопасность и "стрельбу в ногу" была бы справедлива, если бы речь была о C, но предъявляют это, почему-то, крестам. Ну и в чём я неправ?
905 2489143
>>489103
Прав не до конца. На си тоже можно заебись писать. Все базоаое дерьмо гаписано внезапно на си и работает. Просто на плюсах писать удобнее.
А про небезопасность ноют овощи.
906 2489148
>>489143
Язык, у которого есть Х из коробки, лучше того языка, у которого этого нет.
907 2489174
>>489042
UWP настолько непопулярно?

Кстати, поддвачну >>488851, где искать работу с крестами? JS-говна полно, Java ещё есть, но кресты с опытом работы только.
908 2489175
>>489148
В реальности так не работает, хотя звучит хорошо. По факту как писали на сях так и будут.
909 2489177
>>489174
На плюсах как обычно - идёшь в говнии, потом на работу "с опытом". Или через стажёрство, но так могут не только лишь все.
910 2489185
>>487726

>Накладные расходы в рантайме


Это какие такие расходы?

>либо закос под раст


Закоз под все япы, сейчас автодереференсинг ВЕЗДЕ
911 2489187
>>489103

> скоростью написания кода


)

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


)

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


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



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


как раз таки к плюсам это в большей степени и относится, даже больше чем к си
в плюсах адская мешанина из семантик, которые ты должен держать в голове 24\7
912 2489221
>>489187

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


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

> в плюсах адская мешанина из семантик, которые ты должен держать в голове 24\7


Это какое-то неосиляторство. Если неправильно писать код на джаве, он тоже будет выдавать неожиданные результаты. На плюсах писать код правильно чуть сложне, чем на джаве - как из этого следует, что язык небезопасный?
913 2489487
>>489311 (Del)
gdb, valgrind, asan, tsan, pprof
Вкатываться только через попоболь, иначе никак.
914 2489493
>>489491 (Del)
Про сиситемы сборки у меня пробел в знаниях, увы.
Пишу плюсы только на работе, там все собирается через bazel.
Который сам по себе тот еще монстр.
915 2489495
>>489311 (Del)
Вижуал студия, и не еби голову пердольным говном. Надо будет - выучишь.
916 2489496
>>489495
Ну, к слову, есть разные требования к сборке, как вариант - это параметры в каком-нибудь хедере вроде версии. Студия тебя заставит это менять в коде, а через cmake можно сделать .h.in файл, который будет переменные, переданные через -D в него подставлять.

Но да, на винде студии хватает в целом за глаза.
917 2489498
>>489497 (Del)
На линуксе хз.
Хотя, конечно, можно выебнуться и собирать в qtcreator или как там это называется. Только помнится мне, когда был 17 стандарт, qt мог только в 14 - как сейчас не знаю.
918 2489524
>>489496
>>489498
>>489506 (Del)
Cmake сам вме делает. На линукме есть креанор, слион, вскоде. Cmake в них работает абсолютно одинаково.
И в add_compile_definitions -D уже не нужно.
919 2489527
>>489221

>И в чём проблема?


В том что это не просто

> превращать язык в говно?


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

> Это какое-то неосиляторство.


Да, поэтому и говорят что даже старики из стандарта плюсы не знаю полностью, неосиляторы, хуле
920 2489550
>>489497 (Del)
ну тогда ебись сам.
921 2489574
>>489573 (Del)
вим не забудь напердолить 1488 плагинами
922 2490003
Котаны, в чем преимущество
std::vector::emplace_back перед std::vector::push_back?

Когда и как использовать первое, а когда второе? Да, в гугле забанили.
923 2490029
>>490003
Эм, очевидно первое сконструирует элемент уже в контейнере а второе скопирует туда имеющееся?

Очевидно, первое использовать когда лишнее копирование имеет значение и было бы неплохо его избежать, а второе когда похуй и вообще у тебя в проекте версия компилятора древнее чем цепепе11?
924 2490123
>>489221

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


Нет. На джаве в сотни раз проще писать, чем на плюсах. Как минимум просто потому, что джава стремится делать так, чтобы действие Х можно было выполнить минимальным числом способов. В С++ все ровно наоборот: вспомнить ту же инициализацию. Нахуя ее столько? Зачем нужна перегрузка оператора запятая? И все это нужно держать в голове всегда. В жабе ты максимум где-то обосрешься с NPE, в остальном писать на ней гораздо приятнее, в том смысле, что просто берешь и хуяришь бизнес-логику, не сильно задумываясь о языке.
925 2490153
Хочу написать приложение с современным интерфейсом, как в 11 винде. Прозрачности, анимации и тд. Какой фреймворк мне использовать?
926 2490157
927 2490197
Аноны, изучаю многопоточность.
Хочется попрактиковаться в написании чего-то, есть какие-нибудь блоги или сайты где были бы уроки с задачами?
Типа, вот пишем потокобезопасную очередь, тредпул и тд и тд.
928 2490209
>>490197
У Вильямса в книге есть упражнения
929 2490220
>>490209
Разве? Пока только первые три главы прочитал и ничего такого не было, кроме обычных листингов с примерами использования.
930 2490303
>>490123

>Зачем нужна перегрузка оператора запятая


Это не используют.
931 2490305
>>490303
И всё же она зачем-то есть. Почему ?:, точку или :: перегрузить нельзя, а блядскую запятую можно?
932 2490310
>>490305

>?:


А в чем смысл такой перегрузки?

>точку


А Зачем?

> :: перегрузить нельзя


Это оператор пространства имен
933 2490365
>>490303

>Это не используют


>>490310

>В чем смысл такой перегрузки?



Ты вот серьезно сейчас?
image.png80 Кб, 1064x647
934 2490516
Копирую из ньюфажного треда, мб тут быстрее ответят.
Сап, погромасч. Вопрос от ньюфага по С++. Как мне сделать символьную строку членом класса? Учебник Лафоре мне говорит, что пикрил, но мой компилятор говорит мне char a[] = "idi nahui". Хочется, чтобы каждый член класса можно было именовать, но пока получается делать это одним символом, что немного неудобно. Я уверен, что ответ есть и он на поверхности, но сам докопаться не могу.
935 2490518
>>490516
В функции вместо char pname[] напиши const char* pname.
И лучше как можно быстрее отказаться от строк в стиле C.
936 2490519
>>490518
Спасибо, сработало.

>И лучше как можно быстрее отказаться от строк в стиле C.


Почему? И как тогда писать? Я, если честно, вообще не шарю и чистого С никогда в глаза не видел.
937 2490520
Сап аноны, подскажите как прочитать 2 байта из бинарного файла и преобразовать их в целое число?
Способы из Гугла не работают, хочу рабочий код
938 2490521
>>490519

> Почему


Ну как минимум потому что и ради больших, и ради маленьких строк тебе придется постоянно долбиться в память, и делать это ручками, что чревато ошибками. Да и неудобно это просто-напросто.

> И как тогда писать


Не знаю, что там пишет твой Лафоре, но пока читай его. Если не обмолвится о std::string, то прочитай об этом сам.
939 2490525
>>487672
>>487726
А в жабе как сделано?
940 2490531
>>490520
Ну вот так, допустим.
https://pastebin.com/6DiA19ZT

Только

> uint16_t num = buf[0] | (buf[1] << 8);


Зависит от endianness.
941 2490559
>>490531
Спасибо, получилось. Был раньше код просто с char buff и выдавало чушь вместо числа.
Сделал unsigned char buff и заработало. Почему так?
942 2490571
Почему некоторые используют запись типов в виде int, short, float, double, а некоторые пишу что-то в духе u64, u8 и т.д? В чем сакральный смысл?
943 2490573
>>490571
Чтб скнмть бкв.
944 2490579
>>490559
Потому что побитовые операции со знаковыми это полный кринж.
Допустим, у тебя есть что-то типа
char c1 = -1; // -1 = 0xff
char c2 = -2; // -2 = 0xfe
когда ты делаешь
short s = c1 | c2 << 8;
ты ожидаешь, что там будет 0xfeff, но на самом деле там будет 0xffff
Почему так?
Потому что
short s = c1 | c2 << 8;
компилятором преобразуется в вид
short s = static_cast<short>(static_cast<int>(c1) | static_cast<int>(c2) << 8);
а static_cast<int>(c1) это не 0x000000ff, как ты бы хотел ожидать, а 0xffffffff.
1666018854529.jpeg1,2 Мб, 1439x2334
945 2490613
>>490571
Потому что в стандарте нет четкого указания размера типов.
И чтобы не обнаружить, что ты выстрелил себе в ногу в кроссплатформенном приложении, ожидая размер usigned int всегда в 4 байта и получив переполнение, ты пишешь size_t, чтобы на х64 системе это был тип в 8 байт, а на х86 - 4 байта.
Ну и всякие uint8_t, uint64_t - то же самое.
946 2490620
>>490613
Понял, спасибо.
947 2490712
>>490571
Ну есть например микропроцессоры где для удешевления адресация минимум 16 бит. Си/си++ просто делают char 16 бит, языки с u8 отсасывают.
948 2491183
>>490525
Всё есть указатели, разыменовывание автоматом, как в питоне, шарпе и тды
В расте, референс это указатель + лайфтайм
В го только указатели есть, автодереференсинг
949 2491210
>>487672
Автодереференсинг это зло. Нихуя не понятно по коду, где объект, а где ссылка на него, где копирование объекта, а где копирование указателя. Нельзя одновременно отстаивать идею написания читабельного кода и автодереференсинг в языке.
950 2491364
Перекад(инвалидский): >>2491360 (OP)
Перекад(инвалидский): >>2491360 (OP)
Перекад(инвалидский): >>2491360 (OP)
951 2491375
>>491364

> перекатывает на 900


Вот дебил же!
952 2491383
>>491364
ОТБОЙ ПЕРЕКАТА
953 2491406
>>491383
Да поздно уже, теперь дохуя вкатышей с лабами увидит тред на первой странице и будет срать там.
954 2491411
>>491406
Утонет, маленький, утонет...
955 2491417
>>491411
Ага, но сначала туда насрут 500 постов, а потом по инерции.
956 2491445
>>490197
gitlab.com/Lipovsky/concurrency-course
957 2491511
>>491210

> Нихуя не понятно по коду, где объект, а где ссылка на него


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

> где копирование объекта, а где копирование указателя.


Опять таки никак тебе он тут не поможет и плюсы это живой пример этого

> Нельзя одновременно отстаивать идею написания читабельного кода и автодереференсинг в языке.


Тем временем
Читаемые языки: все имеют автодереференсинг и явное копирование

плюсы сюда не входят, в си хоть явно понятно когда ты что копируешь
958 2491528
>>491511

>можешь узнать только из типа


В питоне и шарпе даже это недоступно. Я именно об этом и говорю, что есть чёткое разграничение между ссылками/указателями и объектами, и исходя из этого понятно, что в коде происходит.

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


Да, всего лишь надо удерживать в голове все возможные сценарии: чётко понимать, что будет, если, например, вернуть объект из функции - произойдёт ли копирование? Читаемость - 10/10.

>Читаемые языки: все имеют автодереференсинг и явное копирование


Тыскозал? Или кто решает, какие языки читаемые, а какие нет?
959 2491533
>>491528

> шарпе даже это недоступно


В шарпе есть ref-типы и value-типы. Даже разными цветами выделяются. Ничего в голове держать не надо.
960 2491564
>>491528

>В питоне и шарпе даже это недоступно.


>узнать тип


Доступно всегда было, с пробуждением

> чётко понимать, что будет, если, например, вернуть объект из функции - произойдёт ли копирование? Читаемость - 10/10.


Автодереференс тут какое отношение имеет?

> Тыскозал? Или кто решает, какие языки читаемые, а какие нет?


Я сказал. Или у тебя плюсы неожиданно читаемым языком стали?
Даже язык главная задача которого была простота и читаемость - го, и то автодереференсинг есть
961 2491596
>>491564

>>узнать тип


>Доступно всегда было, с пробуждением


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

>Автодереференс тут какое отношение имеет?


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

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


А я и не говорил, что плюсы читаемые. Я сказал, что читаемость и автодереференс несовместимы.
962 2491612
>>491596
Зато явный дереференс увеличивает количество ошибок, сишка и кресты тому подтверждение. И про читаемость - как при чтении кода по диагонали достоверно узнать должен ли тут быть дереференс или нет? А если должен быть, но он не стоит? Или наоборот? Кик искать будешь это говно, если там байтоёбство и компилятор не высрет ошибку типов? А вот с автодереференсом такого никогда не случится - если он должен быть, то он будет, либо ошибка компиляции.
963 2491640

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


Каких ошибок? Когда ты не понимаешь, как работают указатели, и пишешь неправильно? Ну извините.

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


Причём тут "должен"? Есть он по факту или нет - это то, что должно моментально считываться.

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


Ммм, магическое мышление. Как язык за тебя решит, должен копироваться объект, или только значение указателя на него?
964 2492719
>>490531
std::ifstream iFile("path", std::ios_base::binary)
std::uint16_t buff;
iFile.read((char*)buff, sizeof(buff))

Пидорашка-хохол ебаный, наговнокодил ты пидорас чуркастый.
965 2492725
>>490516

>double cost


>double



Лучше нахуй выкинь любые флоат и даблы из своего кода в качестве хранения валюты/цены и т.д., т.к. математическая формула представлений чисел с плавующей точкой в 99% случаев не может правильно отобразить дробные числа.
966 2492726
>>492719
Ты & забыл.
Экономия в одну строку? Хорош. Качество кода возросло в разы.
967 2496819
>>490516
просто используй std::string для символьных строк, вместо char[]
image.png26 Кб, 3054x74
968 2498969
Че мне с этим делать?
969 2498978
>>498969
Дрочить вприсядку. Красноглазые пердолики как обычно под кроссплатформенностью понимают "любой пердоликс", про существование других ОС не слышали. Поэтому линкуй своё ебучее радио вручную.
image.png23 Кб, 3054x131
970 2498984
>>498978
Это ты про линуксоидов? Скажи мне как мне прилинковать GNU RADIO, какую команду вписать? просто что бы собрать GNU Radio нужно BOOST, а буста нет, BOOST я скачал. Там вроде ничего не надо собирать, как мне теперь добавить путь к BOOST'у в сборке GNURADIO, а патом добавить путь к GNU RADIO к GQRX
971 2498987
>>498984
вообщем GQRX требует GNUradio, а GNUradio требует BOOST
972 2499135
Посоны, встретил в видеоуроке такую магию: при изменении &m на m нихуя не поменялось. После выполнения пик2 первый принтф все так же выводит тройку как и при выполнении кода из пик1. Ну ладно, хорошо, допустим имя массива то же самое, что и его адрес, но тогда все равно должна быть разница же? "&m" тогда должна слать указатель на указатель на массив, не? Как так то???
973 2499137
>>499135
Хотя ща дальше посмотрел, он там вроде переправил обратно, так что хуй знает, мб просто повезло но бля...
974 2499843
Требуется реализовать настройки для приложения. Ну казалось можно подключить базу данных, или просто двумерный массив строк сделать, где 1 строка, это название переменной настройки, 2 строка, значение переменной настройки. Я пишу на Qt и мне нужно еще сделать так что бы допустим нельзя было вводить в определенную настройку больше 9 символов, или два нуля подряд, или нельзя вводить десятичное число. И также нужно сделать так что бы при изменении настройка отсылала всем событие или сигнал, о том что она изменилась. Также нужно сделать так что бы при изменении одной настройки менялась другая. Как это красиво реализовать? Я пока реализовал ввиде отдельного класса где сделал отдельный сигнал, отдельные функции и переменные для каждой настройки.
изображение.png8 Кб, 497x248
975 2500311
Да блет, да почему так? Должно же быть 1111 0000 1111 0000... итд, не? Скорее всего я где-то накосячил, но где?

Код: https://pastebin.com/bG7vPq6z
976 2500316
>>500311
Хммм... когда поменял selected_bit на ансигнед заработало правильно. Ладно, кажется понял сам, но тогда возникает впрос: разве мы при объявлении char selected_bit_char = 0b10000000 не указываем явно способ расположения битов в памяти? Как тогда реализовать явную передачу по битам? Только через битовые поля?
977 2500326
>>500316
Чел, читай про endianness. Первый бит всегда справа на х86.
978 2500328
>>500326
Имеешь ввиду старший?
980 2500332
>>500326
Ладно, кажется понял. Не отвечай.
981 2500834
Так, а вот сейчас у меня и вправду космически бомбануло:
я продолжаю курить эти (>>499135) уроки, и... оказалось так делать можно)))
Ладно, давайте просто вместе маленьк подумаем))) (Программирование это ведь все же про логику, и тут нужно иногда сесть и маленьк подумать) но лучше, я так понял, не надо

Вот мы имеем переменную m, являющуюся именем статического массива int m[5] = {1,2,3,4,5}, значение которой располагается в некоторой ячейке памяти A и хранит там адрес ячейки памяти B, в которой лежит значение первого элемента массива. Ок. Дальше попробуем узнать адрес ячейки памяти A, по которому лежит значение переменной m: выполняем &m и.... получаем адрес ячейки памяти B, в которой лежит значение первого элемента массива.Т.е.в ячейке B, помимо значения первого элемента массива, должен лежать еще и адрес, по которому лежит адрес первого элемента массива? Все правильно?
Как???...Почему??..В конце концов, нахуя?? ..
982 2500843
>>500834
Адрес в этом случае в памяти не лежит, там только сам массив. Вся разница между m и &m - в типе выражения (чистая абстракция, понятная только компилятору). Первое это int[5] - массив из пяти интов, второе int (*)[5] - указатель на массив из пяти интов. При этом первое выражение ведет себя как указатель на первый элемент массива.
983 2500850
>>500843
У вас неправильный язык программирования. Переделывайте.
984 2501340
>>500834

> но лучше, я так понял, не надо


Если тупой, то вообще лучше не пытаться думать.

> выполняем &m и.... получаем адрес ячейки памяти B


Нет, получаем ссылку на указатель. В m лежит адрес участка памяти с интами. Скобочки в массиве - это просто сахар над указателем. Можешь делать ⚹(m + sizeof(int) ⚹ i) и получать элемент из массива.
985 2501363
>>501340
Глупенький, ты хоть смысл вопроса то понял?
Вопрос в том, почему в крестах все указатели как указатели, а имя статического массива - указатель курильщика.

>>⚹(m + sizeof(int) ⚹ i)


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

Если вообще хоть немного нацелен на конструктивный диалог, а не на тупорылые высеры, то прокоментируй лушчше ответ этого (>>500843) анона, по поводу абстракции. Т.к. я так не понял, на кой хер Труп Страуса сделал именно таким образом. Что это вообще дает, кроме того, что вся стройная логика указателей пошла нахуй.
986 2501365
>>501340

>>⚹(m + sizeof(int) ⚹ i)


Лол. Да ты ее даже неправильно написал. Че-то я не сразу обртаил внимания. Короче понятно все с тобой. Больше сюда не пиши.
изображение.png99 Кб, 556x282
987 2501372
>>501340
Ладно, я даже тебе упрощу задачу для того, чтобы ты въехал о чем вообще шла речь. Если и после этого не дойдет, то тут уже я бессилен
988 2501390
>>501372

> пик


Блять, ты в курсе что ссылки - это не указатели? То что ты передал указатель по ссылке не значит что он должен поменяться, указатель не l-value. С какими же даунами сижу в одном треде.
изображение.png22 Кб, 1214x258
989 2501395
>>501390
Во первых, если б ты поспокойнее пиздел, тебе бы никто не стал грубить. Во вторых, я ньюфаг, и то, что у тебя 100500 лет опыта проганья в крестах вряд ли дает тебе право разговаривать в подобном тоне. В третьих, если я правильно тебя понял:
1) Когда мы пишем int m[3]; cout <<&m то мы передаем указатель по ссылке
2) Когда мы пишем int a=0; int ⚹p = &a; cout <<&p то мы берем адрес указателя, так?

Но это все равно не дает ответ на мой вопрос. В чем профит такого различия? Почему нужно было делать различие между указателем статического массива и обычным указателем. Это же тупо создает путаницу. А плюсов такого подхода я вообще не вижу.
изображение.png19 Кб, 1064x224
990 2501398
>>501390
Бля, не тот код вставил. Тут (>>501395), я создаю обычный указатель и инициализирую его статическим массивом. Так что там работает иначе
991 2501400
>>501398
>>501395

>>Тут (>>501395), я создаю обычный указатель и инициализирую его статическим массивом. Так что там работает иначе



Кстати, эта хуйня только подчеркивает разницу между статическими массивами и указателями
992 2501427
>>501395
Чел, вот где-то выше срались про автоматическое разыменовывание указателей. Ссылка - это грубо говоря указатель с автоматическим разыменованием, который компилятор может оптимизировать нахуй. Если передаёшь ссылку куда-то, то получатель получает объект внутри ссылки. Т.е. твою m.

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


Потому что их нет. Массив это и есть указатель.
int ⚹p = &a;
Вот этот p легко кастуется к массиву. Можешь сходу его использовать как p[0].

> плюсов такого подхода я вообще не вижу


Потому что это отростки от си, в крестах такое всегда рекомендуется избегать.
993 2501438
>>501427
Короче, я так понял, по итогу тут проблема в беспределе автоматического разыменования указателей? Типа они творят что хотят и могут, грубо говоря, массив послать нахуй, а указатель в пизду, хотя и массив и указатель - одно и то же, все верно?
994 2501445
>>501427
Я, канеш, только начинаю изучать C++ так что мнение не окончательное, но, сложилось впечатление, что весь C++ - суть не что иное, как танцы на костылях на трупе языка C
995 2501763
>>501445
Чел, вот это >>500843 в той же степени относится и к Си, если что. Не очень понимаю, что тебя смущает. Это так же логично, как существование разницы между int⚹ и int⚹⚹.
996 2501828
>>501763
Ну мб. Я отдельно Си не курил, только слышал упоминания, что в Си, мол, так, а в крестах эдак по тому-то и тому-то (как правило тут перечисляется пара способов прострелить себе колено)
997 2504932
Структуру WNDCLASSA можно нормально инициализировать нулями только при помощи мемсета? Нет других способов?
Почему С++ был спроектирован как компилируемый язык? 998 2508918
Нужен развернутый и четкий ответ на этот вопрос. В интернетах ниче не нашел на эту тему...
999 2508941
>>508918
потому что в те годы тебе бы ебало сломали если бы узнали что ты динамикопарашник
1000 2509223
>>508941
можно подробнее?
1001 2509295
нет
1002 2510092
кто перекатит тот лох
Тред утонул или удален.
Это копия, сохраненная 10 ноября 2022 года.

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

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