Программирование

Ответить в тред Ответить в тред
C++ тред #118 /cpp/ Аноним 12/08/20 Срд 21:56:29 17755271
1459909731205.png 2Кб, 250x250
250x250
Аноним 12/08/20 Срд 21:58:54 17755312
Нахуя нужны адаптеры? Они работают поверх других контейнеров. Так для чего использовать их, если можно контейнеры, на которых они основаны?
Аноним 12/08/20 Срд 22:04:35 17755353
38225a.jpg 67Кб, 500x651
500x651
По традиции
Аноним 12/08/20 Срд 22:45:13 17755494
Зачем так быстро перекатываете? Есть отрезки A и B, определяются своими Aleft, Awidth, и Bleft, Bwidth. Самый быстрый способ определить, пересекаются ли они?
Аноним 12/08/20 Срд 22:50:44 17755525
>>1775549
Хуйня вопрос. Давай дальше
Аноним 12/08/20 Срд 22:58:58 17755606
>>1775552
Как м помощью STL определить, что какой-то прямоугольник из множества пересекается с другим?
Аноним 12/08/20 Срд 23:03:37 17755627
Не слушайте тех, кто говорит, что перекатывать после 500 рано. Шлите их лесом.
Аноним 12/08/20 Срд 23:23:36 17755728
>>1775560
Aleft + Awidth > Bleft and bleft +bwidth > aleft
Аноним 12/08/20 Срд 23:47:04 17755849
>>1775531
Потому-что тебе нужен именно стэк, а не вектор для корректности алгоритма, например
Аноним 12/08/20 Срд 23:50:39 177558510
>>1775584
push_back вместо push, pop_back вместо pop. И еще че то. Пока не вижу сильных отличий
Аноним 13/08/20 Чтв 00:14:33 177559911
чек.
Аноним 13/08/20 Чтв 00:36:14 177560612
>>1775562
Да это один какой-то шизик форсил, уже устал видимо
Аноним 13/08/20 Чтв 01:37:45 177563213
Здравствуйте любители ++, пишет вам любител. Объясните одну вещь, разбирался тут с openGL крестах ваших. Там половина создания объектов это создать непонятно нахуя int neponyantna и затем передать его адрес куда то там в функцию &neponyantna. Зачем? Вот в шарпе все просто, пишешь какой объект тебе надо и все. Зачем тут все время int получают? Для чего? Как это вообще работает? Я понимаю, когда я создаю экземпляр класса говно сходив в туалет, потом к нему и обращаюсь. Так зачем вы, крестачи, все время int создаете некий и кидаете на него ссылку?
Аноним 13/08/20 Чтв 01:45:31 177563514
>>1775632
это API такое. Увы и ах, очень старое и сишное. И оно единственное. Все фэнси библиотеки красивые и шарпы - в глубине дергают все тоже говно с int neponyatna
Аноним 13/08/20 Чтв 01:48:50 177563615
>>1775635
Есть новое. Вулкан.
Аноним 13/08/20 Чтв 01:48:54 177563716
>>1775635
О, аноний, спасибо. А можешь в двух словах пояснить, что там под капотом? Зачем int создавать? Я просто реально не врубаюсь, давай я просто туда 0 буду толкать это же int. Но нет, им нужен именно адрес, но int это 4 байта, а если мой объект, типа говно больше будет? Почему именно int?
Аноним 13/08/20 Чтв 01:51:00 177563917
>>1775637
Это апи - стандартизированный интерфейс для драйвера.

Эти инты - на самом деле идентификаторы ресурсов, и внутри где-то драйвера. Почему используются инты? А хуй его знает, считай что это opaque pointer
Аноним 13/08/20 Чтв 01:52:10 177564018
>>1775636
>Есть новое. Вулкан.
А по нему есть уроки русские и толковые? Я просто по openGL ща читаю, реально начал понимать чо и зачем шейдеры, как видяха работает с этим всем, как текстуры натягиваются, я люблю в игрульки поиграть, но узнать как там внутри все фурычит очень занятно. Самому из пары треугольников создать прямоугольник и натянуть текстуру, да все в шейдерах, блин, интересно. А с вулканом есть почитать чего такого?
Аноним 13/08/20 Чтв 01:54:18 177564119
>>1775640
не в коем случае не мучай вулкан. Для хоббиста в нем нет вообще никакого прока, но хуева гора лоу левел геморрая.
Аноним 13/08/20 Чтв 02:04:28 177564220
>>1775639
Погоди, да как это работает то?

unsigned int vertex;
vertex = glCreateShader(GL_VERTEX_SHADER);
glShaderSource(vertex, 1, &vShaderCode, NULL);

Ну вот, например, я создаю целый объект, целый вертикальный шейдер, а по сути это int ебаный, который я потом передаю в метода. Да как так? Я в метод 0 или 635 передаю? нахуя? Зачем? Шейдер это вообще целая подпрограмма, почему она в intе тусует? Как это работает вообще?
Сложна сложна нипанятна
Аноним 13/08/20 Чтв 02:08:10 177564321
>>1775642
int это внутренний идентификатор обьекта, который создает OpenGL. Так заведено
Аноним 13/08/20 Чтв 02:08:46 177564422
>>1775632
А в шарпе можно написать симфонию? Создать пустой проект и написать шедевр?
Аноним 13/08/20 Чтв 02:12:21 177564523
>>1775643
То есть по сути int'ом я задаю порядковый номер внутренний или что?
Аноним 13/08/20 Чтв 02:12:43 177564624
>>1775644
Можно, куча библиотек, соси
Аноним 13/08/20 Чтв 02:14:09 177564725
>>1775643
int в данном случае, при передаче просто указывает на определенную ячейку памяти и говорит, что вот отсюда и еще четыре байта это vertex. Чего ты мне рассказываешь, какие идентефикаторы? Либо объясни, если я не так тебя понял
Аноним 13/08/20 Чтв 02:15:09 177564826
>>1775645
Не ты задаешь. Ты просто создаешь инт, и OpenGL записывает при создании чего-либо туда некое значение. Которое для тебя НЕ ИМЕЕТ ВООБЩЕ НИКАКОЕ ЗНАЧЕНИЕ. Это внутренняя информация для драйвера.

Ты просто знаешь, что вот такой вот инт - это такая то текстура, всё. Ты никогда не используешь значение, кроме как для вызывания API
Аноним 13/08/20 Чтв 02:24:46 177565227
>>1775648
о, вот ща доходить стало, только не доконца чуть чуть. А как мне понять, что ему нужен int а не bool например? Вот в щарпе все просто, а тут как?
Аноним 13/08/20 Чтв 02:25:34 177565328
>>1775652
&>>1775652
они просто требуют *ебалмамашутвою, а я им из примера &ебипожалуйста
Аноним 13/08/20 Чтв 02:26:17 177565429
>>1775652
В API написано что инт, значит инт.
Аноним 13/08/20 Чтв 02:30:23 177565730
>>1775654
Там нихуя не так написано, там вообще написано, типо *glхуйнямоча
и как я должен из этого понять что ему ссылку на память вообще надо? Это все кресты такие тяжелые или просто опенголый такой замудреный? Я не говорю, что сложный, я вроде все понимаю зачем делается пока. Но вот в некоторых моментах мудрено, при этом я не хейтю кресты, просто интересно
Аноним 13/08/20 Чтв 02:31:52 177565831
>>1775657
Это не кресты, это си. Так на крестах, как требует OpenGL не пишет вообще никто, кроме ебучих стариков из НИИ.

Указатели нужны для записи по адресу, т.е. закидываешь указатель на уже существующую переменную, и в эту переменную записывается нужная опенгл инфа
Аноним 13/08/20 Чтв 02:32:07 177565932
>>1775657
Ну вот, звездочка это указатель. Указатель это адрес в памяти.
Аноним 13/08/20 Чтв 02:40:11 177566133
>>1775658
Почему просто переменную нельзя закинуть?
Аноним 13/08/20 Чтв 02:42:02 177566234
>>1775661
в API передастся копия переменной, значение запишется в копию, исходная переменная не изменится.
Аноним 13/08/20 Чтв 02:42:36 177566335
>>1775659
И почему этот адрес в памяти unsigned int, а не bool, например? ведь по сути тут хранится только начальный адрес, а длина переменной зависит от типа. Но мы же оба знаем, то текстуру ты в 4 байта не уложишь 800*600 так зачем ее хранят типо в int, а не в bool, если, как ты говоришь, динамически память расширяем а тут только начальный адрес хранится?
Аноним 13/08/20 Чтв 02:43:39 177566436
>>1775662
Почему не передавать по ссылке тогда? Ах бля...я тут ступил?
Аноним 13/08/20 Чтв 02:44:07 177566537
>>1775663
еще раз - четыре байта это лишь идентификатор текстуры, вся память и прочая шушера лоулевельная делается за тебя драйвером

>>1775664
Ссылок в С нету классическом
Аноним 13/08/20 Чтв 02:45:34 177566638
Нет, тот анон, ты не прав. опенгл надо инфу записать, я ему по ссылке передаю целую текстуру, а он в нее инт пишет и все, как это работает? Зачем? В чем смысл? Текстура же не может лежать в 4 байтах
Аноним 13/08/20 Чтв 02:47:12 177566839
>>1775665
>еще раз - четыре байта это лишь идентификатор текстуры
Как это работает? Идентификатор текстуры? Я создам инт пустой, в нем будет мусор, как это может быть идентификатором? А если потом у меня в другом инте тоже будет, все, крах и вылет программы?
Аноним 13/08/20 Чтв 02:50:09 177567040
15444617345220.png 649Кб, 574x768
574x768
>>1775665
>Ссылок в С нету классическом
То есть это только по этому? А чтобы понять, как это все робит надо лезть в С что ли? Бля, я решил уйти от шарпа, чтобы понять, как работает, перекатился в кресты, а вы мне в С говорите катиться, а там чо, в ассемблер пошлют?
Аноним 13/08/20 Чтв 02:51:03 177567141
>>1775668
Блядь, обьясняю для совсем тугих.

Есть инт, в нем какой-то мусор, мы отдаем указатель на инт в какой-нибудь glGenTextures или как оно там называется, в этом инте окажется число. Может быть это будет число 1, может быть это будет число 1488, не важно.

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

Опенгл это абстракция, понимаешь. Абстракция. Тебе нахуй не нужны все эти внутренные пердольные вещи, тебе нужно рисовать. Вот и рисуй, при помощи АПИ.

Если ты рандомную хуйню попытаешься отправить в API, которое требует созданный обьект (т.е. невалидное число-идентификатор) - тебя просто нахуй пошлют, вот и всё.

На эту тему есть немного приколов из системного программирования, что эта сама схема (некие opaque идентификаторы) - говно. Но це уже оффтоп.





Аноним 13/08/20 Чтв 02:52:57 177567242
>>1775670
Пчелик, ты можешь дергать сишное АПИ из С++, этого тебе достаточно. Просто проблема в том, что когда тебе дают сишное АПИ - то увы, никакие фичи из С++ оно не принимает, типа ссылок.

Тебе вообще никто и ничего не мешает обернуть всю эту сишную дрисню в няшное ООП, или как минимум просто в читаемый С++ с RAII. Вполне вероятно, так и стоит сделать.

Мы, например, на проекте, всю сишную блюву типа CreateFile и тд обернули в красивый С++, и им и пользуемся.
Аноним 13/08/20 Чтв 02:57:13 177567443
>>1775663
>И почему этот адрес в памяти unsigned int, а не bool, например?
Unsigned потому что адресов отрицательных не бывает, поэтому знаковый тип излишен. Почему 4 байта — ну наверное меньше может не хватить для хранения номера адреса.

> Но мы же оба знаем, то текстуру ты в 4 байта не уложишь 800*600 так зачем ее хранят типо в int
Не, в 4 байтах всего лишь адрес памяти, в которой текстура.
Аноним 13/08/20 Чтв 03:01:32 177567544
>>1775671
так и чо тогда выебываться, почему просто текстуру не отправлять как объекте, тем более я там уже в дату все загрузил?
Аноним 13/08/20 Чтв 03:04:16 177567745
>>1775675
Что значит отправить? Скопировать что ли? Мы тут в игрушки играем что ли?
По ссылке передать нельзя, выше написали, что это си, в котором ссылок ещё не было. Поэтому получается передача адреса.
Аноним 13/08/20 Чтв 03:04:36 177567846
>>1775675
что такое "просто текстура"? Текстура с точки зрения это не кусок памяти, это некая структура данных, в которой хранятся размеры, формат, всякие там флажки, мипмапы и прочее. Эта вся информация тебе не нужна, у тебя есть абстракция в виде API.



Аноним 13/08/20 Чтв 03:05:27 177567947
>>1775674
это почему вдруг? я в ту функцию кроме инта, который сам же и создал больше ничего не говорю, там дальше 4 байт мусор хранится, а ты говоришь текстура.Сначала пространство выделяется, которое я запрошу при создании переменной, а потом уже туда чего то записывается. Ну вот создал, записал инт, а ты тут текстуру в дохуя мегобайт суешь, больной? Нахуй пошел, да?
Аноним 13/08/20 Чтв 03:08:05 177568048
>>1775677
Ты не ругайся анон, я же понимать только только начинаю. Давай с кодом, чтобы я точно понял.
int texture;
это 4 байта в них мусор

дальше как я пишу туда такстуру?
Аноним 13/08/20 Чтв 03:10:58 177568149
>>1775680
Господи, у тебя 2 разные операции.

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

glBindTexture(GL_TEXTURE_2D, АЙДШНИК ТВОЕЙ ТЕКСТУРЫ); - делаешь свою текстуру... "текущей", "активной", whatever

и дальше при помощи glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, data); - бла бла бла - ты в АКТИВНУЮ текстуру записываешь уже свою память.

Это все делается через вот это абстрактное АПИ, а что и как драйвер дрочит память - тебе уже не интересно.



Аноним 13/08/20 Чтв 03:13:18 177568250
>>1775679
После unsigned int adr = glCreateShader(...) у тебя в adr оказывается просто число. Номер ячейки, с которой начинается текстура. Остальное тебя ебать не должно, как говорится. Сама текстура на много байт вообще где-то в другом месте.
Аноним 13/08/20 Чтв 03:13:24 177568351
>>1775681
я программировать сам хотел, а вместо этого просто в апи взвожу флаги и пишу инфу, пиздос
Аноним 13/08/20 Чтв 03:14:30 177568452
>>1775683
Программирование графики еще "ниже" - это кернел драйверы для проприетарного железа. Даже вулкан, который пиздец лоулевелный - это все равно в итоге возведение флажков и пердолькинг АПИ
Аноним 13/08/20 Чтв 03:15:34 177568553
>>1775682
>у тебя в adr оказывается просто число. Номер ячейки, с которой начинается текстура.
В каком виде? Просто 1553? И что это за число? Как в другом месте, если я только что здесь создал? Или в опенгл в каком то массиве записывается, что в яцейке 1553 лежит адрес с которого начинается текстура такая то, так?
Аноним 13/08/20 Чтв 03:16:40 177568654
>>1775685
Еще раз, это бессмысленное число, которое имеет значение только для драйвера. Для тебя это число ничего не означает абсолютно.
Аноним 13/08/20 Чтв 03:21:00 177568755
>>1775686
>ничего не означает абсолютно.
Как программировать тогда? Почему в ссаном шарпе я все всегда толком и четко понимал чего куда и кого, а тут какое то число, а хз чо это и как, странно.
Аноним 13/08/20 Чтв 03:21:42 177568856
>>1775685
Опенгл где-то в памяти создал текстуру и отдал тебе номер ячейки памяти, с которого эта текстура начинается. Вот на картинке внизу справа есть ptrSum, указатель на объект sum. Просто адрес записан 90000000. А вверху слева по этому адресу уже сам объект sum.
Аноним 13/08/20 Чтв 03:22:41 177568957
MemoryAddressCo[...].png 35Кб, 661x503
661x503
Аноним 13/08/20 Чтв 03:24:19 177569058
>>1775687
Так и программировать, как деды завещали. Используя то апи, которое тебе дали, и играя по его правилам.

Я искренне не понимаю, в чем твоя проблема. Ну идентификатор обьетка и идентификатор обьекта.
Аноним 13/08/20 Чтв 03:25:51 177569159
>>1775688
погоди погоди. То есть я создал int передал его адрес туда, он создал текстуру, записал ее в память, начальный адрес записал в мой инт и теперь я могу к нему обращаться. Я все верно понял? Оо
Аноним 13/08/20 Чтв 03:26:51 177569260
>>1775691
Он не отдает тебе никакой адрес. Если ты сгенерируешь текстуру, то ее айди будет 0 или 1 (точно не помню, давно опенгл не трогал). О каком адресе речь блядь.
Аноним 13/08/20 Чтв 03:27:46 177569361
>>1775691
Да. Ну вон челик говорит, что это на самом деле внутренний идентификатор драйвера, так что я могу ошибаться. Но если createshader возвращает указатель, как ты ранее говорил, то всё так.
Аноним 13/08/20 Чтв 03:28:36 177569462
>>1775692
всмысле первую текстуру за запуск приложения
Аноним 13/08/20 Чтв 03:28:51 177569563
>>1775690
Например, почему нельзя было тогда, еще даже до 90-х сказать, челы идите на хуй со своим говном старым, ща все по новому будет и все. Я понимаю ща хуй перейдешь, но тогда то, только умножать научились и делить, а уже кричать нам нужна обратная совместимость
Аноним 13/08/20 Чтв 03:30:05 177569664
>>1775695
Потому, что все новые версии опенгл являются расширением старых. Т.е. они никогда не убирали или изменяли новое API, Только добавляли новое. Ну и когда у тебя си вместо языка программирования - в выразительности API не разгуляться в любом случае
Аноним 13/08/20 Чтв 03:30:23 177569765
>>1775692
>Если ты сгенерируешь текстуру, то ее айди будет 0 или 1 (точно не помню, давно опенгл не трогал). О каком адресе речь блядь.
Чего, блядь? Я чо, больше двух текстур не могу генерировать, дегенерат что ли?
Аноним 13/08/20 Чтв 03:31:09 177569866
Аноним 13/08/20 Чтв 03:33:25 177570067
В итоге у меня в этих интах нихуя не будет хранится, кроме адресов, которые только апи и скармливать, да?
Аноним 13/08/20 Чтв 03:33:54 177570168
>>1775700
кроме идентификаторов, которые в апи скармливать.

Адреса это совсем другое, не мешай терминологию.
Аноним 13/08/20 Чтв 03:35:32 177570269
>>1775700
Ну да. Короче, по ходу там и правда не указатели возвращаются, а значит, и не голые адреса, но принцип схожий.
Аноним 13/08/20 Чтв 03:40:29 177570370
Аноним 13/08/20 Чтв 03:43:28 177570571
>>1775703
указатель, который хранит в себе АДРЕС это тип данных в С\С++. Идентификатор ресурса опенгл - это какая то хуйня, в С\С++ являющееся интом.
Аноним 13/08/20 Чтв 03:43:50 177570672
Бля, а нахуй эти кресты тогда, как лампово в шарпе было, вот тебе ванечка класс текстуры пишешь texture t = new texture();
а дальше сиди задавай хоть до опиздения ее параметры, а сама она там в цикле крутится и в зависимости от твоих изменений модифицируется.
Все удобно, все понятно, тут нахуя каждый раз в память лазать? Говно же сделали? Пусть переделывают
Аноним 13/08/20 Чтв 03:44:49 177570773
>>1775706
Это texture tx = new texture уже написали за тебя другие, в обертках. Можешь так же взять уже готовые обертки, хуй знает, например SFML, и играться. А можешь вообще сразу Юнити взять, и не ебаться с лоулевелом.
Аноним 13/08/20 Чтв 03:44:52 177570874
>>1775706
Там всё то же говно, просто завёрнуто красиво.
Аноним 13/08/20 Чтв 03:48:35 177570975
>>1775707
>>1775708
Если все тоже, то почему в шарпе все просто, а тут через жопу?
Аноним 13/08/20 Чтв 03:51:54 177571076
>>1775709
Ну зато шарп медленнее.
Аноним 13/08/20 Чтв 03:52:42 177571177
>>1775709
Ебаный в рот, тебе уже несколько раз обьяснили. Потому-что в Шарпе за тебя уже дохуя всего написали, целый дотнет. Вся эта же блевотина сишная заботливым дядей была пережевана и красиво выплюнута.
Аноним 13/08/20 Чтв 03:58:26 177571378
>>1775711
То есть я сижу и на плюсах пытаюсь написать говно, которое до меня уж 20 раз лучше написали, так как есть фреймворки под шарп? А я тут чо, насрано чо ли, раз пишу все по своему только на крестах?
Аноним 13/08/20 Чтв 03:59:17 177571479
>>1775713
> То есть я сижу и на плюсах пытаюсь написать говно, которое до меня уж 20 раз лучше написали, так как есть фреймворки под шарп?
Ты понял суть программирования, искренне тебя поздравляю.
Аноним 13/08/20 Чтв 04:01:59 177571580
Аноним 13/08/20 Чтв 05:52:41 177572381
Помогите перевести на нормальный язык программирования, а то меня в школе беполезные псевдокоды для даунов почему-то не заставляли учить. Или онлайн переводчик посоветуйте, а то препод, пидор, методички на этой ебале зачем-то пишет. Лучше бы этот дебил просто словами на Русском описывал алгоритмы.
http://www.cpp.sh/8b2qu
Аноним 13/08/20 Чтв 10:46:32 177580782
>>1775527 (OP)
Сап, плюсач. Ньюфаг в треде. Знакомый препод подсказал учебник Полякова. Вроде норм, потом продолжу Липпмана из шапки. Так вот, мне нужно каким-то образом использовать в visual studio библиотеку graphics.h. Как это сделать? Пробовал скачать graphics.h и запихнуть в папку, где лежит stdio.h. Не заработало. Потом запихнул этот файл в папку с проектом. Теперь #include "graphics.h" не подчёркивается красным, но функции оттуда подчёркиваются. Я так понял, что надо ещё какие-то файлы, кроме заголовочного для работы библиотеки? Можно ли сделать graphics.h встроенной библиотекой, чтобы каждый раз не вставлять в папку с проектом?
Аноним 13/08/20 Чтв 10:56:26 177581883
>>1775807
А зачем тебе эта либа?
Аноним 13/08/20 Чтв 11:09:47 177582784
>>1775636
Вулкан намного сишнее гл. На фоне вулкана гл по сложности кажется чуть ли не питоном по сравнению с плюсами.
Аноним 13/08/20 Чтв 12:05:59 177585885
Анон, поясни за итераторы. Я хочу передавать в функцию итератор на внешний контейнер, функция по итераторам его изменяет, в том числе его размер, причем заранее не известно на сколько. Это вообще нормальный подход? Такое ведь используется во всяких std::transform, но он точно заранее знает, какой длины будет out.

А есть ли какой-то красивый и нормальный способ передачи в функцию не двух итераторов begin и end, а шаблонного контейнера с шаблонным значением?
Аноним 13/08/20 Чтв 12:07:04 177586086
image.png 59Кб, 612x555
612x555
Аноним 13/08/20 Чтв 12:13:34 177587087
image.png 145Кб, 317x222
317x222
Почему в C++ настолько скудная стандартная библиотека? Почему класса строки нет такого важного метода как Split? В том же шарпе есть штук 10 этих Split'ов. Хочешь поделить строку одним символом? Пожалуйста. Хочешь поделить строку массивом других строк? Пожалуйста.
В C++ нужно руками блять писать отдельный метод который потом еще и не вызвать как член класса. Что мешало авторам стандарта добавить этот метод который бы возвращал вектор разделенных строк? Недостаточно универсально? Хорошо, сделайте метод который будет принимать пользовательскую лямбду которая сама решит куда сохранять разделенные слова.
Аноним 13/08/20 Чтв 12:19:42 177588288
Аноним 13/08/20 Чтв 13:17:12 177593389
>>1775860
Это по си учебник? Тогда в си тред иди. Вообще, я не эксперт, но сомневаюсь что эта либа используется где то в норм проектах. Есть ли смысл ее учить? Я бы пропустил.
Аноним 13/08/20 Чтв 13:22:46 177593890
>>1775870
1) Что такое строка? Из чего она состоит? Ты можешь написать этот разделитель так, чтобы она работала со всеми говнами от KOI-8 до UTF-32? Ни в одном языке ещё не сделали нормально, везде свои костыли.
2) Что этот метод должен возвращать? Копировать подстроки в новые строки? Или возвращать указатели на начало подстроки и её длинну?
3) Как и где выделять память под возвращаемые объекты?
4) Как заставить это работать достаточно быстро, чтобы все не начали писать свои строки? Никак
5) А всякую хуйню вроде определения эмодзи в неё включать надо?
6) итд

Короче, плюсы слишком низкоуровенный язык чтобы это нормально решить.
Аноним 13/08/20 Чтв 13:30:20 177594891
>>1775870
В шарпе строки даже изменить нормально нельзя, лол блять
Аноним 13/08/20 Чтв 13:43:24 177598092
>>1775938
1) А сейчас по твоему класс строк работает со всеми говнами типо UTF-8?
2) Как я и говорил если хочется прям супер универсальный метод то можно добавить аргумент, который будет принимать пользовательскую функцию которая будет обрабатывать разделенную строку. Типо string_view word(...); user_callback(word);.
3) При описанном выше подходе выделение памяти не происходит
4) Сам метод split никак не затронит остальные методы так что никто из-за него не начнет писать свои строки
5) Нет не надо, это более высокий уровень
Аноним 13/08/20 Чтв 14:06:13 177599593
>>1775980
>1) А сейчас по твоему класс строк работает со всеми говнами типо UTF-8?
Там этих стрингов просто 2 штуки, лол.
>2)... Типо string_view
Начиная с 11-х плюсов строки не рефкаунтятся, как ты гарантируешь что твой string_view не на мусор ссылается в следующей же строчке? А учитывая современные тенденции — ещё лучше, в соседнем потоке/корутине, которая хуй знает где работает.
>3) При описанном выше подходе выделение памяти не происходит
Происходит, ты массив-то как возвращаешь? Как в шарпе? Сам как нибудь там без аллокаций справится?
>4) Сам метод split никак не затронит остальные методы так что никто из-за него не начнет писать свои строки
Конечно не начнут, у всех и так свои строки везде, лол. А если немного задуматься о перформансе — то внезапно тебе на каждый кейс нужна кастомная логика с сортировкой/структурой данных/чем угодно, чтобы всё делать за минимальное кол-во проходов.
В шарпе ты просто ебашишь в linq-стиле цепочки и тебя это не ебёт, панимаю.
Аноним 13/08/20 Чтв 14:15:03 177600794
>>1775995
Гарантирую тем, что колбек вызывается во время работы функции split, так что string_view будет всегда валидным. Ты наверное не понял про что я говорю, вот пример небольшой.

template<class Callback>
void split(char delimiter, Callback callback)
{
for (...)
{
//some delimiting algorithm
string_view word(...);
callback(word);
}
}
vector<string> vec;
list<string> list;
string zalupa;
zalupa.split(' ', [&](string_view word)
{
//save it like u want
vec.push_back(word);
list.push_back(word);
});
Аноним 13/08/20 Чтв 15:04:27 177608695
>>1775882
Там уже предлагали ввести ключевое слово, которым ты гарантируешь компилятору что не конченый долбаёб?
Что-то вроде #not_pidorust
Аноним 13/08/20 Чтв 15:13:13 177610096
>>1776086
Чювак, если ты что-то хочешь доказать компилятору, то ты уже конечный долбоёб.
Аноним 13/08/20 Чтв 17:06:21 177626697
>>1775870
Это инклюзивный подход. Напиши свой сплит и почувствуй себя соучастником, сотворцом.
Аноним 13/08/20 Чтв 18:17:30 177639998
>>1776100
Но ведь он уже по умолчанию меня за добаеба считает, когда не даёт long к void* кастовать.
Аноним 13/08/20 Чтв 18:44:15 177643299
>>1776399
Неужели лучше как в js, где всё молча кастуется ко всему?
Аноним 13/08/20 Чтв 18:45:32 1776435100
>>1776399
r e i n t e r p r e t _ c a s t
e
i
n
t
e
r
p
r
e
t
_
c
a
s
t
Аноним 13/08/20 Чтв 19:02:36 1776446101
Аноним 13/08/20 Чтв 19:32:59 1776460102
>>1776399
А как же (void*)? Кастует все и вся.
Аноним 13/08/20 Чтв 19:33:58 1776463103
image.png 46Кб, 676x225
676x225
image.png 41Кб, 331x309
331x309
Делаю вычисления над большими числами.
Перед выходом из функции делаю проверку:
if (A >= B) {
A -= B;
}
return A;

До этой проверки вызывается функция, которая делает много вычислений.
Если я эту проверку (и вычитание) делаю на ассемблере внутри той большой функции, то у меня огромный (20%+) прирост производительности. Основной проект на плюсах.

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

На первом пике — я закомментил кусок со сравнением.
На втором — то, на что заменил.
Не могут же два лишних вызова функции (operator>= и operator-=) иметь такой безумный оверхед?

Компилирую с "-std=c++11 -Ofast"

Аноним 13/08/20 Чтв 19:47:55 1776473104
Аноним 13/08/20 Чтв 21:28:20 1776546105
Как delete [] понимает где конец массива?
Аноним 13/08/20 Чтв 21:29:54 1776547106
>>1776546
new охраняет эту инфу под капотом.
Аноним 13/08/20 Чтв 21:31:08 1776549107
Аноним 13/08/20 Чтв 22:03:37 1776579108
>>1776547
А вот если я изменю значение указателя (он будет указывать на другой адрес), потом как мне удалить массив?
Аноним 13/08/20 Чтв 22:05:29 1776586109
>>1776579
у т е ч к а п а м я т и
Аноним 13/08/20 Чтв 22:06:07 1776587110
>>1776579
Если проебал адрес объекта, то уже никак, у тебя случилась утечка памяти, и освободится память разве что системой при завершении процесса.
Аноним 13/08/20 Чтв 22:07:43 1776590111
>>1776586
>>1776587
Ну а если я сохраню адресс, тип и колличество элементов?
Аноним 13/08/20 Чтв 22:10:49 1776593112
>>1776590
если ты сохранишь адрес - то ты дернешь на него просто delete[].
если ты не сохранишь адрес - то бог тебе в помощь
Аноним 13/08/20 Чтв 22:13:48 1776596113
>>1776593
Где хранится инфа, которая о массиве? Просто я искренне не понимаю пока как это работает: как программа понимает где просто указетель на объект, а где на массив объектов.
Аноним 13/08/20 Чтв 22:13:51 1776597114
allocatedchunk.png 14Кб, 561x407
561x407
>>1776546
Каждая аллокация порождает так называемый чанк в куче, в котором есть хедер, где есть метаданные об этом чанке (chunk - кусок с английского).
То, как выглядит аллоцированный чанк в памяти, я попытался нарисовать в виме, чекай пикрил.
Пысы: освобожденный чанк выглядит по-другому, если тебе это интересно. Там на месте actual chunk data есть указатель на следующий освобожденный чанк в корзине, а сразу после него - указатель на предыдущий освобожденный чанк в корзине.

Все это справедливо для аллокатора ptmalloc3, который есть в glibc. jemalloc или аллокатор в виндовой куче, мб, работают чутка по-другому, но принципы примерно одни и те же. У чанков так или иначе есть метаданные, которые предоставляют разную инфу, в т.ч. и для освобождения памяти.
Аноним 13/08/20 Чтв 22:16:14 1776598115
Аноним 13/08/20 Чтв 22:16:35 1776599116
>>1776596
Короче, есть такое понятие как аллокатор. Оно для тебя полностью абстрактно, но вот тот самый аллокатор хранит где-то всю нужную инфу сам по себе. Т.е. тебе эта информация недоступна по умолчанию.

Это если мы говорим про именно создание\удаление. Если мы говорим про доступ - то такая инфа не доступна, и ты начинаешь читать хуйню, когда переступаешь за границы массива.
Аноним 13/08/20 Чтв 22:18:25 1776601117
>>1776597
быстрофикс
первые 3 бита в поле current chunk data - AMP - дабт доп инфу.
Если бит А = 1, то чанк находится в главной арене
Если бит M = 1, то чанк был получен впоследствие системного вызова mmap
Если бит Р = 1, то предыдущий чанк не освобожден (в использовании).

Опять же, это имплементация аллокатора в glibc, разные аллокаторы реализованы по-разному, но между ними есть общие принципы.
Аноним 13/08/20 Чтв 22:18:31 1776602118
>>1776597
>>1776599
Правильно же я понимаю, что аллокатор для каждой платформы свой, и мне должно быть похуй как оно там работает?
Аноним 13/08/20 Чтв 22:20:01 1776603119
>>1776602
>похуй как оно там работает
Ты понял смысл слова абстракция.

Абсолютно верно. Может быть даже несколько разных аллокаторов для одной платформы.
Аноним 13/08/20 Чтв 22:22:44 1776605120
Ебать вы тут жирноту накормили со своим опенжлем, я не верю, что существуют настолько упоротые и тупые создания, как он.
Аноним 13/08/20 Чтв 22:26:19 1776608121
>>1776598
кстати, ты можешь выделить 0 байт на куче, но glibc аллокатор вернет тебе указатель на чанк, в котором есть место под 16 байт (на 64битных системах), кек. Поэтому ты даже можешь слегка переполнить небольшой буфер без последствий (допустим, у тебя там выделен массив из 5-ти чаров, а ты записал туда 7 чаров), в данном случае формально случилось переполнение, но оно не загадило другую важную память, так как у тебя есть в этом конкретном случае 16 швабодных байт в чанке, даже если ты выделил, мать его, НОЛЬ байт на куче. Такая вот хуйня =D Но никогда так не делай, ибо это хождение по тонкому льду и просто прикольные хаки.
Аноним 13/08/20 Чтв 22:29:32 1776609122
>>1776605
Ты недооцениваешь студентов второго курса, которые освоили сортировку на шарпе, и тут им дают САМЫЙ СОВРЕМЕННЫЙ, САМЫЙ НАВОРОЧЕННЫЙ, ЭТИ ВАШИ LINUX VULKAN СОСУТ КАК ПИРАТКИ У АКТУАЛА, КАК БУДТО КИАНУ РИВЗ ЛИЧНО СТО МИЛЛИОНОВ МИЛЛИАРДОВ ЛЕТ КОДИЛ OOOPEEEENGLL
Сорян просто флешбеки всплыли как мы копались на сайтах начала 2000х чтобы разобраться в этой хуйне
Листал доску увидел ваш тред. Что я тут делаю, я вообще дотнетчик...
Аноним 13/08/20 Чтв 22:31:53 1776611123
Еще вопрос по указателям. Единственная разница между использованием make_shared и его не использованием в колличестве аллокаций? Два против одного?
Аноним 13/08/20 Чтв 22:37:12 1776616124
>>1776605
Так-то далеко не все сразу понимают, что такое дескриптор.
Аноним 13/08/20 Чтв 22:37:14 1776617125
>>1776611
между make_shader и std::shared_ptr конструированием?
Да, и там еще exception safety какое-то
Аноним 13/08/20 Чтв 22:38:32 1776620126
>>1776611
Разница в вероятности обосраться.

> использованием make_shared
10%

> и его не использованием
100%
Аноним 13/08/20 Чтв 22:39:01 1776621127
Есть сишная либа. Она оперирует с некоторой struct. Эту struct я вынужден агрегировать у себя в class, который для нее оберточный. Функции либы возвращают указатели на struct. Как мне из такого указателя определить указатель на объект, в котором структура агрегирована?
Аноним 13/08/20 Чтв 22:40:24 1776623128
>>1776621
заведи хэш-мапу какую-нибудь. Но вообще, чето это как-то изначально архитектурно не правильно
Аноним 13/08/20 Чтв 22:43:22 1776626129
Развели тут стековерфлоу какой-то.
Аноним 13/08/20 Чтв 22:43:29 1776627130
>>1776620
>>1776617
Можно пример, когда make_shared помогает?
Я не понимаю разницы меджу
std::shared_ptr<T> p1 = std::make_shared<T>();
std::shared_ptr<T> p1(new T());
Что так, что так я потом должен работать с p1. То есть новые указатели им инициализировать.
Аноним 13/08/20 Чтв 22:44:59 1776629131
>>1776623
Я пока добавил в struct указатель void data и записываю его в конструкторе. Все еще плохой дизайн?
Аноним 13/08/20 Чтв 22:45:01 1776630132
>>1776611
при использовании make_shared объект разрушается после того, как счетчик weak ссылок становится равен 0, а при использовании обычных shared_ptr - после того, как счетчик strong ссылок становится равен 0.
Аноним 13/08/20 Чтв 22:48:51 1776633133
>>1776630
Пока не понятно. В книге было сказано, что shared_ptr считает колличество ссылок на объект. Как их колличество достигает нуля объект и указатель последний удаляются. Но при этом выделение происходило через make_shared. Ладно. Буду читать дальше, может там уточнят
Аноним 13/08/20 Чтв 22:51:07 1776636134
>>1776630
Облажался, надо читать так:

при использовании make_shared объект разрушается после того, как счетчик и strong и weak ссылок становится равен 0, а при использовании обычных shared_ptr - после того, как счетчик strong ссылок становится равен 0.
Аноним 13/08/20 Чтв 22:51:36 1776638135
>>1776633
Это описана работа boost::intrusive_ptr.
std::shared_ptr внутри сложнее
Аноним 13/08/20 Чтв 22:53:34 1776640136
>>1776629
Ну такое часто встречается, только называется context. Ничего страшного я в этом не вижу
Аноним 13/08/20 Чтв 22:57:13 1776643137
Аноним 13/08/20 Чтв 23:03:15 1776645138
>>1776640
А если прям взять унаследовать класс от структуры, то может static_cast сработает? Но этот класс надо еще от другого по архитертуре наследовать. Задолбал тебя, извини, надо все руками пробовать.
Аноним 13/08/20 Чтв 23:19:03 1776657139
>>1776645
В таком случае может начаться ебатория с какими-нибудь выравниваниями
Аноним 13/08/20 Чтв 23:45:47 1776669140
Аноним 13/08/20 Чтв 23:48:52 1776670141
>>1776669
За тебя что ли переводить? Да пашол ты нахуй.
Аноним 13/08/20 Чтв 23:50:03 1776671142
Аноним 13/08/20 Чтв 23:54:03 1776674143
>>1776671
Ну вот серьезно. В чем вопрос? Тут нужно просто сидеть, читать и вникать в то, что написано. Ну можешь еще посмотреть на паскаль, как там все записывается, потому что тот еблан русский с паскалем намешал
Аноним 13/08/20 Чтв 23:56:09 1776676144
>>1775723
Рекомендую поссать на лицо человеку, который этот псевдокод тебе преподает
Аноним 13/08/20 Чтв 23:58:58 1776680145
Аноним 14/08/20 Птн 09:49:45 1776850146
>>1775535
Я пока на предпоследней стадии. Когда ко мне придут люди и заставят писать на двух килобайтах рома?
Аноним 14/08/20 Птн 10:06:43 1776866147
>>1775858
>Я хочу передавать в функцию итератор на внешний контейнер, функция по итераторам его изменяет, в том числе его размер, причем заранее не известно на сколько. Это вообще нормальный подход?
Это то что делают стандартные алгоритмы стл когда ты передаешь им back inserter.
Аноним 14/08/20 Птн 21:37:53 1777688148
>>1776657
А я все же ебанулся и так и сделал. Все работает и кое-где удобнее стало. Даже в функцию сишной либы this можно отправить - полиморфизм срабатывает.
Аноним 14/08/20 Птн 22:07:27 1777707149
Аноним 14/08/20 Птн 22:09:24 1777710150
image.png 7Кб, 786x136
786x136
Я не понимаю разницы между копированием и перемещением. Я думал, что копирование это когда у функции f(T var) , а перемещение, когда f(T &var) или f(T *var). Но пикрил гоорит другое
Аноним 14/08/20 Птн 22:16:20 1777711151
image.png 118Кб, 1366x768
1366x768
И в чем здесь отличие? Результат один и тот же. Ну понятно, что запись разная, а с точки зрения того как это внутри происходит разница какая?
Аноним 14/08/20 Птн 22:16:42 1777712152
>>1777707
ООП дело другое, а кресты рулез, хотя и трудоемкие при кодировании по сравнению со всяким.
Аноним 14/08/20 Птн 22:17:10 1777713153
image.png 118Кб, 1366x768
1366x768
Аноним 14/08/20 Птн 22:25:46 1777718154
>>1777713
Блин, не отклеилось
Аноним 15/08/20 Суб 00:03:16 1777771155
Объясните почему в конструкторе пишут &. Без & не компилируется. Почему?
Аноним 15/08/20 Суб 00:05:47 1777774156
И почему конструкторы должны быть public? Это же не логично. Он по любому должен выполниться.
15/08/20 Суб 00:35:43 1777781157
>>1775527 (OP)
Кто придумал такую шикарную аву С++ треда? Да еще и повторяют из треда в тред самую всратую, байтоебы тупые. оп переболеет ковидом столько раз, сколько я раз буду лицезреть эту хуйню в шапке
Аноним 15/08/20 Суб 02:27:32 1777809158
>>1777774
Чтоб можно было создавать объект.
С приватным конструктором создать объект сможет только сам объект (через статический метод) или friend (builder).
Аноним 15/08/20 Суб 02:27:56 1777810159
>>1777771
В каком конструкторе?
У тебя вопросы какие-то разрозненные, сформулируй нормально мысли.
Аноним 15/08/20 Суб 07:44:37 1777877160
>>1777771
Потому что это копирующий конструктор.
Аноним 15/08/20 Суб 08:12:08 1777900161
>>1777710
>Я думал, что копирование это когда у функции f(T var)
Да, но функция, которая так объявлена, она не выполняет это копирование сама по себе, она просто получает уже готовую копию. А эту копию кто-то должен сделать, для этого и нужен конструктор копирования, который для этого использует ссылку на оригинал.
Шаблоны Аноним 15/08/20 Суб 14:07:51 1778086162
image.png 10Кб, 287x279
287x279
Подскажите, как написать шаблонную ф-ю, которая вернет 1й или 2й аргумент в зависимости от bool в шаблоне? Что-то типа std::enable_if, но для вычисления значения в реалтайме
Аноним 15/08/20 Суб 14:36:51 1778102163
>>1778086
std::conditional

А лучше:
auto foo(...)
{
if constexpr (...)
return MyType1();
else
return MyType2();
}
Аноним 15/08/20 Суб 14:41:05 1778104164
Аноним 15/08/20 Суб 14:43:27 1778110165
>>1778102
Немного не то, нужно именно выбрать значение из 2х значений одинакового типа
Аноним 15/08/20 Суб 14:44:48 1778112166
>>1778086
template<bool A, typename T>
T foo(T a, T b)
{
return A ? a : b;
}
Аноним 15/08/20 Суб 14:49:39 1778113167
>>1778112
То, что нужно! Благодарю
Аноним 15/08/20 Суб 16:09:49 1778156168
Как школьники-олимпиадники учат C++? Неужели C++ уже не первый язык программирования в их жизни? Неужели они читают тысячастраничные книги? И C++ это ведь только часть подготовки школьника-олимпиадника, ведь нужно знать и непривязанные к конкретному языку хитрые алгоритмы. Когда и как они всё успевают и с чего начинают?
Аноним 15/08/20 Суб 16:10:30 1778157169
>>1778156
Таких один из тысяч.
Аноним 15/08/20 Суб 16:12:54 1778160170
>>1778156
Так они его знают на уровне циклов и массивов. Олимпиадное программирование про то как решать тысячи наркоманских задач, используя контент первых 50 страниц самоучителя
Аноним 15/08/20 Суб 16:17:32 1778162171
>>1778156
> Неужели они читают тысячастраничные книги?
Тот уровень языка, который нужен на олимпиаде, учится ну максимум за неделю. Переменные типа int и float, арифметика, if/while/for, ввод с клавиатуры и из файла, вывод на экран и в файл. Всё, больше в школололимпиадах вообще ничего нет. Весь код в main() пишется.

> хитрые алгоритмы
Это ты про задачи уровня "Вася часто ездит на автобусе и захотел написать программу для определения, счастливый ли билет" что ли? Очень хитро, прям днями и ночами надо готовиться.
Аноним 15/08/20 Суб 16:29:00 1778168172
>>1778156
Нахуя вообще читать книги? Появилась проблема, загуглил, нашел алгоритм, реализовал и решил проблему. Зачем читать 1000 страниц половина из которых забудется, а другая может никогда не понадобится.
Аноним 15/08/20 Суб 16:42:26 1778177173
С++ охуенен.

Дискасс.
Аноним 15/08/20 Суб 16:44:09 1778180174
>>1778177
Тут и обсуждать-то нечего.
Аноним 15/08/20 Суб 16:47:44 1778186175
>>1778177

Почему его тогда отовсюду выдавили?
Аноним 15/08/20 Суб 16:52:34 1778194176
Аноним 15/08/20 Суб 16:55:05 1778199177
>>1778194

Ты читать не умеешь? Тебе сказали ОТОВСЮДУ! По сути осталось нищее байтоебство в эмбедеде и хайлоад для задротов в яндексах и гуглах.
Аноним 15/08/20 Суб 16:56:57 1778202178
>>1778168
Я как то раз так попробовал. Делал лабораторную, поиск подстроки в строке и в конце лабораторной была такая безобидная приписка: модифицируйте алгоритм для работы с большим потоком данных и программа-тест генерирующая этот поток данных, которые за один раз в массив не положить. Я долго боролся, но так и не смог и ничего полезного не нагуглил, гуглился только алгоритм поиска который я реализовал, а вот как его адаптировать для потока данных в гигабайты (или десятки гигабайт?) - нет. Вот и всё обучение через практику
Аноним 15/08/20 Суб 17:03:59 1778213179
>>1778199
Интересные вещи рассказываешь. Ещё не забудь сказать, что на десктопе теперь электрон, в геймдеве шарп, а на сервере питон и джава.
Аноним 15/08/20 Суб 17:56:47 1778254180
Аноним 15/08/20 Суб 19:10:55 1778279181
>>1778254
Не так.
На десктопе кутэшного куда больше, чем электронного. Электрон сейчас, по сути, только дискорд и вскод. А кутэ - дефакто стандарт для десктопных приложений, тем более если ты хочешь, чтобы софтина была быстрой и легковесной, а не как говно на электроне.

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

На серверах крупных компаний куча бэкэнд кода на плюсах. Больше, чем ты думаешь, ибо ГОвно со своим сборщиком мусора может внезапно начать сосать хуи в слоумо в самый неподходящий момент.

>нищее байтоебство в эмбедеде
Тут зависит от государства в котором ты живешь. Если ты рабсиянин/уркоинец/еблорус (нужное подчеркнуть), то да, малясь зашкварная отрасль, где требуют относительно много знаний + шарить в железе, а платят меньше, чем ссаной вебмакаке, которая по факту не знает что есть компьютер. В странах типа США, Германии, Израиля (за другие не скажу, за эти просто точно знаю, но думаю, что в Европке оверолл такая ситуация) эмбедщина - элитная айти отрасль и получают они хорошие деньги, порой выше, чем веб-смузихлебы, да и работа у них интересная. Учитывая, что эра IoT находится на заре, равно как и отрасль автономных машин с кучей эмбедщины внутри оных, эмбедщики будут востребованы еще очень долго.
Аноним 15/08/20 Суб 19:14:41 1778282182
>>1778279

++ этого джентльмена.

И да, реально шарящих "крестовиков" - очень мало.

Тем мы, крестовики, ценнее всяких джавистов и прочих PHP-макак.
Аноним 15/08/20 Суб 19:15:48 1778285183
Аноним 15/08/20 Суб 19:18:29 1778286184
>>1778199
>По сути осталось нищее байтоебство
Ага, поэтому мне предлагают 200к вакансию и 3 релока один из которых в Канаду. Хуй соси еблан.
Аноним 15/08/20 Суб 19:20:51 1778287185
Гм, а системное прыграмирование тоже считается б-ебством?
Аноним 15/08/20 Суб 19:26:21 1778291186
Какие годные ребята в треде. Бтв вы высокие, мне кажется, только потому что вам нет замены. Как попасть на Джуниор с++ разраба? Правильно, никак, всем ток мидлы и сеньеры надо
Аноним 15/08/20 Суб 19:26:50 1778292187
>>1778291
Вы вымрете* быстрофикс
Аноним 15/08/20 Суб 19:28:31 1778295188
>>1778279
И это я еще не привел примеры ресурсоемких числодробилок, разных научных симуляций Вселенных, RT, обработки изображений и видеофайлов (вся отрасль CV держится на плюсах, openCV написана на плюсах), медиа-аудио плееры, куча системного софта, драйвера (на винде дрова пишут на крестах, например), вся отрасль компьютерной графики и много чего другого.

Плюсы на пару с Сишкой - оплот и фундамент всего мира компьютерных технологий. Какую технологию ты бы ни взял, в 99.9% случаев ее инфраструктура будет написана на С/С++. Причем именно в случае с плюсами налицо их развитие. Каждые 3 года штампуют стандарты с тонной новых фич, язык явно не станут забрасывать, ибо на это нет никаких, даже косвенных, причин. Можешь считать, что С++ - это рак в терминальной стадии, давший метастазы по всему организму. Убьешь С++ - убьешь мир компьютерных технологий просто К ХУЯМ. Может ли все поменяться когда-либо? Безусловно, теоретически, может, только вот если такое когда-либо и произойдет, то каждый читающий этот пост уже будет давно в земельке.
Аноним 15/08/20 Суб 19:30:16 1778296189
Аноним 15/08/20 Суб 19:31:59 1778297190
>>1778286
Какой стэк, какие проекты делал? В чем надо шарить, чтобы быть востребованным эмбедщиком? Насколько глубоко надо нырять в мир железа? Какую литературу по сабжу лично бы порекомендовал? Здоровья тебе, анон.
Аноним 15/08/20 Суб 19:37:15 1778299191
>>1778295
Мда. Чувствую себя чуть менее греховным, чем плюсеры, ведь я просто пишу на портируемом ассемблере ради максимальной производительности...

мимо сищник
Аноним 15/08/20 Суб 19:47:43 1778303192
>>1778299
Сишка, какой бы старой ни была, все равно бессмертна при нынешней архитектуре железа, лол.

Просто она менее гибкая и намного меньше напоминает швейцарский нож, нежели кресты, поэтому писать на чистой сишке какой-нибудь фотошоп или движок для очень серьезной и большой игры - лишний гемор, учитывая, что разница в скоростях между С и С++ пренебрегаема в подавляющем большинстве случаев, а порой плюсы даже быстрее сишки (если правильно писать код, перекидывая как можно больше вычислений на компайл тайм с помощью темплейтов и constexpr).
Аноним 15/08/20 Суб 19:53:59 1778307193
Аноним 15/08/20 Суб 19:56:29 1778310194
>>1778307
>джаваскрипт
>веб

Это игра в ассоциации или как?
Аноним 15/08/20 Суб 19:58:02 1778311195
>>1778303
>если правильно писать код, перекидывая как можно больше вычислений на компайл тайм с помощью темплейтов и constexpr
Никогда этого не понимал. Я как программист могу предвычислить всё, что нужно, вынести подвыражения, раскруить циклы, и результат будет лучше (для известных мне архитектур). Компилятору остается подставить static inline и свернуть константы, это с начала 2000-х умеют все.
Аноним 15/08/20 Суб 20:10:29 1778318196
>>1778295
==Плюсы на пару с Сишкой - оплот и фундамент всего мира компьютерных технологий. Какую технологию ты бы ни взял, в 99.9% случаев ее инфраструктура будет написана на С/С++. Причем именно в случае с плюсами налицо их развитие. Каждые 3 года штампуют стандарты с тонной новых фич, язык явно не станут забрасывать, ибо на это нет никаких, даже косвенных, причин==

Прямо вдохновляет. Но как насчёт суровых реалий? Я живу в городе с населением 300 тысяч человек, областной центр и на данный момент на сайте hh.ru нет ни одной вакансии для C++ программиста, подозреваю что никакого "эмбедед" тут тоже просто не существует
Аноним 15/08/20 Суб 20:29:32 1778337197
>>1778318
Страны СНГ - технологически неразвитые страны, и, понятное дело, рынок айти это не обошло стороной. Тут я ничего посоветовать не могу. Дрочи дома плюсы, жестко вкатывайся в инглиш и заводи трактор, если хочешь элитной работы в сфере низкоуровневого программирования. В странах СНГ есть шанс, но я бы не стал. Решать тебе.
Аноним 15/08/20 Суб 20:35:11 1778338198
>>1778337
не, я уже окно возможностей проебал, так прост, интересуюсь. Когда то "гениальный план" разрабытывал, что выучу си, выучу ассемблер, выучу си плюс плюс и на галеру в Воронеж рвану, но встрял уже на первом пункте
Аноним 15/08/20 Суб 20:39:54 1778342199
>>1778338
И сколько ты уже Си учишь? Какие свои пет-проекты написал?
Аноним 15/08/20 Суб 20:44:49 1778344200
>>1778318
Странно, что вакансий на эмбедщину нет, у вас там в рашке нет ведоров железа, которые должны писать кастомные драйвера и прошивки на чипы? Причем эмбедщина есть просто ВЕЗДЕ блять. От микроволновок до истребителей.
15/08/20 Суб 20:46:50 1778345201
>>1778342
> свои пет-проекты
Уебал бы.
Аноним 15/08/20 Суб 20:52:19 1778347202
>>1778156
>задачи уровня "Вася часто ездит на автобусе и захотел написать программу для определения, счастливый ли билет"
Наивный, там также сложно как и на олимпиадах по математике и физике. Не каждый студент вуза, даже не каждый препод эти задачи решит. Это я не про городскую олимпиаду мухосранска говорю, естественно.
Аноним 15/08/20 Суб 20:52:44 1778348203
Аноним 15/08/20 Суб 20:53:58 1778350204
Аноним 15/08/20 Суб 20:57:20 1778355205
>>1778318
Вот тут двачую, сам с мухосрани 600к, на весь город пара вакансий на плюсах. Вскоре думаю на собес пойду, и если не пройду или сама работа не понравится то походу придется выкатываться и переходить на веб парашу.
Аноним 15/08/20 Суб 21:01:53 1778361206
>>1778342
27 октября 2016 начал, показывать нечего, на гитлабе было немного кода но я аккаунт не помню, вот с этой лабораторной например не справился, а именно с последними двумя строчками: https://sites.google.com/site/pathofdeveloper/home/programmirovanie-na-azyke-vysokogo-urovna/zadaci-pervogo-semestra/poisk-podstroki-metodom-bojera-mura
Вот с этой задачей на олимпиаде почти справился, но доделал уже вечером после: https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwjW1Zmh453rAhXFs4sKHZ8TA24QFjAAegQIBBAB&url=https%3A%2F%2Folympic.nsu.ru%2Ffiles%2Fproblems_8.pdf&usg=AOvVaw0dbA4QEfkK6Som77mDTMuZ Вот мой акк на степике: https://stepik.org/users/114171448/courses
Аноним 15/08/20 Суб 21:04:12 1778366207
>>1775531
предоставляют более специализированный интерфейс
Аноним 15/08/20 Суб 21:05:02 1778368208
>>1778361
Уточню, задача на олимпиаде "заяц - топтун" в файле она не одна оказалась
Аноним 15/08/20 Суб 21:10:12 1778371209
>>1778361
>>1778202
А в чем сложность то? Там шаблон для поиска всего 16 символов. Берешь сначала реализуешь дефолтный алгоритм поиска подстроки. Далее грузишь допустим первые 1024 байта файла, ищешь в них подстроку, если не нашел читаешь файл по смещению 1024 - длина_шаблона и опять ищешь в этом куске подстроку, повторить пока файл не кончится. И никакие книги для этого не нужны.
Аноним 15/08/20 Суб 21:16:53 1778373210
>>1775858
хех, подход не очень хороший если следовать дизайну стл
ведь стандартные модифицирующие алгоритмы стл никогда не меняют размер контейнера
и тому есть причины
Аноним 15/08/20 Суб 21:17:25 1778374211
>>1778160
Почти так. Могут еще контейнеры изучить. Для олимпиадного програнья школьного много знать не надо
>>1778162
Ох лол. Ну открой задания олимпиады 1 степент и всероса и охуей.
Аноним 15/08/20 Суб 21:17:50 1778375212
>>1775858
в новом стандарте можно передавать не пару итераторов а рэндж
Аноним 15/08/20 Суб 21:28:48 1778381213
>>1778371
Ну вот ты умный такой, а я не такой. Два месяца потратил - так и не сделал. Вот кот кстати, я нашёл: https://gitlab.com/Krogan1987/labs/-/blob/master/lab1-0/src/main.c
Близок хоть к цели то был?
int block = 163;
Это размер блока на которые разбивается файл, меняем размер блока - вывод не должен меняться, причём разбиваем не файл генерируемый программой-тестером, там он слишком лёгкий, а заполняем рандомными цифрами. Сначала получаем эталонный вывод используя эту же программу но прописав блок больший длины файла, а затем тестируем прописывая меньшие длины блока
Аноним 15/08/20 Суб 21:29:07 1778382214
>>1778374
Когда я сказал много знать не надо, я имел ввиду в плане синтаксиса языка. И то там изъебываются иногда. Используют модифицированный ввод вывод. Но обычно это не требуется. В основном задачи сделаны так, что можно на любом языке написать, НОО иногда бывают байтоебские задачи. Например обязательное условие писать на си и улажиться в очень строгие ограничения по времени и памяти. Или залачи на перебор, где нужно эффективно перебирать. То есть там используют только плюсы.
Аноним 15/08/20 Суб 21:39:16 1778387215
>>1778310
Он небось на говноланг намекает.
Аноним 15/08/20 Суб 21:44:29 1778390216
>>1778381
Пиздец конечно, все в 1 функции, неинформативные названия переменных. Это читать и понять что происходит просто невозможно. Вынес бы хоть код поиска подстроки в отдельную функцию.
Аноним 15/08/20 Суб 21:46:27 1778393217
123.png 42Кб, 511x296
511x296
Анончики, какие типы проектов можно делать с данной железкой?
Аноним 15/08/20 Суб 21:49:22 1778397218
>>1778390
==Это понять почти невозможно==
Вот я и сам перестал что-либо понимать и любые изменения которые я вносил меняли не только то что я хотел но и то чего не хотел
==код поиска подстроки в отдельную функцию==
Так я не умею для меня функция это то что принимает несколько аргументов и возвращает одно значение, принять массив и вернуть массив - я не знаю как, не прочитал ещё нужную главу в учебнике, ни тогда, ни сейчас
Аноним 15/08/20 Суб 21:50:21 1778398219
Аноним 15/08/20 Суб 21:52:27 1778404220
>>1778397
Но сейчас, то есть несколько месяцев назад я научился писать более понятный код. по крайней мере мне самому, но он и алгоритмически несравнимо проще: https://pastebin.com/wd0LDZCp
Аноним 15/08/20 Суб 22:02:28 1778419221
>>1778381
Ужасно нечитаемый код, особенно в теле цикла. Пиши чище, анон.
Кстати, у тебя, видимо, баг в 6 строчке - fgets неявно вставляет нуль-терминатор после окончания чтения строки. И твой буфер на 20 символов вместит в себя 19 (20ый будет для нуль-терминатора). Если так было и задумано, то пардон, а если нет, то учти.
Аноним 15/08/20 Суб 22:03:41 1778420222
>>1778398
И все? А если притарабанить какой-то условный джойстик, который присоединяется к I2C шине и накатать на него драйвер?
Аноним 15/08/20 Суб 22:05:36 1778422223
>>1778397
пчел, ты вкатился в 2016 году и до сих пор не знаешь как передавать в функцию массивы/возвращать из нее массивы?
Не в обиду, но, возможно, программирование - это не твоё.
Аноним 15/08/20 Суб 22:06:49 1778423224
>>1778419
Это более года назад писалось, я понятия уже не имею что там задумывалось, но скорее всего длина буфера выбрана с запасом
Аноним 15/08/20 Суб 22:10:34 1778430225
>>1778422
Да, именно так. Никак до этих глав не докачусь. Сначала катился по книге Прата, потом начал в школьную математику вкатываться, потом в школьную информатику, потом в вузе год пытался в код, пот ом снова книгу начал читать с самого начала, где то в апреле этого года снова забил прочитав не намного дальше чем в первый раз. Начал в линукс слепую печать и вим уходить, а на сам си как то взял да и забил, ещё и работать начал на заводе, вообще как то вечером не до самообразования
Аноним 15/08/20 Суб 22:13:58 1778432226
>>1778311
Да, всё мы можем. Но оказывается гораздо более удобным перекладывать эту работу на компилятор, код остаётся понятнее, времени на его написание и отладку уходит гораздо меньше. Компиляторы со временем становятся всё умнее, и уже сегодня спокойно уделают тебя в оптимизациях в 95% случаев.
Так-то можно и на ассемблере всё писать, но, очевидно, времени на такую деятельность просто нет.
Аноним 15/08/20 Суб 22:16:57 1778435227
>>1778393
Взять большую сборку светодиодов, написать детектор степени дезориентированности существ в поле зрения камеры и сделать стробоскоп от воров с обратной связью.
Аноним 15/08/20 Суб 22:52:12 1778447228
>>1775870
split делался через stringstream всегда
об этом в каждом учебнике для ньюфагов написано

Аноним 15/08/20 Суб 22:57:53 1778449229
Доку beast по порядку читать надо? Просто пока очень обрывисто выглядит и в одну картину не собирается. Вообще не понимаю структуры программы сервера.
Аноним 15/08/20 Суб 23:01:47 1778454230
>>1776597
сейчас с новых стандартов в стандартной библиотеке есть возможность работы с кучей
Аноним 15/08/20 Суб 23:04:26 1778455231
>>1778449
Я привык, что сначала идет некое введение. Что нужно для работы сервера. Как сервер принимает соединения, и тд и тп. Там сначала расскаываются буферы, таймауты.
Аноним 15/08/20 Суб 23:05:53 1778458232
1.png 11Кб, 354x297
354x297
2.png 12Кб, 368x297
368x297
3.png 12Кб, 358x297
358x297
4.png 9Кб, 402x245
402x245
Аноним 15/08/20 Суб 23:14:41 1778464233
>>1778458
Плюсовые заморочки
Аноним 15/08/20 Суб 23:15:55 1778466234
>>1778458
Потому что в шаблоны раскрываются на этапе компиляции, а значит в них можно подставлять только константы времени компиляции.
В "const char hello[]" hello - константа времени выполнения.
&hello, адрес hello - константа времени выполнения.
Аноним 15/08/20 Суб 23:19:05 1778467235
>>1778466
Миссклик, не дописал.
const char* hello - указатель на const char - не константа времени выполнения => в шаблон не подставить.
Строковые литералы просто нельзя передавать в шаблоны, причину не назову.
Аноним 15/08/20 Суб 23:21:10 1778468236
>>1778467
>>1778466
Еще и обосрался с названиями... Фикс:
Потому что в шаблоны раскрываются на этапе компиляции, а значит в них можно подставлять только константы времени компиляции.
В "const char hello[]" hello - константа времени компиляции.
&hello, адрес hello - константа времени компиляции.
const char* hello - изменяемая переменная-указатель на const char - не константа времени компиляции => в шаблон не подставить.
Строковые литералы просто нельзя передавать в шаблоны, причину не назову.
Аноним 15/08/20 Суб 23:22:47 1778469237
>>1778467
Примерно та же причина, что и с флоатами. Из-за случаев, когда можно подумать, что параметры шаблона в двух разных местах совпадают, а на самом деле это не так. Тут хелло, там хелло, а указатели разные.
Аноним 15/08/20 Суб 23:34:58 1778471238
>>1778468
>Еще и обосрался с названиями... Фикс:
Благодарность за пояснения, дальше сам разберусь.
Аноним 15/08/20 Суб 23:49:49 1778476239
>>1778318
>Но как насчёт суровых реалий?
Перекат в ДС\ДС2
Аноним 16/08/20 Вск 08:44:39 1778575240
Есть смысл переводить на русский статьи с cpp reference?
Аноним 16/08/20 Вск 08:45:59 1778577241
>>1778393
>Анончики, какие типы проектов можно делать с данной железкой?
Как же заебали ардуинщики, блядь. Все бегают с этой хуйней и рассказывают, какие они инженегры, блядь. Да лол, все, что может эта хуйня сделать это - прочитать входа, обработать, выплюнуть выхода. Чо вы там все ими выебываетесь? Чо вы на них пишете? Один мне затирал, как систему полива цветочков автоматическую сделал в зависимости от влажности, ууу, бляя. И чо, говорю, ты там такого реализовал? Прочитал значение датчика и далее, если он ниже уставки, то включить насос? А в ответ...эээ, мууу, беее, ну эта.
Аноним 16/08/20 Вск 08:47:31 1778578242
>>1778420
Делать то ты чо хочешь, болезный? Ну прицепишь джостик и дальше чо? Воткни геймпад в комп да обрабатывай его ввод через директХ
Аноним 16/08/20 Вск 09:17:31 1778587243
Аноним 16/08/20 Вск 09:32:02 1778590244
Доку beast по порядку читать надо? Просто пока очень обрывисто выглядит и в одну картину не собирается. Вообще не понимаю структуры программы сервера. Я привык, что сначала идет некое введение. Что нужно для работы сервера. Как сервер принимает соединения, и тд и тп. Там сначала расскаываются буферы, таймауты.
Аноним 16/08/20 Вск 11:27:08 1778608245
>>1778590
Это документация, а не туториал.
>Что нужно для работы сервера. Как сервер принимает соединения, и тд и тп.
Тебе книги обучающие надо читать, а не документации.
Аноним 16/08/20 Вск 11:34:45 1778613246
>>1778608
Капец. Ну и что мне читать? Чтобы это было на уровне абстракций биста
Аноним 16/08/20 Вск 11:56:54 1778618247
>>1778577
А что для тебя верх инженерной мысли? Или если человеку нравится эмбедщина, то это зашквар?
Аноним 16/08/20 Вск 12:21:25 1778630248
>>1778618
Какая эмбедщина, поехавший? Там залупа, уровня вывести хеловорд в консоли. Даже самый отбитый нуфаня таким хвастаться не будет, а ардуинщики хвастаются
Аноним 16/08/20 Вск 12:29:42 1778638249
>>1778630
ну а я говорил про эмбедщину. Высрать какой-то кастомный дрон или что-то наподобие. Ты ответил на предыдущий пост в духе "нахуя пилить хеллоуворлды на микроконтроллерах и кичиться этим", но я изначально и не говорил про хэллоуворлды, а про что-то куда более сложное.
Аноним 16/08/20 Вск 13:47:44 1778678250
Аноним 16/08/20 Вск 14:13:34 1778701251
>>1778630>>1778577
> прочитать входа, обработать, выплюнуть выхода
> Там залупа, уровня вывести хеловорд в консоли. Даже самый отбитый нуфаня таким хвастаться не будет
Чем твой пример отличается например от обработки данных рсдб-наблюдений? Там тоже "прочитать входа, обработать, выплюнуть выхода" -- а про это написано тысячи статей, и посоны 40 лет ебались с проблемами оцифровки и передачи информации, с корреляцией данных и прочее.
Сейчас эти проблемы не стоят так остро, записать на винчестеры и передать пару сотен гигабайт по инторнету, а потом прокоррелировать на видеокарточках не что-то сложное, когда-то это был знатный геморрой. Приходилось строить суперкомплектары и диски самолетами пересылать.
Аноним 16/08/20 Вск 14:46:27 1778715252
Не нашёл отдельный загон для Qt, но надеюсь тут кто нибудь есть.У меня в проекте помимо главного класса, с ui, есть вспомогательный, который обсчитывает данные но сам виджеты не обновляет. Мне нужно выводить на экран статистику по выполнению функций вспомогательного класса. Как это можно сделать? Пробовал сделать ui публичным и подключить его ко второму классу, но чёт не вышло. Ещё знаю о существовании сигналов, но они вроде как работают между виджетами, а мой вспомогательный класс не подключён ни к какому виджету.
Аноним 16/08/20 Вск 14:59:00 1778721253
>>1778715
> работают между виджетами
Они между чем угодно, нужно только от QObject отнаследоваться. Как сделать есть разные варианты. В классической MVC ты создаешь модель со статистикой (туда записываются данные которые нужно отображать). Вспомогательный класс обновляет инфу в модели. Контроллер время от времени (или по сигналу от вспомогательного класса что данные обновились) берет инфу из модели и отправляет ее на отображение в виджет (сигналом).
Аноним 16/08/20 Вск 15:18:12 1778731254
>>1778701
Ты издеваешься, блядь, что ли? Ты понимаешь, что ты несравнимое сравниваешь? Абстракционист, хуев. Так и функция любая у тебя прочитать вход, обработать, выплюнуть ретурн.
Аноним 16/08/20 Вск 15:20:09 1778733255
Чем кресты от шарпа отличаются, кроме указателей?
Аноним 16/08/20 Вск 15:33:53 1778743256
Как в серверописание вкатиться?
Аноним 16/08/20 Вск 15:37:36 1778752257
>>1778743
Садишься и пишешь свой сервер
Аноним 16/08/20 Вск 15:55:42 1778775258
>>1778733
Тем, что компилятся в относительно компактный нативный код и имеют темплейты (нет, дженерики далеки от темплейтов).

Хорошо написанный код на с++ будет всегда быстрее хорошо написанного кода на сишарпе (тем не менее, суперхуевый код на с++ может быть медленнее кода на шарпе), именно поэтому в хуйлоудах предпочтительнее С++, а не шарп. С++ дает гораздо, ГОРАЗДО больше контроля над программой и над тем, какой машинный код выплюнет компиль.
Аноним 16/08/20 Вск 16:09:34 1778791259
>>1778752
Литературу какую почитать чтобы знать с чего начать?
Аноним 16/08/20 Вск 16:10:06 1778792260
>>1778733
Это блять 2 абсолютно разных по парадигмам и идеям языка.
Аноним 16/08/20 Вск 16:17:37 1778795261
>>1778792
Ой, да не пизди ка давай. То что в шарпе обязательно классы хуячить, а в крестах можно без них это хуйня из под коня.
Аноним 16/08/20 Вск 16:48:08 1778809262
>>1778733

C++
- Сверхпростой интероп с сишкой и сишными либами.

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

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

- нативный машкод вместо байткода.

- нет нормальной рефлексии

> кроме указателей

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




Аноним 16/08/20 Вск 17:11:55 1778835263
10661421.jpg 74Кб, 650x493
650x493
>>1778809
>2020
>сишка и сишные лабы
Аноним 16/08/20 Вск 17:12:53 1778836264
>>1778791
Неужели никто не писал сервер на бусте?
Аноним 16/08/20 Вск 17:13:28 1778837265
>>1778809
>Кстати я вижу ты знаток шарпа. Да будет тебе известно, там есть указатели.
Ни разу не видел, чтобы их кто то где то использовал, тогда как на крестах какой код не возьми, все указателями обмазываются где надо и где не надо
Аноним 16/08/20 Вск 17:22:59 1778842266
>>1778835
>2020
>думать, что есть жизнь за пределами браузера

>>1778837
Потому что на шарпе пишут как на жабе. Когда завезут функции, небось тоже никто их юзать не будет.
Аноним 16/08/20 Вск 17:29:56 1778846267
>>1778842
>Когда завезут функции, небось тоже никто их юзать не будет.
Ага, прямо как на ооп в крестах, дали им, дебилам, классы, так они все равно без них хуярят
Аноним 16/08/20 Вск 17:39:51 1778848268
>>1778842
Функции в шарпе с самого первого дня же. Или ты про что?
Аноним 16/08/20 Вск 17:43:55 1778850269
>>1778835
> сишка

Лингва франка системного программирования. Чё не нравится?
Аноним 16/08/20 Вск 17:54:18 1778853270
>>1778848
Я про функции. Не методы, а именно функции. Вне классов.
Аноним 16/08/20 Вск 17:59:58 1778856271
>>1778853
И в чём от них смысл?
Аноним 16/08/20 Вск 18:08:10 1778862272
>>1778856
Не нужно будет создавать классы из одного-двух статик методов. Классы будут использоваться по прямому ООП-назначению, а не в качестве модулей.
Но это тема отдельного срача.
Аноним 16/08/20 Вск 18:12:10 1778866273
>>1778862
А на хуй бы не пошел?
Раз ты пишешь классы из одного двух статик методов, то ты чего то в архитектуре нахуярил из жопы
Аноним 16/08/20 Вск 18:15:25 1778867274
Аноним 16/08/20 Вск 19:50:42 1778922275
image.png 38Кб, 753x426
753x426
Сап. Может тут есть аноны, прошаренные в QtQuick?
Есть изображение, которое генерируется из нескольких картинок. Генерирую я это в QQuickItem::updatePaintNode.
Сейчас нужно в эту же картинку добавить что-то типа DropShadow.
Так вот вопрос, могу ли я в одном updatePaintNode нагенерировать кучу QSGNode,
а потом засунуть в другую ноду, где будет написан мой кастомный материал с нужным мне шейдером?

Чтоб было понятнее, на скрине псевдокод
Аноним 16/08/20 Вск 21:41:48 1778999276
Хочу заделать для портфолио аналог какого-нибудь спотифая. Какие подводные?
Аноним 16/08/20 Вск 22:38:12 1779028277
Может кто обьяснить как вкатиться в эту хуйню?
Аноним 16/08/20 Вск 22:48:45 1779033278
>>1779028
Оч сложна
Качаешь пару талмудов и внимательно, методично их читаешь, попутно выполняя все примеры и дохуя гугля. И может через несколько лет что да выйдет.
Аноним 16/08/20 Вск 23:16:56 1779047279
>>1779028
Просто учишь, лол.
И параллельно пишешь код, начиная с говна на уровне хэллоуворлда и lab1.cpp, постепенно повышая уровень.
Аноним 17/08/20 Пнд 00:01:03 1779078280
>>1779028
Лушче всего вкатываться после сей. Подсле ЖС сложновато будет.
Аноним 17/08/20 Пнд 00:08:35 1779083281
>>1779078
> после сей
Чтобы писать на си с классами.
Аноним 17/08/20 Пнд 00:09:30 1779084282
Аноним 17/08/20 Пнд 00:10:05 1779085283
Аноним 17/08/20 Пнд 00:18:34 1779086284
Подскажите программы, которые пригодятся в разработке сервера. Например для того чтобы отправлять пакеты с заголовками записанными.
Аноним 17/08/20 Пнд 00:20:37 1779087285
>>1778618
реализация вытесняющей многозадачности в ос общего назначения, например

Аноним 17/08/20 Пнд 00:20:51 1779088286
>>1779086
чего блядь

>>1779028
Читаешь книги, пишешь код, идешь на собеседование. Что еще ты ожидаешь услышать?

>>1778999
Никаких, делай
Аноним 17/08/20 Пнд 00:22:31 1779089287
Аноним 17/08/20 Пнд 00:24:46 1779090288
>>1779088
Например клиент должен серверу отправить запрос на соединение. Там должны быть заполнены заголовки. Я же не буду вручную их заполнять, вычислять и отправлять
Аноним 17/08/20 Пнд 00:29:30 1779092289
>>1779090
если ты про http сервер (раз говоришь про заголовки) - их дохуя и больше. Всякие pistache, crow, и тд. Если про клиента - то курл все сделает за тебя. В че вопрос то?
Аноним 17/08/20 Пнд 00:30:49 1779093290
>>1779092
Чтобы тестировать сервер нужно ему отправлять всякие запросы. Ну вопрос в программе, которая будет это делать.
Аноним 17/08/20 Пнд 00:32:06 1779094291
Это нормально, что при подключении буста вывалилось 134 предупреждения?
Аноним 17/08/20 Пнд 07:06:48 1779149292
Йоп, анон посоветуй хороший гуй для пэт-проекта ? Раньше сидел на Qt, но сейчас после переката на новое железо просто лень катить его заново, плюс, хотелось бы знать, есть ли вообще что-то готовое и хорошее, по возможности лёгкое ?
Сам поискал, наткнулся на JUCE, переплевался с объявления точки входа в программу, дропнул к чёрту, моя нежная душа не выдержала, сейчас ещё смотрю на Dear ImGui, пока лучшее что нашел
Аноним 17/08/20 Пнд 07:07:32 1779150293
>>1779094
Конечно, а что ты хотел ? Оно же на божьей помощи работает
нет
Аноним 17/08/20 Пнд 07:09:37 1779151294
>>1779150
но вообще, крутые парни не обращают внимания на варнинги
Аноним 17/08/20 Пнд 08:39:05 1779165295
Аноним 17/08/20 Пнд 08:49:17 1779171296
Аноним 17/08/20 Пнд 09:13:08 1779181297
>>1779165
Тут на вопрос ответили
>>1779171
Спасибо, анон
//Тут кстати, пока искал примеры как оно выглядит, наткнулся вроде-как на адекватную статью, мб кому пригодится, правда уже немного старая
https://philippegroarke.com/posts/2018/c++_ui_solutions/
Аноним 17/08/20 Пнд 09:14:32 1779183298
Аноним 17/08/20 Пнд 09:25:14 1779184299
>>1779181
Copperspice - это же переодетый Qt
Аноним 17/08/20 Пнд 09:52:26 1779190300
700.jpg 29Кб, 300x303
300x303
псс, парень, я слышал, тебе нужен хороший гуй
Аноним 17/08/20 Пнд 09:59:00 1779193301
>>1779149
Что тебе ОБЪЕКТИВНО мешает остаться на QT и не ебать мозги ни себе, ни остальным?
>по возможности лёгкое
У кутей чуть ли не идеальный баланс между навороченностью и легковесностью, хз че ты мнёшься.
Аноним 17/08/20 Пнд 10:21:38 1779211302
>>1779190
На винде не сидим, так что... Можно так же, только с gtk ?
>>1779193
Хочу посмотреть на что-то новое, да ну и как бэ, понятно, что сейчас куда не пойдёшь, на гуй тянут qt, но всё же животный интерес надо удовлетворять иногда, в общем, просто любопытство по хорошему
Аноним 17/08/20 Пнд 10:29:14 1779219303
>>1779211
А, ну раз чисто балду погонять и удовлетворить простой интерес, то тупо любой, здесь уже писали некоторые.

Только вот в итоге все равно QT будешь прикручивать :-)
Аноним 17/08/20 Пнд 10:34:56 1779225304
>>1779165
>Какой стэк,
Любой, этож C++, это тебе не JS, где ты отошёл от браузера на миллиметр и сосёшь.
>какие проекты делал?
Гейдев, Эмбедед, микроконтроллеры, 3d графика, openGL, картография, навигация по GPS + Glonass, работа с электроникой типа ардуино итд, базы данных.

Пригласили в фирму для разработки карт.
Канада - разработка игорей.
Вообще не стоит слушать дебилов которые говорят о мёртвости того или иного языка. Я 20 лет в IT и 15 в программировании. И так говорят вообще обо всех языках на свете.
Примеры ниже
PHP - вообще говно которое вот вот загнётся (15 лет слышу).
C - загнулся в 90 (при этом самые ценные вакансии как раз на нём почему-то)
Java - вот вот загнётся (есть же более производительные языки) (слышу об этом лет 15)
Kotlin - Язык одного стартапа джетбрэйнс, проживёт лет 5 максимум (лол)
JS - заменят на %new_lang_name% (меняют лет 13)
Python - тормозное говно без задач, сдохнет везде кроме униварситетов (8 лет читаю как он подохнет)
C++ - помер лет пять назад (почему-то мне сыпятся самые крутые вакансии на нём и сишке лет 10 как, дауны всё кроме стека с микроконтролерами не могут ничего найти)
Даже кобол живой. А вы сосачерам верите, лол.
Аноним 17/08/20 Пнд 10:37:17 1779228305
>>1779225
>стека с микроконтролерами
Будто это что-то плохое
Аноним 17/08/20 Пнд 10:37:18 1779229306
>>1779225
Вообще у меня довольно крутой бэк по теме картографии, сам разработал прогу которая делает карту местности собирая снимки с дронов. Видимо поэтому меня и пригласили. Хотя это не проект даже, а хобби скорее.

Но да, если ты книжку прочитал да лабу написал, тебя никто в своём уме хантить не будет. В cpp это так не работает.
Аноним 17/08/20 Пнд 10:38:17 1779230307
>>1779228
Это плохо, когда ты концентрируешься ТОЛЬКО на одном стеке, забывая обо всём остальном. В результате ты видишь только узкую прослойку вакансий, которая не всегда оплачивается адекватно.
Аноним 17/08/20 Пнд 10:39:12 1779233308
>>1779225
>>1779229
Как дорасти до твоего уровня? Только без абстракции вроде: читать, практиковаться. Тоже хочу в Канаду, бля. Учу сейчас C, докачаю до продвинутого уровня и перейду на плюсы.
Аноним 17/08/20 Пнд 10:42:00 1779239309
>>1779233
Если ты тот пчел, который вкатывается с 2016 года и до сих пор не умеет возвращать массив из функции - сори, бро, никак. Это не твое.

А если ты не тот чел, то просто учи + стругай пет-проекты, чем больше тем лучше, постепенно увеличивая сложность.
Аноним 17/08/20 Пнд 10:43:06 1779241310
>>1779230
я вот лоу-лвл червь, люблю прошивки и драйвера. Что скажешь по этому поводу?
Пысы: самый хай-лвл проект, который я разрабатывал, была небольшая виртуальная машина, это чтоб ты понимал степень моей байтоёбности)
Аноним 17/08/20 Пнд 10:44:38 1779244311
>>1779239
Вкатываюсь с июля 2020 года. Буду учиться + стругать пет-проекты постепенно увеличивая сложность. Спс.
Аноним 17/08/20 Пнд 10:44:50 1779246312
>>1779233
Тут я должен бы какую-нибудь шаблонную фразу кинуть, типа Учись, читай. Но на деле это мало кому помогает. В реальности надо не просто любить язык и хотеть на нём программировать, а любить решение задачи. Тот же проект с дронами нахрен никому был не нужен когда я начинал. И выглядело всё со стороны как какой-то задрот тратит кучу времени на то, что и так имеет аналоги в том же гугле. Потом пришли фирмы чтобы его у себя виспользовать.
Думаю если у тебя возникает какое-то чувство страсти и хоть какого-то удовольствия - ты в любом случае окажешься в Канаде, калифорнии, на пляжу с удалёнкой и коктейлем в руке.
Верю что всё у тебя получится. В этот тред просто так не заходят всё таки.
Аноним 17/08/20 Пнд 10:45:49 1779248313
>>1779246
От души, анон. Ушёл развиваться дальше.
Аноним 17/08/20 Пнд 10:46:07 1779249314
Аноним 17/08/20 Пнд 10:51:14 1779259315
>>1779248
Кстати один интересный совет я всё же могу дать. Светись на форумах, телеге, там где обитают крутые спецы. Задавай вопросы, ищи решения. Меня в основном так и находят.
Аноним 17/08/20 Пнд 11:02:07 1779275316
Аноним 17/08/20 Пнд 11:04:41 1779280317
>>1779259
Тибо стака и реддита(шутка)?
Аноним 17/08/20 Пнд 11:08:52 1779286318
>>1779275
хиккам в 2к20 сложно без софт скиллз, даже в погромировании. Тебе будет гораздо сложнее, порой на грани невозможного, добиться успеха, нежели более социализированным собратьям.
Аноним 17/08/20 Пнд 11:11:57 1779294319
Аноним 17/08/20 Пнд 11:27:22 1779319320
>>1779275
Ковид же. Я уже 6 месяцев коллег не видел, всё по удалёнке. Думаю хиккам самое оно.
Аноним 17/08/20 Пнд 11:29:01 1779322321
>>1779286
Не сказал бы. С одной стороны хорошо когда подован вопросы задаёт. С другой стороны зачем мне долбоёб который задал 9000 вопросов и фактически я за него проект сделал, в то время как тот социоблядский мудак неделями на кофебрэйках. Тут нужна середина.
Аноним 17/08/20 Пнд 12:22:44 1779358322
>>1779319
Я даже работу успел удачно сменить, в одном офисе был "по удалёнке", теперь в другом.
Пока что так и продолжаем.
Аноним 17/08/20 Пнд 13:26:22 1779416323
>>1779225
>Канада - разработка игорей.
Юбисофт? Биотвари?
Аноним 17/08/20 Пнд 13:59:45 1779451324
Аноним 17/08/20 Пнд 14:10:24 1779460325
>>1778638
>Высрать какой-то кастомный дрон или что-то наподобие

Какой-то кастомный дрон уже лет 10 как высрали:

https://github.com/ArduPilot/ardupilot

https://github.com/iNavFlight/inav

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



Аноним 17/08/20 Пнд 14:14:10 1779461326
>>1779460
С таким подходом любой пет-проект - это гиблая затея, ибо за тебя уже давно все написали. А если ты и пишешь что-то на уровне стартапа, то это 1 на миллион, и то не факт, что кому-то будет нужно и выстрелит.
Тем не менее, людям серьезные пет-проекты помогают устроиться на работу, и речь далеко не про хэллоуворлды и мигания диодами. Ты троллишь тупостью или как?
Аноним 17/08/20 Пнд 14:24:45 1779465327
>>1779461

Всё дело в том, что мода на детские радиоконструкторы из отладочных плат каким-то образом перелезла за пределы школьных радиокружков в область ВО ВОТ СЮДА ВОЙТИ ВАЙТИ и на основе детских радиоконструкторов дебичи всерьез думают делать какие-то стартапы.



Аноним 17/08/20 Пнд 14:39:42 1779471328
>>1779465
Блять, да речи не было про хэлоуворлды, алло
Речь была про более серьезные проекты, которые требуют куда более углубленных знаний в программировании и электронике. Хули ты прицепился вообще со своими миганиями диодов, шиз?
Аноним 17/08/20 Пнд 18:20:11 1779712329
Поясните, можно ли скомпилить плюсовой код так, чтобы он без ос работал? Нахуя мне нужна ос, которая жрет кучу ресурсов, если можно просто запустить программу без ос.
Аноним 17/08/20 Пнд 18:34:51 1779729330
>>1779712
Всё можно. Погугли, как bootloader-ы элементарные писать, дальше понятно станет.
Аноним 17/08/20 Пнд 19:02:32 1779746331
>>1779712
Freestanding код называется
Аноним 17/08/20 Пнд 19:06:36 1779749332
>>1779746
>>1779729
А можно любую программу без особых усилий такой сделать или как?
Аноним 17/08/20 Пнд 19:09:29 1779753333
>>1779749
Ну если у нее не будет dll всяких. Обычно же у программы куча системных вызовов. Можно заставить компилятор скомпилировать под голую железку код?
Аноним 17/08/20 Пнд 19:11:03 1779755334
>>1779749
Без усилий - нет. Только разве хэллоуворлды запускать.
ОС дает тебе абстракцию над железом и не дает тебе фривольно пакостить. А дебажить bare-metal код ты вообще ебанешься, особенно если он на обычном настольном компе, где даже UART порта нет.

Мой тебе совет - хочешь заниматься подобной хуйней, покупай любой SoC типа малинки или биглбона или же сразу мкк типа STM32 (для bare-metal лучше второй варик).
Аноним 17/08/20 Пнд 19:12:46 1779756335
>>1779753
Ладно. Я так подумал, что ебала еще та. Огромное колличество функций ос, всякие платформозависимые штуки типо аллокации, потоков. + вывод нужен. Было бы это просто было бы круче.
Аноним 17/08/20 Пнд 19:15:20 1779757336
>>1779755
> Мой тебе совет - хочешь заниматься подобной хуйней, покупай любой SoC типа малинки или биглбона или же сразу мкк типа STM32 (для bare-metal лучше второй варик).
Да не. Просто вопрос из интереса. Типо можно ли так всякие требовательные программы запускать, чтобы все ресурсы компьютера были нацелены на исполнение программы. А то винда как то много ресурсов потребляет.
Аноним 17/08/20 Пнд 19:32:28 1779767337
>>1779757
>винда
Пересядь с зондированного говна на операционную систему (Линукс), например, там ты так закастомизироваться сможешь, что все ядро вместе с гуем на стартапе будут жрать по 100-150 MB вместо 3 GB в винде. Тащемта, все суперкомпьютеры мира на Линуксе и крутятся, чтобы выжимать все соки из железа.

А вот полностью отказываться от ОС - хуевая затея, ибо ее абстракции нужны для того, чтобы оверолл деплой даже простых программ не занимал 3 десятилетия. В 2к20 году даже на кастрированных железках крутится какая-нибудь FreeRTOS, даже в автономных машинах и джетах. Почему? Потому что если у тебя нет ОС, то у тебя нет планировщика, а значит если ты захочешь параллельно запустить 2 процесса - ты соснешь хуйца с проглотом. Гонять электроны по проводам как 60ых не варик, нужна какая-никакая ОС в 99% случаев.
Аноним 17/08/20 Пнд 20:17:00 1779805338
>>1779767
Красноглазый даун даже уточнил, какой высер является в его секте операционной системой.
Аноним 17/08/20 Пнд 20:19:47 1779809339
Обновил gcc mingw(версия около 7 на 10.2.0) и перестал работать примерно такой код:

template<bool b___>
struct S1
{
constexpr bool is_some_bool(void){ return b___; };
};

struct S2
{
};

template<typename x___> concept if_and_is_some_bool = requires(x___&& x) { new int [x.is_some_bool() - 1]; };

if_and_is_some_bool<S1<true >> ----> true
if_and_is_some_bool<S1<false>> ----> false
if_and_is_some_bool<S2 > ----> false

То есть, сперва узнавал есть ли вообще метод "is_some_bool", затем узнавал его constexpr значение.
Изменил на такой:

template<typename x___> concept if_and_is_some_bool = ((x___⚹)0)->is_some_bool();.

Но тут разыменование(без доступа к чужой памяти) нуля как макросе offsetof, которое хоть вроде как и работает в
большинстве случаев, но всё же UB. Вопрос, есть ли способ правильнее?
Аноним 17/08/20 Пнд 21:07:40 1779860340
>>1779767
> Пересядь с зондированного говна на операционную систему (Линукс), например, там ты так закастомизироваться сможешь, что все ядро вместе с гуем на стартапе будут жрать по 100-150 MB вместо 3 GB в винде.
Найс манямирок. Линупс с голым ядром 5.0+ без гуя жрет минимум 120, без systemd можно до 90 ушакалить.
А ты в курсе сколько жрет Windows Server 2019 Core? 140 мб. С гуем, правда без рабочего стола.
Аноним 17/08/20 Пнд 21:16:55 1779873341
>>1779860
Эх, щас бы в 2020 мегабайты озу не в жава треде посчитать...
Аноним 17/08/20 Пнд 21:18:22 1779878342
Аноним 17/08/20 Пнд 21:24:26 1779887343
Аноним 17/08/20 Пнд 21:39:32 1779897344
Посоветуйте чето редкое необычное написать гуй, под вин/Линукс пох но желательно ленупс
Аноним 17/08/20 Пнд 21:54:03 1779905345
Аноним 17/08/20 Пнд 22:33:57 1779933346
Аноны, в компаниях, где производят железо, те, кто производят железо, они и пишут на них прошивки и драйвера? Или для этого есть отдельные софтвер-челики?
Аноним 17/08/20 Пнд 23:05:50 1779961347
Расскажите как происходит разработка для винды под линуксом? Вот допустим прилетает мне на фрилансе задание сделать гуишное приложение на Винду. Как я буду это делать? Только Virtualbox или есть ещё варианты?
Аноним 17/08/20 Пнд 23:08:14 1779962348
>>1779933
Драйверисты и железячники - это не пересекающиеся скиллсеты

>>1779961
Пишешь на кутях @ кросскомпилируешь.
Аноним 17/08/20 Пнд 23:12:27 1779968349
>>1779962
>кросскомпилируешь
Неужто всё так просто? А что по либам виндузятным? И как тестить в любом случае?
Аноним 17/08/20 Пнд 23:24:50 1779978350
>>1779968
Ну винда в виртуалбоксе будет нужна, да. Я к тому, что никакого виндо-специфик кода или виндо-специфик хуйни не будет.
Аноним 17/08/20 Пнд 23:36:48 1779989351
image.png 4Кб, 571x63
571x63
Че это такое?
Аноним 17/08/20 Пнд 23:53:11 1780003352
>>1779961
Просто не используй линуксовый API во время разработки, а если речь о гуе - QT - кроссплатформенная либа, которая абстрагирует от тебя надобность думать на какой ОС ты пишешь код.
Если в коде должны быть winAPI вызовы помимо всего прочего - поднимай виртуалку и дебажь свою софтину там.
Аноним 18/08/20 Втр 00:01:20 1780007353
Аноним 18/08/20 Втр 00:12:04 1780016354
>>1780007
тем, что уже на 300 соединениях ты охуеешь
Аноним 18/08/20 Втр 00:12:55 1780018355
Аноним 18/08/20 Втр 00:13:17 1780020356
Аноним 18/08/20 Втр 00:17:31 1780022357
Аноним 18/08/20 Втр 00:20:42 1780025358
>>1780022
А асинхронный код буста будет сам этим управлять, не плодя треды? Сам между соединениями переключаться?
Аноним 18/08/20 Втр 00:20:54 1780026359
>>1780018
Тем, что количество потоков, которая твоя машина может исполнять ДЕЙСТВИТЕЛЬНО параллельно, ограничена спекой твоего процессора.
Формула такова: core per socket * threads per core = количество потоков, которые твой процессор может исполнять параллельно. Превышая это число, планировщик начинает активно дрочить заниматься context switch'ем и все клиенты начинают на пару с тобой потихоньку сосать хуи в постоянно усиливающихся лагах.
Аноним 18/08/20 Втр 00:27:19 1780029360
>>1780025
да, у тебя дохера соединений на каждом io_context (или чем-то таком), один контекст на тред, и дальше сам контекст все в рамках одного треда шаманит.
Аноним 18/08/20 Втр 00:30:57 1780032361
Screenshot20200[...].jpg 246Кб, 720x1280
720x1280
>>1780029
>>1780026
Спасибо большое. Можете еще пояснить за некоторые различия в серверах. Ну просто синхронный и асинхронный понятно. Быстрый я так понимаю ебейше оптимизирован. Туда я лезть пока не буду. А вот 3 и 4 сверху это че?
Аноним 18/08/20 Втр 00:33:57 1780035362
>>1780032
Это вообще не трогай, это пиздец.

Давай так, делай пока синхронно, как сделаешь идею - начинай переезжать на асинк. Сразу асинк раскуривать не рекомендую, он лютейший. А корутины так и вообще пиздец.
Аноним 18/08/20 Втр 00:38:30 1780039363
>>1780035
Ладно. Спасибо за совет. Так а вообще че это? И сильно ли асинк обычный сосет у быстрого?
Аноним 18/08/20 Втр 01:46:06 1780088364
>>1780035
КОРУТИНЫ СИЛА
СКАЖИ КОРУТИНЫ КРУТО
Аноним 18/08/20 Втр 01:47:48 1780090365
>>1780039
Круто, но я не раскурил их пока
Аноним 18/08/20 Втр 07:51:58 1780150366
>>1779259
Кстати, хороший колл, где социум плюсов искать ? Просто уже сталкивался с тем, что пэт проекты дохнут как мухи на то они и пэты, но хотелось бы знать места, где можно найти челов, с которыми интересно и приятно будет кооперировать, может и пэты так быстро убиваться не будут...
Аноним 18/08/20 Втр 07:59:11 1780151367
>>1779887
Чего другое? Заменяешь свой нолик на declval и вперёд
Аноним 18/08/20 Втр 08:01:39 1780152368
>>1779989
Там вполне себе написано. Ты пытаешься использовать winapi без указания версии винды, для которой собираешь. Обычно студия эти макросы сама определяет в файле targetver.h при создании проекта, но у тебя что-то видимо пошло не так
Аноним 18/08/20 Втр 09:22:15 1780180369
Джавист, хочу в GD, но нужны плюсы, какую литературу порекомендуете? В университете лабы решал разве что на нем
Аноним 18/08/20 Втр 09:41:10 1780189370
>>1780180
>гд
лучше конечно этого не делать, но дрочи крестовые абстракции - веткоры, дженерики, темплейты. Почитай про компайл-тайм и рантайм специфику крестов. Какие-то популярные части буста. Короче любая книжка по крестам для НЕ начинающих тебе подойдет
Аноним 18/08/20 Втр 09:43:13 1780192371
>>1780151
Можешь написать как? Так не компилируется: .... = std::declval<x___>().is_S();
Аноним 18/08/20 Втр 09:56:51 1780206372
>>1780180
В шапке всё есть, но раз ты такие вопросы задаешь, то сразу огорчу тебя - ты не преодолел минимальный порог входа по IQ для того чтобы освоить С++.
Аноним 18/08/20 Втр 09:59:22 1780210373
>>1780206
Ну, что и ожидалось для джависта
Аноним 18/08/20 Втр 10:52:09 1780261374
>>1780035
Как вообще сервер может работать на корутинах? Корутины же работают в одном потоке. Вот допустим приходит запрос от клиента, в потоке разбора входящих запросов запускается корутина которая обрабатывает конкретный запрос и тем самым блокирует обработку новых запросов? В чем фишка то я не совсем понимаю.
Аноним 18/08/20 Втр 11:40:47 1780303375
>>1780189
почему лучше этого не делать?
Аноним 18/08/20 Втр 11:53:40 1780320376
>>1780261
Я вижу это так. Вот как в потоке разбора входящих запросов получил клиента, отправляешь обработку в отдельный поток, если хочешь, и тут же ожидаешь следующего клиента. Наверное, в примерах просто в один момент времени только один клиент обрабатывается. С корутинами это не связано, корутины это детали реализации.
Аноним 18/08/20 Втр 12:12:16 1780338377
>>1775527 (OP)
Есть ли гайд по компиляции? Makefile-ы вот это вот всё
Аноним 18/08/20 Втр 12:16:02 1780344378
>>1780320
Ну вот мне и интересно на каком этапе там применяются корутины и как они позволяют оптимизировать работу веб-сервера.
Аноним 18/08/20 Втр 12:29:05 1780357379
>>1779962
>Драйверисты и железячники - это не пересекающиеся скиллсеты
К моему большому сожалению мне приходилось видеть код, который пишут железячники.
Аноним 18/08/20 Втр 14:16:36 1780484380
Аноним 18/08/20 Втр 20:59:41 1780835381
>>1780261
Корутины это кооперативная многозадачность, со всеми её плюсами и минусами. То есть при обработке сессии у тебя будет рассыпана куча точек переключения на другие корутины. Во всяких эрлангах/го они натыканы ВЕЗДЕ. Плюсы: если раньше ты запрос моделировал всякими коллбеками и/или стейт машинами, то с корутинами всё будет просто и линейно, весь стейт компилятор выведет сам. Минусы: если нет точек переключения, то хрен тебе, а не многозадачность.
Аноним 18/08/20 Втр 21:12:28 1780848382
>>1780357
Уверен? Желещячники пишут на всяких vhdl, ну или мы про разных желещячников.
Аноним 18/08/20 Втр 21:13:40 1780850383
>>1780835
Получается что для эффективной работы корутин придется писать конструкции типо таки?
BigDbRequestAsync();
yeild();
ReadFIleAsync();
yeild();
...
yeild();
...
Аноним 18/08/20 Втр 21:18:49 1780855384
>>1780850
Не, как раз этот yield будет внутри каждой асинхронной операции. Пока корутина ожидает результата BigDbRequest, экзекутор выберет другую корутину и начнёт её исполнять. А вот если у тебя что-то только жрущее цпу секунд на двадцать, тогда да, без yield все остальные корутины заглохнут. С вытесняющей многозадачностью это же происходит автоматически.
Аноним 18/08/20 Втр 22:21:57 1780944385
Qt живой?
Аноним 18/08/20 Втр 23:37:35 1781000386
>>1780835
сопрограммы нужны чтобы красиво решать пару специализированных алгоритмов
но, по видимому нас ждет очередная сильвербуллет фича которой будут решать любые задачи по парралельной обработке данных, пока коммьюнити языка не наиграеться с этими корутинами
Аноним 18/08/20 Втр 23:39:42 1781005387
>>1780944
Это единственное, что живо.
Аноним 19/08/20 Срд 00:01:55 1781015388
>>1781005
Хз, у них там какие-то проблемы с финансами и мутки с лицензиями
Аноним 19/08/20 Срд 00:10:21 1781020389
>>1780944
Если ты угараешь по десктопопараше то рекомендую шарпы раскуривать. С неткором пятым можно будет кроссплатформенный гуй делать.
Аноним 19/08/20 Срд 00:29:09 1781029390
>>1781020
>будет
Вся суть шарпа.
>кроссплатформенный
Здесь почти весь тред - идейные виндобляди, у которых даже сервера на винде, лол.
Аноним 19/08/20 Срд 00:51:08 1781051391
Аноним 19/08/20 Срд 01:24:02 1781073392
>>1781029
> Вся суть шарпа.
Уже в превью есть.

> Здесь почти весь тред - идейные виндобляди, у которых даже сервера на винде, лол.
Ну вдруг тебе зачем-то потребовался гуй под прыщеось вместо божественной САСНОЛЬКИ
Аноним 19/08/20 Срд 01:33:47 1781083393
>>1781000
Что там? ЖС-макаки изобрели корутины, которые были в lua еще в 2003 ?
Аноним 19/08/20 Срд 01:40:48 1781087394
>>1781083
> ЖС макаки изобрели корутины
> 1960-е — 1970-е годы сопрограммы практиковались в некоторых высокоуровневых языках (Клу, Симула, Модула-2)
Аноним 19/08/20 Срд 01:43:40 1781089395
>>1781087
Эх, закрываем computer science, расходимся, всё уже открыто.
Аноним 19/08/20 Срд 01:44:23 1781090396
>>1781089
> Computer Science
> Тред где байты ебут
Аноним 19/08/20 Срд 01:50:25 1781095397
>>1781090
Ты чо, пёс?! Я знаю Венгерский алгоритм поиска максимального паросочетания минимального веса за O(N^3) !
Аноним 19/08/20 Срд 03:30:11 1781135398
какой же питон всратый пиздец просто я не могу
даже шаблонов не завезли
Аноним 19/08/20 Срд 03:46:21 1781141399
>>1781135
А что хочешь от скриптового языка для имбецилов?
Аноним 19/08/20 Срд 04:35:50 1781154400
>>1781141
безопасного полиморфизма
разве я о многом прошу?
Аноним 19/08/20 Срд 04:41:33 1781155401
>>1781154
Попробуй джаваскрит. Он настолько безопасен, что в нем можно делать вообще что угодно.
Аноним 19/08/20 Срд 09:32:37 1781228402
Объясните, как скомпилять https://github.com/qxmpp-project/qxmpp/tree/master/examples, если я скомпилировал и установил либу. Пробовал писать qmake, начинал компилировать и срало непонятными для меня ошибками.
Аноним 19/08/20 Срд 09:33:47 1781230403
>>1781135
> динамическая типизация
> шаблоны
нахуя? вся твоя беда в том, что ты пишешь не так, как надо.
Аноним 19/08/20 Срд 09:41:41 1781235404
>>1781135
Вали отсюда нахуй, пёс, со своей скриптопарашей для умственно отсталых школьников
Аноним 19/08/20 Срд 10:19:24 1781250405
>>1781135
>он не знает про typevars и Generic[T]
Хотя хрень полная тайп хинты в питоне, если честно
Аноним 19/08/20 Срд 11:04:29 1781292406
>>1781095
В школе расскажешь.
Аноним 19/08/20 Срд 11:18:24 1781304407
>>1781020
>Если ты угараешь по десктопопараше то рекомендую шарпы раскуривать.
Говно, qml после xaml как отдушина, несмотря на жопаскрипт.
Аноним 19/08/20 Срд 11:20:19 1781307408
>>1780848
Вот этот код на ёбаных шарпах примерно на верилог и был похож.
Аноним 19/08/20 Срд 11:38:42 1781332409
>>1780848
>Уверен? Желещячники пишут на всяких vhdl, ну или мы про разных желещячников.

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

Именно по этому там где можно прогать провода мышкой в гуе - стараются прогать провода мышкой в гуе.
Аноним 19/08/20 Срд 11:44:26 1781346410
>>1781135
Извинись немедленно.
Аноним 19/08/20 Срд 12:56:10 1781470411
zlQnc8A4BsQ.jpg 73Кб, 618x618
618x618
Аноним 19/08/20 Срд 13:37:26 1781542412
>>1781470
Где я говорил про драйвера? Там была хрень с COM портом, и железячник решил для себя написать утилиту на шарпах.
Аноним 19/08/20 Срд 14:57:45 1781683413
Пиздец с этой белорашской войной престолов проебал эпичный срач про опенгл.

Так вот, кто придумал эту блядскую семантику с включающим глобальным glBindHuita?

Почему, если у нас уже есть идентификатор, высраный с помощью glGenHuita не передавать его в последующие функции?

Особенно лоллирует клоунская магия когда что бы копировать из одной хуиты в другую нужно забиндить два буфера с правильными типами а потом такой НУЖНО ТЕПЕРЬ ДУНУТЬ ЕСЛИ НЕ ДУНУТЬ ТО МАГИИ НЕ ПРОИЗОЙДЕТ


glBindBuffer(GL_COPY_READ_BUFFER, vbo1);
glBindBuffer(GL_COPY_WRITE_BUFFER, vbo2);
glCopyBufferSubData(GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, 0, 0, 8 ⚹ sizeof(float));
Аноним 19/08/20 Срд 15:03:42 1781688414
>>1781683

Почему нельзя было сделать glCopyBufferSubData(vbo1, vbo2, 0, 0, 8 ⚹ sizeof(float))?

Ладно хуй с ним, анальная бинд-акробатика святое, нахуя если мы уже указали что первый буфер мы забиндили как рид а второй как врайт а потом типа такие, неее мы передумали, мы терь из врайта в рид будем копировать?

glCopyBufferSubData(GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, 0, 0, 8 ⚹ sizeof(float));
Аноним 19/08/20 Срд 15:14:17 1781708415
>>1781683

Я уже не говорю о главном.

Какого хуя я должен совершить UNDEFINED BEHAVIOUR что бы прихуярить входные параметры вершины к шейдеру?

GLintptr vertex_texcoord_offset = 3 sizeof(float);
GLintptr vertex_normal_offset = 5
sizeof(float);
GLintptr vertex_position_offset = 0 * sizeof(float);

glVertexAttribPointer(texcoord_attrib_index, 2, GL_FLOAT, false, vertex_stride, (GLvoid⚹)vertex_texcoord_offset);
glVertexAttribPointer(normal_attrib_index, 3, GL_FLOAT, false, vertex_stride, (GLvoid⚹)vertex_normal_offset);
glVertexAttribPointer(position_attrib_index, 3, GL_FLOAT, false, vertex_stride, (GLvoid⚹)vertex_position_offset);
Аноним 19/08/20 Срд 15:17:16 1781716416
>>1781708

Алё, кроносы-хуёносы,вы стандарт Си когда свое говноапи высирали, а точнее присерали новые функции поверх имеющихся, вы стандарт языка читали?

Пиздец, любую, АБСОЛЮТНО ЛЮБУЮ ПРОГУ С ОПЕНГЛ И ШЕЙДЕРАМИ ВЕСЕЛЫЙ КОМПИЛЯТОР МОЖЕТ ЗАЩЕКУ ОТХУЕСОСИТЬ.
Аноним 19/08/20 Срд 15:32:39 1781741417
>>1781716
В opengl 4.4, кажется, завезли bindless, ну, чтоб по айдишкам хуярить. Вообще, да, байндить всякую залупу -- такая мерзость шо пиздец. Ещё все вызовы, как я понимаю, завязаны под какой-то контекст, и без него не получится, например, гонять compute shader-ы. Зато после ебли с этим вот всем, vulkan кажется не монструозной перегруженной тварью, а самым логичным, прекрасным, тончайшим инструментом, которого тебе так не хватало.
Аноним 19/08/20 Срд 18:17:41 1782007418
Суп, продублирую вопрос из треда ньюфагов
Получил фидбэк по заданию, но чота местами не понимаю чего от меня хотят. Помогите разобраться.
https://ideone.com/4dkWRk
-Классы для чтения, классы для парсинга.
Почему не функции?
-Так же хорошо иметь объектную модель данных и ее стерилизовать в XML.
Это как?
Аноним 19/08/20 Срд 18:27:12 1782015419
Так, дурачок с гуями возвращается, первое, есть ли какой-то адекватный способ перенести в переменные пути переменные Qt ?
//debian, установил Qt c онлайн установщика, qtcreator etc встало, но прик в том, что терминал в ахуе с qmake, то есть, он знает, что оно есть, но где есть хызы
Аноним 19/08/20 Срд 18:49:58 1782057420
Немного тупой вопрос, но я крайне смущен, что вообще такое спрашиваю, но такой вопрос, есть функция которая говорит о том, что буфер потока ввода данных обновился ?
То есть, допустим, у меня есть определённое поведение, если пользователь ничего не вводит, но только, если чел ввёл в консоль что либо, то тогда поведение меняется. Логично предположить, что данный момент должен выглядеть примерно как
getline(cin, str);
if(str == "") {
default behavior;
} else {
extended behavior;
}
Но все мы понимаем, что в данном случае на каждую итерацию нужно будет прожимать ввод в консоль, чего мы крайне не хотим, собственно, есть ли функция/метод классса istream, который говорит о том, что ввод был нажат, и имеет смысл проверить что там вообще происходит ?
Аноним 19/08/20 Срд 19:14:01 1782077421
>>1782057
Это тебе напрямую к терминалу нужно обращаться
Аноним 19/08/20 Срд 19:43:28 1782094422
>>1782007
Классы для масштабируемости. Дрочи паттерны, функции по уровню дна находятся где-то в камне на дне.
Второй пункт не понял, лол, но наверное он про DOM говорит

мимошел ссылку не открывал
Аноним 19/08/20 Срд 19:44:49 1782096423
Аноним 19/08/20 Срд 19:49:42 1782101424
>>1782057
Не доконца ясно что тебе нужно, чекни std::istream::peek
Аноним 19/08/20 Срд 20:15:52 1782117425
>>1781708
Переходи на DX, там блэкджек и COM
Аноним 19/08/20 Срд 20:28:38 1782119426
>>1782057
Попробуйте "conio.h"! Conio.h помогает определять нажатия на клавиатуру с 1986 года. Спасибо что вы с нами.
Аноним 19/08/20 Срд 20:32:10 1782121427
>>1782119
Дешёвой хуйне -- дешёвая реклама.
Аноним 19/08/20 Срд 20:40:25 1782124428
>>1782096
себе на ебало ты сблевал, это код-стайл богов, а ты быдло :-)
Аноним 19/08/20 Срд 21:14:51 1782142429
>>1782057
По твоему другая функция не будет прожимать ввод каждый раз? Если не нужно парсить строку, оставь так.
Аноним 20/08/20 Чтв 07:02:48 1782331430
>>1781708

Засовывание числовой константы в указатель это ID. Было бы UB - Си бы пулей из системного проганья вылетел, там все построено на "указатель содержит адрес памяти"
Аноним 20/08/20 Чтв 10:40:44 1782446431
Аноним 20/08/20 Чтв 10:49:00 1782454432
>>1781228
По идее примеры должны были скомпилироваться вместе с либой. Может ты флаг забыл добавить?
Аноним 20/08/20 Чтв 11:06:29 1782465433
>>1782454
Я это понимаю.

Я хочу начать работать с либой, но не понимаю, как ее компилировать. Потому и спрашиваю, как скомпилять примеры с своим Make файлом.
Аноним 20/08/20 Чтв 11:27:53 1782492434
>>1782465
Как ты компилировал библиотку? Через корневой cmakelists? Там флаг для сборки примеров включён
Аноним 20/08/20 Чтв 11:45:50 1782522435
>>1782492
Я скомпилировал библиотеку и установил. Теперь ее хедеры лежат у меня в /urs/local/include/qxmpp.

Теперь я копирую екземплы с свою директорию (с редактированием #include) и хочу скомпилировать своим make файл, как свой проект. Каким образом мне это сделать?
Аноним 20/08/20 Чтв 11:50:10 1782526436
>>1782522
Еще раз, как скомпилировал? Ты использовал cmake? Есди да, то где-то в папке сборки должны лежать примеры собранные, потому что флаг для примеров включен в корневом cmakelists на гитхабе.

Аноним 20/08/20 Чтв 11:54:01 1782534437
>>1782522
Изучай cmakelists из папки с примерами.

target_link_libraries(${EXAMPLE_NAME} qxmpp)

Вот подключение qxmpp, используй его в своём cmakelists.
Аноним 20/08/20 Чтв 12:29:03 1782604438
image.png 8Кб, 573x93
573x93
Почему так блять? Почему val не становится равным 205?
Аноним 20/08/20 Чтв 12:41:20 1782621439
>>1782604
Потому что тебе нужен unsigned char.
Аноним 20/08/20 Чтв 13:15:50 1782669440
Аноним 20/08/20 Чтв 13:18:34 1782674441
15556159308800.png 103Кб, 736x736
736x736
Аноним 20/08/20 Чтв 13:24:20 1782677442
>>1782674
Настоящие пацаны пишут без фигурных скобок вообще, в иф/элс блоках должно быть по одному выражению. Если в коде внутри блока больше одного выражения, то код выносится в функцию или лямбду.
Аноним 20/08/20 Чтв 13:26:51 1782682443
>>1782677
А функция у тебя тоже без фигурных скобок?
Аноним 20/08/20 Чтв 13:33:12 1782688444
>>1782682
Ну тогда придётся прибегнуть к макросам
Аноним 20/08/20 Чтв 14:06:59 1782737445
>>1782674
Что кстати странно, читая джаву нормально воспринимаю такую конструкцию, а читая кресты никогда не могу найти этот ебучий елс когда так пишут
Аноним 20/08/20 Чтв 14:22:38 1782771446
>>1782621
c это у меня символ строки, дальше его необходимо преобразовать в без знаковый инт. При дебаге нашел вот такую непонятную хуйню. Почему оно так не очевидно кастует типы? Сначала в знаковый инт, и потом в беззнаковый. По моему самое очевидное это сначала кастануть в без знаковый чар и потом уже до инта поднимать...
Аноним 20/08/20 Чтв 14:28:33 1782776447
>>1782771
>самое очевидное это сначала кастануть в без знаковый чар и потом уже до инта поднимать
Тогда ты пришел бы с вопросом почему в этом случае x=255.

char c = -1;
int x = c;
Аноним 20/08/20 Чтв 14:46:40 1782800448
>>1782776
Так у тебя тут оба типа знаковые, соответственно нужна только одна операция повышения чара до инта(0xFF -> 0xFFFFFFFF). В ситуации когда нужно знаковый перевести в без знаковый с повышением порядок операций почему-то сначала повышение(0xFF -> 0xFFFFFFFF) и только потом каст в без знаковый(0xFFFFFFFF - > 0xFFFFFFFFu). Логичнее было бы сначала кастануть в без знаковый(0xFF -> 0xFFu) и потом повысить до инта(0xFFu -> 0x000000FFu).
Аноним 20/08/20 Чтв 15:47:39 1782896449
Пишу на плюсах в коде на бустере. Иногда когда нажимаю вырубить дебаггер он не выключается и вроде как висит в фоне (на самом деле не висит). Код показывает что дебаггер запущен, но активности нихуя не проявляет. Из-за этого не могу запустить исправленный код и приходится перезапускать прогу. Сталкивался кто с таким мб? Другие советы из интернетов не помогают.
Аноним 20/08/20 Чтв 16:11:44 1782952450
>>1782896
>Пишу на плюсах в коде на бустере
што?
Аноним 20/08/20 Чтв 16:41:08 1783030451
>>1782952
>на плюсах
C++
>в коде
Visual Studio Code
>на бустере
Debian 10
Аноним 20/08/20 Чтв 19:37:00 1783222452
image.png 20Кб, 456x335
456x335
https://pastebin.com/ureFgsWA

В общем, изучая ООП, пробую перегрузить операторы сложения и присваивания, по итогу что-то работает не так и получая Assertation Failed. ЧЯДНТ?
Аноним 20/08/20 Чтв 19:39:35 1783223453
>>1783222
Кучу сломал, ищи место, где накосячил. Для начала дебагер подруби и нажми повторить
Аноним 20/08/20 Чтв 19:50:37 1783228454
>>1783222

А в нормальном языке програмирвоания занимался бы делом, а не разбирал этот жидкий высер в кучу
Аноним 20/08/20 Чтв 20:19:47 1783259455
Аноним 20/08/20 Чтв 21:18:01 1783322456
Кто может мне нормально объяснить что реально не так с книгой "Кресты за 21 день" и откуда столько лулзов с неё? Ну вот прочитаю я её, база у меня уже есть. Дальше только бери задания да учись именно писать код. В чём я не прав?
Аноним 20/08/20 Чтв 22:04:07 1783366457
>>1783222
копирующий конструктор напиши
Аноним 20/08/20 Чтв 22:31:34 1783382458
>>1783322
Нюансов в крестах так много, что даже самые основы в такую книжку не впихнуть, и неважно, есть база или нет. И эти нюансы порой никакой практикой не покрыть. Можно годами писать лютое UB и даже не подозревать, что идёшь по минному полю, ведь на первый взгляд всё работает.
В других языках за незнание нюансов компилятор даёт тебе линейкой по рукам. Но в крестах компилятор предполагает, что код пишет очень высококвалифицированный сеньор.
Аноним 20/08/20 Чтв 22:38:24 1783387459
>>1783382
Ну хорошо, допустим. Сколько тогда времени в среднем и чисти гипотетически уйдёт на вкат до возможности устроиться на работу джуном?
Аноним 20/08/20 Чтв 22:43:19 1783390460
>>1781083
эээ.. сопрограммы активно исследовались в ранние 70е.. и от них сознательно отказались, не стали встраивать в яп общего назначения
Аноним 20/08/20 Чтв 22:44:25 1783392461
>>1783387
Раз есть база, то где-то полгода-год при условии, что есть дохуя свободного времени, которое готов на это тратить.
Аноним 20/08/20 Чтв 22:46:50 1783393462
>>1783390
>не было в двух самых языках, которые на момент выхода уже казались кастрированными и без нормалных фичей (Паскаль и Си)
>сознательно отказались
Аноним 20/08/20 Чтв 23:00:53 1783407463
>>1783222
Заруби себе на носу - когда у тебя есть класс, среди класс мемберов которых есть хотя бы ОДИН, сука, указатель - пиши конструктор копирования, который делает, сука, DEEP COPY. Иначе ты копируешь указатели и у тебя после конструктора копирования по умолчанию есть 2 объекта, указател внутри который указывают на одну и ту же память, а это UB и в некоторых случаях эксплуатабельная дыра в безопасности.
Аноним 20/08/20 Чтв 23:10:10 1783412464
>>1783392
Ясно, пошёл дрочиться как всё что уж.
>дохуя свободного времени
Это сколько примерно? 5-6 без стагнации часов хватит?
Аноним 20/08/20 Чтв 23:16:23 1783413465
Аноним 20/08/20 Чтв 23:18:11 1783416466
>>1783413
Ну заебись. Теперь точно ушёл. Тонну добра тебе.
Аноним 21/08/20 Птн 02:38:07 1783476467
Аноним 21/08/20 Птн 09:07:21 1783565468
>>1783476
У тебя 2 указателя на 1 участок памяти.
Потом ты будешь освобождать память в обоих, вот тебе double free вырисовывается, а это UB.

Или вот другая ситуация - ты освободил память по указателю ptr1, но при этом пишешь в память по указателю ptr2, который еще не освободил. Результат - Use-After-Free, что тоже UB.
Аноним 21/08/20 Птн 09:29:44 1783570469
>>1783565
KLASS::~KLASS() {
IF (PTR) {
DELETE PTR;
PTR = NULL;
}
}

KLASS::ZAPIS() {
IF (!PTR) {
THROW NE_LEZ_DEBIL_BLJAD();
}
}
Аноним 21/08/20 Птн 09:31:54 1783572470
А нет, PTR только у разрушающегося объекта станет NULL. Не спасёт.
Аноним 21/08/20 Птн 10:22:18 1783612471
9253189e5241b78[...].jpg 124Кб, 900x899
900x899
21/08/20 Птн 16:23:21 1784128472
Аноним 21/08/20 Птн 18:11:27 1784298473
KenThompsonandD[...].jpg 19Кб, 310x201
310x201
>>1782771
>Почему оно так не очевидно кастует типы?
Integer promotion.
Это артефакт того, что PDP-11 загружала байт командой MOVB, которая всегда выполняла знаковое расширение.
Аноним 21/08/20 Птн 21:36:43 1784406474
Аноним 21/08/20 Птн 21:39:26 1784407475