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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
2 1860502
Какой сааааамый минималистичный плюсовой компилятор? И сколько он весит?
image.png41 Кб, 1024x194
Winsock2 Аноним4826239 3 1860503
Есть одна игра, мне нужно сделать так чтобы я имел возможность отклонять неугодные мне данные, как входящие так и исходящие. Пытался сделать это при помощи return 0 в hook'нутой функции WSASend, но оно продолжало спамить этими данными до тех пор пока они не отправятся. Пробовал шаманить с lpCompletionRoutine но ничего не получилось. С WSARecv вообще дичь, при return 0 разрывает соединение с игрой. Как я понял, самым хорошим и разумным решением будет поднятие такого-же сервера (или как это называется я не знаю) в том же процессе и переадресация данных на него, а он уже будет фильтровать и отправлять только то что угодно мне. Только проблема в том что я не знаю как это делается. Пожалуйста, помогите.
sage 4 1860506
>>1860488 →
Лучше бы помог, я всё ещё пердолюсь. Всё началось после установки превью-версии студии, естественно удалил нахуй сразу её. Даже пустой проект не собирается и требует 14.0. Сейчас второй раз начисто всё удалил, почистил все папки вилкой и поставил заново студию - нихуя не помогло. Если делаю ретаргет, то он пишет типа после этого нельзя будет собрать проект в 2015 студии, для сборки под ней выберите в параметрах таргет 14.0. Но у меня нет 2015 студии, а установка 14.0 ничего не даёт. Какого хуя, блять? Алло, индусы!
>>1860496 →
Чистый тоже не работает. Вообще нихуя не работает.

А ещё теперь постоянно такое ещё пишет:

> error : Designtime build failed for project 'C:\Users\Admin\source\repos\App10\App10\App10.vcxproj' configuration 'Debug|Win32'. IntelliSense might be unavailable.


> Set environment variable TRACEDESIGNTIME = true and restart Visual Studio to investigate.


Он мне тут предлагает заниматься расследованием почему эта хуита не работает из коробки и не собирает пустой проект!
5 1860508
>>60503
ПОЖАЛУЙСТА ПОМОГИТЕ(((
6 1860519
>>60503
Вычисляй как игра палит, что пакет не отправился. А фильтр по идее и делается хуками на функции send/recv. Хз почему не работает, может там не только винсокеты.
7 1860525
>>60503
Никто тебе не поможет с таким.
8 1860527
>>60525
Почему?
9 1860528
>>60519
Не важно как палит игра, мне нужно лишь понять как поднять свой такой же сервер в том же процессе а дальше я уже сам
10 1860529
>>60503
Шёл бы ты в сишный тред, френдо
11 1860531
>>60529
так я ж на плюсах..
12 1860533
>>60528
Чому обычная тцп прокся не подойдёт?
13 1860535
>>60531

>LPWSAOVERLAPPED_COMPLETION_ROUTINE


>Хуюки


>C++


Винсок написан на чистом С, хуки - достаточно низкоуровневая вещь.
14 1860536
>>60535
ХУК Я УЖЕ САМ СДЕЛАЛ МНЕ ЛИШЬ СЕРВЕР ПОДНЯТЬ НАДО ОСТАЛЬНОЕ Я УЖЕ САМ
15 1860564
>>60535

>>LPWSAOVERLAPPED_COMPLETION_ROUTINE


XD
16 1860566
>>60564
И что?
изображение.png49 Кб, 1906x693
17 1860571
>>1860339 →
Чёт я психанул, полез в ассемблер смотреть.

Строки 5,6,7 берём h, добавляем единичку через lea, возвращаем на место. Это выполнение команды h++. В eax - 0 в edx - 1 в h - 1.
Строка 8,9 Увеличиваем h на 1 и копируем её в edx. edx - 2 в h - 2.
Строка 10 складываем EAX и EDX. eax равен 0 edx 2. результат 2
Строка 11 результат копируем в z

12 строка - обнуляем h

Строка 13, 14 увеличиваем h на 1 и копируем в eax. h = 1, eax = 1
Строка 15 в edx записываем сумму eax+1. edx = 2
Строка 16, 17 записываем результат из edx в h и затем загружаем h в edx. h = 2
Строка 18 складываем eax (равно 1) и edx (равно 2). eax = 3
Строка 19 пишем в z результат из eax.

Ну вроде правильно. Только какого хуя она на приоритет операций забила? В первом случаи мы вызываем h++ и получаем копию h, а сам h увеличиваем на 1. После увеличиваем h ещё на 1 и складываем.
во втором случаи мы увеличиваем h на 1 и уже после сохраняем, то есть выполняем ++h. Затем увеличиваем h на 1, и пишем результат в переменную. Не сохраняя её в промежуточном регистре. Блядь в сон клонит. Но какого чёрта!
18 1860591
>>60571
Просто даже отвечать на такие примеры это иди нахуй долбаёб.
asciiwar003-full.jpg217 Кб, 1365x736
19 1860598
Кто-нибудь имел дело с FlatBuffers? Я что-то не очень понимаю. Вот я генерю класс Monster. Это тот самый класс который мне и нужно использовать в программе, или он чисто для сериализации? Просто немного смущает то, что по дефолту объект получается константным, а чтобы получить мутабельный нужно генерить хедер с особыми параметрами типа --gen-mutable или --gen-object-api.
Может нужно создать нормальный класс Monster и сгенерить класс MonsterData. Соответственно, первый будет использоваться внутри программы, у него будут меняться поля нормальным образом при необходимости, а когда нужно будет его сериализовать/десериализовать будет использовать класс MonsterData в который будут копироваться поля сохраняемого объекта/из полей которого будет создаваться новый объект класса Monster?
20 1860613
>>60566
C-style
21 1860641
>>60571
Толсто.
22 1860693
>>60506
Почему вы до сих пор сидите в студии, если есть VSCode?
sage 23 1860694
>>60693
Зачем до сих пор используют высокоуровневые языки, если есть ассемблер?
24 1860695
>>60694
Не, ну я пойму, если кто-то пердолится в Eclipse. Там есть всякие эксклюзивные йобы (от той же NVidia для удалённого профайлинга GPU кода). Ну ладно там VIM на каком-нибудь дохлом embed. Но студия то уже ничем не выделяется на фоне её преемника vscode.
25 1860696
>>60694
Студия не является более высокоуровневой чем vscode с плагинами. Зато вот чем студия является так это монолитным куском говна, где при поломке одного компонента ломается все нахуй, и под все зачастую имеется в виду операционка.
26 1860714
>>60695
Интересно, что чувствуют разрабы студии. Какие-то четкие пацанчики пришли и сделали все с нуля и получилось лучше, чем они десятилетиями пердолили.
27 1860716
>>60714
Чувствуют как заебись стригли кучу бабла не напрягаясь.
sage 28 1860760
>>60571
Сажи онанисту
29 1860780
>>60695
щас бы текстовый редактор и ide сравнивать
30 1860788
>>60780
толсто
31 1860790
>>60695
Чтобы писать на C++ в студии ты просто скачиваешь и там все есть изкаробки. В vscode надо пердолится с плагинами чтоб все заработало.
32 1860795
>>60571
Зачем ты это все пишешь? Это такой троллинг тупостью?
Вбросы в С/C++ про ++i + i++ это то же самое что вбросы в /b про дроби и деление.
Просвещайся: https://www.viva64.com/ru/t/0065/
33 1860796
>>60790

>Чтобы писать на C++ в студии ты просто скачиваешь и там все есть изкаробки.


Прокомментируй вот это >>1860427 →
34 1860814
>>60796
Что тут можно сказать... Ты криворучка.
При этом ни одного скрина так и не приложил
35 1860817
>>60796
Дурак и стеклянный хуй сломает. У меня не было проблем со студией в течении 7 лет ее использования. Причем стабильно последних версий.

Ну ладно, пару Internal Compiler Error'ов я им забил в в developercommunity, но этим все мажорные компиляторы грешат
36 1860821
>>60814
У анона не работает индусоподелие, а криворучка я. Интересненько.
>>60817
Угу настолько нет проблем со студией, что у них была специальная утилита которая должна была по замыслу вычищать остатки из системы, после деинсталляции. Естественно даже она не могла вычистить, поэтому в тех поддержке просто разводили руками и говорили что пришло время переустанавливать шиндоус.
37 1860824
>>60821
Пчел, у меня сейчас одновременно стоит 15.9.29, 16.8.2 и превью 16.9. Все идеально работает. Я не знаю, что тебе еще сказать.
38 1860825
>>60795
Спасибо, прочитал. Нам такого в вузе не рассказывали. Как я понимаю, это всё усложняется на порядок, когда речь заходит о многопотоке?
S01119-11260499(1).jpg146 Кб, 1080x626
39 1860828
такая тема, я студент сис. админ первокур, до этого программирование не учил и не интересовался, и в универе начали учить кодингу на с++. этот язык вообще не сложен
/приемлен как первый язык для учения кодингу? и еще меня заебало тупить на парах и не уметь решать простые задачи, хочу сам научиться, с чего мне щас лучше начать? пока книгу для новичков из шапку курить? ещё я 0 в математике, его надо учить для си плас пласа?
40 1860830
>>60828

>начали учить кодингу на с++. этот язык вообще не сложен


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


Курсы от яндекса на курсеры
41 1860832
>>60825
Да. Нет, блджад причем тут многопоток? Если это семантика языка. Если у тебя UB, а это скорее всего ошибка программиста, то она и в многопотоке ошибка
42 1860837
>>60828
Это один из сложнейших языков, но его можно брать начальным. Просто иногда будешь застревать в затыках, выглядящих как магия, придется спрашивать у знающих.
Математика это прикладная область. Для языка она не нужна, но работа на с++ часто связана с математикой - это или для 3д синусы косинусы всякие, или видеокодеки со своими рассчетами, или управление моторчиками на заводе с рассчетами скоростей, частот.
43 1860842
>>60832
Ок.
1551770718751.webm7,3 Мб, webm,
1920x1080, 1:03
sage 44 1860893
>>60817
>>60824
Если такой умный, то скажи как чинить теперь это. Осталось только переустановить Шиндовс.
Любая комбинация SDK не работает, выключение всех родных расширений от индусов не помогает, чистка профиля не помогает, переустановка студии не помогает, запуск от админа и копирование 14.0 в любые места не помогают, ребуты не помогают, кнопка repair не помогает, переустановка библиотек рантайма VC++ не помогает, гугл по этой ошибке на 25 страниц прочитан - ставил все нагугленные VCLibs вручную и не помогло.
Напоминаю, что это началось после установки превью версии, всё что я сделал - нажал кнопку Install, запустил пустой проект в превью-студии и получил это говно. За 15 минут до установки превью всё работало.

Перед тем как начнётся РРРЯЯЯЯ UWP НИНУЖНО хочу напомнить, что это основной гуй в дриснятке.
45 1860896
>>60828

>этот язык вообще не сложен


>/приемлен как первый язык для учения кодингу?


Кодингу — нет, программированию — да.

>с чего мне щас лучше начать?


С учебника поновее.

>ещё я 0 в математике


Соболезную, особенно если это связано с отсутствием нужного для математики мышления, а не просто каких-то знаний.
46 1860905
>>60502
Turbo C++, TCC.EXE весит 465680 байт.
47 1860906
>>60893
C#-то установил для своей дрисни?

> BTW, I know you mentioned C#, but for anyone wanting to use C++, be sure to enable that as well--this is also not installed by default. See Setup Changes in Visual Studio 2015 Affecting C++ Developers and Developing for Windows 10 with Visual C++ 2015.

48 1860908
>>60905

> 465680 байт


Нихуя себе, досу там нормально было такое запускать?

мимо
49 1860910
>>60830
это бесплатно?
>>60837
>>60896
чето пацаны вас начитался и теперь лень стало учить с++, может нуй его нахуй, все равно нет интереса к программированию
sage 50 1860911
>>60906
Естественно, в шарпе всё собирается и работает. Но он же на VCLibs пиздит, C# и дотнет тут вообще никаким боком.
51 1860912
>>60893

> бесплатно?


Нет, но там есть какая программа помощи. Знакомый хиккан бесплатно уже второй курс проходит.
52 1860916
>>60910

>чето пацаны вас начитался и теперь лень стало учить с++, может нуй его нахуй, все равно нет интереса к программированию



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

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

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

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

Весь ты его всё равно не осилишь. Никто не осилит. Самое главное, понимать, какие возможности предоставляет тебе язык и стандартная библиотека, чтобы огороды не городить, а при случае разобраться и написать по-человечески.
1455410779166.webm7 Мб, webm,
1920x1080, 0:44
sage 53 1860919
>>60906
А погодь, я уже ёбнулся немного, не то записал. C# тоже не работает теперь. Впрочем на крестах аналогично. В пизду в общем, я уже заебался второй день пердолить это говно индусов.
54 1860924
>>60919
попробуй всякие net core SDK установить. Хуйня какая-то
55 1860925
>>60908
Он оверлейный был.
И в том С++ не было даже исключений.
56 1860928
>>60919
Соболезную, что тебе приходится такой дриснёй пользоваться. Я обычно код пишу в текстовом редакторе. Ну почисть свою дриснятку, откатись там или… что в таком случае на дриснятке делают?
57 1860932
>>60893
Дебила блядь, напиши им в саппорт, нахуй ты на дваче высираешься?
58 1860952
https://developercommunity.visualstudio.com/content/problem/1256345/uwp-build-fails-after-update-to-1682-error-msb3774.html
Пиздос. Сами пользуйтесь этой парашей. Просто лютая ссанина.
Делайте ставки сколько недель будут чинить эту хуйню.
На чистой установке 16.8.2 даже этот костыль уже не работает.
59 1860964
>>60500 (OP)

>Вектор делает мув только когда мув-конструктор элементов noexcept


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


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


Я не понимаю, почему комитет сам себе создаёт такие сложности?
60 1860969
>>60952
Самое печальное что CLion ещё хуже. Там вообще раз в пару месяцев фиксят баги. Уже пол года не могут тиринг пофиксить на десятке, например. А как эта параша на джаве быстро и стабильно работает - вообще отдельная история. Жаль нельзя без ебли писать под зумерские фреймворки и платформы на VS Code, давно бы уже укатился.
61 1860971
>>60964
Strong exception safety guarantee, вполне возможно нахуй не нужный в данном случае.
62 1860973
>>60952
Я зарепортил баг в 16.7, починили в 16.9. Считаю успехом.
--189.jpg103 Кб, 720x480
63 1861091
>>60598
Бамп.
64 1861185
Осваиваю указатели, не понимаю почему при соединении двух соседних шортинтов в один инт, единица оказывается на посередине а с краю?
https://pastebin.com/vyVciVA5
65 1861199
>>61185
little-endian

p.s. strict-aliasing violation
66 1861202
>>61185
Нет такого понятия "соседние шортинты", это Undefined Behaviour.
Что же касается ответа "почему" - как сказал анон https://en.wikipedia.org/wiki/Endianness
У тебя так, а на каком нибудь андроидфоне с ARMпроцессором может быть наоборот.
67 1861205
>>60598
Я честно не имел, но хотел бы, так что скрещу за тебя пальчики.
А что говорит туториал? Вроде бы можно свободно менять.
Mutating FlatBuffers
https://google.github.io/flatbuffers/flatbuffers_guide_tutorial.html
68 1861207
>>61185

> Осваиваю указатели


Если у тебя 64-битная система, то всегда используй uint64_t и сдвиги или char*. А ещё с релокациями ознакомься, чтоб не спрашивать почему адрес из 3 байт или поменялся.
69 1861209
>>61202
>>61202
Спасибо за объяснение, соседними назвал потому что у них адреса в памяти друг за другом идут.
70 1861210
>>61207

>uint64_t


uint_fast64_t или uint_least64_t. uint64_t - опциональный тип который может отсутствовать в компиляторе под платформу.
71 1861211
>>61209
Они не обязаны идти друг за другом.
72 1861213
Где-то читал, что не просто разыменование, а сам факт вычисления невалидного указателя - UB.
73 1861227
>>61213
Насколько я понимаю, да. Указатель может указывать только на объект такого же типа как и он сам (то есть никаких (int)&float, никаких "соседних адресов"), в случае массива - на элемент этого массива, либо, единственное исключение, на несуществующий элемент сразу за концом массива. Все остальное что не описано, является UB.
74 1861235
>>61213
Но при этом вычислять невалидное значение указателя с помощью типа, не являющегос я указателем, можно.
Например, через uintptr.
75 1861238
>>61235
Его же можно использовать для определения вхождения указателя в диапазон, не вызывая при этом ub.
76 1861252
>>61205
На счёт obj.mutate_hp(228) в туториале написано, что такое уродское название выбранно специально, чтобы показать, что эти объекты изменять не стоит, но если очень хочется, то можно.

Алсо, на стековерфлоу пишут, что
FlatBuffers has very efficient in-place mutation of scalars, but mutating things like vectors in-place requires the use of reflection, which currently is slower and clumsier, thus not recommended for use as game state that is frequently modified.
И рекомендуется использовать --gen-object-api.

Как я понял, если скомпилить с параметрами --gen-object-api --gen-mutable сгенерится класс MonsterT, в котором уже можно писать не obj.mutate_hp(123), obj.hp = 123. Если я правильно понимаю, MonsterT уже нормальный С++ класс, примерно такой, как если писать его руками. Но при этом написано следующее:
For times when efficiency is less important a more convenient object based API can be used (through --gen-object-api) that is able to unpack & pack a FlatBuffer into objects and standard STL containers, allowing for convenient construction, access and mutation.
Так же, в процессе экспериментов выяснилось, MonsterT генерируется вроде как только если класс объявлен как table. Если как struct, то ничего не меняется и всё равно надо писать obj.mutate_mana(359). Почему так — непонятно.

Кроме того, не понятно, как обстоит дело с полями по умолчанию при такой генерации. Если генерировать обычным способом и сериализовать объект, у которого поле mana, не будет явно задано (будет равно дефолтному значению), тогда obj.mutae_mana(322) ничего не мутирует и вернёт false, что, по всей видимости, надо будет каждый раз проверять. Интересно, как при генерации с API с этим обстоит дело.

Ну, я попробую, конечно, с этими генерируемыми классами написать что-то, но как-то сомнительно это выглядит. С другой стороны, переписывать дважды каждый POD не хочется, и по эффективности это будет не лучше наверняка.
78 1861259
>>61253
Вполне логично всё.
79 1861268
>>61259
Логичным это стало, когда разгадку уже прочитал.
80 1861275
>>61268
Загадка от комитета по стандартизации языка С++. На размышление даётся 30 секунд.
81 1861282
>>61253
Скорее это просто неумение читать. auto же не должен определять вермишели указателей, он всё верно делает - выводит тип. А то что вложенные типы могут быть вермишелями, так это надо спросить у говнокодеров стандартной библиотеки. Такая же хуйня про [] вместо std::array. Можешь сколько захочешь стрелять себе в ноги скобками. Хотя уже везде в свежих стандартах пишут не использовать их.
82 1861292
>>61275
Проиграл.
83 1861296
>>61282

>Хотя уже везде в свежих стандартах пишут не использовать их.


Если ты тупой, то лучше вообще ничего не используешь, всё равно прострелишь жопу.
84 1861297
>>61296
Вижу тебе уже прострелил.
85 1861301
>>61297
Ну я-то не тупой и пишу нормальный код.
86 1861303
>>61301
Со скобками в 2020 году на С++20? Это явно не нормальный код. Тебе даже компилятор скажет об этом.
87 1861328
>>61253
А я всегда говорил, что ссылки ++С примерно такое же опасное и ненужное говно, как var-параметры в паскале.
88 1861332
>>61275
Ответ один: если не знаешь - голосуй SF
image.jpg68 Кб, 464x463
89 1861340
>>60919
А ведь на этой итт доске стабильно доказывают что мс смогли в идеальный кросплатформ всего и вся, сярп лучший язык, а до порабощения мира точканетом осталось пару лет
90 1861379
>>61275
Моргнул - проиграл
91 1861421
>>60828

>этот язык вообще не сложен


сложный (если конечно писать не helloworldы)
92 1861476
>>61210
Ты чё, ебобо? Перечитай стандарт
93 1861511
Помогите дебилоиду. Товарисч выполняет лабы в VS Community.

Прикол в чем, если он компилит с x86, то ему выдает ошибку с std::badalloc на создание и работу с матрицамив данном случае перемножение, заданными двумерными динамическими массивами аблов размерностью n=10000 или более, с распараллеливанием через omp, но при этом нормально работает с меньшим n. Если компилять x64, то ошибка по памяти не вылетает, но он то ли считает, то ли нет, так до конца и не проверили он спать ушел, но что самое интересно распараллеливание в данном случае не происходит.

Я же у себя на линупсе компиляю g++ с флагами -fopenmp -O3, и у меня всё прекрасно работает. у него поддержка omp тоже включена если что
В чем, собственно, может быть прикол данного прикола?
94 1861512
>>61511
Код
95 1861515
>>61511

> аблов


даблов*
Написал, кста, неверно. В первом случае компиляется, но программа не выполняется, а вываливается с ошибкой с std::badalloc().

>>61512
У него был немного другой и гораздо более опрятный, но он и с моим говнецом пробовал.

https://pastebin.com/rh3ZCnjr

нечасто на этой доске бываю, тут для выделения кода в сообщении возможность есть?
96 1861529
>>61515
Так-то 10000 х 10000 х 3 х sizeof(double) это больше 2 Гб. Нормальная причина проблем с выделением памяти, особенно на 2ядра-2гига ведре для очобы.
97 1861532
>>61529
Не, с этим я понял, там с x86, проблемы были, больше 2х гигов оно не вывозит, так в доках у майков написано, но когда он компилит x64 у него не работает распараллеливание, что странно.
У него 16 гигов оперативы и зивон на 12 ядер.
1605908356400.png460 Кб, 1080x1920
98 1861545
>>61476
Откуда ж вы лезете
99 1861577
привет, аноны, решил вкатиться в с++
есть опыт работы на питоне, шарпе, чистом си
вопрос не про материалы для изучения - спасибо шапке. Интересует, скорее, совет. Каким бы пет-проектом заняться, и на что в нем следует обратить внимание (типа обязательно многопоточен и тд), чтобы я был интересен работодателю? Просто опыт работы уже 4 года, и идти на дикого джуна за 40к совершенно не але, а в с++ ой как хочется
спасибо)
100 1861592
>>61577
Денег ты на c++ особо не заработаешь. Дальше читать не стоит.
Большая часть вакансий во всякие говНИИ, на реально интересный проект попасть довольно сложно.
Основные ниши для с++ связаны с матаном, железом, надёжностью и производительностью. Из этих тем состоит 75% вопросов на собесе, если ты идёшь не на ждуна (от ждуна хотят того же, но в виде профильного образования без практики).
Часто бывает так: вот у нас есть код - как его улучшить (оптимизация, баги, портируемость)? Хотят услышать не только про ++i, i++, но и всякие математические изъёбы, распараллеливание, интринсики, балансировку нагрузки между железками (CPU-GPU, host-client).
Сейчас актуальна обработка медиа данных, так что можешь чё-нить на эту тему написать: кодек из А в В, поиск чего-то на картинке или повышение качества картинки, получение медиапотока с устройства (в идеале с embed, но и вёбка сгодится).
101 1861731
>>61545
Пиздец. Есть инфа, на каких платформах и компиляторах нет этих тайпдефов?
102 1861748
>>61592
дык математические изъебы не зависят от языка, распараллелить и на питоне можно
103 1861750
>>61592

>> денег ты на с++ особо не заработаешь


да ладно тебе, ты типа так вкатыша отпугиваешь? понятно, что джава ебет по зпхе, но свои 120 можешь получать. Что, в целом то, похоже на зарплаты питоне
https://habr.com/ru/article/511700/
104 1861817
>>61750
Он конечно дохуя приукрасил, да и такой жести от ждуна (и даже от мидла если это не какая нибудь топовая компания) никто ждать не будет, но с точки зрения именно зарабатывания денег плюсы реально не лучший выбор.

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

>Что, в целом то, похоже на зарплаты питоне


Очень хуёвое сравнение, полистай эти питоновские вакансии на хх, там за 30-40к работать предлагают да и уровень там требуется соответствующий. Даже при этом у него медиана выше плюсов, что как бы кек.
105 1861831
>>61817

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


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

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

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


смотрю на ссылку в закрепе - и не сильно там выше. В целом на +- 10к похуй
106 1861864
>>60893
Ну да, ну да, говнософт как всегда. На работе весь день на етом говне пишу. Так заебался, что на домашней пекарне установил arch BTW, ламповий вим+лсп+силанг и пилю свой петпроджект, алсо билд система на мейке, больше не нужно.
107 1861944
>>61748
В крупных конторах делается так: математики пишут код на питоне (такой себе прототип), потом его портируют на с++ другие специалисты (распараллеливание на CPU, перенос вычислений на GPU - CUDA/OpenCL, использование инструкций SSE через ассемблерные вставки).
Я напомню, что сейчас наиболее актуальны системы реального времени - самодвижущиеся повозки, дроны, видеонаблюдение и трекинг с нейросеточками. Там очень жёсткие требования к производительности. Да те же игры систему жрут беспощадно.
108 1861947
>>61831

>а что от мидла требуют?


Зависит от компании. У всех свои требования, поэтому обычно все просто сходятся на том, что мидл это челик с 1-3 годами опыта.

>реально сразу на мидла скакнуть с си шарпа?


Если в точно ту же прикладную область в которой у тебя уже есть опыт — можно наверно.
У буржуев точно можно было бы, всё равно на собесах 80% дрочки алгоритмов, 15% дрочки на софт скиллы и ещё 5 на конкретный стек, у нас же всё наоборот. В любом другом случае — сначала надо где-то получить хоть какой-то опыт в плюсах — так что иди и напиши хотя бы парочку пет прожектов, чтобы было хоть о чём написать в резюме и открыть рот на собесе, потом уже и думай хочешь ли.

>или на входе онли джун?


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

>смотрю на ссылку в закрепе - и не сильно там выше. В целом на +- 10к похуй


Пчел, это медиана. Учитывая, насколько нижняя планка зп в питоне ниже — настолько и верхняя выше, если вытягивает медиану выше плюсов.
109 1861951
>>61831

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


На 80-90к можешь пойти, если месяц потратишь на подготовку к собесу. Просто сейчас с++ не самодостаточный язык, а скорее вспомогательный. Я например варюсь в embed дрочильне с нейросетками и у нас на проекте: железо - C, матан - ASM, C++, CUDA, бек и микросервисы C++, C#, фронт - JS с реактом, тесты скрипты и прочая залупа - Python. Контора у нас маленькая и я пердолюсь на всём вот этом сразу.
110 1861970
>>61817

>можно хоть каждые пол года делать по x1,5.


Пришёл, разобрался в как тут у них всё, запилил пару фич, сменил работу?
111 1861977
>>61970
По другому и не бывает роста.
112 1861986
>>61977
Я просто как раз полгода проработал на новом месте, запилил им за это время мажорную фичу, а дальше уже хочу утечь в другое место, лол.
113 1862040
>>61944

> игры


Шарп в юнити - это уже очень низкоуровнево. Сейчас в геймдеве никто не пишет на крестах. Двигло собирается из конструктора, а дальше любая макака пишет код любого качества лишь бы работало. Если ААА пилят чуть ли не на блюпринтах, то что уж говорить про рашку и мобильную разработку.
Алсо, системщину и ембендед разве китайцы не перетянули давно уже? Судя по гитхабу русские ваньки уже не нужны.
114 1862044
>>62040

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


Мы Вам перезвоним.
115 1862047
>>62044
Прямиком из Юбисофта, да? Спасибо, не надо, сами пишите на питоне и визуальных скриптах.
116 1862049
>>62040
Проиграл с маняфантазий.
117 1862054
>>62047

> Прямиком из Юбисофта, да?


Тебе то откуда знать как пишут движки?
118 1862060
>>62040
Толстота.
119 1862073
>>62049
Пока ты проигрываешь издатели считают бабло, а разрабы годами патчат свой говнокод после релиза. В том же уе4е абсолютная норма комбинировать кресты и блюпринты, все так делают. Если помотришь на индюшатину, то там в большинстве случаев либо готовое двигло, либо контруктор из 25 опенсорс-проектов.
>>62054
Ну недавний Легион уже сливали. Сам код хоть и вырезали, но pdb лежат и можешь сам посмотреть на этот конструктор из сотни сторонних компонентов. То что там пользовались визуальном скриптингом тоже не секрет, жирухи же не будут писать на крестах. Там же есть исходники шейдеров.
120 1862078
>>62040
Манька, полистай на досуге вакансии Wargaming, Gaijin или аутсорс контор типа Saber, Sperasoft и прочих залуп.
Про эмбед и китайцев - китайцы скупают наши конторы и разрабов. Тот же Huawei сделал несколько крупных покупок пару лет назад (системы распознавание лиц). Даже на РБК по этому поводу бугурт напечатали. И сейчас они ханттят разрабов поштучно.
121 1862259
>>61970
Да, смена работы — самый быстрый способ увеличить количество нефти. Правда, нужно уметь красиво пиздеть про причины (закончили проект/срезали косты из-за короны/перевели на другой проект с древним стеком/итд), все прекрасно понимают что ты хочешь бабла, но если услышат то нанимать тебя точно не захотят, лол.

>>61977
Бывает, но:
а) Внутри компаний зп всегда растут медленнее чем на рынке в целом, просто потому что рынку мало и мало (а когда ты съебёшь за отказ взять и повысить зп, новых людей эта компания будет тоже нанимать по рыночным ценам, которых ты и хотел, такой вот кекус);
б) Тебе за каждые +20к к зарплате будут стараться довесить кодревью/менторинг джунов/подработку девопсом/помощь пму с декомпозицией/и прочие задачи, за которые никто не хочет браться (и которые надо будет ещё и совмещать с основной деятельностью, лол).
Так что самый просто способ это таки смена работы.
122 1862271
>>62040

>Сейчас в геймдеве никто не пишет на крестах.


Смотря что под этим понимать. В контексте твоего сообщения "геймдев" — это именно программирование геймплея, там уже давно никто на плюсах не пишет, ибо нахуя. Написать код "если персонаж находится в фрейме (0, 100, 250, 120) то ебать его" может и макака, только это даже не 1/5 от всей программистской деятельности связанной с геймдевом но наверно вся деятельнось какого нибудь /гд, лол.

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


Самописные движки так же собираются из конструкторов, там точно так же тянутся сторонние либы для абстракций над ос (ввод/фс/окна/процессы/треды), физика, всякие парсеры моделек, звук, и так со всем — разве что обычно рендеринг +- свой был.

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


Пчел, почти все игры которые выходили в опенсорс/сливались состояли из нагромождений говен примерно _всегда_. Геймдев — это всегда про взять и нахуярить, а не сделать поддерживаемую систему, потратив кучу времени на архитектуру/рефакторинги/итд.
123 1862273
>>62271

>собираются


и собирались
124 1862343
Вопросик по std::queue.
Если я создаю очередь без параметров, то у нее уже есть какая-то по дефолту выделенная память?
И еще, если удалю все элементы через .front() + .pop(), то выделенная память останется или вернется в кучу(?)
125 1862353
>>62343
implementation-defined
126 1862375
Что делать в такой ситуации?
Foo.h:
class Foo
{
Foo(){Bar bar();}
};
Bar.h:
class Bar
{
Bar(Foo const& foo){}
}
127 1862403
>>61944
а где можно что-нибудь почитать о проектировании таких систем?
128 1862404
>>61951
погоди, че? матан assembler?????? чиво вообще
129 1862409
>>62375
class Foo;
class Bar { Bar(Foo const& foo){}

А вапще, менять архитектуру/дизайн.
130 1862434
>>62375
Использовать forward declaration, если нужно именно обойти circular include.

А дальше в .cpp можно вполне себе инклудить то, что нужно, чтоб иметь полные типы.

>Bar bar();


Дополнительно. Этот код объявляет функцию, а не создает объект класса Bar.
131 1862439
>>62404
Самый простой пример это вычисление оператора Собеля с помощью SSE инструкций процессора (пишется на ASM). Используется для поиска границ на снимках с камеры, радара, рентгена и проч. (а по границам можно понять какие объекты есть на картинке). Короче edge detection.
https://core.ac.uk/download/pdf/83041628.pdf
В принципе, если ты залезешь в исходники OpenCV, то там ещё много подобного добра увидишь. Причём OCV можно даже собирать с поддержкой SIMD NEON для ARM процессоров.
132 1862442
>>62439
нахуя писать это на чистом асме, если есть интринсики?
133 1862444
>>62439
С другой стороны у OpenCV есть бинды для питона. Поэтому цепляем к проекту OCV, numpy и пишем наш проект на питоне. Рубим бабло и насмехаемся над красноглазыми (никакого матана, железок и байтоебли).
134 1862446
>>62442
Набор интринсиков определяется компилятором. Набор SIMD определяется процессором.
135 1862451
>>62446
У меня в плюсовом проекте был модуль на асме на 2к loc.

Я смотрел в сторону интринсиков, но, если честно, сделать две реализации модуля (портируемый с++ и специализированный асм) со статическим (на этапе компиляции) и динамическоим (проверка, поддерживаются ли нужные инструкции в рантайме) выбором нужной имплементации мне было намного проще, чем пытаться добиться того же эффекта с помощью интринсиков.
136 1862591
>>60828
Язык не сложный (на самом деле это три языка в плаще), но тулинг просто говно дерьма, будешь репу чесать почему все не работает и куда нажать чтобы заработало. Будешь репу чесать когда захочешь библиотеку использовать и симейк будет мозга ебать. Комьюнити отбитое, будет рассказывать тебе про историю компьютерной техники вместо того чтобы ответить на простой вопрос почему не получается вывести "привет мир" в консоли не кракозябрами.
Я бы рекомендовал начинать с чего-нибудь дружелюбного типа питона жаваскрипта или вижуалбейсика иначе никакого кайфа не получишь и бросишь это дело.
А так - добро пожаловать в наш клуб любителей потеребить память руками.
137 1862594
>>60952
Блидинг эдж петушиной технологии, конечно там двигают всё туды-сюды и ломают
138 1862598
>>62591
Ещё бы альтернативы хоть какие-то. Интерпретируемые языки и JIT не нужны. Go без либ ненужен. Раст так и не поднялся с колен. Zig ещё пару лет ждать пока релизнется. ФП-параша по определению говно. Что там остаётся? Всякие анальные извращения вроде Nim?
139 1862600
>>62598
Чем тебе JIT то не угодил? Тот же шарп помедленнее, но писать в разы проще
140 1862605
>>62598

> Интерпретируемые языки и JIT не нужны


хотел написать пост про программы которые работают, решают проблемы реального мира и приносят прибыль но любителю экономить компьютерные ресурсы это никак не поможет, сорь, не выходи из хайлоада не делай ошибку
141 1862607
>>62605
inb4 щас бы писать программы которые работают, а не access violation память не может быть read или segmentation fault core dumped
142 1862610
>>62600
В первую очередь потреблением памяти, во вторую производительностью. Нормальный JIT только под Lua есть. Тот же Шарп и Жаба жрут памяти чуть ли в десятки раз больше чем сишка в некоторых случаях, а ещё это время запуска местных фреймворков. Как же кринжанул с дотнетовского гуя на XAML, с которым пустое окно запускается почти секунду, а в доках рекомендуют использовать сплэшскрин если совсем уже неприемлемо долго. Браузер быстрее запускается, чем это говно, лол. Кто-то жалуется на Электрон, но ведь дотнет ещё хуже.
>>62605

> любителю экономить компьютерные ресурсы


Прям трясёт, когда можно сделать быстро, но мне мешают и заставляют жрать говно.
143 1862614
>>62610
Кто тебе мешает, болезный, бери и делай
144 1862635
>>62610

>Прям трясёт, когда можно сделать быстро, но мне мешают и заставляют жрать говно.


Как же ты работать на работе то будешь, горюшко...
145 1862645
>>62614
Ну а как победить жор памяти в шарпе, если это фича такая у них? Я бы с радостью использовал его, но вот у меня есть сотни машин с 1 гб ОЗУ из 2010 года и я не могу больше 100 мб использовать. В шарпе создаёшь пустое окно на винформс и уже минус 20 мб, против 1.7 на крестах с wxwidgets. И так в любом месте жрёт больше в 2-10 раз.
>>62635
Не работаю кодером и не собираюсь. Это она из причин почему. Тем более профитов в ЗП нет никаких, чтоб укатываться из админства.
image.png30 Кб, 791x150
146 1862654
Поясните за пикрил объявление. Оно так делается потому что это билтины и привычное T value_type; здесь не проканает?
147 1862661
>>62645

>но вот у меня есть сотни машин с 1 гб ОЗУ из 2010 года


У меня в 2010 было по 2-4 гб.
Зачем тебе 100 машин?

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

Не, ну ты можешь найти где-нибудь 386 компьютер и писать что-нибудь под ДОС вообще. Писали же когда-то.
148 1862667
>>62654
Так - это как? Что ты там такого необычного на картинке приметил?
149 1862682
>>62645
битмап 192010804 весит 8Мб, чтобы фликера не было надо два штуки, чтобы антиаляйсинг был нужно в четыре раза больше, сделай на своих крестах непустое окно и будет те же 20Мб

20Мб это 0.2% от 8Гб оперативы, можешь хоть в несколько рядов наспавнить себе
150 1862683
>>62645
Ферма из паспберипай полезнее чем твоя сотня машин с такими констрейнами
151 1862688
>>62661

> Зачем тебе 100 машин?


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

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


Тогда там стояли Windows Embedded POSReady 2009. Летали вполне хорошо.

> Зачем тебе учить инструменты разработки


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

> под ДОС вообще. Писали же когда-то.


И сейчас пишут, внезапно. У нас и такое говно есть. Ладно ещё выбили переход на 10 IOT где есть хотя бы 1 гб ОЗУ, но железо никто не станет менять, работает же. Да и самое главное - нам это тоже не сильно надо, когда можно сидеть и попёрдывать, придумывая новые костыли. А как уж оно работает - это проблемы юзеров.
152 1862690
>>62667
Необычного ничего. Мне просто интересно узнать есть ли разница между объявлением алаяса на темплейтный тип как в книге и дефолтным объявлением переменной. Как я это вижу - раз тут юзаются билтины то обычное объявление не сработает и будет ошибка.
153 1862699
>>62690
Какие билтины, ты чё, поехавший?
154 1862702
>>62699
Сам уже разобрался. В любом случае спасибо, неадекват.
screenshot800x600.png133 Кб, 800x600
155 1862716
Вышла 13 ноября новая версия Dev-Cpp v6.2
от Embarcadero
https://github.com/Embarcadero/Dev-Cpp
156 1862720
>>62716
Что за хуйня?
157 1862721
>>62716
Даже VIM выглядит лучше.
158 1862724
>>62720
Говноподелие на паскале
159 1862726
>>62645

>Тем более профитов в ЗП нет никаких, чтоб укатываться из админства.


Лольнул с эникйщика. Хотя если перекатываться именно в плюсы, мб и не будет, кек.
160 1862727
>>62682
Буферы же в видеопамяти создаются, не? Ну разве что у тебя память разделяемая, если видео интегрировано в cpu.
161 1862732
>>62682

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


А ещё можно непустое окно на шарпе/жаве сделать, и оно будет жрать 200мб.
162 1862734
>>62726
Да судя по средним ЗП с хабра и вакансиям на 120к - только в модные GOвна есть смысл перекатываться. Что в админстве, что в кодинге требуют одного - знания. Но при этом в админстве не требуют писать код, платя столько же.
163 1862739
>>62734
А как же таскать компы, ходить по офису целый день, залезать под столы, ковыряться в грязи?
164 1862756
>>62739
Для этого эникеи и инженеры. Обычно там дольше 2-3 лет не работают.
165 1862758
>>62720
>>62721
>>62724

Сами тут советовали новичкам в dev-cpp говно
кодить учиться, а теперь изошли на говно.

уебаны с помойки as is
166 1862760
>>62690

>обычное объявление не сработает


Обычное объявление — это какое?
167 1862764
>>62758
Люди в здравом уме советуют либо visual studio, либо компилировать ручками из консоли и писать код в vim/emacs/вставьте-свой-любимый-текстовый-редактор. Остальное всё хуй знает вообще зачем существует.
168 1862765
>>62734
Лучше писать код на плюсах, чем на баше.
169 1862766
>>62764
Это.
170 1862767
>>62756
Но ты ведь с этого и начинал. Наверное до сих пор не можешь забыть чем пахло под столом у главного бухгалтера Анжелы Олеговны.
171 1862768
>>62767
Оставленными дешёвыми поношенными туфлями.
172 1862774
>>62716
чего-то они совсем над ней поиздевались.
со шифтами проблемы, окошко мерцает, прога вылетает...
хоть самому переписывай на чем нибудь, кроме delphi xe
173 1862781
>>62683
>>62661
Чет орнул со школьников, если он обслуживает скажем парк платежных терминалов, он за свой счет будет что ли везде сотни плашек памяти или малинки покупать?
174 1862803
>>62716
Помню, как эту хуйню рекомендовали на первом курсе на лабах вместе с Borland C++ Builder. Я в это говно лезть не стал, ибо знал про вижуалку, qt creator и vim. Но одногруппники, которое влезли, потом у меня 100500 раз спрашивали, почему ОШИБКА НЕ РАБОТАЕТ КАК ПОЧИНИТЬ.
175 1862811
>>62781
Если у него будет коммерческая работа в этом направлении, или хотя бы реально осмысленная учебная - то будет изучать годные инструменты. Надо будет, и под 286 будет кодить, со всеми этими "char far".

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

Если автор хочет сразу себя ставить в стек устаревших технологий, то пожалуйста.
image.png11 Кб, 386x258
176 1862832
>>60500 (OP)
помогите мне пожалуйста разобраться, почему падает программа. Мне надо перевернуть строку, но моя программа падает когда доходит до 91 строки и я не понимаю почему. Что я делаю не так?
177 1862839
>>62832
Может быть ты передаешь туда константную строку?
178 1862842
>>62832
Чел, попробуй хоть в столбик на бумажке поделить. А потом посмотри что компилятор выдаёт.
179 1862860
Вопрос по переменной в цикле
Допустим есть такой цикл:
for( auto &&val : container )
values.push_back( val )

Нужно ли мувать переменную val в другой контейтер в вектор?
image.png2 Кб, 356x50
180 1862862
>>62839
да, я сначала делал как на 121 строке, и у меня падала программа, но когда я сделал как на 122 строке, все заработало. Спасибо!
image.png9 Кб, 454x202
181 1862863
Наверное тупой вопрос, но уже который день не могу придумать как решить. Нужно проверить есть ли 3 или больше одинаковых элемента в массиве. Делаю простым способом через count и вроде считает хорошо, но если массив будет например (1, 1, 2, 2, 3, 3) он зафакапит и выведет True, а другого способа я не знаю.
182 1862868
>>62863
Вообще не понял что ты там делаешь
Васянорешение с O(n) заполнением ассоциативного массива чому не подходит?
183 1862874
>>62860
Что значит "нужно"? Тебе нужно? Тогда да.
184 1862877
>>62874
Ты ёбнутый?
185 1862882
>>62877
Построение вопроса у тебя ёбнутое.
Хочешь копию — копируешь.
Хочешь мув — муваешь.
186 1862888
>>62863
Ну, очевидно, тебе надо запоминать не только count, но и собственно какое именно значение ты учел.
187 1862889
>>62868
Во-первых N logN, а не N.
Тогда уж проще отсортировать и пройтись потом по отсортированному массиву, это можно и на обычном Си сделать.

Правда перерасход памяти.
188 1862891
>>62888
Скорее надо не забыть во втором цикле сбрасывать count перед началом,
for (int j = i+1, count=1; j<n, j++){
}
а после сделать проверку на count, то есть она внутри внешнего цикла будет
189 1862892
>>62862
>>62832

Кто может пояснить почему если написать
char* mamku="ebal";

указатель будет всё равно смотреть в non-writeable место в памяти, несмотря на то что тип явно задан без const?
190 1862894
>>62892
Язык какой?

"ebal" это const char, его присвоение к char — это не совсем корректный код, нормальный компилятор выдаст warning.
191 1862895
>>62894
Это если говорить про C++.
192 1862896
>>62894
>>62895
Звездочки съедены, но все всё поняли.
193 1862897
>>62889
Нужно 3 подряд?
Научись формулировать задачи, лол
194 1862902
>>61831

>тру программистом можно стать только изучив


haskell
195 1862905
>>62894
char ptr[]="DVACH";
тут тоже const char литерал, однако всё работает.

Что ты на это скажешь?
196 1862910
>>62905
Тут объявление массива (в стиле C), а там указателя?
197 1862912
>>62892

> writeable


Вот только если попробовать изменить, будет UB.
198 1862916
>>62912
Да, я читаю жопой
199 1862920
>>62892
Потому что все "ebal" где то должны храниться на момент старта программы.
А поскольку в Си все должно делаться явно, а копию статических данных в оперативку ты не делал, то все так и есть.
200 1862936
>>62905
А тут не литерал, а сахар для { 'D','V' ... }
201 1862938
>>62891
Спасибо, анонче
202 1862946
>>62409
Объявляет функцию в теле конструктора?
203 1862953
>>62905
char str[] = "lalala" это массив, у которого компилятор выводит размер по инициализации, а выделение памяти и инициализация происходят в рантайме (современный аналог std::array).

char ptr = "lalala" это указатель на константу, которая хранится в статической памяти, выделяемой при старте проги (это const char).

Когда происходит вызов func(char ), то str неявно приводится к типу char, но сам str не является указателем изначально.

Это типичное легаси в с++ от которого можно избавиться только разогнав нахуй весь комитет по стандарту и твёрдо решительно сократить язык до смысла выкинув нахуй вот эти вот все [].
204 1862955
>>62953
Хорошо, что ты не комитет.
205 1862975
Эту вашу хуиту стоит осваивать или лучше в раст идти? Хочу новые горизонты для себя открыть.
206 1862980
>>62975
Но раст хуита на постном масле же
207 1862984
>>62975
Нет, не стоит. У c++ нет будущего. Про Rsut в вакухах пишут, что он "приветствуется". Ну ты понел.
208 1862986
>>62980
Альтернативы?
209 1862987
>>62975
Для открытия новых горизонтов купи дилдак. А раст мертворождён. Пиши на человеческом языке, а для байтоебли в Zig уходи. Как раз к релизу освоишь.
210 1862988
>>62986
Используй С++
sage 211 1862990
>>62975
Если ты так ставишь вопрос, то, безусловно, нужно идти в раст.

>>62986
C++.
1583198863676.jpg55 Кб, 512x384
212 1862994
>>62975
Раст это локальный мем. Если "с++" исчезающий, то "раст" это исчезающий на исчезающем фоне.
213 1862999
>>62892
Там вроде из-за оптимизации компилятора. Если у тебя в коде в одном месте char a = "HuiPizda" в другом месте char b = "Hui" а в третьем char c* = "Pizda", то компилятор в памяти создаст только строку "HuiPizda", а указатели a, b, c получат соответствующие адреса в этой общей строке.
214 1863006
>>62999
Трипл хорош
215 1863009
аноны, пилю видеотрекинг
что почитать про оптимизацию/распаралелливание/прочую нужную хуиту?
216 1863010
>>63009
Зачем читать, если можно писать на питоне?
217 1863011
>>63010
на питоне написано, нужно оптимизировать
218 1863016
>>63011
Пиши на питоне с торчем.
219 1863019
>>63016
сам ты торч бля, я только чуть чуть дунул
220 1863023
>>63016
у меня нет нейронок(((((((((((
221 1863024
>>63016
вообще ты пиздец душный, я спросил что почитать по СИ ПЛЮС ПЛЮС а не твои охуеные советы про питон блять
222 1863029
>>63023
Так торчать можно и без нейронок. Он и в обработку видео может.
>>63024
Документацию читай, клован.
223 1863081
>>62999
Подумай ещё раз. Вспомни про 0.
1567446417130.jpg37 Кб, 480x480
224 1863119
Так скажите, плюсаны, будущего у языка нет? Мне предлагали проект на Java, но я все равно решил съебать на другой проект на крестах. И вроде всё неплохо, но грызет изнутри, что я проебался и в долгой перспективе пососу хуёв.
225 1863122
>>63119

>будущего у языка нет


Все так, давно уже нет. 20 лет хороним.
226 1863126
>>63119

> Java


Шарписты её активно хоронят вместе с крестами, js, питоном и Go.
227 1863163
Разбудите меня, когда executors+networking допилят
228 1863166
>>63119
Если у тебя опыт (и в общем-то нравится язык) то все должно быть в шеколаде в обозримом будущем. Это вкатунам биба.
229 1863194
>>63126

>Живые шарписты


Хуя манямир
230 1863199
>>63194
Ну да, живые, в госконторах.
231 1863211
>>63199

>живые


>в госконторах

232 1863225

>Не софтосрач


Визуалка или терминал + g++ + gdb?
233 1863230
>>63225
Если хеллоувород, то вижуалка, а так конечно терминал.
234 1863232
>>63230
А если обычная РАБота на дядю + собственные проекты на энтузиастычах без пердолинга? Сегодня часа 2 ставил автокомплит на спейсмаксы ибо нет ни одного человеческого конфига.
235 1863234
>>63232

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


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


Я бы ни один из этих вариантов не стал бы выбирать.
236 1863236
>>63234
Не, ну становиться гей или веб шлюхой для меня тоже не вариант. Да и кресты прям реально секс, хуй я их на что променяю.
237 1863256
>>63225

>+ g++ + gdb


Это UB
image.png84 Кб, 1920x966
238 1863272
>>63256
врёти
239 1863291
>>63166
поч?
240 1863294
>>63236
ну тут в зпхе же прогирышь
Да и хз придет ли джава и прочнее подобное говно в нишу с++
Да и сейчас IOT ебашит, роботы, дроны и тд. Джаве и шарпу там нехуй делать
241 1863296
>>63236
а кем кст работаешь? что делаешь?
242 1863302
>>63294

>IOT ебашит, роботы, дроны


Вот я эта хуйня хотеть. Но больше всего интересуют нейронки.
>>63296
Вообще арбитраж + трейдинг. Плюсы я только-только учу, лол. Чуть меньше 2 месяцев, только вчера шаблоны прошёл.
243 1863312
>>63225
Вижуал студия всегда. Терминал это для студентиков-даунов
244 1863323
1505222111547.mp41,3 Мб, mp4,
1920x1080, 0:34
245 1863324
>>63225
Какие тут вообще могут быть срачи в 2021 веке когда выбор очевиден?
246 1863325
>>63225
На вкус и цвет. Все остальные кукаретики.
247 1863329
>>63312

>Вижуал студия всегда


Дедуль как оно в 2003? Давно VS Code + плагины для терминала изобрели.
image.png87 Кб, 1920x966
248 1863330
>>63323
врёти
>>63324

>эти круги


Какая же безвкусица
249 1863333
>>63302
ну ты как я короче, плюсовый куколд
здрасте
а на чем сейчас пишешь?
250 1863335
>>63333
На крестах и пишу. Мой первый язык, до этого программированием только на паскале и vbs в школе + универе маялся.
251 1863351
>>63330
Ты тупой?
252 1863354
>>63081
А чё думать. Убираем строку "Hui" из моего примера и всё ок.
253 1863358
>>63351
Если память не изменяет с 17 стандарта таким говном компилятор не удивить. Это то что я знаю. Докажи обратное.
254 1863366
>>63324
Как называется плагин?
255 1863369
>>63225
И то и другое. IDE (но не та, что зовётся visual studio) вроде кажется победителем. Но настройка кросскомпиляции, telnet/ssh, синхронизации сырков, удалённого дебага бывает крайне заёбистой.
256 1863384
>>63119
В СНГ основную кассу делают аутсорс компании. А это энтерпрайз и всякое легаси говно. Будешь сидеть на Java - будешь при деньгах. Ну а кресты это либо гейдев либо легаси говно либо что-то при производстве (которое почти ничего не производит и не зарабатывает). В гейдеве неплохие зарплаты, но скотские условия труда. Легаси унылое, но ты последняя надежда и тебе заплптят (возможно и валютой).
sage 257 1863443
>>63366
Для вывода ошибок прямо в редакторе - error lens + clangd или clang command adapter.
для кругов - https://github.com/kato-hiroto/KeyClickFarmer
258 1863466
>>63443
Спасибо
259 1863486
>>63329

> сравнивает полнофункциональную IDE и текстовый редактор на электроне с плагинами

sage 260 1863490
>>63486
Верно, тут и сравнивать нечего. Плагины > монолитный кал который потом хер вычистишь из системы.
261 1863495
>>63490
попробуй выпуститься из вузика, потом через несколько лет поговорим
262 1863497
>>63495
Кстати, это очень смешно, но полнофункциональную IDE только преподы в универах и котируют по какой-то причине.
После выпуска ни разу еще не видел это замечательное творение.
263 1863499
>>63497
работать не пробовал еще, да?
264 1863500
>>63499
Капец ты толстый.
265 1863502
>>63500
ну ваще да, на удаленке разожрался, есть такая тема.
sage 266 1863518
>>63495
Попробовал, 15 лет назад выпустился, тебе желаю поступить, школьник.
267 1863531
>>63518
и как попробовалось? Хуи в НИИ за 30к грызешь?
268 1863615
Аноны, qml использует кто? У меня проблема с реализацией интерфейса, поможете?
269 1863632
>>63615
Там все просто, главное смотри хелп именно на ту версию что у тебя.
270 1863638
>>63632
Я прочитал часть документации, которая мне нужна. Но не могу допереть как правильно фичу свою реализовать, она багованная выходит
271 1863680
>>63638
Так и запиши в релиз ноте: не баг, а фича
272 1863712
>>63638
Я не телепат, но с большой вероятностью ошибка в твоём жс.
273 1863826
>>63497
В ВУЗе был препод, у которого стояла вижуал студио в виртуалке на ноуте, потому что по программе её надо, а он говорит, что она всё засрет и потом вилкой чистить, неудобно.
274 1863830
>>63826
по-этому он и препод, а не программист
275 1863845
>>63830
Многие преподы совмещают с нормальной работой, особенно молодые, он тоже.
276 1863904
>>63826

> всё засрет


Это во времена ХР было, надеюсь?
277 1863906
>>63904
Ой, и сейчас всё засрёт.
278 1863910
>>63904
С преподов не убудет юзать Visual Studio 2005
279 1863911
>>63906
В 2020 году разве не похуй что у тебя лишние 5000 файлов на диске или в реестре мусор?
280 1863914
>>63911
Мне похуй, у меня винда в виртуалке.
281 1863947
>>63904
Не, на 10чке.
282 1863973
>>63911
Не похуй. Студия подменяет некоторые системные файлы отладочными, и эта шляпа будет понижать быстродействие при обычном использовании компа.
283 1863990
>>63973
лолшто? Какие файлы она подменяет?
284 1864000
>>63973
Ты шиз? Это тебе не gcc, не умеющий в отладку без запарывания бинарников говняком.
285 1864002

> студия


Ящитаю, профессионал не будет пользоваться "инструментом" с закрытым исходным кодом. Тем более, когда он бесплатный или ворованный.
sage 286 1864007
>>64002
Что, много исходников опенсорсных инструментов прочитал перед использованием? Все, кто этого не делает - не профессионалы?
287 1864010
>>64007

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


Все, мань.

>Все, кто этого не делает - не профессионалы?


Высокая вероятность такого.
sage 288 1864013
>>64010
Ясно, шиз. Как и все vscode-дауны.
289 1864017
>>64002
Я щитаю, что адовое дрочево на опенсорс и штольмана - психическое расстройство. Мне за работу платят, а не за идеологию.
290 1864026
>>64013

>пук студиекультиста

291 1864027
>>64017
Весело наверное потом свои емейлы и пароли находить в слитых базах данных, да, работяга?
292 1864043
>>64027
Что ты несешь вообще? Какие емейлы и пароли?
293 1864056
>>64007
Я вот почитываю исходники, когда возникают непонятки. Да даже если бы и не читал, полно других глаз.
294 1864075
>>64043
Студия не работает без логина по емейлу.
295 1864095
>>64075
Работает.
296 1864102
>>62892
Потому что это строковый литерал, пчел. Хотя есть компили, которые позволяют править строковые литералы. Clang и gcc точно не разрешают, msvc хз, ибо говном не пользуюсь.
297 1864104
>>64102
быстрофиск
возможно, я пизжу и это зависит от ОС/формата исполняемого файла, ибо вспомнил, как один уважаемый скомпилил на шинде код, где была попытка записать символ в строковый литерал, и у него прога не крашнулась и позволила это сделать (мб я ебанутый, хз).
В лялексе, короче, это сегфолт с вертухи сразу.
298 1864128
>>64104
В каком-нибудь эмбеде при загрузке бинаря эта область памяти может быть ДЕЙСТВИТЕЛЬНО READ-ONLY, но редактирование этого — ub в любом случае.
299 1864129
>>64002
Ты на Борланд не гони
300 1864131
>>63291
Потому что язык сложный, да и в индустрии с помощью плюсов решают, как правило, более сложные проблемы, нежели веб-макакерство и крудошлепство. Поэтому как таковых джунов на кресты нету, только если у тебя не блат ну или тебе просто ебически повезло яхз.
301 1864150
Как сделать pascal -> c++? Похуй на читаемость. Главное промто перевести с одного на другой язык
302 1864180
>>64075
Шизоид, ты правда думаешь, что MS пароли в плейнтексте хранит?
303 1864188
>>64180
Дебич, как ты узнаешь как она хранит, без открытых сорцов?
304 1864192
>>64188
Как минимум по всяким PCI DSS аудитам
305 1864212
>>64128
Зачем ты сам с собой разговариваешь?
306 1864214
>>64131
Ой да не гони. Всякие гос. конторы берут молодняк по 30к за штуку.
image.png48 Кб, 1510x306
307 1864226
>>64212
Нет.
308 1864249
Мне нужен список, который может хранить сразу три параметра. Я могу реализовать это так:
- сделать свой список, который сможет принимать не больше и не меньше трёх параметров;
- использовать list из STL, и присваивать узлам списка как параметр ссылку на объект;
- использовать list из STL, и присваивать узлам как параметр массив из трёх ячеек.
Что из этого лучше с точки зрения байтоёбства?
309 1864252
>>64249
Что такое параметр?
310 1864253
>>64252
Значение узла.
311 1864254
>>64253
Нет.
312 1864255
>>64249
struct N {
T a;
U b;
V c;
};

list<N>
313 1864256
>>64254
Пидора ответ.
314 1864288
>>64252
>>64254
Ну, ладно. Параметр в программировании — это принимаемое функцией значение. Вот здесь, например,
http://www.cpp.sh/5bnzy
функция принимает массив как параметр. Ну, или указатель на массив, я ваще не ебу. А как весь массив вывести я тем более хуй знает, подходящего для этого способа в std:list как будто и нету.
315 1864369
>>64288
А, блять, по ссылке ж у меня массив списков. Как тогда создать список массивов?
317 1864568
>>64485

> без скобок


Питонист что ли? Давай нормально переделай.
318 1864590
>>64002
Шиз, какой операционкой пользуешься?
319 1864599
>>64590
Он небось не регается в социалочках и мессенджерах, деньги хранит наличкой, а на двачи ходит через впн, зареганный на 10-минутнвю почту, и взломанный соседский wifi. И работает без трудового договора.
320 1864608
>>64599

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


Кто-то ещё до сих пор не делает так после пары посадок двачеров?
321 1864625
>>64608
Так стоит делать разве что для постинга чего-нибудь сомнительного в б или пораше. Вряд ли посадят за помощь с laba1.cpp.
322 1864631
>>64608
Будешь так ходить, будешь как красная тряпка при анализе логов.
323 1864639
>>64631
С чего бы это? Если про геолокацию и ISP, то у меня IP близко к рашке и не палится в базах ДЦ.
324 1864648
>>64599
А что какие то дауны так еще не делают? Нечегоскрывать, ты?
325 1864659
>>64568
Че?
326 1864767
Почему QPainter::drawPolygon() закрашивает многоугольник? Как без закрашивания нарисовать?
327 1864777
В visual studio 19 года возникла проблема. Код собирается и работает только после пересборки всего решения. Иначе срёт ошибкой линковщика 2019. Это у меня где-то ub затесалось?
328 1864779
>>64767
В документации все описано.
329 1864780
>>64777

>линковщика


>ub


Платиновый трипл
a069312841110.jpg443 Кб, 1200x1200
330 1864782
Я вот понять не могу, нафига размер всяких int и double — это имплементейшен дефайнд? Это же жесткий удар по переносимости.
331 1864785
>>64779

> The first point is implicitly connected to the last point, and the polygon is filled with the current brush().


Я даже brush не устанавливал, он pen-ом что ли красит? Нахуя?
Попробовал QBrush с Qt::transparent ему скормить, один хуй закрашивает.
332 1864788
>>64785
Блин ну я хз, рисуй drawpolyline-ом, только конечную точку продублируй.
333 1864789
>>64788
drawpolyline тоже пробовал, та же хуета.
334 1864790
>>64780
Я долбаёб не спорю, но почему он в первый раз находит необходимые переменные, а последующие - шлёт нахуй?
335 1864791
>>64790
Попробуй пересоздать проект с нуля. Может у тебя настройки сбились или закешировалось что то. Это ж говностудия.
336 1864792
>>64782
Наоборот, если жёстко пропишешь в стандарте, что инт - 32 бита, то потом хуй запустишь такой код на процессоре с двухбайтной шиной данных и байтом, не равным 8 бит.
337 1864795
>>64767
Перефразирую вопрос, чем в Qt можно нарисовать произвольный замкнутый контур? Чтобы его пунктирной линией можно было отрисовать?
338 1864798
>>64792
Да, конечно лучше, чтобы код запустился и в какой-то момент отстрелил тебе ногу, когда переменная переполнится.

Хотя, если учесть, что С как раз разрабатывался для того чтобы его можно было скомпилировать на чём угодно, это можно понять.

В любом случае, получается, что сейчас лучшей практикой является использовать int32_t, если тебе не нужно, чтобы код запускался на всяких извращённых платформах с не 8-битным байтом?
339 1864803
>>64789
Как это вообще возможно
340 1864805
>>64782
тебе дали алиасы типа uint32_t
341 1864806
>>64803
Я сам не понял, поэтому сюда пришел за помощью.
342 1864808
>>64798

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


Суть кроссплатформенности в том, чтобы использовать не больше, чем гарантируется стандартом, и не полагаться на имплементацию. Если так и делать, то ничего никогда не переполнится. Для этого и лучше юзать всякие int32_t, когда нет уверенности, на чём это попробуют запустить.
343 1864809
>>64798

>получается, что сейчас лучшей практикой является использовать int32_t



Нет. Эти типы данных ты используешь для и только для:

> Бинарные форматы



> Бинарные протоколы



> Аппаратные регистры в памяти.



В остальных случаях ты используешь стандартные int short char и прочие.
344 1864813
>>64808
А зачем вообще такое говно нужно в низкоуровневом компилируемом языке? Это же банальная лень, когда вместо платформозависимого кода пишешь универсальное говно. Почему бы просто не скармливать отдельно особенности платформы компилятору, один хуй компилятор под каждую платформу свой пишется, а он уже в свою очередь не давал бы стрелять себе по ногам с UB? Это же глупо звучит, чтоб копипастный код можно было компилить под извращенные микроконтроллеры и под х86 без изменений. Нахуя такая анальная клоунада? Вроде не питонисты, разобрались бы с чтением платформозависимых стандартов.

мимокрок
345 1864820
>>64791
К слову, есть гайды, о том как расшифровывать выданные линковщиком ошибки? Не номер ошибки, а то чем он после себя срёт.
346 1864821
>>64808
int32_t не гарантируется стандартом. Сколько раз еще в треде повторить? >>61545
347 1864826
>>64813

> А зачем вообще такое говно нужно в низкоуровневом компилируемом языке?


> Вроде не питонисты, разобрались бы с чтением платформозависимых стандартов.


Если у тебя сишка и ассемблер, то будешь читать эти стандарты. Но у тебя C++, который пытается и совместимость с сишкой сохранить (нельзя же просто выкинуть все либы для неё), и высокоуровневым при этом считаться.
348 1864828
>>64821
Окей, не int32_t, а int_least32_t, например.
349 1864833
>>64821
Я не пишу под платформы, где его нет.
350 1864836
>>64826

> пытается


Почему тогда у новомодных низкоуровневых языков есть нативная совместимость с сишкой, но там додумались не плодить тонну UB? Тем более один хуй комитет уже давно сломал обратную совместимость с кодом старых стандартов. Есть, например, практика в других языках помечать всё ненужное говно мамонта как deprecated и настойчиво предупреждать если используешь это.
351 1864840
>>64836

> Почему тогда у новомодных низкоуровневых языков есть нативная совместимость с сишкой


Потому что в них она на уровне линковки, а не на уровне # include <код_на_сишке.h>

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


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

> на уровне # include <код_на_сишке.h>


Так в чём проблема встраивать компилятор сишки для такого и линковать со своим? В GOвне ты тоже можешь написать
#include<код_на_сишке.h>
image.png5 Кб, 568x116
353 1864845
Патсаны хелп
Короче такая задача:

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

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

Чтобы можно было использовать типа как пикрил
354 1864850
>>64820
Ищи по слову name mangling
355 1864851
>>64840

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


не, нихуя, ты неправ
356 1864853
>>64845
Хорошо
357 1864856
>>64851
Ты про какое то говно мамонта типа объявления параметров в стиле K&R?
int foo(a) int a; { ... }
358 1864858
>>64856
не, я про объявления типа такого
GLubyte data[size][size][3];
типа сайз не конст и хуё-моё
359 1864859
>>64845
бля никто не может решить короче
погромисты вы где
может встроеная хуйня какая-нибудь есть для такого?
360 1864860
>>64843

> В GOвне ты тоже можешь написать


Ага, и обмазываться всякими unsafe.Pointer() и биндингами. Даже в C++ интероп с сишкой не безшовный, что там про Go говорить.
361 1864863
>>64845
Просто берёшь и без задней мысли выделяешь память под 10 указателей, в каждый из них выделяшь память под 10 указателей, в каждый из них выделяшь память под 3 инта.
362 1864865
>>64863

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

363 1864866
>>64863
бля буду выделять надо один раз на всю хуйню
364 1864868
>>64866
Тогда никак, наверн. Можно выделить 10103 сразу, но тогда доступ будет не через скобочки, а через хитровыебаное умножение.
365 1864870
>>64858
Круто, передашь слишком большое значение size - и стек переполнится, когда с кучей такой проблемы ещё долго не будет. И много сишного кода использует это?
366 1864874
>>64870
а ты не передавай слишком большое значение

хуй знает много или нет, на плюсах такая хуйня не компилится теперь
367 1864876
>>64868
да можно, там типа просто надо разложить указатели рекурсивно
368 1864891
>>64858
VLA зло, его даже из кернеля емнип выпилили пару лет назад.
369 1864897
>>64845
Можно через malloc это сделать, но выглядит это как грязный хак говна и, вероятно, это приведёт к UB и так писать нельзя.

В тред призываются эксперты по С, которые пояснят за этот момент.
370 1864899
>>64897
схуяли нельзя
нешто один раз вызвать малок на всю хуйню хуже чем вызвать его миллион раз для каждого указателя
371 1864903
>>64845
Выдели одномерный массив и потом по оффсетам ищи нужную себе хуйню
372 1864905
>>64899
>>64897
А с оператором индексации как?
373 1864907
>>64899
Хуже, потому что есть ощущение, что он не предназначен для этого и хуй знает что там с памятью происходит, и с типами, и как доступ к элементам осуществляется. Но я не шарю в С, так что могу ошибаться.
Короче, нормально делай, нормально и будет.
И лучше использовать смарт поинтеры, вместо обычных указателей.
А ещё лучше стд вектор просто возьми и всё.
374 1864909
>>64907
И как ты засунешь в std::vector 5-мерный массив вида
A[3][2][4][4][3] ?
375 1864911
>>64907
А, вместо маллока, понятно.
376 1864913
>>64909
std::vector<std::vector<std::vector<std::vector<std::vector<std::vector>>>>>
377 1864914
>>64845
Ебани через emplace new, подсунув ему память.
378 1864915
>>64909
std::vector<std::vector<int>> arr;
379 1864916
>>64913
А теперь в общем виде
380 1864917
>>64915
Это двумерный массив
image.png4,4 Мб, 1365x2048
381 1864919
382 1864920
>>64916
Какой-нибудь variadic template, наподобие template<typename T, typename... Ts> class Type : public Type<Ts> { }, лол.
383 1864921
>>64920
Только не typename, а int.
384 1864925
>>64920
А если количество измерений неизвестно в compile time?
385 1864929
Сап, байтоёбская братва. Если вдруг кому скучно живётся прошу дать оценку кодстайла и указать на ошибки в коде:
https://dropmefiles.com/dztjN (я быдло без гита, сори).
Делал по заданию 3 тут: https://ravesli.com/glava-11-itogovyj-test/
Сегодня ровно 2 месяца как вкатываюсь в кресты.
386 1864930
>>64913
а как ты это динамически сделаешь?
387 1864932
>>64925
Тогда и с обычными указателями многомерные массивы не получатся, олько одномерный, у которого будешь вместо компилятора вычислять настоящий индекс по N размерам.
А преобразование обычного указателя в указатель на указатель на указатель на указатель пахнет нарушением strict aliasing rules, хотя хуй знает.
388 1864937
>>64909
std::vector
389 1864939
>>64909
Хранишь в одном контейнере линейно и вычисляешь нужный индекс.
Даже двухмерные массивы пахнут говнокодов, выше — не имеею юзкейса.
390 1864940
>>64929

>(я быдло без гита, сори).


Нахуй уходишь тогда.
391 1864945
>>64939
Тензоры?
392 1864947
>>64940
До данного момента для него у меня было примерно 0 юзкейсов. Да и сам иди нахуй, быдло.
393 1864968
>>64947
Быдло здесь ты, если на полном серьезе предлагаешь нам скачать твои лабы с файлообменника.
394 1864979
>>64939
Ктати а почему так? Куда не посмотрю везде матрицы линейно хранят.
395 1864982
>>64979
К Э Ш П Р О Ц Е С С О Р А
396 1864984
>>64979
1 аллокация лучше N
1 free лучше N
1 проверка на nullptr лучше N
>>64982
this
397 1864985
>>64982
А разве двумерные массивы физически не хранятся линейно?
398 1864987
>>64985
на стэке - да. При гомоебле в виде аллокаций указателей на указателей на указатели как пчел выше пытался делать - нет конечно.
399 1864988
>>64985
Двумерный массив - это буквально одномерный массив указателей на (относительно) рандомные участки памяти
400 1864989
>>64987
>>64988
А вот оно что, понял.
401 1864990
>>64987
хули нет
куда положишь указатели там они и будут лежать
положи линейно и будет тебе линейно

>>64989
да не слушай даунов
402 1864992
>>64990
Читать научись, чучело. О каком укладывании указателях речь, если мы АЛЛОЦИРУЕМ каждый массив?
403 1864994
>>64992
даун, какой "каждый" массив? он один всего
алоцируй себе в очке один раз буфер и запихни туда всю хуйню
нахуй тебе сто раз алоцировать ты даун что ли какой-то?
404 1864998
>>64994
Мы тут всем тредом это и обьясняем, если что.
405 1865004
>>64998
ну и как успехи?
406 1865006
>>64968
Имею право как человек успевший застать эру фо.
407 1865011
>>64929
Пчел ладно гит, но про онлайн компиляторы то должен был слышать.
408 1865012
>>64994
Каждый массив на который указывает массив указателей.
409 1865016
>>65012
зачем "массиву который указывает" быть где-то в другом месте
пусть лежат себе все рядышком, линейно
410 1865022
>>65011

> онлайн компиляторы


А может у него там больше одного файла.
411 1865034
>>65016
А разве ты можешь это контролировать? Какая нибудь фрагментация и перемещение.
412 1865037
>>65034
ты не можешь контролировать где лежит указатель?
413 1865142
Разве в вашем недоязыке нельзя три раза переопределить оператор индексации?
414 1865144
>>64945
Обычно на гпу используются, т.е. не нужно получать доступ к n элементу, весь тензор целиком уезжает. А при заполнении можно всякие юнионы использовать, если так хочется
415 1865159
C++ тред в 2020: двумерные массивы, указатели, malloc
416 1865183
>>64782
Си было во времена, когда ещё делались 36-битные и 48-битные компьютеры. Сейчас да, нафиг никому не нужно, но комитет просто так не убедишь. Поэтому и получается, что в GCC long то-ли 4 байта (при компиляции на x86), то-ли 8 байт (x64).
417 1865189
>>65159
Сейчас бы сидеть на двачах и удивляться аутистам лол.
418 1865203
Какой конпиль по умолчанию юзает студия и какой вообще считается лучшим?
419 1865206
>>65203
cl.exe. GCC.
420 1865209
Раз уж речь зашла о контейнерах, поинтересуюсь мнением анонов о deque. Как я понял, это набор линейных массивов связанных между собой как списки.
Возможно я тупой, и не умею читать, но как определить длину одного линейного массива в ней?
421 1865213
>>65209
Исходник смотри, но зачем тебе это надо?
422 1865215
>>65209

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


Тебя это ебать не должно.
423 1865219
>>65206

>GCC


Почему не g++?
424 1865220
>>65219
GCC - это общее название и GCC (лол), и G++, и gfortran, и gccgo, и прочая, и прочая.
425 1865237
>>65209
Там (как и везде) дополнительная внутри метадата хранится
426 1865240
>>65206

> винда


> GCC


Откуда вы лезите? Зачем добровольно жрать говно и низкую производительность?
427 1865243
>>65206
Студия не умеет в GCC, только через кросскомпиляцию на никсах. А умеет она в Шланг в кач-ве фронтенда (clang-cl)
428 1865282
>>65213
Просто интересно стало.
>>65237
Спасибо.
430 1865369
>>65159
Не стоит забывать про вечный IDE-срач (хотя даже долбоебу должно быть понятно что если таски уровнем выше laba2, VS не контрится ничем)
image.png23 Кб, 666x371
431 1865373
>>65159
Надо обсуждать UB, темплейты, интрисинки и отказ от юзания фич, которые якобы zero cost, а на самом деле медленнее на 0.00000000000001%, а также лабы студентов и работу в НИИ.
432 1865376
>>65369
Перешёл на линукс с имаксами спустя 2 года кодинга во всратом вс, сейчас за 5 часов делаю то что раньше делал за 9.
433 1865377
>>65376
Что используешь? Spacemacs?
434 1865378
>>65376
Может ты хоть немного программировать за 2 года научился? Ну и да, я не могу представить себе, как в 2 раза чистую производительность можно улучшить, учитывая, что я большую часть времени читаю код, а не пишу. А для чтения VS божественна.
435 1865383
>>65159
>>65189
Сейчас бы весь тред грести в одну гребенку с ньюфагами, задающими вопросы.
436 1865387
437 1865392
>>65387
Казуал, я на ed сижу
438 1865395
>>65392
Казуал — это ты. Я на бумажке пишу.
439 1865396
>>65378
Попробуй на работу устроиться, тогда и начнешь писать что-то.
440 1865406
>>65377
Да
>>65378
Безусловно. И с ростом скилла вырос как объём работ так и сложность.
Разумеется если ты ретроград и >я большую часть времени читаю код; то тебе и нативный нотпад подойдёт.
441 1865413
>>65396
Смешные проекции человека, который никогда в прод не контрибутил. Иначе бы знал, что чтения в разы больше, чем написания в больших проектах.

>>65406

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


Просто кекнул с этого
442 1865416
>>65413

>кекнул


Ты же понимаешь, что за аргумент это не сойдёт?
443 1865417
>>65416
я понимаю, что чтение кода в нотепаде это такая хуйня, что это даже как-то аргументировать смысла нет.
444 1865418
>>65417
А что так? Без подсветки синтаксиса совсем невмоготу, да?
445 1865421
>>65373

>Надо обсуждать темплейты


typename или class?
446 1865425
>>65421
class, очевидно, так букв писать меньше
447 1865426
>>65421
Это не обсуждение.
448 1865427
>>65418
Без Find all references, без кликанья на функции - да. И хорошо настроенная подсветка вполне помогает усвоению кода.
449 1865430
>>65425
# define typename _
450 1865431
>>65427
Это все есть в vs code.
451 1865432
>>65418

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


Ты не гофер случайно?
452 1865433
>>65431
Окей, и что дальше?
453 1865436
Подсветка синтаксиса - зло которая только мешает понимать истинные процессы происходящие в языке, посколько ты не пропускаешь код через свою голову.
454 1865437
>>65427
Сам же упомянул чтение кода. Теперь всё встало на свои места.
>>65432
Смотря кто спрашивает.
455 1865446
>>65437

>Теперь всё встало на свои места


Хуй знает, что у тебя там встало на свои места. Но сомневаюсь, что ты мне что-то новое расскажешь
456 1865451
>>65446
Только думал тебя похвалить, мол ты не только чтец но и в анализе кода что-то сечёшь так ты в позу встаёшь. Не надо так.
457 1865474
>>65421
typename, если значение может быть типом, class — если только классом.
458 1865516
Что значит вердикт IL в тестирующей системе?
459 1865518
произошел форс мажор, поэтому нужен человек, разбирающийся в с++ (для курсовой работы). об оплате договоримся.
почта: dawnfao:#dsANUSyandqACexPUNCTUMr/1Hu потом тг
извините, просто некуда обратиться даже
460 1865529
>>65518

> произошел форс мажор


Не-а, просто ты ленивый мудак который нихуя делать не хочет
461 1865530
изображение.png15 Кб, 937x103
462 1865536
>>60500 (OP)
Вот к этому коду прилагается:
The constructor uses an initializer list to set the class constant members. The variable before the curly braces is the class member, while the pieces inside are the values assigned to it. These are often constructor arguments. It is acceptable to use the same name for both the class member and the argument.
Есть класс World, его объект World() со своими полями. Что ещё за члены класса и аргументы конструктора, где они в коде?
463 1865537
>>65518
4к час, пиши в ЛС.
464 1865539
>>65518
Тебе в JS-тред.
465 1865540
>>65536
Поля это же и есть члены класса.
Конструктор это сорт оф функция, что в нее передается то и есть аргументы.
466 1865541
>>65536
Конкретно на твоем пике definition конструктора.
ni{ni} примерно эквивалентно если бы внутри тела было написано { this.ni = ni }
467 1865595
Зачем вы отвечаете челику неспособному в 5 минут гугления?
468 1865598
>>65595
Почти весь /pr/ - это ответы на вопросы тех, кто не умеет гуглить.
469 1865600
>>65595
Ради рофлов же. Ты думаешь тут хоть 50% ответов по делу?
470 1865607
>>65598
>>65600
А ведь вы могли бы потратить это время с пользой. Скажем на саморазвитие и получение новых знаний и как следствие повышение своей ценности как специалистов и как результат улучшение уровня жизни.
471 1865608
>>65607
Ты деб?
472 1865611
>>65607

>саморазвитие


Я аниме в фоне смотрю
473 1865612
>>65608

>деб


Система для куколдов
474 1865613
>>65607
Для саморазвития нужен определенный настрой души, а пока его нет, остаётся только подъёбывать зелень на двачах.
475 1865614
>>65612
TAR.XZ
476 1865616
>>65613
Это всё отмазки. С таким подходом никогда настроя не будет.
>>65614
А может быть ты?
477 1865629
>>65616

> Это всё отмазки. С таким подходом никогда настроя не будет.


Таки бывает. Когда не слишком сильно заебался на работе, и ещё есть силы на кодинг для души.
478 1865636
>>65607
Пукнул
tumblro90wa9Kl4W1s1clngo31280.jpg59 Кб, 873x1066
479 1865654
Начинал учить питон по книжке "Укус питона". Понравилась она тем, что все задания к каждой главе идут с использованием знаний предыдущих глав. Есть ли подобная книжка по плюсам? Сейчас прошел 60% курса на udemy https://www.udemy.com/course/beginning-c-plus-plus-programming, но хочется больше практики по ООП также последовательно-нарастающих.
480 1865655
>>65654
Липпман, Прата, Шилдт
Уёбывай
481 1865662
>>65654
Страуструп.
482 1865665
>>65655
>>65662
Спасибо. Остановился все-таки на Прате. Страус тяжко заходит.
483 1865667
>>65654
c++ primer
карьера программизда
484 1865684
>>65665
Очень, очень глупое решение. Прата не описывает многие тонкие моменты которые имеются у Струпа. Потом на гугление потратишь больше времени чем на разбор сейчас.
485 1865692
>>65684
Да какие тонкие моменты, ты о чём?
Язык бы, для начала освоить, на базовом уровне. Ознакомиться со стандартной библиотекой и тд, а уж дальше в нюансы ёбаная тётя погружаться.
486 1865702
>>65692
Ты чё, ёпта. Сначала пишем код - потом думаем что он делает.
487 1865734
>>65692
За базовым уровнем - на равесли до ООП. Дальше не выёбываешься и берёшь Страуса. Уже заебали капать на мою седую голову с визгами типа "Как это нельзя писать using namespace ...;? Как это переписывай 40 файлов?"
488 1865736
>>65734

>Страуса


Это тот типчик у которого чтобы примеры из книги заработали надо искать какую то васянскую либу include_me_hello_world причем нужной версии?
489 1865738
>>65736
Только если ты настолько аутист что даже не сумеешь понять как самостоятельно подключать либы.
490 1865739
>>65738
Дедуль, а либы тебе на сиди-диске к книге приложили? Сейчас это немного не так работает.
491 1865743
>>65739
Какие ещё либы, ебанько? У тебя всё со студией из коробки идёт, всё как вы любите.
492 1865744
>>65743
Ясно, ты книгу даже не открывал. У меня в студии никаких std_lib_facilities нет.
image.png65 Кб, 1044x409
493 1865745
>>65736
Это смотря какую из двух книг читать, в нормальной книге такой хуйни нет.
494 1865746
>>65744

>#include<iostream>


>#include<iomanip>


>#include<fstream>


>#include<sstream>


>#include<cmath>


>#include<cstdlib>


>#include<string>


>#include<list>


>#include <forward_list>


>#include<vector>


>#include<unordered_map>


>#include<algorithm>


>#include <array>


>#include <regex>


>#include<random>


>#include<stdexcept>



Ты тащищь всё это говно в каждое своё поделие и ещё смеешь залупаться на меня?
495 1865747
>>65746
Фу, блядь.
496 1865748
>>65746
Привет, дед. Когда последний раз инклюдил это в студии?
497 1865750
>>65746
Там дальше ещё using namespace std; лол.
image.png187 Кб, 986x688
498 1865751
>>65747
А я о чём? 39 страница, всё описано. Дебилам файлик подавай.
>>65748
Я тебя понял шиз, просто съеби.
image.png341 Кб, 507x420
499 1865754
>>65750
Мда, ироничный прокол.
500 1865758
>>65751
Я и без книжки понимаю, что такое неймспейс и почему хуево его инклюдить везде без весомой причины. Какие еще ньюансы в струссусусупе описаны?
daun.png7 Кб, 798x377
501 1865800
502 1865802
>>64845
погромисты с двача не в силах решить простую задачу
503 1865807
>>60500 (OP)
Привет анончики.
https://youtu.be/zrOIQEN3Wkk?t=299
Наткнулся на видео (есть таймкод), там оч странный код на с++, похожий на хаскел. Гуглил rv and hs namespaces c++ - ничего. Загуглил functional programming c++20, есть примеры кода, но не поясняется, что это и как с этим работать.

Тыкните, пж, куда читать об этом.
504 1865817
>>1860427 →
VCLibs 14.0 версии, я так полагаю, нужно для MSVC 140, что соответствует Visual Studio Express 2015

Мб ты открываешь проект, сделанный в 15-ой студии, или у тебя вместо vc142 стоит vc140, я хз.
505 1865818
>>1860462 →
А как на винде полноценно работать с gcc?(я спрашиваю именно про винду, потому что gcc предлагается как альтернатива при проблемах с визуалкой)

Я на днях трахался с бустом и gcc от mingw и mingw64, он простто не работает с библиотеками буста, хотя они вроде как успешно им были собраны. Файлы, в которых просто main и #include <boost/thread.hpp> <boost/asio.hpp> не собираются с ошибками, которым я нашёл массу решений, не подошедшие в моём случае.

Я знаю, что ещё есть tdm-gcc, но у меня уже не было моральных сил ещё и с ним пытаться.
506 1865832
>>65807
а чё странного именно там
507 1865861
>>65807
Это ranges.
508 1865879
Можно ли в VS2019 поставить брекпоинт на данные? Допустим есть глобалная структура и надо узнать в каком месте происходит изменение переменной.
509 1865883
>>65818
Забудь вообще про gcc. Используй clang
510 1865885
>>65879
Можно поставить на поля этой структуры до восьми байт. В дебаггере пкм по переменной -> break when value changes
511 1865889
>>65885
Не работает что-то, написал цикл поставил условие нажал F5 и всё равно деление на ноль
512 1865892
Как в std::list добавить новый узел справа либо слева от итератора?
513 1865893
>>65818
cygwin можешь ещё попробовать.
514 1865895
>>65818
Ещё, как вариант, ты можешь из vscode использовать тулчейн от студии, если он у тебя нормально установился.
515 1865899
>>65892
std::list::insert(...)
516 1865906
>>65889
Блядь. Ты проект собрал? Брейкпойнт туда хоть поставил? Зачем тебе выполнять ещё какое-то действие?
517 1865910
>>65899
мойЛист.insert (it, новыйУзел)? Так, что-ли? А с какой стороны окажется узел, который был в it? И как мне этот момент проконтролировать?
518 1865912
>>65906
Проект собрал, мне нужно понять почему у меня не срабатывает бряк при изменении переменной/массива/etc, ранее у меня была переменная которая изменяла значения хотя в неё ничего не писал. Ясно дело где-то переполнение буфера. Сейчас похожая ситуация и я пытаюсь найти место где в неё данные неправильные записываются.
519 1865923
>>65910
http://www.cplusplus.com/reference/list/list/insert/
Вот здесь посмотри подробности и примеры
520 1865924
>>65923

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


Нахуй иди, чмоха.
521 1865926
>>60500 (OP)
https://youtube.com/watch?v=QQZmDWnV618
Нужно мнение двача! По-моему, он несет какую-то дичь. И это руководитель.
522 1865931
>>65926
Дай угадаю: это исповедь питониста о том, какой С/С++ страшный и ужасный?
523 1865940
524 1865947
>>65912
Если бряк не работает, значит не удовлетворяется условие, по которому этот бряк должен происходит. Отлаживай программу пошагово.
525 1865952
>>65883
Я, честно признаться, особо не разбираюсь в различиях компиляторов, просто по gcc и его использованию в консоли примеров много, и msvc почему-то визуалкой как-то по-странному запрятан и доступен только из специальной консоли разработчика, и то посредством devenv.exe и прочего. Поэтому решил, что для консоли удобнее всего будет гцц

>>65893
Нет, спасибо, достаточно жопоболи.

>>65895
Да, я думал об этом. Сегодня буду разбираться, как это провернуть. Визуалка жутко тугая, что-то меня от неё аж трясёт. Я уже молчу о том, что там даже подсветку синтаксиса нормально кастомайзить нельзя.
526 1865960
>>65931
Нет. Исповедь С++-пацанчика о том, какая дохуя математика на шаблонах в STL, и как STL охуенно компилируется в ниибацца оптимальный бля буду код. Паттерны и SOLID в мире С++ у него не работают, кстати, нада прощи быть.
527 1865961
>>65924
Ты наверное привык, что тебя мамка с ложечки кормит, рассказывает тебе что к чему и жопку вытирает. Пора взрослеть и делать всё самостоятельно.
А документация - она вся на английском, привыкай.
528 1865965
>>65926
Помотал немного, кекнул с его причин почему кресты лучше сишки и всего остального - деструкторы и шаблоны, лол. Первое уже обоссано растами всякими, второе так или иначе есть даже у гоферов. Боюсь представить что случится с его психикой, если он увидит compiletime-магию из Zig. Так же он там напиздел что либа номер один - буст.
>>65931
Скорее джависта, который после своего говна увидел кресты и начал ссать кипятком, но в итоге пригорел из-за своего слабоумия.
NrjVd0VOiE.jpg73 Кб, 400x400
529 1865966
>>65924

>на англюсике


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


>человеческом


Псина, съебись на живодерню
530 1865970
>>65965

>либа номер один - буст


Так падажжи, а какая же? стл не считаем

>Zig


>раст


Все бы хорошо, но есть ли работа по ним?
531 1865972
>>65818
Просто поставь линупс и всё заведётся.
532 1865973
>>65961

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

533 1865978
>>65973
Przepraszam, бат шпрехаем мы here на русском, донт гори
534 1865980
>>65973
Сударь, вы тредом ошиблись. Вам не в С++, а в 1С. Там всё как вы изволите.
535 1865982
>>65965

>compiletime-магию из Zig


Для compiletime в c++ уже есть constexpr.
536 1865984
>>65982
Да темплейты сразу были
537 1865986
>>65982
constexpr не гарантирует компайл тайм.
538 1865987
>>65970

> а какая же?


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

> есть ли работа по ним?


Нет. Я написал это к тому что деструкторы очень сомнительное преимущество и от обсеров мало спасают, а раст как раз показывает пример что можно на хуй сесть и рыбку съесть писать быстрый и безопасный код.
539 1865999
>>65965
А вот в 3 разных языках есть всё что в плюсах и даже лучше... Так и представил, как ты всё это вместе в проекте склеишь.
540 1866000
>>65986
Да, он универсальный.
541 1866002
>>65987
Да там просто чел однобокий, ковыряется только в своей нише. То с чем реально у него проблемы, это то, что он в английский не может.
542 1866003
Аноны, пишу проект на CLR WinForms на С++, у меня весь код получился в хэдэре (.h) это нормально? Ну просто конструктор с ним хорошо работал. Ну в хэдэрэ прописано появление всех окон, обработка событий при нажатий на кнопки и т.д. и т.п.

Стоит ли это перетаскивать в .cpp?
543 1866005
Ботинки.завязать(левая_рука, правая_рука, шнурки);
Сука, ору. Понятно, почему у пидорах ни паттерны, ни солид не работают.

>>65987
Тогда соглашусь по поводу буста. Я думал, он просто привел ее в качестве самой популярной либы, про которую нужно знать (опять я недооценил степень маразма в пидорашкокодинге).
544 1866007
>>66002
Он блять SOLID-диссидент, алло.
545 1866008
>>65982
Ну это совсем не то. В крестах это очень ограниченно и в виде нестыкуемых друг с другом вещей. А в Zig функционал compiletime для всего один. Как для вычисления типов, так и для выражений. В итоге тебя не ограничивают шаблонами и ты, например, можешь типами в коде жонглировать без лапши в скобках -> >>65800. Или то что недавно упоминали - работать нормально с массивами через скобки без константного размера или явно использовать переменный размер инта для разных платформ, а не жрать что дают.
546 1866012
>>65159
Нужен отдельныц тред для экспириенсд-господ
547 1866021
Объясните на пальцах, где и когда может понадобиться динамическое выделение памяти? Правильно ли я понимаю, что это актуально в том случае, если мне нужно создать какое-то количество объектов (например, я сделал запрос и получил 10000 постов с двача) и после их обработки мне нужно их выкинуть из памяти, так как они больше мне не нужны?

Если бы они остались в памяти, то приложуха бы просто жрала ее каждый раз как делает запрос?
548 1866024
>>66021
Мы тебе няньки, что ли, дурачок, на такие элементарные вопросы отвечать? Книжки читай, там все прекрасно объяснено. Желательно на английском.
549 1866025
>>66000
Интересный синоним к слову "косячный".
550 1866027
>>66005

>Ботинки.завязать(левая_рука, правая_рука, шнурки);


Предложи свой вариант.
551 1866029
>>66008
В Zig нет ООП, это аналог Си, а не крестов.
552 1866033
>>66021
В софте выше уровня хэллоу ворлда у тебя будет ебическое количество ситуаций, когда размер выделяемой памяти будет неизвестен во время компиляции. В таком случае нужно выделять память в куче в рантайме, разумеется.

Дополнительная причина - куча, в отличие от стэка, ограничена только ОЗУ самого камплюхтера, поэтому если тебе надо выделить ебическое количество памяти (гиг+, допустим), тебе надо использовать кучу вне зависимости от того известен ли тебе размер выделяемой памяти заблаговременно или нет, потому что стэк статичен и маленький, гиг ты там не выделишь, прога просто крашнется из-за переполнения стэка.
553 1866051
>>66033
Что ты несешь, наркоман, стек это та же ОЗУ. Точно так же выделяются новые виртуальные страницы при pagefault
554 1866058
Стек моей мечты: С\С++, ASM x86/x65, WinApi
555 1866060
>>66027

>сперва добейся


Лол. Сам не можешь эту хуйню исправить?
556 1866064
>>66033

>стэк статичен


Стек автоматичен.

> и маленький


Не маленький и не большой. Он автоматический.
557 1866065
>>66060
МенеджерМира.послать_сообщение(СервисЛокатор.получить_свободные_руки(), БотинкиСоШнуркамиИлиНуль())
558 1866070
>>66065
А где же фабрика фабрик, смешной ты петушок? Садись, неуд.
559 1866072
>>66070
Поленился. Еще и само сообщение забыл: "сасай лалка" )))
560 1866081
>>66029

> это аналог Си


Скорее Go/Rust, чем сишка. В Zig можно сделать пародию на ООП средствами языка, разве что наследование не запилить. Zig же и начали пилить потому что в расте пытались сделать заебись, а получилось говно с костылями.
561 1866084
>>66060
фабрика = сервис_локатор.найти(интерфейс_абстрактной_фабрики_рук)
...
фабрика.зарегистрировать(интерфейс_левой_руки, реализация_левой_руки)
фабрика.зарегистрировать(интерфейс_правой_руки, реализация_правой_руки)
...
если человек = сервис_локатор.найти(интерфейс_человека) тогда
__если человек.руки == нет тогда
____если левая_рука = фабрика.создать(интерфейс_левой_руки) и правая_рука = фабрика.создать(интерфейс_правой_руки) тогда
______человек.руки = левая_рука, правая_рука
____или
______кинуть_ошибку(ошибка(1488, "человек не может завязать шнурки, неудалось создать и заинжектить руки"))
____ой_всё
__ой_всё
__если человек.имеет(ботинки) тогда
____если человек.может(завязать_шнурки) тогда
______человек.отправить_команду(завязать_шнурки)
____или
______кинуть_ошибку(ошибка(228, "человек не умеет завязывать шнурки"))
____ой_всё
__или
____кинуть_ошибку(ошибка(1337, "это столлман, ему нинада)0"))
__ой_всё
ой_всё

Уже достаточно солидно, или какой-то принцип нарушен?
562 1866090
>>66084

> Уже достаточно солидно


В каком месте? У тебя в функции завязывания шнурков создаются руки! Алло, йоба!
Это пока что только S. Дальше ещё хуже. Давай заново.
15913218189200.jpg58 Кб, 600x600
563 1866093
>>66084
Процедурная пидорашка порвалась, лол.
564 1866100
>>66093
Структурное программирование сила, функциональщикам могила.
16059020546120.jpg283 Кб, 1080x1080
565 1866104
>>66100
Структурное программирование - сила
ООП - самый топчик
фыпешникам - мамкин борщик :з
566 1866106
>>66104
Истинный ООП только в JS, на прототипах и любых сообщениях любому объекту.
567 1866107
>>66104
Мультипарадигма, используемая там, где нужно - топчик. Сектанты не нужны
568 1866108
>>66107
Тащить все подряд в язык в виде недоделок - это еще не мультипарадигма.
569 1866113
>>66107
Имелись в виду преобладающие парадигмы.
570 1866117
>>66051
Сам ты наркоман. Ты не можешь поменять размер стэка в рантайме, об этом идет речь. Размер стэка известен до запуска программы и не меняется (и не может меняться) во время исполнения программы.
571 1866118
>>66090

>У тебя в функции завязывания шнурков создаются руки!


класс фабрика_человеков(сервис_локатор):
__создать_человека:
____если сервис_локатор == нет тогда
______кинуть_ошибку(ошибка(123, "локатора нема"))
____ой_всё
____если билдер_человека = сервис_локатор.найти(интерфейс_билдера_человека) тогда
______билдер_человека.собрать(&человек)
____или
______кинуть_ошибку(ошибка(d3adb33f, "рук не найдено"))
____ой_всё

>У тебя в функции завязывания шнурков создаются руки!
null safety не завезли же, аджайл порешал и человек собирается по пути, кек
572 1866119
>>66093
Я вообще другой анон, но карго культ вокруг солида выглядит хуже, лол.
573 1866120
>>66064

>Стек автоматичен.


Ебланичен. Единственное, что меняется в рантайме, связанное со стэком, это значение указателя на верхушку стэка (ESP/RSP регистр в x86/x86_64 соответственно). Но у стэка есть финальная величина. Именно поэтому ты не можешь выделить гиг памяти на стэке и именно поэтому у тебя крашится программа, если у тебя, допустим, бесконечная рекурсия (которая не может быть бесконечной как цикл, ибо каждый рекурсивный вызов - это стэковый фрейм на стэке, а стэк, повторюсь, имеет конечную величину, которая не меняется в рантайме).
574 1866129
Че пацаны, аниме?
index.jpeg3 Кб, 259x194
575 1866131
>>66120

>Но у стэка есть финальная величина.


"Финальная величина" есть и у хипа. ШОК.

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


Нет. Программа падает оттого, что нехватку памяти для стека нельзя отловить стандартно.
576 1866146
>>66119
Хоп, а вот и еще один неосилятор базовых вещей.
Расскажи мне, какие у тебя проблемы с солидом возникают, что именно в нем НИНУЖНО.
577 1866149
>>60500 (OP)
Аноны, подскажите, как стримить видео с вебки на другой компьютер с минимальной задержкой.

Самое банальное и тупое решение: дёргать отдельные кадры (opencv) и передавать их через TCP сокет, но работает это с очень большой задержкой.

Ещё читал про всякие rtp, sip и прочее, но с трудом понимаю, как это реализовать или какие библиотеки нужно использовать.

Короче, если у кого-то есть опыт в таких вещах, очень хочется услышать ваше решение.
1505876748196.png375 Кб, 1712x1301
578 1866150
>>66146
Напоминаю.
579 1866151
>>66149
Читай про sip.
580 1866153
>>66117
Можешь менять в рантайме, разрешаю.

#include <sys/resource.h>
...
struct rlimit rl;
rl.rlim_cur = 16 1024 1024;
setrlimit(RLIMIT_STACK, &rl);
581 1866155
>>66120
1. Стек не имеет конечную величину и меняется в рантайме.
2. Ты можешь выделить гиг памяти на стеке, все что произойдет - ты попадешь в guard page, выкинется pagefault, система его отловит и подложит в виртуальную память еще страничек.
582 1866157
>>66149
Для rtp полно либ, я пробовал разные но чет так и не получилось быстро, не зря за софт видеоконференций все же деньги дерут. Можешь еще webrtc глянуть.
583 1866160
>>66150

>пук


Ты на вопрос отвечай.
584 1866167
>>66157

>не получилось быстро


То есть всё равно была задержка? Какой величины примерно?

>Можешь еще webrtc глянуть.


Про него тоже читаю.

Может, тупо резать видео на пакеты и слать их по UDP? Или это совсем зашквар будет?
585 1866169
>>66167

> Или это совсем зашквар будет?


Нет.
586 1866192
>>66167

>Может, тупо резать видео на пакеты и слать их по UDP?


Так и надо делать
587 1866193
>>66146

>Хоп, а вот и еще один неосилятор базовых вещей.


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

>что именно в нем НИНУЖНО


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

Какой нибудь SRP из хорошего совета руками религиозных идиотов догматично дробящих всё на объекты с 1 целью и желательно с функциями по 4 строки)0 превращает отладку в ад, просто потому что вся логика размазана по 5-7 строчек размазана на 6 модулей (3 из которых тупо проксируют вызовы туда-сюда и ещё 1 нужен просто чтобы это всё говно слинковать друг с дружкой, лол), если там есть асинхронщина — это вообще время на отладку x10 просто ради того, чтобы хотя бы 1 раз пройти весь этот граф в отладчике, потому что отладка чужого кода всегда начинается снизу логической цепочки. Добавляем туда L/ISP — у нас ещё все общаются по протоколам/интерфейсам/итд, сразу куча бойлерплейта (причём в большинстве случаев неиспользуемого, т.к. подмена имплементаций и тесты вообще есть у пары модулей из сотни, да и делается она элементарно даже если автор хотя бы слышал про DI но не делал интерфейсы вперед), проблемы с перформансом, временем компиляции (просто из-за кучи бойлерплейта), необходимостью несколько часов изучать что и как работает ради добавления, блять, кнопки итд. Добавляем OCP и получаем необходимость форкать нахуй каждую либу когда оказалось что нужно какое-то поле или ждать неделю до следующего спринта пока команда делающая либу дойдёт до этого таска, лол, спасибо.

Разве что про Dependency Inversion сказать ничего не могу, единственный однозначно полезный совет, лол.

>>66160

>пук


Так это другой ананас, шизоид ты ебаный.
588 1866196
>>66169
>>66192
Какие минусы у такого подхода в сравнении с rtp, sip и прочими протоколами/стандартами? Не зря же их придумали.
589 1866199
>>66196
Посмотри RFC.
RTP is primarily designed to satisfy the needs of multi-
participant multimedia conferences
590 1866218
>>66149
А почему ты решил, что у тебя задержка из-за транспорта?
591 1866222
>>66199
Сделал через udp, но, во-первых, также отправляю отдельные кадры (jpeg), а, во-вторых, пока не тестил толком.

Могут ли возникнуть проблемы из-за udp, если отправлять закодированное (например, h264) видео?

>>66218
На локалхосте никаких задержек нет. По wi-fi задержка уже около 3-х секунд.
592 1866224
>>65518
Отписал
593 1866226
>>66222

>проблемы из-за udp


Все остальное внесет бóльшую задержку.
594 1866250
>>66226
Потестил с udp и покадровой передачей. Очень много глитчей и артефактов, но задержки практически нет. Интересно, будет ли лучше, если передавать закодированное видео?
595 1866264
>>66250
Это зависит. Оцени потери и задержки пакетов, чтобы понимать, откуда глитчи.
596 1866287
>>66264
Спасибо за совет, я попробую. А как вообще можно оценить потери и задержки пакетов с udp? Это же не tcp.
597 1866291
>>66287
Ещё надо попробовать поиграть с размерами пакетов. Наверно, это должно оказывать влияние.
598 1866296
>>66287
Ты же отсылаешь фиксированное количество пакетов за 1 времени. А на приемной стороне ведешь лог, сколько получил за единицу времени.
Вместо задержек можешь в каждый пакет добавить метку времени, а на приемной стороне смотреть разность меток, т.е. вариацию задержки.
599 1866298
>>66131

>"Финальная величина" есть и у хипа


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

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


Сынок, сразу видно, что ты в ассемблере не бум-бум. Ты знаешь вообще как рекурсия работает и что есть стэковый фрейм? Пиздуй учить матчасть, короче.
600 1866303
>>66153
если мы говорим про лялекс, то там размер стэка ограничен ulimit'ом так или иначе. Позволить ему быть размером с ОЗУ ты не сможешь, в отличие от хипа (грубо говоря, так как есть еще данные в процессе, занимающие память, но на хипе можно выделять память, пока весь ОЗУ не кончится).
желтый колобок.jpg10 Кб, 225x225
601 1866310
>>66298

> Которая ограничена размером оперативной памяти.


Про виртуальную память и пределы а ля юникс не слышал?

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


Это ограничение качественно ничем не отличается от ограничения на размер кучи. Количество только другое.

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


Юноша бабахнул.
602 1866320
>>66250
Я когда-то давно немного занимался стримингом видео. Не знаю, чем именно ты декодируешь, но я точно помню, что ffmpeg не любил, когда я ему подсовывал половину кадра h264. Приходилось нарезать поток самому исходя из старт кодов ровно по границе NAL юнитов.
603 1866325
>>66310

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


Ограничение отличается тем, что размер стэка ограничен ulimit'ом (в Линуксе), а размер кучи - количеством ОЗУ. Или для тебя программное ограничение == аппаратное ограничение, шиз?

Дизассемблируй программу с бесконечной рекурсией и ты поймешь почему такая программа крашится, если тебе, конечно, известны вообще такие слова.
604 1866326
>>66058
Жаль, что работу с таким стеком найти практически нереально...
605 1866328
>>66058

>WinApi


Обожаю BadlyNamedFunctionEx2W(LPVOID structure, DWORD flags, LPDWORD reserved)
606 1866338
>>66325

>Ограничение отличается тем, что размер стэка ограничен ulimit'ом (в Линуксе), а размер кучи - количеством ОЗУ.


Для тебя man setrlimit:
RLIMIT_DATA
This is the maximum size of the process's data seg‐
ment (initialized data, uninitialized data, and
heap). The limit is specified in bytes, and is
rounded down to the system page size. This limit
affects calls to brk(2), sbrk(2), and (since Linux
4.7) mmap(2), which fail with the error ENOMEM upon
encountering the soft limit of this resource.

RLIMIT_STACK
This is the maximum size of the process stack, in
bytes. Upon reaching this limit, a SIGSEGV signal
is generated. To handle this signal, a process
must employ an alternate signal stack (sigalt‐
stack(2)).

> программу с бесконечной рекурсией и ты поймешь почему такая программа крашится


И даже с конечной, но большой ))))))
О чем и писал: нет стандартного способа обнаружить исчерпание предела стека. А malloc можно проверить на NULL. Вот и фся разница.
607 1866344
>>66303
Лялех - опенсорс, просто берешь и убираешь лимит.
608 1866346
>>66296
Понял, спасибо.

>>66320
Я написал клиент и сервер. Клиент посылает пакеты серверу, сервер их собирает. Пока что передаю MJPEG (это же как раз отдельные кадры в jpeg закодированные?).

>Приходилось нарезать поток самому исходя из старт кодов ровно по границе NAL юнитов.


Если не впадлу, расскажи поподробнее про это и в целом про задачу, которую решал. ffmpeg умеет только принимать поток или передавать тоже умеет (например, на заданный ip и порт)?
609 1866353
>>66320
>>66346

>расскажи поподробнее


Особенно интересно, как ты границы nal юнитов определял.
610 1866439
>>66326
в антивирусных компаниях очень даже реально на какого-нибудь kernel developer
611 1866443
На сколько сильно стоит обмазываться умными указателями, контейнерами и прочим stl вещами? Стараться делать всё - некоторые вещи проще и понятнее сделать в си стиле. Другие, безопаснее с использованием stl. Как искать баланс? И как на это смотрят в коллективах?
612 1866444
>>66443
умный указатель это со сборщиком чтоли?
613 1866447
>>66444
Да, отслеживает кол-во ссылок, и если все их удаляют, удаляет сам объект.
614 1866448
>>66443
Если речь идёт о c++, то нужно пользоваться его благами, а не избегать их. Stl -- это пример отлично написанного нереально крутого кода. Без этого никуда. Более того, не стоит использовать на плюсах сишные библиотеки. Это считается дурным тоном. В крайнем случае пишется плюсовый биндинг к сишной библиотеки. Ну вообще думай головой, чел. Это путь сиплюсплюс.
615 1866456
>>66193
Тебе об этом и говорят, дурачок.
Что SOLID сам за тебя хуйню не спроектирует.
Чтобы он работал, надо правильно выделять абстракции. Дебилы этого не умеют делать, создавая какие-нибудь классы открывалки файла, огребают и начинают верещать, что это все солид неработающий уиноуат, и процыдуркыми хуяк-хуяк прощи делыть.

>не исходят из конкретных нужд


Ну так это тоже не c солид беда. Это в принципе такая постсовковая проблема, когда при решении простейшей проблемы (записи "ты хуй" в файл ц:\говно.тхт) мамкины умники начинают звенеть яйцами и городить MVVM-фреймворки, ибо стремится к тому, что "крута и сложна" (а при правильном использовании солид и паттернов должно быть проще и легче).

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


Ну дак и причем тут солид? Давай тдд еще обосри.

>проблемы с перформансом, временем компиляции


Ты как бы платишь этим за гибкость реализации.
Нету гибкости? Значит, проектировал долбоеб. Он и процидурку мог с ошибками написать, какая разница?

>форкать нахуй каждую либу


А нада как?
616 1866458
>>66448
Ну вот к примеру, симуляция игры жизнь. Поле - двумерный вектор. Задача - найти соседей клетки икс. Если мы работаем через стандартные итераторы, то у нас возникает ебля с их правильным расположением. Точнее необходимость изобретать костыли из-за замкнутости карты (сосед последней точки - начальная) по условию задачи.
Как я понимаю наиболее правильный способ в идеях си дважды сплюснутого - это создать наследника от базового итератора, который корректно будет обрабатывать эту ситуацию
617 1866467
>>66448
Так тонко...
618 1866470
>>66458

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


Нуу так-то да, хотя максимальной скорости так не достичь.
619 1866472
>>66470
Нам неважна скорость -- нам важно быстродействие.
620 1866475
интересно, а что Бьёрн Страуструп думает про прыщи? Как он к пердолям относится? В его книгах все примеры делаются строго в виндовой среде...
621 1866476
>>66475
Именно поэтому он не смог написать компилятор для своего языка: знаний малёхо не хватило.
622 1866477
>>66458
operator[] твой друг
623 1866480
>>66476
а чё не существует компилятора который бы написал Бьёрн Страуструп? Серьёзно?
624 1866481
Бьёрн Страуструп всегда пишет что между пердолями и программированием лучше выбрать второе...
625 1866482
>>66475
Правильно: пишешь код
Неправильно: ебешься в вимом, сборкой, соснолькой пердолькой. А писать код даже не начинал.
626 1866485
>>66482
Вот этого двачую. Я при владении асмами, крестами и сями вообще ни разу почти не притрагивался к юниксу. Некоторые когда узнают это глаза круглые делают мол раз я такой задрот что асмы освоил почему это я в пердоли не вкатился. А ответ прост: я хочу создавать, а не разбираться по гайдам в чужих и отваливающихся программах.

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

и это жутко бесит и на нервы действует, на винде ничего такого не было ни разу в жизни. Если владеть реестром то переустанвливать шиндовс не придётся никогда.
627 1866489
>>66475
он сказал что линукс хуйня
628 1866491
>>66482
Начинал и даже заканчивал. Чо сказать-то хотел?
629 1866494
>>66491
в том, что ты проебал время на хуйню, когда остальные сразу начали писать код
630 1866495
>>66476

> не смог


Cfront - препроцессор в обычную сишку.
631 1866496
>>66494
поддвачну ещё раз.
632 1866501
>>66477
Я понимаю, что он мой друг, и им достаточно быстро и просто решить задачу но, как на это будут выглядеть, не в моём мелком проекте, а в каком нибудь большом?
633 1866503
>>66485
Дурачок по гайдам с лялехом работает, вместо того чтобы включить мозг -- спешите видеть !!!
634 1866505
>>66346
В старых версиях ffmpeg был стример, но сейчас его оттуда выпилили. Если не хочешь писать свой, то можешь перекатиться на gstreamer (или live555).

Я не он.
635 1866506
>>66503

>руки не те!!!!!


>драйверов нет так это железо не то!!!!!!


>дистрибутив не тот!!!!!!


классикал пердоля.
636 1866508
>>66495
Вот я и говорю, а компилятор написать так и не смог...
637 1866514
>>66506
Блин , чел, ну включи мозг. Я, например , с виндой ебался гораздо больше. Мне легче в конфиг залезть, чем искать , где какую галочку поставить. Легче работать в консоле , а не в громоздких приложениях.
638 1866520
>>66346

>ffmpeg умеет только принимать поток или передавать тоже умеет (например, на заданный ip и порт)?


По идее и то, и то. Ещё и gstreamer может, он более на это нацелен. Но в моём я не мог так просто всё сделать. Я по протоколу, который мне достался "сверху", получал тупо битовый стрим h264, и нужно было его воспроизвести внутри окна другой программы. Была бы моя воля - использовал бы специально предназначенный для потоковой передачи MPEG-TS, но не судьба. Вручную программно кормил ffmpeg и получал оттуда кадры.

>как ты границы nal юнитов определял


Обычный start code: ищешь 00 00 01 или 00 00 00 01 в потоке - это и означает начало следующего юнита.

А, и вот ещё что: если ты используешь UDP, то у тебя пакеты в теории могут приходить в разном порядке. Возможно из-за этого тоже могут быть у тебя артефакты. Для этого, как тебе выше ответили, тебе нужно писать свою синхронизацию.
639 1866524
>>66508
Ну и нахуй нужен компилятор этот. Главное - получить из плюсового кода экзешник любыми способами. Сразу и поддержка всех платформ, для которых есть компилятор сишки.
640 1866527
>>65910
>>66447
Это не сборщик, это reference counter
actually.png20 Кб, 700x700
641 1866529
>>66527
Вообще-то формально счётчик ссылок - тоже вид сборки мусора. Смотри Objective C, COM и прочее.
642 1866530
>>66514
Вот не ебался с виндой никогда, она просто работает. А скрин тиринги в браузере в линуксе, когда 2 года под ним работал, забороть так и не смог. Спасибо, что нынче я пишу только под винду.
643 1866537
>>66530
Просто у нас с тобой разные дороги в этом мире, брат. Мир, брат. Любовь, брат.
644 1866540
>>66524
Потому что он хотел родить ребёнка, а получил урода корявого. А всё почему? Потому что он не задумывался о сложностях написания компиляторов. Вот тебе и одна из причин плохого дизайна языка.
645 1866542
>>66540
Норм язык, ставлю класс.
646 1866544
>>66542
Я бы даже сказал не норм, а Мазахистически Удовлетворительно.
647 1866545
если уж так нарвится ебаться с чужими программами и копаться в них 1с изучите полезнее будет и работы больше да и высокооплачиваемей она или фотошоп какой-нить или 3дмакс, но впизду эту линь
648 1866546
>>66545
Ты гонишь, чел. Не гони, чел.
16060617045590.jpg26 Кб, 400x400
649 1866547
650 1866549
>>66547
Ты ошибаешься, чел...
651 1866552
>>66545
Не надо ебаться, надо использовать с умом.
652 1866553
>>66485
Когда MacOS откроешь уже для себя, виндоблядь?
653 1866554
>>66553
>>66553
Когда для себя линь откроешь, макоблядь?
654 1866556
>>66554
Мой путь с винды лежал через прыщи к МакОси. Боги миловали и уже 10 лет не приходится возвращаться на поделие мелкомягких.
655 1866558
>>66529
Не смотри COM - ослепнешь.
656 1866559
>>66556
Чем линь тебе не угодил? Поставь хотя бы дулбутом, чтобы коллеги видели твою компетентность, что бы это ни значило.
657 1866560
>>66559
Зачем мне на макбук ставить прыщи, если все, что мне нужно от прыщей есть в макоси?
658 1866562
>>66560
Я же тебе написал зачем. Тебя мак совсем разучил читать? Экранным диктором и голосовым управлением пользуешься?
659 1866563
>>66559
Линь был показателем компетентности в 2010 максимум. Сейчас его знают все, и большая часть понимает, что это кусок говна, а не десктопная операционная система.

На серверах то понятное дело ок.
660 1866564
>>66563
все так
661 1866565
>>66563
Тем не менее люди пользуются им годами как десктопной системой. Потому что хотят получить полностью управляемую систему. Гибкую. Интересную. Не без недостатков, конечно.
662 1866567
>>66565
проиграл с ИНТЕРЕСНОЙ операционной системы. да, латать нерабочее говно, кращущееся КДЕ и прочую хуйню васянскими патчами это охуеть как интересно. Но платят на работе за другое.
663 1866570
>>66567

> Но платят на работе за другое



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

Не забываем еще о том, что на работе есть свои секьюрити полиси, под которые не попадают все доступные линуксовые дистрибутивы, а какая-то ебучая Убунта.
664 1866572
>>66567
Винда тебе такого не предложит тем не менее... Линукс богаче, круче, брутальнее. Алфач одним словом. Я по нему теку как по реке очень быстрой
665 1866576
>>66572
Так мне это нахуй даром не надо. Тратить свое время на придуманные проблемы, которые в других местах уже решены. Я не давным давно не студентик, у которого дохуя свободного времени, чтобы тратить его на хуйню.

Мне платят только за написание кода. Все. И именно этим я буду заниматься с максимальным усердием, чтобы потом получить лычку ебаного принципал инженера, а не тратить свое время бессмысленно.
666 1866578
>>66576
Ты сильный человек, хоть и закомплексованный немножко.
667 1866587
>>66576
Ты слабый человек, хоть и скрываешь это за внешней брутальностью и похуизмом.
668 1866588
>>66587
>>66578
Ох уж эти оценочные суждения.
669 1866589
>>66587
А я думал, что сильный, потому что не бегу от проблем. Жаль, что ты такого мнения обо мне.
670 1866592
>>66588
>>66589
я просто сделал перегрузку
671 1866609
Правильно ли в плюсах определять константы в директивах препроцессора как в Си или это уже считается мешаниной языков?
672 1866611
>>66609
#define используется только для кроссплатформенной или кросскомпиляторной сборки. Всё.
673 1866612
>>66609
Это пиздец. Используй перечисления.
674 1866616
675 1866623
>>66485
Как тебе там в 2000 году, дедуль? Лялекс из коробки уже давно менее пердольный, чем дриснятка. Офк каждому своё, универсальной ОС под все возможные задачи нет и вряд ли будет, но со своим высером ты конечно загнул пиздец.
676 1866624
>>66623
О, врети подъехало.
677 1866664
>>66611
А условной компиляция у вас нет? Для любой отличающейся версии под ту же платформу и компилятор свою ветку делаете?
678 1866699
Мой коллега огорчался, что не может сидеть в божественной Студии так долго, как хочет, потому что проклятая Венда самостоятельно перезагружает его Коплюктер для апдейта. Как хорошо, что на моей ОС это невозможно.
679 1866704
>>66699

> проклятая Венда самостоятельно перезагружает его Коплюктер для апдейта


Привет. Как там в 2017? Ядро 5.0 ещё не запилили?
680 1866765
Указатели на функции используются в функциях высшего порядка? Я могу с помощью них написать условный map, filter, reduce? Как часто они используются в реально жизни? Этот ебаный синтаксис никак не могу запомнить.
681 1866769
>>66765
const double ((pd)[3])(const double , int) = &ра;

Блядь, нахуй так жить?
682 1866774
Сап, есть вопрос по архитектуре. Есть класс (назовем его рендерер) который создает и разрушает текстуры, т.е. не должно быть такой ситуации, что текстура осталась, а рендерер уничтожился. Так вот как это лучше всего реализовать? Пока придумал 2 варианта. Первый - внутри рендерера завести массив shared_ptr с текстурами и при создании возвращать weak_ptr на текстуру. Второй - в конструктор текстуры передавать shared_ptr рендерера, но это как-то хуево помоему т.к. сам рендерер не может знать, что он внутри shared_ptr.
683 1866781
>>66664
Тебе же сказано, что для этого дифайн в плюсах только и используется.
684 1866783
>>66611
>>66781
А как же всякие отладочные конструкции в дебаг версии? Типо #define LOG(...) printf(__VA_ARGS__ ) который в релизной версии превращается в пустую строку, тот же assert тоже является макросом.
685 1866784
>>66774
Пиздос, что за каша у тебя в голове?
686 1866785
>>66783

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


Не в пустую строку, а в empty statement
687 1866789
>>66783
Если ассерты еще туда-сюда, и то спорно. То вот подобные дебаг-онли логи - хуйня без задач, как показывает практика.

Лучше сделать конфигурируемые логлевелы, и при необходимости включать их на проде (мы так несколько багов поймали).
688 1866799
689 1866801
>>66784
Что непонятного? Ладно упрощу пример. Есть класс кучи которая выделяет и освобождает память. Т.е. если была уничтожена куча то и вся выделенная ею память должна стать невалидной, при этом если где-то остались экземпляры памяти выделенной этой кучей, они должны автоматически занулится. Т.е. вот как-то так должно работать https://godbolt.org/z/EYWf1E
690 1866860
>>66801
У тебя что-то не так с архитектурой
691 1866872
>>66860
А что не так? По сути виндоусовская куча так и работает, т.е. при RtlDestroyHeap у тебя освобождается вся память выделенная этой кучей, только при этом остаются висячие указатели. Вот мне бы хотелось как-то с использованием фишек C++ сделать это безопасным без висячих указателей.
692 1866883
>>66872
Долбаёбина, заканчивай с этой шизой.
Используй VirtualFree и не еби нам мозг.
693 1866887
>>66774
Текстуры могут держать в себе shared_ptr >>66774

>сам рендерер не может знать, что он внутри shared_ptr


enable_shared_from_this специально для этого и сделан, правда там аккуратно нужно создавать объект.
Ну а вообще, у тебя часто пересоздание твоего Рендерера? Потому что если он по сути один на всю программу, то это оверкилл.
694 1866890
>>66887
Чёрт, пост поехал. Ну понятно, что я имел ввиду.
695 1866891
тупой пост от студента
Есть ли смысл учить Qt, если хочется работать на плюсах? Или надо иметь низкоуровневые фундаментальные знания, чтобы взяли на работу? Если да, то какие? Где вы работаете на плюсах? Есть вакансия (не претендую), там написано - знание C++ и WinAPI. А суть работы в чём? Что там с WinAPI делают, чего нельзя на более высоком уровне?
696 1866906
>>66887
Спасибо, не знал, что такое есть. Это скорее не для рендерера, а для кучи которая выделяет выделяет ресурсы под текстуры и тд. В dx12 там пиздец с этим и нужно самому управлять таблицей дескрипторов.
697 1866907
>>66781
Text comprehension выше всяких похвал.
698 1866915
>>66891
Ответь себе на вопрос, стоит ли учить де-факто единственный gui-фреймворк?
Если в вакансии указан WinAPI, то там вполне себе может попасться MFC
699 1866925
>>66915
Гуи на С++ это, все таки, больно. На что я крестомакака, но гуй я бы пилил на AvaloniaUI, например.
700 1866941
>>66887

>enable_shared_from_this


Это костыль ебаный, который позволяет делать то, что делать не нужно.
701 1866946
>>66704
Пчел, буквально вчера дриснятка обновилась до новой сборочки. Там был только вариант отложить на день, и этот день прошел.
702 1866949
>>66612
Зочем?

constexpr int m() { return 42; }

class C {
public: static const int a = m();
};
703 1866951
>>66946

>Там был только вариант отложить на день


У меня кнопка "отложить на неделю" работает неограниченное количество раз. Даже стакается.
704 1866952
Привет, крестач
Вопрос к эмбедщикам (вроде как в сипипи треде должны быть такие) - насколько часто юзают Keil uvision в качестве IDE? Правда ли, что в последнее время предпочитают использовать плюсы вместо сишки в разработке прошивок и в целом в эмбедщине? Можно ли самостоятельно учиться этому, не имея физически рядом железки типа STM? (в теории ведь можно обмазаться эмулятором, если есть, плюс даташитом, но как оно на практике?)
705 1866964
>>66925

>Гуи на С++ это, все таки, больно


А кто тебя заставляет? Qt гуи удобнее на qml клепать, кресты там на беке только будут, всякие модельки и безнес логика.
706 1866980
>>66906
Я в графоне максимум лет 6 рендерил картинки на DX9, но как я понял из MSDN по сути ты пишешь аллокаторы для цпу/гпу. Разве такие вещи создаются посередине программы? Другими словами, как может возникнуть ситуация, когда ты внезапно удалишь таблицу дескрипторов пока есть активные текстуры?
707 1866982
>>66980

>лет 6 назад


Быстрофикс
708 1866986
>>66783

> А как же всякие отладочные конструкции в дебаг версии?


Можно изъебаться со сборкой и скармливать компилятору разные файлы в зависимости от версии программы.
709 1866988
>>66946
Кому ты пиздишь. Переключаешь в режим отложенных обновлений и обновляешься когда захочешь.
710 1867056
>>65518
Ну и чё?
711 1867073
>>66891
GUI в проектах с крестами пишется вообще на всём подряд. Qt, WPF, MFC, всякий WEB. Приходится постоянно перекатываться и регенерировать.
Qt хорош для понимания того, как на плюсах можно писать крупные SDK (в плане исходников и общего устройства).

В общем потыкай в него, напиши какой-нибудь paint или текстовый редактор.

В глубины глубин не лезь, потому что он может тебе никогда и не пригодится.
712 1867087
>>66964
в данный момент, спасибо, никто. Но на прошлой работе было, и было больно.
713 1867102
>>66952
Тенденции перехода на плюсы есть. Зачем писать в стиле "C с классами", если можно получить всё это из коробки?
714 1867143
>>66891

>Что там с WinAPI делают


Хуйнёй страдают)

>WinAPI


Беги оттуда, дурачок! Там линукс не знают, а значит, и плюсов не знают…
715 1867146
>>67143

>Там линукс не знают, а значит, и плюсов не знают…


Орнул с этого знателя
716 1867149
>>66925
Не осилятор. Я вот вебсайты на плюсах разрабатываю, от сервера до генерации html или тонкого управления всем устройством на основе ГУИ технологии. Умею открывать порты, поднимать сокеты, увеличивать быстродействие (НЕ СКОРОСТЬ!).
717 1867152
>>66949
Согласен. Так гораздо симпатичнее.
718 1867164
>>67149

>быстродействие (НЕ СКОРОСТЬ!).


Это типа latency и throughput?
TsarBombawolk1.jpg102 Кб, 612x454
719 1867170
>>67164
Ты сообразительный)
720 1867205
>>66915
Ответь себе на вопрос почему он единственный.
721 1867207
Спалите сайт\справочник с навигацией по stl
723 1867229
>>67205
Потому что не нужен, очевидно.
1504058081079.png6 Кб, 724x51
724 1867249
725 1867258
>>67249
Компилируется без ошибок.
726 1867261
>>67258
На всех платформах уже скомпилировал?
727 1867272
>>67261
Конечно, на всей единственной существующей платформе win_x64.
728 1867303
>>66980
Да directx с каждой версией становится все более низкоуровневым. Если раньше для создания текстуры ты просто вызывал CreateTexture2D то теперь тебе нужно создать таблицу GPU и CPU дескрипторов и самому управлять индексами в этих таблицах (назначать индексы ресурсам и освобождать их).
729 1867310
>>67303

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


Вот поэтому он и отсасывает у Вулкана. Как по производительности, так и по удобству кодинга.
В Вулкане, конечно, тоже такое надо делать, но там хоть для людей продуманный сишный интерфейс, а не ебля в сраку с СОМ-объектами у индусов.
730 1867324
Что читаю после Страуса?
731 1867328
Достаточно хорошо знаю пистон. Учу плюсы, чтобы расширить кругозор и вкатиться в Rust. Все правильно делаю?
732 1867331
>>67328

> Учу плюсы


Этого достаточно.
733 1867333
>>67331
Охуеваю от указатель на указатель на указатель функции, но пока очень нравится. Надеюсь, понимание приходит со временем.
734 1867335
>>67333

>указатель на указатель на указатель функции


Имеет примерно 0 юзкейсов на практике.
735 1867337
>>67335
Сейчас читаю про ООП и максимально кайфую. Примерно также я кайфовал, когда учил английский язык. С того, насколько все логично.
736 1867338
>>67328

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


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


Нет. У питона вторым языком для байтоёбства должен быть Си. Вместо пидораста лучше Го взять, если хочешь безопасный кодинг и производительность.
Алсо, про Раст можешь почитать такие ахуительные истории питонистов, даже для не питониста выглядящие дико:
https://compileandrun.com/struggles-with-rust/
737 1867339
>>67338

> У питона вторым языком для байтоёбства должен быть Си.


Ну сишку я базовый курс прошел на юдеми. Сразу за ним начал плюсы учить. Сишка помогла, конечно, разобраться с памятью и байтоебством и помогла также в понимании плюсов. Это как ступеньки, понимаешь?
738 1867340
>>67337
Если кайфуешь - это хорошо. Сам кайфовал в самом начале когда другие ныли какие кресты сложные а я всё на лету схватывал.
739 1867341
>>67339

> Это как ступеньки, понимаешь?


Только ты в обратную сторону идёшь, от сложного к простому. Хуйня какая-то.
740 1867345
>>67333
Я про то что раст нинужно.
741 1867347
>>67341
Ну по поводу раста я погорячился, конечно. Сейчас на работе у нас бек на пистоне, а я хочу съебать с этой злоебучей змеи в что-то более человеческое и продуктивное.

Раст сейчас на хайпе, то это больше из интереса. А для бека выбор небольшой - ГО или Джава.

А Си и плюсы для того, чтобы понимать, как это все работает. Потому что все-таки считаю, что нужно было начинать именно с си и плюсов, а не въебать 5 лет в питон.
742 1867350
>>67347

> Раст сейчас на хайпе


Только в голове у сойбоев разве что. Хайп такой, что работу в рашке невозможно найти.
743 1867351
>>67350
Я с Украины, с ДС, тут есть небольшое кококомьюнити. Довольно ламповое.
744 1867354
>>67351

> Довольно ламповое.


С тем же успехом можешь найти себе парня и лампово пороться в сраку. Кодинг-то тут причём? Или ты из этих, опенсорс-шизов, переписывающих либы с сишки на раст, только потому что нормальный биндинг без ансейфа не сделать.
745 1867355
>>67354
Братиш, я ж тебе написал, что чисто из интереса, потому что на хайпе. Остальное мне похуй. Сишка и плюсы - вечное. То, на чем стоит делать акцент всегда.
746 1867369
А перекат сегодня выйдет?
747 1867370
>>67369
еще 250 постов мимо перекатываю уже 3 треда подряд
748 1867374
>>67370
На главной тред не видно.
749 1867375
750 1867379
>>67375
После Страуса ты уже должен писать код, а не читать.
751 1867387
>>67379
Я уже пишу код. Но что-то мне подсказывает что одной книги недостаточно чтобы меня взяли на работу.
752 1867390
>>67387
Тебя на работе не пересказ книжек спрашивать будут, а попросят показать, что ты написал за последние полгода.
753 1867393
>>67337
Попробуй хаскель. Охуеешь.
754 1867395
>>67393
ФП нахуй нинужно. Уебывай.
755 1867397
>>67387
Почитай про хаскель и его диалекты. Рекомендую.
756 1867399
>>67390
Ну блять, знания то откуда-то надо брать. Страус то явно не все аспекты языка охватывает.
757 1867401
>>67395
Комитет с тобой не согласен, дурачок
758 1867402
>>67397

>ФП нахуй нинужно. Уебывай.

759 1867404
>>67401
Я пишу в смешанно стиле. Мешаю хаскель и ассемблер. Так что уёбывай ты, клоун
760 1867405
>>67397
долбоебина, завязывай с этой шизой
761 1867408
>>67405
Как скажешь. Удачи тебе, брат.
762 1867425
>>67397
Хаскель это только борщик хлебать. Полезно про него почитать только уберзадротам, которые кресты знают как свои пять пальцев.

А про функциональщину в C++ могу лишь сказать, что ranges выглядит круто, но юзать их почти никто не будет, инфа сотан.
763 1867445
>>67397
Читал, невнятный невыразительный язык.
764 1867475
>>67347

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


Иди сразу в embed. Именно там самые низкие зарплаты, а продуктивность просто зашкаливает.
765 1867483
>>67347

>что-то более человеческое и продуктивное.


Го учи, хуле.
766 1867495
Аноны, подскажите, доступ к массиву сильно снижает производительность моего кода (примерно на 250%). Работа с массивом очень простая: в объект поступает индекс, объект что-нибудь записывает в массив по этому индексу; другой объект читает из массива по индексу. Эти объекты находятся с сотней других объектов в цепочке: код идет по порядку по каждому из них и выполняет его функционал.
Если убрать строчки чтения/записи в массив в этих двух объектах - все работает гладко и быстро. Код в других объектах гораздо нагруженнее. Что не так с массивами?
Уверен, что с массивом в единицу времени работает только один поток.
767 1867496
>>67495
Либо кэш проца либо блокировки потока
768 1867532
>>60795

>Просвещайся: https://www.viva64.com/ru/t/0065/


Анончики, где ещё почитать про такие нюансы концептуальные? Всякие термины сложные и т.д. Не знаю даже, как такое гуглить.
769 1867533
>>60760
Сага опускает тред в списке тредов доски, кретин. Это не его личный тред, чтобы его сагать.
770 1867536
>>67425

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


Стл алгоритмы вполне себе фп и были уже в первом стандарте.
771 1867553
>>67495
Ты сборку-то в релиз перевёл, ёба? В студии, например, в дебаге по умолчанию включен operator debugging и bounds checker, которые довольно сильно тормозят код
sage 772 1867556
>>67533
Сажа не подымает, долбоящер.
sage 773 1867558
>>67495
cachegrind
774 1867559
>>67556
Из этого следует, что долбоёщер ты, потому что произвёл бесполезное действие. В чём тогда, по-твоему, смысл отвечать кому-либо с сагой, не неся никакого месседжа?
775 1867563
776 1867600
>>67425

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


Ровно наоборот. Его нужно изучать, пока у тебя мозг не закостенел, чтобы потом не выдавать фразу по типу:

>Хаскель это только борщик хлебать.



>А про функциональщину в C++ могу лишь сказать, что ranges выглядит круто


Всё, на этом функциональщина в плюсах для тебя закончилась?
777 1867611
>>67533
Сейчас бы переживать о треде, утонувшем 250 постов назад
778 1867741
Хороший тред, бамплимит за 6 дней.
779 1867752
>>67741
Из-за линупсо-вендового срача
780 1867757
>>67752
Так что лучше то?
781 1867758
>>67752
Но линь же чистых сях написан, какое отношение он имеет к этому треду? Пусть пиздуют в си тред.
782 1867760
>>67758

> Но линь же чистых сях написан


на грязных, с использованием десятков нестандартных расширений компилятора.
783 1867773
>>67758
Под линем всё чаще подразумевают дистрибутив, про ядро уже начали говорить "ядро линукса". А дистрибутивы состоят из софта, написанного на десятках языков.
784 1867794
>>67758
А какое отношение этот тред имеет к этому треду? Пиздуй в свой тред.
785 1867795
>>67758

> чистых сях


Ты заглядывал в исходники хоть? Там такой говнокод, что пиздец. То форматирование в одном файле в разных стилях, то макросы повсюду и хуй поймешь что за магия там, то какая-то хуйня с нулевой читаемостью как после обфускации.
786 1867811
>>67795
Типичные чистые си, чего ты
787 1867813
>>67811
Большинство из следующих используемых в ядре конструкций отсутствуют в языке Си

Вывод типов - typeof(x)
Ассемблерные вставки - asm volatile("pxor %xmm5,%xmm5");
Диапазоны в свитче - case 1 ... 7:
Массивы нулевой длины - some_variable_len data[0];
Адрес вызывающего - ptr = __builtin_return_address(0)
Определение константности выражения - if __builtin_constant_p(c)
Различные атрибуты функций - __attribute__((always_inline))
Подставляемые функции - inline void fun()
Имя текущей функции - my_func_name = __func__
Инструкции-выражения - ({ int a = b + 1; a; })
Переменное число параметров в макросах - __VA_ARGS__
Арифметика с указателями на void - ++void_ptr
Неконстантные инициализаторы - int arr[2] = { x, y }
788 1867816
>>67813
Я и говорю, типичные
789 1867817
>>67816
Нет, ты говорил чистые.
790 1867818
>>67817
Это был сарказм
sage 791 1867842
>>67813
С инлайном не прав ты.
792 1867864
>>67842
Я прав, потому что написал "Большинство из следующих", потому что мне реально лень проверять список на то что таки соизволили занести в стандарт, а еще так выглядит внушительнее.
793 1867868
>>67842
Но ведь там действительно повсюду дефайны, под которыми инлайны и прочая магия. Иногда и по два дефайна перед функцией и гадай что это такое...
794 1867869
>>67868
Представляю, что с тобой случится, когда где-нибудь X-macros увидишь
795 1867870
Много вакансий сейчас в ДС для нейронок и машобчика на крестах?
796 1867873
>>67870
Только в филиале моей фирмы 2. Ну при условии что ты не еблан.
1401285361145.jpg134 Кб, 667x1000
797 1867874
Допустим, у меня в проге есть ивенты. Я хочу их передавать туда-сюда, хранить их, чтобы можно было в нужном порядке их исполнять и т.п. Я представляю себе это в виде команд. Типа "send src_id dest_id 'data'". Ивенты могут приходить от пользователя или генерироваться внутри программы. Кроме самой команды и аргументов у неё ещё есть приоритет. Как это хранить? Думаю сделать структуру, где будет std:map<const char, const char> с аргументами и int для приоритета. Эти структуры будут запихиваться в std::priority_queue и доставиться оттуда для исполнения. Аргументы будут перегоняться из строк в енумы, инты и айди и т.п. уже во время исполнения команды. Всё правильно делаю?
Алсо, есть ощущение, что std::priority_queue не самое быстродейственное решение, но пока это не принципиально.
798 1867879
>>67869
Я и говорю, сплошной говнокодинг костылей.
799 1867893
>>67874
Может посмотреть как это велосипедили до тебя?
https://github.com/fffaraz/awesome-cpp#asynchronous-event-loop
800 1867899
>>67869
Он-то прост и понятен, к тому же альтернатив нет либо они ещё хуже. Но бывпет и хуже.
801 1867924
Есть класс Vector, у которого перегружен метод operator+. Метод возвращает новый объект этого класса.

Почему не вызывается деструктор в таком коде для vec1 и vec2 при создании vec3? Или он и не должен вызываться при возврате нового объекта?

Vector vec1 {10, 20};
Vector vec2 {20, 30};
Vector vec3 = vec1 + vec2;
std::cout << "test" << std::endl;

аутпут:
test
Destructor is called for (30, 50)
Destructor is called for (20, 30)
Destructor is called for (10, 20)
802 1867932
>>67924
А почему он должен вызываться при создании vec3? vec1 и vec2 живы все это время
803 1867936
>>67932
Согласен, перечитал свой вопрос и ответ пришел. Запутался немного.
804 1867943
>>67874
Cat echo man bash <-- сперва освой это, а потом приходи! Пшёл!
805 1867945
Ладно стой останься у меня есть секрет для тебя только пообещай никому не рассказывать
806 1867954
>>67924
У тебя разве что может вызываться дополнительный деструктор для временного объекта (результата сложения) в некоторых случаях.
807 1867998
Помоги исправить код, чтобы работало. Это пример кода из лабы. Наверное, очень древний, раз мой компилятор его не переваривает.
808 1867999
809 1868000
>>67998
Тебе в С-тред. Но даже там пошлют нахуй.
810 1868002
>>68000
С хуя ли меня там пошлют нахуй?
811 1868005
>>68002
Помойку скинул потому что. Никому это не интересно.
812 1868008
>>68005

>Никому


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

813 1868010
>>68002
Это залупа времён Win98. За такое только обоссать могут. Никому такое не интересно в 2020, все на десятке сидят.
814 1868035
>>67869
Дед, шаблоны давно изобрели.
815 1868038
>>68008
Подтверждаю. Никому.
816 1868067
>>68035
xmacro решают проблемы, которые никак больше нельзя решить. В С++26 только если завезут рефлексию + компайл-тайм иньекцию кода. А до этого, только xmacro. Сам в проде накостылил охуенных xmacro, и новый параметр наших говноконфигов теперь одной строкой добавляется с автовыводом типа.

>>68010
Судя по коду - это обычный IPC через пайпы, который используется и в 10ке, лол. Другое дело, что нахуя руками, но это ладно
817 1868074
Как теперь на C/C++ организовывать обмен данными между процесссами через безымянные каналы, если не как во времена Win98?
818 1868076
>>68074
Через loopback
819 1868079
>>68076
Это WinAPI? Можешь продемонстрировать на простом примере?
820 1868081
>>68079
Это сеть, юзай любую либу
821 1868082
>>68081
Нахуй мне сеть, если речь о двух разных процессах внутри одной операционной системы на одной ЭВМ?
822 1868086
>>68074
я бы смотрел в сторону а-ля чего-нить такого https://github.com/cwzx/nngpp

Мы правда в не в 98, чтобы весь это какичь руками писать
823 1868102
>>68074
Через любой механизм IPC. Хз че там в мастдае, в лялексе есть дохуя - message queue, pipe, named pipe, shared memory (там мьютекс нужен офк), unix socket, уверен, что часть из них реализована и в winapi
824 1868140
>>68082
Ты принципиально не хочешь юзать сеть, даже если это просто, решает твою проблему и кроссплатформенно? Или у тебя есть нормальные причины?
825 1868212
Пятый день ебусь с этим бустом. Аноны, подскажите, как мне собрать из сырцов boost 1.69 с iostreams, чтобы не получить ошибки компоновки zlib / undefined reference boost::iostreams::zlib::...? Собираю как есть - boost build не видит системный zlib, и потом компоновка взрывается. Собираю с указанием внешнего zlib - boost build видит, а потом cannot find -lz. Собираю и устанавливаю внешний zlib в префикс, симлинки от либы zlib пробрасываю куда-нибудь в /usr/local - опять undefined reference к boost::iostreams::zlib::.... Пиздец просто.
826 1868216
>>68212
Поставь пакетным менеджером zlib (нужен zlib-dev, не перепутай). Потом ldconfig. Потом проверь что lz работает. После этого собирай буст.
827 1868221
Аноны, подскажите. У меня есть класс матриц, который я написал. Я хочу использовать его в другом классе KF. Подключив его как Matrix.h и Matrix.cрр, я почему-то не могу в классе КF инициализировать матрицу Matrix Test(3,3), так как компилятор пишет expected identifier before numeric constant. Eсли же я пишу Matrix Test; Test(3,3); , то пишет то же самое. Как исправить?
828 1868243
>>68221
Замени скобки на фигурные.
829 1868276
>>67874

> map с аргументами


Тебе в педон или луа.
830 1868282
>>68276
Это да, но как делать это ин э си плас плас вей? Как в одном поле хранить список из енумов, интов, строк и моих классов?
То, что выше анон кинул, я посмотрел, но там какая-то магия. Я, вроде, примерно понял что-то, но скорее всего нихуя не понял. В любом случае, мне бы какой-то более простой, может, менее общий, способ, но менее васянский чем у меня.
831 1868284
>>68212
>>68216
Что-то орнул с красноглазых
vcpkg install boost, невежды
832 1868298
>>68282

>То, что выше анон кинул, я посмотрел, но там какая-то магия


Тогда велосипедь с ноля. Делай приорити кью указателей на базовый класс эвента с приоритетом, храни производные от него эвенты с нужными под каждый случай данными. Для быстроты возможно стоит хранить не айди объектов а просто указатели на них, они и так должны быть уникальны.
833 1868321
>>68298

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


У меня получается, что нужно слишком много классов под это создавать, т.к. есть, например, ивент определённого типа, он может в качестве параметра иметь один из 20 подтипов и в зависимости от подтипа варьируется набор оставшихся параметров. Получается, нужно создать 20 классов. Звучит как-то немного жижно, особенно учитывая, что есть случаи, где предполагается вариация не в 20, в 200 случаях. И у них ещё могут варьирываться оставшиеся параметры. Или лучше тут ничего не наговнокодить, если прям сильно не закапываться с этим?
Как я понял, чтобы по-нормальному это сделать, нужно отдельно упорядоченно хранить типы аргументов, а сами аргументы можно в тупо в бинарном виде записать в один кусок памяти. А при необходимости обратиться к ним, их нужно десериализовывать и приводить к нужному типу. Но я чувствую, что чтобы сделать это нормально у меня уйдёт джва года, при том что я не очень разбираюсь в темплейтах и всём таком.

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


Это хорошая идея. Но вообще, айди я просто для примера написал, у оно в другом куске программы для других целей используется. Но если там всё состыкуется, то почему бы и не заменить.
834 1868352
>>68321

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


Можно так, особенно если структуры данных эвентов не будут меняется после старта программы.
При большом объеме структур имеет смысл их описывать на дсл, и в бинарном виде создавать уже в рантайме, виде дерева объектов умеющих распаковать данные из твоего куска памяти. Хотя возможно в твоём случае это оверкилл (я прост имею отношение к авиационным протоколам, там может быть нужно управлять/де/сериализовывать по 10к+ параметров, делать это руками в коде - натуральное безумие).
Если структура данных каждого эвента индивидуальна, придется ее слать вместе с ним, или можно вообще все вместе в виде JSON как в вебе, но тут уже производительность сядет.
835 1868359
>>68352
Ладно, спасибо за советы, попробую поковыряться с этим.
836 1868478
>>68352
Этот изобрел xdr, все в сокет!
837 1868490
>>68478
Ты дебил?
838 1868540
>>68140

>просто, решает твою проблему и кроссплатформенно


Не должно быть причиной использовать что-либо всерьёз. Если что-то потребляет больше ресурсов компьютера, но проще в реализации, то это что-то не имеет права на существование.
839 1868546
>>68540
Тем не менее, веб продолжает развиваться деградировать
840 1868568
>>60500 (OP)
Привет. Вот я хочу, например, написать прогу на с/с++, которая считает crc для файлика. Каким образом я могу через cmd или баш-скрипт или пистон хендлить результат подсчётов этой функции? Мейн ведь возвращает лишь код, который сигнализирует об ошибке.
841 1868570
>>68540

>то это что-то не имеет права на существование.


Охуительные истории.
842 1868572
>>68568
stdout
file output
image.png33 Кб, 801x570
843 1868574
Почему не работает? Почему она выходит из if вообще? 1 раз всего проходит и всё какое бы небыло значение. Это программа для нахождение наибольшего делителя.
image.png17 Кб, 429x455
844 1868578
>>68574
а бля я ж if написал вместо while ))) вот исправил всё, но оно доходит только до 100 и потом обрывается, как будто не хочет заного идти в while. Это почему? Типо оборвал goto и цикл сломался?
845 1868580
>>68578
Во-первых, что тебе не позволяет кинуть код текстом через паст ебин или какой-нибудь онлайн-компилятор?
846 1868582
>>68284
Сидеть на одной платформе всегда зашквар, понимаешь?
image.png16 Кб, 441x447
847 1868583
>>68580
Ничего, но я уже всё сам сделал да... надо было просто не прибавлять арифметическую прогрессию по 1 к ddd и вывести не его а delitel))))
1606660825348.jpg705 Кб, 1440x2560
848 1868584
>>68582
Да, сидеть только на линуксе - зашквар.
849 1868585
>>68578
Во-вторых, дай нормальные название всем переменных. В-третьих, дай комментарии хотя бы к циклам. По-твоему другим людям больше делать нечего кроме того как вникать в твой гениальный алгоритм?
В-четвёртых, бля лол, почему у тебя переменные объявлены между вводом и приглашением к вводу, и в несколько строчек? Можно в одну.
В-пятых, зачем goto? Это условие задачи?
850 1868590
>>68585
Прости анончик в следущий раз всё буду коментить? Не это не условие. А что все так goto хейтят? Классная же штука. Вот в моём примере нужен был бы дополнительный цикл и continue, что по сути и есть goto.
851 1868593
>>68590
Я не знаю, почему другие его хейтят, но лично просто не понимаю суть его использования, когда есть нормальные циклы. goto это аналог джампа в ассемблере, но в ассемблере понятно, зачем нужны джампы - там, блядь, ничего другого нет. Зачем в высокоуровневом ЯП нужны джампы я хз.
852 1868595
>>68593
Ну так я и сказал, что без применения goto нужен был бы огромный во весь код цикл с началом в метке, и continue в месте goto. Это же просто усложнение. Его не стоит использовать много, потому что из за табуляции легче циклы читать, но так вполне полезен.
853 1868605
>>68590
Потому что goto позволяет тебе запутать программу до охуения, а так же отстрелить себе всё что можно. Даже в твоей микролабе goto сильно ухудшает читаемость. Вообще, считается, что если у тебя возникла необходимость воспользоваться goto, значит у тебя тотальный косяк в архитектуре программы. Короче, я запрещаю тебе использовать goto в современном С++.

goto приносит столько проблем, что даже в древние времена в С было два и только два случая, когда можно было использовать этот оператор и не быть обоссаным: джамп к одной точке выхода из функции, если в ней требуется освобождать ресурсы перед выходом, и выпрыгивание из сильно вложенных циклов, вместо написания пяти break'ов. И то, последний юзкейс довольно сомнителен.
854 1868625
>>68243
Компилятор пишет non static data member initializers only available with -std=c++11. Ничего страшного?
855 1868642
>>68584
Вот ты и попался. Если нужен универсальный пакетник, то это snap. А штатный пакетник всяк лучше, чем установленный с его помощью vcpkg или кто там ещё.
sage 856 1868659
Лабы идут нахуй.
857 1868660
>>68659
шиз спок
858 1868661
>>68642

> Вот ты и попался. Если нужен универсальный пакетник, то это snap. А штатный пакетник всяк лучше, чем установленный с его помощью vcpkg или кто там ещё.


Я пытался понять, что ты тут написал, но не получилось.

Что это за snap? В поиске только какая-то херня
image.png3 Мб, 1238x1200
859 1868664
>>68661

>snap

image.png184 Кб, 350x256
860 1868670
image.png35 Кб, 1187x652
861 1868673
862 1868685
>>68659
Ага, все идут нахуй, давайте оставим в треде только срач по поводу visual studio и пакетников
863 1868689
>>68661

> Что это за snap?


Это извращенная параша из мира красноглазых пердолей, где вместе с пакетом идут все его зависимости. Как если бы в Винде к каждому приложению прикладывали свой дистрибутив directx, либ vc++ и системных библиотек. У пердоликса настолько ущербная система зависимостей, что приходится жрать говно не с лопаты, а прям с земли.
864 1868695
>>68689
Well explained.
865 1868723
>>68689
Ждём менеджер пакетов на основе докера, чтобы тащить не только зависимости, но и нужный дистрибутив линукса.
866 1868732
>>68605
Пусть он бьет меня, но я люблю его!
x:
Ты только прочитай
goto x
867 1868734
enum class Month {
jan = 1, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec
};

Month operator++(Month& m) {
m = (m == Month::dec) ? Month::jan : Month(int(m) + 1);
return m;
}

const vector<string> month_tbl{ "", "Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь" };

class Date {
public:
class Invalid {};
Date(int y, Month m, int d);
void add_day(int n);
Month month() { return m; }
int day() { return d; }
int year() { return y; }
private:
int y;
Month m;
int d;
bool is_valid();
};

ostream& operator<< (ostream& os, Month& m)
{
return os << month_tbl[int(m)];
}

ostream& operator<< (ostream& os, Date& d)
{
return os << '(' << d.year()
<< ',' << d.month()
<< ',' << d.day() << ')';
}

Date::Date(int yy, Month mm, int dd)
: y{ yy }, m{ mm }, d{ dd }
{
if (!is_valid()) throw Invalid{};
}

bool Date::is_valid() {
//if (m < 1 || 12 < m) return false;
if (d < 1 || 31 < d) return false;
return true;
}

Какого хуя выдаёт ошибку в функции d.month()? ОшибкаC2679 бинарный "<<": не найден оператор, принимающий правый операнд типа "Month" (или приемлемое преобразование отсутствует). Если просто написать
Month biba = Month::jul;
cout << biba;
То всё выводится.
867 1868734
enum class Month {
jan = 1, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec
};

Month operator++(Month& m) {
m = (m == Month::dec) ? Month::jan : Month(int(m) + 1);
return m;
}

const vector<string> month_tbl{ "", "Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь" };

class Date {
public:
class Invalid {};
Date(int y, Month m, int d);
void add_day(int n);
Month month() { return m; }
int day() { return d; }
int year() { return y; }
private:
int y;
Month m;
int d;
bool is_valid();
};

ostream& operator<< (ostream& os, Month& m)
{
return os << month_tbl[int(m)];
}

ostream& operator<< (ostream& os, Date& d)
{
return os << '(' << d.year()
<< ',' << d.month()
<< ',' << d.day() << ')';
}

Date::Date(int yy, Month mm, int dd)
: y{ yy }, m{ mm }, d{ dd }
{
if (!is_valid()) throw Invalid{};
}

bool Date::is_valid() {
//if (m < 1 || 12 < m) return false;
if (d < 1 || 31 < d) return false;
return true;
}

Какого хуя выдаёт ошибку в функции d.month()? ОшибкаC2679 бинарный "<<": не найден оператор, принимающий правый операнд типа "Month" (или приемлемое преобразование отсутствует). Если просто написать
Month biba = Month::jul;
cout << biba;
То всё выводится.
868 1868744
>>68734
У тебя метод << принимает неконстантную ссылку, а ты туда передаешь временный объект. Короче напиши ostream& operator<< (ostream& os, const Month& m) и тогда заработает наверное.
869 1868747
>>68744
спасибо огромное
870 1868766
>>68625

>only available with -std=c++11. Ничего страшного?


У меня такое было наверное только когда заставляли в 12й студии писать.
Потому что винда хр внезапно у всех до сих пор.
871 1868786
>>68689

> Как если бы в Винде к каждому приложению прикладывали свой дистрибутив directx, либ vc++ и системных библиотек.


Но ведь всё так и происходит... Даже М$ теперь всё своё складирует в одну кучу. И это в целом нормально.
Но vcpkg и snap, имхо, ортогональные штуковины.
872 1868789
>>68284
Спасибо анон, что несешь этим долбоебам свет здравого смысла.
873 1868804
Аноны, кто с WinApi работает, скажите на чём предпочтительнее писать с ним на Си или на плюсах? Вроде слышал, что WinApi под си чистый адаптирован.
874 1868806
>>68789
Но ведь его спросили как собрать буст из исходников, а он высрал как его поставить пакетами?
875 1868808
>>68804
С нужен только там, где нет компилятора С++. В 100% остальных случаях - С++.

>>68806
Зачем пердолиться. когда можно воспользоваться уже готовым?
876 1868817
>>68808

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


Можно потрениться пердолиться чтобы в случае чего быть готовым и разгрести говно
877 1868818
>>68806
А что vcpkg по-твоему делает? Выкачивает саму библиотеку и все её зависимости, а потом их собирает прямо у тебя на компьютере. При желании можно даже флаги компилятора подкрутить
878 1868821
>>68817
ну вот только если потрениться, не более
879 1868834
>>68808
спасибо, понял
880 1868835
>>68808
>>68818
Потому что не нужен весь буст, а только некоторые либы. Это как ставить студию по умолчанию с кучей ненужного говна.
chel.PNG30 Кб, 505x186
881 1868855
>>68835
Пчел...
vcpkg install boost[iostreams]
sage 882 1868862
>>68835
Вскодер, ты?
883 1868907
>>68855
vcpkg install boost-iostreams

Слоуфикс этому джентельмену
884 1868910
>>68766
Я пишу в Dev с++. Не знаю, какой там стандарт. Советуешь перейти на другой?
885 1868919
>>68910
Советую поставить вижуал студию 2019 и делать все по человечески
886 1868924
Заготовил хорошие картинки на перекат.

Мимо-перекатывал-3-последних-треда
887 1868982
>>68808
Насколько сложнее сделать c++ компилятор? Где его вообще нет, хотя бы старой версии, такие вещи разве существуют?
888 1868990
>>68982
есть всякие некроконтроллеры адовые, под которых С++ нет вообще. И всякие RTOS специализированные.
889 1868999
>>68982
Сильно сложнее, чем С компилятор.
890 1869001
>>68982
Намного сложнее, чем компиляторы всех остальных мейнстримных языков вместе взятых.
891 1869020
>>68074
в Qt есть кросплатформенная абстракция IPC с интерфейсом сокета, есть в примерах fortuneclient fortuneserver
892 1869210
Насколько зашкварно активно юзать std::optional для условного возврата переменной/объекта из функции?
893 1869225
>>69210
Очень хорошо
894 1869235
>>69225
А если возвращается хуйня типо unique_ptr которую можно проверить на nullptr, тоже лучше в optional оборачивать?
895 1869237
>>69235
Имхо это уже масло масляное, при условии, что нуллпоинтер это ошибка.
896 1869355
>>69235
Либо unique_ptr, либо std::optional. Предпочтительнее второе, если логика программы позволяет.
897 1869358
Почему C++? Может лучше +C+? или --C--? или C----?
898 1869359
>>68590

>А что все так goto хейтят?


Хейтят, потому что боятся, потому что не осилили. Во многих проектах на c/c++ goto используется. Правда его нужно научиться правильно использовать.
899 1869360
>>69358
Потому что C++ - это постинкремент C, а других операций нет.
900 1869361
>>69360
C---- тоже будет ++ вообще-то.
901 1869364
>>69361
Такое не скомпилится.
902 1869365
>>69364
В c21 хотят добавить
903 1869367
>>69365
Бля, когда уже туда классы и темплейты добавят.
904 1869370
>>69367
щас штаны подтянут
905 1869383
>>69359

> Во многих проектах на c/c++ goto используется.


Потому-что обоссаных профнепригодных даунов в НИИ набрали, вот и во многих проектах goto используется.
906 1869393
>>69359
Смотри, краткий курс по осиливанию goto: не используй goto.
907 1869394
Поясните, пожалуйста, за перспективы С/С++ в научно-технических приложениях. Сам я - НИИшник-металлофизик, на работе пользуюсь Пайтоном, вольфрамовской Математикой и различными МКЭ-системами, но вот решил вкатиться в что-то более низкоуровневое. Больше тяготею к С, так как он проще, а у меня и так есть чем ебать мозги помимо программирования, но не хотелось бы заскочить в поезд, который уже никуда не идет (поэтому Фортран и не рассматриваю). В общем, какие я пока что вижу варианты варианты:
1) С
2) С++
3) не ебать мозги совсем, ознакомиться с Cython и дальше изучать Матлаб.

>>69383
Кек.
908 1869415
>>69394
Вариант 3 лучший. С++ реально сейчас нужен либо в около-легаси в гигантских конторах, либо в каком-нибудь супер хайлоад дистрибудет перформанс залупе, в которую без релевантного опыта не пробиться.

Не смотря на то, что я пишу на крестах больше 7 лет - вкатываться в них я бы не советовал В свободное время пишу на сишарпе и мне он нравится ощутимо больше, хотя я его практически не знаю
909 1869422
>>69394
Если ты хочешь написать какую то быструю числодробилку, то да, выучи с++ и ассемблер, потом пиши распараллеленные алгоритмы на видяху.
910 1869444
>>69415

> С++ реально сейчас нужен


Вот, например, на рисерчгейт сонм ответов о С/С++
https://www.researchgate.net/post/How_can_I_choose_the_right_programming_language_for_a_computational_physics_project
https://www.researchgate.net/post/What-is-the-most-useful-programming-language-for-a-materials-scientist-and-a-physicst

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


Есть какие-то мысли о перспективных научно-технических языках, во что стоит вкатываться? Или все же вариант 3: продолжать дрочить Пайтон со всех сторон, параллельно посматривая на коммерческие инженерные и научные системы?
911 1869492
>>69358
Это ж постинкремент. Т.е. типа улучшили, но возвращается предыдущее значение - С. Поэтому многие до сих пор пишут на си с классами.
912 1869494
>>69492
Главное, что UB на месте.
913 1869566
>>69394
Ну тут всё просто. Если ты научный деятель, то для тебя инструменты высокого уровня: Python, Matlab.Ты реализуешь концепт своей идеи и отдаёшь его инженерам.
Если ты инженер-работяга и не любишь/не можешь в матан, то для тебя c/c++ с погружением в железо. Фортран в некоторых задачах удобнее, но оно того не стоит.
Математики на с/с++ обычно пишут лютый говнокод.

Для примера МКЭ системы пишутся на C++. Там по традиции массовый параллелизм и gpu (расчёты и визуализация). Почти все языки для gpu это диалекты или расширения C/C++ (cuda, opencl, hlsl, glsl и прочие).
914 1869576
>>69444
вся математика написана за тебя в питоне на С, руками ты очень врятли ее писать будешь когда-либо. Я бы все таки думал, собстно, о питоне.
915 1869582
>>69566

>Если ты инженер-работяга и не любишь/не можешь в матан, то для тебя c/c++ с погружением в железо.


>Математики на с/с++ обычно пишут лютый говнокод.


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

>>69576

>Я бы все таки думал, собстно, о питоне.


Ладно, наверное так и поступлю. Лучше выучу четвертый иностранный и наконец-то сяду за алгебраическую топологию, все-таки у меня это и лучше выходит, и удовольствия в процессе получается больше. А там может когда-то.
916 1869585
>>69393
>>69383
Избегать goto там, где он улучшит читаемость кода, -- такой же фанатизм, как и избегать ООП/функциональщину/проччую идеологию.
917 1869586
>>69394
Судя по твоему набору, рекомендую haskell. Это локомотив программирования.
918 1869594
>>69586

>haskell


Посмотрел на либгене книги по нему за последние 5 лет - вообще ничего прикладного.
Вот забавная книга
http://gen.lib.rus.ec/book/index.php?md5=424DE7A837A83F1804B56D07B9E0DC80
Какие-то экосистемы, монад (Лейбница?), чё несет.
919 1869605
>>69594
Прикладное -- это слишком общее понятие. Чего ты ожидал? Книг про то, как на хаскеле программируют самолёты? Или о чём речь?

https://wiki.haskell.org/Books
920 1869609
>>69605
Численные методы, например. По твоей ссылке я увидел только 2 книги по анализу данных, каждая менее чем на 200 стр.
921 1869619
>>69609
Ну и хуй с ним. Кому нужны эти книги? Берёшь и пишешь свои численные методы, если не нашёл подходящей библиотеки. Да и численные методы не привязаны не то, что к какому-то конкретному языку, а вообще к программированию. Чтобы уметь в численные методы, нужна математика, а не программирование.
922 1869623
>>69619
Это все верно, но зачем мне ебаться с этим, если есть обобщенный опыт одного человека, который с этим достаточно наебался и написал соответствующую книгу? Я лучше потрачу свое время на что-то другое, а по численным методам просто возьму эту книгу, почитаю, поделаю упражнения по ней и сверюсь в ответами, приобретя упорядоченный опыт.

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


Ну, если я не знаю как в данном языке вводится дифференциальный или интегральный оператор, например, то даже знание математики мне не сильно поможет.
923 1869639
>>69623
Руками вводится
924 1869648
>>69623
На самом деле многие алгоритмы очень интересно реализовывать в функциональном стиле. Даже более, многие численные алгоритмы очень хорошо ложатся в функциональную парадигму. Аж глаз радуется! Если ты хорошо шаришь в mathematica, то, возможно, и сам это заметил, хотя mathematica немного в другую сторону заточена, но она гораздо ближе к хаскелю, чем плюсы.

Решать в любом случае тебе, брат. Знаю, брат, ты не ошибёшься.
925 1869656
>>69623

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


Даже если ты захочешь решать системы линейных уравнений, то тебе придётся начать с реализации матриц и векторов, а также всех операций над ними, ибо в c/c++ ничего этого нету из коробки (в фортране есть).
926 1869674
>>69585

>Избегать goto там, где он улучшит читаемость кода


Нигде, так что все верно.
927 1869678
>>69656

>тебе придётся начать с реализации матриц и векторов, а также всех операций над ними, ибо в c/c++ ничего этого нету из коробки


Это и не нужно из коробки.
Но и реализовывать не придется все уже давно есть
https://github.com/fffaraz/awesome-cpp#math
928 1869682
>>69674
Очередной сектант с промытыми мозгами.
929 1869684
>>69682
Приведи 3 примера на С++ (именно С++, не С), где GOTO лучше, чем остальные средства языка
930 1869687
>>69682
Ну продемонстрируй где goto по твоему мнению улучшает читаемость, хоть поржем.
931 1869690
>>69648

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


Пытался помнится как-то поучить хаскелл, а там в книжке realWorldHaskell была задача на алгоритм Грэхема, так я сидел, пыхтел, пытался, но в голову приходила не функциональщина, в результате я такого говна наляпал там, страшно вспоминать да я уже и не помню нихуя. Возможно не стоило это им в начальные главы пихать, а уж лучше после всех функторов и монад, наверное. к тому же хачкиль вроде не совсем оптимизрованный/быстрый выходит по сравнению с питоном наверняка лучше, но с многими другими языками не думаю
932 1869698
>>69684
А в С++ таких случаев и нет (но в С есть).
Даже double break решается лучше без goto, чем с.
933 1869701
>>69678
Ну там далеко не везде блочное умножение матриц, неэффективно реализовано умножение разреженных матриц, алгоритмы однопоточные. А всё это должно работать на абстрактной машине с массовым параллелизмом и распределённой файловой системой (фс lustre, а сама машина это пару сотен gpu или cpu или вообще несколько разных). Машина такая одна, а расчётных задач много (одна задача может считаться по несколько дней и если будут баги то всем будет атата).
В общем c++ нужен прежде всего для решения тяжких инженерных задач.
934 1869703
>>69698

>А в С++ таких случаев и нет


Си тред два блоке в низ
935 1869711
Аноны, а вот какой тип мне указать перед функцией, если в результате у меня возможно 2 типа. Пример, функция перемножения матриц. После перемножения матриц 1х2 и 2х1 я получаю матрицу 1х1. Я бы хотел использовать такую матрицу, как число. Легальна ли такая операция? Если да, то какой мне задать тип?
936 1869715
>>69698

>Даже double break решается лучше без goto, чем с


Для этого, как я понимаю, нужно завести булев флаг и проверять его на истинность в обоих циклах. Ну и чем это лучше компактного и эффективного GOTO сразу на метку после цикла?
937 1869717
>>69715
Тем, что ты дед старый, а double break решается лямбдами давно
938 1869734
>>69711
Матрица на матрицу = матрица и ниипёт. Если размер матрицы задаёшь шаблонными параметрами, то можешь для случая 1х1 добавить оператор приведения к числу
939 1869736
>>69703
А я плюсовик, а не сишник.
940 1869737
Даров чуваки. Подскажите, существует ли альтернатива GetFileAttributesA для девайсов \\.\PhysicalDisk в винапи? В архиваторе такая проверка стоит для последующего открытия файла, а мне ленту открыть надо.
941 1869751
>>69734
Cпасибо
942 1869768
>>69734

>Матрица на матрицу = матрица и ниипёт.


Какая матрица получится после умножения матриц 2x3 и 4x5?
943 1869786
>>69768
Matrix<NaN>
944 1869791
>>69768

>умножения матриц 2x3 и 4x5


Нет такой функции
945 1869792
>>69791
Может у тебя еще и на ноль делить нельзя?
946 1869795
>>69792
Такая функция есть, но нельзя
947 1869799
>>69768
Ошибка компиляции
948 1869865
>>69701

>Ну там далеко не везде блочное умножение матриц, неэффективно реализовано умножение разреженных матриц, алгоритмы однопоточные


Разве всякие бласы и лапаки не поддерживают автоматическую параллелизацию?
949 1869871
>>69711
Вариантный тип (матрица, число, пусто).
И в монадку обернуть желательно.
950 1869876
>>69795
Вообще можно, но не удивляйся, если черти из носа полезут.
951 1869880
>>69871
В императивных языках все уже обернуто в монаду. Сам блок main = контекст.
952 1869899
>>69876

>если черти из носа полезут.


Как у вас всё страшно с UB
953 1869900
>>69880
А если супергерои все... То никто не супергерой.
954 1870022
Му-дрые боги вы-думали но-но-ноги
Глу-пые боги вы-думали костыли ёбаные сукааааааа
955 1870025
>>69880

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


Да ладно? Вот тебе выражение х % 5; Сайд эффектов нет, описания алгоритма расчета остатка от деления нет, ты просто сообщил что ты хочешь рассчитать, а не как. Все признаки декларативного программирования.
956 1870026
>>70025
... operator%(...) { system("rm -rf"); }
957 1870062
>>70025
a + b
Если результат не влезет в знаковый тип, у тебя включится UB.

мимо
958 1870091
>>69865
Я не сильно в теме, но там вроде целый зоопарк из либ, которые по-своему уникальны (под масштабируемые системы, под gpu, под разные cpu).
959 1870093
>>69799
Почему? Размер результата определяется в рантайме.
960 1870205
>>69865
Параллелизм он тоже разный. Бытовой параллелизм это когда у тебя один процессор с несколькими ядрами. Научный это когда у тебя SMP система из десятка одинаковых процессоров, разделяющих общую память.
961 1870207
>>70093
То есть результат в другое умножение матриц уже не воткнешь? Там же шаблоны
962 1870239
тест
963 1870305
>>70207
Ну если что-то типа такого, то работать будет:
template<int M, int N, class T = float>
struct matrix {
template<int L>
matrix<M, L> operator⚹(const matrix<N, L, T>& mx) {
return matrix<M, L>{};
};
};

void main() {
matrix<2, 3> mx1;
matrix<3, 4> mx2;
auto result = mx1 ⚹ mx2;
}
964 1870362
>>70305
Да и тогда ты можешь добавить шаблонную специализацию приведения типа для матрицы 1x1 и работать с матрицами как с числами.
strcut matrix {
operator float(); // без реализации
};
template<> matrix<1, 1>::operator float() {
return 0.0;
}
а потом писать типа такого:
matrix<1, 1> mx;
float val = 10.0 ⚹ mx;
965 1870369
>>70305
И где же тут

> Размер результата определяется в рантайме


?
966 1870377
>>70369
Ну я написал пример как могло бы быть. А как оно в оригинале никто и не видел. Данный пример сгодится, если ожидается малое количество разных матриц. В общем случае лучше рантайм.
967 1870399
Хочу в гейдев, сейчас только-только дочитываю Страуструпа. Посоветуйте литры.
969 1870409
>>70399
the gaydev thread is two blocks down
970 1870412
>>70403

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


>>70409
Тот тред пахнет хуем + я успешный C++ дев в будущем и не хочу копаться в говне вида унити и уе4.
971 1870426
>>70412
Учитывая, что бОльшая часть всего гейдева - это УЕ4 и юнити, то удачки тебе
972 1870429
>>70412
Пиши свой движок, станешь миллионером.
973 1870430
>>70426
Напомни-ка мне хоть одну 3А игру сделанную на них.
>>70429

>станешь миллионером


Это вряд ли.
974 1870431
>>70429
Долларовым миллиардером как Тим Суини. Или Unigine холопом за 100 рублей.
976 1870435
>>70430

>Напомни-ка мне хоть одну 3А игру сделанную на них.


Последние джедайчики, например
977 1870436
>>70433
Вырвиглазный список, 0 мотивации искать что-нибудь знакомое.
>>70435
Не играл, не знал.
978 1870442
>>70436
Всем похуй что там у тебя с мотивацией.
979 1870452
>>70442
А мне похуй на тебя. И что сделаешь теперь?
980 1870455
>>70429

> Пиши свой движок


Это же золотое правило гейдева - тот кто пишет движки никогда не делает игр. Проверено на тысячах писателей двтжков своей мечты. Игр от них мы так и не увидели. Как впрочем и законченного движка.
А тем временем игры на Юнити обходят по продажам ААА и работают на любом тостере, имея хороший графон.
video.mp41,3 Мб, mp4,
1280x544, 0:09
981 1870462
>>70455

>А тем временем игры на Юнити обходят по продажам ААА и работают на любом тостере, имея хороший графон.

982 1870477
>>70462
Что конкретно тебе показалось смешным?
То что Геншин за месяц заработал больше денег чем большинство ААА этого года или то что в нём графон лучше чем в клоне Геншина от Юбисофта с движком от Ассасина?
983 1870479
>>70477

> 1 игра


> Которой непонятно как перелопатили внутри движок

984 1870482
>>70477

>Геншин


>2021 через месяц

985 1870490
>>70479
Чел, там же с первого взгляда видно родной рендер юнити. А присутствие оптимизаций никакого отношения к движку не имеет, говноделы где угодно слайдшоу сделают. Это пример того что написание своего движка - удел долбаёбов или профессионалов. Что ты успешно игнорируешь, сидя в манямирке, как и тысячи таких же вкатывальщиков в геймдев после учебника по крестам.
986 1870495
>>70462
Ну держи игрульку на юнити

https://www.youtube.com/watch?v=2reK8k8nwBc
video.mp41,3 Мб, mp4,
1280x544, 0:09
987 1870498
>>70495

>Платформер


>2021 через месяц

988 1870500
>>70498
ясно, шизоид. Вперед, пиши убийцу CryEngine
video.mp41,3 Мб, mp4,
1280x544, 0:09
989 1870501
>>70500

>CryEngine


>Единственная ААА игра - Варфейс

990 1870562
>>70490

>Чел, там же с первого взгляда видно родной рендер юнити.


Чего?? Там все кастомное, от травы до деревьев до камней.
991 1870563
>>70452
Пчел, ты сказал что не знаешь ААА игр на УЕ4, тебе привели список и ты слился сказав что у тебя нет мотивации читать потому что он большой. Ты понимаешь как ты выглядишь?
992 1870564
>>70455
Так я и не предлагал ему игры делать. Я предлагал именно движок.
993 1870595
У меня есть пачка полиморфных объектов, которые я держу в одном векторе, потом в цикле для каждого из них вызываю один и тот же виртуальный метод.
Можно ли как-то закэшировать указатели на методы, чтобы, пока вектор не изменился, не проходить снова и снова по виртуальной таблице?
994 1870596
Можно ли как-то объединить эти две функции в одну?
https://pastebin.com/raw/tNArBSWZ
995 1870597
>>70596
В find_all_value_if где emplace_back должно быть ⚹it
Это пропустил
996 1870599
>>70595

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


ИМЕННО ТАК, как описал это ты - вроде бы нет.

>закэшировать


Если нужна скорость и отсутствие вирт. вызовов и не важен порядок вызова вирт. метода для объектов в цикле, то делаешь vector для каждого derived class-а (вроде был какой-то видос на youtube или переведённый пост на хабре, что-то связанное с графикой в проекте использующем chromium - там описывалось что-то в этом духе), проходишь в цикле по каждому vector-у и вызываешь derived метод.
997 1870824
>>70599
Спасибо, идея простая и понятная и без видоса. К сожалению, мне важен порядок.
998 1870828
>>70595
А что мешает? В c++ нельзя получить прямой указатель на метод класса?
999 1870829
>>70828
А, хотя это бессмысленно - ведь внутри метода ты наверняка хочешь дергать поля объекта, а this у тебя нет.
1000 1870845
>>70828
Можно на статические. На обычные можно сделать бинд с указанием объекта. Или обернуть вызов в лямбду. Но мне кажется это все будет медленнее чем обычный вызов виртуальной функции.
1001 1870858
Перекат.
1002 1870879
>>70858
Перекат ♣ ↓↓↓↓↓ O_O↓↓↓↓↓↓ . . . . . .
___________________________________ . . . . .
I https://2ch.hk/b/res/234499302.html I ♦ (М)<<<<000
I https://2ch.hk/b/res/234499302.html I (М)<<<<<<0000 ♣
I__________________________________I <<<0000
♦ . . . . ♦ <<<<000
Перекат
1003 1870880
1004 1870884
>>70595
В теории можно делать то, что делают JIT-компиляторы и самому девиртуализировать вызовы (из прыжков по памяти перейти к сравнению указателей): https://godbolt.org/z/Ks558v . Вроде как, когда классов 1-2, может в теории дать выигрыш.
Но точно ли такое тебе нужно? Виртуальные вызовы реально мешают, только когда у тебя они в критическом цикле, но тогда спрашивается на какой фиг у тебя в критическом цикле виртуальные функции и мешанина из вызовов? Может просто сделаешь энум и свитч? И то, если у тебя там какой-нибудь порядок в векторе есть, то branch target predictor верно предскажет, какой у тебя класс, и ты просто не заметишь задержек от беганья по указателям в виртуальной таблице.
1005 1870908
>>70595

> закэшировать


Ты хотел сказать не использовать полиморфизм.
1006 1870914
>>70884

>Может просто сделаешь энум и свитч?


Лучше тогда енум и вектор функций.
1007 1870916
>>70914
Ну тут ты либо Branch Predictor (энум и безусловный вызов на известный указатель), либо Branch Target Predictor (загрузка динамического адреса функции и переход на него) будешь насиловать. Обычно первый всё же помощнее.
1008 1870930
Можно ли наебать систему и удалить из std очереди последний элемент (как в стеке).
Да, я ебанутый.
1009 1870939
>>70930
Последний — это какой? В любом случае, std::deque для тебя.
1010 1870941
Есть софтина, где много очередей.

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

pop/push, соответственно, синхронизируемые.
Софтина большая, где-то lock-free очередь используется, где-то mutex внутри, и т.д.

Что если обработчик не будет последовательно в цикле делать pop из очереди до тех пор пока она не пуста, а вместо этого будет создавать у себя локально новую пустую очередь и делать swap с той, которую надо обработать.
Таким образом contention будет всегда только в момент swap (который просто pointer-swap) независимо от количества элементов в очереди.
Есть профит?
1011 1870942
>>70930
std::deque
1012 1870945
>>70941
На so вообще нашёл это:
'It looks like std::queue when swapped does the equivalent of while()/pop().'
Тогда прям анлаки как-то.
1013 1870951
>>70939
который не через .front()
>>70942
Это я знаю, просто у меня уже есть обычные очереди. Хотел сэкономить на создании нового контейнера.
1014 1870958
>>70951

>который не через .front()


Ну .back() ещё есть, только саму ноду так не удалить, .pop_back()-то нет.
1015 1870961
>>70945

>Тогда прям анлаки как-то.


Можешь заменять указатели на очереди, а не сами очереди. Зато, если условия подходящие, можно вообще без мьютексов обходиться, на чистых compare_exchange_strong.
1016 1870968
>>70941
Это выгоднее, если очередь в среднем содержит больше одного елемента.
Есть гарантия синхронизации между push & swap?
1017 1870976
>>70968

>Это выгоднее, если очередь в среднем содержит больше одного елемента.


Вот я тоже об этом подумал.
Но при этом если очередь будет всегда содержать только один элемент, то по идее никакого ухудшения не произойдет (как и профитов), просто будет то же самое, что и с while() { pop }
1018 1870979
>>70961

>Можешь заменять указатели на очереди, а не сами очереди.


А, лол. Точно.
Тред утонул или удален.
Это копия, сохраненная 19 апреля 2021 года.

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

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