Этого треда уже нет.
Это копия, сохраненная 25 мая 2021 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Стикер274 Кб, 500x500
C++ тред #127 /cpp/ 1973041 В конец треда | Веб
Первый непозёрский.
Вместо шапки:
https://github.com/sosachbot/cppthreadhat/wiki

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

Для указателей: ⚹
Прошлый (1000- постов, вы серьезно?) тред: >>1958641 (OP)
Стикер197 Кб, 500x500
2 1973046
Уважаемая модерация, прошу вас не обращать внимания на подорвавшихся клоунов.
3 1973047
>>1973046
Заголовок надо починить, тег задвоился.
4 1973048
>>1973046
че за пидорский перекат?
делай нормальный для мужиков
5 1973049
>>1973047
Тег нормальный, просто /cpp/ еще в теме написано.
image.png398 Кб, 480x360
6 1973050
Ну чё, пидор, не компилится?
7 1973051
>>1973041 (OP)
Есть чудаки, которые на mingw-g++ умеют компилировать?

Короче решил себе на голову кросскомпиляцией на винде озадачиться, да еще OpenCL в программе использовать.
Без ОпенСЛя прога норм собиралась как в вижуалке, так и с mingw. С подрубкой ОпенСЛя возникли проблемы.
Сделал отдельную прогу для проверки СЛя: https://pastebin.com/fDGituYE
В общем сейчас дошел до того, что в 32-битном режиме с win32 исходниками СЛя (от nvidia cuda) оно даже работает. Но с 64-битными исходниками пахать не хочет - компилируется без ошибок, но где-то при первом же вызове clGetPlatformIDs оно просто выходит без слов. Пробовал даже с отладкой компилить и gdb шагать, но он естественно не показывает где возникает проблемес (либо я нубас и не разобрался).
В итоге обнаружил еще, что есть отдельный mingw-w64 под 64-битные сборки, но его использование не дало новых результатов.

Есть конечно варик, что мингв криво установлен, или какие-то библиотеки g++ не рассчитаны, чтобы работать с opencl, или сама opencl.lib не годная. И возможно под линухом оно нормально запашет, я еще не тестил. Но хотелось бы иметь возможность прямо с винды проверять возможность сборки под g++. Есть какие-то идеи?
8 1973065
Дайте краткое сравнение opengl с vulkan. В чём разница, в чём преимущества и перспективы каждого?
9 1973067
>>1973065
Вулкан низкоуровневый, а опенгл нет.
10 1973068
>>1973065
Вулкан гибче и современнее. Опенгл попроще и работает почти на любых картошках.
11 1973071
>>1973067
>>1973068
Короче вулкан = тонна кода, но опенгл жив и будет жить?
12 1973073
>>1973071
Нет он умер 12 марта в 3:40 минут ночи.
13 1973076
>>1973073
Счастья и здоровья погибшим. Что случилось?
14 1973077
>>1973076
Было принято твёрдое и чёткое решение убить его во благо программирования.
15 1973078
>>1973077
Кто это решил?
16 1973080
17 1973081
26431093apr0407.jpg47 Кб, 256x384
18 1973085
>>1973041 (OP)
На самом деле крестозадроты и есть самые лютые анимешники, хоть и кидаются какашками в сторону Java/JS, чтобы хоть как-то подозрение отбить. Сидят перед компом круглыми сутками, получают красные шаринганы в обоих зенках, мечтая достичь мастерства хокаге, чтобы приняли в деревню Зеленой Сакуры писать батники.
19 1973086
>>1973085
Ghoul это не аниме - это образ мышления. А ты позер, чел )
20 1973102
>>1973065
Почитаешь местных шизиков - так OpenGL умер, а Vulkan мёртворождённый.
21 1973106
>>1973102
Да мне похуй, я уже опель курю.
22 1973146
>>1973051
У той же CUDA есть ограничения на версии gcc. Так же скорее всего и тут - попробуй версии, предшествующие твоей (начни с 5.4).
А вообще лучше запили себе виртуалку с лялексом, смонтируй туда паку с проектом и там компилируй.
23 1973199
>>1973146
На счет версии гцц интересно, спасибо за наводку.
Надо конеш запариться с линуксом по-хорошему...
24 1973245
>>1973065
Напиши хоть что-нибудь на чём угодно.

Для среднего вкатуна\хоббиста в вулкане ровно 0 смысла, на опенгл можно сделать все тоже самое, только в разы быстрее.
25 1973247
>>1973199
На лялексе намного удобнее кросскомпиляцию делать - там есть всякие пакеты полезные для этого, проще синхронизация сорцов и дебаг удалённый (особенно gpu).
Поебстись с настройкой действительно придётся, но на виртуалке у тебя всегда будет готовое рабочее окружение, которое ты сможешь на любом компе поднять в пару кликов (и точки отката, если после грейда до новой версии gcc/cuda/cl у тебя всё по пизде пошло).
26 1973286
>>1972808 →

>Срр жив, иди уже сдох?


Дохлое тело имеет тенденцию раздуваться.

Стандарт срр имеет тенденцию раздуваться.
27 1973290
>>1973286
Криминалист-дэбил, ты? В каком же ты отчаянии раз не сумел в гуманитарку и пришёл в кресты.
28 1973314
>>1973290
Это растошизик, которые имеет тенденцию хлебать борщи.
29 1974103
В чем отличие OpenGL от SFML?
30 1974111
>>1974103
Первое - низкоуровневое API для 3D-графики, второе - высокоуровневая либа для 2D-графики и не только.
31 1974117
>>1974111
Благодарю
32 1974452
бамп
image.png1 Кб, 225x14
33 1974477
Если я прочту каждую страницу в соответствующем референсе будет ли это значить что я знаю стандарт?
image.png3 Кб, 348x49
34 1974478
>>1974477
Кривые, кривые скриншоты.
35 1974486
>>1974477
Даже если выучишь наизусть - не будет.
36 1974546
>>1974486
А что надо сделать чтобы "научиться" стандарту?
37 1974627
>>1974478
На C++ Reference не всегда полные сведения приводятся. Таким образом, знатоком стандарта ты точно не станешь.
38 1974667
>>1974627
Да мне не нужно гуру. Мне чтобы я пришёл в контору где 11-20 и меня тупо взяли.
39 1974703
>>1974667
Это совсем другой уровень требований, для него не надо дрочить референсы, а просто где-нибудь просмотреть и запомнить основное.
40 1974717
>>1974477
Стандарт и цепепереференс это примерно как библия и библия для детей. Хотя последних я и не читал особо.
41 1974719
>>1974717
> библия
А знание плюсов у адептов тоже на уровне "читал только начало и несколько вторичных толкований, всё остальное слышал от знакомых" ?
42 1974835
>>1974546
Компилятор напиши. Весь стандарт перекопаешь по ходу дела.
43 1974873
>>1974835
This. Достаточно даже фронтенда, а не полного компилятора.
44 1975129
>>1973741 →
Надеюсь, cpr из этой коллекции уже умеет отменять запрос. А то в недра curl, по-моему, в своё время нельзя было влезть через эту библиотеку. Так я понял, что надо очень осторожно подходить к выбору библиотек для проекта.
45 1975155
>>1973041 (OP)
Есть тут продвинутые юзеры Visual Studio?
Мб знает кто плагин какой-то для текстового редактора, чтобы из файлов исходников каждый метод можно было в отдельном окошке открыть и там же дебажить его?
Или какие альтернативы есть с аналогичными фичами?
Доебывает в простынях кода по 5к лок прыгать между функциями.
Закладки или навигация в неймспейсе не вполне подходят.
46 1975208
Как анон создает документацию к проектам?
47 1975211
>>1975208
Документации не существует вообще нигде, лул.
48 1975306
Сап, крестаны.
Хочу перекатиться в HFT. Что для этого надо знать? Всякие баззворды из вакансий типа FIX, FASt, CoralFIX и иже с ними - это вроде просто интерфейсы к биржам. А по самим торговым алгоритмам есть что-нибудь почитать?
Когда я полгода назад обосрался на собесе в Московскую биржу, меня дрючили lock-free многопоточностью. Там это реально активно используется? Опять-таки, что про это почитать? Кроме Уильямса
49 1975319
https://pastebin.com/kj2mVqQm
В чём проблема? Если for убрать то всё вроде работает. А если get size отъинтовать пропадает третья ошибка сверху, хотя по коду там везде инт как оно испортилось то?
50 1975321
>>1975319
myvec.GetSize() в цикле
image.png16 Кб, 766x199
51 1975322
>>1975321
Не работает всё равно
52 1975323
>>1975322
ты долбоеб чтоли?

в своем цикле напиши скобки у GetSize - вызови метод
53 1975324
>>1975323
Спасибо.
54 1975342
>>1975306

>Что для этого надо знать?


engrish + social skills, бери пример с 700к нвидиа-куна, поклонника "киберпанк 2077"
55 1975356
>>1975306

>биржа


>lock-free многопоточность


>активно используется


Сам как думаешь?
56 1975361
Кто с C# перекатывался? Были какие сложности?
57 1975363
>>1975361
я перекатываюсь на C#, полет охуенный
58 1975365
>>1975363
этот байт код задрал, опенсорс
59 1975381
Адекватная дока по ssh 2 есть? То что я копирую с вроде оф сайта даже не компилируется нормально
pizdezh.png56 Кб, 507x273
60 1975414
>>1975306
И какие такие вопросы были там, что сам Вилли не котируется (которого начиная с главы про атомики приходится по 100 раз каждое слово перечитывать чтобы хоть что-то уловить из написанного)?

От тебя воняет пиздежом шо глаза слезятся
61 1975480
А чё это нормально что pow из cmath имеет реализацию в 1000 строк, где почти одно и то же написано?
62 1975483
>>1975414

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


Ну так именно поэтому и спрашиваю чего другого почитать. Вот этот бложик мне нравится: https://preshing.com/20120612/an-introduction-to-lock-free-programming/ Хорошо, но мало.
63 1975484
>>1975480

>pow из cmath имеет реализацию в 1000 строк


Чо
64 1975487
>>1975484
1000 строк кода!!
65 1975494
Как перегрузить оператор ++?
Написал void operator++(structname* a), а компилятор говорит, что функция должна иметь at least one parameter of class or enumeration type.

Приходится свой язык программирования пилить, потому что C++ ужаснейший. Мой ЯП сразу понял бы, что если в оверлоаде оператора указатель, значит надо указатель на переменную кинуть и функция сама всё устроет в структуре, что надо и ничего возвращать не надо
66 1975498
>>1975494

>Как перегрузить оператор ++?


Взять class or enumeration type и перегрузить, или тебе мало способов выстрелить себе в ногу без модификации операций с указателями?
67 1975508
>>1975494

>Приходится свой язык программирования пилить


В сердцах бросаешь эту затею с визгами "ебал рот это айти" на попытке реализации хранения 32 битного инта.
68 1975519
>>1975508

> реализации хранения 32 битного инта


Да зачем, можно же просто сказать, что вот вам пачка UB и не ебёт, крутитесь как хотите.
69 1975537
>>1975498

>2021


>Использовать class в C++


Ага, смешно.
А насчёт энамов поподробнее. Я правильно понял, C++ даёт возможность взять enum {ABC; ABV; GDEYOZH} и перегрузить оператор на него? Но зачем?

>>1975508
Совсем того, что ли? Мне не нужно думать о хранении интов, этим занимается LLVM Где вообще может возникнуть проблемы хранения интов? В ПЛИСах?
Главная проблема в разработке компилятора моего ЯП была и сейчас является это темплейты. Я изначально очень плохо продумал архитектуру. Думал это будет препроцессинг -> парсинг -> байткодирование -> LLVM IR вкратце, у меня препроцессинг как в C, ещё перед LLVM происходит преобразование в "байткод" моего ЯП, но когда начал вводить темплейты, так таких костылей надобавил, теперь весь проект переписывать приходится. Между парсингом и байткодированием добавляю новый слой — обработка парсинговых данных, чтобы сразу сгенерировать все темплейты, заменить в операндах название темплейта на название полученной функции (исходя из нейм-манглинга для темплейтов моего ЯП), а также с перегруженными операторами и функциями так поступить.
Когда доделаю это придётся ещё и парсинг разделить на 2 уровня — токенизация и парсинг токенов, чтоб можно было чекать на ошибки сразу много инструкций и выводить хотя бы номер строки, где ошибка.
70 1975551
>>1975537

>LLVM


Ну нихуя себе. Следующий проект BolgenOS v2.0 небось?
sage 71 1975563
>>1975551
В очередной раз убеждаюсь, что крестаны хейтят всё, что не велосипед. Казалось бы: есть инструмент - пользуйся. Но нет, хочу заново писать 1001-ый генератор парсеров, очередной оптимизатор, свой гуй поверх GDI, свой игровой движок поверх OpenGL, свой буст, свой STL, свои строки, свой юникод, свой cmake. А некоторые ещё удивляются, почему крестотред один из самых живых, а просто все нон-стопом обсуждают, как правильнее велосипеды писать.

мимо
72 1975564
>>1975537

>Но зачем?


Например ты хочешь зацикливать чтобы GDEYOZH++ давал ABC. Значения в енуме ты так то произвольно можешь раздавать.
73 1975572
>>1975563
80% крестовой работы это кастомизация велосипедов и всего 20% RnD.
74 1975574
>>1975494
Если гипотетически изъебнуться и заставить скомпилироваться твой код, то твой оператор++ не будет вызываться с переменными structname. Он будет вызываться только с указателями на structname. А так низзя. Такая операция уже определена в языке и имеет смысл сдвига указателя на конец твоего structname.

Если тебе надо инкрементить внутренности structname, то передавай его по ссылке. А лучше объявляй как член structname и ничего явно не передавай
structname& structname::operator++(); // преинкремент
structname& structname::operator++(int); // постинкремент
75 1975577
>>1975563
Тут ведь как дела обстоят. Вот допустим есть тест на коронавирус. JS/Java/Python господин будет пользоваться им без сомнений. Плюсовик залезет посмотреть чё там за тест - а он оказывается китайский и там палкой в жопе ковыряют. Доложит куда надо. ПМ скажет, что на американский рынок мы с такой медициной не пролезем, поэтому надо переписывать.
image.png706 Кб, 1152x595
76 1975682
Мдаа, девочки. Я таки в шоке.
77 1975803
>>1975682
тут совершенно точно нет ни одной девочки
78 1975806
>>1975537

>C++ даёт возможность взять enum {ABC; ABV; GDEYOZH} и перегрузить оператор на него? Но зачем?


enum class {
79 1975809
>>1975414

>сам Вилли не котируется


хуевая книжка, на форуме мамонтов (rsdn) обоссали ее и абсолютно справедливо
80 1975824
Разбираюсь, как подключать динамические библиотеки, и чот мне пригорело. Укажи путь до недера, укажи путь до дллки при компиляции, а для исполнения все равно положи дллку в одну папку с exe-шником. Что за мудак это выдумал?
81 1975829
>>1975824
Ты не знаешь как работает ОС, причем тут кресты, дурачок?
82 1975833
>>1975829
При том что я подключаю библиотеку на крестах, очевидно. И нахуй мне знать, как работает ОС, я у мамы погромист, а не одмин. Может, мне еще схемотехнику изучить?
83 1975840
>>1975833

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

84 1975845
>>1975840
Чтобы нажать кнопку смыва, не обязательно знать, как устроен унитаз, там интуитивно понятный интерфейс. А тут какое-то говно на костылях, работающее через жопу.
85 1975848
>>1975845
Иногда кстати там слишком много методов хер поёмешь че нажать, а иногда даже встречаются и без сокрытия....
86 1975851
>>1975803
Я девочка :3
87 1975922
>>1975845
Тут везде костыли, потому что разрабатывалось очень давно, с тех пор многое что поменялось, а архитектура осталась та же. Так и живём.
88 1976011
>>1975155
Бумп
89 1976017
>>1976011
Для таих целей, и не только в VS, придумали разделение кода между несколькими файлами, в идеале - один класс-один файл.
image.png313 Кб, 600x510
90 1976026
>>1975851
Знаем мы всё про девочек-программистов
91 1976028
>>1976017
Так это и есть один класс на 5клок. Ну лан, не 5, несколько файлов по 2клок. Реализации методов строк по 100-200, меньше уже не сделаешь. В любом случае бывает приходится из одного конца файла скакать в другой, чтобы раскурить что как связано, откуда куда какие данные текут.
В ВС можно конечно несколько раз файл открыть, но оно через жопу делается, и можно потерять нужный метод.
image.png465 Кб, 788x315
92 1976030
93 1976033
>>1976028
открываешь еще одно окошечко с тем же файлом и смотришь
94 1976051
>>1976028
Ну можно тогда каждый метод в отдельный файл вынести. Все равно по true-way реализация методов делается вне класса, через :: .
95 1976060
>>1976026
Меня как-то приглашали в одну контору, где все, от эйчара до тимлида, были тянки. По крайней мере те, с кем я собеседовался.
разумеется я туда не пошел
96 1976067
>>1976060
побоялся что тоже в тянку мутируешь?
97 1976077
>>1976067
Представил, какой у них там змеиный клубок, и как мне в их коде придется ковыряться.
98 1976088
>>1976077
А ещё они тебя трахать будут по очереди.
99 1976095
>>1976088
Инцел, спок.
100 1976102
>>1976088
Разве что мозги.
101 1976106
>>1976088
ты для них будешь бесполым Коленькой. Они при тебе будут Ерох, меськи и труханы обсуждать.
102 1976117
>>1976106
В ойти отделах, упакованных тнями, недоебит в воздухе витает, а все Ерохи разобраны курочками из финансов, hr и бухгалтерии.
103 1976120
>>1976117
Ох уж эти инцельские фантазии.
Вернись в /б
104 1976165
>>1976120
Ходил как-то в контору, где игрульки под мобилки делают. Там бабцов вот прям овердохуя было. Довольно смело подкатывали, хотя видели меня первый и последний раз.
А ты продолжай отрицать и рефлексировать.
105 1976190
>>1976165
И сколько из них было не страшных как атомная война?
106 1976197
>>1976165
>>1976120
>>1976117
>>1976106
>>1976088

Идите нахуй со своими бабами в тред для натуралов
107 1976234
>>1976190
Больше половины были норм. Там же всякие художницы, аниматорши, тестировщицы, комьюнити менеджеры, hr. Всем в пределах 25.
108 1976242
>>1976197
Был у нас лид-натурал. Он когда на дейли митинги приходил от него метра за два несло немытым телом (такой лайтовый аромат бездомного). Чуваку было немного за 30 и он всего пару недель ходил чистым и стриженым как раз перед увольнением.
Ньюфаг 109 1976318
Доброго дня, такая проблема, пользуюсь VS code комп маломощный. Установка С++ прошла успешно, при компиляции возникает лишь файл .exe, но мне нужен obj, как его получить?
110 1976377
>>1976318
g++ -c -o main.o main.cpp
111 1976393
>>1976377
Вангую "g++" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.
112 1976400
>>1976393
А на винде под вскод есть альтернативы мивины? Я не шарю просто.
113 1976432
>>1975851
"девочки внутри" не считаются
114 1976442
>>1976432
Ля, ну я правда девушка.
115 1976449
>>1976377
компилирует, но при попытке запустить файл пишет:

Сбой выполнения программы main.exe: Указанный исполняемый файл не является действительным приложением для этой операционной системы.строка:1 знак:1
+ .\main
+ ~~~~~~.
строка:1 знак:1
+ .\main
+ ~~~~~~
+ CategoryInfo : ResourceUnavailable: (:) [], ApplicationFailedException
+ FullyQualifiedErrorId : NativeCommandFailed
116 1976458
>>1976449
Проблему решил, убрав -с
Теперь конструкция выглядит так: " g++ -o <output_filename> <filename> ", все работает.
117 1976572
Друзья, подскажите как определить клавишу "ПРОБЕЛ" в conio.h для придания ей действия
118 1976574
Кт
image.png394 Кб, 367x512
119 1976578
Кто-нибудь имел дело с книжками Столярова "азы программирования"? По отзывам слышал, что помогает сохранить очень много времени, но смущает паскаль в начале и линуксо-направленность. Стоит ли тратить время на эти 2000+ страниц?
120 1976580
>>1976578

>язык паскаль


Ты толстишь, чел.
121 1976584
>>1976580
Что не так? Турбо-паскаль если конкретнее. Просто зачем мне тратить время на мертвый язык?
122 1976590
>>1976584

>мертвый язык


Именно. Сейчас даже в школах питон учат. Ты для себя определи чем хочешь заниматься и исходи из этого. Для т.н. os unix - гуглишь lpic сколько-то там.
123 1976594
>>1976584
Паскаль мутировал в C# и TypeScript.
124 1976595
>>1976590
Так паскаль там только в начале, потом будет ассемблер, си и в конце плюсы. Можно конечно идти по пути гугла и тому подобному, но в этой книге вроде как всё настолько хорошо написано что позволяет сэкономить время на обучении.
125 1976597
>>1976594
Зачем мне эти поделки майкрософта...
126 1976601
>>1976595
Если реально хочешь сэкономить время - бери да учи чистый С. Самая адекватная база программирования на нём.
127 1976604
>>1976601
Жирно даже я понял
image.png829 Кб, 1200x500
128 1976605
>>1976604
Твоё дело.
129 1976607
>>1976584
а еще у Столярова ассемблер есть
Паскаль не мертвый, это учебный язык нахуй, и он охуенен в этой роли. То что сейчас в школах учат питон очень заметно по современному софту, как сраный текстовый редактор или сайт в браузере отжирает половину ресурсов.
>>1976578
А книжки Столярова годнота, на самом деле. По крайней мере для тех, кто хочет угореть по хардкору, а не сайты на вордпрессе клепать под смузи с кейками. Причем они разделены по уровням, так что ты можешь начать откуда сочтешь нужным.
130 1976612
Двачую за Столярова, годнота.
131 1976613
P.S. Паскаль там только в начале и не глубоко, как подготовка к С. Советую почитать вступление и понять для себя, нужна тебе эта книга или нет..
132 1976614
>>1976572
if (getch() == ' ') { ... }
Но лучше не юзай древние мёртвые либы.
133 1976624
>>1976614
понять бы о чем ты XD
я не прогер, так, от нечего делать змейки делаю, да танчики пытаюсь понять как сделать
спасибо за ответ
134 1976636
>>1976624
' ' - это типо пробел.
135 1976640
>>1976636
да не, я понял, что это пробел, я не понимаю почему эта библиотека(?) мертва
слишком поверхностные знания
136 1976645
>>1976640
Она ещё со времён DOS и оставлена для совместимости по приколу. Для своих хеллоуворлдов юзать можно, но для чего-то серьёзнее лучше взять что-то другое.
debugger.jpg378 Кб, 1920x1200
137 1976782
Плюсаны, подскажите как включить дебаггер в code::blocks ?
138 1976791
>>1976645

>для чего-то серьёзнее


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

>лучше взять что-то другое


А что конкретно?

В свое время искал альтернативы, лучше getch() для ввода ничего нашлось. На винде либо винапи, либо PDCurses. Все остальное слишком тяжеловесно и нелепо для консольной игрушки. Не КуТэ же наворачивать ради этого.

Винапи в части консольного ввода более многословный и дает какой-то невнятный фидбек (отклик в смысле), что важно для игры.
139 1976793
>>1976782
Ставишь MS Visual Studio Enterprise и у тебя автоматом включается самый лучший в мире дебагер.
Ну или ебись с поделками, типа code::blocks и иже с ним. А лучше gdb в зубы и отлаживай.
Ха ха.
140 1976800
>>1976782
Покажи вкладку Fortran. Чёт прям удивлён, что такое в 2020++ ещё осталось.
fortran.jpg75 Кб, 884x342
141 1976843
>>1976793

>Ставишь MS Visual Studio Enterprise


про него тоже думал но на диске свободно только 4 ГБ. у меня сверхдешёвый планшет.
>>1976800
на пике вкладка фортран
142 1976953
>>1976800
Сейчас фортран все еще применяется в высокопроизводительных вычислениях, хуле бы вкладке не быть.
image.png501 Кб, 634x476
144 1977019
145 1977035
>>1976953
Некоторое время назад мы активно весь этот фортран выкидывали из системы под MPP. Математика там была действительно хороша, но что толку, если таких программистов нужно выковыривать из НИИ в каком-нибудь зажопинске.
146 1977051
Всем самп. Только вкатываюсь к вам. Подскажите как лучше всего отлавливать утечки и UB если я работаю в студии?
147 1977057
>>1977051

>Подскажите как лучше всего отлавливать утечки и UB если я работаю в студии?



Enable GC and warnings as erros
148 1977095
>>1977051
пиши на расте
149 1977097
>>1977057
Спс, гляну.
>>1977095
Там же тоже есть утечки и ub.
sage 150 1977098
>>1977095
Пиши на пошёл нахуй отсюда
151 1977100
>>1977051
пиши на c#
152 1977102
>>1977100
Это не интересно.
153 1977103
>>1977102
Пиши на asm
154 1977108
>>1977103
Потом почитаю за него.
155 1977110
>>1977108
Пиши стихи
156 1977111
>>1977110
Пиши кот.
157 1977112
>>1977110
Я пишу рассказы и роман. Это пойдёт?
158 1977118
>>1977051
Пиши на Go
159 1977133
>>1977097

> Там же тоже есть утечки и ub.


Приведи пример
160 1977135
>>1977133
unsafe {
// реализация actix, чтобы быть в топе бенчмарков
}
unsafe-rust-rust-unsafe-rust-lies-about-guaranteed-memory-s[...].png136 Кб, 500x702
161 1977136
162 1977137
>>1975833

>как работает ОС


>погромист, а не одмин


Пчел, это троллинг тупостью или ты реально довен? Видать век петушиных веб-технологий заставил всех зумеров деградировать до уровня овощей. Пиздец, я просто в ахуе, мне нечего больше сказать.
163 1977140
>>1977136
Ты в курсе, что писать лоу лвл системный софт на расте без ансейфа невозможно? Или ты растошиз в розовых очках?
164 1977191
>>1977137
откуда подпрограмме знать чо там делает программа основная и какая там сраная фс? есть только инструкции для вызова апи типа открыть файл и т.д.
165 1977208
>>1977112
Лучше бы писал коб
166 1977233
>>1977208
Я и пишу. Мне надо чтобы он ещё и работал более-менее нормально.
167 1977312
Поясните, нормально ли вкатываться в линукс с арч подобного Manjaro ? Или лучше взять debian и его потомков?
168 1977324
>>1977312
wsl за глаза хватит для вката
169 1977332
>>1977324
Я линукс на второй комп устанавливать буду
170 1977344
>>1977312
Бери debian. Он самый ходовой.
>>1977332
Лучше на виртуалку ставь.
171 1977348
>>1977312
Я например с генты вкатился, зависимость есть.
172 1977362
>>1976782
>>1976843
используй для отладки windbg, он охуенный
173 1977364
>>1977362
еще командную строку посоветуй
174 1977396
Всем привет. Для тех кто меня не знает, предствалюсь: я Владимир, программист с 20-летним стажем. Если вам надоели ошибки, возникающие из-за работы с памятью, предлагаю перекатываться в C#. Там вы получите преимущества языков с виртуальной машиной и GC, а также производительность, почти сравнимую с плюсами.
вот этот текст копируй в их тред
175 1977397
>>1977312

>Manjaro


Багнутое, кривое говно.
176 1977399
>>1977396
а как быть с компиляцией в натив?
177 1977415
>>1976999
спасибо
178 1977421
>>1977399
JIT с этим легко справляется за тебя.
179 1977423
>>1977421
байт код - это опенсурс
image.png16 Кб, 301x412
180 1977466
Почему форматировать и извлечь так близко...
181 1977477
>>1977466
Так написано в стандарте с++98, если их разнести перестанут работать старые программы.
182 1977478
>>1977312
Для легкого вката берут убунту. Если хочешь полный опенсорс то арч.
1532825909988.webm615 Кб, webm,
900x506, 0:05
183 1977540
Как рассчитать амплитуду, фазовый сдвиг и частоту сигнала, представляющего собой массив выборок? Слышал, что можно с помощью фурье-преобразования, но не знаю как. Максимум получалось с помощью фурье гармонические составляющие найти.
185 1977585
>>1977579
Кхем, что, опять сканировать код?
186 1977594
>>1977540
А зачем оно вообще в плюсах?
187 1977687
Нужно освоить стандарт 11-го и 17-го годов. Если кратко, что самое основное и самое важное привнесли в эти стандарты?
188 1977695
>>1977687
В 11 очень много всего. В 17 из полезного filesystem, string_view и распаковка структур. Остальное всё хуйня или доработки и упрощения того, что и так было.
Для 98% задач C++11 вполне достаточно.
190 1978017
>>1977594
А где?
191 1978027
>>1977687
move semantics? (11)

уже 20-й подползает, с корутинами
192 1978054
Подскажите, где-то стандартом описано, можно ли сразу уничтожать семафор после поста?

<thread1>
sem_wait(&sem);
....

<thread2>
sem_post(&sem);
sem_destroy(&sem);
...
193 1978057
>>1978027
В проде не все на С++14 перешли, не говоря о С++17. С++20 в лучшем случае к 2030 году войдет в "оборот"
194 1978063
195 1978068
>>1978054
хз где описано, но по здравому смыслу - нельзя в принципе с ним что-то делать внутри конкурирующих потоков.
196 1978161
Чем обусловлена невозможность присваивания элементом массива после его объявления?
int a[10];
a = { 1, 2, 3, 4... };
Аналогично для векторов и т.д.
Откуда вообще тянется запрет на такое присваивание?
Причем если обернуть массив в структуру, то такое присваивание будет работать, то есть технически нет никаких ограничений на работу такого присваивание. Зачем создавать их искусственно?
197 1978162
>>1978161

>элементом


элементАм
быстрофикс
198 1978180
>>1978161
возможно потому, что конструкция, { 1, 2, 3, 4... } - это инициализатор массива, а у тебя он уже инициализирован ранее.
199 1978181
>>1978161
Потому что это синтаксический сахар, вот так вот сделали, по другому значит не сильно нужно. Нахуя тебе в середине кода реинициализировать целиком? Наверняка ты делаешь какую-то дичь, если у тебя возникла такая потребность.
200 1978186
>>1978180
Ну, начиная с 11-го стандарта это уже uniform-инициализация в контексте второй строки.
>>1978181
Например, буфер сделал большой, в который надо иногда перезаписывать данные
201 1978197
>>1978186
Перезапиши в цикле, в чем проблема? Сделай отдельный массив с дефолтными значениями, если тебе нужно забивать именно конкретными ненулевыми значениями.
202 1978203
>>1978161
Массивы не поддерживают копирование еще со времен C.
В сях все сделано таким образом, чтобы оно наиболее прямо ложилось на ассемблерные инструкции. Иногда C называют "кроссплатформенный ассемблер".

>невозможность


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

>a = { 1, 2, 3, 4... };


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

>Нужно освоить стандарт 11-го и 17-го годов. Если кратко, что самое основное и самое важное привнесли в эти стандарты?


метапрограммирование стало возможным делать в итеративном стиле, а не трюками в функциональном стиле как раньше ((
по итогу стало удобней, но менее интересней :P
еще добавили всякого синтаксического сахарку в виде вывода типов, лямбд, using и прочаа.. по итогу стало многое писать тупо короче и еще можно "по месту" юзать..
r-value ссылки и move-семантика с этой точки зрения одно из важнейших изменений языка, тк действительно добавляют новые семантические модели в язык :P
204 1978422
Кто в qt разбирается, я так понял там можно пилить гуй на qml и на c++? В чем прикол такого разделения я чет въехать не могу, че они там изобрели такое, че за qml коляска?
205 1978431
>>1978422
Раньше можно было только на C++, QML появился позже, чтобы вместо ебли с виджетами на плюсах клепать гуй примерно так, как это делают вебмакаки для браузеров, а на плюсах писать только логику.
206 1978437
>>1978431
То есть гуи на qml это уже стандарт для qt? Приложухи не тормознутые получаются? Или qml так, для чего-то простого?
207 1978455
>>1978431
ого куда технологии дошли. "Формочки в html"
208 1978466
>>1978437
QML - это сейчас норма, но нельзя сказать, что прям стандарт. Конечно, он более прожорливый, чем обычные плюсы, и тут предполагается выбор между производительностью приложухи и скоростью её разработки.
>>1978455
Да куда там, жопаскриптеры вон высрали Electron, в котором каждое такое приложение запускает по хромиуму и работает почти как обычная веб-параша. У них и логика на жопаскрипте.
209 1978474
>>1978422
Это как ксамл у шарповодов, только не такой всратый.
У тебя грубо говоря приложуха разделяется на фронт на кюмл с жс и бек на крестах. Довольно удобно на самом деле.
210 1978509
>>1978466

>У них и логика на жопаскрипте.


В кюмл императивная часть тоже на жопаскрипте..
13404077984605.jpg22 Кб, 555x408
211 1978511
>>1978161
Потому что массив--это константный указатель. И это было так, ещё когда не было const.
212 1978523
>>1978422
О, братиш, я тоже только осваиваю qt бомбит с кривости среды после б-жественной студии
qml это как xml, только альтернативно одаренный, как и весь qt. На самом деле стандарт интерфейсов сегодня, по такому же принципу строятся гуи в ведроиде, в шарпе(WPF) и даже в браузере, чтобы жавамакакам не нужно было излишне нагружать мозг и переучиваться. Хотя это в самом деле удобно, по сути просто скрипт, описывающий элементы интерфейса, по которому компилятор потом строит рабочие объекты.
213 1978528
>>1978523

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


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

214 1978554
>>1978511
И че? Мы же не даем ссылку на другую последовательность интов, мы меняем значения по ссылке с помощью присваивания
215 1978565
>>1978161

>Аналогично для векторов и т.д.


Нет, только для легаси массивов.
216 1978567
>>1978554
так меняй

int[0] = 1;
int[1] = 2; ....

в чем проблема?
217 1978569
>>1978554
Нет такой операции присваивания. Когда ты пишешь а = {...} то слева у тебя указатель, а справа массив. Немного не одно и то же.
218 1978570
>>1978569

>это не присваивание, а инициализация значением.

219 1978571
Есть какая то либа помимо https://www.libssh2.org для работы с ssh2? Очень долго настраивать. Там в каких то примерах вообще функции strcasecmp(), которые вообще не входят в библиотеку. Куча ошибок, даже если все скомпилируется. У меня нет желания сидеть и кучу времени тратить на возню с этой либой, но ssh мне нужен в программе. Хотя бы просто чтобы текст передавать между клиентами
220 1978573
>>1978511
Массив - это не указатель, а отдельный тип.
В большинстве контекстов он неявно преобразуется в указатель, но по "факту рождения" указателем не является.
221 1978576
>>1978571
Мне по правде говоря ваще похуй как оно там внутри работает. Мне нужно чтобы я мог ключи заранее создать, потом файл в exe скинуть на другую машину и безопасно подключиться.
222 1978585
>>1978570
Инициализация значением - это int a[n]={ ...},
а все остальное это присваивание. А чтобы научить компилятор разбираться в сортах присваивания, придется полностью переделать компилятор, и на выходе получится шарп/джава. И все только потому что какому-то ленивому хую на дваче лень прописать цикл.
223 1978586
>>1978571
OpenSSL же.
224 1978589
>>1978585
так у тебя после знака = идет та же инициализация.
225 1978593
>>1978585
Хую зато не лениво ебаться с массивами вместо использования std:: array
226 1978594
Накидайте плез ресурсов для чтения. Суть в том, что нужно написать программу, для обмена сообщениями между компьютерами, при этом реальный ip одного из компьютеров должен быть скрыт. Я так понимаю нужно поднять тор сервер и уже стучаться к домену. Но я в сетях очень не силен. Мне нужно максимально просто реализовать обмен текстовыми и файловыми данными между tor сервером и обычной машиной. Что читать по этому поводу?
227 1978595
>>1978589
Только в твоем воображении.
228 1978631
>>1978594
УК РФ
229 1978646
>>1978528
Что незаконного? Или у нас тор запретили?
230 1978672
За сколько времени вы вкатились и что делали по пути?
231 1978677
>>1978511

>массив--это константный указатель


нет
массив это массив
тип данных
чччч.jpg99 Кб, 1280x720
232 1978679
>>1978161

>невозможность присваивания элементом массива

233 1978681
>>1978672
У меня лет 15 ушло. На переход с Си.
Сначала классами обмазывался. Затем и STL тоже.
Но вот сложный шаблон без справочника до сих пор не нарисую. Да и не нужно это в обычной практике. Классы и stl покрывают 90% потребностей.
234 1978748
>>1978595
там под капотом в конструкции { ... } вызывается инициализатор:

#include <iostream>

using namespace std;

class array{
public:
array(int i, ...){
cout << "Привет лох. Я вызван, видишь?" << endl;
}
};

int main()
{
array a = {1,1,1,1};
a = {1,1,1,1};
return 0;
}
235 1978759
>>1978595
https://ideone.com/RxagAl
поэтому не пиши хуйни тут.
236 1978764
>>1978748

>class array


Ой, иди нахуй.
237 1978770
>>1978764
что сдулся, лох?
238 1978771
>>1978770
Еблан, речь не о классе из std.
239 1978776
>>1978771
еблан, int[] тот же класс под капотом.
240 1978780
>>1978776
Нет, под капотом это олдскульлый сишный массив, в котором переменная это физический указатель на нулевой элемент, и в котором прокатывают такие конструкции как b = *(a+i)
241 1978785
>>1978780
ты почитай, что тебе компилятор напишет, еблан - https://ideone.com/ps568P

prog.cpp:8:15: error: assigning to an array from an initializer list
242 1978791
>>1978785

>assigning to an array from an initializer list


>присвоение массиву списка инициализации.


Ты сам-то прочитал? Все как я и написал >>1978585
И ни слова про std, еблан.
243 1978793
>>1978791
ты в присваивание пихаешь инициализатор, еблан
244 1978794
>>1978793
Но это ты пихаешь, лол.
245 1978804
>>1978573
>>1978677
Вы ебанутые? Сырые сишные массивы никогда не были отдельными типами, это синтаксический сахар над указателем на указанный тип данных (int, char, struct Huy и т.п.).
int arr[5]; - arr это указатель на int и никак иначе. А конструкции типа arr[1] = 1337 это ничто иное нежели ⚹(arr + 1) = 1337. То бишь можно свободно юзать ту же арифметику указателей для данного массива, не используя индексирование через оператор [] вообще.
246 1978821
>>1978804
Ну и структура данных - это синтаксический сахар над парой указателей - на начало структуры и сдвиг элемента.
Не понятно о чем вы вообще спорите.
кро
247 1978830
>>1978821
С точки зрения языка С (и С++ тоже) сырой массив - это ни разу не отдельный тип, в этом весь смысл, а тут хуйню какую-то несут.
248 1978831
>>1978804
ну, строго говоря [] у тебя еще и память на стеке выделяет, чего простым * не добьешься.

но да, это указатель, конечно
Без имени.png10 Кб, 423x89
249 1978959
на пике не пойму чё доебались до меня? Учил с++ по Прате он так всегда делает в примерах
250 1978963
>>1978959
На пике же все написано.
251 1978966
>>1978963
всё пашет же, ворнингов нет. Может это относится к 98 стандарту?
252 1978980
>>1978966
Variable-length array относится к 99 стандарту С, в крестах их нет, то что у тебя компилируется даже без ворнингов - вина компилятора.
253 1978982
>>1978966
Это нестандартное расширение компилятооа, там и вложеные фунции где-то были.
254 1978999
Встречал ли ты, анон, такие репозитории, глядя на которые, восхищаешься, как там всё хорошо, и одновременно сокрушаешься от того, как в твоём пете/рабочем проекте всё хуёво по сравнению с увиденным? Чтобы свежий стандарт языка с современными фичами, чистый код, продуманная архитектура, покрытие тестами, вылизанный билд конфиг и т. д. и т. п.. Делись ссылкой!
255 1979005
>>1978830
Потому что это отдельный тип.
https://godbolt.org/z/8xaqzT9sM
256 1979006
>>1978573
Этот правильно говорит.
257 1979008
>>1978830
Да и с точки зрения C это тоже отдельный тип (array type поищи)
https://files.lhmouse.com/standards/ISO C N2176.pdf
258 1979029
>>1978830
Если бы это было так, сырой массив можно было бы вернуть из функции как и указатель.
259 1979034
>>1978999
Найти репозиторий, где лучше, чем в моем рабочем проекте, не слишком тяжело.
260 1979139
Что дешевле - писать тонну геттеров и вызывать их или обращаться к полям напрямую через this?
261 1979165
>>1979139
Если у тебя джава-стайл геттеры из единственного return, то компилятор заинлайнит, и разницы не будет.
262 1979181
>>1979165

>джава-стайл геттеры из единственного return


Будто что-то плохое. Как по-другому vector::size() сделать, например?
263 1979189
>>1979165
А что ещё должно быть в геттере кроме единственного return`a?
264 1979197
>>1979189
std::unique_lock<std::mutex> potokobezopasnost_aktivirovana;
265 1979207
>>1978804
Синтаксический сахар - это оператор индексирования.
266 1979211
>>1979139

>напрямую через this?


Обычно тебе геттеры внутри класса не нужны, да и this редко.
268 1979215
>>1979197
Да какие блять мютексы, тут бы с ооп разобраться.
>>1979211

>Обычно тебе геттеры внутри класса не нужны


Чому? И с this кошернее.
269 1979219
>>1979215

>тут бы с ооп разобраться.


А чего с ним разбираться?
270 1979220
>>1979215
С мьютексом пример того, когда геттер может быть сложнее простого реторна.
271 1979222
>>1979215

>Чому


Потому что ты и так имеешь доступ к данным, если конечно они не приватные в базовом классе, тогда да - через геттеры базового.
272 1979225
>>1979219
Ну в частности правильно ли я сделал ебанув 5 геттеров для своего класса.
>>1979220
Ладно, как дорасту до них разберусь.
>>1979222

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


Во, у меня приватное. Значит надо геттер.
273 1979227
А еще геттер может быть конст. А через this нельзя запретить изменение возвращаемого. Ну только если сама переменная не конст, но это другое.
274 1979260
Есть один базовый класс с двумя protected переменными и один класс наследуемый от этого базового класса как protected. Наследуемый класс должен иметь 6 тех самых protected переменных от своего базового класса, то есть делать что-то вроде:
Derived::Derived(int value1, ... int value6)
: Base(value1, value2), ... Base(value5, value6)
Вопрос, как получить к этому всему теперь доступ? Геттеры и сеттеры есть в базовом классе, но теперь в наследуемом классе нужны геттеры и сеттеры для назначенных выше трёх базовых классов.
Как это решить и понять? Либо я неправильно понял ООП, либо делаю совсем не то. Примерно накидал как это выглядит вне реального проекта: https://pastebin.com/zTMGb17m
275 1979262
>>1979260
Не юзать protected
276 1979267
>>1979262
Здесь вот суть даже не в модификаторах, он здесь вообще не важен сам по себе, я его поставил с мыслью: "А что если в наследуемом классе писать private: Base kk[3];, а потом в конструкторе просто инициализировать этот массив инстансов и тогда уже получать к каждому из них доступ который даёт модификатор protected". Но тогда получается я делаю хуйню, потому что зачем наследоваться, если это уже фактически другой класс и я так же могу геттеры использовать или же наследоваться в таком случае есть смысл?
277 1979279
Имеем class A { int b; };
При создании экземпляра этого класса, поле b будет инициализировано нулем или будет иметь значение, которое хранится в выделенном куске памяти?
В прошлом треде спрашивал подобный вопрос, но там я приводил пример с классом, который имеет явный пустой конструктор по умолчанию без параметров. Понятное дело, что тут итак будет неявно создан такой же конструктор, но на всякий случай лучше переспросить.
278 1979280
>>1979279
Будет инициализировано тем, что будет в памяти.
279 1979282
>>1979212
Схуяли у тебя восьмибайтный указатель, а инты занимают по 4 байта? Обычно на x64 машине инт по 8 байт ведь тоже, чтобы соответствовать машинному слову
280 1979283
>>1979280
В прошлом треде анон отвечал со ссылками на стандарт, что с пустым конструктором по умолчанию, созданным вручную, поле is default-initialized, то есть нулем проинициализирует. А почему ситуация меняется, если используется неявный сгенеренный конструктор по умолчанию?
281 1979286
>>1979283
Я так понял, нулями заполняются только глобальные и статические переменные без явной инициализации. https://stackoverflow.com/questions/34389849/default-initialization-of-class-data-members-in-c11
282 1979302
>>1979286
В первом же ответе по ссылке написано If no initializer is provided, the rules of default initialization apply.
Что имеется в виду под initializer? Кто выступает инициализатором?
283 1979309
>>1979302
https://en.cppreference.com/w/cpp/language/initialization
Вот, я сам нагуглил. Там есть абзац о том, что такое initializer.

В общем, как я понял. Если мы создаем конструктор по умолчанию вручную, либо не создаем и компилятор его генерит за нас, в любом случае, если мы явно не предоставили initializer для переменной (не важно, поле это в классе или статическая/глобальная переменная), то эта переменная будет default-initialized. А по правилам default-initialization, поля класса инициализируются мусором из куска памяти, который они получили. Глобальные и статические переменные инициализируются нулями, так как global data memory весь зануляется при старте программы.
Кресты - это когда ты разбираешься в инициализации переменной целый час, при этом и то получаешь лишь общее понимание без деталей
284 1979310
>>1979302
присвоение значения
a = 0
a(0)
a{}
285 1979311
>>1979309
ну почему общее, ты вроде все правильно написал
image.png1,1 Мб, 1097x776
286 1979316
>>1975363
Ну это из этой серии
287 1979318
>>1979282
Хрен знает, это Online GDB.
image.png25 Кб, 620x228
288 1979321
>>1979311
Да, конкретно по этой части, вроде, все правильно, но там еще есть пикрил. Я до этого момента думал, что выделяют всего три типа инициализации: копирующая, прямая и uniform (начиная с C++11). А тут обнаруживаю, что еще есть value, list, reference и aggregate инициализации. Я до сих пор не могу сказать разницу (под капотом, если она вообще есть) между int a = 5; и int a(5); А теперь еще и как понять, что происходит в момент char str[] { 'h', 'i' } и char str[] = { 'h', 'i' } ? Короче, взрыв башки
'
289 1979326
>>1979282
На x64 и aarch64 инт всегда был 4 байта, ты йобнулся немножко.
290 1979327
>>1979326
Всю жизнь думал, что размер int'а соответствует размерности регистра процессора. На 16 бит int двухбайтный же. На 32 - четырех. А поч на 64 бит он тоже 4 байта?
291 1979335
>>1979327
Тут скорее всего так:
byte (1) <= short(2) <= int(4) <= long(8) <= long long(8)
Если int будет равен 8, то для 4 или 2 байт просто не будет подходящего типа.
292 1979337
>>1979225
Зависит от контекста задачи, но вообще, геттерами код не испортишь.
293 1979338
>>1979321
Ну это все синтаксический сахар, как хочешь так и пиши, суть одна - в переменный объект записываются нужные тебе значения.
294 1979339
Нашёл охуенный ресурс, может кому-то тоже интересно будет: https://hackingcpp.com/
295 1979352
>>1979327
В данном случае инт сделали поменьше для экономии памяти, благо скорость от этого не страдает. По той же логике виндудятники и лонг сделали 4.
296 1979354
>>1979352

>По той же логике виндудятники и лонг сделали 4.

image2.png29 Кб, 842x393
297 1979355
>>1979327
Размеры соответствуют стандартам целевой системы и флагам компилятора.
298 1979383
>>1979335
бля, юзайте уже int8_t, int32_t, uint64_t и им подобные и будет щасте
Без названия.png11 Кб, 225x225
299 1979404
>>1979383

>int32_t, uint64_t


Их нет в стандарте, это расширение компилятора XDDD
300 1979704
>>1979354
Ну кстати да. Может быть, по соображениям портируемости виндогуана. Но сделали, и кмк это хуже, чем l64.
301 1979713
moc Qt это костыль?
302 1979715
>>1979713
Да, но до C++38 ничего не поделать.
303 1979717
>>1979715
Verdigris считает, что поделать. А qt - кусок дерьма. Если тебе нужен гуй - пиши на шарпе, не еби голову
304 1979725
>>1979404
Откуда вы лезете, блять? Это тред студентов, у которых в универе все ещё деды C++ насаждают, что ли? Один тут писал, что массивы - это указатели, теперь, оказывается, целых фиксированной ширины в стандарте нет.
https://en.cppreference.com/w/cpp/header/cstdint
305 1979728
>>1979321

>qt - кусок дерьма


Почему?
306 1979733
>>1979725

>массивы - это указатели


Ну как бы ачеавсмысле?
307 1979739
>>1979717

>А qt - кусок дерьма


О, видно не я один так думаю.
308 1979746
>>1979733
Массив на стэке - это массив на стэке, а не указатель
309 1979754
>>1978804

>Сырые сишные массивы никогда не были отдельными типами, это синтаксический сахар над указателем на указанный тип данных (int, char, struct Huy и т.п.).


нет, это неверно для си и с++
массив это массив, отдельный тип данный
310 1979758
>>1979725
У тебя проблемы с английским? Там написано optional, стандарт железно даёт типы с гарантируемым минимальным размером, а не фиксированным.
311 1979761
>>1979717

>А qt - кусок дерьма. Если тебе нужен гуй - пиши на шарпе, не еби голову


Сам то писал? Впф ещё больший кусок дерьма.
312 1979776
Каждый раз захожу в тред и стыдно становится. Сидят несколько дурачков, рассказывают что массивы и указатели это одно и то же, напротив них сидит ещё один дурачек, который рассказывает что это не так, но не может внятно объяснить почему, проносит хуйню про структуры данных, видимо на лекции вчера услышал от препода и решил выебнуться итт. Поясняю, упрощенно это одно и то же, но под капотом вещи разные, кому интересно, читайте тут: https://eli.thegreenplace.net/2009/10/21/are-pointers-and-arrays-equivalent-in-c
313 1979781
>>1979776
И тут приходит аутист, который нихуя не понял смысл написанного, но очень хочет всем рассказать, какие они дураки.
download.jpg37 Кб, 680x427
314 1979785
>>1973041 (OP)
Немного изотерического программирвания.
Короче бумер девственник решил сканировать свой мозг и переселиться в тело зумера чтобы сбросить листву. Думер и Зумер это внутренние объекты Бумера. Каким образом он может передать два числа в Зумера и инициализировать его крохотный мозг?
315 1979790
>>1979785
Да и еще. Зумер это внутренний класс Думера. А тот в свою очередь Бумера.
быстрофикс
316 1979804
>>1975361
Пытаюсь перекатиться с шарпа на кресты.
Чувство, что из новой тачки с АКПП, климат-контролем и ассистентом парковки пересел на отрытый в сарае на даче дедушкин драндулет.
317 1979808
>>1979804
Приведи пример или пиздабол
318 1979809
>>1979776
Я не тот, что про структуры писал. В C++ тривиально показать, почему массивы и указатели - это не одно и тоже, даже без language lawyering'a
319 1979813
>>1979758
optional - это не значит, что это расширение компилятора, это значит, что это часть стандарта, которую необязательно поддерживать, чтобы считаться имплементацией с++
320 1979815
>>1979813
По факту все (оба два, ага) компиляторы ее поддерживают
321 1979819
>>1979804
Скорее в гоночный болид, скрещенный с большегрузным грузовиком и танком в одном флаконе. Они просто для разных задач.
322 1979822
>>1979819

>гоночный болид


В который все, кроме движка, надо покупать отдельно.
323 1979825
>>1979776
Охуенное одно и то же. Передай тогда сюда указатель:
void hui(int (&zhopa)[3]) {}
324 1979827
>>1979825
Концептуально а не хуй и жопа
325 1979833
>>1979827
Концептуально как раз это абсолютно разные вещи. То, что в плюсах и си массив неявно преобразуется в указатель на первый элемент в большинстве контекстов, не дает им никакой концептуальной общности. Массив - это объекты, лежащие друг за другом, а указатель - ну это, бля, указатель.
326 1979848
>>1979822
Если ты про std, то в шарпе без подключения библиотек ты тоже недалеко уедешь.
327 1979850
>>1979833
Концептуально разные, а по сути одно и то же. Ты еще модель ООП вспомни. Речь о том, что по сути.
328 1979874
>>1979833
Я тоже подумал сначала что они разные потому что бля, поинтер содержит только адрес а первый элемент массива еще и значение. Но родство у них есть. Просто это руссошвайн с последней стадией деменции, шизы и рака мозга придумал клийбейтную идею для статейки. Ненависть.
329 1979876
>>1979804
ахаха бля, жиза. Но в С 17 там более менее уже развился, но до шарпа еще далеко.
330 1979882
>>1979874

>а первый элемент массива еще и значение


Хуею с даунов.
a[0] - значение.
a - указатель.
Строго говоря, ты можешь создать указатель
int* p = new int();
и провернуть такую хуйню:
p[10] = 1488;
Если не вылезешь за пределы выделенной памяти, то даже не заметишь, что тут что-то не так.
331 1979885
>>1979822
зато можно собрать то, что тебе требуется) Конечно фреймворк бы не помешал, как в NET, где все необходимое есть, но имеем что имеем.
332 1979888
Дочитал тут Страуструпа с ravesli. Начал Мейерса. И как же сука сложно. Я думал что уже более мене менее знаю плюсы а тут без бутылки не разобраться. И вообще насколько все эти охуенные советы актуальны в 2к21?
333 1979889
>>1979882
квадратные скобки для доступа к блоку памяти это просто сахарок, безбожное ты скотоублюдище.
квадратные скобки при объявлении массива это другое.
p[10] это ты просто сдвинул указатель на 10 позиций.
понял?
334 1979891
>>1979888
Успокойся, так как Мейерс никто не пишет. А кто пишет, тот дурачок, не заботящийся о читаемости и поддерживаемости своих высеров
335 1979893
>>1979891
А почему он тогда в факе и подписан чуть ли как не мастхев? И что заместо него в таком случае читать? Про stl`ку или ...?
336 1979894
>>1979882

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



>1488



Как ты в пойтер запишешь значение? Кроме адреса.
337 1979895
>>1979893
про стл, да
itsanother.jpg97 Кб, 1280x720
338 1979897
>>1979889

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


Да-да, это другое. Компилятору только рассказать не забудь.
>>1979894
Квадратные скобки это операция разыменования указателя, блеать. Поэтому p[10] это запись в ячейку памяти (p+10sizeof(int)). Это именно то, как работает сишный "массив".
спасибо, что поднимаете мою самооценку
339 1979900
>>1979897

>(p+10sizeof(int))


Ебаная макаба сожрала звездочки.
звездочка(p+10 умножить sizeof(int))
download.jpg12 Кб, 300x128
340 1979901
>>1979897
Ну ок я разобрался. Теперь бы еще разобраться как в точности scanf работает. Или лучше getline. Хочу например считать csv файл. В файле эксель он в несколько строк (как это влияет не знаю). cin.getline(x, n, ','); написал но почему то крашится в конце файла.
341 1979903
>>1979897
Я че дебил с компилятором разговаривать? Выделение памяти под несколько последовательных блоков памяти и как ты сам написал операция разыменования указателя. Чуешь разницу?
342 1979904
>>1973041 (OP)
Короче массив это последовательность указателей лежащих (последовательно) в памяти.
343 1979905
>>1979904
Нет, указатель это просто контейнер с адресом на блок памяти какого-то типа. Массив это последовательность блоков памяти какого-то типа.
344 1979907
И это C++ тред? Что за собрание абитуриентов?
345 1979909
>>1979903

>Выделение памяти под несколько последовательных блоков памяти


Наконец-то ты понял, чем отличается массив от указателя. Только выделением памяти при инициализации.
346 1979911
>>1979907
Слыш
Старшой
Расскажи как мне переменной внутреннего объекта второй степени присвоить значение.
347 1979912
>>1979911
Берешь и присваиваешь. Че как маленький?
348 1979913
>>1979912
Так у меня нет доступа через голову серединного объекта. Только если функцию в функции вызывать чтобы пробить инкапсуляцию. Я по-умному хочу.
349 1979915
>>1979909
Во-первых ты не прав, во-вторых я вообще на другое отвечал, на разницу между доступом к памяти с использованием квадратных скобок и объявлением массива.
350 1979916
Вы сереьзно не можете в разницу между массивом и указателем или это траленк?
С++ тред 2021. Итоги.
351 1979918
>>1979915

>Во-первых ты не прав


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

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


Ну то есть опять, массив отличается от указателя только инициализацией.
>>1979916
Речь не о разнице между абстрактными понятиями, а о фактической разнице в конкретно взятом языке.
352 1979919
>>1979725
Кабуто это что-то необычное для мира с++.

Вон Тимур Домлер признавался, что в течение нескольких лет полагал, что все инициалируется по умолчанию. И смело хуярил продакшен.

>Это тред студентов, у которых в универе все ещё деды C++ насаждают, что ли?


Это тред непознаваемого языка. Пора бы уж привыкнуть.
353 1979920
>>1979916
Это БАЗА. Которой нет. Где её взять я хз. Читал только Липмана урывками а так учился на видео потных индусов долбоебов.
354 1979922
>>1979895
Ок. А что после него? Так, чтобы у меня общая картина была.
355 1979928
>>1979920
Страуструп.
Столяров.
Мейерс.
На ютубчике есть годные лекции, например Хирьянов очень тщательно разжевывает достаточно фундаментальные вещи.
356 1979931
>>1979918

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


Да, я выше написал разницу, разуй глаза ебать.

> Ну то есть опять, массив отличается от указателя только инициализацией.


Ты тупой или прикалываешься? Ты разницу между ДОСТУПОМ и ИНИЦИАЛИЗАЦИЕЙ понимаешь? Понимаешь, что это разная семантика у скобок в разных случаях, на хуй ты переводишь тему на сравнение инициализации массива и инициализации указателя? НУ БЛЯ ЕПТА МАССИВ ОТЛИЧАЕТСЯ ТОЛЬКО ИНИЦИАЛИЗАЦИЕЙ ГЫГЫГЫГЫ Давай пукни еще что-нибудь не по теме, чепуха.
357 1979933
>>1979912
БЛЯТЬ ТОЧНО. СПАСИБО СУКА
358 1979934
>>1979933
ну вот. Нахуй спрашивать?
359 1979938
>>1979934
Я просто хотел дискуссию поддержать. Не молчать же как некоторые. Не молчи анон.
360 1979939
>>1979907
Да, это C++ тред, самый что ни на есть типичный. Я сначала хотел бомбануть на тему "какая нахуй разница", а затем вспомнил, в каком треде нахожусь.
361 1979940
>>1979938
Ладно. Ты вот каким стандартом пользуешься? Я все еще на С++14.
12312312.png419 Кб, 860x935
362 1979941
>>1979928

>Хирьянов


Блять это каждый раз смешно. Но пора бы остановиться.
363 1979942
Вы чего, ребята? Массив--это константный указатель, который в точке определения инициализуется адресом куска памяти. А в точке объявления (параметр функции) это просто указатель.
364 1979944
>>1979918

>массив отличается от указателя только инициализацией


Типом он блядь отличается. Т И - П О М.
Знаешь, есть такая маза - типы данных?
365 1979945
Почему нельзя вернуть массив из функции?
366 1979946
>>1979940
пора на 17 переходить
367 1979947
>>1979946
Я не хочу взрослеть!
368 1979948
>>1979940
Я пользуюсюсь 14. Слышал тут один понтовался что на собесах спрашивал конторы какой у них стандарт чтобы если они начнут мямлить сразу нахуй. Он переворачивал игру.
369 1979949
Долбоёбов даже typeid() и sizeof() не убедили. Это "ряяя концептуально одно и то же" очень напоминает "ряяя UB но работает".
370 1979950
>>1979945
Потому что это не указатель.
13404077984605.jpg22 Кб, 555x408
371 1979954
Массив нельзя вернуть потому, что это указатель. Вот ты возвращаешь указатель на инт, это не значит вернуть инт.
372 1979956
>>1979949

>ряяя UB но работает"


И что не так? Работает же.
373 1979959
>>1979945
Потому что массивы не поддерживают копирование.
374 1979960
>>1979954
Ну смотри, есть тип int. Я могу его вернуть. Есть типа int звезда. Его я могу вернуть. А есть типа int[3]. Что с ним не так, почему его не могу вернуть? Зато могу вернуть struct { int[3]; }.
375 1979961
>>1979954
инт можно вернуть, потому что инт поддерживает копирование.

Передача и возврат в/из функции - это всегда копирование.
download (1).jpg22 Кб, 201x300
376 1979963
Стикер255 Кб, 479x479
377 1979965
378 1979967
>>1979961

>Передача и возврат в/из функции - это всегда копирование.


std::ostream&

ЩИТО?
379 1979972
Есть ли разница в том чтобы передавать в cout длинную строку или разбить её на несколько логичных частей и отделять << ?
13404077984605.jpg22 Кб, 555x408
380 1979975
>>1979960
А как это сделать? Все массивы вида int [] совместимы. Сколько байт должен заготовить caller на стеке, чтобы ему вернули массив? В случае структуры это константа.
381 1979976
>>1979941
А че смешного-то? Может, я просто не в курсе ваших мемов. Так-то норм чел, все правильно излагает, как раз для уровня двачеров.
382 1979979
>>1979972
Это канкатинация. Разницы никакой. Мой даунский умишко пропочествует что-то про потоки но не будем об этом.
383 1979980
>>1979967
ТО.
В функции ты оперируешь вновь созданной ссылкой. Все, что нужно, было скопировано в эту новую ссылку при ее инициализации.

"Передача по указателю" и "передача по ссылке" - это просто устоявшиеся фигуры речи.
Фактически у функции существует всего один механизм передачи - это копирование.
384 1979981
>>1979931

>Ты разницу между ДОСТУПОМ и ИНИЦИАЛИЗАЦИЕЙ понимаешь?


Так я с тобой совершенно согласен, чего ты усираешься? Я про то что дальше инициализации массив по сути это указатель.
>>1979944
Нет, не знаю.
мимо статик каст
385 1979982
>>1979975

int[3] vernut_massivchik() {}

int[3] massivchik = vernut_massivchik();
386 1979983
Нахуй эти ваши сишные массивы, додики? Если есть безопасный std::array ?
387 1979985
>>1979982
оно возвращает указатель
388 1979986
>>1979983
зумерок, спок
389 1979988
>>1979985
А почему бы вернуть не указатель, а int[3]?
390 1979989
>>1979945
Почему нельзя?
int func()
{
int a[10];
return a;
}
391 1979992
>>1979982
Частный случай.
392 1979993
>>1979989

>intзвездочка func()

393 1979995
>>1979986
ты блядь мамонт сука. Когда все на автомобилях ездят, ты на колеснице катаешься? Сочувствую
394 1979996
>>1979989
массив на стеке
возвращаешь адрес первого элемента, а не копируешь весь массив
тебе пизда
395 1979998
>>1979982

>massivchik


писюльчик
396 1979999
>>1979983
main.cpp:125: warning: deprecated use of C-like arrays
397 1980000
>>1979996
Ну да, точно. Тогда так
intзвездочка a = new int[10];
return a;
andronovskaja-kolesnitza-2.jpg143 Кб, 1200x661
398 1980001
399 1980003
>>1979999
main.cpp:125: warning: deprecated use of C-like functions
400 1980004
>>1980000
А если я хочу массив на стеке вернуть, чтобы по возвращении в результат записалась копия?
401 1980005
>>1980004
Таджик потихоньку пилит таску.
402 1980006
>>1980000
А кто освобождать твой сраный хип будет? Верни массив со стека на стек или ставь обратно Пистон.
403 1980007
>>1980004

>чтобы по возвращении в результат записалась копия?


Но зачем? Ты и так можешь обращаться к указателю через квадратные скобки.
int* p = func();
cout<< p[7];
>>1980006
Вызывающая функция, про delete слышал?
16013255780160.mp46,2 Мб, mp4,
1280x720, 0:43
404 1980009
405 1980010
>>1980003
Это рофл или так ирл где-то бывает? Мой препод таскает мою группу по С и говорит что струны это говнище. Говорит будем писать свои библиотеки и мы будет профи. На полном серьезе говорит.
406 1980011
>>1973041 (OP)
Your license has gone stale and must be updated.
Что за хуйня нормально vs работала, как это пофиксить?
(аккаунт аутлука саспендед, просимт номер)
407 1980014
>>1980009
ДА вот это я хотел скинуть.
408 1980015
>>1980011
к интернету подключить, и аккаунт там надо создать
409 1980016
>>1980010
Все верно говорит. Любая дефолтная либа - кратное падение скорости выполнения. Там где можно обойтись встроенными средствами, зачем усложнять себе жизнь?
410 1980017
>>1980010
Рофл конечно. А препод у тебя молодец.
411 1980018
>>1980015
ещё один?
412 1980019
>>1980018
аккаунтов много не бывает
413 1980022
Дайте какой-нибудь максимально короткий но исчерпывающий шаг за шагом гайд, минут 30-40, желательно в видео, как на С++ сделать с нуля простую 3Д-анимацию с использованием OpenGL? Ну скажем вывести на экран вращающийся куб с разноцветными гранями.
414 1980024
>>1980011
Я в итоге сдался и укозал номер.

Номер кстате может быть абсолютно любой, главное смс'ку прочитать.
image.png119 Кб, 1919x836
415 1980025
В рот мне ноги!
416 1980027
>>1980022

> Вместо того, чтобы почитать mech.c

sage 419 1980030
>>1980025
Мог бы просто функцию заинлайнить.
420 1980032
>>1980029
спасибо, воспользуюсь когда истечет новый аккаунт
421 1980035
>>1980016
Написали с ним кастомные "cstring.h"
422 1980037
>>1980009
Откуда?
423 1980041
>>1980028
Спасибо, похоже прям то что нужно.

>>1980027

>mech.c


Что это? Поисковик выдаёт шлак.
424 1980043
>>1980037
У меня с po/раши.
425 1980053
>>1980043
Там всё с реддита пижженое.
426 1980069
>>1979848
Я про то, что плюсовая std - это шутка, блять, а не стандартная библиотека.
427 1980073
>>1979981
Тебе уже десять примеров привели, когда массив не дикэится до указателя, животное ты безобразное.
428 1980075
>>1979804
Не расстраивайся, в с++23 добавят string::split
429 1980079
Стоит ли укатываться в си?
430 1980083
>>1980079
Если ты шизик с массивами, то тебе определённо нужно укатываться в C-тред.
bug.png45 Кб, 1133x551
431 1980084
>>1973041 (OP)
1 ifstream csvfile("ms3.csv");
2 while (csvfile) {
3 csvfile >> W;
4 ...
5 }
В сsv закончились записи и во время выполнения третьей строки ошибка. Какую проверку мне сделать чтобы избежать краша? Пробовал good() не помогло
432 1980085
>>1980083
Я просто хочу стать мастером покемонов.
433 1980098
>>1980085
Массив-то сможешь отличить от указателя, мастер?
434 1980099
>>1980085
Только не в этом треде. Эти долбоёбы не могут ни на один нормальный вопрос ответить. Это вобще питонисты теребонькающие на плюсы по вечерам.
435 1980110
>>1980099
Я думал, это элита рунета по теме.
436 1980113
>>1980099
Задавай уже свои вопросы.
437 1980118
>>1980084
Такую же, как ты сейчас делаешь, только не до чтения, а после.
438 1980119
>>1980113
Ну вот выше. Сорри я просто на эмоциях сказал.
>>1980084
439 1980121
>>1980118
У меня считывает но после того как записи закончились крашится. Я пробовал проверку на eof но нихуя.
441 1980214
>>1980212
Не понял
4.png50 Кб, 866x514
442 1980219
443 1980222
>>1980219

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


ОК, гугол.
Покажи мне как auto выводит тип массива.
5.png28 Кб, 874x248
444 1980225
445 1980242
>>1980084
Нихуя не понятно. Что за W, какой его тип? Что это за конструкция?

>while (csvfile) {


>3 csvfile >> W;



Наверняка у тебя за пределы файла вылетает. Считывай посимвольно, с нормальной проверкой на eof, или лучше через буфер, если файл не текстовый.
446 1980245
>>1980084
Мы телепаты? Что такое W? До него функция чтения из потока может творить что угодно, например бросать исключение.
447 1980246
Алсо цсв файлы лучше читать построчно и разбирать уже готовые строки регекспом или как то ещё на соответствие твоему формату.
448 1980247
>>1980245

>Для*


фикс
449 1980269
Подкиньте идей как лучше всего отслеживать изменения в файлах и при сравнении нескольких выводить на принт их отличия?
450 1980288
>>1979954
Массив нельзя вернуть и вообще вся семантика pointer decay появилась потому, что похожее поведение было в B, и чтобы меньше тратить время на портирование программ из B в C решили захачить похожее поведение.
451 1980297
Что читать? Список на гитхабе не обновлялся с 2017 года.
452 1980299
>>1980269
Вызывать готовые внешние программы, например winmerge в консольном режиме.
453 1980315
>>1980269
че в гугле забанили? Чекать дату модификации
454 1980364
Правильно ли я понимаю, что с помощью Clang, я могу скомпилировать С++ исходник в байт код llvm, затем провести там обфускацию байт кода, а затем скомпилировать уже в натив под конкретную ОС?
455 1980373
>>1980364
Ну ты ебанутый, С++ обфусцировать
456 1980375
>>1980373
похоже, что ебанутый тут только ты)
457 1980377
>>1980373
как ты будешь с бубном плясать дурик, когда тебе нужно будет либу защитить от анализа?
sage 458 1980443
>>1980377

> российская криптография как есть

459 1980455
>>1980443
буржуи этим тоже грешат, лол
460 1980460
>>1980364

>байт код llvm


Нет такого, есть обычный intermediate representation компилятора. Когда-то LLVM и хотели сделать а-ля Hotspot (откуда VM в названии и пошла), но так и не сделали и теперь это обычный компилятор.
461 1980597
>>1980460
LLVM-биткод == бинарно сериализованный LLVM IR.
462 1980599
>>1980001
рисунок так себе
тогда лошади были небольшого размера, по форме больше на пони похожие, и еще с длинной шерстью
463 1980600
>>1980460
какого хуя я читал о jit компиляции в llvm?
464 1980604
Вкатываюсь в Прату обнаружил в одном примере что шаблон в https://ideone.com/RuJhux
можно просто описать с перегрузкой без какой-то особой "явной специализации (функция job)
https://ideone.com/GLNMZG
465 1980628
>>1980377
Ее все равно разберут, если нужно - см. хакеров денувы и прочего.
466 1980631
>>1980628
ахуеть логика - если разберут, то не надо ничего защищать) Тебе в геймдеве работать бы (нет)
467 1980633
>>1980631
Ты нихуя не защищаешь обфускацией, Дуняша. Если ты нахуй никому не нужен - то никто трогать не будет, если ты нужен - то тебя разберут хоть узащищайся.
468 1980634
>>1979983

>, додики?


Семантические свойства
Значение
жарг. гомосексуалист (в уголовном арго — молодой пассивный) В неестественно раскрытых совиных глазах Ястребова вспыхнули ржавые белки, в них металось безумие… Под ним бился молодой додик по кличке Снежинка. Л. П. Костомаров, «Десять кругов ада»
жарг. ирон. женственный, женоподобный мужчина И реально, что бы вы думали, из-за кулис выходит какой-то додик, тощий, в зелёных очках и с лысой головой, подходит к микрофону и начинает вещать что-то тонким, по-бабьи жеманным голоском.〈…〉Он очень томно растягивает слова, выпячивает губы и делает все эти педиковские ужимки, которые я так ненавижу. С. С. Минаев, «Духless. Повесть о ненастоящем человеке», 2006 г. (цитата из Библиотеки Максима Мошкова, см. Список литературы)
жарг. презр. или пренебр. хилый, ничем не примечательный человек Например, решит профессор закончить пару пораньше и для приличия спросит, всё ли всем понятно. Группа уже сложила вещички и ждёт предложения разойтись по домам, и в этот момент Борис поднимает руку и говорит: «А вот я не понял один момент…». В результате народ тоскует и томится, один лишь Борис внимательнейшим образом слушает и кивает головой. Чаще всего в процессе кивания у него появляются и другие вопросы. После проявления такого интереса к предмету преподаватели начинали его уважать, студенты называть додиком, а девушки не любить, несмотря на очевидную красоту. Эльвира Барякина, Анна Капранова, «Рыба в чайнике», 1999—2002 г. На прогулку во двор старейшей московской психиатрической больницы выпускали только с часу до двух дня и только самых спокойных обитателей. / — Маша, загоняй додиков! — кричала из окна второго этажа тётка в замызганном голубом халате и косынке. П. А. Астахов, «Квартира», 2010 г.
Синонимы
гомосексуал, гомосексуалист, педераст; устар.: мужеложец, мужеложник, содомит; устар., частичн.: малакия; книжн.: уранист, урнинг; разг.: гей, гом, гомик, гомосек, мужелюб; разг., субстантивир.: голубой; эвф.: сидор; сленг: в теме, зайка, крашу ногти, сижу в окопе, тематический, яойщик; жарг.: ахтунг, барсук, василёк, васька, галя, гамадрил, гамаз, гамазей, гамак, гном, гобсек, говносек, голубарь, голубец, голубок, голубчик, голубь, гома, гомарь, гомс, гомусик, двустволка, дирижёр, дочка, дуплан, ермак, жоподрючник, жополаз, жопочник, жопотрах, заднепроходец, звезда, кентавр, котик, кьюр, квир, маркоташник, мастёвый, мужиковед, папа, парафин, пед, педагог, педарь, педе, педерага, педераго, педеряга, педигрипал, педик, педр, педрик, педрила, педрило, педрильник, педруччо, педя, петух, пидарас, пидарь, пидер, пидор, пидорас, пидорасина, пидораскин, пидораха, пидорюга, пидорюжник, пидорюк, пинчер, половой демократ, пэдэ, рудокоп, руслан, субчик-голубчик, такой, темовой, тёпленький, тёплый брат, универсал, уник, уни, хали-гали, чебурашка, чичеряка, шахтёр, шкицнурик, шура; активный: акт, актив, активист, георгин, глиномес, говномес, дятел, кочегар, марксист, педикатор, печатник, печник, печной ящер, ромео, солидол иванович, топтун, трубочист; активный, субстантивир.: уважаемый; вульг.: чужежопник; пассивный: акробат, ананаска, армянская королева, бархотка, валет, вафел, вафёл, вафлеглот, вафлёр, вафлист, вафло, гребень, дама, даша, дашка, жена, женива, женщина, жопа, жопник, козёл, козлик, козочка, конь педальный, кочет, манька, маня, маргаритка, маша, машка, моргалик, мурка, наташа, наташка, незабудка, пассив, пассивка, пассуха, педер, педерасик, педермот, петюнчик, петя, пидовка, пидорша, пидаль, пидесса, пинч, плашкет, подруга, пярну, санта-лючия, Светка, сестра, туз червонный, умница, шпидагуз, шурик, шурин; субстантивир.: округлённый, заднеприводный, заднеприводной, дырявый; изнасилованный: обиженный, опущенный, проткнутый, петух, петушня, петушок, петяра, пятёра, пятёрка; собир., бран.: пидорасня
Антонимы
Гиперонимы
Гипонимы
Родственные слова
Ближайшее родство
Этимология
Происходит от ??

Фразеологизмы и устойчивые сочетания
у каждого додика своя методика
468 1980634
>>1979983

>, додики?


Семантические свойства
Значение
жарг. гомосексуалист (в уголовном арго — молодой пассивный) В неестественно раскрытых совиных глазах Ястребова вспыхнули ржавые белки, в них металось безумие… Под ним бился молодой додик по кличке Снежинка. Л. П. Костомаров, «Десять кругов ада»
жарг. ирон. женственный, женоподобный мужчина И реально, что бы вы думали, из-за кулис выходит какой-то додик, тощий, в зелёных очках и с лысой головой, подходит к микрофону и начинает вещать что-то тонким, по-бабьи жеманным голоском.〈…〉Он очень томно растягивает слова, выпячивает губы и делает все эти педиковские ужимки, которые я так ненавижу. С. С. Минаев, «Духless. Повесть о ненастоящем человеке», 2006 г. (цитата из Библиотеки Максима Мошкова, см. Список литературы)
жарг. презр. или пренебр. хилый, ничем не примечательный человек Например, решит профессор закончить пару пораньше и для приличия спросит, всё ли всем понятно. Группа уже сложила вещички и ждёт предложения разойтись по домам, и в этот момент Борис поднимает руку и говорит: «А вот я не понял один момент…». В результате народ тоскует и томится, один лишь Борис внимательнейшим образом слушает и кивает головой. Чаще всего в процессе кивания у него появляются и другие вопросы. После проявления такого интереса к предмету преподаватели начинали его уважать, студенты называть додиком, а девушки не любить, несмотря на очевидную красоту. Эльвира Барякина, Анна Капранова, «Рыба в чайнике», 1999—2002 г. На прогулку во двор старейшей московской психиатрической больницы выпускали только с часу до двух дня и только самых спокойных обитателей. / — Маша, загоняй додиков! — кричала из окна второго этажа тётка в замызганном голубом халате и косынке. П. А. Астахов, «Квартира», 2010 г.
Синонимы
гомосексуал, гомосексуалист, педераст; устар.: мужеложец, мужеложник, содомит; устар., частичн.: малакия; книжн.: уранист, урнинг; разг.: гей, гом, гомик, гомосек, мужелюб; разг., субстантивир.: голубой; эвф.: сидор; сленг: в теме, зайка, крашу ногти, сижу в окопе, тематический, яойщик; жарг.: ахтунг, барсук, василёк, васька, галя, гамадрил, гамаз, гамазей, гамак, гном, гобсек, говносек, голубарь, голубец, голубок, голубчик, голубь, гома, гомарь, гомс, гомусик, двустволка, дирижёр, дочка, дуплан, ермак, жоподрючник, жополаз, жопочник, жопотрах, заднепроходец, звезда, кентавр, котик, кьюр, квир, маркоташник, мастёвый, мужиковед, папа, парафин, пед, педагог, педарь, педе, педерага, педераго, педеряга, педигрипал, педик, педр, педрик, педрила, педрило, педрильник, педруччо, педя, петух, пидарас, пидарь, пидер, пидор, пидорас, пидорасина, пидораскин, пидораха, пидорюга, пидорюжник, пидорюк, пинчер, половой демократ, пэдэ, рудокоп, руслан, субчик-голубчик, такой, темовой, тёпленький, тёплый брат, универсал, уник, уни, хали-гали, чебурашка, чичеряка, шахтёр, шкицнурик, шура; активный: акт, актив, активист, георгин, глиномес, говномес, дятел, кочегар, марксист, педикатор, печатник, печник, печной ящер, ромео, солидол иванович, топтун, трубочист; активный, субстантивир.: уважаемый; вульг.: чужежопник; пассивный: акробат, ананаска, армянская королева, бархотка, валет, вафел, вафёл, вафлеглот, вафлёр, вафлист, вафло, гребень, дама, даша, дашка, жена, женива, женщина, жопа, жопник, козёл, козлик, козочка, конь педальный, кочет, манька, маня, маргаритка, маша, машка, моргалик, мурка, наташа, наташка, незабудка, пассив, пассивка, пассуха, педер, педерасик, педермот, петюнчик, петя, пидовка, пидорша, пидаль, пидесса, пинч, плашкет, подруга, пярну, санта-лючия, Светка, сестра, туз червонный, умница, шпидагуз, шурик, шурин; субстантивир.: округлённый, заднеприводный, заднеприводной, дырявый; изнасилованный: обиженный, опущенный, проткнутый, петух, петушня, петушок, петяра, пятёра, пятёрка; собир., бран.: пидорасня
Антонимы
Гиперонимы
Гипонимы
Родственные слова
Ближайшее родство
Этимология
Происходит от ??

Фразеологизмы и устойчивые сочетания
у каждого додика своя методика
469 1980637
>>1980633
так давай я тебе кину либу, ты мне разберешь алгоритм? Умник ебучий. Как же я ору с далбаебов, у которых логика: если взломают, то нахуя защищать? ))
470 1980640
>>1980633
вот я тоже хуй знаю, почему гиганты геймдева юзают денуву, раньше юзали старфорс и подобное, если всё ломается. Ну лохи же, правда.
471 1980650
>>1980640
Денува нужна, чтобы сломали не в первую неделю, потому-что ровно на первую неделю приходятся бОльшая часть покупок.

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

>>1980637
Я не разберу - мой коллега реверсер - изи разберет. Если ты ее ОБФУСЦИРУЕШЬ - он ее так же изи разберет.

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

>Денува нужна, чтобы сломали не в первую неделю, потому-что ровно на первую неделю приходятся бОльшая часть покупок.


а это значит не относится к софту?
473 1980673
>>1980634
божечки как же я люблю великий могучий
эту страну не победить
474 1980700
>>1973041 (OP)
Насколько сложно написать простую отслеживающую программу под Android, (кейлогер) (с учетом если ставить её самому и логи на почту к примеру отправлять)?
475 1980703
>>1980597
Возможно, но он не переносимый и не является байт кодом в том же смысле, что байт-код JVM или CLR.

>>1980600
У LLVM есть программные апи для построения IR и его компиляции прямо во времени исполнения (кажется его, например, RPCS3 использует), но это по сути только бэкенд компилятора. Фронтэнд и рантайм всё равно самому нужно будет писать, нельзя взять готовый LLVM язык и из коробки флагом подцепить к нему JIT-компиляцию.
476 1980712
>>1980703
Да что ты доебался. И схуяли IR является непереносимым, если сам смысл его существования в том чтобы создавать из него бинарники под любую поддерживаемую платформу?
477 1980716
>>1980700
Не имея рут-прав, я думаю, никак.
478 1980731
>>1974835
Одного компилятора не хватит. Нужна ещё реализация stl.
479 1980757
>>1980731
Можно чужую взять, там же сырцы.
480 1980763
>>1980757
Можно и компилятор чужой взять.
481 1980785
>>1980716
Спасибо
482 1980798
>>1980763
И программы чужие, зачем самому писать?
483 1980804
>>1980798
Незачем, всё давно написано, айти пора закрывать, пузырь скоро лопнет.
484 1980820
>>1980804

>всё давно написано


Это относится не только к программам. Пора закрывать человечество.
485 1980853
>>1980820

>Пора закрывать человечество


Да и нехуй было начинать даже.
486 1980863
delete world;
487 1980898
for (;;) ;
488 1980941
>>1980853
Ну не знаю, первая Матрица прикольный фильм был. Думаю, это стоило того.
489 1980999
>>1980703

>LLVM


Говно ваш LLVM.
Не первом месте интеловский компилер.
Затем MSVC
Затем gcc/g++
И только затем LLVM
Ниже только С-компиляторы от Борланда или кто он там сейчас Embaradero?
И где-то на дне всякие tinyC и прочая поебень.

LLVM - распиаренное говно.
490 1981001
>>1980999

>яскозал

491 1981009
>>1981001
Да, это я сказал. Намедни вот видел старую тему на linux.org.ru, где один пятизвёздочный агрился на молодняк, за то, что тот хотел поставить gcc на Андроид в termux, вместо идёщего по дефолту Clang.

И тут подумалось - а чего это "илита" так надрачивает на Clang? Дык, Эппл же его внезапно использовала как основной компилер. Вот вы и слились в экстазе.
492 1981013
>>1981009

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


пиздец шиза. Найди друзей.
493 1981016
>>1981013
Ты ещё не родился, когда я там заристрировался.
494 1981019
>>1981016

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


пчел, конечно аппле использует шланг, ведь они в него уже много лет контрибьютят. Ничто не компилирует обжц лучше шланга
495 1981022
Друзья, подскажите или подкиньте дельную статью, как хранить секреты?
Мое приложение содержит id клиента и токен. С одной стороны, даже если злоумышленник узнает их - да и поебать - при помощи них на сайте авторизуется юзер, причем своим логином/паролем, токен только для oauth. С другой стороны - это в любом случае плохо, Кто-то может хуярить запросы и заблочат мой токен.
Так вот, как хранить это? Т.к. сам веду разработку и открытый проект на гитхабе. В коде - очень плохо. Внешнего сервиса, откуда можно запросить - нету. Бд - не вариант - это будет один бинарник. Можно конечно что-нибудь вроде файла конфига не под контроллем версии, а под контроль - пример файла и инструкцию где взять токен. Хз короче, нужна подсказка.
496 1981037
497 1981044
Пожалуйста, помогите разобраться как либу (bullet для физики) поставить и запустить любой hello world через cmake.

Я пробовал несколько лет назад, но тогда я ещё не понимал ничего - и увидев 43 ошибки с ужасом закрыл, при том что я специально сказал ту же версию визуалстудии, что и была указана в либе.
Сейчас то же самое. Открыл для сравнения другую либу для физики (newton dynamics), запустил cmake - всё работает тут же, в cmake понятное содержание - а демки создаются и редактируются. Cmake даже пишет, что либа собралась и объектные файлы вот там-то. Почти как на питоне.
Запускаю bullet, какие-то значения в cmake не прописаны, какие-то файлы питона и луа там ещё, а в дополнительных папках странные уже скомпилированные екзешники. Ни в одном readme ни слова о том, как этим пользоваться. Мол просто запусти батник. Эм, а дальше?

Это не либа, а бред шизофреника - как будто кто-то несколько лет писал код "для себя" и в нём ориентируется, а потом прямо так и выложил его.
Вот я хочу скопировать код из демки с одним кубом и запустить её - какие мои действия?
Сначала cmake пишет "Cannot find source file" - я исправляю cmake (кое-как по смыслу там понятно какой файл ему нужен - но почему-то путь в cmake прописан неверно) - ошибка в нём исчезает, но появляется ошибка в самих хедерах, потому что они раскиданы по разным папкам, но в самих хедерах названия этих папок никак не указаны (а некоторые указаны). Ну и так далее. Пятый час пытаюсь этот мусор хоть как-то запустить.

17 стандарт и другие обновления языка это круто конечно, но нельзя было бы как-то в стандарт занести системы сборки, модули или ещё что-то? Это намного, мать его, важнее и полезнее для языка, чем template guides, которые в каком-то месте позволят записать шаблон не в три строчки, а в две с половиной. По назначению как pip в питоне. И более юзабельный аналог cmake само собой.

Уже не надо помогать, я просто сгорел и хочу выговориться, чтобы уснуть без дёргающихся конечностей. Я куду и torch быстрее настроил под кресты, чем этот мусор.
Уже решил попробовать поставить нвидиевский физикс - и почему-то я уверен, что за 30 минут снова всё заработает как надо, потому что я уже на странице загрузки вижу больше инфы по установке и настройке, а по первой же ссылке сразу же увидел смысл значений в cmake-файлах.
497 1981044
Пожалуйста, помогите разобраться как либу (bullet для физики) поставить и запустить любой hello world через cmake.

Я пробовал несколько лет назад, но тогда я ещё не понимал ничего - и увидев 43 ошибки с ужасом закрыл, при том что я специально сказал ту же версию визуалстудии, что и была указана в либе.
Сейчас то же самое. Открыл для сравнения другую либу для физики (newton dynamics), запустил cmake - всё работает тут же, в cmake понятное содержание - а демки создаются и редактируются. Cmake даже пишет, что либа собралась и объектные файлы вот там-то. Почти как на питоне.
Запускаю bullet, какие-то значения в cmake не прописаны, какие-то файлы питона и луа там ещё, а в дополнительных папках странные уже скомпилированные екзешники. Ни в одном readme ни слова о том, как этим пользоваться. Мол просто запусти батник. Эм, а дальше?

Это не либа, а бред шизофреника - как будто кто-то несколько лет писал код "для себя" и в нём ориентируется, а потом прямо так и выложил его.
Вот я хочу скопировать код из демки с одним кубом и запустить её - какие мои действия?
Сначала cmake пишет "Cannot find source file" - я исправляю cmake (кое-как по смыслу там понятно какой файл ему нужен - но почему-то путь в cmake прописан неверно) - ошибка в нём исчезает, но появляется ошибка в самих хедерах, потому что они раскиданы по разным папкам, но в самих хедерах названия этих папок никак не указаны (а некоторые указаны). Ну и так далее. Пятый час пытаюсь этот мусор хоть как-то запустить.

17 стандарт и другие обновления языка это круто конечно, но нельзя было бы как-то в стандарт занести системы сборки, модули или ещё что-то? Это намного, мать его, важнее и полезнее для языка, чем template guides, которые в каком-то месте позволят записать шаблон не в три строчки, а в две с половиной. По назначению как pip в питоне. И более юзабельный аналог cmake само собой.

Уже не надо помогать, я просто сгорел и хочу выговориться, чтобы уснуть без дёргающихся конечностей. Я куду и torch быстрее настроил под кресты, чем этот мусор.
Уже решил попробовать поставить нвидиевский физикс - и почему-то я уверен, что за 30 минут снова всё заработает как надо, потому что я уже на странице загрузки вижу больше инфы по установке и настройке, а по первой же ссылке сразу же увидел смысл значений в cmake-файлах.
498 1981047
>>1981037
А если пропихнуть их на этапе компиляции? 90% отпугнет что нет переменных открытыми текстом в репе.
499 1981053
>>1981044
Ну это типичный крупный попенсорс проект из начала 2000-х. У некоторых вся документация сделана через doxygen или прям в коде комментариями. Сама попенсорс концепция - это конструктор из говна и палок, которыми надо самостоятельно научиться жонглировать. Как ты это сделаешь - всем похуй.

>как pip в питоне


sudo apt-get install -y libbullet-dev

>более юзабельный аналог cmake


У yandex есть yamake, у google - gyp. Ещё можешь обмазаться maven или gradle как в питоне.
500 1981054
>>1980863
Скобки забыл.
501 1981055
>>1981054
delete this; // каноничнее
502 1981056
>>1981055
Мир не объект а пространство "открытого".
503 1981079
>>1981022
creat("token", 0600)
504 1981083
>>1981053

>Сама попенсорс концепция - это конструктор из говна и палок


Зачем так усложнять, есть же простая русская пословица: "Дареному коню в зубы не смотрят"
505 1981084
>>1981037
Ответ на любой вопрос криптографии
506 1981107
>>1981022
кстати github постоянно сканируют хакеры на наличие в выложенном коде паролей к аккаунтам или токенов.
507 1981109
>>1981107
че рили такие есть? Я помню как пиздюком был, тогда текстовые игры были в треде. И один лох написал аутоит скрипт для автоматизации) Я скрипт тогда декомпильнул, и там в исходниках, в комментах - был его логин и пароль) Тогда я себя хакером почувствовал, да)
508 1981124
>>1981109
разработчик для тестирования своего приложения вбивает пароль в код приложения, спецбот это обнаруживает. Слышал новости про утекшие пароли от amazon ws, тогда хакеры просто майнили крипту на сервере амазона
509 1981196
Как на плюсах написать кнопку ?

мимо джаваскриптер
510 1981217
>>1981196
sfml используй
511 1981218
>>1981196
это C++, тут кнопок нет, тут консоль.
513 1981238
>>1981196
auto button = new QPushButton();
514 1981248
char* WindowName = "окошко";
Window window1(WindowName, hInstance, nCmdShow, MAKEINTRESOURCE(IDR_MENU1));

HWND hButton = CreateWindow("BUTTON", "771", WS_CHILD|WS_VISIBLE|BS_DEFPUSHBUTTON, 100,100,20 ,20, window1._hMainWnd, (HMENU)ID_BUTTON, hInstance, NULL);

всегда улыбало кол-во кода, а так же кол-во параметров, передающихся в функцию, чтобы создать единственную сраную кнопку.
515 1981249
Вот рабочий пример создания кнопки:

#include <Windows.h>

int _tmain(int argc, _TCHAR* argv[])
{
MSG msg;
//if you add WS_CHILD flag,CreateWindow will fail because there is no parent window.
HWND hWnd = CreateWindow(TEXT("button"), TEXT("Easy"), WS_VISIBLE | WS_POPUP,
10, 10, 80, 25, NULL, NULL, NULL, NULL);

ShowWindow(hWnd, SW_SHOW);
UpdateWindow(hWnd);

while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}

return (int) msg.wParam;
}

Кто говорил - что будет легко?
516 1981264
>>1981054
какие скобки блядь?? https://www.ideone.com/HyOTMm
517 1981287
>>1981196
Пиши формочки на джаве, а логику на крестах
518 1981288
>>1981009
В маках какой-то свой порт, патчи от которого они иногда неохотно пихают в апстрим
519 1981292
>>1981196
Как на экскаваторе закрутить гайку?
520 1982078
Правильно я понимаю, что openCV на Python это обертка над С++? И где используется "чистый" openCV? В ембеддеде, роботах, где нужео быстродействие и экономность?
gitler---nyasha87465896orig.jpg39 Кб, 511x600
521 1982085
>>1981248

>>"окошко"

522 1982093
>>1982078
Да, OpenCV написан на с/c++, местами на ассемблере и cuda. Для связки с другими языками сделаны бинды. Сам OCV всегда компилируется под целевую платформу и поэтому "чистый и быстрый". А обёртку вокруг него можно и на питоне писать, если нет других сложных вычислений и железка по типу raspberry pi. В остальных случаях делают на плюсах.
523 1982118
>>1981264
Мир это не объект а массив
524 1982136
Никогда. Ни разу в жизни я не использовал не-public наследования. Всегда class D: public B. Я примерно знаю эффект private наследования, типа B целиком прячется в D, но мне никогда этого не надобилось. А тебе анон? Уж про protected вообще не говорю.
525 1982150
>>1982136
Protected может пригодиться если свои библиотеки делать. В теории. На практике не знаю потому что не пишу библиотеки.
526 1982225
>>1973041 (OP)
На вкат дается 3 года. Твои дейтсвия? Мои - читаю книги и литкодю. Получаю степень. Пробиваюсь на должность в шараге. Вроде ничего не забыл.
527 1982239
Двач, посоветуй литературу на тему "Как стать гуру CMake в примерах и упражениях"
528 1982328
>>1982136
Protected иногда реально помогает, когда иерархия глубже двух. Но почти всегда лучше следовать принципу composition over inheritance, если можешь.
529 1982747
>>1973041 (OP)
Стоит ли подписываться на ТехЛида за сто зеленых? Выглядит как разводка но по нему видно что он норм чел.
530 1982762
Исходный код JDK (компилятора, тулзов и вирутальной машины джавы) перешел на стандарт С++14, а до этого у них был C++98/03.
Какие киллер-фичи есть в 11/14 стандарте, без которых вам некомфортно писать?
531 1982763
>>1982747
А зачем оно тебе? У меня в одной из контор сидело 5 челиков, закончивших подобные курсы. Никто из них до сих пор ни лидом ни пмом не стал.
532 1982765
>>1975211
это тред писателей самодокументируемого кода
533 1982767
>>1982762
Да там не то чтобы безальтернативные ёбы. Просто писанины меньше выходит, а значит меньше шансов проебаться на ровном месте.
534 1982828
>>1982763
Так у него не про лидирование а про вкат.
535 1982890
Хочу перекатиться из другого ЯП в кресты. В вакансиях пишут про знание STL. Что под этим подразумевается?
536 1982910
>>1982890
стандартная библиотека с++
537 1982917
>>1982890
- Контейнеры (коллекции) и их итераторы
- Алгоритмы над коллекциями и их вычислительная сложность, гарантируемая стандартом O(...).
- Примитивы для многопоточности (thread, mutex, lock_guard ...)
- Умные указатели (shared_ptr, unique_ptr, ...)
- Операторы приведения типов (static_cast, dynamic_cast ...)
- Потоки ввода/вывода (fstream, ostream, ...)
- Строки
538 1982919
>>1982917
пчел похоже вообще даже о крестах не читал, раз задает такие вопросы) Только по вакансиях смотрел, куда податься
539 1982921
>>1982919
Крестовик всегда сначала гуглит если не знает. Ему перезвонят.
540 1982924
Что за манера такая, везде явно писать вызываемый конструктор?
sf::View view(sf::FloatRect(0, 0, winSize.x, winSize.y));
view.setCenter(sf::Vector2f(0, 0));

Какие от этого профиты в сравнении с
sf::View view({0.0f, 0.0f, winSize.x, winSize.y});
view.setCenter(0, 0);

?
541 1982964
>>1981044
А в физиксе только под говностудию код, да что такое то...

Может кто-то с настроенной студией скачать 4.1 физикз и написать мне как много времени он потратил чтобы запустить одну любую демку?

Я не понимаю что делать, пристрелите меня пожалуйста.
Правил cmake, дошёл до "evaluating generator expression: $<NOT:> $<NOT> parameter must resolve to exactly one '0' or '1' value" - оно никак не подсвечивает где ошибка произошла и приходится самому искать этот NOT через поиск, потому что там много раз значение одной переменной перезаписывается в другую, а ошибка только в самой последней строчке отображается.
Потом пришлось вычищать всякие /d2Zi+.
В итоге cmake сработал нормально, и компилятору доставил нормальные флаги. После чего там какой-то rc-файл инклюдится с мусором вместо кода.
Я таким уродом-говночистом себя чувствую занимаясь этим, что просто капец. Ну не newton же в самом деле использовать. И мне верёвки нужны, который newton не потянет.
Упёрся в итоге в simd, который видимо сильно иначе записывается в студии.

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

>>1981053

>У yandex есть yamake, у google - gyp


Анекдот про шестнадцать конкурирующих форматов помнишь?

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

>>1982924
Не пиши. Там же вроде бы есть перегрузки, а если нету - можно добавить за пять минут.
Ты ненормальный, если на серьёзных щщах используешь sf::View, лол. Дико неудобная же штука (кажется, там setScale не устанавливал новые масштаб, а перемножал уже имеющуюся матрицу, так что правильнее было бы назвать функцию addScale - и в документации тоже как-то хреново про это написано), gluOrtho2D (или что-то поактуальнее на glm) в разы удобнее.
541 1982964
>>1981044
А в физиксе только под говностудию код, да что такое то...

Может кто-то с настроенной студией скачать 4.1 физикз и написать мне как много времени он потратил чтобы запустить одну любую демку?

Я не понимаю что делать, пристрелите меня пожалуйста.
Правил cmake, дошёл до "evaluating generator expression: $<NOT:> $<NOT> parameter must resolve to exactly one '0' or '1' value" - оно никак не подсвечивает где ошибка произошла и приходится самому искать этот NOT через поиск, потому что там много раз значение одной переменной перезаписывается в другую, а ошибка только в самой последней строчке отображается.
Потом пришлось вычищать всякие /d2Zi+.
В итоге cmake сработал нормально, и компилятору доставил нормальные флаги. После чего там какой-то rc-файл инклюдится с мусором вместо кода.
Я таким уродом-говночистом себя чувствую занимаясь этим, что просто капец. Ну не newton же в самом деле использовать. И мне верёвки нужны, который newton не потянет.
Упёрся в итоге в simd, который видимо сильно иначе записывается в студии.

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

>>1981053

>У yandex есть yamake, у google - gyp


Анекдот про шестнадцать конкурирующих форматов помнишь?

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

>>1982924
Не пиши. Там же вроде бы есть перегрузки, а если нету - можно добавить за пять минут.
Ты ненормальный, если на серьёзных щщах используешь sf::View, лол. Дико неудобная же штука (кажется, там setScale не устанавливал новые масштаб, а перемножал уже имеющуюся матрицу, так что правильнее было бы назвать функцию addScale - и в документации тоже как-то хреново про это написано), gluOrtho2D (или что-то поактуальнее на glm) в разы удобнее.
542 1983020
>>1982964

> gluOrtho2D (или что-то поактуальнее на glm)


оно же на уровень ниже, чем sfml
543 1983030
>>1982924
Понятность кода и исключение неоднозначных трактовок при его чтении. Видно, что куда и какого типа передается, без вот этого вот питон-стайла.
544 1983052
>>1983030
Так видно и без типов. Мой опыт 2 года программирования с нуля и моя позиция такая - если код нормально написан, он будет нормально работать. Типизация чисто для проверки - сомнительная вещь. К слову видел чуваков которые "кодят 10 лет" и ничего не умеют.
545 1983057
>>1982917
Спасибо!

>>1982919
На крестах даже писал, просто не имею понятия, что конкретно спрашивают на собесах.
546 1983099
>>1982964
Вся твоя проблема в отсутствии опыта. У меня в крупном проекте (под студию) был bullet и с ним всё норм было. Даже июни на нём код писали.

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


Когда ты собираешь проект из кучи thirdparty компонент. Так было всегда. Собственно поэтому все крупные конторы сидят на своих велосипедах.
изображение.png31 Кб, 545x490
547 1983275
>>1983099
Верно. И я горю от того, что не знаю как его получить, нет точки приложения сил - я не понимаю что мне сделать, чтобы разобраться в этом.

Сложный код можно разбирать и разделять на фрагменты, понимая как он работает. Можно прочитать книгу. Можно посмотреть другие примеры на похожую тему. Да что угодно можно, но трата времени приводит к пониманию рано или поздно.
Здесь же я могу пытаться нагуглить похожие ошибки в cmake/компиляторе и ... - и ничего из этого не приближает меня к понимаю как сделать правильно. Я нахожусь там же, где три дня назад. И книг по примерам настройки чужих либ на различных компиляторах и системах сборки я тоже не видел, на форумах на такие вопросы не отвечают, так как это не с++ код, которые касается всех с++ программистов, а какие-то конфиги или строки в cmake, которые касаются лишь ту часть программистов, которые используют тот же компилятор и систему сборки.

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

Я скомпилил демку bullet. Случайно. И горит от того, зачем я сидел ночью последние несколько дней и если "проблема была в этом!?" (нужно было исправить две строки в cmake и проблема решалась за пять минут - после которых 20 минут оно компилировалось) - то почему мать его гори оно в аду синем пламенем нельзя было сразу на своём говносайте написать, что нужно с вашим cmake сделать? Или хотя бы cmake так написать, чтобы ошибка происходила в этом месте - а не где-то совсем в другом.
548 1983463
>>1983275
Ну это часть нашей работы. На bullet хотя бы есть документация, а на проекты, которыми тебе придётся заниматься в реале, её нет и писали их редкостные мудаки. Считай что ты сейчас заглянул в горлышко бутылки, а приседания ещё впереди.
cmake.png471 Кб, 2160x1381
549 1983513
>>1983275
Почитал твой многострадальный дневник. Конечно же расплакался. А что это за куча насрана из кубиков?
550 1984230
Какого хуя постов больше суток нету, ааа? Мёртвый тред мёртвого языка!
mane.png480 Кб, 843x466
551 1984275
>>1984230
То что мертво - умереть не может!
Аноним 552 1984287
>>1984230
а че бля есть альтернативного, чтобы компиляция в натив была?
553 1984292
>>1984287
Нету её нихуя. В расте и D нет инфраструктуры, обжектив С только в эпплолегаси, в Go сборщик мусора и примитивный синтаксис.
554 1984426
>>1984287
Пишите на шарпе уже, компиляция в натив переоценена
555 1984431
>>1984426
И недооценён опенсорс поневоле?
556 1984436
>>1984431
не знаю что ты имеешь ввиду, но мы все проекты новые сейчас пишем только на шарпе. И разработка в разы быстрее, и писать приятнее. А по сравнению с девелоперской зарплатой - ну будем мы на 100 бачей в месяц больше за амазон платить ну и хуй с ним.
557 1984767
>>1984292

>В расте и D нет инфраструктуры


Зато в плюсах, бля, инфраструктуры хоть отбавляй. в каждом проекте свои строки
558 1984801
>>1984292
Проиграл. В расте в 3 раза более развитая инфраструктура, чем в плюсах. Все сейчас на раст поголовно переходят, на нем уже даже начинают писать драйверы в Линуксе, чтобы избавиться от сиподобного дырявого говна с UB. Бумер, плез.
559 1984849
>>1984801

>В расте в 3 раза более развитая инфраструктура, чем в плюсах.


Интересные маняфантазии. Пруфов, конечно, не будет.
560 1984888
>>1984849
Стандартная библиотека раста в несколько раз богаче стандартной библиотеки плюсов. И не забывай про crates, плюс не забывай про карго, который ссыт всем убогим симейкам и мейсонам на ебло. Дедуль, пиздуй реализовывать свои строки и split, это удел плюсодебилов-пердунов. Это же каким надо быть некрофилом, чтобы на сиплюс говне писать код в 2к21 году. Ладно там уже существующие проекты, их переписывать невыгодно, и разрабом приходится анально терпеть эту парашу, но новые проекты на плюсах ни одна уважающая компания пилить не будет. Гугл свою новую ОС на расте пишет с нуля, дабы выкинуть в помойку сраный ведроид, где линуксовое ядро, написанное на сиговне, изобилующее дырами в безопасности. Всех уже заебало это говно, от сиговна идёт активное избавление, что не может не радовать.
561 1984899
В пистоне есть такая штука, как id объекта. Возвращает целое число для любого объекта языка, будь то хоть литерал: `id(2) == 1234567`. Понимаю, что это высокоуровневая хрень в интерпретируемом языке, но есть ли в плюсах что-то подобное? Сразу приходит в голову адрес, но адрес литерала, например, взять нельзя - `&2` - ошибка.
562 1984905
>>1984899
В питоне нет литералов, 2 - это тоже объект, поэтому у него и есть идентификатор.
563 1984912
>>1984905
Точнее литералы есть, но они всегда поивязаны к объектам.
564 1984917
>>1984905
>>1984912
Да, спс, тоже уже разобрался. В пистоне переменная - просто ссылка на объект в памяти, не полноценная переменная в смысле C/C++. Из-за этого и "литералы" трактуются по-другому.

Сел вот тут изучать плюсы, задрала эта скриптопараша, которая еще и тормозит постоянно.
Аноним 565 1984922
>>1984888
почему на раст такой уебишный синтаксис? Как будто на какую-то скриптовую парашу типа питона пересел.
566 1984923
>>1984922
Просто ты привык к сиговну.
567 1984934
>>1984922
Лучше бы спросил какая жопоболь заставляет фанбоев других языков бегать сюда ;)
568 1984948
>>1984934
лишний раз напомнить сиплюскопрофагу, что он сиплюскопрофаг, это просто забавно. Занимательно наблюдать как у некрофилов рвутся попки :3
569 1984950
>>1984948
Что тогда не в ассемблер тред? Там ещё более копро.
570 1984951
Да и в си тоже.
571 1984974
>>1984950
потому что асм нужен как минимум реверсерам, про разработку на нем никто и не заикается, разве что в рамках lab.asm
А плюсоговно и сиговно тоже уже сейчас полностью заменимы Растом, засим новые проекты пилят как раз на Расте, а не на допотопном дерьме. Пример я уже приводил - новая ОС от гугла пишется на Расте. Даже красноглазики, пилящие прыщеблядикс, осознали насколько Раст охуенен, и пулят фичи, позволяющие писать драйверы на Линукс на Расте, тем самым спасая свои жёппы от уязвимостей наилучшим образом. Всем адекватным людям, живущим в СОВРЕМЕННОМ мире, давно ясно, что с/с++ - это бесполезная отрыжка прошлого. Легаси на нём ещё очень долго будет гнить, распространяя зловоние на весь белый свет, но всё новое в лоу-лвл системщине УЖЕ пишут на Расте, это факт. И со временем будут писать на нём только больше, ну а сиплюсговно будет уже сейчас является нямкой для некрокопрофила, который любит обмазываться смердящим легаси и дрочить, заглатывая сегфолты и сея UB по всей кодовой базе, юзая допотопную парашу. Sad but true.
572 1984976
>>1984974
С++ живее всех живых. Это не С, допотопная хуйня. Не неси хуйни
image.png100 Кб, 300x189
573 1984977
>>1984976

>С++ живее всех живых


>широко используется только в легаси проектах, которые начали писать ещё в 90ых


Ору с копрофага
574 1984996
>>1984974
Вау, какая простыня. Вопрос про жопоболь все ещё открыт.
575 1985007
>>1984996

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


ничего нового
576 1985008
>>1984974
Как твой транзишен? Уже за девочку принимают, мистер 41% ?
577 1985010
>>1985008
ты что несёшь, чмоха?
изображение.png1 Мб, 500x755
578 1985013
>>1984974

>новая ОС от гугла пишется на Расте.


Но если человек не знает c/c++, то это означает, что он никогда не видел, как пишутся ОС.
579 1985014
>>1985007
Аргументов про что?
580 1985015
>>1985013
сиплюсоговно можно использовать в обучающих целях, но никак не в серьезном продакшене (опять же, не считая легаси), поэтому мимо.
581 1985016
>>1985010
Потешаюсь над залетным расто-трапиком
582 1985017
>>1985015
Написал клоун из браузера, написанном на С++, под операционной системой со всем юзерспейсом на С++ и ядром на С. Так держать.
583 1985019
>>1985014
Про то, что сиплюсоговно хоть чего-то стоит в 2к21 году. Я по факту привёл несколько факторов почему Раст лучше сиплюсговна, и это неоспоримо. Безопасность, инфраструктура, стандартная библиотека, система сборки - в Расте всё это лучше, чем в плюсоговне. Любой твой высер в защиту говна мамонта будет в 100% случаев затрагивать легаси софт, но никак не новые крупные системные проекты, которые предпочитают писать на современных ЯПах, а не на окаменелом говне мамонта из 80ых, где весь код - это UB.
584 1985023
>>1985017
Которые начали писать в 90ых, лол. Ну, как я и говорил, плюсодебил всегда будет приводить в пример софт, написанный 25 миллионов лет назад. Тупая ты башка, это произошло только потому, что раньше не было альтернатив. Все НОВЫЕ проекты предпочитают писать на Расте по очевидным причинам. И я с самого начала говорил именно о новых проектах, так что ты сам себе нассал на хрюльник.
585 1985025
>>1985015
Только не говори мне, что мобилка с тик-токами/инстаграмами - это серьезный продакшон.

Алсо, разговоры о безопасности звучат откровенным издевательством, когда речь идет о мобилках, напичканных анальными зондами уже с конвеера.
586 1985026
>>1985023

>Все НОВЫЕ проекты предпочитают писать на Расте по очевидным причинам


Какие?
587 1985027
>>1985016

>пук, я копрофил и некрофил


Соболезную, друг.
588 1985029
>>1985027
Работу то на своем расте уже нашел, борщехлебушка?
589 1985031
>>1985026
Fuchsia - новая ОС от гугла, где почти всё ядро написано на Расте.
Примерно весь современный финтех. Блокчейн стартапы пишут ТОЛЬКО на расте. Драйвера на Линукс скоро можно будет полноценно писать на Расте. Мелкософт переписывает много чего на Раст, включая винду. Мозилла переписывает движок лисы на Раст. Все чураются от сиплюсговна, как от прокаженного, и это недаром.
590 1985032
>>1985029
300кк/наносекунду blockchain developer в перспективном старт-апе в Германии

А на плюсоговне разве есть работа, кроме парашного легаси? Вряд ли. Эмбедщину, кстати, тоже на Расте писать начинают.
591 1985035
>>1985029
300кк/наносекунду blockchain developer в перспективном старт-апе. Не в пределах стран СНГ, естественно. В СНГ параше с Растом точно туговато. Он пока выстрелил только в развитых государствах, но через лет 10-15 дойдет и до сраши/еблорусии/копроины. Наверное.

А на плюсоговне разве есть работа, кроме парашного легаси? Вряд ли. Эмбедщину, кстати, тоже на Расте писать начинают.
592 1985036
Какие есть фреймворки, помимо qt, чтоб кроме интерфейса еще была работа с сетью и бд?
qt какой-то хуевый, на баги забивают по несколько лет. Не знаю как там в коммерческой версии.
593 1985043
>>1985036
Delphi 3
Аноним 594 1985063
>>1985010
почему у раста синтаксис говно?
595 1985068
>>1985063
Ответ прост - ты привык к сиподобному говну. Он для тебя просто непривычен.
596 1985070
>>1985043
Смешной зеленый пидараха вылез, браво.
597 1985071
>>1985036
Сейчас тебе два местных шизанутых долбоёба посоветуют электрон и шарп.
Вообще, если даже в Qt не сделали что-то хорошо, то в других либах всё намного хуже.
598 1985081
>>1985019
Это здорово конечно, но ты то тут зачем?
599 1985084
>>1985036

>Какие есть фреймворки, помимо qt, чтоб кроме интерфейса еще была работа с сетью и бд?


MFC XDDD
600 1985085
>>1985081

Вот этот товарищ >>1984292 что-то там прокукарекал про то, что в расте нет инфраструктуры что еще ожидать от плюсодебила, кек, оттуда всё пошло-поехало.
601 1985091
>>1985019
Всё, что ты пишешь, не просто не "неоспоримо", а по факту вообще имеет никаких оснований.
602 1985093
>>1985071
Мало того что зачем-то переписали контейнеры, так еще и их интерфейсные методы по другому назвали (не говоря о введении очередного markup языка, подпертого костылями со всех сторон и неочевидного как ориентация любителей потаскать пару десятков метров куты либ в дистре).

Браво, браво! Это гениально!
603 1985099
>>1985091
очередной пук плюсодебила, неподкрепленный аргументами, в отличие от моего. Ничего необычного.
image.png17 Кб, 994x236
604 1985100
>>1985085
Это чтобы была активность, скучно же, никто не постит ничего.
605 1985104
>>1985019

>весь современный финтех


Пруфов опять не будет, конечно

>блокчейн


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

>все пишут много чего


Много чего неизвестно чего. Прямо как servo. Плавали, знаем.
606 1985105
>>1985099
У тебя нет никаких аргументов.
607 1985110
>>1985099
Жопоболь - твой единственный аргумент, мань.
608 1985111
>>1985035
если смотреть по доходу, то там веб, джава и питон. Иди туда, и не еби мозги, если тебе это важно)
609 1985113
>>1985036
Пиши интерфейс на шарпе, не еби отвратительное qt
610 1985114
Я бы и не против поизучать Раст, но будем объективными. Работу на нем я не найду. Даже в тех 15 вакансиях на страну, что есть, какие-то мутные конторы и требования C++ 2 года опыта.

Так что кидаться говном можно сколько угодно, но толку-то. Захоти я борщи хлебать, насаживал бы какой-нибудь Идрис на Кок.
611 1985115
>>1985035
Если ты в германии - то тебе же не составит труда как-то это пруфануть, да
612 1985145
Получил неоплачиваемое тестовое. Работодатель оценивает в 12 часов, я вижу больше. Сразу слать нахуй или лулзы половить?
613 1985160
>>1985115
Собстно, все, что надо знать о растошизиках блокчейнерах из-за бугра
614 1985219
>>1985145
Люди, у которых каждый час стоит денег, работу не ищут так-то.

ИМХО, гораздо лучше запилить тестовое задание и на собеседовании вести предметный разговор по существу, чем отвечать на дебильные вопросы, взятые с потолка.

Схуяли тебе платить, если тут общий интерес?
Работодатель тоже тратит время на собеседования. Что ему теперь тоже деньги брать с каждого соискателя?
615 1985264
>>1985145
Чувак кидай сюда всем двачом тебе поможем. Или кидай мне хотя у меня опыта кодинга маловато. Чем смогу помогу.
616 1985273
>>1985264
Там надо мат модель под оптимальную выработку месторождения придумать, доказать и запилить в виде либы под фиксированный формат данных. Ты такое не осилишь. Да и пахнет наебаловом в чистом виде как раз вот для этого >>1985219 лошка.
617 1985274
>>1985273

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


Придумывание это работа. Тебя похоже просят им работу за бесплатно сделать. Я не спец в собесах, но да. Нормальный собес по-моему выглядит так что тебя справишваю что-нибудь теоретически отвлеченное. Но бля, лол ты можешь реально придумать модель но потом все перевернуть чтобы если они её примени все пошло по такой пизде что они бы там знатно прихуели.
618 1985275
>>1985274
А может они меня к нефтяной трубе подпустят? Дадут сопутствующего газку понюхать.
619 1985276
>>1985275
Я тут глянул.

https://neftegaz.ru/science/booty/331857-geologicheskaya-model-mestorozhdeniya/

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



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



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


>Но и это не дает гарантию качественной оценки проекта.



https://neftegaz.ru/tech-library/geologorazvedka-i-geologorazvedochnoe-oborudovanie/142375-geologo-gidrodinamicheskaya-model-gdm/

Тут читать только на пару дней.
620 1985277
>>1985276
Вот еще.
Общая структура процесса создания трехмерных геологических моделей приведена на рис. 1. Он состоит из следующих этапов:

разработка структуры базы данных для хранения первичной информации по данным геологической разведки;
наполнение базы информацией геологического и геофизического опробования;
статистический анализ первичных геологических данных, исправление ошибок, группировка данных, заверка базы, выявление закономерностей;
построение скважин в пространстве модели, группировка по профилям;
выделение и оконтуривание рудных и нерудных интервалов по стратиграфическому принципу, уточнение интервалов по значениям бортового содержания (интерпретация геологических данных);
уточнение границ пространственного размещения пород, с учетом тектонических нарушений, а также за данными геофизических исследований (сейсмика, гравиметрия, электроразведка);
каркасное моделирование месторождения (выделение рудных тел и пород сопутствующей вскрыши, моделирование пластов, аномалий, ловушек и пр.);
создание пустых блочных моделей;
геостатистический анализ данных разведки, вариография, определение законов пространственной изменчивости геологических характеристик компонентов;
моделирование содержания компонентов математическими методами: ближайшего соседа (полигональный метод), обратных расстояний в степени (IDW), крайгинга (в модификациях) и др.;
моделирование гидродинамических систем, расчет массопереноса, загрязненности, химического состава и пр.
уточнение контуров распространения пород в месторождении по заданным кондициям.
С сайта http://www.mrwolf.ru/
621 1985280
>>1985276
Не, ну там касается только истощающихся месторождений. В описании есть кое-какие формулы, даже пара законов упомянута. Но один фиг исследовательская задача. Сам я вообще не в теме, как там нефть сосут по науке.
622 1985281
>>1985280

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


Хуе мое, берешь переменные и оборачиваешь их своей кростовой магией, в рамках закона. На коленке сделать.
623 1985284
>>1985281
Ну тогда ладно. Вот как сделаю, так в ДС2 поеду, буду там в башне магов работать (когда её достроят).
624 1985289
>>1985273
Ты с чем вообще пришел сюда? То ему вакансия покоя не дает, то ему наебалово мерещится.
Наебалово - проходи мимо. Ну или одевай костюм супермена и борись.

>вот для этого 1985219 (You) лошка.


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

>>1985274

>Тебя похоже просят им работу за бесплатно сделать.


Классная бизнес-модель.
Сидеть ждать неопределенное время, разгребать предложенные варианты решения.
И все это ради того, чтобы запилить таску объемом в пару рабочих дней с ценой вопроса в пару сотен долларов?
625 1985301
>>1985035
да блять, уебки

пишу вам из ебучего сан-хосе из жырной компании

пишем новую хуйню кто на расте кто на с++17-20
говном не кидаемся друг в друга
и то и то - ок
626 1985304
>>1985284
Милости прошу к нашему шалашу. Как ты получил интервью? У тебя крутая вышка или портфолио/опыт?
627 1985306
>>1985289
Я вообще параноик. Везде вижу подвох. Иногда доходит до абсурда и Я переху на обвинения. Потом приходится извиняться.
628 1985308
>>1985301

>сан-хосе


Как там деовчки? Красивые? Можешь не отвечать.
629 1985309
>>1985289

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


Ты свои таски на круды не путай с тем, чем нормальные люди занимаются.
630 1985310
>>1985304
Да хз. Такое впечатление что сейчас все бегают как в жопу ужаленные и пытаются хоть каких-то разрабов набрать.
631 1985311
>>1985309
Фига какой крутой. Ответь для проверки как вызвать оператор присвоения для базового класса из произодного. Чел не может быть таким злым если ему хорошо платят.
632 1985312
>>1985310
Ты же сам подавал анкету на вакансию.
633 1985314
>>1985312
Нет
634 1985315
>>1985314
Нехорошего человека ответ. Расскажи как вышел на них. По знакомству, hh linkedin, и еще как. Я тоже хочу.
635 1985317
>>1985311
Ты недавно про слайсинг узнал?
636 1985318
>>1985315
Мне позвонили.
637 1985320
>>1985309
Мы ж вроде еще не решили, нормальные в той конторе люди, или ненормальные.
638 1985322
>>1985317
Не уходи от ответа.
639 1985323
>>1985320
Если у них месторождение уже того значит нормальные. В смысле оплаты.
640 1985326
>>1973041 (OP)
Яндекс бекендер в треде задавайте свои ответы.
641 1985331
>>1985326
Курьер это фронтендер или бэкендер?
642 1985332
>>1985331
Чувак если ты курьер то надо бросать и сосредотачиваться на кодинге.
643 1985334
>>1973041 (OP)
Есть один вопрос. Как перестать считать себя программистом? Я просто чмоха которая ковыряет код для того чтобы поднять ЧСВ и опустить в треде пару анонов.
644 1985357
>>1973041 (OP)
Перед тем как вкатиться в Мейерса во что вкатываться после Эккеля+Липпмана. Есть ли промежуточный этап или смело идти вперед?
645 1985396
Дайте советов как вкатиться на работку. Есть 1 петпроект а-ля круд с 20 звёздами на гите. Около знаю и понимаю 11-20 + STL, немного шарю в опельгле и азии.
646 1985544
есть либа, чтобы распарсить PE файл, и там секцию добавить и тд. ?
647 1985559
>>1985544
Настоящие мужики шестнадцатеричные дампы вручную вбивают.
648 1985855
>>1985396
Пишешь хуевое резюме и бомбардируешь вакансии на ХХ, попутно продолжая задрачивать С++ ?

>>1985357
Код пиши, а не книги читай

>>1985326
Платят сколько?
649 1985921
>>1985301
Я, например, тоже ничего против Раста не имею - только против растошизиков, срущих в C++ треде.
650 1986019
>>1985559
Настоящие мужики на машинных кодах кодят, что ты тут делаешь, петушок?
651 1986023
>>1985921
Да, многие так говорят. Но вот лет через 5 на колени будем вставать за то что когда-то там угнетали всяких убийц сиплюсов.
652 1986054
>>1985855

>Код пиши, а не книги читай


Ебать дебил. Я вот за ночь прочитал почти половину Яцека по STL и ща весь день переписываю свои костыли в петах потому что там где можно было обойтись структурами и их методами из стли я везде хуярил векторы и велосипеды для них.
653 1986067
>>1986054
боюсь представить, что у тебя там за говно-код
654 1986074
>>1986054
И какие же у структур методы из сил?
655 1986075
Стл
656 1986093
>>1986074
а как данные хранились в vector, вместо структур, не интересно? Какие там костыли)
657 1986148
>>1986054
Спасибо за ответ. Шаришь.
658 1986313
>>1985145
Ну что гоустнули тебя анон или ты их послал?
659 1986349
>>1985921
Да в растротреде они такие же: чуть что - а зато в плюха еще хуже, а вот плюсы... и т.д. Язык то хороший, но со своими недостатками, которые шизики упорно не видят, но обильно срут в сторону других языков, особенно плюсов
660 1987515
>>1986349
Всегда найдутся неформалы, самоутверждающиеся только самим фактом своего существования.
661 1987537
>>1987515
Привет, растошиз.
662 1987664
>>1987537
Нет ты, Я про расташизиков говорил. Плюсы не могут быть неформалами.
663 1987708
>>1973041 (OP)
Сколько сейчас получает мидл плюсовик?
664 1987766
>>1987708
Миддл плюсовик в 2к21 - это все равно что ученый студент второго курса. То бишь, не бывает такого. Ты либо синьор-помидор, либо хуй сосёшь.
665 1987935
>>1987766
Сеньёр - это тот, кто в состоянии ставить задачи мидлам.

То бишь, не бывает такого, как ты скозал. Ты либо синьор-помидор в некоторой команде, занятой некоторым проектом, либо хуй сосёшь без команды и без проекта.
666 1987958
>>1987708
200 в ДС средняя такса
667 1987970
>>1987958
А в Еуропе Украина, Харьков сколько?
668 1987972
>>1987970
в душе не ебу, посмотри на dou
669 1987987
>>1987972
Пишет 1.5к. Думаю затребовать 2к. Меня не пошлют нахуй? Вообще как относятся к тем, кто требует больше чем компания может предложить? Я могу затребовать 2к, но потом получить оффер на 1.5 и сказать: "ну лан, давайте 1.5к" ?
670 1987992
>>1987987
У нас в конторе это работает по принципу - "Можем дать не больше чем N" в оффере.
671 1988018
>>1987664
Кекнул
672 1988116
>>1987664
Вот этот чудик правду стелит. Пидорские языки для выебонов по типу растра собственно и людей (если к ним применимо это слово) соответствующих притягивают.

Кресты - удел IT-альфачей.
673 1989041
>>1984888
Циркон? Он на С++.
674 1989047
Каким способом быстро прочитать содержимое всего файла в двоичном виде вне зависимости от его размера? Пишу хеш функцию, нужно для этого.
675 1989148
>>1989047
Читать порциями кратными размеру блока файловой системы, конкретный размер находи экспериментально.
676 1989163
>>1989148
Два чаю. В народе ещё говорят, что POSIX_FADV_SEQUENTIAL может помочь, но я никогда не мерил.
677 1989164
>>1989148
А по производительности что?
678 1989173
>>1989164
Есть вообще в принципе только два варианта чтения файлов: mmap и read (замени на аналоги из винапи, если у тебя венда). По идее mmap должен проигрывать в чистой скорости: ему нужно маппинги страниц настроить, TLB зафлашить, все дела, прежде чем ты начнёшь читать. Да ещё page fault будешь хватать на каждой странице если I/O подсистема не успеет запрефетчить их. А последовательный read в один буфер и его обработка - самое то.

В любом случае тебе придётся самому мерить производительность. На дваче тебе могут лишь сказать "обычно вот это быстрее" без каких-либо конкретных цифр, потому что они от слишком многих факторов зависят.
679 1989180
>>1989173
Ладно, пошёл курить. Спасибо всем.
image.png82 Кб, 841x627
680 1989635
Анон, подскажи, почему так не работает?

У меня С++ latest, студия знает об static inline variable. Так почему компилятор ругается? И почему он пишет про какой-то там конструктор? Ведь конструктор по умолчанию есть (выше)
681 1989654
>>1989635
ты наверное неправильно инициализируешь, раз у тебя незавершенный тип получается.
682 1989657
>>1989635
Каков смысл добавления инлайна не перед функциями/методами?
image.png16 Кб, 424x287
683 1989669
>>1989657
Меньше кода писать. Смотри - раньше ты должен был объявить имя статической переменной внутри класса, а потом где-то еще в каком-нибудь cpp написать ее реализацию... (а что делать если cpp нет, так как класс шаблон и полностью описан в h?)

В с++ 17 ввели вот эти static inline variable которые позволяют все это сделать одной строчкой внутри класса как на пикче (width/height/frame/visible - раньше ты так не мог написать)
684 1989670
>>1989654
Да все там правильно - должен быть дефолтный конструктор, выше он есть. если убрать инлайновость то все компилируется (код рабочий)
685 1989676
>>1989669
>>1989670
Тогда та хуйня выглядит как баг или фича, абсолютная логичность и неизбежность которой становится понятна только после прочтения всего стандарта три раза.
Попробуй дефолтный конструктор тоже инлайнить.
Вообще же для объявлений внутри класса этот самый класс никогда не считался неполным типом?
686 1989699
>>1989676

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


Только для статических членов.
Иначе че ты в конструкторе будешь делать с этим членом, если у него конструктор еще не определен?
687 1989702
>>1989699
Не, я не про это. Очевидно что нельзя вставить в класс С поле типа С.

Но можно делать так
class C {
int x;
inline void f(C c) // в этой точке C - уже полный тип, иначе хуй бы скомпилилось
{
cout << c.x;
}
};
689 1989777
>>1989702

>в этой точке C - уже полный тип, иначе хуй бы скомпилилось


Нет, тут он еще неполный. Компилируется потому что в объявлении функции полный тип и не нужен. Для указателя тоже не нужен полный тип.

А для объявления data-члена уже нужен будет конструктор. Фокус со статическим data-членом прокатывает потому что он инициализируется не в конструкторе.
690 1989990
Есть простая альтернатива GBL? Чтоб можно было создать обычный взвешенный граф и пройтись парой алгоритмов по нему? Без ебли с дискрипторами, проперти мамами и прочей шизой?
691 1990313
>>1989990
boost graph?
692 1990345
693 1990808
>>1990313
Я хотел написать BGL, да
694 1991026
Подскажите, пожалуйста, что нужно сделать, чтобы я мог использовать эту библиотеку - https://github.com/Kolsha/VK? Я просто скопировал файлы и инклуднул их, но проект не собирается error LNK2001. Мне в другом чате сказали "Нужно все библиотеки, если ты их используешь, указать линкеру при сборке." но я нихуя не понимаю что это значит и что мне надо сделать
695 1991139
>>1991026
Видимо тебе надо сначала собрать curl. Или пакетами поставить.
https://curl.se/
696 1991226
>>1991139
Кста меня наебали в чате. Я думал надо просто самый главный файл инклуднуть, а он все поднтянет, но оказывается надо было все 7 и все заработало. А я думал там с cmake возиться надо
697 1991419
https://arstechnica.com/gadgets/2021/04/google-is-now-writing-low-level-android-code-in-rust/

Что скажете в своё оправдание, плюсодебилы? Раст начинает вытеснять легаси говно из мира системщины семимильными шагами. В гугле мимокроки явно не работают, и они понимают, что перед ними будущее системщины - Раст.
698 1991488
699 1991631
>>1991419

>Что скажете в своё оправдание, плюсодебилы?


Плюсы и раст это язык для бэк энд богов бумеров которые вкатились 20 лет назад. Остальным остается приминять софт скилы (отсос бибы) чтобы получить должность html макаки. Но это чисто мое личное мнение.
700 1991634
>>1973041 (OP)
Хороший программист это не тот у кого много знаний, а тот у кого много лапшечасов.

1 True
2 False
3 Call friend
4 Ask JS fags
701 1991638
>>1991634
Кто съел больше инстант размена?
702 1991639
Рамена
Нищук 703 1991658
Делаю ESP на C++ (OpenGL) Рисую обводку таким образом.
https://pastebin.com/R1FV4uWh

Когда сундук находится на освящении то обводка рисуется нормально и её прекрасно видно. Но почему-то когда сундук без освящения (закрыт блоками например) обводка становится темной. Почему? Как фиксить?

В /b/ никто не помог(
704 1991770
Сап плюсовики. Такие вводные и вопрос в том насколько трудно будет вкатиться на первую работку. А то время уже поджимать начинает, а прогать на чём-то дельном охота вместо всяких жс помоев. Сам чичас на 3 курса средневуза в дс по технической специальности. Выиграл пару тройку хакатонов. Правда на питонах писал, которые знаю +- норм, но в сравнение с плюсами особо не идёт, ибо на них я тоже раньше ради интереса блокноты. Думаю наебнуть кормена, пару петпроджектов уровня своя рисовалка
705 1991788
>>1991770

> жс помоев.


Пошел на хуй с треда.
706 1991792
>>1991788
Залетная жс макака?
Мимо
707 1991879
>>1991770
Ищи любую стажировку\интернатуру, их дохуя. У того же хуяндекса
708 1992097
>>1991792
const moiHui={
len:300,
ebat(mamkaObj){
mamkaObj["pleausure"]=100.0;
console.log("Horosha su4ka");
},
};
const tvoyaMamka=Object.create({shluha:true});
new Promise(function(resolve,reject){Object.assign({},moiHui)?.ebat(tvoyaMamka);resolve(1);}).then(()=>console.log("Ti hui"))
709 1992124
>>1991879
Недавно был в треде, говорили стажировки говно и лучше сразу на джуна тянуть лямку.
Или стажировки не говно?
710 1992168
>>1991658

>освящение


г-споди, спаси и помилуй

А может GL_LIGHTING не отключать? И насколько легитимно вызывать glDepthRange с 0,0 ?
711 1992191
Как сейчас с десктопом вообще? А то сидел дрочился с бэкэндами, а тут пришло время работку новую искать и думаю в десктоп закатиться. Имеет смысл вообще? Или сейчас абсолютно всё в облаках
712 1992273
>>1992191
Все как и было, это не десктопа стало меньше, это веба и мобилок стало больше.
713 1992311
Как сделать так, чтобы один пользовательский тип приводился ко второму автоматически?
Пишу свои велосипеды, сейчас пишу аналог optional, и хочу чтобы было возможно писать что то типо return null_opt, в функции которая возвращает option<T>, где null_opt - какая нибудь константа от моего типа пустышки
Ну и хотелось бы чтобы T в Option<T> сам преобразовывал

чото ничего найти не могу в гугле, а как в стандарте это реализовано тоже непонятно
714 1992327
>>1992311

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


шапка
https://en.cppreference.com/w/cpp/language/cast_operator
715 1992332
>>1992327
спасибо большое!
гуглил как дибил, прошу прощения
716 1992467
Народ, можете пет проджектов посоветовать?
717 1992474
>>1992467
Напиши тетрис на SFML
718 1992482
>>1992474
Блять.
719 1992486
>>1992467
Пет проджект - он от слова "pet" - домашнее животное, любимец; то, на что тратят свободное время. Часто эта возня может длится годами.

Что тут тебе можно посоветовать, кроме совета заниматься тем, что доставляет?
720 1992529
>>1992467
Как тебе выше ответили - пет это то, что нравится писать. Так что тут есть два варика - либо пишешь что-то по твоей любимой предметной области, либо пишешь что-то базовое из той, которую не знаешь, но хотел бы освоить. (СУБД, сервер, движок..). Второе позволяет объединить приятное с полезным.
721 1992665
Есть ли смысл в 2к21 вообще вкатываться через плюсы? Какие преспективы? Ведь как я понимаю кроме как яндекса - мейла ,embeded и формошлеперов на кьюте из около гос контор плюсы уже не нужны?

Так же интересны аноны которые уже вкатились(надеюсь они тут есть):
Какая зп, чем занимаетесь?
722 1992668
Стыд-то какой.
Решил вспомнить как на С++ писать спустя 3 года как закончил вузик и соответственно 4 лет работы на жаве и код не компилируется. Пиздос.
Скажите хоть что я не так делаю.
723 1992684
>>1992668
Что выкидывает?
724 1992688
>>1992684
>>1992668

Блин. Я дебил. Сори. Я gcc для сборки использовал, а он не знает про эти iostream. С помощью g++ собралось.
Пиздос. Теперь еще больше стыдно.
725 1992694
>>1992688
бывает и такое...
726 1992713
>>1992665
еще геймдев
еще что то системное
727 1992719
>>1992665
бамп вопросу!
Мимо
728 1992725
>>1992668
Ты зачем *.cpp инклудишь, окаянный?
729 1992734
>>1992725
Он класс создал через cpp файл. Без h. 100%
730 1992735
>>1992734
пс ибо так в жаве делают
731 1992744
Чото уже 21 год, а cpp20 мало кто пользуется
Ни модулями, ни концептами...
по крайней мере в моем окружении
732 1992768
>>1992744
Модули нихуя не работают. А концепты мало где нужны, кроме буста и прочего.

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

Короче, жду Вижуал студию 21 (или уже 22 лул) - и переезжаем на работе.
733 1992789
>>1992665
Еще телеком. Но чтоб нормально получать, надо выучить не только стандарт крестов, но и стандарты LTE, 3/4/5G, SIP, SCTP, SNMP, AMPQ, XCAP и хуй знает что еще.
734 1992871
>>1977478
Поддерживаю >>1977312.
image.png227 Кб, 398x499
735 1992877
Доброгго времени суток. Интересует инфа по книге "C++ Concurrency in action". Она же "Паралельное программировани на С++ в действии."

1) Первое издение охватывает только С++ 11, второе ещё и 14 и 17. Много ли потеряю, если куплю первое издание?

2) Если не много, то стоит ли брать русскую версию? То бишь как там с качеством первода?
736 1992896
>>1992744
В проде выше 14 вообще редко где встречается. 17 и 20 нужны только чтобы на собесах выглядеть бодрее.
Иногда банально нет нормального компилятора под устаревшее железо. Иногда ведущим прогерам не особо всралось чё там опять навыдумывали. Ещё есть чехарда типа before c++14 так, since c++14 сяк, after c++14 хуяк (зачем использовать инструмент, если он раз в 3 года меняется, а порой улетает в deprecated). Ну и основное, что в плюсах любой хуйнёй можно ногу прострелить себе, ему и вон тому парню, поэтому вменяемые кодеры молодых и шутливых с с++20 сразу шлют нахуй.
737 1992898
>>1992896

>В проде выше 14 вообще редко где встречается


лул, везде уже. Старики, дрочащие на хуйню - не нужны
738 1992903
>>1992665
Именно вкатываться - нет. Сейчас проекты пишутся сразу на нескольких языках, поэтому в одну и ту же тематику можно через любое место заехать, а потом переобуться. Вкатывайся в пихон или джаву - там банально больше платят. Работа на пихоне часто соседствует с работой на плюсах.
739 1992909
>>1992898
Ну да, ну да в 2018 году c++17 вышел, а с++20 в середине 20-го. Что там у тебя за прод такой, что ты его менее 2 лет писал? Или вы там навалились и всю кодовую базу на новый стандарт перекатили?
740 1992917
>>1992909

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


Заменить -std=c++14 на -std=c++17 и в паре мест сделать s/auto_ptr/unique_ptr/ - не то что бы очень сложно или долго.
741 1992921
Гайс, какого проекта хватит, чтобы хоть начали отклики кидать?
742 1992925
>>1992903
Типо курсе на 3 первую работу в плюсах смысла искать не много, да?
743 1992926
>>1992917
auto_ptr ещё в c++11 в deprecated улетел 10 лет назад. Тебе говорят про код на 17 стандарте, а ты мне про директивы компилятора.
744 1992929
>>1992925
Ну тут по настроению. Обычно к концу вузика очень нужны деньги. Хату снять, тянку заинтересовать, поехать мир посмотреть. С плюсами ты тоже будешь иметь денежку, но сильно не разгуляешься.
745 1992931
>>1992929
А деньги я так понимаю это жава с питоном?
746 1992932
>>1992926
Ну допустим вы все системные пердоли с файлами заменили на std::filesystem. А потом нормально протестили и задавили все баги.
747 1992933
>>1992931
Пс и если да, то что тогда выбрать, если мне прям сильно вставляют алгоритмы со структурами данных и прочая залупа. Я так понимаю жабу?
748 1992937
>>1992931
На данный момент да. Вообще деньги там, где есть работа с иностранцами (до короны ещё командировки были). На плюсах тоже такое бывает, но это чаще топ тир типа nvidia, huawei, intel и прочих.
749 1992939
>>1992926
Депрекейтили да, а перестать компилироваться код с 17-ого стандарта начал. Или для тебя "писать на 17-м стандарте" значит сразу весь код переделать с новыми фичами, иначе не то?
750 1992941
>>1992937
А тут я прав, да?
>>1992933
751 1992944
>>1992933
Алгоритмы на питоне пишут (и иногда потом портируют на с++ чтобы быстрее работало). Всякий ML, нейронки и прочее на питоне сейчас.
Java это enterprise - всякая корпоративная хуйня по управлению ресурсами компаний (документооборот, ERP системы, складское по...). Там нужно писать всякую заумную логику, которая нужна заказчику. Алгоритмов там мало. Есть ещё мобилки на java/kotlin - там поинтереснее.
752 1992946
>>1992944
Мобилки интересное направление? Под алгоритмами я кстати имел ввиду всякие сортировки, обходы графа и прочую красоту. А что сейчас с мобилками? Хорошее направление для вкатыша в плане тасков и денег?
753 1992947
>>1992939
У меня были недавно траблы, когда коллеги накатали на 17 стандарте, а тулчейн одной из целевых железок его не вывозит. Сидел ковырял ебучий стандарт, в котором оказалось, что фича не компилится из-за before 17 and since 17.

Писать на 17 стандарте, это когда у тебя активно используются наиболее полезные нововведения (filesystem, string_view и from_char/to_char, распараллеленные алгоритмы, std::any ...).
754 1992951
>>1992946
Спроси в android треде. На плюсах обычно оптимизацией под мобилки занимаются (допустим когда игры портируют и там больше не алгоритмы, а возня на границе структур данных и аппаратной части).
755 1992953
>>1992951
Хорошо, спасибо тебе большое анонче
756 1993054
Как можно сделать мапу вида <string, функция>? И возможно ли это вообще?
758 1993066
>>1993054

>И возможно ли это вообще?


Берёшь и делаешь, ничего невозможного.
https://godbolt.org/z/a63dfbMK4
759 1993069
>>1993054
#include <functional>

std::map<std::string, std::function<int(int)>> m;
m["foo"] = [](int x) { return x; };
int y = m["foo"](123);

И да, сигнатуры функций должны быть одинаковыми, это не джаваскрипт и не питон.
1383234916537.jpg146 Кб, 468x440
760 1993075
>>1993069

>сигнатуры функций должны быть одинаковыми


А можно делать type erasure то есть, как говорят в народе, кастовать к void*
761 1993085
>>1993064
>>1993066
Спасибо за ответы, но я имел в виду функции с различными сигнатурами. Допустим, я хочу, чтобы одним элементом мапы была void функция без параметров, вторым - int функция с параметрами double, float и т.д.
762 1993088
>>1993075

> void*


Тогда лучше сразу джаваскрипт или питон.
763 1993090
>>1993075
Можно поподробнее?
764 1993091
>>1993085
Ты сам-то не заебешься пыль глотать потом разбираться, что у тебя когда должно вызываться?
765 1993107
>>1993091
Ладно, изложу задачу: программа должна парсить строки, в которых даются команды.
Например, имеем файл:
get
pet
play
take
Каждая подразумевает определенный уникальный алгоритм. Я решил написать n методов с такими же названиями, т.е. методы get(), pet(), play(), take() и загнать их в мапу вида <string, функция>. Таким образом, если мы получили строку pet, то будет вызываться функция pet() и т.д.
Можно сделать через свитчи, но код получится хуево масштабируемым и медленным. Методов может быть сотня. Однако вариант с мапой походу нерабочий, так как сигнатура у каждой функции разная. Какие еще могут быть варианты для решения такой задачи?
766 1993118
>>1993107

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


Если общее решение, то это стейт-машина.
Возможно, у конкретно тебя, прокатит что-то попроще.

В любом случае расслабь булки: за один вечер не осилишь.
767 1993122
>>1993090
Нет, ты ещё зелёный.
768 1993123
>>1993122
Сорри, не дописал и случайно нажал отправить. Можно пойти путём Джависта и сделать класс Function, который принимает массив объектов Parameter. И каждая твоя функция будет обёрнута в этот класс и сама проверять и разворачивать параметры. Но вообще

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


Через свитчи все виртуальные машины работают, не должно быть долго. Читал недавно, что threaded-code (оптимизация над такой структурой) даёт всего несколько процентов на текущих системах, поэтому не должно быть медленно.
769 1993129
>>1993118
стейт-машина - это делать enum команд и через свитчи вызывать нужную функцию?
>>1993123
Честно, нихуя не понял первый способ, можешь в виде кода написать, как это примерно должно выглядеть?
Но я так понимаю, что надо делать свитчами
770 1993146
>>1993129

>это делать enum команд и через свитчи вызывать нужную функцию?


Да (в минус-первом приближении).

>через свитчи


Тебе ничто не мешает запилить мапу map<Command, Action>.
Ну всмысле ничто, кроме отсутствия у тебя классов Command и Action.
771 1993155
>>1993129
Если ты прям так бескоишься за лишние такты ЦПУ, то посмотри, как делают стейт-машины сишники. Они-то уж точно хуйни не посоветуют.
images.png10 Кб, 225x225
772 1993157
Какое же говнище этот Asio, просто пиздец. ИО-сервисы, аксепторы, эндпоинты, асинк, несколько способов обработать ошибки, хуй проссышь. Никаких ламповых connect/listen/accept/send/recv. Как это вообще в хеллоуворлде юзать, у меня же не хайлоад сервер мморпг с сотнями команд, а учебная приложуха. Слишком сложно, ниасилил.
773 1993158
>>1993146
Запилю я мапу <Command, Action>. Как будет выглядеть класс Action?
774 1993159
>>1993155
Ну тут дело не в лишних тактах цпу, а в том, что если у тебя будет 1000 методов, а потребуется самый последний, то тебе придется проходить через тысячу кейсов. В то время как unordered мапа даст O(1)
775 1993161
>>1992909
Когда мы писали прод в 2017, у нас был experimental filesystem и костыли вместо structured bindings, Когда мы переехали на 17 стандарт - мы просто все TODO починили, убрали эксперимент фс, и активно начали пользоваться ништяками типа if constexpr, structured bindings, и прочей милости.

Как переедем на 20 - сразу же весь проект переведем на модули (проебем прилично времени, но нам разрешают), и активно будем юзать std::format.

Проду - 6 лет. Я лично его переводил с 11 на 14, и с 14 на 17.
776 1993169
>>1993158

>Как будет выглядеть класс Action?


Как пожелаешь, так и будет.
Главное, что ты все сумел обобщить в одну сущность и Страуструп тебе больше не ебет мозг со своей проверкой типов.
778 1993186
>>1993159

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


Свитчи, в которых выбор делается по набору интов в каком-либо непрерывном диапазоне, компилируются в jump table, что есть O(1) и очень и очень быстро.
779 1993187
>>1993186
Быстрее свичей только goto.
780 1993190
>>1993107

>Например, имеем файл:


>get


>pet


>play


>take



>Каждая подразумевает определенный уникальный алгоритм.


Подразумевает где? У тебя в голове?
781 1993208
>>1993187
Свич и есть goto. Как думаешь, почему после кейсов двоеточие как после меток?
https://en.wikipedia.org/wiki/Duff's_device
782 1993255
>>1993161
Ты конечно знатный сиделец, что 6++ лет на одном месте продержался. Это и дало тебе возможность портировать проект, потому что ты знал в нём все входы и выходы. В реальной жизни часть кодовой базы тебе не известна и даже тестами не обложена. Не говоря о том, что кто-то что-то там закладывал в виде experimental. Ещё надо обосновать переезд, выбив под это время и деньги.
783 1993268
>>1993255
Ну, те части, которые я не знал, просто С++17 включали - не трогали функционально, т.к. работало до нас - пусть работает.

А так - куа есть, е2е тесты есть, пусть ебутся.
image.png7 Кб, 997x43
784 1993346
Почему const методы начинают возвращать const значения, даже если те не являются таковыми?

Пример:
class A
{
public:
int m = 5;

int& getM() const { return m; } // 1
const int& getM() const { return m; } // 2
};

Вариант 1 не сработает, будет ошибка пикрил, мол, нельзя const int передавать в неконстантную ссылку. Хотя m у нас константой не является. Выходит, мы помечаем метод словом const, то компилятор делает (или расценивает?) возвращаемое значение из этого метода как const? И где про это можно почитать?
785 1993358
>>1993346
потому-что ссылку возвращаешь.
786 1993660
>>1993346
`return m;` заменяется на `return (this).m;` (https://timsong-cpp.github.io/cppwp/n4861/class.mfct.non-static#3.sentence-1)
а если метод `const`, то тип у `this` это `const A` (https://timsong-cpp.github.io/cppwp/n4861/class.this#1.sentence-2).
У выражения `(
this).m` тип `const int`, т.к. квалификаторы `(*this)` и `A::m` «объединяются» (https://timsong-cpp.github.io/cppwp/n4861/expr.ref#6.2)
787 1993661
>>1993660
cyka blyat.

`return m;` заменяется на `return (⚹this).m;` https://timsong-cpp.github.io/cppwp/n4861/class.mfct.non-static#3.sentence-1

если метод const, то тип у `this` это `const A` https://timsong-cpp.github.io/cppwp/n4861/class.this#1.sentence-2

У выражения `(⚹this).m` тип `const int`, т.к. квалификаторы `(*this)` и `A::m` «объединяются» https://timsong-cpp.github.io/cppwp/n4861/expr.ref#6.2
788 1993967
>>1993661

>если метод const, то тип у `this` это `const A`


`const A⚹`, конечно же
789 1994100
Из отладочных символов в готовом бинарнике можно выпилить имена классов и методов? Или это чревато? В VS 19 все что можно - включал, все оптимизации, но в отладчике все равно имена классов и методов как на ладони. Может другой компиль попробовать, или там так же?
a6408c.jpg17 Кб, 200x292
790 1994105
>>1993159
можно использовать деревья из функций
791 1994144
>>1994100
Может просто не класть pdb рядом с бинарём (альтернативно, стрипать символы в юниксах)?
792 1994156
>>1973041 (OP)

Страуструп(Бьярне Страуструп - Программирование. Принципы и практика с использованием C++ (2016)) или Липпман(Стенли Б. Липпман, Жози Лажойе, Барбара Э. Му - Язык программирования C++. Базовый курс - 2014)?
793 1994175
>>1994144
рядом с бинарем ничего нет
794 1994226
>>1994100
Студия в дебаге всегда подключает .pdb который она генерирует.

В самом экзешнике (если это скомпилирован в Release) - нихуя нету
lox.jpg43 Кб, 767x115
795 1994263
>>1994226
да я юзаю x64dbg, заебали.
Точно. Ведь экзешник содержит путь к локальному файлу pdb, и отладчик его подтягивает, куда не перемещай бинарник, хоть в жопу себе запихни.
796 1994301
>>1994226

>В самом экзешнике (если это скомпилирован в Release) - нихуя нету


Что, даже rtti-именов нет?
797 1994322
Делаю тестовое. Вышло на 1200 строк. Это норма для тестового, или работодатель охуел такое давать? Заняло 3 дня по 6 часов
798 1994327
>>1994156
Липпман
799 1994336
>>1994327

Чудненько, спасибо.
800 1994360
>>1992946
Помню, видел на хх подходящую тебе вакансию - математик-программист для онлайн казино. Рофлы рофлами, но там скорее всего минимум проги и максимум матеши - теорвер, матстат, дискретка. Мб и оптимизации тоже, т.к. стек был c++/жаба
801 1994640
>>1973041 (OP)
Унижения крестоёбов бесконечны:

>C++ developer


>Локация: Санкт-Петербург


>Высшее техническое или математическое образование (магистратура), существенным плюсом будет обучение в аспирантуре или наличие PhD.


>10+ опыт работы в проектах, связанных с разработкой высоконагруженных сервисов


>Зарплатная вилка: 150-350 т.р.

sage 802 1994659
>>1994640

> >Зарплатная вилка: 150-350 т.р.

803 1994662
>>1994659

>10+ опыт работы в проектах, связанных с разработкой высоконагруженных сервисов


>существенным плюсом будет обучение в аспирантуре или наличие PhD.



Стоило того
804 1994697
>>1994301
Если ты их не используешь - то нет
805 1994700
>>1994640
Ну, туда просто никто не пойдет.

Мимо-700к-сами-знаете-кто
806 1994719
>>1994640
cherry picking as is. Ты можешь таких же вакансий на любой язык понадёргать. Плюс это ДС2, там зп ниже на 20-25%, чем в московии.
За 150к на такую позицию никто не пойдёт, даже нахуй слать будут (сам порой отбиваюсь от таких "работодателей").
807 1994783
>>1994700

>туда просто никто не пойдет


>>1994719

>на такую позицию никто не пойдёт



Это Хуйвей, так что пойдет
808 1994787
>>1994783
Чёт не припомню чтоб в дс2 был офис
809 1994829
>>1994783
Есть целый пласт вакансий на удалёнку, где ушлые масквичи ищут лошков подешевле. Не обязательно на плюсы. А ещё залётные из всяких НиНо и Новосибирсков на fullstack за 120к.
810 1994914
Анон, можешь помочь с регуляркой для строк типа:
"name: xxx dob: 23.09.1235 time: +12:34:45 up: never kdd: P1D->324 tdd: n g 1/3 и т.д. + мусор в конце"
Имена перед символом ":" могут быть совершенно любые.
Для одного значения я написал такую "\\s\\:\\s(.\\S+)", а как сделать для нескольких я вообще не знаю.
811 1994933
>>1994914
Я б заебенил цикл по char* как деды воевали. А то сам потом охуеешь в собственной регулярке разбираться.
812 1994975
>>1994914
Не нужны регулярки.
Разделить по двоеточие пробел, потом кроме первого и последнего разделить по первому пробелу с конца.
813 1994983
>>1994640
Бля лол, устроился в украинском ДС2 за 1к евро джуном без опыта спустя 5 месяцев вката.
814 1995002
>>1994914
[a-zA-Z]:(.?).\s
815 1995012
>>1993107
funtab[n](args);
816 1995064
>>1995012
Вот этот знает толк. Многоточие, правда, проебал
817 1995191
#include <regex>
#include <iostream>

using namespace std;

int main()
{
string str = "name: xxx dob: 23.09.1235 time: +12:34:45 up: never kdd: P1D->324 tdd: n g 1/3";
regex r("xxx");
cout << regex_match(str,r);
return 0;
}

регулярки на ++ не ищут подстроку в строке?
818 1995272
>>1995191
Если документацию не читать, то не ищут.

https://en.cppreference.com/w/cpp/regex/regex_search
819 1995290
>>1995272
на шарпах оно по дефолту все
820 1995298
Почему читая документацию - хочется плеваться? Почему нельзя было сделать как МС - https://docs.microsoft.com/en-us/dotnet/standard/base-types/regular-expressions , хотя бы подсветку кода добавить?
821 1995460
>>1995298
Да пожалуйста
https://doc.qt.io/qt-5/qregexp.html
Кто на этом бабло делает, у тех и подсветка кода с финтифлюшками.
822 1996072
Сап программисты, помогите зеленому.
Есть экземпляр класса Hero, ссылка на который передается в класс города City(пик 1). Он передается в метод EnterTheCity(пик 2), где после передается в метод EnterTheMarketPlace(Пик 3).
Баг заключается в следующем: Все действия по изменению полеё к воспроизводимые над экземпляром hero в EnterTheMarketPlace пропадают, после возвращения в метод, которым он вызывался.
Соррян за такой вопрос, понимаю что нужно знать код, чтобы фиксить баги, спрашиваю тут затем, что думаю, что ошибка возможна в передаче объекта класса в параметрах методов(хз как)
823 1996106
>>1996072
В энтерсити нужно передавать указатель или ссылку, а у тебя передается по значению, т.е. внутри этой функции действия выполняются над внутренней копией.
824 1996115
>>1996106
Большое спасибо, анончек, теперь я умею больше
825 1996346
>>1995460
МС тоже бабло делает на своем фреймворке значит? ))
826 1996382
>>1996346
Ты выражения "Expand embrace extinguish" и "вендор лок" не знаешь? Они же не от всего сердца язык и экосистему делают.

>смайлики


Тебе тут не контактик
827 1996400
>>1994322
Конечно можно сказать что ты там нахуевертил, но чисто со стороны - охуел. У меня все тестовые были максимум на 2 часа кодинга и строк на 500. Правда я шарпоеб.
123.png3 Кб, 280x327
828 1996420
Мастера сиплюсплюса. Поясните за структуру в ваших проектах.
Я вот хочу побаловаться с сиплюсплюсом и сделать простенький платформер. Ну так вот, я не совсем понимаю, как должна структура выглядить.
А еще, что произойдет страшного если я в hpp файле буду сразу в классе хреначить реализацию? На других языках же вроде так делают.
Я пока что вот такое вот решил использовать. Но думаю что надо бы делать правильно и как у вас принято, раз уж решил сиплюсплюс использовать. Потому - поясните за ваши бест практис по организации структуры прокета. Как отделяются клссы что должны быть доступны только в рамках проекта от тех что должны быть публичны ну и вообще, если не сложно.
829 1996477
>>1996420
Препроцессор c++ подставляет текст hpp файла в те места, где он включается. Соответственно если ты что-то в hpp меняешь, то все cpp, в которых есть include, нужно перекомпилировать. Поэтому в hpp обычно реализацию не пишут (кроме шаблонов, где по-другому нельзя).
830 1996588
>>1996382
Сисярп это вендорлок?
831 1996672
>>1996588
Единственное, зачем мелкософты создали шарпы - чтобы ты не перешёл к Sun (ну или к Ораклу сейчас) и, Господи прости, на какой-нибудь Solaris.
832 1996676
>>1996672
это заговор вселенского масштаба
833 1996735
Матерые эмплойщики подскажите, а через сколько после собеса могут офер предложить? Есть какая-то стандартная практика? Или обычно если через час там не перезвонили, то мимо крокодил?
834 1996749
>>1996735
Когда как. Один раз в тот же день позвонили (хотя сказали, что нужно посовещаться с каким-то челом, который из отпуска только через неделю выйдет - наверное так он и не вышел), один раз ~через 5 рабочих дней.
835 1996815
>>1977312
В стабильном Дебиане всё древнее в целях стабильности (а testing для экстремалов), поставь лучше производные убунты, например Xubuntu (хоть в виртуалку) или Mint. Самый простой и привычный дистрибутив, в котором всё есть и довольно свежих версий. В Дебиане компилятор будет как говно мамонта, где древние глюки давно исправлены. А какие-нибудь библиотеки с гитхаба заебёшься им собирать. В Ubuntu можно через ppa поставить белое свежие компиляторы и библиотеки, если уж совсем припрёт.
836 1996836
>>1996815
Уже много лет Debian Testing - брат жив, полёт нормальный. А вот Unstable я бы не решился ставить, да.
837 1997131
Наверное, платина, но как ньюфаг спрошу.
Есть метод,возвращающий маршрут между городами
vector<City> getRoute(City&, City&);
В него как-то вложен метод, возвращающий путь в графе:
vector<Vertex> getPath(Vertex, Vertex);
находящий путь между 2мя вершинами.

Если пути нет, оба этих метода должны сообщить клиенту
(в разной форме) причину
Как это лучше всего сделать?
Завести две структуры вроде PathSearchResult и RouteSearchResult? Кажется громоздко.

Кидать исключения? Но ситуация вроде бы не тянет на ошибку.
838 1997178
анон, что за дыру я нашел?

void func(int i){
char c= 's';
cout << "i = " << i << endl << (int)c << endl;
c += i;
cout << (int)c << endl << "===========" << endl;
}

int main()
{
func(12);
func(13);
func(14);
return 0;
}

https://ideone.com/QK4GqE

что за говно?
839 1997179
840 1997181
>>1997178
к символу char добавляю int = 12 - все хорошо.
к символу char добавляю int = 13 - все пошло по пизде, и char становится минусовым значением
841 1997185
>>1996477

> кроме шаблонов, где по-другому нельзя


Но ведь можно.
15626970714270.png12 Кб, 400x400
842 1997189
>>1997181
>>1997178
Вот ты это, блять, серьёзно сейчас? С кем я сижу в одном треде..
843 1997192
>>1997189
а что за пиздень?
844 1997194
>>1997131
Возвращать вектор нулевой длины, или optional, или кортеж из вектора и результата поиска.
845 1997198
>>1997131
Возврат кода результата, возврат структур, эксепщоны - Choose your poison, как говорится. Делай как покажется удобным. Если есть доступ к 17му стандарту, то можно посимпатичнее сделать со structured binding.
На моей рабочей кодовой базе очень часто встречаются функции, возвращающие буль и дергающие пачку не-конст референсов. Мне это не очень любо, сам предпочитаю для простых наборов данных вернуть простую структуру с флагом успешности операции. 17ых плюсов нет, потому не так симпатяво как хотелось бы.
846 1997203
>>1997192
Это то самое ub-но-работает, от которого тут уже кто-то горел.

https://ru.wikipedia.org/wiki/Дополнительный_код
43 Кб, 640x363
847 1997209
Заебало, уже 4ый день пытаюсь собрать libcxx для clang, чтобы библиотека std заработала. В cmake все сконфигурировал, вроде, ошибок нет, генерация файла сборки (Ninja) тоже без ошибок. Начинаю собирать, все успешно (с несколькими warning'ами), но на 217/219 исходнике, где начинается сборка потоков (файл libcxx/src/support/win32/thread_win32.cpp), начинаются error'ы. Их много, но по порядку: самыми первыми начинают обсираться вот эти и подобные им ассерты:

>E:/dev/libcxx/src/support/win32/thread_win32.cpp:20:50: error: static assertion failed


>static_assert(sizeof(__libcpp_recursive_mutex_t) == sizeof(CRITICAL_SECTION), "");


Ссылка на файл: https://github.com/llvm/llvm-project/blob/llvmorg-11.0.0/libcxx/src/support/win32/thread_win32.cpp

А все потому что __libcpp_recursive_mutex_t (которая определяется в #include <__threading_support>; путь libcxx/include/__threading_support) имеет размер 8 байт, а размер CRITICAL_SECTION (которая в windows.h где-то, и является надстройкой typedef _RTL_CRITICAL_SECTION CRITICAL_SECTION) имеет размер 40 байт.
Ссылка на файл: https://github.com/llvm/llvm-project/blob/llvmorg-11.0.0/libcxx/include/__threading_support

Далее, смотрю содержимое файла __threading_support, внутри которого есть конструкция из директив #if / #elif / #ifndef и макроса defined(), выглядит это так: https://pastebin.com/N2QgtQ5h Здесь самое интересное то, что происходит внутри _LIBCPP_HAS_THREAD_API_EXTERNAL, где для каждой архитектуры (моя должна быть __x86_64__) объявляется нужный размер для той самой __libcpp_recursive_mutex_t. В данном случае это переопределение типа указатель на массив размером 5 типа void, что как-бы намекает на тот самый ассерт, где сравниваются размеры __libcpp_recursive_mutex_t и CRITICAL_SECTION, и на то, что в этом случае ассерт должен пройти, т.к. размер void равен 8 байт, а т.к. это еще и массив из 5 элементов, то 40 байт, что равно sizeof(CRITICAL_SECTION).

Но! Проблема в том, что я в эту область при компиляции не попадаю и мой sizeof(__libcpp_recursive_mutex_t) == 8. Я начал проверять конфигурацию в cmake gui, вот список моих настроек: https://pastebin.com/19ZN610p В нем есть шесть переменных с моими настройками потоков:
1. LIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY:BOOL=OFF
2. LIBCXX_ENABLE_THREADS:BOOL=ON
3. LIBCXX_ENABLE_THREAD_UNSAFE_C_FUNCTIONS:BOOL=ON
4. LIBCXX_HAS_EXTERNAL_THREAD_API:BOOL=OFF
5. LIBCXX_HAS_PTHREAD_API:BOOL=OFF
6. LIBCXX_HAS_WIN32_THREAD_API:BOOL=OFF

Теперь, возвращаясь к файлу __threading_support и имея вышеупомянутый набор переменных, я пытаюсь поймать момент, когда я смогу попасть в необходимый _LIBCPP_HAS_THREAD_API_EXTERNAL. Работоспособность и реакцию на различные настройки этих переменных я проверял с помощью добавления ассерта_static(0, "") в интересующую меня область. По порядку:
1. LIBCXX_ENABLE_THREADS влияет на работу условия #if !defined(_LIBCPP_HAS_NO_THREADS)
2. далее, первым должно проверяться условие #if defined(_LIBCPP_HAS_THREAD_API_PTHREAD) и оно выполняется почему-то всегда, даже если LIBCXX_HAS_PTHREAD_API:BOOL=OFF
3. следующее условие #elif defined(_LIBCPP_HAS_THREAD_API_C11), оно наоборот, не срабатывает никогда (честно, я даже не знаю, связано оно как-то с переменной LIBCXX_ENABLE_THREAD_UNSAFE_C_FUNCTIONS или нет)
4. наконец, условие #elif !defined(_LIBCPP_HAS_THREAD_API_EXTERNAL), тут все не совсем ясно, если я отключаю все, кроме LIBCXX_ENABLE_THREADS и LIBCXX_HAS_EXTERNAL_THREAD_API, то появляется уже новая ошибка на 180/219 исходнике во время компиляции:

>E:/dev/libcxx/build/include/c++/v1/__threading_support:23:11: fatal error: __external_threading: No such file or directory


>#include <__external_threading>


Я пытался найти этот файл, но его нигде нет, даже в исходниках директории libcxx/src/src/..., тут замечу, что файла нет уже в директории, где библиотека собирается - libcxx/build/include/c++/v1/__threading_support

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

Моя конфигурация:
OS: Windows
Arch: x64
Compiler: gcc, g++ (порт под винду mingw-w64 с posix потоками <pthread.h>, целевые сборки которого i686-w64-mingw32 (32-bit) и x86_64-w64-mingw32 (64-bit))
LLVM ver: 11.0.0 (от туда же и библиотека libcxx https://github.com/llvm/llvm-project/tree/llvmorg-11.0.0)

П.С. Казалось бы, раз порт mingw настроен под posix потоки, достаточно просто включить LIBCXX_HAS_PTHREAD_API:BOOL=ON, но нет. Нельзя просто так взять и собрать библиотеку, хотя llvm и clang были собраны успешно.
43 Кб, 640x363
847 1997209
Заебало, уже 4ый день пытаюсь собрать libcxx для clang, чтобы библиотека std заработала. В cmake все сконфигурировал, вроде, ошибок нет, генерация файла сборки (Ninja) тоже без ошибок. Начинаю собирать, все успешно (с несколькими warning'ами), но на 217/219 исходнике, где начинается сборка потоков (файл libcxx/src/support/win32/thread_win32.cpp), начинаются error'ы. Их много, но по порядку: самыми первыми начинают обсираться вот эти и подобные им ассерты:

>E:/dev/libcxx/src/support/win32/thread_win32.cpp:20:50: error: static assertion failed


>static_assert(sizeof(__libcpp_recursive_mutex_t) == sizeof(CRITICAL_SECTION), "");


Ссылка на файл: https://github.com/llvm/llvm-project/blob/llvmorg-11.0.0/libcxx/src/support/win32/thread_win32.cpp

А все потому что __libcpp_recursive_mutex_t (которая определяется в #include <__threading_support>; путь libcxx/include/__threading_support) имеет размер 8 байт, а размер CRITICAL_SECTION (которая в windows.h где-то, и является надстройкой typedef _RTL_CRITICAL_SECTION CRITICAL_SECTION) имеет размер 40 байт.
Ссылка на файл: https://github.com/llvm/llvm-project/blob/llvmorg-11.0.0/libcxx/include/__threading_support

Далее, смотрю содержимое файла __threading_support, внутри которого есть конструкция из директив #if / #elif / #ifndef и макроса defined(), выглядит это так: https://pastebin.com/N2QgtQ5h Здесь самое интересное то, что происходит внутри _LIBCPP_HAS_THREAD_API_EXTERNAL, где для каждой архитектуры (моя должна быть __x86_64__) объявляется нужный размер для той самой __libcpp_recursive_mutex_t. В данном случае это переопределение типа указатель на массив размером 5 типа void, что как-бы намекает на тот самый ассерт, где сравниваются размеры __libcpp_recursive_mutex_t и CRITICAL_SECTION, и на то, что в этом случае ассерт должен пройти, т.к. размер void равен 8 байт, а т.к. это еще и массив из 5 элементов, то 40 байт, что равно sizeof(CRITICAL_SECTION).

Но! Проблема в том, что я в эту область при компиляции не попадаю и мой sizeof(__libcpp_recursive_mutex_t) == 8. Я начал проверять конфигурацию в cmake gui, вот список моих настроек: https://pastebin.com/19ZN610p В нем есть шесть переменных с моими настройками потоков:
1. LIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY:BOOL=OFF
2. LIBCXX_ENABLE_THREADS:BOOL=ON
3. LIBCXX_ENABLE_THREAD_UNSAFE_C_FUNCTIONS:BOOL=ON
4. LIBCXX_HAS_EXTERNAL_THREAD_API:BOOL=OFF
5. LIBCXX_HAS_PTHREAD_API:BOOL=OFF
6. LIBCXX_HAS_WIN32_THREAD_API:BOOL=OFF

Теперь, возвращаясь к файлу __threading_support и имея вышеупомянутый набор переменных, я пытаюсь поймать момент, когда я смогу попасть в необходимый _LIBCPP_HAS_THREAD_API_EXTERNAL. Работоспособность и реакцию на различные настройки этих переменных я проверял с помощью добавления ассерта_static(0, "") в интересующую меня область. По порядку:
1. LIBCXX_ENABLE_THREADS влияет на работу условия #if !defined(_LIBCPP_HAS_NO_THREADS)
2. далее, первым должно проверяться условие #if defined(_LIBCPP_HAS_THREAD_API_PTHREAD) и оно выполняется почему-то всегда, даже если LIBCXX_HAS_PTHREAD_API:BOOL=OFF
3. следующее условие #elif defined(_LIBCPP_HAS_THREAD_API_C11), оно наоборот, не срабатывает никогда (честно, я даже не знаю, связано оно как-то с переменной LIBCXX_ENABLE_THREAD_UNSAFE_C_FUNCTIONS или нет)
4. наконец, условие #elif !defined(_LIBCPP_HAS_THREAD_API_EXTERNAL), тут все не совсем ясно, если я отключаю все, кроме LIBCXX_ENABLE_THREADS и LIBCXX_HAS_EXTERNAL_THREAD_API, то появляется уже новая ошибка на 180/219 исходнике во время компиляции:

>E:/dev/libcxx/build/include/c++/v1/__threading_support:23:11: fatal error: __external_threading: No such file or directory


>#include <__external_threading>


Я пытался найти этот файл, но его нигде нет, даже в исходниках директории libcxx/src/src/..., тут замечу, что файла нет уже в директории, где библиотека собирается - libcxx/build/include/c++/v1/__threading_support

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

Моя конфигурация:
OS: Windows
Arch: x64
Compiler: gcc, g++ (порт под винду mingw-w64 с posix потоками <pthread.h>, целевые сборки которого i686-w64-mingw32 (32-bit) и x86_64-w64-mingw32 (64-bit))
LLVM ver: 11.0.0 (от туда же и библиотека libcxx https://github.com/llvm/llvm-project/tree/llvmorg-11.0.0)

П.С. Казалось бы, раз порт mingw настроен под posix потоки, достаточно просто включить LIBCXX_HAS_PTHREAD_API:BOOL=ON, но нет. Нельзя просто так взять и собрать библиотеку, хотя llvm и clang были собраны успешно.
848 1997211
>>1997209

>https://github.com/llvm/llvm-project/tree/llvmorg-11.0.0) <---


Скобка в конце лишняя захватилась в ссылку.
849 1997217
>>1997203
Это не ub, это оверфлоу.
850 1997219
>>1997209

>я проверял с помощью добавления ассерта_static(0, "")


я проверял с помощью добавления ассерта static_assert(0, "")
фикс
851 1997223
>>1997217
Оверфлоу - это ub.
852 1997224
>>1997217
Оверфлоу не ub только для беззнаковых типов.
853 1997241
>>1997224
А, ну ок.
sage 854 1997285
>>1997209
Что только додики не будут делать, лишь бы в Студии не нажать 2 кнопки и спокойно работать.
855 1997291
>>1997285
на анус себе нажми 2 раза, псина
856 1997313
>>1997209
юзай C#
857 1997325
я щас повешаюсь

поигрался с новым стандартом бля(
858 1997327
>>1997325
зато есть чем заняться
image.png95 Кб, 1229x765
859 1997376
Зеленый опять выходит на связь. Не до конца понимаю принцип работы с ссылками и указателями, пожтому прошу вашей помощи.
Посмотрите пожалуйста на данный пример говнокода. Прогга должна возвращать вектор объектов класса, чтобы использовать их в другом классе, однако return mercenaries вызывает Segmentation fault. Подскажите пожалуйста, в чем может быть ошибка?
860 1997404
>>1997376
Я не крестовик, но надо mercenaries = new что-то.
861 1997410
>>1997376
Ты возвращаешь ссылку на вектор, создаваемый функцией на стеке и уничтожаемый после выхода из нее. Возвращай по значению, после 17 стандарта это оптимизируется.
862 1997420
>>1997376
И new Units лишнее, ты создаёшь каждый раз брошенный объект.
image.png34 Кб, 584x315
863 1997422
... вот так вот?
864 1997425
>>1997376
Кстати, ты никогда не заходишь внутрь второго цикла. mercenaries.empty() всегда будет true в самом начале.
865 1997426
>>1997425
Это он будет пустым только первую итерацию, последующие он будет запргивать, не?
866 1997445
>>1997410
>>1997420
>>1997425
Спасибо анон(ы), ты(вы) лучший(лучшие), понять не мог в чем проблема напротяжении двух дней, добра тебе (вам).
867 1997455
>>1997426
А, да. Но у тебя немного криво отформатировано, я думал if дальше ещё продолжается.
868 1997475
>>1997376
У вас ссылка провисает
>>1997422
Не используй сырые указатели. Используй unique_ptr.
869 1997483
>>1997455
говно код написанный мной под трипом, вообще стремно что выкладываю такое, если бы увидел такое на шарпе посмеялся бы
870 1997570
>>1973041 (OP)
Что значит пикрил? Если я С++ дев, то я дед инсайд?
871 1997571
>>1973041 (OP)
У меня есть два года опыта плюсов. Сейчас есть компании, которым нужны такие спецы? Я типа уже мидл, кста? А то думаю свалить из своей компании нахуй.
872 1997590
>>1997570
Это значит что перекатыватель - говноед и школьник

>>1997571
Либо сильный джун, либо мидл, 2 года бывают разные.
Кто-то 2 года хуйлоад херачил, а кто-то кнопки в QT рисовал.
873 1997600
>>1997590
На проекте бекендом занимался. Логикой всякой там продуктовой. Иногда АПИ писал, иногда просто в коре чето делал.
Ну, допустим, если сильный джун. Могу я расчитывать в другой компании на зарплату выше 1к$? Чтобы я понимал имеет ли смысл вообще рыпаться.
874 1997602
>>1997600
1к баксов - это зеленый джун в ДС. Зависит от города
875 1997607
>>1997602
Город Харьков в ЕвропеУкраине.
876 1997624
>>1997602
В ДС2 в общем-то тоже, но не зелёный, а с розовыми щёчками.
877 1997659
Реквестирую чё почитать по архитектуре ПК, чтобы на такие вопросы отвечал занехуй
878 1997682
>>1997659
Ты не туда с вопросом своим зашел
Я вот только таненбаума читал, впринципе почти на все вопросы могу ответить

какая то дибильная идея олимпиадка по осям
879 1997812
Гайс, не могу заставить проггу работать в консольке, билдится нормально, но при открытии экзешника пик. Как фиксить? Комплиятор - Mingw.
при закачке этих файлов и ручной установке их программа грит, что необходимо переустановка, при переустановке повторяется та же история.
image.png54 Кб, 1446x732
880 1997814
>>1997812
Открепился пик
881 1997921
>>1997814
Там же написано, что надо либа, кинуть ее рядом с экзешником
882 1998046
>>1997814
Он у тебя ещё либгцц попросит и прочее
883 1998139
>>1998046
ага, пускай таблицу импорта через hex редактор чекнет, и все либы скачает)
884 1998243
>>1998139
Ну или пусть сразу научится пользоваться depends/dependencies/любой другой программой для просмотра зависимостей.
885 1998372
>>1998139
Да они в комплекте с мингв идут, надо просто путь в окружении прописать.
886 1998374
Или статически линковать.
887 1998383
Или нахуй пойти.
888 1998421
>>1998372
Подскажи пожалуйста, каким образом я могу это сделать?
889 1998466
>>1998421
Эээ
Найти внутри папок компилятора где эти библиотеки, и добавить путь к ним в переменную окружения PATH.
Снимок.PNG7 Кб, 358x162
890 1998621
Почему нельзя объявить глобальную переменную, а затем присвоить ей какое-то значение? Обязательно надо инициализировать её, либо делать присваивание уже в блоках кода? Прикладываю пример.
891 1998641
>>1998621
Потому что нельзя вне метода/функции выполнять операции, которые не являются инициализацией. Ты же не можешь вне метода/функции написать cout<< "[eq"<<endl? Вот здесь та же морковь.
892 1998657
>>1998621
но ты можешь ее инициализировать нужным значением вне блока кода, например так - int a = 15;
893 1998836
>>1998641
>>1998657
Я правильно понимаю, что буквально всё, что мы можем сделать вне блоков кода, это только объявлять и определять объекты?
И я так и не увидел ответа на вопрос почему, вернее сказать, для меня ответ нельзя это неполный ответ.
894 1998850
>>1998836

>Я правильно понимаю, что буквально всё, что мы можем сделать вне блоков кода, это только объявлять и определять объекты?


по сути - да

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


такой синтаксис, стандарт языка. Ты всегда можешь написать свой компилятор, с блэкджеком и шлюхами
895 1998859
>>1998836
Код в функции выполняется когда вызывается функция.
А когда должен исполнятся твой код? А если его много в разных местах файла? А если много цпп файлов с таким кодом и работают они с одними и те же данными? А если это вообще код в статически или динамически подключаемой библиотеке?
896 1998873
>>1976578

Столяр - это говно. Только время потеряешь. К тому же этот чудик зашифровал свои книги так, что из них никакой текст скопировать нельзя. Т.е. хочешь пример кода из книги скопировать к себе в IDE, а хуя - на выходе будет не код, а мусор.
897 1998875
>>1997814

Там же написано: переустанови Windows. Windows сама не переустановится.
898 1998876
>>1997659

Забей. Тебе это не надо. Скоро в армию весенний набор.
899 1998883
>>1998859
Я об этом думал, и мне как раз было интересно узнать, как это работает. Оказывается, такие стейтменты тупа не работают.
900 1998911
>>1998873
всё правильно. Код надо писать руками, для лучшего запоминания.
901 1998984
Есть задача очень быстро выгружать странички из интернета (только GET/ os: Win10), у кого был опыт работы с подобным, какой инструмент можете посоветовать? Wininet / Winhttp / boost / sfml / ... ? Может быть у кого завалялись статьи/гаиды.
Сейчас через Wininet выходит около ~0,8-1 сек. на страницу...
не очень хочется распараллеливать выгрузку
902 1999037
>>1998984
libcurl
903 1999080
Почему тут вылазит Segmentation faul при попытке присваиванию приватному полю объекта класса типа стринг?
904 1999129
>>1999080
Пофиксил
905 1999158
>>1999129
Амперсанд убрал?
906 1999193
>>1973041 (OP)
Начал писать на крестах скетчи для ардуино, для управления шаговыми двигателями @ час не мог понять, почему, когда я задаю больше колличество импульсов, двигатель делает меньшее количество оборотов @ в результате проблема оказалась в типе int, в который указывал количество импульсов и умножал это на микрошаг, а моём случае на 16 @ в результате на выходе получалось обрезанное число, и не возникало никаких ошибок, просто число обрезалось, чтобы уместится в тип int @ мне страшно представить, если подобная ситуация возникнет на каком-нибудь ядерном реакторе, короче типизация может быть опасной
907 1999248
>>1999193

>типе int, в который указывал количество импульсов и умножал это на микрошаг, а моём случае на 16


>типизация может быть опасной


Зато мы нашли причину проблем! Чертов инт, убрать его везде.
908 1999267
>>1999248
кек ну тогда получается, что на каждый пук нужно создать новую переменную которая будет принимать произведение двух чисел, а просто подставит как в моём случае микрошаг к переменной в которой указано кол-во импульсов нельзя, и в итоге мы получим лапшу из сотен переменных, нормально наверное писать такой код, когда ЗП почасовая
909 1999272
>>1973041 (OP) (OP)
Просто софт для реакторов пишут люди немного поумнее пердуинщика.
910 1999273
911 1999337
ок, а что можно почитать или посмотреть про анонимные функции Лямбда-выражения в этих ваших крестах?
912 1999390
Аноны, произошла какая-то хуйня. В общем, реализовал дек (двустороннюю очередь) через указатели, с примитивными типами данных работает нормально, но если пробовать засовывать туда строки, то всё идёт по пизде (пик1), после ретрая указывает на место в коде в пике2. Я пробовал создавать динамический массив стрингов отдельно и удалять его, и там всё было ок, но почему-то именно в этой функции всё идёт по пизде. Подскажите, где я опять обосрался, а то весь день уже ебусь, нихуя понять не могу.
913 1999412
>>1999390

>new Type[1]


Если у Type нет дефолтного конструктора, ты идешь нахуй.

>memcpy(...)


Если Type не POD, ты идешь нахуй.

>delete temp[]


К моменту выполнения этой строчки ты уже пошел нахуй.
914 1999413
>>1999390
создал в функци тип, удалил его, и еще пишешь - что нихуя не работает, что за пиздец?
915 1999426
>>1999412

>Если у Type нет дефолтного конструктора


У строк есть.

>Если Type не POD


Вот по этому поводу у меня было предположение, что со сложными структурами memcpy() не работает. В таком случае использовать std::copy? Или как в таком случае вообще копировать данные из одного участка памяти в другой?

>К моменту выполнения этой строчки ты уже пошел нахуй.


Ну это понятно, иначе бы ошибки с памятью не повалились бы. Просто не совсем понятно, как фиксить.

>>1999413

>создал в функци тип, удалил его


Удалил динамический массив объектов в данном случае же. Почему это не должно работать? В противном случае будут утечки памяти или я опять пидорас и что-то перепутал?
916 1999454
>>1999426
По нормальному, твой контейнер должен хранить не массив Type, а массив байт, в частности std::aligned_storage или его самописный аналог. (да, я же еще к memory alignment забыл доебаться)
И не копировать туда, а вызывать конструктор копирования/перемещения на нужном участке с помощью placement new.
А перед освобождением вызвать у каждого элемента деструкторы. То есть контейнер управляет временем жизни своих элементов.
917 1999466
>>1999454
Не проще Type тогда в vector хранить, чтобы не городить велосипед? Просто то, что ты предлагаешь в качестве решения, слишком сложно и муторно лично для меня, а сделать с этими ёбаными деками надо ещё кучу всего.
918 1999475
>>1999466
Не проще тогда в std::deque хранить, чтобы не городить велосипед?
14462154360410.jpg44 Кб, 601x601
919 1999479
>>1999475
Проще, но есть один нюанс в лабе написано, что классы стека и дека надо реализовать самому)))0)))0) и при этом они должны хранить строки))))0000))))0)))0))))0000
920 1999484
>>1999479

>лабы


Тогда C0ПР0ТNВЛ3НN3 Б3СП0Л3ZН0, ебош вектор.
921 1999611
C#:
(a,b) => {};
C++:
[](int a,int b) => {};
Почему тут лямбда такие убогие?
922 1999621
>>1999611
Скажи спасибо, что они вообще есть.
923 1999624
>>1999621
а string::split когда там обещают?
924 1999671
>>1999624
А ты ренжами.
925 1999673
>>1999193
вот скрин проблемы

лол и разрешить это не так просто как кажется, нужно прямо вот так:

long stepsToGo = 2500L * MICROSTEP;

>2500L



L там для левого числа, что бы показать компилятору, что это тоже long

что удивительно, код отрабатывает без выброса ошибки и как в случае на скрине, и так же в случае попытки типизации, но без L после числа @ это такие особенности крестов, или конкретно среды ардуино?
image.png20 Кб, 659x387
926 1999675
>>1999673
кек вот скрин с проблемой, сорян
927 1999686
>>1999611

>[]



вот эта хуитка, как я понял, может в себе содержать инструкции, которые указывают на переменные из родительской области видимости, как я понял, лямбда в крестах по умолчанию нихуя не видит переменные из своего контекста, их нужно указывать в этой хуитке вроде как
1616149470-aafbb86abd71dc118aed889e55617f63.jpeg57 Кб, 700x525
928 1999892
>>1999611

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

929 1999898
>>1999673
Дефолтные размеры типов платформо зависимы, например лонг инт на винде 32 бита, а на линуксе 64, на ардуине хз сколько.
Если пишешь для ядерного реактора - указывай везде явные размеры.
image.png317 Кб, 630x630
930 2000409
>>1999673
>>1999675

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

почему ардуино выдает при умножения двух чисел, которые не вошли в границы типа int отрицательное число, конкретно в моём примере, если 2500*16 получается -25536 @ что это за число, как оно получается? Архитектура чипа 8бит, если это как-то поможет найти ответ.
932 2000440
>>2000409
Ок, я тут вроде как понял суть @ https://www.arduino.cc/reference/en/language/variables/data-types/int/

там указаны для типа int границы -32,768 до 32,767

вот, если ожидаемый результат в 40000 отнять 32767, то остаётся 7233

и если теперь -32,768 прибавить 7233, то мы получим -25536

ок, всем спасибо @ лол я боюсь спросить, а почему именно остаток прибавляется к нижней границе типа? @ это просто как типо чтобы всё пошло по кругу, без всяких там проблем и заморочек, где это прописано в спецификации крестов, можно ссылочку?
933 2000443
>>2000440

>мы получим -25536



-25535 на самом деле если считать как я, но алгоритм работы компиляции я понял похоже верно, и единица уходит на округление или ещё куда-то, вангую это не существенно
934 2000471
>>1999272

>пок пок пок


>For example, an unhandled arithmetic overflow in the engine steering software was the primary cause of the crash of the maiden flight of the Ariane 5 rocket



всё эпичнее чем ты думаешь Маня...

это кстати из спеки языка, которую я искал тут >>2000440

спека: http://www.cplusplus.com/articles/DE18T05o/
935 2000483
936 2000556
>>2000483
спасибо, теперь я знаю вроде особенности типа данных int в крестах

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

Такой вопрос, а в крестах есть что-то похожее на объекты как в жс? @ Чтобы я мог декларировать объект например с именем stepperMotor и использовать его для хранения состояний без всяких заморочек, или тут всё по хардкору, нужно пилить класс stepperMotor, и потом наследовать в класс, например extruder?

И я же правильно понимаю, что в крестах нет мульти наследования, т.е. каждый класс можно делать extend одним, и только одним классом?
937 2000569
>>2000556
Эээ
Возможно мы говорим про разное, но кресты это вроде единственный мейнстрим язык с множественным наследованием (не интерфейсов, а вообще всего)
938 2000581
>>2000569
Да, это оно @ https://www.google.com/amp/s/www.geeksforgeeks.org/multiple-inheritance-in-c/amp/

Ок, тут кресты меня приятно удивили, лойс
939 2000605
>>2000581
По факту это очень очень редко нужно, в более новых ООП языках типа жавы и Шарпа от этого отказались, там только множественные интерфейсы.
940 2000606
>>2000471

> Ariane 5 rocket


Еще расскажи про рентгеновский аппарат, который сжигал каждого 255 пациента.
MISRA и ей подобные стандарты не просто так появились.

> спека


Не спека а статья.
Вот спека: https://www.iso.org/standard/79358.html
Искал плохо кстати. Переполнение signed int по стандарту - UB.
https://en.cppreference.com/w/cpp/language/operator_arithmetic#Overflows

Также это сказано и по твоей ссылке:

> When signed variables are made to exceed their maximum or minimum capacity they overflow. The result of an overflow is unpredictable so this should be avoided. A typical symptom of an overflow is the variable "rolling over" from its maximum capacity to its minimum or vice versa, but this is not always the case. If you want this behavior, use unsigned int.

image.png16 Кб, 824x91
941 2000633
https://leetcode.com/problems/longest-substring-without-repeating-characters/

Сосчаеры, помогите нубу оценить сложность моего решения!

https://ideone.com/RtRcXD
942 2000636
>>2000633
она n^2 из-за вложенного цикла?
943 2000681
>>1999158
неправильно создал изначально объект класса, щас исправил
944 2000882
Сап, есть ли смысл вкатываться в микроконтроллеры?
945 2000891
>>2000605

>По факту это очень очень редко нужно



планирую писать код согласно принципу из жс экосистемы, ако "composition over inheritance" @ https://en.m.wikipedia.org/wiki/Composition_over_inheritance

как по мне, это овер гибкая и понятная архитектура приложения

как я вижу ситуацию в своем проекте с шаговыми двигателями и крестами @ в общем у каждого шаговика есть концевики, которые нужно опрашивать беспрерывно на фоне работы двигателей и есть ещё некоторое оборудование, которое тоже нужно опрашивать беспрерывно, чтобы когда сработает какой-то концевик, то основной цикл микроконтроллера loop должен продолжить выполняться, и эти статусы от концевиков должны быть переданы инстанциям, которые являются абстракциями шаговиков @ эти инстанции полученные из соответствующего класса будут содержать в себе поля для записи статусов и некую логику, которая будет реагировать на статус и затем влиять на работу других инстанций @ влиять в плане, я думаю запилить некий messages layer, куда логика инстанций будет скидывать команды или статусы, которые будут "слушать" другие инстанции и как-то реагировать согласно своей логики

Получается, что мне нужно запилить один класс для концевика и один класс для двигателя, потом нужно один класс для оборудования, но у нас в сумме 5 концевиков и 3 шаговика, как наследовать от трёх классов для 8 физических объектов инстанции, я это смутно представляю, а вот как сделать композицию из этого всего я вижу вполне чётко
946 2000899
>>2000882
Если тебе не нужны деньги, то можешь попробовать.
947 2000902
>>2000891

>овер гибкая


Всегда проигрываю с "гибкости". Типичная ситуация, когда писатели не видят дальше своего носа, поэтому делают "гибко". В итоге получается безликое нагромождение абстракций, которое еле-еле держится на ногах.
948 2000909
>>2000902
согласен, может ты и прав, я ещё ничего не начал кодить @ вижу в крестах есть много шаблонов проектирования @ https://refactoring.guru/design-patterns/cpp

Ок и какой шаблон выбрать для станка чем-то похожего на 3д принтер?
949 2000912
>>2000909
Эти все шаблоны - дедовская хуйня, и так уже никто в проде не пишет эдак лет 10
950 2000965
>>2000912
А прод у вас на расте, ага.
951 2001010
Анон, а есть какие-то годные учебники типа Страуструпа, но по с++17 или 20?
952 2001030
953 2001276
>>2000965
нет, прод у нас в нормальном околофункциональном стиле
954 2001369
Вопрос, имеет ли смысл вкатываться в плюсики, если хочу заниматься не рисованием формочек в qt, а заниматься бекендом или даже хуйлоадом? По последнему вакансий маловато, в основном яндекс и на этом все. Или лучше взять какой-нибудь мейнстримный язык вроде джавы или жс, и уже пытаться на нем въехать в ит? Собственно я и учил жабу, спринг, хибернейт и т. д., но не понравилось - по факту занимаюсь только тем, что перетягиваю данные из бд во вью и назад, используя кучи аннотаций, а программирования как такового и вовсе нет.
955 2001378
>>2001369
Бэк далеко не всегда на плюсах делается. Порой только критические секции. UI тоже не про qt - там вообще полный рандом.
956 2001381
>>2000965
Шаблоны действительно ушли в прошлое. Хайп пришёлся на 2007, потом пошёл на спад. Сейчас можно увидеть конструкции отдалённо похожие на, но в чистом виде уже шишек набили. Одна из проблем - слишком вязкая система получается, чтобы её нормально дебажить, рефакторить и расширять. Другая - в большинстве случаев шаблон костылями подпирается под текущие реалии, что вызывает анальные боли у тех, кто потом его использует или пытается осмыслить. За тот же синглтон с фабриками можно нынче и по ебалу получить.
957 2001389
>>2001378
Ок, а что тогда на плюсах делается востребованное у нас в Москве? Ну и чтобы студент не шибко вумный смог вкатиться курсе на 3-4?
image.png16 Кб, 637x382
958 2001395
>>2000606

>спека



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

>The result of an overflow is unpredictable



если что, уже выяснили, что при переполнении работает релейт принцип @ https://en.wikipedia.org/wiki/Two's_complement

>>2000912

>все шаблоны - дедовская хуйня


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



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

>>2001381
как тогда структурировать код? @ где можно глянуть примеры четко структурированного кода в 2к21?
959 2001468
>>2001395
Именно стандарт на c++ (официальная документация) для всех платный. Поэтому существуют сайты подобные cppreference с бесплатной выжимкой из стандарта.
960 2001471
>>2001276
Cи-с-классами?
961 2001475
>>2001471
>>2001395
Чистые функции + простые классы, инкапсулирующие совсем небольшие вещи.
962 2001515
Почему во многих функциях требуется передавать размер буфера/массива? Почему нельзя его вычислить уже в функции обычным sizeof?
963 2001520
>>2001395
Чел, ты вообще непонятно что хочешь. Начинаешь про шаговые двигатели и управление железом, потом перескакиваешь на бэкенд, а потом уже на sdk ко всему этому. Все эти три штуки пишутся абсолютно по-разному.
964 2001521
>>2001515
Попробуй применить sizeof к массиву, выделенному динамически.
965 2001538
>>2001515
sizeof статический и вычисляется во время компиляции. Буферы выделяются в рантайме динамически.
966 2001591
>>2001520

> потом перескакиваешь на бэкенд



what? @ ты меня путаешь с этим Аноном >>2001369 ?
967 2001642
>>2001591
Нет, не путаю.

>шаговики, двигатели, микроконтроллеры


это С с классами без виртуализации, наследования и ексепшенов

>один класс для концевика и один класс для двигателя


это объектный бэк, скрывающий работу с железом в C++ классах. делается в виде смеси функционалщины и ооп.

>как тогда структурировать код


это уже про sdk. тут либо на чистых функциях и структурах либо на шаблонах и опп с паттернами (то, что ты привык видеть в Java)

Ну и наконец

>чем-то похожего на 3д принтер


подобные железки работают на базе g-code и ты видимо вообще не в ту сторону воюешь.
968 2001680
>>2001515
Для совместимости с си при передаче массива в функцию он декеится до указателя, и его сайзоф внутри функции всегда будет размером указателя. Чтобы избежать этого используют стд аррай или обертки вокруг массива типа спан.
969 2001729
>>1973041 (OP)
Почему найти работу с++ программистом сложнее чем С#. Я 2 года прогаю на плюсах, вроде хорошо и глубоко знаю, а на собеседованиях спрашивают ебанутые впоросы на которые хуй ответишь. Когда на Шарпе простые вопросы по спрашивали, спросили про паттерны и работу предложили с ЗП выше чем у плюсистов. Почему?
970 2001743
>>2001729
Потому что долбаные вузы учат плюсам искусственно создавая переизбыток крестопрогеров, снижая их стоимость и повышая планки требования.
971 2001745
>>2001729
Потому что рыночек.
1. Существенная часть вакансий это российское производство. Денег там как не было так и нет. Ждать, что оно на самоподдуве начнёт выходить на внешние рынки и расти без адекватного государственного участия просто наивно.
2. Плюсы долгое время теряли позиции по целому ряду направлений в пользу других языков. Соответственно предложение сократилось, а конкуренция среди работяг выросла.
3. На плюсах нынче важна специализация (по которой задают ебанутые вопросы), что мешает перекатываться между вакансиями. Вы знаете фильтры калмана, алгебру и стат моделирование? Нет - идите нахуй, у нас тут сигналы обрабатывают, а сетевое взаимодействие и микроконтроллеры ваши нам нахуй не всрались.
4. C# это часто энтерпрайз - там в принципе нельзя изучить предметную область. Ты приходишь на проект и месяц вникаешь в ебанутую логику очередной десктопной ERP системы. Собственно знание языка и паттернов это всё что надо знать.
972 2001747
>>2001743
Вузы работают на госзаказ, а госзаказ нацелен на убогое и нищее отечественное производство.
973 2001751
>>2001747
Ну то есть получается замкнутый круг. Предприятия вузу - нам надо столько-то молодых спецов. Вузик - обучил, люди пришли поработали годик за 30к с дедами, клептократами и прочими в проперженом офисе по графику с 9 до 18 и съебали в ужасе. Предприятие снова - нам не хватает кадров. И так из года в год строится учебная программа.
974 2001754
>>2001010
C++20 компиляторы пока толком не поддерживают.

По С++17 на русском есть краткий курс Страуструпа (но это не учебник, а беглый обзор) и пара книжек по STL 17 (но это только про STL, а не про язык в целом).
Короче, нет на русском.
975 2001755
Есть тор сервер и я хочу подключиться к нему со своей машины. Норм ли обмениваться сообщениями через get/post запросы или есть более подходящие для этого средства?
976 2001761
Хочу, чтобы у меня исходники *.cpp лежали в своей папочке отдельно от остального.

Есть какой-то способ это сделать, чтоб на всех компиляторах/ИДЕ срабатывало, а не только в Студии?
IMG20210402185837.jpg988 Кб, 1782x1782
977 2001763
>>2001642
лол могу тебе лишь посоветовать не натягивать свою сову на чужой глобус к месту и не к месту

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

так что не зачёт, мы вам перезвоним
978 2001764
979 2001773
>>2001763
Сова не моя, такие тенденции. Ты можешь писать всё на С++, но задача определяет набор инструментов, а не наоборот.
980 2001778
Пока пердоли в соснольке пердолятся, элитарии радуются анонсу охуительной Студии 2022

https://devblogs.microsoft.com/visualstudio/visual-studio-2022/
981 2001780
>>2001745
А если искать работу за границей? Типо удаленно? У них же там все норм должно быть.
982 2001786
>>2001778
Радости уровня айфоней. Элитарии выше таких предрассудков.
983 2001787
>>2001780
А где ты опыт возьмёшь, чтоб тебя на удалёнку взяли? Сначала тебе придётся пробиться в какой-то местный топ тир и набить репутацию.
984 2001788
>>2001763
Пердуинка слабая, так что от пердолей язык высокого уровня тебя не спасёт (ассемблер там у тебя не просто так).
985 2001791
>>2001787
Я работаю уже в местной гос компании. Это не в счет?
986 2001792
>>2001791
Не знаю, зависит от конторы. Но лучший вариант - поработать в филиале западной компании.
987 2001843
>>2001773

>Ты можешь писать всё на С++



лол что значит можешь? @ кресты по умолчанию стандартный ЯП в экосистеме ардуино, вот это поворот, да?

>>2001788
началось, слабая, конкретно этой нано-пердуинки хватает для управления тремя осями станка и ещё останется несколько свободных пинов, куда можно подключить оборудование @ у неё минимальное временное разрешение в основном цикле 4 микросекунды, это хватит для управления даже ядерной ракетой, которая будет лететь на гиперзвуковой скорости @ насчёт языка, смотри ответ чуть выше в этом посте
988 2001861
>>2001843

>по умолчанию стандартный ЯП


C и ASM нестандартные?
989 2001873
>>2001843
Так это типичное розовощёкое начало. Пок пок пок, у нас ещё пины есть и микросекунды. А потом под лупой код будешь колупать, чтобы ещё где-нить ресурсов наскрести (оптимизация на ассемблере, виртуализация - удоляем, ексепшены удоляем, стандарт кода сползает до с++11, оказывается что есть годные либы на С, которые вы сами навелосипедили на С++).
image.png482 Кб, 1187x700
990 2001903
>>2001861
с++ в экосистеме ардуино стандартный, в плане по дефолту, под который есть сразу IDE с коробки, но есть возможность сделать так, что бы можно было писать код на любом языке, но я не хочу даже пытаться это сделать, так как на крестах для ардуины есть уже все либы и куча гайдов на ютюбе @ пример, ЖС на ардуино вместо крестов: https://flaviocopes.com/johnny-five/

>>2001873
спок, если мне буден мало этой нано-ардуинки, там ещё есть мега, у неё достаточно ресурсов и пинов для постройки целого робота, а не просто станка с 3 шаговиками @ такая ситуация как ты там себе нафантазировал, может возникнуть, если в дальнейшем я решу допилить туда дисплей, но это вроде как и не нужно
991 2001932
>>2001903

>есть уже все либы


кекнул

>я не хочу даже пытаться это сделать


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

>если мне буден мало этой нано-ардуинки, там ещё есть мега


Стоимость твой поделки вырастает в 2 раза или больше?
992 2002067
>>2001778

>64 бита


лмао@джетбрейнс
993 2002079
Сап анон. Нормально начинать изучать кресты со Страуструпа?
994 2002146
>>2002079
С гусями на обложке - норм, с горой - не очень норм.
995 2002147
Какие есть НИИ в москве, куда можно устроиться студенту на неполный рабочий день?
996 2002452
>>2002147
устройся в МЦСТ
997 2002630
пацаны, а как найти первую работу на плюсах? сижу почитываю мейерса, решаю изи задачки с leetcode, но настоящего кода не видел и кажется занимаюсь хуйней вместо того чтобы получать какой-то опыт настоящей разработки. по вакансиям всем нужны мидлы\сеньеры. как вообще начать работать хоть за еду? или забить на плюсы и начать учить питон? я из хохляндии если что, так что свои НИИ не предлагайте
998 2002670
>>2002630
Лучше бы php учил, вёрстку, js. Здесь денег нет. А если и есть - то уже давно заняты дедами.
999 2002692
>>2002630
У вас там всё IT это аутсорс и галеры. С++ в таких конторах особо не жалуют.
1000 2002720
Тестил подключение к тор, но произошло что то удивительное. Когда собираю в релизе, то вижу пик 1,а в дебаге пик 2. Как возможно такое, что код по разному работает в зависимости от типа сборки? И что делать? Код https://pastebin.com/eGizLebw
1001 2002723
>>2002720
Обычная порча памяти. Проверяй memcpy, индексы и размеры буферов.
1002 2002725
>>2002720
Не вчитывался, но у тебя WSAStartup нет. Это к проблеме не относится, но мало ли.
1003 2002727
>>2002725
Лол, не заметил. Решил проблема, спасибо
1004 2002947
>>2002670
чет мне аж поплохело от такого откровения
1005 2002951
Кто ниубдь занимался автоматизацией установки кучи программ? Вот есть куча exe, я не хочу на каждом из них 10 раз кликать далее, а просто хочу написать прогу, которая сама установит мне все в нужный мне путь. Как это сделать?
1006 2002964
>>2002947
Это правда.
(другой анон)
1007 2002987
>>2002951
гугли chocolate
1008 2002991
>>2002692
а в питон перекатиться? Если уже С++ знаешь?
1009 2002999
>>2002964
значит я проебал 4-5 месяцев впустую, хотя мог бы уже сидеть в офисе макакой получать шеккели и съехать от мамки? ощущаю фрустрацию пиздец
1010 2003021
>>2002999
Самое время переориентироваться.
1011 2003044
>>2003021
переориентируюсь в гей-шлюху. мне реально в пхп и этот весь стек веб параши идти выгоднее всего?
1012 2003046
>>2002991
Языки разные. Считай что с нуля будешь учить.
1013 2003182
>>2003044
Посмотри, какая в твоем городе есть работа (вряд ли там вообще будет с++) , и выбери сам.
sage 1014 2003185
>>2003046
Такое может сказать либо тот, кто знает только один язык, либо тролль.
1015 2003186
>>1999611
Напиши свои, на макросах и шаблонах. Чтобы везде auto поставлялось, лол
4f6814032f7dcMSH2332opt.jpg720 Кб, 1900x1262
1016 2003240
Почему общепринятой практикой не является написание в таком стиле:
class MyClass {
bool flag1 : 1;
bool flag2 : 1;
// ...
}
? Или является? Экономия памяти же налицо, почему всегда не писать так?
1017 2003251
>>2003240
Чем больше ты сэкономишь на памяти - тем меньше сэкономишь на процессоре. Проц быстрее всего работает с байтами, а не кучей побитовых операций. Ну и это экономия на спичках, обычно у тебя не насколько булов, а куча указателей, строк, массивов и прочего.
1018 2003287
>>2003240
Реализация битовых полей зависит от компилятора и может быть проблемой для совместимости. И нельзя взять их адрес или сделать нормальную ссылку.
1019 2003293
Вот в протоколах передачи полно отдельных битов, но с ними работают с явными битовыми операциями сдвига.
1020 2003360
>>2003240
Память ты так не сэкономишь. Структура будет выровнена на размер машинного слова. Даже если и нет, то минимальный размер объекта будет 1 байт - минимальный адресуемый объём памяти. У твоих полей нельзя взять адрес и сделать на них указатель.
1021 2003374
>>2003185
С++ относится к семейству C-family. Из этого семейства я писал код на 6 языках. Python туда не входит в принципе, хотя и был "создан под влиянием".
1022 2003375
>>2003240
Быстрее всего процессор работает с машинным словом.

т.е. struct zalupa{
size_t flag1;
size_t flag2;
}

будет ощутимо быстрее, чем твои байтики.
1023 2003461
image.png242 Кб, 600x597
1024 2003830
>>2003461
- Алло, двач? Тут тред не перекатывают!
- Перекатывайте сами.
- Я???
1025 2003873
>>1975361
Приходится иногда писать на C# и сложно перейти с плюсовой модели памяти на модель памяти .net, не привык вызывать конструктор вместе с оператором new.
1026 2003878
>>1976614
Прямых путей мало, или через winapi получаешь размер экрана консоли и отлавливаешь символы через cin, обновляешь экран консоли путем полного засирания его новой картинкой, либо юзаешь getch (который вообще POSIX насколько я знаю, Windows не POSIX совместима).
1027 2003884
>>1977695
То и дело работаю с метапрограммированием, в c++14 очень не хватает if consexpr
1028 2003888
>>1978161
Невозможно присвоить массиву initializer_list. Для C-style массивов не определены конструкторы копирования перемещения и вообще любые RAII фичи, потому вторая строка вообще недопустима. Если хочешь юзать C++11 фичи переходи на std::array.
1029 2003894
>>1978422
QML это фича Qt Quick
1030 2003908
>>2002720
В debug mode код собирается без каких либо оптимизаций.
1031 2003965
что делает этот отрывок кода? особенно интересно что даёт вопросительный знак и двоеточие.
return a < b ? a : b;
1032 2003971
>>2003965
проверяет если а меньше, чем b - то возвращает а, иначе - возвращает b. Это тернарный оператор.
изображение.png17 Кб, 680x461
1033 2004021
Зачем делать предварительное объявление когда можно просто заинклудить нужное? Тем более, что с Keyboard.hpp так и сделали...
1034 2004039
>>2004021
Можно заинклюдить, можно объявить разницы нет
1035 2004045
>>2003888

>Невозможно присвоить массиву initializer_list.


{ 1, 2, 3, 4... } это не initializer_list, а initializer list.
1036 2004068
>>2003044
C# неплох
1039 2004217
>>2004021
Чтобы .hpp файлы не раздувались. Если от инклюд необязателен, как в случае, когда нужна только ссылка на объект, то лучше его не делать, так как это может привести к большим заголовочным файлам и медленной компиляции больших проектов.
1040 2009768
требуется почти срочно человек, умеющий в компьютерную графику (задача -- курсовая работа). детали, условия tg @usr023
Тред утонул или удален.
Это копия, сохраненная 25 мая 2021 года.

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

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