Этого треда уже нет.
Это копия, сохраненная 16 апреля в 15:55.

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

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

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

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

Прошлый тред: >>2938659 (OP)
sage 2 3012358
>>012308 (OP)
Долбоëб, где ты 1000 постов в треде увидел, чтобы перекатывать? Репорт,
3 3012360
>>012358
Хуй будешь?
4 3012601
>>012308 (OP)
... стот ли... к вам вкатываться... ?
зачем нужны указатели ? а указатели на указаители *? Если в методе класса выделяю на объект память я должен освободить память в этом же методе/классе или могу осободить ее из любого места программы? Если из любого, то все переменные что ли глобальные или вы где-то гетаете объект и удаляете его по ссылке/указателю?

это же все безумие, объяснитесь.
5 3012643
>>012601

> зачем нужны указатели


Чтобы указывать на кусок памяти

> а указатели на указаители *?


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

> Если в методе класса выделяю на объект память я должен освободить память в этом же методе/классе или могу осободить ее из любого места программы?


Конечно можешь в любом месте

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


Память может выделятся на куче, она может быть доступна глобальна

Почитай про стак и кучу, тогда более менее понятнее станет что происходит
Ну а про поинтеры, они просто в других языках программирования спрятаны от тебя, но также есть
6 3012718
>>012643

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


1)Я правильно тебя понял, ссылка на объект в джаве это же просто указатель ⚹?
2)Сам указатель занимает тоже место в памяти и мы можем как бы указать на ссылку ссылкой через ⚹⚹?
3)Разыменование указателя ⚹ через & это же просто получение значения по указателю(оно же ссылка в других языках типа джава)?
4)А что мы получаем при разыменовании указателя на указатель ⚹⚹, просто указатель ⚹, или мы не можем из ⚹⚹р получить что-то через &р?
sage 7 3012765
>>012308 (OP)
ты зачем, чертило, до бамплимита тред пересоздал? тебя кто просил? кто твой старший вообще, че это за хуета
8 3012783
>>012765
Спокуху оформи, хуесос.
9 3012793
>>012718

>А что мы получаем при разыменовании указателя на указатель ⚹⚹


Значение указателя на которую указыавет указатель.

>или мы не можем из ⚹⚹р получить что-то через &р?


Ничего не понятно. &p вернет тебе адрес указателя на указатель.
Moonlover 10 3012795
А нахуя нужен С++ тред? Плюсовики чувствуют себя каа дома в любом треде?

Круче плюсовика только плюсовик, который пишет ещё на нескольких языках и отменно знает пару-другую ассемблеров.
11 3012797
>>012795

>Плюсовики чувствуют себя каа дома в любом треде?


Веб-макаки мне не соседи.
12 3012814
>>012795
Чтобы отбивать желание писать на нем у новичков
13 3012816
>>012601

> ... стот ли... к вам вкатываться... ?


Тебе нет

> зачем нужны указатели ?


Чтобы иметь возможность работать с переменными.

> а указатели на указаители *?


Просто второй уровень косвенности

>Если в методе класса выделяю на объект память я должен освободить память в этом же методе/классе или могу осободить ее из любого места программы?


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

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


Так или иначе вся память твоего приложения глобальная, но области видимости есть.

> это же все безумие, объяснитесь.


Хаос прежде всего в голове.
В твоей же чистое поле флуктуаций. Вообще удивительно что ты можешь членораздельно общаться. Хотя письменность у тебя хромает.
14 3012818
>>012797
Пески времени уже замели следы истерики зазнавшегсоя плюсовичка, когда его опускал Луговский на sql.ru

C++ — довольно таки примитивное, но монстровое поделие, полное исторически сложившихся нелепых нагромождений. Человек, который хорошо в нем ориентируется — это хорошее зубрилко, а не хороший программист. Умение героически преодолевать трудности, которые создает твой собственный инструмент, вместо того, чтобы решать непосредственно прикладную задачу, в современном мире ценится разве что только среди прыщавых сосок. Работодатель же это сомнительное умение не ценит, и совершенно справедливо.

В общем, так: хороший программист обязан знать Си. Хороший программист может знать C++, но это не обязательно уже. Главное, чтоб C и C++ не были единственными доступными программисту инструментами — иначе это адски паршивый программист.
15 3012820
>>012818
Все так
Было раньше, до с++11
Современные стандарты оч много принесли.
VID20240121210200325.mp44 Мб, mp4,
642x526, 0:25
16 3013138
Есть график на C++, который рисует точки и соединяет эти точки вертикальными линиями с точкой которая имеет точно такую же координату по оси X и самый низ экрана по координате Y.
Координаты точек находятся по формулам:
vectorPixelX = round(vectorUnitXscaleX - offsetXscaleX);
vectorPixelY = round(vectorUnitYscaleY - offsetYscaleY);

vectorUnitX, vectorUnitY - вектора реальных значений

vectorPixelX, vectorPixelY - вектора значений в пикселях.

scaleX, scaleY - масштабы по осям

offsetX, offsetY - отступ окна от начала координат в реальных единицах.

Проблема в том что точка не может быть между пикселями, поэтому при масштабировании увеличивается количество пикселей между точек, но увеличивается оно для каждой пары по разному. Из за этого появляются пробелы различной ширины. При маленьком масштабе, когда почти весь спектр черный и без пробелов, видно что почти нет пробелов, потому что масштаб соответствует расстоянию между точками и каждый следующий пиксель изображения закрашен, когда мы начинаем увеличивать масштаб расстояние между точками растёт и мы начинаем видеть больше пробелов. Так как я хочу видеть спектр полностью черным при любых значениях масштаба, я хочу закрашивать эти пробелы. Так же я не хочу обходить массив пол элементно и искать пары чьи дельты пиксельных значений больше либо равны 1 пикселю. Забыл сказать, значения в векторе X идут с определенным шагом, допустим, 23, 46, 69... Зная масштаб и шаг значений в векторе X можно вычислить ошибку шаг ошибки, то через сколько пикселей, появится следующий разрыв. Но вот как вычислить координату самого первого разрыва я не знаю, поэтому пишу сюда. Было бы очень классно если бы я знал, координату самого первого разрыва и зная шаг с которым идут разрывы, бы просто добавил в отрисовку точек, которые бы закрыли разрывы.
17 3013152
>>013138
Ты уже сколько лет пишешь эти графики?
18 3013171
>>012820
... и очень много унесли
Софт, который писался со стандартами c++11 сложно скомпилить под c++17, например, ибо даже throw вынесли нахуй
19 3013206
>>013171
Ну и чтож там такое с throw сломали?
Я из Qt, у нас не принято throw
20 3013207
>>013206
Тупо депрекейтнули, сказали, что нахуй не нужно
Я если что хотел собрать ogre-next с последним стандартом, в итоге меня компилятор нахуй послал
возможно, мне лучше стоило бы в /gd/ уйти
21 3013208
>>013138
Увеличивай толщину линий при зуме.
22 3013209
>>013207
А блять, ты про спецификацию выбрасываемых исключений?
Ну так она изначально была идеей говна, ведь ничего не гарантировала.
23 3013213
>>013209
Ну, оно вроде как работает
24 3013243
>>013152
Два года

>>013208
Тогда самая правя линия будет выходить за пределы той точки которой она принадлежит
sage 25 3013295
не пишите в запомоеном треде
у опа грязный рот
26 3013313
>>013207

>Тупо депрекейтнули, сказали, что нахуй не нужно


>Я если что хотел собрать ogre-next с последним стандартом, в итоге меня компилятор нахуй послал


Разрабам было лень обработать сырцы парой регулярок, чтобы привести к новому стандарту? Нахуй такой движок тогда.
1702599257157586083.webp23 Кб, 535x508
sage 27 3013314
Сажу забыл (
28 3013361
>>013243
Ну и напиши для самой правой отдельный кейс.
29 3013444
>>013361
Я разрабатываю алгоритм собственной растеризации на CPU и моя цель как можо меньше процессорного времени потреблять, если я буду рисовать лишние пиксели у каждой линии, то смысла тогда не будет. Моя цель состоит в том что бы найти самый первый разрыв, добавить туда точку, сделать шаг равный шагу между разрывами, добавить туда точку и повторять это пока до тех пор пока не заполню все разрывы в массиве точек.
30 3013489
>>013444
Раздели ширину области отрисовки на количество полос. Если получилась ширина > 1, то у тебя есть разрывы. Далее уж надо думать в зависимости от того как ты что рисуешь. Если слева направо, то:
Округляем ширину линии вниз до целого
Складываем остатки от каждой линии, как только остатки > 1, то ширина этой линии должна быть +1.
Но это какая то хуйня. Не очень понятно что ты решаешь и зачем это делать руками, когда есть готовые решения.
31 3013524
>>013489
Готовые решения не дают то что мне надо + жрут много процессорного времени
32 3013540
>>013524
А куда оно тебе нужно такое производительное?
33 3013549
>>013540
На raspberry pi
34 3013656
>>013549
А какая задача?
Ты пишешь свое потому что уже упёрся в производительность?
35 3013668
>>013656
Да, упёрся. Задача быстро отрисовывать спектр сигнала
image.png96 Кб, 2605x1472
36 3013677
Мне хочется сделать так что разрыв заполнялся как на картинке.
Разрыв заполняется значением Y точки x - 1. То есть линия рисуемая на месте разрыва должна быть высотой с предыдущую.
37 3013684
>>013677

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


> Разрыв заполняется значением Y точки x - 1. То есть линия рисуемая на месте разрыва должна быть высотой с предыдущую.


Ну я тебе вроде такой алгоритм и написал выше.
А красные линии это что?
image.png104 Кб, 2603x1631
38 3013685
Если взять обратное число от масштаба по оси X и вычесть шаг значений в векторе X, получим ошибку на каждый пиксель изображения.

float delta = (1.0/scaleX) - stepVectorUnitX;

Если патом разделить шаг в векторе Х на на ошибку получим количество пикселей между разрывами.

float countPixel = stepVectorUnitX/delta;

1.0/scaleX: 23.2558
stepVectorUnitX: 23.4375
detla: -0.181687
countPixel: -128.999

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

Как видите на картинке получилось 129 пикселей, что соответсвует округлённому значению countPixel
39 3013686
>>013684
На картинке: слева от красной линии представлен вариант когда предыдущая линия меньше чем линия после разрыва, справа больше
40 3013721
>>013685
Не надо тебе ничего искать. Как только у тебя ошибка(дельта) накапливается больше единицы - рисуешь линию толще на пиксель и единицу вычитаешь.
41 3013735
>>013721
Задумка была такая.
Ищем самый левую точку которая попадает в окно просмотра, и самую правую точку которая попадает в окно просмотра. Как на первой картинке.
Производим преобразование координат с startIndex по
endIndex, как на второй картинке.
Получаем вектор точек в пиксельном пространстве. В этом векторе есть разрывы которые я хотел бы заполнять по вот так
>>013677
То есть добавлять точку с Y равную значению Y у точки X - 1.
Да можно просто следить за ошибкой, и когда ошибка станет >= 1 добавлять точку. Но тогда в цикле придётся писать if(error >= 1). А я хочу написать алгоритм с минимальным количеством if'ов в цикле
42 3013737
>>013735
Только я во второй картинке не то сфоткал, там vectorUnitX и vectorPixelX должны быть
image.png12 Кб, 869x207
43 3013738
44 3013789
>>013735
Твой код можно поковырять?
45 3013807
>>013789
Там ничего пока особо нет, вся идея пока в голове, вот застопорился на поиске начала разрыва. Могу скинуть код виджета где всё отрисовывается
https://pastebin.com/drVt6NFt
46 3013809
>>013807
P.S. paintEvent забыл

void Spectrum::paintEvent(QPaintEvent* event)
{
QPainter painter;
painter.begin(this);
painter.translate(0, height() - 1);
painter.scale(1, -1);
painter.setPen(QPen(Qt::black, 1));

for(int i = 0; i < vectorPixelY.size(); i++)
{
painter.drawLine(vectorPixelX, 0, vectorPixelX, vectorPixelY);
}

painter.end();
}
47 3013812
>>013807
Вечером попробую что нить сделать
windisp.gif3 Кб, 474x258
48 3014260
Обожаю виндоус еще с тех пор как в детстве на витрине увидел компы с 95 и загадочным ярлыком "Мой компьютер". А теперь сам могу делать окошки, какой же кайф. Линукс маст дай.
49 3014338
>>012308 (OP)
Захотелось освоить какой-нибудь хардкорный низкоуровневый язык, знакомый одолжил книжку по C Стивена Прата.
Есть опыт в программировании, есть опыт в си (в вузе 2 семестра изучал, но нихуя не помню кроме указателей на указатели)
Вопрос: насколько сложно будет перейти на с++, при желании? Насколько они отличаются? Есть ли смысл в си? Мой выбор обусловлен только наличием няшной бумажной книжечки.
50 3014379
>>014260
Ахуеть, микролахта
51 3014430
>>014338
Скорее всего ты не найдешь работу будучи чисто сишником, для меня это важнейший фактор выбора плюсов
52 3014667
Использовать intX_t или забить хуй и просто int? Вервое вроде делает более самодокументированный код.
53 3014724
>>014667
Если не лень - используй. Чаще будешь думать о том, а нужен ли тебе тут инт вообще и влезет ли в него.
54 3014732
>>013313

>Разрабам было лень обработать сырцы парой регулярок, чтобы привести к новому стандарту? Нахуй такой движок тогда.


Ну тыг графических опен сурсных графических движков с гулькин хуй, а огр со старым стандартом единственный более менее работающий без всяких изъёбов (про bgfx шарю, но он тупо _mem у меня в нулину ебашит при загрузке шейдера), потому придётся страдать
55 3014736
>>014732
Так падажжи, ну депрекейтнули, так ничего не должно же ломаться?
56 3014799
>>014736
Ну, у меня bgfx тупо не может свои же примеры для демонстрации запустить нормально, лол
Может это проблема из-за невидии, не ебу, может я как-то не правильно собираю (но при этом оно вообще собирается)
57 3014820
>>014732
Ой бля, не при загрузке, а при создании
58 3015505
size_t/int/unsigned? Что выбираете для счетчиков контейнеров?
image.png303 Кб, 297x500
59 3015553
Была такая детская книжка, сказка, которая чуть менее, чем полностью, состояла из восточной философии.

Собственно, если бы я искал к себе в проект программистов, то это были бы Си программисты, не осилившие и ненавидящие С++.

И они писали бы на С++ и полюбили бы его.

Звучит как бред? А дело в том, что С++ мультипарадигменный язык. На нём можно писать и как на языке очень высоких абстракций, так и опуститься на уровень железа. Поэтому сишные программисты писали бы на С++ в той парадигме, которую требует проект. И писали бы они без костылей, но и без велосипедов.
60 3015643
>>015505
Уже давно выбрано за тебя size_t
61 3015932
Блять меня уже трясет решать линуксопроблемы. Ничего никогда и нихуя не работает, ну просто с одной мины на другую
62 3015937
>>015932
Это не совсем так, если быть точным.
sage 63 3015994
>>012795

>А нахуя нужен С++ тред?


Залетные чертилы выясняют для чего нужен указатель на указатель. Местные омеганы радостно отвечают.
64 3016003
Ну и для чего нужен указатель на указатель?
sage 65 3016008
>>012797

>Веб-макаки мне не соседи.


По крайней мере они не являются твоими прямыми конкурентами, отбирающими у тебя краюху хлеба. В отличие от "коллег" и вкатывающихся в этом итт треде, между прочим, которые и являются твоими прямыми конкурентами за место под солнцем.
sage 66 3016016
>>012814
Одно из важнейших преимуществ с++ перед си. Хотя и на си можно хуярить кодогенерацию на макросах, к примеру. Что довольно полезно, тк ухудшает читательность кода, делает невозможным инструментальную отладку и прочее, что очень хорошо откидывает голодных конкурентов. Ну или эмулировать ооп, хуяря собственные vtable например. Ну или делать собственную компонентную модель на структурах с указателями на фии и pinvoke. Ну или хуярить недо-adt на войд звездочка.
Но с++ все равно нет равных в софтварной обфускации. Это очень хорошо. Потому что вкатуны не нужны, они должны сдохнуть на вахте, сдохнуть в окопе на бомбасе, сдохнуть от передоза в бабкиной хате своего мухосранска. А не пытаться вкатиться в индустрию. С++ тоже в конечном итоге должен сдохнуть. Стать эзотерическим языком для развлечения богатеньких челов.
sage 67 3016020
>>013138
Вот такие хуесосы и сидят годами в оборонке на гос зарплате. Годами неспособные открыть ебаный учебник чтобы увидеть нужные формулы, изобретая свою какую то хуету, и более того спрашивая "как зделоть" на рандомном форуме.
sage 68 3016027
>>014338

>Стивена Прата


что сказать
ты сделал первый маленький шажок и уже наступил на кучу коровьего навоза
возможно тебе не стоит начинать заниматься программированием а продолжить мести улицы или грузить палетты в пятерочке или чем ты там занимаешься
sage 69 3016036
>>016003
для того чтобы возвращать указатель из функции
это материал первого полугодия первого года любого вуза где учат на программистов
70 3016044
>>016016
И заменят кресты чистые си, ибо самые стабильные по стандарту...
71 3016049
Кто этого шиза сюда впустил? Съебоса оформи, чертила
72 3016051
>>016049
на кого ты так
sage 73 3016055
>>016049
За это стоит поблагодарить опхуя, перекатившего до 1000 постов.
sage 74 3016059
>>016049
я здеся с 2007 года в отличие от залетухи опа
75 3016063
>>016059
2ch.ru
76 3016191
>>016020
И в каком же разделе математике я могу найти нужную мне формулу?
77 3016380
>>013807
Дохуя чего не хватает
78 3016406
>>013807
В общем я глянул, заставил это работать, и вот что могу сказать:
1) интерфейс твоей хуйни - кал. Какого хуя ты закладываешь то, что внутри рисовалки генеришь какие то вектора? О какой производительности здесь вообще речь?
Ты должен принимать по указателю\ссылке массив константного размера и из него читать значения.
2) Генерится непонятно что. Напиши сначала генератор нормальных данных.
3) Эту всю хуйню если ты действительно производительности хочешь нужно писать на OpenGL, а не внутри ПейнтИвента. Это вообще какая то кринж комедия.
https://github.com/alandefreitas/matplotplusplus
Короче щас выглядит будто ты не понимешь что ты делаешь зачем и почему.
79 3016475
>>016406
Я ему еще в прошлый раз пол года назад вроде примерно тоже сказал.
80 3016493
>>016406
лучше подумай о том что челик уже два года сидит-пердит в своем нии и получает за это зарплату
81 3016495
>>016191
тебе достаточно немного подумать, сделать правильный запрос в гугл и ты увидишь нужный мат аппарат на выборке на первой странице блядь
включая и необходимый алгоритм из вычмата
VID20240124092215238.mp415,6 Мб, mp4,
1280x720, 0:47
82 3016615
>>016406
У меня есть нормальный спектр который на вход принимает fft и довольно быстро перерисовывает(быстрее чем готовые решения) изображение. Но код от него я не дам.
То что я тебе скинул это зародыш попытки заново переизобрести спектр. Что бы был ещё оптимизированней. У меня в голове есть наброски и во время реализации возникли трудности, в виде решения проблемы разрывов и несоответствия математической формулы линии брезенхема и алгоритму брезенхема без умножения. Ну если алгоритмом брезенхема можно пренебречь, и использовать DDA алгоритм и при этом я все не выйду за рамки намеченного пути. А вот если забить хуй и обходить массив поэлементно на поиск разрывов, то это уже будет далеко о того идеального спектра что я представлял. С OpeGL не всё так просто. Я брал обычный шейдер который отрисовывает точки и соединяет их линиями. Результаты были не очень впечатляющими, при количестве точек 1024, нагрузка на процессор при рендеринге на CPU была 26%, а на GPU - 16%. Это при 30 кадров в секунду. Да прирост есть, но я думал будет больше. Если писать сректр на OpenGL там тоже не плохо бы посидеть и придумать собственный шейдер.

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

У меня вроде бы там под вектор один раз память выделяется, и патом только перезаполняется, разве нет? Даже если не так, то опять это вообще даже не заготовка, так болванка
83 3016644
>>016615
Так а что природа разрывов, ты когда генеришь линию четко указываешь где ее пиксели, вместо того чтобы при отрисовке вычислять где она должна быть.
84 3016653
>>016644
Ну хорошо природа разрывов так то понятна, предсказание в каких пикселях они появятся меня интересует
2024-01-24 10-17-52.mp44,3 Мб, mp4,
1280x720, 0:14
85 3016677
86 3016708
>>016677
Понятно ты просто заполняешь квадрат, до ближайшей следующей точки. Но когда я найд решение поиска точек разрыва я буду делать, не так, я буду по получившимся точкам строить полигон, и в ручную массив изображения закрашивать нужным мне цветом, потому что как я понял Qt делает это очень медленно. Потому что разрыв на большом масштабе может быть больше одного пикселя, и тогда мне придётся ещё писать цикл для заполнения разрыва. А я хотел бы добавить точку в начале разрыва, патом все получившиеся точки соединить линией брезенхема, а патом все что ниже линии брезенхема заполнить нужным мне цветом
87 3016728
>>016708
Давай так:
У тебя есть линия с толщиной 1 в пикселе 0.
И линия с толщиной 1 в пикселе 2.
Как посчитать ширину разрыва и откуда он начнется?
Зачем тебе линии брезенхема при отрисовке вертикальных линий?
В куте для рисования есть классы по типу QGraphicsScene. И да, она в целом медленная. Она затачивалась под отрисовку окон, а не графиков в 30фпс.
88 3016766
>>016728
Я пока могу только сказать формулу ошибки которая накапливается с каждой отрисованной линией.
Если взять обратное число от масштаба по оси X и вычесть шаг значений в векторе X, получим ошибку на каждый пиксель изображения.

float error = (1.0/scaleX) - stepVectorUnitX;

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

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

Ну всё это я писал вот тут
>>013685

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

>>016615
Здесь на видео как раз таки сделана эта аппроксимация. Но минус спектра с видео в том что там всё средствами Qt рисуется и поэтому во первых это медленно, во вторых Qt не умеет рисовать линии нормально, там в конце или в начале линии лишние пиксели появляются. Я так понял там какой то корявый алгоритм DDA. В багрепортах Qt до сих пор лежит иссуя об этой проблеме, ещё не пофиксили.

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

(vectorPixelX - vectorPixelX[i - 1]) > 1

Если больше то значит разрыв и надо заполнить пустоту.

И да рисование полигоном быстрее чем рисовать линии вертикальные как показала практика
89 3016769
>>016615
Выглядит, кста, как говно. Почему ты скейлишь график, а не диапазон визуализации? В любом аудио-редакторе никакие графики не скейлятся, блять.
90 3016778
>>016708

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


Ну отрисуй линию тем же drawline, а область уменьши и залей любым цветом. Что в этом контексте значит делать в ручную и зачем?

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


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

> А я хотел бы добавить точку в начале разрыва,


Мы говорим о двумерной плоскости, что здесь значит в начале разрыва? Линию?

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


Тут тоже не понял. Если ты хочешь рисовать линии от точки до точки - рисуй их сразу. Зачем тогда вертикальные от 0 до Y рисовать?
Все так же, рисуй сразу полигоны. За контур отвечает QPen, за заполнение QBrush.
А вообще идея собрать свой рендерер внутри рендерера(Qt сама отлично умеет рисовать объекты) очень странная.
91 3016781
>>016766
А с чего ты решил что проблема в отрисовщике кути, а не в твоих алгоритмах?
Построй флеймграф, оценить перф.
И если тебя уже не устраивает скорость работы, зачем ты опять Qt взял?
image.png143 Кб, 427x320
92 3016782
О, брат вот ты где.
Не было ни единого разрыва, а теперь есть.
Ебать ты шиз конечно, ещё и семёнишь.

Оно было бы грустно, если бы не было так смешно.

Посты твои, к сожалению, как под копирку.

> куча конкретных терминов + салат из слов, описывающих дикие бессмысленные проблемы, возникающие при комбинации этих терминов + как будто бы вопрос аудитории



Ты пидарас. Слышишь? Ты пидараска, брат!

>>016020
Какой, в жопу, НИИ? НИИ по хлебанию мамкиного борща на пенсию по шизе, если смог оформить. Брат хватает по верхам и не осиливает что-то сложнее основ. Когда сталкивается с концепциями посложнее, то отбрасывает их по надуманным предлогам. Оптимизатор существующих N log N решений мамкин блядь.

>>016708
Нахуй ты это ищешь? Что ты думаешь патом лол с этим делать?

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

— Ну что сына, когда на работу-то устроишься?
— Мааам я делаю гениальные вещи просто никто не понимает, у меня проблема решается разрывов, вот решу разрывы и сразу сделаю максимально оптимизированный в целом не медленный алгоритм отрисовки
— Я ведь уже пожилая. Как ты себя будешь кормить?
— Кормить себя для быдла в продашкане! Я буду творить и бесплодно изобретать бесполезную хуйню, вместо того, чтобы заботиться о своем будущем и помочь тебе в старости. Ведь я умный и не быдло, а вы все пидараски меня не понимаете.

Тьфу бля на тебя, шиз. Реально запомоенный. Пей таблетки и пиздуй нахуй отсюда, долбаёб.
93 3016785
>>016766

> Также у меня там ещё будет аппроксимация, тоесть если несколько точек попадает в один пиксель, то рисовать я буду самую высокую из них.


А зачем? У тебя же изменение цвета идёт от высоты линии. То есть, оверлаппинг линий тебя вообще не пугает. И можно просто их рисовать в каком угодно порядке в один пиксель.
94 3016787
>>016782
Ты отметил посты минимум двух разных людей, шиз.
95 3016808
>>016782

> Нахуй ты это ищешь? Что ты думаешь патом лол с этим делать?


А тебя это ебать не должно

>>016785

> То есть, оверлаппинг линий тебя вообще не пугает.


Как раз таки пугает, на отрисовку ненужных линий тратится время.

Я помню свой спектр из этого поста >>016615 до апроксимации и после, разница в нагрузке колоссальная

>>016781

>А с чего ты решил что проблема в отрисовщике кути, а не в твоих алгоритмах?


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

>И если тебя уже не устраивает скорость работы, зачем ты опять Qt взял?


Ну вот как раз таки собираюсь переехать с растеризации средствами Qt на собственную растеризацию спектра

Вообщем что бы думать над проблемой нахождения координаты самого первого разрыва вы мне предлагаете свои решения, которые ничем не лучше будут чем мой спектр >>016615
96 3016824
>>016808
Насколько я помню, КуПейнтИвент перерисовывает всю область виджета.
Тогда вычисляй ошибку и дорисовывай линию, в чем проблема то?
Сделаю вечером через ошибку, но какая разница, визуально результат будет одинаковый.
97 3016833
>>016824

>Насколько я помню, КуПейнтИвент перерисовывает всю область виджета.


Ну перерисовывает, да.

>>013735

>Да можно просто следить за ошибкой, и когда ошибка станет >= 1 добавлять точку. Но тогда в цикле придётся писать if(error >= 1). А я хочу написать алгоритм с минимальным количеством if'ов в цикле



В идеале вообще без if'ов в цикле.

Что бы следить за ошибкой надо начинать откуда то следить, а начинаться следить за ошибкой надо как раз так с момента первой ошибки, то есть с первого разрыва
98 3016843
>>016615
блять анон, какой же ты крутой ебать, это то что мне нужно, как сделать чтобы твои посты не проебланились? у тебя есть тг?
99 3016883
>>016843
Лучше на почту
dvywX!21ANUSyw/YandexPUNCTUMr,2,u
100 3016892
>>016615

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


Еще бы они были впечатляющими. Тебе вообще все надо рисовать в фрагментном шейдере. Т.е. рисовать весь прямоугольник со спектром, и для каждого пикселя считать цвет точки.
101 3016933
>>016615

> С OpeGL не всё так просто


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

что то я не понимаю?
102 3016935
>>016933
У него железка без карточки зелёных
Этот софт планируется под распберри, как я понял
103 3017397
>>016782

>Какой, в жопу, НИИ?


Он два года сидит в НИИ, на нормальной для джуна зарплате. И вместо того чтобы просто открыть нужную книжку взяв готовые мат формулы и соответствующие им алгоритмы из вычмата, пытается че то выдумать из своей головы. И нихуя у него не получается само собой. Но чукча не читатель, чукча писатель. Программисты же пишут код, а читают книги только задроты.
Другая проблема в том куда смотрят его старшие товарищи, в принципе у него же должен быть что-то вроде куратора, который ему скажет - заебал страдать хуйней, или открывай такуюто книгу на такой странице и реализуй алгоритм раз ты не способен на самостаятельный поиск.
104 3017434
>>017397
Какую книжку? Как нарисовать спектр без разрывов, есть такая книжка?
105 3017462
>>017434

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


для начала посоветую задать ровно тот же вопрос гуглу или чат джипити
106 3017464
>>017397

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

Хуесос плохо понимает вообще, с чем он работает. Там столько ляпов в его высерах, фактических, что я орал и хрюкал, когда читал. Например >>3015981 →, там такая каша, что надо ссаными тряпками гнать из любого института. Хуесос не только некомпетентен, но ещё и крайне высокого мнения о себя, одно вот это чего стоит ор дикий бля

>>016843
>>016883

давно так не залупался
107 3017527
>>017464

>Например >>3015981 → →, там такая каша



Это не я писал, я таких слов то не знаю.
108 3017587
asm это высокоуровневый язык? Какого хуя там типа данных, переменные, строки? Я ожидал работу с сырыми байтами.
109 3017605
>>017587
Уровневость языков субъективное понятие
110 3017662
>>017587
Потому что те, кто реально на асме пишут, не особо любят с сырыми данными работать. Зачем себе голову ломать, если можно проще сделать? Так-то с макросами можно сделать вполне высокоуровневый язык.
111 3017677
>>017587

>asm это высокоуровневый язык?



Это смотря какой. Макрософт очень красивый ассемблер генерит, а на каком-нибудь недомелкоконтроллере, там можно кукухой поехать, если глубоко вникать.
112 3017689
>>017662

>Потому что те, кто реально на асме пишут, не особо любят с сырыми данными работать. Зачем себе голову ломать, если можно проще сделать? Так-то с макросами можно сделать вполне высокоуровневый язык.


Если что, С и С++ теперь считаются низкоуровневыми.
113 3017710
>>017689

> С++ теперь считаются низкоуровневыми.


Буквально язык, на котором можно писать что угодно и как угодно.
Язык, который даёт неограниченные возможности, в том числе и сорок способов выстрелить себе в ногу.
114 3017851
>>017689
Счиьается необучаемыми дибилами, разве что. Что плюсы что си - ящыки высокого уровня.
115 3018122
>>017851
Предлагаешь ассемблером писать под каждую микроархитектуру?
116 3018218
Насколько надо быть ебанутым, чтобы из
>>017851
получить
>>018122
?
Я уж не говорю про то, что это говно не знает, что такое микроархитектура.
117 3018220
>>017851
Такое восприятие давно устарело. Это в 80-х писали программы на ассемблере, компьютеры были простые и программы тоже простые, вот и си и далее считались высокоуровневыми. А сейчас компьютеры слишком сложные, писать на ассемблере нереально, кроме убогих хеллоуворлдов, так что самым низким уровнем является си, то есть самым низким уровнем языка на котором реально писать рабочие программы.
Кстати видел живого долбоеба пишущего на ассемблере, загугли "manhunter блог" и увидишь ебаната который только пальчиком ковыряется в трех строчках кода уровня "лаба1", не программист, а слесарь ковыряльщик-затыкальщик дырок.
118 3018300
>>018218
Ты пишешь, что си и кресты это ЯП высокого уровня, но если в целом смотреть, то из кроссплатформенных чистый си самый низкоуровневый.
А про ассемблер вставка потому что у каждой архитектуры свой набор команд.
image.png36 Кб, 673x717
119 3018314
>>018300

>А про ассемблер вставка потому что у каждой архитектуры свой набор команд


Да ладно. Вот открыл по приколу последнюю свою прогу, как стояло по дефолту 386, так и не менял никогда, нафиг не надо, ведь прога нормальная, а не вычислялка сжигадка проца. Нет смысла даже ставить 486, только совместимость испортишь, а выгоды нет. Так что и на ассемблере в большинстве случаев можно писать под 386 и не париться, пойдет везде.
120 3018318
>>018218
Еше неопознана глубина тупизны.
>>018122
>>018300
>>018220
Дибилы уровня б. Ваш бред уровня споров о силе акулы и медведя, например. Просто молчите. Чидите подрачивайте ридонли.
Ну и позорище.
121 3018327
>>018318
Ты тот самый хост www.manhunter.ru? Чего обиделся то, сразу перешёл на оскорбления?
122 3018353
А какой смысл писать на asm в 2k24, если компилятор сам все супер оптимизирует. Иначе говоря, разрабы компилятора за нас уже эту работу сделали. А то читаешь иногда о программе, вот она написана на си и си++, и есть ассемблерные вставки, вот нахуя они? Для скорости можно __fastcall прописать, не?
IMAGE 2024-01-25 11:18:37.jpg43 Кб, 600x536
123 3018380
>>018353

> если компилятор сам все супер оптимизирует

124 3018421
>>018318
Ты разговариваешь с тяжёлым шизом, который любит сыпать бессвязными терминами, разговаривая сам с собой. Может он так остужает горящую от непростых реалий жопу. Не знаю, чему тут удивляться. Я сначала тоже повёлся, когда он начал про обработку сигналов наваливать в соседнем треде (и всё ещё наваливает), пока не понял, что это шезлонг. Ему никак не помочь, потому что он уверен что с ним всё в порядке.
125 3018425
>>018327
Не думал что для тебя это оскорбление. Врятли таких как ты вообще можно задеть.
126 3018501
>>018421
Бля какое же ты шизло
127 3018547
>>018353

>А какой смысл писать на asm в 2k24, если компилятор сам все супер оптимизирует


Только на десктопе, там компиляторы вылизаны до максимума. Под микроконтроллеры часто на асме пишут, потому что стоковые говнокод выдают, плюс на асме проще писать проги, где важны тайминги до такта - там по инструкциям сразу видно сколько времени кусок кода будет выполняться.
128 3018644
>>018547
ну как вылизаны, они работают без ошибок, но далеко не всё оптимизировано
129 3018838
Деды не видели новые яп, и пишут, что си это высокоуровневый ЯП, лол
130 3018864
Пытаюсь сделать VirtualAllocEx в другом процессе, получаю ошибку доступа(GetLastError() == 5)
handle процесса получал через PROCESS_ALL_ACCESS
Оба процесса запущены одним юзером, оба elevated
ProcessExplorer показывает пустое поле Protection у процесса, в котором выделять память пытаюсь.
У экзешника есть цифровая подпись, перезаписал ему
peHeader.OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_SECURITY].Size = 0;
peHeader.OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_SECURITY].VirtualAddress = 0;

Не помогло, в чем может быть еще проблема?
131 3018866
>>018864
Не помогло в том плане, что всёеще получаю 5 ошибку.
Сертификат в свойствах экзешника после перезаписи не показывается
132 3018868
>>018838
Новых языков программирования нет, есть скриптовое говно. Скрипты не программирование, ибо программирование это управление железом, а скрипты работают в виртуалке, это разновидность офисного софта как 1с. Код который пишут без оглядки на железо это не программа, а скрипт, просто другая парадигма в принципе.
133 3018927
Олды тут, читал когда то книжку в пиздючестве она была на половину про Си, вторая половина про С++ что то захотелось перечитать. Вряд ли кто по такому описанию подскажет, может есть удобная онлайн библиотека или подборка книг по Си и плюсам
134 3019118
>>018838
Для меня критерием высокоуровневости является наличие абстракций, которые не понимает машина. Вот есть в С функции, машина это не понимает, для нее есть всякие колл и джампы.
135 3019121
>>018864
Я плохо помню, сначала надо запросить доступ на такие действия.
136 3019135
Подскажите пожалуйста, у кого возможно было, что могут задать на командном собеседовании по плюсам? Какие вопросы и задания могут дать?

вкатывальщик в тындекс
137 3019137
>>019135

> в тындекс


гг
138 3019138
>>019121
на процессе других программ отрабатывает итак отлично, а тут какой-то хитровыебаный попался
139 3019140
>>019137
АХАХАХ, есть такое, а что поделать, стажировок нормальных нет, никуда не берут, здесь хотя бы до командного дошел =)
140 3019159
>>019135
Ну например:
Есть две строки.
Надо за линию дать ответ, можно ли 1 заменой/вставкой/удалением получить из одной другую.
Другая:
Дано массив из К уникальных чисел. Нужно посчитать количество корректных бинарных деревьев.
141 3019160
>>019159
Бинарных деревьев поиска*
142 3019196
Есть какие-то годные источники вопросов (и ответов) на собеседовании по плюсам (джун)? Задачи какие-нибудь
Не алгоритмические, а скорее по самому языку и около темы
143 3019201
>>019196
В интернете пробовал искать?
144 3019254
Где же правда?
У локальной переменной b адрес должен быть меньше, чем у а, потому что стек идет вниз. Но по факту он больше. Сегмент текста и данных по факту находится в старших адресах. При чем сначала идет текст, а потом данные.
145 3019329
>>019254
Компилер пытается, хотя и не обязан этого делать, поскольку это кресты, чтобы объявленные переменные в памяти подряд шли. Это на случай union struct. То, что ты объявил a и b, это не значит, что ты что-то запушил в стек. Сегменты где хочешь могут вообще оказаться при релокации, операционка еще и адреса рандомно выберет, чтобы вирусописателям посложнее данные было искать. Эта хуйня как-то называется и где-то отключается.
146 3019391
>>019254

> Где же правда?


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


Вообще не обязательно и платформозависимо. Надо читать спеки платформы, для х86 растет вниз.
https://stackoverflow.com/questions/664744/what-is-the-direction-of-stack-growth-in-most-modern-systems
147 3019515
>>019159
Алгособес я то прошел. Мне интересно какие задачи плюсовые могут дать. К примеру на джаве собесе могут дать задачу реализовать безопасный синглтон. Вот какие задачи такого формата могут дать на плюсах?
148 3019523
>>019515
Сколько алгособесов ты прошел? Их в яндексе 4+.
5 и дальше архитектура.
1706210066541.jpg65 Кб, 1037x1280
149 3019692
>>019159

> Надо за линию дать ответ, можно ли 1 заменой/вставкой/удалением получить из одной другую.


> Другая:


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


Кашмар, это прям хард задачки с литкода решать придется
В Яндексе ещё и на бумажке это всё делать заставят?

мимо проходил, скоро тоже буду работу искать
150 3019737
>>019523
Я на стажера иду, у меня была одна техническая секция и одна алгоритмическая. Теперь у меня идут командные собеседования.
151 3019739
>>019692
Не, решаешь в их блокноте специальном. Код не компилируешь. Харды дают, но не на первом собесе.
152 3019785
>>019737
Ааа.
Все, я тебя понял.
Командные - это просто общение с командой. Тебе надо себя презентовать, что ты умеешь, и тд.
Но там тоже может быть алгосы. Меня такая хуйня подъебала, пришлось пару минут поступить
153 3019788
>>019692
Это медиумы.
Основных алгоритмов хватит. Хотя я в целом готовился к собесам.
154 3019796
>>019785
Да, там могут и алгосы дать, и просто о жизни поговорить. Но на последних командных собесах меня вопросами душат, я просто ебал их в рот. Я не бездельник, даже 2 первых этапа прошел, почему они не могут просто взять меня на работу?!? НА СТАЖИРОВКУ!!! СТАЖЕРОМ!!!! СУКА.
155 3019821
>>019796
А что там за вопросы? На знание языка?
Возможно просто смотрят как ты реагируешь на ситуацию когда нихуя не знаешь и нихуя непонятно.
Я пол года работаю, до сих пор нихуя не понятно.
156 3019829
>>019821
В этом и дело, что разные. Вот была команда по плюсам, начал про умные указатели (легкий вопрос), виртуальный деструктор (тоже легкий), но он не остановился, начал спрашивать про тесты и многопоточку на плюсах. А я ебу что ли, на плюсах продуктовый код никогда нормально не писал, только синтаксис знаю. Про память спросил, про её выделение, не помню точно какой вопрос, помню что неправильно на него ответил. И ЭТО ПРИ ТОМ, ЧТО Я РЕШИЛ ЕГО ЗАДАЧУ))))))) Задача была вот эта https://leetcode.com/problems/string-compression/description/
157 3019834
>>019829
Я конечно понимаю, что можно лучше знать язык, но блять, я иду на стажера. Быть стажером и знать все нюансы - это странно, нахуй тогда на стажировку идти, почему не пойти сразу джуном? хм.....

Самое дебильное - о команде ты узнаешь нормально только на собесе, поэтому подготовиться к собесу физически не можешь. Если к алгособесу подготовиться было легко, я знал примерно, что там будет, то здесь так не работает.
158 3019968
>>019834
Так к ним и не надо готовиться по сути. Они спрашивают от балды что считают важным.
По сути ты уже прошел, осталось команду найти, которая тебя решит принять.
Хуево что единственный вопрос который ты заруинил ты не запомнил.
159 3020090
>>019201
пробовал, там вопросы на уровне "какой размер в байтах у int" и "напишите fizzbuzz". Может я плохо искал, буду рад, если кинешь годноту.
160 3020097
>>019796
Потому что не хуй идти в Яндекс. Посредственная работа за среднюю ЗП.
161 3020099
>>020097
За низкую зп.
162 3020138
>>020097
А какие там ща вилки и какие медианные?
163 3020200
>>013668
Рисуешь на экране? Никогда не делай так. Рисуй в буфере, затем средствами графической системы копируй в окно. Выжмешь максимум скорости.
164 3020204
>>014667
Используй. Сэкономишь силы и время при порте программы на другую платформу или разрядность.
Это не про красоту, это про переносимость.
165 3020234
Сейчас вот здесь >>016615 рисую на экране. В планах сделать отрисовку в одномерном массиве разделенном на строки и рисовать там, патом отрисовывать получившеюся текстуру.
166 3020243
Что можно написать реаьное для практики?
167 3020320
>>020234
Вот планы у тебя правильные. Нужна скорость - не откладывай эти планы на будущее.
168 3020327
>>020243
Тетрис.
169 3020354
>>020243
Напиши нормальные строко/квадраты как у заводчанина, но на нормальном опенгл/вулкане, а не цпу кути.
170 3020362
>>019968
А куда идти новичку? На всех других стажировках ебать какая конкуренция. На джун позицию никуда не берут. Вот и остается Яндекс. И давай честно, зарплата нормальная, она невысокая, она нормальная, вот стажером в МСК предлагает от 80к до 120к, это мало? Если да, значит я реально нищук

вкатывальщик в тындекс
171 3020395
>>020354
Ахахах, а что мы, мы заводчане плюсовые или жабо пидоры смузевые, подведём начальника что ли, али не выйдем на не оплачиваемые смены? Я по глазам вижу среди нас таких нет.

>>020243
Игрульку какую нибудь, сервер клиент напиши, или реально спектр напиши
172 3020496
>>012308 (OP)
Подскажите пожалуйста, почему после прямого вызова деструктора я все еще могу менять поля объекта и вызывать при нем методы? Это компилятор страхует?

struct S {
S(int xx) : x{ xx } { }
int x{ 0 };
void print() { std::cout << "I'm here!\n"; }
};

int main()
try {

S x = new S(10);

std::cout << x->x;

x->~S();

x = S(20);

x->print();

std::cout << x->x;
173 3020503
>>020496

> X = S(20)


Это что такое по твоему?
174 3020513
>>020496
все значки полетели блять. Должно было быть вот так:
S x = new S(10);

std::cout << x->x;

x->~S();

x = S(20);

x->print();

std::cout << x->x;
175 3020518
>>020503
Я не знаю почему звездочка пропала, там должно было быть вот так:
*x = S(20)

раскрываю указатель и меняю значение объекта
176 3020637
>>020518
Такого ты точно сделать не можешь, у тебя слева указатель, а справа объект.
177 3020670
>>020496
Чел, у тебя все звездочки полетели нах, поэтому не поймешь ничего. После вызова деструктора, ты можешь что хочешь делать. Можешь еще раз деструктор вызвать, лол. Весь вопрос, в какой момент тебя это приведет к Segmentation Fault. А если не приведет, то еще хуже - жесткий баг останется незамеченным. Если хочешь предотвратить повторный вызов деструктора, то наследуйся от класса, который статиком hash_map объектов и запоминает, какие из них уже деструктнуты. У меня подобное было в гуе, когда onclick на кнопке уничтожал ее нах, а этого дефолтный mouseup пытался ее отрисовать с отжатом состоянии, хотя на ней уже и деструктор и даже delete на указателе отрабатывали. Ничего лучше, чем вести таблицу объектов, не придумал.
178 3020821
>>020637
Лалка.
>>020518

> раскрываю указатель


Как? Как консервную банку?)
Думай хоть что пишешь, не позорься так.

> меняю значение


Это что по твоему?
179 3020830
>>020821
Я действительно лалка.
Возможно у тебя тут лайфтайм экстеншион.
Но я бы не надеялся. Напиши деструктор и посмотри когда что у тебя умирает.
180 3020863
>>020496
Так падажжи.
А что ты хотел?
Ты же не очищаешь память. Ты вызываешь деструктор. Память никто не освобождал.
181 3020989
Зачем подключать хедер file.h в файл с реализацией file.cpp? Хедеры же нужно в другом месте для использования, но зачем в самом файле реализации?
182 3021007
Есть тут разработчики графики? Вулкан/опенгл, гпу и все такое? Подскажите как у вас с работой сейчас, есть какие-то вакансии? Стоит вкат оформлять?
183 3021044
>>021007
есть, тухляк, только пет проекты
184 3021047
>>021007
Ебанько что ли? Тут никто не пишет код за деньги. А графические API - это уровень умения работать с qt, любой дебил сможет, соответственно никто тебя только за это не возьмёт на работку. Тебе как минимум надо с математикой быть знакомым и уметь в HLSL, т.е. в сишку.
185 3021399
>>020830
Если бы ты не ответил былр бы ок. Но сейчас я в замешательстве. Это такой тролинг тупостью?
Птр = {} нормальный синтаксис, гцц, кланг, мсвц его правильно воспринимают.
186 3021407
>>021047
Это прав с про отсутсвие работы, но абсолютно не прав с тезисами, вообще не понимает что несет.
187 3021421
>>021407

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


Да я так и понял, решил не отвечать чтоб не триггерить, спасибо за ответ если ты >>021044
188 3021722
>>021007
Не совсем графика, но в каком-то смысле да. 3D CAD. За полгода набрали около 10 джунов.
189 3022582
>>021722
Интересно, что именно делают эти джуны? Что они пишут?
190 3022638
>>022582

>что именно делают эти джуны


увеличивают энтропию проэкта
191 3022789
>>016808
>>016782
>>016785
>>016781
>>016677
>>016406

Я тут подумал и понял что шаг в векторе у меня равен
Частота дискретизации/размер бпф = 48000/2048 = 23.4375

Если мы будем переводить это в дискретную систему координат, с округлением в обе стороны, то при масштабе равном 1, по формуле округлить(i x 23.4375) * масштаб мы получим следующий ряд:
0, 23, 47, 70... Уже на третьем элементе у нас разрыв! Между первым и вторым у нас разница 23 пикселя, между вторым и третьим 24. Дело в том что у нас накапливается ошибка в дробной части, и когда эта ошибка станет больше 0.5, то из за округления шаг между точкам станет на 1 пиксель больше чем ожидалось.

Чуть чуть погуглив нашёл такое понятие как не прерывная дробь или же цепная дробь
https://ru.wikipedia.org/wiki/Непрерывная_дробь

Там же описана проблема календаря

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

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

На первый взгляд можно поработать с дробной частью 23.4375

Дабы узнать когда накопиться ошибка больше 0.5, надо узнать сколько раз 0.4375 помещается в 0.5. 0.5/0.4375 = 1.1428...

То есть через 1 шаг будет накапливаться ошибка больше 0.5, что так и есть:
0, 23, 47, 70, 94, 117

Как видим
23 минус 0 равно 23
47 минус 23 равно 24
70 минус 47 равно 23
94 минус 70 равно 24
117 минус 94 равно 23
и т.д.

Но это всё при масштабе равном 1. Если же масштаб не равен 1, а например 0.043, то 23.4375 умножаем на масштаб 0.043 получаем 1.00781

Дробная часть равна 0.00781. Если разделить 0.5 на 0.00781, получим 64, что почти соответствует первому разрыву на картинке. На картине 65 пикселей. Но это ещё удачный случай, при разных масштабах ошибка тоже разная
191 3022789
>>016808
>>016782
>>016785
>>016781
>>016677
>>016406

Я тут подумал и понял что шаг в векторе у меня равен
Частота дискретизации/размер бпф = 48000/2048 = 23.4375

Если мы будем переводить это в дискретную систему координат, с округлением в обе стороны, то при масштабе равном 1, по формуле округлить(i x 23.4375) * масштаб мы получим следующий ряд:
0, 23, 47, 70... Уже на третьем элементе у нас разрыв! Между первым и вторым у нас разница 23 пикселя, между вторым и третьим 24. Дело в том что у нас накапливается ошибка в дробной части, и когда эта ошибка станет больше 0.5, то из за округления шаг между точкам станет на 1 пиксель больше чем ожидалось.

Чуть чуть погуглив нашёл такое понятие как не прерывная дробь или же цепная дробь
https://ru.wikipedia.org/wiki/Непрерывная_дробь

Там же описана проблема календаря

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

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

На первый взгляд можно поработать с дробной частью 23.4375

Дабы узнать когда накопиться ошибка больше 0.5, надо узнать сколько раз 0.4375 помещается в 0.5. 0.5/0.4375 = 1.1428...

То есть через 1 шаг будет накапливаться ошибка больше 0.5, что так и есть:
0, 23, 47, 70, 94, 117

Как видим
23 минус 0 равно 23
47 минус 23 равно 24
70 минус 47 равно 23
94 минус 70 равно 24
117 минус 94 равно 23
и т.д.

Но это всё при масштабе равном 1. Если же масштаб не равен 1, а например 0.043, то 23.4375 умножаем на масштаб 0.043 получаем 1.00781

Дробная часть равна 0.00781. Если разделить 0.5 на 0.00781, получим 64, что почти соответствует первому разрыву на картинке. На картине 65 пикселей. Но это ещё удачный случай, при разных масштабах ошибка тоже разная
192 3022808
челик присядь попей водички те хуёва
193 3022891
CLion или VS с решарпером? Первый по религиозным причинам недолюбливаю, при том что заебись по функционалу, новый гуй приятнее выглядит чем раньше, но тормозит прокрутка до сих пор. А второй какой-то протухший в 2024 уже, ещё и IntelliSense говно собаки, но с решарпером получше уже. VS Code даже трогать не хочется, экстеншон под кресты ещё хуже чем IntelliSense в студии.
image.png917 Кб, 900x900
195 3022956
>>022891
QtCreator
196 3023000
>>022891
VSCode + clangd + CodeLLVM + CMake.

Но вообще ты бы задачу назвал. CLion даёт выбрать тулчейн, приятную тонну плагинов и остальные фичи IDE от JB.

VS имхо для разработки только под Винду. В нём удобно настраивать проект по личному опыту. Указать где у тебя зависимости и всё такое без ковыряния доков того же CMake. Опыт опытом но исходя из твоего вопроса: его у тебя нет. Ну и все настройки сейвятся в файле проекта, так что переносимость есть.

А ещё именно под него заточен тот же компилятор Intel и их oneAPI.

Короче, инструмент выбирают под задачи. Хуле нам тебе дилдо советовать если тебе гвоздь забить а не в жопу себя ебать?
197 3023002
>>023000

>CodeLLVM


*CodeLLDB

быстрофикс

К слову, мне очень нравится как легко вкорячивается Clang и периферия в Винду. Не то что GCC. И при этом функционала больше. Тут тебе и clangd, и clang-format, и прочее.
198 3023004
>>023002

> легко вкорячивается Clang и периферия в Винду


А шланг хоть сможет собрать код виндовых SDK?
199 3023102
>>022906
Всё ещё быстрее и экономичнее чем VS Code, который вообще на JavaScript, а не просто Java.
>>023000

> clangd


Не умеет в кучу важных вещей, например даже в базовые фичи типа переход к реализации, или поиск ссылок. А у майкоского экстеншена даже синтаксис С++20 не реализован полностью.

> В нём удобно


В студии каждый час IntelliSense падает и чинится только перезапуском студии, пиздец заёбывает. Или бывает пишешь код и хуяк он отъёбывает, подсветка синтаксиса пропадает и оно просерается только через пару минут. И гуй уже лет 5 не развивается никак, даже нормальной поддержки нейронок нет, только Копилот кое-как костылями пришили через очко. Из настроек там разве что гуй проектов для MSBuild неплох, остальное кал, даже панельки аутлайна нет нормальной.

> под задачи


Задача - писать код и не страдать от IDE.
>>023002

> Clang


Его разве что под mingw имеет смысл использовать. С майковским тулчейном боль сплошная, а из SDK лезут тысячи варнингов. Сомнительное удовольствие.
200 3023169
>>022891

> CLion или VS с решарпером?


Анончик не знаю даже что ты услышать хочешь
Оба говно, но лучше аналогов нет

Выбирай просто что больше нравится
201 3023178
>>023102
Идея переодически начинает тупить и это лечится только invalidate cache and restart
202 3023229
Почему в плюсы не завезли аналоги всяких IDisposable, try-with, with?
Что мешает-то?
203 3023277
>>023229

> try-with


А нахуя он нам нужен?
У нас есть raii и так
204 3023285
>>023229
Напиши пропозал, тебя обоссут и попутно объяснят.
205 3023288
>>023229

> IDisposable


Чел, деструкторы тебе для чего?

> try-with


Эксепшены религия не позволяет использовать?

> with


Скобочки, блять, используй. with - это костыль в языках без RAII. Можешь в if затолкать объект с деструктором или сделать макрос на with, если хочется прям как в питоныче.
206 3023294
>>023288
Так with === {}, не? Выделяем новый скоуп, по выходу из него все само умрет
207 3023302
>>022789
Лол, через полгода Штирлиц догадался, что Брезенхем работает только с линиями с наклоном не больше 45 градусов. То есть, если зум меньше 1, у тебя будут разрывы по определению. Тебе нужен nearest-neighbor или что-то подобное.
208 3023307
>>023102

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


Он и не должен этого уметь by design. Он просто синтаксическое дерево строит. Дальше уже должна работать какая-то более высокоуровневая либа, вроде плагина для LSP. Плагин VSCode умеет и переход к реализации и поиск ссылок.
209 3023382
>>023302
Ааа, ты думаешь это все брезенхемом рисуется от точки к точки. Нет это просто вертикальные линии от нижней границы виджета к точке. Там брезенхемом никаким и не пахнет.
.png400 Кб, 562x660
210 3023387
>>023277
>>023288
Да что вы говорите.

Прикриплейд. Как тут ваши raii и деструкторы-то помогут?
Надо как дебил каждый раз писать 100 уровней try-catch, или как деды - все переменные в началае функции объявлять а потом здоровенный try-catch.

В это же время, в жавах и остальных - ты имеешь синтаксис, который именно для вот такой хуйни предназначен, и позволяет, в любом случае нормально освободить что там у объекта навыделялось.
211 3023395
>>023382
Он Брезенхемом не линии рисует, а по горизонтали идет, и считает когда на следующий сэмпл в спектре переходить.
212 3023419
>>023387
А какого хуя ты удаляешь строку над которой не владеешь?
Пикрилейтед говнокод, за который тебя палкой надо ебануть.
213 3023423
>>023387

> Не использует RAII


> Стреляет эксепшенами


> Это не я еблан, это язык плохой


Ливни с треда, чушпан
214 3023441
>>023387

> Прикриплейд


И что у тебя на пикрилейтеде, джаваопущ? Ты ведь даже не знаешь крестов, а уже пишешь код. При нормальном RAII у тебя всё будет освобождаться, то что ты вручную выделил память что в нормальном коде запрещено уже давно и не почистил - это твои проблемы, сборки мусора за даунами тут нет. Лучше расскажи как джава справляется c ConcurrentModificationException, всё так же надо делать ручные итерации с .next(), чтоб рантайм не наебнуть?
215 3023443
>>023387
По скрину же видно, что ты явный неадекват. У нормального человека глаза вытекут от такой темы.
216 3023446
>>023395
Ды нет, я просто делаю преобразование координат

Для X
float pixelOffsetX = offsetXscaleX;

for(int i = 0; i < vectorPixelX.size(); i++)
{
vectorPixelX = round(vectorUnitX
scaleX - pixelOffsetX);
}

Для Y
float pixelOffsetY = offsetYscaleY;

for(int i = 0; i < vectorPixelY.size(); i++)
{
vectorPixelY = round(vectorUnitY
scaleY - pixelOffsetY);
}

Затем отрисовываю получившиеся точки
for(int i = 0; i < vectorPixelY.size(); i++)
{
painter.drawLine(vectorPixelX, 0, vectorPixelX, vectorPixelY);
}

Причём тут брезенхем. То что я хочу сделать возможно похоже на работу брезенхема. Я хотел бы вычислять накапливаемую ошибку не в цикле, а по формуле. В брезехеме тоже ошибка вычисляется, но делается это в цикле. Но сейчас, на данном этапе ничего общего с брезенхемом нет
217 3023486
>>023419
>>023423
>>023441
У плюсовиков настолько все плохо с абстракциями и примерами?

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

В реальности, ну, вот будет у тебя класс TcpConnection, где-то в недрах ебнется какой-нибудь IOException или AppException, тебе надо почистить и вернуть в пулл буфферы, а сокет освободить правильно. Ну и че будете делать? Покажите как это делается на плюсах. А то начали чет щебетать, а показать как делать без устоявшихся уже в остальных языках конструкциях - не хотите.
218 3023491
>>023486
Ды тут чёт одни токсики. Что не спроси, сразу дураком обзывают
219 3023502
>>023491
Я подозреваю, что они просто сами не знают, как сделать это нормально, чтобы не выглядело как ебаный пиздец, и при этом не городя всякие свои велосипеды в духе лайфтаймов или своих GC'шек.
220 3023503
>>023486
unique_ptr для кого придумали, долбаёб?
А вообще ты явно не из плюсов, потому что все плюсовики знают:
Ты либо не трогаешь руками память нигде, кроме возможно конструкторов/деструкторов и используешь исключения, либо не пользуешься исключениями, так как без RAII это будет работать некорректно.
221 3023514
>>023486

> Ну и че будете делать?


Чел, выполнится деструктор, эксепшен точно так же выполнит деструкторы у вышедших из области видимости объектов, так же как в твоей джаве. Ты вообще в курсе, что в твоём говнокоде foo делает две аллокации и у обоих RAII не работает?
222 3023521
>>023514
Я думаю он даже не представляет что такое "Hello world", где он хранится, и какой у него лайфтайм, раз он передает его в объект и пытается удалить.
223 3023524
>>023486
Это у тебя плохо со знаниями крестов, ты даже не знаешь синтаксиса. В крестах объекты создаются не через new, у этого ключевого слова семантика отличается от джавы. В 2024 года даже IDE тебе варнинги кинет за new, так никто не делает. Убери его и всё будет работать как в джаве. Я уже молчу про то что ты память не выделял, а зачем-то освобождаешь её в деструкторе.
224 3023530
>>023524
Я мимо пробегал, а как тогда объекты делают в C++?
225 3023533
>>023503

> unique_ptr


Всратый костыль.
Я хочу работать с TcpConnection. Как-бы ООП, все дела. Нахуй мне этот вот юник поинтер, мне нужен объект удовлетворяющий требуемому интерфейсу.

>>023514

> выполнится деструктор


В том коде - деструктор не выполнится.

> Ты вообще в курсе, что в твоём говнокоде foo делает две аллокации


Да. Именно потому я и говорю о нужности какого-то аналога using try-with или with, чтобы в языке в случае вот такой хуйни - была возможность освободить корректно ресурс.

>>023521
Каким образом пример кода, в котором не выполнится деструктор и соответственно - я получил утечку - вообще относится к тому, что я делаю? Серьезно, чел. Еще раз. ЭТО ПРИМЕР. Я просто показываю ситуацию, в которой ты - нихуя сделать не можешь, чтобы корректно освободить выделенные в процессе работы ресурсы.
У тебя так же может остаться висеть в памяти открытый файл, и ты нихуя не сделаешь, потому что ничего, что могло бы его в такой ситуации корректно закрыть и освободить ресурсы не будет вызвано. Только городи костыли, либо как деды - все что надо в начали функции прописывай, потом здоровый try-catch и в конце - руками освобождай.
226 3023538
>>023533
Ты очень тупой по причине долбаёб. Вы в жаве все такие? Ты знаешь что-то о Эксепшен Сейфити?
Варианты решения твоей проблемы:
1) убрать new.
2) добавить unique_ptr
3) обернуть часть кода, где может быть исключение в try, отловить его и очистить ресурсы.
Буквально 5 секунд ввода кода. Но ты подаёшь это будто это нерешаемая проблема.
227 3023539
>>023524
Пажди, чел. Че ты вообще несешь?
new - создает выделяет память в хипе и отдает указатель на этот кусок памяти. Че не так-то? Я именно этого и хотел.
Чи с 2010 года, когда я последний раз на плюсах писал - что-то поменялось?
228 3023541
>>023539
А delete где?
Ты троллишь что ли?
229 3023546
>>023538

> убрать new.


Мне надо, чтобы объект был в куче

> добавить unique_ptr


Всрытай костыль. Уровня лайфтаймов от жидбрейнсов

> обернуть часть кода, где может быть исключение в try, отловить его и очистить ресурсы


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

>>023541
Тут он не нужен, потому что пример синтетический. Он в любом случае не вызовется, так что зачем строчки лишние писать?
230 3023547
>>023546

> Всрытай костыль. Уровня лайфтаймов от жидбрейнсов


Аргументы будут?
Пока что все намекает что ты зеленый.
231 3023558
>>023530
Просто вызовом конструктора, внезапно. А new - это аналог malloc, т.е. выделить память на куче, создать в ней объект и вернуть ссылку на него. Естественно RAII не работает, потому что объект за пределами области видимости и не принадлежит тебе.
>>023539

> Че не так-то?


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

> что-то поменялось?


Да, есть чёткие гайдлайны как писать на современных креста, а не на сишке с классами. Обратная совместимость позволяет писать код как в 90-х, но это сделано для компиляции легаси, а не чтоб дегроды писали на С++03.
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#S-resource
232 3023564
>>023547
Аргумент в том, что я как пользователь какого-то класса, не хочу думать о том как мне его передают.
Я хочу работать, с условным Computer, Connection, TextBox'ом и мне до пизды должно быть, уникальный это поинтер, шарящийся или сишный. Меня это, по хорошему, не должно волновать.
Иначе - начинают протекать слои и я на своем уровне слишком дохуя знаю о том как мне что передается, как оно там управляется.
Сверху, я могу из-за этого быть долбоебом, который полезет в этот юник поинтер я могу вообще сделать какой-нибудь reset и ебитесь как хотите, я в домике, удачного дебага.

>>023558
Ну, т.е. вместо того, чтобы сделать язык удобнее для использования его фич - мы запрещаем одну из основных фич, которая была как раз удобна в С++.
Отличное решение.
Темплейты тоже запрещаем, чи как?
233 3023570
>>023564

> Иначе - начинают протекать слои


Никуда ничего не протекает.
Во первых - уник птр лишь удалит объект по выходу из скоупа. ты все также можешь передавать свои указатели куда хочешь КАК ОБЫЧНЫЕ указатели.
Во вторых - ссылки гораздо безопаснее, лучше использовать их.
234 3023577
>>023564

> одну из основных фич, которая была как раз удобна в С++


Что ты вообще несёшь? new всегда был зашкваром, это убогий синтаксический сахар над malloc. О каком удобстве речь, когда ты сам себе стреляешь в ногу, если можно просто не делать этого? Нет почти ни одной адекватной причины зачем тебе делать аллокации на куче вместо стека, куча даже банально по производительности медленнее.
235 3023586
>>023577
Серьезнее хелловорлдов никогда ничего не писал?
Размер стека измеряется мегабайтами.
236 3023611
>>023586
Вот тоже интересно, как он без кучи живёт
237 3023625
>>023586
Как там на MS DOS?
238 3023640
>>023625
Имел ввиду на Вин10?
Не виляй, ты чушь написал. Проблема не в стеке\куче, а в управлении памятью.
239 3023654
>>023625
В MS DOS памяти всего 640 КБ, стека не хватит даже на десяток вложенных функций. Первая ошибка любой современной кодомакаки будет переполнение стека при запуске его высера даже уровня лаба1.
240 3023656
Да, размер стека измеряется одним мегабайтом.
241 3023810
>>023654

>В MS DOS памяти всего 640 КБ, стека не хватит даже на десяток вложенных функций.



Ты родился когда компьютеры уже стали 64-битными?
Размерность машинного слова на 8086 была 16 бит - в 4 раза меньше, чем у современных компьютеров/телефонов.

При прочих равных это как 640 * 4.

Просто поумничал, мне пофигу.
242 3023990
>>023530
Через make_unique/make_shared.
>>023546
Не хочешь "всратый костыль" - обкладывайся тестами под valgrind/msan, убирать за тебя твой мусор в этом языке никто не будет и никто не должен.

> Мне надо, чтобы объект был в куче


Если тебе хватает try-with, то стек тебе тоже сойдёт.
>>023486

>Покажите как это делается на плюсах


Все ресурсы для которых нужна уборка, чистятся в деструкторе.
>>023229
Не можешь сам реализовать scope_exit, спиши из черновиков - https://en.cppreference.com/w/cpp/experimental/scope_exit
>>023577
Ты ёбнутый? UaF давно не дебажил?
243 3024002
Если во всех современных компьютерах реализован механизм виртуальной памяти, то почему просто не сделать стек бесконечным (скажем 10 ТБ) и дальше память будет подгружаться по мере использования?
244 3024010
>>024002

> Двач а зачем существует RAM?

245 3024012
>>024010
Так чë, стек хранится не в RAM, а в каком-то отдельном виде памяти?
246 3024017
>>024010
К чему ты это?
247 3024023
>>024012
Долбаёб, скорость у разной памяти разная.
248 3024027
>>024023
Да, скорость RAM быстрее скорости RAM, это все знают.
249 3024030
>>024017
Неиспользуемые страницы падают в своп.
Как ты думаешь, быстро их оттуда загрузить обратно?
250 3024031
С каким-то дауном-питонистом разговариваете или просто с толстяком, я ебу.
251 3024032
>>024027
Ты про виртуальную память слышал только что она виртуальная, да?
252 3024035
>>024030
Так с чего они неиспользуемые то будут? Ну будет заняты 3гб оперативы не рандомными кусками где-то в памяти, а сразу на стеке, а там дальше ОС размапит как ей удобно.
253 3024037
>>024002
У тебя в программе минимум два стека, плюс по одному на каждый дополнительный тред.
А так да, ты можешь сделать так чтобы стек рос до тех пор пока не попадёт в область кучи.
254 3024038
>>024032
Я правильно понял, что у тебя стек хранится где-то в отдельной памяти и поэтому к нему доступ быстрее? А где он хранится можешь подсказать? Вот я на эксешник даблкликаю, что происходит? В L3 кэше 8мб выделяется?
255 3024039
>>024035
У тебя не может быть активной памяти выделено больше, чем РАМ.
256 3024041
>>024038
Стек лежит там же, просто по особенностям использования у тебя меньше переходов по указателям и память стека почти всегда в кэшах, за счёт этого стек быстрее.
257 3024044
>>024041
Ну я и спрашиваю почему не выделить стек 10ТБ и размещать всё на стеке, динамические размеры через какой-то alloca реализовать можно без проблем, я даже реализации под микрожелезки видел.
258 3024045
>>024038
Стек неразрывный, и там меньше кешмиссов. А где там твой Хип ещё посчитать надо.
259 3024049
>>024044
Вот поэтому - >>024037
260 3024053
>>024037
Что за два стека?
261 3024055
>>024049
Что поэтому? Как количество стеков влияет на их размер? Я запросил у операционки 10 ТБ, она мне дала кусок 1мб, дальше память будет выделяться по мере обращения к адресам. Виртуальное пространство сейчас сколько занимает, 57 битов помоему, на 256 петабайт вроде бы, должно хватить хоть на 32к тредов.
262 3024089
>>024053
Главный тред и стек для обработки сигналов (опциональный, но он скорее есть, чем нет).
>>024055

> 57 битов помоему


48

> Я запросил у операционки 10 ТБ, она мне дала кусок 1мб


Или послала тебя нахуй с такими запросами.
Вообще ulimit -s unlimited и стек у тебя безграничный.
263 3024249
>>023229

>Почему в плюсы не завезли аналоги всяких IDisposable


технически подобное пока невозможно пока сделать тк в языке нет рефлекции
но конечно же есть другие подходы как управлять временем жизни выделенных ресурсов
264 3024327
>>023530

>Я мимо пробегал, а как тогда объекты делают в C++?


Если упрощенно то четырьмя способами - конструктор глобального либо локального статического объекта размещается где то в свободной памяти, конструктор локального объекта размещается на стеке, по умолчанию оператор new создает объект в динамической памяти (на куче), форма размещающего оператора (operator new) позволяет поместить объект куда угодно по желанию программиста
1588548431409.png78 Кб, 1578x424
265 3024360
>>024327
Тебе тоже надо читать гайдлайны. Правильное создание объекта на куче - сразу в управляющем объекте, без new.
266 3024365

>конструктор размещается на стеке


кек
267 3024368
>>024012
зависит от машинной архитектуры
в подавляющем большинстве архитектур сегодня стек размещается в оперативной памяти
268 3024371
>>024037

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


Помню, в висте (между xp и семеркой была такая ос), при определенных условиях могло быть то ли 8 то ли аж 16 стеков в однопоточной программе из-за особенностей виртуализации x32 в x64 и особенностей защиты которая там была реализована (это когда всех еще это окошко с разрешением выполнения задалбывало)
269 3024372
>>024053

>Что за два стека?


user space и kernel space как минимум;
вообще если твоя прога с гуи интерфейсом, с активным вводо-выводом (та же сеть), то считай подавляющее количество процессорного времени твоя прога проведет в kernel space, при этом многие кодеры даже об этом и не знают, хех
270 3024376
>>024365
это было неточно быстро сформулированное предложение, не передергивай
271 3024385
>>024360
ну этот же совет говорит типа используйте всякие обертки, внутри то все равно будет где то по итогу вызвана та либо иная форма new
272 3024392
>>024037

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


Хм, а как ты это можешь сделать? Вроде же размер стека (в винде) указывается когда ты создаешь поток (create thread), а по умолчанию вроде бы мегабайт размер, но этот размер ты где то в реестре можешь так же изменить. И как бы все, дальше размер зафиксирован.
273 3024403
>>023514
А где тут 2 аллокации? мимо 3 года плюсов
274 3024549
>>023004
Может, но там будут ворнинги.

>>023102

>переход к реализации


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

>В студии каждый час IntelliSense падает


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

>И гуй уже лет 5 не развивается никак


Уже показывали что пишут новый с закосом под стиль 11-ки. Не думаю что они просто внешний вид переделывают.

>даже нормальной поддержки нейронок нет


Тьфу нахуй, максимум время сэкономит.

>Задача - писать код и не страдать от IDE.


Удачи тебе под выбранной утилитой для STM код писать, лол. Или если в конторе скажут что юзают X а ты выбрал Y. Ещё раз, свобода выбора есть далеко не всегда и когда она и есть, лучше отталкиваться от какой-то логики относительно целей.
275 3024551
>>024385
Вот именно. Внутри, реализации объекта а не рандомно в коде. Когда у тебя вся хуйня требующая особого внимания в конструкторах/деструкторах баги легче искать.
276 3024554
>>024549

> в конторе


Заебал, никто тут не пишет на крестах за деньги, даже в техподдержке хуи пинать лучше, ещё и за те же деньги.
277 3024566
>>024554
Довольно спорно, в моей мухосрани почти все вакансии по плюсам, да и я сам с плюсам :0
278 3024589
>>024566
И сколько платят? Хоть больше чем дворнику в ДС?
279 3024606
>>024566
Нск что ли?
280 3024651
Вот бы переехать в Техас и разрабатывать боевых роботов для национальной гвардии.
281 3024705
Тред сишников куда то делся и поэтому высрусь здесь.
На что компилятор жалуется?
282 3024732
>>024705
На то что ты пидор считать до трёх не умеешь.
Аргументы, которые ты передаёшь макросу:
1 - obj
2 - {float x
3 - y;}
283 3024764
>>024705
Тут надо юзать
#define COMMA ,
иначе препроцессор тебя не поймет.
284 3024782
>>024705
Препроцессору насрать на фигурные скобки, он не знает, что это такое, видит запятую между x и y и интерпретирует это как разделитель аргументов.
285 3024899
>>024764
>>024782
Спасибо аноны
286 3024934
Добрый день. Помогает ли изучение C++ в понимании принципов программирования в целом и может ли быть использован как хорошая база в освоении других ЯП? В частности те методики, которые представлены в книжках могут быть использованы в других ЯП или там все исключительно для понимания принципов работы C++? Тут есть те, кто учит C++ для саморазвития в программировании, а не для устройства на работу с ним? Думаю начать учить C++ вторым языком.
287 3024935
>>024651
лох
288 3024938
>>024934
если тебе для заработка, то лучшая стратегия это углублять знания о выбранном тобой яп и платформе, на которой ты зарабатываешь деньги, а не распыляться на что то другое
289 3024979
>>024934
Для этих целей лучше пойти в Си тред и навернуть книжецу из оппика
изображение.png13 Кб, 802x336
290 3024984
>>024979
Си треда больше нет
291 3024985
>>024934
Чел, для саморазвития первым делом учи функциональщину - Хачкель как теоретический ЯП и Окамл как практическую функциональщину. Потом ассемблер. Всё. Кресты нужны чтоб писать код, а не саморазвиваться, тут ты можешь только развить умение читать легаси. Если хочется увидеть много интересных вещей в ООП - смотри на D.
292 3025054
>>024985
Зачем учить функциональщину? Она неестественна как для человеческого мозга, так и для машины. Объекты естественнее, проще и понятнее.
293 3025077
>>025054

> Зачем учить функциональщину?


Чтобы не превращаться в извращенца пидеРаста, пытаясь написать безопасный код.
Особенно актуально когда у тебя мультипарадигменный язык как кресты, а ты бездумно пишешь строго в ООП/процедурном стиле.
294 3025098
>>025077

>пишешь строго в ООП


А минусы будут?
295 3025107
>>024589
Мне не интересно сколько платят дворнику в ДС. В Мухосранях СИ/С++ требуется, зп по региону выше среднего.
Далеко не все хотят уезжать из уютных мухосраней в вонючий ДС.
296 3025127
>>025077
Раст в этом плане из коробки более функционален чем плюсы лол
297 3025228
>>025077
"Безопасный код" тогда проще всего на js писать. Зачем хаскелем себя мучать? Функциональщина вообще нигде не взлетела. Даже в HFT, где тупых в принципе не держат, и нет проблем хоть академиков набрать на любую зарплату, все равно пишут на плюсах и джаве.
298 3025240
>>012308 (OP)
Можете подсказать, почему компилятор не видит конвертирующий конструктор:

template<typename T, class Deleter = std::default_delete<T>>
class UniquePtr {
public:
/.../
template<std::derived_from<T> U>
UniquePtr(UniquePtr<U, Deleter>&& other) noexcept
: resource{ other.release() },
D{std::move(other.get_deleter()) } { }
/.../

class S {
public:
virtual void bar() { std::cout << "S::bar\n"; }
};

class D :public S {
public:
void bar() override { std::cout << "D::bar\n"; }
};

UniquePtr<D> derived(new D{});

UniquePtr<S> based{ derived }; -- тут пишет что отсутствуют экземпляры конструктора
299 3025248
>>024985
>>024985
Покаж свой гитхаб, набитый проэктами на хачкеле и окамле. Или у тебя нет права такое советовать.
300 3025254
>>025107

>В Мухосранях СИ/С++ требуется


Шиза ебаная. Что для тебя мухосрань. Типичный 300к областной/крупный районный центр - и там за небольшим исключением будет 0 (ноль) разработки на крестах локальной.
301 3025255
>>025240
Попробуй based{ std::move( derived ) } сделать.
302 3025256
>>025254
Набережные Челны, например, лол. Там Алабуга, которая набирает крестовиков с зарплатами по 500тыр.
303 3025258
>>025228

>HFT


о да бля ахуенно актуально для россии где на биржах в принципе нету высокочастотной торговли ибо модель торгов другая
304 3025267
>>025228

> Функциональщина вообще нигде не взлетела.


Взлетела там где нужен гарантированно безопасный код с высоким уровнем абстракций. На Lisp например в НАСА или Боинге под некоторые задачи пишут, OCaml в финансовых корпорациях используется. Понятное дело в вебе или просто педоликам проще хуяк-хуяк на ООП слепить тонну легаси, а когда у тебя в принципе не должно быть легаси в коде - тут уже ООП серит себе в штаны, т.к. какой-нибудь солид требует писать расширяемый код, а не модифицируемый.
305 3025271
>>025256
чел это не мухосранск
306 3025275
>>025258
Ну приведи другую область, где функциональщина может в принципе взлететь. Обычный аргумент функциональщиков - ряяя, тупое быдло не осиливает. В HFT тупого быдла нет. В науке тоже тупых мало, но там питон, матлаб, фортран, плюсы. Окамл только на компсаенс кафедрах, и за их пределы не вылезвает.
307 3025283
>>025254
Мухосрань это до ляма
308 3025284
>>025267

>На Lisp например в НАСА или Боинге под некоторые задачи пишут


Лисп - это функциональщина уровня js лол. Что-то на лиспе в НАСА писали в 80-х и немного в 90-х на волне АИ хайпа, потом бросили.

>OCaml в финансовых корпорациях используется


Почти нигде не используется. Вакансий нет, историй успеха нет. Чисто академический язык.
309 3025286
>>025267
А ты не очень умный.
310 3025292
>>025267

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


"Гарантированно безопасным" будет код только со статической аллокацией. Из функциональных языков такое возможно только в ATS, в остальном на некоторых из них можно только корректность алгоритма доказывать, но для этого обычно используют статические анализаторы.
311 3025306
Какой гений придумал добавлять в язык возможность создавать функции вне классов? Почему каждый раз создавая функцию я по этой причине должен указывать класс_нейм::функ_нейм ? Почему в языке которому уже чёртову кучу лет до сих пор существуют такие удобные вещи как хэдер файлы, чтоб дважды писать одно и то же в разных местах?
312 3025315
>>025306
Потому что не все пишут опен-сорс, и многим надо скрывать имплементацию. Чтобы делать это без хидеров, нужны переносимые модули с универсальным форматом, который будут понимать все компиляторы. Такой сложной штуки комитет и разработчики компиляторов осилить не смогли, поэтому кушаем хидеры.
313 3025339
>>025315
Майкрософт годную технологию придумала COM - https://learn.microsoft.com/ru-ru/windows/win32/com/component-object-model--com--portal

А у Борланда был (а скорее всего есть и сейчас, но уже у Эмбаркадеры) довольно забавный и весьма весьма мощный TLB-editor.

Но чтобы это осознать, для начала надо признать и принять что CORBA это хуйня из под коня.

COM -технология не идеальна, она overblow, требует наличие большого, единого и неповоротливого реестра, но, ловите мнение эксперта - на сегодняшний день ничего лучше не придумано и скорее всего даже не опубликовано в исследованиях.
314 3025359
>>025339

>corba


>com


>borland


Скуфидоны, о чем вы вообще? Почитайте современные книжки по плюсам и в целом освежите свои знания. Не надо вскрывать эту тему, борланд это даже не флеш или активеэкс
315 3025372
>>025359
Это не скуф, это дед. Имей уважение!
316 3025375
>>025359
Только долбоёбы уверены в том, что Майкрософт похоронила COM, на котором половина Винды основана. И, как оказалось, очень даже хорошо что "мелкомягкие" так старательно присыпали всякой мишурой свою Component Object Model - это чтобы такие как ты туда свои кривые ручонки не запускали.
317 3025395
>>025339
При чем тут COM вообще? Я хотел пидоров комитетских палкой ткнуть, которые 15 лет изобретали модули, и вышла ненужная хрень, кривая замена PCH.
318 3025474
>>025283
Неа, мухосрань это город где жизнь остановилась. Типа Вологды или Твери, вообще весь вымирающий "русский север".
319 3025484
>>025275
Да нигде она не может взлететь лол. Даже в контексте этого треда. Взять хотя бы метапрограммирование на 98 стандарте. Тогда это осуществлялось по сути через функциональный подход, ибо иначе никак - а именно рекурсия, паттерн-матчинг и иммутабельные переменные. И че кто нибудь делал это в продакшене? Да нихуя, чисто state of art код. А в продакшене делали внешнуюю кодогенерацию если надо было. Никто не корячился на шаблонах.
320 3025507
>>025306
если вкратце - то лишь потому что с++ создавался как надстройка над си
321 3025514
>>025315
тебе никак модули не позволят скрыть имплементацию
скрыть имплементацию ты можешь только оформив код в динамически загружаемую библиотеку, из которой могут торчать си-совместимые функции и все
в этом то и состоит, кстати, главный посос крестов по сравнению с явкой и шарпом
главнейший посос из-за чего кресты подыхают кстати
и за 20 лет ни одна сука ни на одной конференции про это не заикнулась лол
322 3025531
>>025395
>>025359
ну дак он и отвечает на пост выше где вякнули про "скрыть имплементацию"
сделать это можно только через дин библиотеку
из нее будут торчать сишные функции и ничего более, и это крайне убого, убого это было уже в начале девяностых а сегодня это просто пиздец по сравнению с тем как подобные вещи делаются в явке или шарпе
как то компенсировать это можно только создав на базе этого (и сохранив совместимость) надстройку, использовав компонентный подход - как раз это com в винде или gobject в линуксе, и тогда это будет еще все более-менее терпимо
либо второй подход - это делать что то глобальней, а именно запиливать систему удаленного вызова процедур/методов/объектов, одной из примеров таких систем и являлся стандарт CORBA
323 3025532
>>025514
Ты херню какую-то говоришь. Dll с сишными функциями нужны только для связки с другими языками. В C++ хидеры и объектные файлы уже позволяют скрывать имплементацию: можно поставлять хидеры и собранную либу, хоть dll, хоть статическую. Модули теоретически позволили бы не разделять определения и имплементацию в коде, т.е. можно было бы импортировать собранный файл модуля, и компилятор выдавал бы все определения. Как dll в шарпе или jar в джаве.
324 3025577
>>025532
это ты херню говоришь
стандартизированного экспорта классов в крестах нет
только си-совместимые функции и все
325 3025609
>>025577
Это проблема из 90-х. Сейчас фактически осталось только два формата библиотек: юниксовый и MSVC, и gcc умеет делать def, чтобы, например, линковать dll собранную MSYS к MSVC. В vcpkg под виндой, например, куча либ через MSYS собирается, и проблем с линковкой нет.
326 3025619
>>025375
да всем насрать на виндоус, лол
327 3025621
>>025306

> должен указывать класс_нейм::функ_нейм


И кто тебя заставляет, пердоля? С темплейтами вообще нельзя определение и имплементацию в разных файлах иметь.

> дважды писать одно и то же в разных местах


Так не пиши. Модули уже давно везде работают, даже std на модулях вышла из экспериментальной.
328 3025637
>>025619

>всем


Отучаемся говорить за всех. Отучил себя - отучит товарища.

http://lurklurk.com/Отучаемся_говорить_за_весь_интернет
329 3025657
>>025621

> с темплейтами нельзя


Ну ты обосрался. Можно еще как.
image.png17 Кб, 1896x265
330 3025667
>>025637
Но ведь он прав.
331 3025669
>>025657
Есть штуки в темплейтах, когда реализация должна быть строго в хедерах. И их много. Не назову, потому что не пишу шаблоны.
332 3025683
>>025637
скуфидон, иди на пенсию уже, дорогу молодым
image.png54 Кб, 876x468
333 3025782
>>025667

>Но ведь он прав.


Нет, конечно. Он глубоко заблуждается.
334 3025787
>>025782
Я понимаю если бы это был тред для домохозяек или для игродебилов, но будучи разрабом сидеть на винде, если ты не пишешь под винду - это клиника.
image.png16 Кб, 458x306
335 3025796
Умножаю int 2^32 на int 2^6 и прибавляю 1
возвращаю long long, ожидаю увидеть 2^38 + 1, а вижу 0 + 1
В чем я не прав?
sizeof(long long) == 8
336 3025797
>>025787

>если ты не пишешь под винду - это клиника.


Ты два раза не прав.
Я пишу кросспалтформу. Всё кроссплатформенное за интерфейсы спрятано. Это раз.

Это тред С++? Тогда ты обязан знать что есть только одна среда разработки для С++ - MS Visual Studio. Всё под всей платформы пишется и отлаживается в ней, а затем переносится на целевые платформы. Так весь мир работает, если ты не знал.
Ну, кроме Торвальдса и и нескольких десятков его подсосов.
337 3025810
>>025797

>Так весь мир работает, если ты не знал.


Далеко не весь. Во многих конторах можешь на чем хочешь сидеть и любыми тулзами и ИДЕ пользоваться. Но под виндой там как правило самые упертые и консервативные мамонты сидят. Чисто виндовые обычно конторы, которые начинали чисто с виндового продукта и им потом потребовалась кросс-платформа (и они ее делают на отъебись).
338 3025825
>>025797
В голос с этого спермовода. Компилятор нормальный завезли хотя бы в твою студию?
Алсо, винда настолько удобная, что пришлось встраивать в нее Линукс в виде WSL, чтобы совсем убогими не казаться.
339 3025835
>>025796
В том что заигрываешь с переполнением
340 3025842
>>025796
UB UB ГРОБ ГРОБ КЛАДБИЩЕ
341 3025851
>>025825

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


При чём тут удобство? Это как раз наоборот, чтобы можно была писать на удобной винде под неудобный линукс без ебли с виртуалками.
342 3025854
>>025851
Жир пиздец.
Линух как система для девелопера в 100 раз удобнее.
343 3025859
>>025851

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


Ты даже не стараешья, поэтому я отказываюсь в этом учавствовать.
344 3025884
>>025854
Чем?
345 3025890
>>025884
Чем виндовс.
1706550747860.jpg45 Кб, 735x794
346 3025895

> лучшая ос для разработки


Макос же
347 3025936
>>025895
Для разработки ануса.
348 3026013
Есть скомпилированный файл приложения в ubuntu (без расширения, просто main), как запустить его в windows ?
Когда запускаю мне вылетает сообщение от windows - "Невозможно запустить это приложение на вашем ПК. Что бы найти версию для вашего компьютера, обратитесь к издателю приложения". А ?
349 3026016
>>026013
Если повезёт, то через WSL. Если не повезёт, то вообще никак, хоть убейся, придётся виртуалку с линуксом разворачивать.
350 3026042
>>026013

> А ?


Хуй на, пердоля.
image.png88 Кб, 1027x886
351 3026046
>>025782
Кстати вот тоже пример разрывов и неравномерностей
352 3026048
>>026016
Ага. Или обрвтиться к разработчику приложения.
image.png10 Кб, 525x141
353 3026079
>>025825

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


Охуенный компилятор.
354 3026103
>>026042
Какой ?
355 3026112
356 3026123
>>025854
Нет. Нужно писать либо в текстовом редакторе с подсветкой синтаксиса, а потом компилировать в симейк, либо использовать неудобные или зашкварные IDE. Тот же Clion это зашквар, написанный на java от зашкварной джабаебской компании Jetbrains
357 3026126
>>026123

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


Дед, 90-е давно закончились, сейчас в любом "редакторе с подсветкой синтаксиса" есть все возможности IDE благодаря LSP.

>Тот же Clion это зашквар


Почему? Это в нулевые он тормозил, сейчас он работает норм на любом днищеноуте.
358 3026151
>>012308 (OP)
Есть моар картинки с пикрила? Что-то даже и на русском было
image.png118 Кб, 1920x1020
360 3026156
>>026153
Язык без невидимой хуйни, да-да. Дебаггер после cin сразу 0 показывает.
361 3026239
>>025609
стандартизированного экспорта классов в крестах нет
362 3026241
>>025619
к сожалению, для разработки, оставшейся в россии, это во многом так
363 3026251
>>025669
это застарелая проблема крестов, которая так и не была решена
по стандарту 98 было две модели организации исходного кода шаблонов а именно модель включения и модель разделения (через ключевое слово export)
вторая модель так и не была реализована в мейнстрим компиляторах языка
и всегда используется только первая, которая означает что весь код шаблона должен выглядеть так как будто бы он встраиваемый (inline), что на практике означает что весь шаблон должен быть помещен в хедер файл (если код шаблона планируется задействовать в нескольких единицах трансляции, само собой)
364 3026354
>>026156
Господи мудила, ну посмотри в каком порядке ты аргументы принимаешь и передаешь.
365 3026462
>>026126

> сейчас в любом "редакторе с подсветкой синтаксиса" есть все возможности IDE благодаря LSP.



Есть такое слово Debug.
Код набирать и в vi можно.
366 3026468
>>026156
Что меня всегда добивало в пользователях плюсов, так это какой-то панический отказ от scanf, gets и т.д.

С++ это язык, в котором к результату можно прийти 1024 способами, три четверти из которых будут неэффективными, а остальные - весьма эффективными.
367 3026471
>>026468

> 2024 год


> калсоль!


Таких уродов давно пора кастрировать.
368 3026483
>>026471
Кажется ты не программист.
369 3026494
>>026046
Чё вы хуйню какую то обсуждаете вместо разрывов?
370 3026502
>>026462

>Есть такое слово Debug.


И в чем проблема с дебагом? Виндузятничка пугает консольный GDB? Так есть плагины для большинства редакторов-IDE.
371 3026538
>>026483
Кажется тебя давно пора кастрировать за тупость.

Тыв вообще понимаешь что такое консоль? Нет, не понимаешь, дегенерат. Консоль это текстовый режим, древнее твоего дедушки, потому что даже в 80-го дах прошщлого века компьютеры вовсю ебашили графику, а так любимый print это вовсе не вывод на экран, а печать на бумаге, и даже не лазерным принтером, и даже не сдохшим древним матричным принтером, а вообще не принтером, а телетайпом - электрической пишущей машинкой которой уже 100 лет стукнуло, которая ебашит свинчатками с буквами по рулону бумаги.

В 2024 году писать программу печатающую на телетайпе так же нелепо как делать автомобиль с лошадью вместо двигателя. Ты просто дегенеративный выродок которых нужно уничтожать.
372 3026540
>>026538
Консоль это ввод буковками. Чего жы ты аудио сообщением свой ответ не написал, а буковками?

мимо шел
373 3026545
>>026538
Шиз, таблетки
374 3026561
чёто в треде говной пахнуло
375 3026571
ДЕБАЖИМ ПЛЮСЫ ВОЙСАМИ ИТТ
376 3026584
>>026502

>Виндузятничка пугает консольный GDB?



Пугает? Ты сам то в нём много времени провёл?
Точку останова без поиска в гугле сможешь поставить?
Без man назовёшь ключ компиляции с отладочной инфой?

Не надо сравнивать удобство отладки в Visual Studio и gdb. Это несравнимые вещи.
377 3026586
>>026538
Пиздец, ты даже для "Мы вам перезвоним" ебанутый.
Тролль, что ли? Слишком жирно.
image.png138 Кб, 625x390
378 3026656
>>026584
Кем бы мог быть gdb в лучшем мире.
379 3026657
>>026584

>Ты сам то в нём много времени провёл?


Достаточно, и мне в нем удобнее, чем в студии.

>Точку останова без поиска в гугле сможешь поставить?


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

>Без man назовёшь ключ компиляции с отладочной инфой?


-ggdb

>Не надо сравнивать удобство отладки в Visual Studio и gdb. Это несравнимые вещи.


Да, в gdb есть суперкрутой принт и скрипты, это ставит его на голову выше студии.
380 3026666
>>026657

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



В visual studio нажимаешь Shift+F9 и 'print' будет ничем не хуже. И тебе нечего на это возразить.

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

Мелочь, а приятно. И когда таких мелочей сотни и ты к ним привык, ничего другого не надо.

А gdb - его приходится использовать на целевой платформе. Как средство для переноса программ между платформами - годен. Но отлаживать в нём так называемую "бизнес-логику" или разбор протоколовов каких. Ну-ну.
381 3026687
>>026538
Текст можно обрабатывать программно, гуй - можно, но очень сложно. Программист обычно выбирает текст и консоль, макака визжит и трясет ручками, чтобы ей добавили кнопочку в интерфейс.
382 3026696
>>026494
Вот вот, какие то конструкторы деструкторы, консоли сосноли. Давайте разрывы обсуждать
383 3026700
>>026666

>И тебе нечего на это возразить.


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

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


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

> Давайте разрывы обсуждать


Тебе нужно понять природу IEEE 754 (IEC 60559)
Для начала. А тогда уже можно и пообсуждать.
385 3026721
>>026700

>Если надо какую-то чуть более сложную структуру данных ковырять - то уже не очень.


Наоборот - можно даже в тултпиах по спискам бегать, да и не только по спискам, можно сложный структуры данных открывать. Это бомбовая вещь.

При этом на целевой платформе бывают ситуации, когда проще в коде printf'ами отладочной инфомации в консоль/лог навалить, нежели пытаться поймать ошибку в gdb.
386 3026765
>>026561
дак ты зашел!
387 3026786
>>026584
>>026656
к gdb куча фронтендов есть кстати
388 3026808
>>026656
Не мог быть. Пердоговно не может быть хорошим, ибо сделано по принципу юниксвей - "мне в падлу делать хорошо, сляпаю огрызок, серану в консоль, и так сойдет, кому надо будет, сам слепит с чем-нибудь другим костылями из соплей".
389 3026809
>>026786

>к gdb куча фронтендов есть кстати



Разной степени удобства.
Visual Studio это де-факто стандарт разработки. Всякие железячники именно её используют. В мире. В России-то и железячников можно по пальцам пересчитать.
390 3026815
>>026808
TD386 без труда позволял взламывать игры. Просит тебя игра при первом старте ввести код с упаковки, а ты ей вместо кода Ctrl+Break и пошёл смотреть где она этот код проверяет. Шёлк-шёлк - оба-на, зачем такая сложная проверка, если в конце всё решает один jnz ?

Так что не надо тут рассказывать какой Турбо Дебаггер "говно".

Ты вообще не шаришь и нихуя не понимаешь в компьютерах. Тебе бы помолчать, послушать об чём люди толкуют, а не нести сюда свои убогие суждения.
391 3026924
>>026815
Читать научись на что отвечаешь, воен коленного рефлекса.
image.png163 Кб, 817x796
392 3027123
>>026924
А ты у народ поинтересуйся, кто лучше отвечает - ты или я :)

Твои посты подобны постам школьника, который услышал об WM_PAINT, скачал с MSDN пример, подправил в нём пару строчек, скомпилировал и увидел "своё первое окно". Ты спешишь поделиться радостью, заскочил в тему и в предверии своего триумфа начал обсирать консоль. Ну охуеть теперь. Вот именно так ты и выглядишь.

Даже страшно представить что ты тут исполнишь, когда узнаешь о существовании пикрелейтед.

Есть так же небольшой шанс что ты автор 1001-ой библиоткуи виджетов и пришёл как говорили в fido7.mo.echo - зашёл жопой рекламировать свою библиотеку.

Ну и не исключён вариант что ты просто "долбоёб". Ты даже не представляешь на какое количество абсолютно разных людей наехал, наехавши на консоль.
393 3027194
>>027123
Во-первых

>Твои посты подобны постам школьника, который услышал об WM_PAINT, скачал с MSDN пример, подправил в нём пару строчек, скомпилировал и увидел "своё первое окно"



будто что-то плохое

Во вторых: ты чё такой обиженный?

мимо
image.png123 Кб, 801x629
394 3027214
>>027194
А нахуя он консоль, мать нашу, обижает? За мать будем ебать!

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

И я сам таким бывал, хотя до бреда супротив консоли никогда не доходил.
395 3027418
>>027214
Ну тогда согласен, консоль надо уважать
396 3027441
>>023577
Не помогает.
ЦэПлюсПлюс - рассчитывает, что ты уже, как минимум, освоил си на уровне - можешь писать комерческий софт или хотя бы прошивки/драйвера, и теперь тебе надо УЛУЧШИТЬ ЭКСПИРИЕНС.
Соответственно, если плюсы будут первым языком, ты больше будешь ловить себя на "А ПОЧЕМУ ТАК-ТО? ПОЧЕМУ, БЛЯДЬ???" А когда спросишь у кого-нибудь, тебя нахуй пошлют(потому что 95% не знают на самом деле)

Я просто помню, как сука охуенно-то в вузе было.
Вывод кирилицы в консоль: А ТЫ НЕ ЗАБУДЬ setlocale(LC_ALL, "")ю
Число к строке приобразовать itoa/std::to_string
Нормальный форматированный вывод даты - просто иди нахуй, просто иди нахуй.
И вот куча вот этой вот хуйни.

А захочешь чего-то полезного для себя написать, тот же чатик - БУСТ, блядь. Сука. БУСТ, ебучий. Не нравится буст? НУ ТЫ ЛОХ! Ну да ладно, тогда бери винапи а сверху читай маны по линуксам, чтобы ебучие байтики по сети передать. В то время, как на любом другом языке у тебя будет что-то в духе: new TcpServer(new MyConnectionHandler()).Run(); и все, нахуй. Но не в плюсах. В плюсах - либо бери бусты, либо делай велосипед для любой простейшей хуйни.

Сверху. Просто охуитительная система сборки. Ее нет кста. Бери компилятор, бери мейк, прописывай пути к библиотекчкам руками. НЕ ЗАБУДЬ, ЧТО НАДО .CPP .HPP писать как долбоеб. И порядок методов не забудь, А ТО КОМПИЛЯТОР НЕ РАЗБЕРЕТ. Сейчас же, блядь, 2024 год, технологии не дошли до многопроходных компиляторов.

И ради чего? Ради нихуя. Перформанс плюсов в современном мире, только на фоне питона чем-то пиздатым кажется. А если взять ту же джаву, там даже не в 2 раза разница. Зато все есть. Бери. Пользуйся. Кайфуй.

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

Советую, если начинаешь, брать нормальный язык. Жава, Питон, Жаваскрипт, на худой конец - шарпы. Ну а если эти крохи перформанса, которые плюсы дают таки хочется - бери раст, там хоть нормальный туллчейн и из коробки есть почти все, что нужно, чтобы что-то полезное писать.
396 3027441
>>023577
Не помогает.
ЦэПлюсПлюс - рассчитывает, что ты уже, как минимум, освоил си на уровне - можешь писать комерческий софт или хотя бы прошивки/драйвера, и теперь тебе надо УЛУЧШИТЬ ЭКСПИРИЕНС.
Соответственно, если плюсы будут первым языком, ты больше будешь ловить себя на "А ПОЧЕМУ ТАК-ТО? ПОЧЕМУ, БЛЯДЬ???" А когда спросишь у кого-нибудь, тебя нахуй пошлют(потому что 95% не знают на самом деле)

Я просто помню, как сука охуенно-то в вузе было.
Вывод кирилицы в консоль: А ТЫ НЕ ЗАБУДЬ setlocale(LC_ALL, "")ю
Число к строке приобразовать itoa/std::to_string
Нормальный форматированный вывод даты - просто иди нахуй, просто иди нахуй.
И вот куча вот этой вот хуйни.

А захочешь чего-то полезного для себя написать, тот же чатик - БУСТ, блядь. Сука. БУСТ, ебучий. Не нравится буст? НУ ТЫ ЛОХ! Ну да ладно, тогда бери винапи а сверху читай маны по линуксам, чтобы ебучие байтики по сети передать. В то время, как на любом другом языке у тебя будет что-то в духе: new TcpServer(new MyConnectionHandler()).Run(); и все, нахуй. Но не в плюсах. В плюсах - либо бери бусты, либо делай велосипед для любой простейшей хуйни.

Сверху. Просто охуитительная система сборки. Ее нет кста. Бери компилятор, бери мейк, прописывай пути к библиотекчкам руками. НЕ ЗАБУДЬ, ЧТО НАДО .CPP .HPP писать как долбоеб. И порядок методов не забудь, А ТО КОМПИЛЯТОР НЕ РАЗБЕРЕТ. Сейчас же, блядь, 2024 год, технологии не дошли до многопроходных компиляторов.

И ради чего? Ради нихуя. Перформанс плюсов в современном мире, только на фоне питона чем-то пиздатым кажется. А если взять ту же джаву, там даже не в 2 раза разница. Зато все есть. Бери. Пользуйся. Кайфуй.

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

Советую, если начинаешь, брать нормальный язык. Жава, Питон, Жаваскрипт, на худой конец - шарпы. Ну а если эти крохи перформанса, которые плюсы дают таки хочется - бери раст, там хоть нормальный туллчейн и из коробки есть почти все, что нужно, чтобы что-то полезное писать.
397 3027463
>>027441
Пиздос ты поехавший.

> setlocale


> itoa


> вывод даты


Как там на ХР с сишкой и без std? Ты тред не попутал?

> Ее нет кста.


Шзоид, фактический стандарт индустрии на крестах в 2024 - cmake. Там не надо делать ничего из перечисленного тобой. В каком-нибудь CLion ещё и гуй есть, даже в конфиг никогда не придётся заглядывать.

> Сейчас же, блядь, 2024 год


Так ты из 2004 вещаешь, шизик.

> там даже не в 2 раза разница


А в 5-10, когда надо алгоритм написать, джава ещё и памяти сожрёт в десять раз больше.
398 3027467
>>027441

> Буст


Открой для себя мир кути. Не панацея, но очень годно.

> Системы сборки


Смаке конечно кал, но не надо нам и так долгий компилятор ещё сильнее нагружать. Пусть хоть как то работает

> Раст


Пока что слишком сырой. А так обмазаться опционалами можно и в плюсах.

> Брать нормальный язык


Так плюсы и есть нормальный язык. Со своими фичами и ценой за них. Это вы ненормальные.
399 3027471
Если я неплохо знаю шарп трудно будет в плюсы вкатиться?
400 3027475
>>027471
Не будет сложно, скорее непривычно что рядом с сахарницей стоит банка с цианидом.
401 3027476
>>027471
И да, и нет.
А зачем? Деньги легяе на шарпе зарабатывать.
402 3027498
>>027441
БАЗА
Шизики итт уже начали перекрывать своими нелепыми мувами базу, мол симейк есть (фактически стандарт лол), кути, который не пришей пизде рукав тут вообще. Очень слабо. Давайте по всем пунктам кройте или соснули.
403 3027673
>>026156
Ещё раз, для тупых, пик 1. Инфа в книжке от создателя языка не соответсвует его поведению. Там написано, что если дать программе неправильный ввод, то будет понятно, что он неправильный, потому что возраст будет -1. Но когда я ввожу точь, сука, в точь как в книге, я получаю 0.

Откуда там 0? Ну же, шизы, эксперты битоёбли, рассказывайте, как ваш "эффективный" язык без GC и прочей "ненужной" хуиты рандомные значения пихает в переменные без моего ведома? Почему 0 вместо -1 и, самое главное, почему попуск на создателе языка об этом не знает. Стандарт указан 14, я коммпилил 14.

Хотя ладно, один раз я получил -1. Когда дал ^Z после ввода первого значения в PS.
.png64 Кб, 916x668
404 3027689
>>027463
Ну, ладно. Я на самом деле зря наверное так вот злобно написал. Просто хотел типа в двачевском стиле.
Так-то да. Я на плюсах активно писал на первых курсах, а было это как раз во времена, когда XP был актуальным.
Но срсли. Личный опыт таки неприятный. Особенно по сравнению с джавой, которую стали к третьему курсу давать.

Если просто вспомню. Одна из тем была: написать компилятор бейсика. И просто чтобы разбить на лексемы входной поток символов плюсах пришлось столько говна нагородить. А потом еще бегать как ебанутый, искать, где ж ты там память не освободил, где то, где это. А потом - ради прикола уже позже на джаве - вот тебе и регулярочки, вот тебе реально удобное апи для работы со строками. Вот тебе то, вот тебе это. И доки при этом - написаны так, что студент, блядь, понимает, а не вот это вот что на прикриплейде. Даже сейчас мне надо секунд 10, чтобы понять, что это за говно и нахуя оно мне надо.

Корче. Я все равно не рекомендую новичку брать первым языком для изучения плюсы. Больше батхерта испытает, по итогу - либо дропнет, либо переключится на более удобный для себя язык.
405 3027714
>>027475
И в сахарнице тоже цианид.
406 3027715
>>027673
Долбоёб, ты сначала имя вводи, а затем возраст.
Совсем белены объелся?
407 3027731
>>027714
Да ладно! В натруженных руках это всемогущий инструмент.
408 3027784
>>027731
Одебилевший от шарпа зачерпнет ложку цианида и подохнет. Кто начал со скриптов никогда не поймет программирование, это мертворожденный зомби с тухлой жижей вместо мозгов.
409 3027792
>>027673
Потому что это либо УБ, либо иди читай спеки ввода и что там при не совпадении типов.
410 3027813
Объясните мне, почему вы, выродки, до сих пор пишете нейспейс для доступа к имени вместо использования using? Кодовая база на плюсах это по умолчанию блевотный высер слепого. Исключений не бывает.
sage 411 3027938
>>027673
И вот это животное тоже считается человеком.

> cin >> first_name >> age;

412 3028294
>>027813

> пишете нейспейс для доступа к имени вместо использования using?


В хэдере это делать нельзя - протечет что не нужно
Целый неймспейс юзать сразу, тоже такое себе, конфликт имён легко словить
Выцеплять каждый пук через using namespace::name, так это только засорить начало файла
413 3028359
>>028294

> В хэдере


Как там в 2017? Про модули не слышал? Из них ничего не течёт.
414 3028401
да я смотрю никто из разработчиков компиляторов и систем сборки до сих пор про модули не слышал
(кроме мелкософтных которые скорее всего своё говно и продавили в комитете)
415 3028425
>>028401

> компиляторов


Шланг поддерживает больше года, MSVC уже три года как.

> систем сборки


cmake и msbuild поддерживают уже давно, нахуй ты пиздишь.

> не слышал


При этом уже std на модулях переписана и зарелизена после трёх лет тестов, ага.

> своё говно


Самая нужная вещь в современных крестах, наконец можно пидорнуть хедеры и писать код в одном месте без ебли с инклюдами. Ещё и std одной строчкой импортится, вместо десятков инклюдов на каждую фичу.
416 3028490
>>028359
Предлагаешь поесть говна чтобы не пить мочу?
загадка.jpeg129 Кб, 811x456
417 3028588
418 3028636
>>028588
всё, я бросаю плюсы, пойду дальше жсоны перекидывать на жаба скрипте и пить смузи
419 3028651
>>028588
Легко, но через UB.
420 3028653
>>028588
Ну идёшь до элемента запоминая один прошлый, что сложного?
421 3028659
>>028653
Сложность в том, что указателя на начало списка у тебя нет.
422 3028662
>>028659
Ну тогда:
1) Сканим хип процесса
2) находим наш указатель
3) меняем на следующий
4) чистим память по этому
423 3028669
>>028588
Если нам нужно убрать значение, то можем заменить текущее на следующее, и удалить следующую ноду. Указатель на след поставить на через одну.
424 3028909
>>027715
>>027938
Сука, вы реально настолько тупые? В этом и суть примера что после добавления инициализации если пользователь проебется и введёт задом наперед возраст будет -1. Там весь подраздел про инициализацию и почему она должна присутствовать в 99% случаев. Ошибка продемонстрирована намеренно, но когда я её проверил получил другой результат.

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

>>027792
Уже хоть какой-то ответ. Хочешь сказать что реализация cin пихает в числа 0 на символах? Если да то почему об этом не знает создатель языка?

Тот факт что терминал винды на ^Z всё же выдает -1 значение которое там и должен быть, напоминаю намекает что возможно зависит от реализации конкретной ОС. Надо будет в cmd попробовать вместо PS.
425 3028915
>>028588
Это задача не имеет ответа, без ответа на вопрос - циклический список или нет.
Если список не циклический, то запрошенное действие невозможно.
Если список циклический... ну, вы понЕли.
426 3028916
>>027673
Вот вам фулл подраздел, для даунов, если не верите.

Так что там по стандартизированному языку, пидорки?
427 3028919
>>028909

>Ещё раз с++виньи, почему поведение программы из книги от создателя языка не соответствует реальности?


>


Глупая девочка, ты пытаешься спорить со стандартом? Не рекомендую - соснёшь с проглотом.

Твоя задача решается элементарным вводом двух строк и последующим анализом ввода. Всё! И ради такой хуйни ты уже который день ебёшь тут мозги анонам?
Лучше скажи как сюда jpeg7zip цеплять. Или tar попробовать?
428 3028921
>>028916
Тупая-пизда-вкатун, иди нахуй. Просто развернулась, взяла свою тупую голову в руки и ка-а-а-а-а-ак попиздовала нахуй, чтобы только пятки сверкали.
429 3028956
>>028359

> Про модули не слышал?


Слышал, в 20 стандарте ввели, до сих пор нихуя не работает
430 3028963
>>028909

> из книги от создателя языка


Добро пожаловать, Страуструп долбоеб

который не особо сильно решает в языке
1587885979684.png343 Кб, 1762x1087
431 3028969
>>028916

> фулл подраздел


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

> книжке от создателя языка


Что ещё притащишь от создателя языка? Какое он имеет отношение к стандарту?
По итогу мы выяснили только то что ты пидор.
432 3029018
>>028916
А как ты умудрился натянуть труп страуса на стандарт?
Он язык родил создал, а воспитывают совсем другие люди комитет
А пьет за гаражами он с третьими разработчики компиляторов
Плюс он мог банально ошибиться. Или, что ещё проще, за время существования книги стандарт поменялся.
433 3029019
>>029018

> Или, что ещё проще, за время существования книги стандарт поменялся.


Там же была изначальная книга от него по С++98. А потом уже неизвестные редакторы, не факт что даже с участием Страуса, апали редакции под новые стандарты, пока не дошли до абсурда с С++20. Хотя очевидно что Страус не знает современного стандарта, С++11 уже без него рожали. Все эти "garbage value" - это дыры в безопасности, естественно их прикрыли в каком-то стандарте.
434 3029021
>>029019
Примерно поэтому я книги по плюсам и не читаю. Исключение - Мейерс 2014. Отличное введение в современные плюсы после вузовского Си с классами. А все остальное cppref + SO.
Пока выйдут книги по старому стандарту выйдет новый стандарт. Сппкон гораздо полезнее в этом плане. Хотя чё то самые годные 17-18 год будто.
Алсо:
Накидайте годных лекций с сппкона.
435 3029077
>>028921
Пошёл нахуй, псина.

>>028919
>>028969
>>029018
>>028963
>>029019
Слава богу, хоть кто-то наконец-то понял что я спрашивал. Почему раньше не могли сказать? Я то думал что он там великий авторитет и имеет прямое отношение к разработке стандартов и прочей хуйни, а он лох.

Пересаживаться на Липпмана?

>Там же была изначальная книга от него по С++98.


Ты говоришь о C++ Programming Language которая как справочник по языку и STL как я понял. А это книга Programming Principles and Practices именно для вкатунов, которая есть в двух изданиях: для 11 и 14 стандартов. У меня, естественно, второе.

>>029021
А где тогда учить? Всякие васяны и индусы обычно многое тонкости не упоминают в своих видосиках.
436 3029114
>>029077

> А где тогда учить?


https://en.cppreference.com/w/
Или хотя бы это, но за качество перевода не знаю:
https://ru.cppreference.com/w/

Кто вообще читает книги по конкретным технологиям, которые меняются каждые несколько лет? Ты вот видел чтоб пидоРасты читали какие-то книги?
437 3029122
>>029114

>Кто вообще читает книги по конкретным технологиям


Все нормальные люди. Ты не учишь язык по словарю, ты учишь его по учебнику/репетитору/индусу с Ютуба.
С ЯП/фреймворками принцип схож, просто дополнительно придется ознакамливаться с новыми версиями/стандартами языка. В идеале тоже по какой-то небольшой книге с примерами, но если к тому моменту опыт программирования есть то хватит просто почитать статью какую-то, примеры и самому накидать можно будет.

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


Синтаксис плюсов практически не менялся с его появления. if он и в 98 стандарте if.

>Ты вот видел чтоб пидоРасты читали какие-то книги?


Раст учится по растбуку, который, исходя из его названия, книжка. Просто они не отстали в развитии и залили его на халяву в удобное видное для всех место. И обновляют. Но там сильно решают удачные на данный момент решения из-за чего переписывать много не приходится + фанатичность комьюнити. Продаются печатные версии кому так удобнее. Правда надо отметить что книга для людей с опытом. Кто никогда не касался кодинга будет испытывать проблемы с пониманием почти наверняка. После изучения базы можно почитать растономикон который книга про некоторые более сложные вещи которые для десктопа не нужны совсем, весьма хуевую книгу по эмбеддед или туториалы по фреймворкам, по факту, тоже книги.

Так что тут я тебя вообще не понял. Раст учится не по документации как ты советуешь. Да, я вижу что на cppreference есть секция по базису языка, но она написана в недружелюбной для вкатунов форме. Скорее что-то чтобы по-быстрому пройтись по синтаксису имея опыт.

Начал читать параллельно Липпмана. Что понял на данный момент: Липпман долбит сам язык. Уже вначале книги рассказывает в подробностях за базовые типы, как указывать тип литералов, не стесняется упоминать Юникод и всё в этом роде.

Страуструп книгу направил именно на вкатунов так как любит пофилософствовать о том как писать программы правильно. Вкратце пояснил за типы, за безопасный и не очень каст а всё остальное либо дальше будет массивы и указатели у него ближе к концу книги, у Липпмана не смотрел но вроде в начале либо тебе оно не надо. Но вообще Страуструп дружелюбнее. Он растекается мыслями часто отходя от плюсов совсем, но в то же время говорит те вещи которые важны для любого ЯП. Та самая хуйня, о которой индусы и не вспоминают даже не работе.
437 3029122
>>029114

>Кто вообще читает книги по конкретным технологиям


Все нормальные люди. Ты не учишь язык по словарю, ты учишь его по учебнику/репетитору/индусу с Ютуба.
С ЯП/фреймворками принцип схож, просто дополнительно придется ознакамливаться с новыми версиями/стандартами языка. В идеале тоже по какой-то небольшой книге с примерами, но если к тому моменту опыт программирования есть то хватит просто почитать статью какую-то, примеры и самому накидать можно будет.

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


Синтаксис плюсов практически не менялся с его появления. if он и в 98 стандарте if.

>Ты вот видел чтоб пидоРасты читали какие-то книги?


Раст учится по растбуку, который, исходя из его названия, книжка. Просто они не отстали в развитии и залили его на халяву в удобное видное для всех место. И обновляют. Но там сильно решают удачные на данный момент решения из-за чего переписывать много не приходится + фанатичность комьюнити. Продаются печатные версии кому так удобнее. Правда надо отметить что книга для людей с опытом. Кто никогда не касался кодинга будет испытывать проблемы с пониманием почти наверняка. После изучения базы можно почитать растономикон который книга про некоторые более сложные вещи которые для десктопа не нужны совсем, весьма хуевую книгу по эмбеддед или туториалы по фреймворкам, по факту, тоже книги.

Так что тут я тебя вообще не понял. Раст учится не по документации как ты советуешь. Да, я вижу что на cppreference есть секция по базису языка, но она написана в недружелюбной для вкатунов форме. Скорее что-то чтобы по-быстрому пройтись по синтаксису имея опыт.

Начал читать параллельно Липпмана. Что понял на данный момент: Липпман долбит сам язык. Уже вначале книги рассказывает в подробностях за базовые типы, как указывать тип литералов, не стесняется упоминать Юникод и всё в этом роде.

Страуструп книгу направил именно на вкатунов так как любит пофилософствовать о том как писать программы правильно. Вкратце пояснил за типы, за безопасный и не очень каст а всё остальное либо дальше будет массивы и указатели у него ближе к концу книги, у Липпмана не смотрел но вроде в начале либо тебе оно не надо. Но вообще Страуструп дружелюбнее. Он растекается мыслями часто отходя от плюсов совсем, но в то же время говорит те вещи которые важны для любого ЯП. Та самая хуйня, о которой индусы и не вспоминают даже не работе.
438 3029131
>>029122

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


Хуёвая аналогия. Надо сравнивать изучение ЯП по книгам с изучением грамматики языков по детским сказкам.

> Синтаксис плюсов практически не менялся с его появления.


Меняется каждый стандарт. Из примеров для С++20 -> С++23: поменялся синтаксис лямбд, поменялся синтаксис ключевых слов this и auto, изменения с consteval - в том числе и синтаксис if поменялся, поменялся синтаксис индексации массивов. Это я перечислил только то что в голову сходу пришло, там ещё десяток мелких изменений. Синтаксис того что я перечислил от С++23 уже не валиден в С++20, хоть обратная совместимость и есть.

> Страуструп книгу направил именно на вкатунов так как любит пофилософствовать о том как писать программы правильно.


Только вот в его книге, как мы выяснили, код нерабочий.
439 3029137
>>029131

>Только вот в его книге, как мы выяснили, код нерабочий.


Так и должно быть. Как еще определить что ты понимаешь код, а не копипастишь как дебил? Тот кто книгу читал, должен код понимать, понимать что он пишет, а значит исправлять ошибки. А если давать рабочий код. дебилы будут его копипастить совершенно ничему не учась, такая книга не имеет смысла.
440 3029148
>>029122
последние книжки страуструпа очень плохие
читать стоит "язык с++ третье специальное издание" - изложение в основных главах по стилю (лакончиность, концентированность) напоминает к&r, но 4я часть ("проектирование на с++") выбивается по стилю, там больше рассуждений, возможно не очень удачная часть, которую ему стоило вынести в отдельную статью статьи а не добавлять в книгу, так же по сравнению с k&r не очень удачные дополнения, в то время как "приложение А" k&r я считаю небольшим шедевром в шедевре; самое большое достоинство в книге - это задачки на кодинг в конце каждой главы, задачи офигенные
а самая интересная книга у страуструпа - это "дизайн и эволюция языка"
вообще нужно знать что страутруп последние десятилетия разленился и нихуя не делает и знатно деграднул (типичное поведение удачного европейца кстати, в отличие от англо-саксов которые могут как белки в колесе до смерти крутиться), дохуя лет проработал в морганстенли на символической должности рубая лям баксов в год, а последние года вообще откровенно писал что мол ему больше нравится жрать и бухать в компании своих родственников и друзей чем заниматься чем то полезным
441 3029187
>>029148

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



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

Учитывая что страуструп уже принёс довольно много обществу, если опускаться на твой уровень суждений ставя пользу в абсолют с чем я не согласен, довольно инфантльно на мой взгляд
image.png280 Кб, 800x600
442 3029400
>>029187

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



До скольки надо повзрослеть?
443 3029585
>>029187
бать а напомни кто твое авторитетное мнение по этой теме спрашивал
444 3029681
>>029187

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


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


Баба, говорит одно, делает наоборот.
445 3029781
>>029400
Хотя бы до возраста страуструпа
9a6-235302092.jpg19 Кб, 413x395
446 3029851
>>029400
>>029585
>>029681
Вы только посмотрите, крестопетухам ИТТ неприятно от того, что их мокнули их петушиной бошкой в реальность.

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

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


Это двач сынок, ты тут новенький да?

>Баба


Инцела видно издалека, из глубин подсознания всегда всплывает самое больное

Вы бы так не напрягались! А то и до 30 не доживёте. Сходите лучше проветрите мысли и наконец перекатитесь на нормальный язык уже, жизнь корттка!
447 3029884
>>029851

>Я понимаю


Ты? Видишь ли, ковырялка, чтобы тебя ебали достойные аноны, это ещё надо заслужить. Проблема в том, что ради удовольствия мало кто хочет тебя ебать - не вышла ни жопой, ни сиськами, ни мордашкой. Остаётся только ебля тебя без смазки, в качестве наказания. На сухую. И даже это лениво. Так съебись уже - ты уныла, ты очень уныла.
448 3030076
>>029137
Не должно, он примеры показывает. И в книге никто ничего за то что должно происходить если вместо числа пихать строку не написано. Точнее, по факту сказано что должно быть то же самое что и было в переменной изначально.

>>029131

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


Это уже от книги зависит.

>Синтаксис того что я перечислил от С++23 уже не валиден в С++20, хоть обратная совместимость и есть.


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

>>029148
Но я не читаю последнюю, я читаю уже десятилетнюю книгу. И задачки в конце разделов там тоже есть.

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


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

>>029400
Надо чтобы жизнь не хуйнёй была как у типичного стереотипного двачерка. Иначе тебе будет нравится долбить хуйню потому что тебе больше нечем заняться в жизни.
image.png33 Кб, 1280x708
449 3030257
>>030076

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


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

А?
450 3030373
>>030257
скуф иди купи сиську пива и расслабься уже
451 3030404
>>030373
Согласен, но на сначала тебе по губам поводить.
452 3030413
>>030404
Кто о чем, а скуфы все о хуях
453 3030425
>>030413

>а скуфы все о хуях


Это точно. Хуй это голова всему. А пизда, она кому кормилица, а кому и обуза.

А хуле пиво-то? Чего бы и не благородного чего? Коньяка там или водочки качественно, а можно и абсентом закинуться.
454 3030598
Тред скатили в говно. Вы нахуя сюда пришли? Вопросы спрашивать или ныть по поводу синтаксиса? Не нравится - уебывайте в свою динамически типизированную питиновскую парашу, которая работает в 4 раза медленнее плюсов. Или в своё разожраное джава говно. Чел не умеет std::cin использовать и говнит тут, охуеть блядь. Плюсы для умных, с горящими глазами, мы за нулевой оверхед. За вами не будут подтирать сопельки господа зумерки, идите нахуй.
455 3030620
>>030598

> Плюсы для умных, с горящими глазами


А хуле умные такое говно сделали?
Хуле у людей с горящими глазами модули из 20 стандарта уже как 4 года это неработающая нечто?
456 3030623
>>030598

>Вопросы спрашивать



Охуел? Я сюда пиариться пришёл через ответы на вопросы.
Ты кого вкатуном обозвал?
457 3030655
>>030620

>модули


Есть мнение что в интересных проектах они не нужны.
458 3030695
>>030598

>Плюсы для умных, с горящими глазами


Двачую, иначе вкатиться не в галеру невозможно, спросят что делает мув и после ответа "мувает" быстренько закончат собес. Если вы не готовы потратить полтора-два года на глубокое изучение языка то даже не начинайте, вы максимум вкатитесь в яндекс перекладывать жсоны на userver-е и будете сидеть на одном грейде по 3 года.
459 3030703
>>030620

> неработающая нечто


Почему-то у всех кто их использует всё работает. В том числе у майков std и виндоаое API на модули переведено. За последние годы уже всё вылизано, как в компиляторах, так и в IDE. А хедеры - это реально кал, из-за них до сих пор имеем header-only либы и cpp-файлы в 10к строчек, от которых страница на гитхабе зависает намертво при попытке навигации в коде.
460 3030708
>>030695

>и будете сидеть на одном грейде по 3 года.


А как надо? 3 года и синька?
461 3030709
>>030703

> Header only


А мне они наоборот нравятся
462 3030712
>>030708
У яши система грейдов более гибкая чем джун-мидл-синька если что.
463 3030717
>>030712
13 грейд стажер
14-15 грейд - джун
15-16 - мидл
17 - сеня
18 - ведущий разработчик

Что тут более гибкого я не знаю, лол. Такие же стажеры - джуны - мидлы и сеньки.
464 3030719
>>030703

>А хедеры - это реально кал


Хидеры это заебись.

>и cpp-файлы в 10к строчек


Разве что автосгенерённый.
У нормального разработчика с 1.5К строчек начинается желание декомпозиции, а к 2К строчкам он обычно это желание реализовывает.

И да, никто не заставляет тебя тащить всё в хидеры, достаточно вынести туда некоторые типы данных и интерфейсы.

Хуй поймёшь с чем ты борешься.
465 3030720
>>030717
Ты же сам промежуточные грейды написал, вот до них и подниматься.
1 год - стажер
1-3 года - джун/премидл
3-5 лет - мидл/пресенька
5+ сенька
В менеджмент по желанию и возможности, или уходить туда где есть грейды повыше типо Staff/Principal
466 3030736
>>030719

> Хидеры это заебись.


Из них вечно протекает какое-то говно, инкапсуляция нулевая. Когда несколько зависимостей в одном файле ещё надо ебаться с порядком инклюдов, чтоб из одного не текло в другой и код не ломался. Зачем вся эта ебля, когда можно её не иметь.

> Разве что автосгенерённый.


Ты видимо не видел крупных популярных крестовых проектов на гитхабе.
Вот держи проекты с 50к звёзд, причём никого это не смущает, крестовики с основной массе считают это хорошим кодом:
https://github.com/ggerganov/llama.cpp/blob/master/llama.cpp
https://github.com/ocornut/imgui/blob/master/imgui.cpp
467 3030750
>>030712
Я отлично знаю какие там грейды, вопрос не в этом.
Сколько лет по твоему занимает рост от Джуна до мидла, от мидла до сеньки?
468 3030755
>>030750
Я же уже расписал. До мидла - 3 года, до сеньки - 5. Это если авераге компанию брать конечно, в нвидии сеньки это 8+ лет опыта, а в гугле сенька с 2-мя годами опыта может быть.
469 3030772
Подскажите пожалуйста, как собрать проект на linux ?
470 3030789
>>030755
Ну вот я и не согласен, что 5 лет это сенька. На мой взгляд это что то между мидлом и сенькой. Поэтому и грейд в 3 года имхо нормально.
471 3030790
>>030772
./configure && make
472 3030794
>>030790
и
sudo make install
473 3030798
>>030794
После инсталла
rm -rf /
474 3030804
>>030798
можно и

dd if=/dev/zero of=/dev/sda

Или как том оно щас называется.
475 3030806
>>030798
>>030804
А потом
wsl --install
476 3030807
>>030804
Не знаю, у меня хоть линукс и рабочий ноут, но команд вообще не знаю кроме базы пм мв сп сд греп. И баш немного, чисто рутину снизить.
477 3030809
>>030794
Ему же надо только собрать, а не превратить линукс в Slackware, насрав в /usr.
478 3030818
Адепты языка, который в 2024 веке не умеет в юникод из коробки, нахуй вы дышите?
479 3030820
>>030809

>Slackware


А вот животинку нашу не надо обежать.
Slackware rulezzz.
480 3030822
>>030818
Кыш отсюда. И не тащи бред.
481 3030833
>>030818
Плюсы нужны не для написания программ, где нужен юникод. Они нужны, чтобы реализовать этот самый юникод.
482 3030839
>>030818

>из коробки


Он еще и в нетворкинг без коробки не умеет, тем не менее весь хайлоад на нём живет. Представляю как ты охуеешь когда узнаешь про существование библиотек..
483 3030864
Вопрос Clion-спецам: как там с лицензией? JetBrains прикрыли лавочку для рашки, как теперь работаете? Он ломается или что, а то триальная версия только 1 месяц...
484 3030867
>>030864
Пиратство.
image.png231 Кб, 663x580
485 3030877
>>012308 (OP)
Захотел наехать на ОПа, мол, зачем ты сюда "китайские мультики" тащишь, мол, тема серьёзная.
Но потом пригляделся к картинке и заметил вот это.
И сразу ничего плохого в "китайских мультках" не вижу. Хорошие мультики.
sage 486 3030883
>>030598
В 4 это жавая какая нибудь, а питон поди в 40
sage 487 3030884
>>030736
Сейчас бы обоссаный нонейм на имгуи пиздел лол. Вот потека.
488 3030890
>>030598
Ну так сессии в вузиках закончилась, хеш-таблицы и сортировки сданы, теперь можно повыёбываться, пока каникулы.
489 3030899
>>030890

> хеш-таблицы


И эту животинку тоже не надо обижать.
std::map конечно хорош, прекрасен и заебат.
Но для кастомного случая так же пишется кастомный хэш и им можно ебать std::map - насколько бы прекрасно не был написан std::map, но реализованная опытными руками хэш-таблица порвёт в клочья std::map по скорости, простоте и эффективности.
490 3030901
че сказать-то хотел
491 3030907
>>030899
Тогда уж std::unordered_map. В std::map же дерево, а не хеш-таблица.
492 3030914
>>030864
Летом покупал бандл из решарпера, райдера и еще какого-то дерьма.
через своего человечка в ОАЭ. регистрировал мне аккаунт тоже он, со своего айпи
493 3030917
>>030907

>unordered_map


Ты прав, а я лоханулся.
Но если самому писать, то можно обогнать по скорости и его. В каких-то частных случаях.
494 3030925
>>030917
Сегодня весь путь на работу бежал за автобусом. Сэкономил 10 рублей. Завтра побегу за такси — экономия еще больше!!!
495 3030937
>>030925
It depends.
В общем случае ты прав. Нынче экономить биты и такты не нужно.
Но вот есть люди, которые несчастливы, если не сэкономили ни бит, ни такт - день зря прошёл. И изредка такие проекты тоже бывают. Очень редко, но бывают. И иногда такие люди и такие проекты пересекаются.
496 3030941
>>030917
Не надо ничего писать. Уже есть флэтмап/пхмап которые ебут стдшную. Ну и на си тоже есть пара быстрых
497 3030944
>>030941

>Не надо ничего писать.


Тоже верно. Достаточно спиздить годную хэш-функцию, а уж использовать её и школьник сумеет.
498 3030997
Ахуеть, модули уже в симейке поддерживаются?
499 3031033
Есть ли хоть одна причина не делать класс movable?
500 3031120
>>030818
Это ты про какой язык? Кресты уже с С++11 имеют поддержку юникода в std.
>>030864
Активатором активируй.
>>030997
Давно, год точно.
501 3031181
>>031120

>Это ты про какой язык? Кресты уже с С++11 имеют поддержку юникода в std.


Ага, особенно на винде.
502 3031201
>>031181
Да и на винде, ты серишь же. С С++11 есть поддержка как виндового UTF-16, так и обычного UTF-8.
503 3031210
>>031201
Раз я серю, скинь мне код C++, который выводит вот это сообщение в консоль.
504 3031214
>>031210
А какое отношение имеет консоль к языку?
505 3031221
>>031210
Какое отношение имеет консоль к С++ и std? Ты серишь переобуваясь на ходу.
1685764229674.png102 Кб, 1352x1137
506 3031242
>>031210
Под виндой консоль юникод не поддерживает из коробки, а не кресты. Переводишь консоль в режим юникода и пишешь туда.
507 3031301
>>031242

>#include <Windows.h>


так не честно
508 3031314
>>031301

>консоль Windows


>так не честно


Ты серишь.
509 3031362
>>012308 (OP)
Кто нибудь объясните пж за этот пассаж в cppreference:

If a union contains a non-static data member with a non-trivial default constructor, the default constructor of the union is deleted by default unless a variant member of the union has a default member initializer.

Допустим , есть

union M {

bool var1 {false};
S var2 //нетривиальный дефолтный конструктор

}

Каким образом компилятор понимает, как нужно дефолт конструкировать M m, если я инициализовал только var1? Я понимаю, если бы я инициализировал var2, ведь он то как раз и нетривиальный, разве это не значит что нужно указывать информацию именно о нем?
510 3031382
>>031362
А оно компилируется???
511 3031389
>>031362
Что непонятного? Для чего указал дефолт, то и конструируется. Два дефолта для юниона нельзя указать. Если не укажешь дефолт для любого мембера - у юниона дефолтный конструктор будет удалён и надо будет инициализировать юнион вручную.
512 3031439
>>031214
>>031221

>КАНСОЛЬ ПЛАХАЯ, МАМ, ЕЗЫК ХАРОШИЙ!!!111ЁЁЁ


1) Для теста я использовал ConEmu
2) Все протестированные мной языки - а я специально проверил: Java, Rust, Go, Node.js, Python - не испытали с обеими консолями (стандартный terminal и conemu) никаких проблем

>>031242

>windows.h


>SetConsoleOutput(65001)


Как дела с переносимостью?
513 3031441
>>031439

> КАНСОЛЬ ПЛАХАЯ, МАМ, ЕЗЫК ХАРОШИЙ


Консоль не часть языка, консоль часть винды, ты тупостью троллишь?
изображение.png34 Кб, 1646x143
514 3031442
Сама винда физически не позволяет программисту кодировать весь диапазон юникода.
515 3031447
>>031441

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


Ни у одного другого языка с этой консолью проблем нет, ты жопой читаешь?
516 3031454
>>031442
UTF8 решает эти проблемы. Да и суррогаты это не так уж страшно, как может показаться.

Другое дело что 32 бита для символа это очень удобно на 32х битных архитектурах.

16 бит на символ в Винде вполне объяснимы. Винда начала разрабатываться на Intel 80286. Были такие компьютеры - IBM PC/AT-286. А процессор 80286 - 16-ти битный.

Чему можно удивиться, так это насколько неплохо спроектирована графическая оболочка Винды, что "костыли", заложенное несколько десятков лет назад, живут и здравствуют до сих пор.
517 3031462
>>031454

> Винда начала разрабатываться на Intel 80286



Какая винда? Ядро NT полностью с нуля переписано.
518 3031469
>>031389
Ты хочешь сказать что дефолтному конструктору юниона достаточно лишь одного инициализированного члена для создания объекта? А когда их уже двое и больше, то он не может выбрать под какой объект создавать, но при этом если все члены тривиальные, то этой проблемы нет

Т.е.

M m; // создается юнион с активным членом bool
S n; // объект класса с нетрив конструктором

m.var2 = n; //теперь var2 активный член
519 3031488
>>031462

>Какая винда?


2.xx
Насчёт третьей не помню, вроде тоже на 286 запускалась.

> Ядро NT полностью с нуля переписано.


Я знаю. И это отдельная тема.
А знаешь ли ты что то ядро NT с тех пор не переписывалось ни разу, а к нему лишь добавлялись новые фичи?

Например, в Windows 2000 ввели в драйверах управление питанем и старые драйверы отвалились.
1671640932296.png41 Кб, 965x584
520 3031617
>>031439

> Как дела с переносимостью?


С переносимостью куда? Ты сначала просишь сделать под виндой, теперь уже под виндой нельзя, шизоид. Тебе уже написали что это проблема терминала, не умеющего выводить юникод, а не крестов. Ну и даже в сишке можешь написать ifdef _WIN32, никто не запрещает делать только под виндой SetConsoleOutputCP, а на линуксе не использовать это. Либо юзер должен поставить галку пикрилейтед, чтоб консолька по умолчанию работала в UTF-8, но это может сломать легаси софт с ХР, выводящий текст в легаси-кодировках типа Windows-1252.
>>031442
WINAPI является легаси уже давно. Так же как и поддержка нормального юникода есть с десятки.
521 3031627
>>031469

> А когда их уже двое и больше


То код не скомпилируется даже. Ты бы хоть свои фантазии проверял на практике.
522 3031663
>>031439

>Как дела с переносимостью?



Очень плохо. Можно скзать даже полный пиздец.
Это ж надо в коде такое написать.

#ifdef _WIN32
SetConsoleOutput(65001);
#endif

Я на такое не подписывался! Это ужасно!
1694068244580.png99 Кб, 1678x1004
523 3031671
>>031439

> Как дела с переносимостью?


Держи, даже без вызовов WINAPI, если вдруг у тебя нет windows.h.
524 3031717
>>031671
вызывать внешнюю команду для таких целей это моветон.
Такой золотой костыль.
изображение.png66 Кб, 1277x188
525 3031719
>>031617

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


Можно, просто нужно, чтобы и не под виндой нормально отображалось.

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


Чел, причем тут терминал? Я тебе в третий раз повторяю, все остальные языки не испытывают никаких проблем с этим терминалом. Безо всякой ебли с #endif'ами и прочими SetConsoleOutput'ами. Ты мне продолжаешь ебать мозг, что у меня не тот терминал. Ты что, дурак?

>Либо юзер должен поставить галку пикрилейтед, чтоб консолька по умолчанию работала в UTF-8


Чел, блять.
526 3031726
>>031719

> с этим терминалом


Не с этим. У них свой терминал и накладные расходы соответствующие.
527 3031731
>>031719

>все остальные языки не испытывают никаких проблем с этим терминалом



Все остальные языки неявно вызыват ту самую - SetConsoleOutput(65001);

JFYI
528 3031743
>>031726

>Не с этим. У них свой терминал и накладные расходы соответствующие.


Что у них там свое, блять? Ты совсем поехавший?

>>031731

>Все остальные языки неявно вызыват ту самую - SetConsoleOutput(65001);


И только в великом C++ в 2024 веке это нужно делать врукопашную, охуенно. Если там простой вывод юникода в консоль организован таким чрезпиздяным изподвывертом, боюсь представить какие сюрпризы меня ждут при написании чего-то сложнее println("Hello World"). Охуенный язык, программирования, ничего не скажешь.
529 3031744
>>031719

> все остальные языки не испытывают никаких проблем с этим терминалом


Это какие? Раст в консоль на винде пишет в UTF-16, он как раз не поддерживает нормальный юникод, чмоха.

> Безо всякой ебли с #endif'ами


То что у тебя неявно строки конвертятся или вызывается WINAPI по умолчанию, ещё не значит что твои ЯП умеют в юникод на винде просто так.
530 3031748
>>031743

> акие сюрпризы меня ждут при написании чего-то сложнее println("Hello World")


Нужно явно указывать перевод строки, иначе следующий вывод "Hello World" прилепится к предыдущему. вообще ужас.
531 3031749
>>031743

> врукопашную


Заебись низкоуровневый язык, дёргающий всё подряд из WINAPI даже не спрашивая тебя. С таким подходом можно и на питоне писать, он за тебя всё сделает.
1676318868985.png314 Кб, 1592x1703
532 3031763
>>031743

> Охуенный язык, программирования, ничего не скажешь.


А теперь ор для всего треда - как в расте выводится юникод в консольку винды. Скрин из std пидораста.
533 3031807
>>031447
Покажи вывод скомпилированных прог на питоне и жаве
534 3031819
>>031763
Что низкоуровнего в printf? Это же кластерфак мегатонн говна, высочайшего уровня, почти язык программирования со своим синтаксисом. Если нужен низкий уровень, для него есть соответствующие функции, но даже они - обертки для конкретных осей, так что если надо действительно чисто, юзаешь апи оси напрямую. Си позволяют всё, программисту доступны любые уровни, язык за тебя ничего не решает. как в скриптоговне для макак тупых, которые ненавидят думать, вот и привыкли, что за них дядя решает и рвутся от сей где надо своей головой думать и принимать решения имея множественный выбор вариантов.
1594753309015.png76 Кб, 1755x821
535 3031833
>>031743

> в 2024


В 2024 не нужно, если у тебя С++23 есть. Он как раз за тебя сделает всё.
536 3031858
>>031819

>Что низкоуровнего в printf? Это же кластерфак мегатонн говна, высочайшего уровня, почти язык программирования со своим синтаксисом.



printf охуенен. Просто охуенен.
Вот у меня в чуланчике припрятана реализация (чужая) snprintf, которая работает без операционной системы. Чисто функция, которая пишет в строку по всем правилам форматирования printf.

Ты часом не Дон Кихот, который воюет с ветряными мельницами?
537 3031893
Кто-то сталкивался с такой проблемой: при установке Qt на Linux отсутствуют комплекты для сборки проектов? Устанавливаю командами sudo apt install qtcreator; sudo apt-get install qt5-doc qtbase5-example qtbase5-doc-html, Linux Mint, если что
sage 538 3031915
>>031663
>>031439
>>031442
>>031439
>>031210
>>031743
Грязноштанных детишек полон тред.
539 3031918
>>031915
Пиздуй нахуй, говно.
540 3031993
>>031833
У меня как раз 2023 стандарт, MSVC вся хуйня
541 3032165
>>030899
проиграл с тебя, опытный чушок, что ты там напишешь своими потными, волосатыми, заплывшими жиром ручонками? А уж если и напишешь - сразу кидай пулреквест в стдлиб
542 3032222
>>032165

>сразу кидай пулреквест в стдлиб


Тупая пизда, пущай в твоей наплечной параше, именуемой в народе головой, возникнет хоть одна светлая мысль, а именно - в stdlib/stl не нужны кастомные решения под конкретную задачу.

Заруби себе это на носу!
543 3032395
Подскажите пожалуйста, как засунуть в сборку картинки для проекта ?
544 3032459
>>032395

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



MSVC или GCC? В ресурсы, если MSVC.
Насчёт gcc точно не скажу как, но я обычно пишу программу из 15 строчек, которая переводит двоичные файлы в си-файлы вида

extern "C" const char picture1[3400] = { 0x11, 0xf3,

не сказать, что это красивое решение, но работает идеально.

Возможно что пока топтал этот ответ, кто-то уже по-красоте расписал.
545 3032602
Книга "Эффективный и современный с++" заменяет "Эффективное использование с++" или их надо обе читать? Последнюю на первых страницах гугла удалили и я не знаю где ее скачать (В шапке тоже нету)
546 3032605
>>031763

>раст


любая ф-я выполняющая действительно полезную работу, на 3-4 строке: unsafe {
и пошли говнякать
как же я проигрываю с промытых фанатиков
547 3032615
>>032605
сейчас бы в плюсо треде ансейф коду удивляться

ладно бы еще какие то жаберы ныли
548 3032680
>>032615
Я лично удивляюсь тому, как растеры называют это безопасным кодом.
549 3032689
>>032680
Как будто ты свой код безопасным не называешь?
550 3032690
>>032689
Конечно не называю, ведь плюсовики не умеют складывать...
551 3032693
Насколько сложно добавить в плюсы возможность возвращать из функции несколько аргументов сразу?
Какие подводные в такой фиче могут быть?
552 3032694
>>032693
std::tuple и structural binding
553 3032708
>>032694

> std::tuple


ну я имею ввиду менее bloat способ возвращать аргументы
да и разве если я стандартную либу вырублю tuple останется?
sage 554 3032729
>>032708
Ты совмем отупел со своипи плюсами? Делаешь нужную структуру, функция возвращает структуру . Все.
555 3032736
>>032729
И под каждую функцию фигачить структуру, которая ещё будет юзеру протекать? Так ещё юзеру каждое поле из структуры доставать и дожить туда куда ему надо?
556 3032738
>>032736
В чем проблема стандартной либы, не понял
557 3032740
>>032738
В том что в некоторых случаях ее использовать нельзя и в проектах ее вырубают, а фичу все равно хочется
Да и странно что фича зависит почему то от состояния стандартной либы
558 3032746
>>032740
Я вас выслушал и могу вынести вам диагноз:
Преждевременная шизофрения.
559 3032748
>>032708
Проиграл с этого оладушка.

Стандартная либа это часть языка, что ты там отключать собрался? Более того, стандартные заголовки могут не быть физическими файлами на диске.
560 3032758
>>032748

> что ты там отключать собрался


Стандартную библиотеку

> Более того, стандартные заголовки могут не быть физическими файлами на диске.


И что из этого следует?

std::tuple у тебя без стдлиб работает или нет?
если нет, то зачем ты мне вообще это написал?
1664088624354.png38 Кб, 766x450
561 3032768
>>032693
Пикрилейтед.
>>032758
Если напишешь свою стандартную либу, то конечно будет работать. Синтаксис не поменяется от отсутствия стандартной библиотеки. Но тот кто переписывает std - конченые дегенераты, потому что std даже без ОС работает, нет ни одной причины почему её нельзя использовать, кроме того что ты даун.
562 3032772
>>032768
Похоже этот чел в нии работает, знаю пару таких, где СТД запрещен.
563 3032774
>>032768

> потому что std даже без ОС работает


cout у тебя как без ос работать будет, а vector?

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


Как будто это я всем запрещаю ею пользоваться, просто по факту это много кто делает

> Если напишешь свою стандартную либу, то конечно будет работать.


А если не буду переписывать стандартную билиотеку, то не будет работать?

> Пикрилейтед.


Ты возвращаешь одно значение
564 3032788
>>032774
Основной функционал std работает без ОС. И представь себе, динамические аллокации из std будут работать без ОС. В линуксе динамические аллокации предоставляет libc, а не линукс.

> cout у тебя как без ос работать будет


Как обычно, в микроконтроллерах в качестве stdout будет вступать JTAG, в него и будет писать cout.

> а vector?


Тем более нет никаких проблем.

> Ты возвращаешь одно значение


Ты совсем дегенерат, да?
565 3032792
>>032758

>И что из этого следует?


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

>The Language Support Library The Language Support Library defines types and functions that will be used implicitly by C++ programs that employ such C++ language features as operators new and delete, exception handling and runtime type information (RTTI).



>>032758

>std::tuple у тебя без стдлиб работает или нет?


Вопрос бессмысленный. Переформулирую: работают ли части языка, если мы их выбросили? Потому-то я с тебя и проиграл, оладушек. Можешь, кстати, еще объяснить как ты собрался либу стандартную отключить, тоже покекаем.
566 3032796
Если что напоминаю, что вопрос заключался в том сложно ли такую фичу реализовать, а не нужен/не нужен тапл

>>032788

> без ос


> в Линуксе


Что прости?

> Ты совсем дегенерат, да?


У тебя из функции возвращается одно значение, что тут не понятного?

> Тем более нет никаких проблем.


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

>>032792

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


Тапл в этот список входит?

> Переформулирую: работают ли части языка, если мы их выбросили?


Как это может быть частью языка, если тапл сам написан на плюсах?

> Можешь, кстати, еще объяснить как ты собрался либу стандартную отключить, тоже покекаем.


Не линкуешься с ней и все
567 3032798
Вы наверное удивитесь, но и С можно пользоваться не используя libc
568 3032799
>>032796

> Что прости?


Для использования libc тебе не нужен линукс, деб.

> У тебя из функции возвращается одно значение, что тут не понятного?


Ты синтаксис крестов не знаешь? auto [a, b, c] - объявление трёх переменных.

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


Легко, если под микроконтроллер написана std с его поддержкой. На Ардуино вектор работает, ты бы не позорился тут.
569 3032800
>>032746
Похоже на то.
>>032740
>>032736
Протекает твоя шиза.
570 3032801
>>032799

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


А я говорил что это не так?

> auto [a, b, c] - объявление трёх переменных.


Как твои переменные меняют факт того что сигнатура твоей функции возвращает одно значение

> если под микроконтроллер написана std с его поддержкой


А если не написан?
1645744659094.png27 Кб, 745x146
571 3032806
>>032801

> сигнатура твоей функции возвращает одно значение


А это что, блять? Дай будем учить тебя считать до трёх, как карапуза.
572 3032807
>>032806
Это типы которыми ты параматризуешь другой тип
Функция у тебя возвращает одно значение типа: std::tuple<int, int, int>
Что собственно в сигнатура и написано, просто ты потом этот тапл распакуешь на несколько значений
573 3032809
>>032807
Ты реально траллишь тупостью? В любом языке так же будет, тапл - это кусок памяти с несколькими значениями. Как таких дебилов в НИИ держат?
574 3032814
>>032768

>Пикрилейтед.



Охуенно. В том смысле, что пишу на плюсах со времени Borland C++ под MS-DOS, но от некоторой конструкции в твоём скриноште охуел.

"Дед, ты стандарты не учишь!" - скажете вы. По-е-бать.

Для какого-то проекта будет достаточно скопипастить код со скриншота и не думать. Но!!!

Я утрирую, но когда нужно выебать по скорости всех-всех-всех-всех. Жёстко выебать по скорости, то, я утрирую, делается так:

В main выделяется структура с нужными полями и дальше указатель на неё гонится хоть до 1000-го уровня вложенности.
Функции чего-то там читают/заполняют в полях структуры.
Экономия выходит за счёт минимазии количества параметров, которые кладутся на стек при каждом вызове функции.
575 3032815
>>032796
Как язык может быть языком, если компилятор плюсов написан на плюсах?
А на чем блять ещё должна быть написана стандартная библиотека? На святом духе?
576 3032816
>>032809
Во первых для возвращения нескольких значений тебе тапл как структура данных в языке не необходима
Во вторых

> В любом языке так же будет, тапл


Только он не будет частью стандартной библиотеки, а типом встроенный в сам язык
577 3032817
>>032807
Делай ассемблерную вставку, клади возвращаемые значения в регистры откуда будешь читать.
Либо принимай по ссылке значения для возврата и ничего не возвращай.
578 3032818
>>032798

>но и С можно пользоваться не используя libc


И С++ тоже. -nostdlib
При этом классическая stl отваливается, но можно найти в Сети её суррогаты, которым OS не нужна.
579 3032819
>>032815

> Как язык может быть языком, если компилятор плюсов написан на плюсах?


Поэтому компилятор и не часть языка
580 3032820
>>032819
Я тебя понял, съеби из треда пожалуйста
581 3032822
>>032820
А то что? Заплачешь?
582 3032826
>>032822
Ты отпугиваешь адекватных новичков.
Зайдет зелёный в тред, а тут шиз стандартную библиотеку отключает.
583 3032828
>>032814

> В main выделяется структура с нужными полями и дальше указатель на неё гонится хоть до 1000-го уровня вложенности.


Сколько там будет кэшмиссов из-за того что структура где-то в начале стека валяется?

> Экономия выходит


Нет никакой экономии, в тапле значения лежат радом друг с другом, а в [a, b, c] три ссылки на них. По факту они будут в регистрах лежать, если это примитивные типы, вообще без записи на стек.
584 3032829
>>032828

> Ссылки


Вообще не факт что ссылки, зависит от способа создания. Мейк тапл делает копии. Для явных ссылко либо студ реф/креф, либо форвард тапл.
585 3032830
>>032816

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


В крестах он тоже будет работать, но как просто указатель на кусок памяти. Синтаксически будет всё так же как с таплом, но тип другой и нет безопасной работы со значениями.
586 3032836
>>032829
Про copy elision слышал? Это всё не важно, оно всё равно будет перемещаться. А то что при создании тапла надо копировать что-то - тут уж без вариантов, как ты ещё значения рядом в памяти положишь без копирования. На выходе всё равно получишь кусок памяти и ссылки на значения в ней.
587 3032844
>>032836
Я тебя не так понял.
588 3032850
>>032826
адекватных таких как ты?)
589 3032862
>>032850
Меня такой шизой не отпугнешь, я читал кишки stl'я.
590 3032871

> Стандартная либа это часть языка


> std даже без ОС работает


Весь эмбедед вышел из треда
591 3032876
чче происходит наху
592 3032878
>>032876
Два студента посрались опять
sage 593 3033030
Даже отвечать этим малолетним дибилам противно.
594 3033045
>>016027
Ты хотя бы поясни чем вызвана такая реакция?

Тоже начал вкатываться в айти, в унике проходят с++, но тк это уник и всем на обучение похуй - решил дома самостоятельно изучать. Нагуглил роадмапу, там предлагают Стивена Прату, сел читать его книгу, но по плюсам. Это плохой выбор? Чем он плох и какая есть хорошая замена?

Мимодругойанон.
595 3033057
>>033045
Вкатуны вообще могут объяснить зачем читать научную фантастику по мотивам приключений страусов, а не cppreference? Я ещё понимаю стандарт тяжело читать, он написал своеобразно чтоб как можно меньше двусмысленности в тексте было, но cppreference сильно проще же. Просто сверху-вниз по разделам читаешь и всё. Да, там многое пропускают из того что в стандарте написано, но как минимум не будет засерания башки высерами книгописак. Даже перевод есть какой-то, если совсем с английским плохо.
17062499156450.webm4 Мб, webm,
828x718, 0:57
596 3033075
>>033057

> учить язык по справочнику

597 3033519
>>032828

>Сколько там будет кэшмиссов из-за того что структура где-то в начале стека валяется?



Приблизительно ноль. В ТLB ззастолибится. Если переключений контекста не много, то кэшмисс вообще можно не рассматривать.
А вот если процессов много и они борятся за процессорное время, тогда твой аргумент принимается.
598 3033585
>>033075
Приблизительно так и выучил английский - по хелпу TurboC. Не шутка.
599 3033782
>>033057
На cppreference нет аниме-шлюх. Не шутка.
600 3033789
>>033782
Есть.
601 3033794
>>033585

Я по книжке по GTK когда то вкатывался в инглиш
2024-02-0411-21-43.png31 Кб, 638x567
602 3033799
Двачик. Не совсем по теме треда, но может кто сталкивался.
Есть один проектик на Qt, который собираю на андроид. Раньше всё было ок, но в один прекрасный момент компиляция вместо пяти минут стала занимать 30. А всё из-за того, что clang стартует и секунд по 20-30 чего-то ждёт (на скрине как это выглядит). А потом только начинает работать. На другом компе всё ок
Пытался на другой диск сам проект уносить и ndk, но всё равно картина схожая. При этом студия visual studio собирает так же резво, как и всегда

Может у кого-нибудь будут годные советы или идеи, что может быть не так
603 3033802
>>033799
Количество потоков в ниндзе пробовал уменьшить?
604 3033804
>>033802
Проц 24 поточный, поэтому не должно быть проблемой. Но уменьшил до 5 - та же хрень. Точно так же он стартует, несколько секунд ждёт (ну, 20-30 я загнул, но секунд до 10 он ждёт) и потом начинает работать
605 3033805
>>033045

>Тоже начал вкатываться в айти, в унике проходят с++


Тогда читаешь К&R, обязательно выполняешь все упражнения, обязательно читаешь приложение А и читаешь его до тех пор пока не поймешь.
Далее уже читаешь учебники по структурам и алгоритмам. И прорешиваешь 200-300 алгоритмических задач на любом из контестных сайтов.
Это лучшее что ты можешь сделать для начала своей будущей карьеры.
И второй лучший совет который могу дать - это НЕ изучать с++ в универе, а уже нам ближе к старшим курсам выбрать себе другое направление (хотя бы ту же явку) и специализироваться на нем.
image.png358 Кб, 400x498
606 3033809
>>033804

>Проц 24 поточный, поэтому не должно быть проблемой.

607 3033832
>>033805

> НЕ изучать с++ в универе


> выбрать себе другое направление (хотя бы ту же явку)



Шило на мыло
608 3033848
>>033805

> Тогда читаешь К&R



Издательство какого года самый норм?
609 3033878
>>033848
second edition
610 3033996
>>033805
Твои советы неплохи, но K&R style написания функций... Его хоть поддерживают современные компиляторы?
Moonlover 611 3033999
А от чего тред не перекатываем? Не настоялся ещё или есть более веские причины?
612 3034047
>>033999
Любитель Мун, тред перекатывается после 1000 постов
Чтобы всякие шизы в тред не заходили
как тот анон выше, который и тут, и в расто треде успевает настрать
613 3034070
не верю что это реально помогает от шизов
разве только не очень целеустремленных
614 3034200
>>034070
Этот тред тому подтверждение
615 3034668
>>034070
Как видишь срачи с крестовиками у пидорастов, а не у нас. Значит всё нормально.
616 3034953
>>033996

>K&R style написания функций... Его хоть поддерживают современные компиляторы?


В годболт запихай. Было бы странно, если бы хотя бы гцц и вц не поддердивали этих зубров.
617 3035360
>>033996

> Его хоть поддерживают современные компиляторы?



С чего бы это они вдруг не поддерживали?
Аннотация 2024-02-05 024042.jpg11 Кб, 267x62
618 3035373
Люди, где это настраивается чтобы в VSCode терминале аутпут выглядел по человечески не могу найти?
619 3035438
>>035373
Выбери как стандартный терминал powershell
620 3035480
>>035373
powershell и стоит
621 3035553
>>033848
Только оригинальные рукописи Кернигана и Риччи.
622 3035912
>>035373
SetConsoleOutputCP(65001);

cout << "Это utf8"
623 3036020
>>035912

>"Это utf8"


Дебил.
624 3036418
>>035373
Шел 24 год
625 3036436
>>036020
Кто?
image.png6 Кб, 557x130
626 3036620
Так, парни, это снова я. Мне срочно нужна помощь. Дурачок на мне попытался поставить на C++ одну стороннюю библиотеку. Попытки не увенчались успехом, я пробовал различные решения, но ничего не помогло. А теперь к сути. Одним из моих решений (не спрашивайте зачем) была переустановка компилятора gcc. Однако теперь, программы на вс коде отказываются компилироваться, выбрасывая ошибку на пике1. Ошибка гуглится, но единственное решение что я нашёл требует создания конфигурационных жсон файлов вручную, каждый раз для каждого нового проекта. Меня это не устраивает, т.к. раньше все необходимое создавалось при первом запуске проекта. Сталкивался ли кто-нибудь с таким? То ли у меня ручки кривые, то ли ещё что, но C++ на вс коде порой кривовато себя ведёт. Стоит ли задуматься о перекате в другой редактор типа вимов или эмаксов, или что у вас там сейчас популярно? (студию не предлагать). Заранее спасибо за ответы.
627 3036680
>>036620

> gcc под виндой в vs code


Шутка дня, не иначе. Поставь CLion, он за тебя сделает всё, даже тупой разберётся куда тыкать в окне настройки тулчейна. А на вскоде гугли как настраивать это говно, можешь найдёшь истории таких же пердоль, я не удивлён что там присутствует ебля под виндой с чем-то отличным от msvc.
628 3036687
>>036620
Чо это у тебя пробел в расширении - .ex e
????
1701220985739.png853 Кб, 1718x1047
629 3036723
>>036687
Это не пробел, а шрифты у него на микромониторе съезжают, видишь там нет промежутка между символами, е желтит слева.
sage 630 3036904
>>036620
Ты не только не программист, ты даже программу на винду установить не в состоянии. Тупизна уровня бабы сраки.
вангую не те пути в пас прописались после переустановки
631 3036965
>>036680

>Шутка дня, не иначе


Для вас может быть и шутка. А вот я действительно не знал где ещё можно удобно работать. Изначально сидел на студии, но в конечном итоге она надоела своей медлительностью. А про какие-то аналоги в виде CLion я не слышал.
>>036904
Разве я сказал, что являюсь профессиональным программистом? Я скорее любитель, и не собираюсь отбирать у тебя хлеб, если ты так об этом беспокоишься. А что касается твоего совета, то ты в принципе оказался прав. Я забыл добавить второй путь до папки с dgb. Теперь всё работает.
Всем спасибо за советы и предположения.
632 3036967
>>036965
*gdb
Уже совсем сонный сижу
1690152789080415.jpg52 Кб, 715x715
633 3036981
А почему только у крестов аниме на оп-пике? Единственный нормальный язык, что ли?
634 3036989
>>036965

>но в конечном итоге она надоела своей медлительностью


Студияя и медлительность? Что у тебя за железо? Сколько памяти?
У меня ничего не тормозит.
635 3037027
>>036989
Немного неправильно выразился. По какой-то причине у меня долго прогружаются стартовый экран студии, меню выбора шаблона и подготовка проекта. Всё это обычно занимает 1-2 минуты. Также крайне редко бывают 1-2 секундные прогрузки во время работы, но это уже мелочи. Железо: i5-8400, 16 Гб, 1060 6gb.
636 3037038
>>037027

>Железо: i5-8400, 16 Гб,


Не должно тормозить на таком железе. Что-то тут не то.
637 3037096
>>035912
>>036418
>>035438

Короч, если кто нибудь сюда с таким же вопросом зайдёт, то пусть либо в настройках язык винды меняет, а если не хочет сидеть на англоязычном интерфейсе, то пусть язык меняет там как на пикрил
image.png449 Кб, 750x600
638 3037119
>>037096
Это просто феерический пиздец.
Ты программист или эникейщик?
Ты кому эти советы принёс?
Что ты вообще в этом треде делаешь?
16352739811710.png177 Кб, 498x498
639 3037130
>>036981
не единственный
640 3037131
Почему можно как параметр функции указать int p[], но нельзя int p[][] без указания размеров столбцов? Хочется понять логику такого поведения
641 3037138
Теперь в растотреде пожар, лол.
642 3037144
>>037138
Вот бы вас в один загон отправить, чтобы ни в этом ни в том треде не срали
643 3037145
>>037144
Кого "вас", шиз?
644 3037147
>>037145
В первую очередь тебя
123.jpg24 Кб, 635x171
645 3037150
Анон, помоги разобраться, как мне грёбанный хеллоуворлд откомпилировать в VSCode, делаю всё по официальной инструкции https://code.visualstudio.com/docs/cpp/config-msvc, а он мне мозг ебет, из консоли cl hello.c компилирует нормально, как эту залупу настроить правильно, это ж вроде самый популярный редактор как-никак, почему так?
646 3037151
>>037150
Прочитай внимательно что тебе программа пишет, если не знаешь английский то используй переводчик

он пишет что не может найти файлы по твоим путям

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

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


Не для плюсов
647 3037153
Про экзешник забей, я слепой
648 3037155
>>037151

Короч отбой нахой, ему амперсанд не понравился в названии пути (k&r), мне компилятор об этом сообщил только тогда когда я код в tasks.json заменил на тот, что у них в мануале
649 3037158
>>037151

> Не для плюсов



Но хз, я в гайдах постоянно вижу что его юзают, а какой тогда самый популярный? Мне так чисто, из любопытства, я все равно на нем останусь, вернее не только на нем, я еще студию осваиваю.
650 3037159
>>037158

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


Студия/Clion
651 3037162
>>037159

> Студия/Clion



Ну VSCode я по любому держать буду, мне еще питончики всякие понадобятся, джаваскрипты и всё такоё, а что касается IDE, я сейчас пока только вкатываюсь, мне другие среды будут только лишним гемороем, не отрицаю, что они вероятно могут быть лучше и удобнее, но считаю, что надо исходить из того, что более популярно в начале пути, по чем быстрее и вероятнее инфу найти когда какая нибудь запара и непонятка случается
652 3037171
>>037162

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


Студия.
653 3037174
>>037171
Так я же студию и юзаю по мимо вскода, выше написал >>037158
654 3037192
>>037147
Вообще не понял причины твоего возбуждения.
655 3037270
Анон, а sln файл нельзя конвертнуть в список команд консольных какие выполняются при компиляции и линковки проекта, ну или makefile на худой конец конвертнуть?
656 3037271
>>037270
Да сразу через CMake сделай и все, чего париться? Про конвертацию хз
657 3037306
>>037271

Та мне просто интересно посмотреть какие команды выполняются под капотом, якобы они как будто печатались прямиком в консоль
658 3037320
>>037131

>Почему можно как параметр функции указать int p[], но нельзя int p[][] без указания размеров столбцов? Хочется понять логику такого поведения



int p[] - по сути указатель на первый элемент массива.
int p[][] - хуй знает что. Можно было бы сказать что это массив указателей, но нельзя. Потому ччто двухмерный массив в мамяти это просто последовательность элементов. Это просто логическое разделение на строки и столбцы.
659 3037322
>>037270

> а sln файл нельзя конвертнуть


sln нелья, а файл проекта можно.
Moonlover 660 3037328
Ну что, ребят, с унынием констатирую факт что "дедов", пишущих на С++, в этом треде маловато будет. Обсуждания какие-то поверхностные, вопросы не отвечаются или отвечаются херово.

Печально это.
661 3037329
>>037131
При передаче в функцию массив декеится в указатель на тип массива , int p[] становится int star p.
При двойном массиве p[][] данные идут последовательно, но у тебя неизвестен размер внутреннего массива, поэтому невозможна адресная арифметика, и для нормальной работы компилятора надо его указать: например p[][10] сдекеится на указатель на массивы по 10 интов.
662 3037335
Кстати, как decay официально на русский переводится?
663 3037368
>>037322
А каким образом анон, чет я внятного ниче нагуглить по теме не нашел?
664 3037370
Мы проблему с разрывами будем решать или нет?
665 3037410
>>037368
Открой его (файл проекта) в редакторе и посмотри.
И .sln тоже посмотри, чтобы убедиться что внутри его только отсылки к проектам.

Далее. Посмотреть на процесс компиляции можно окне Output. А именно - компиляция каждого изменённого файла, а затем их линковка.
666 3037413
>>037328
ну хочешь смешное почитать скину
https://ledas.com/post/857-how-to-hack-c-with-templates-and-friends/
image.png25 Кб, 532x577
667 3037428
>>037335

>официально


Если ты про array decay, то это сленг.
668 3037431
>>037370
слишком сложно
лучшие умы передовых нии годами бились над этой задачей
669 3037508
>>037328
Мне просто лень тут сидеть, стабильно одна студентота спрашивающая как очистить вектор. Если хочешь нормальных дискуссий заходи в @ProCxx в телеге.
image.png44 Кб, 1069x618
670 3037516
>>037410

> Посмотреть на процесс компиляции можно окне Output.



Так а что толку туда смотреть? Ну посмотрел я на имена файлов которые компилируются как на пикрил, мне надо посмотреть на команды подобно этой из которых состоит сборка под капотом:

$ gcc -static myfile.c -L/user/local/math -lmath -o execfile
671 3037543
>>037516
В настройках свойств проекта, у компилятора и линкера есть страница "командная строка".
672 3037559
>>037543

Вот эти что ли?
673 3037564
>>037559
А какие еще?
674 3037570
>>037564

Так в них пусто
675 3037656
>>037570
Если не умеешь читать, да, пусто, в тупой башке.
676 3037663
>>037656
Читать что? <different options>? Прочитал...
677 3037793
>>036981

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


Это факт, да. Но не поэтому.
678 3037807
>>037663
Читать означает не произносить буквы, а понимать смысл написанного, думать головой. Тупая башка не может думать, а значит и читать не может, "смотрит в книгу, видит фигу вместо написанного".
679 3037878
>>037807
Петровско-разумовская, послезавтра в 5 часов, жду тебя с красной розой.
680 3038042
>>037807

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



Ну это, если бы точным, не всегда так. Например, вот:

나는 한국어를 읽을 수 있지만 읽은 내용을 이해하지 못합니다.
681 3038074
>>038042
Всегда. написанное это не буквы и не слова, а мысль которую написавший хотел донести до читателя. Автор что-то подразумевал, и задача читающего правильно понять что. Это мыслительный процесс - чтение. Дебил читать не может, ибо не думает, а тупо произносит буквы и слова не думая о смысле.
682 3038325
Дайте пожалуйста код подключения curl в cmake на windows, уже второй день мучаюсь :с
683 3038439
Сап плюсаны
Представим: есть контейнер с структурой, у структуры К полей. Как наиболее идеоматично собрать новый вектор по одному из полей?
684 3038441
>>038439
Если не игнорировать UB, то есть только один способ.
685 3038449
>>038441
Да я походу нагуглил,
ranges::copy с back inserter и проекцией
686 3038453
>>038439

>идеоматично


Вот теперь ты не получишь мой ответ.
687 3038454
>>038449
Давай теперь сравним сгенерированны код с циклом и твой вариант.
688 3038468
>>038454
Мне вообще пофиг какой там код генерится.
689 3038471
>>038468

>Мне вообще пофиг какой там код генерится.



Вот это и печалит. Не понимаю тогда зачем тебе нужен С++. Потому что это модно было 20 лет назад?
690 3038473
>>038471
Потому что мне платят за код на нем? Тем более что всю эту хуйню в язык тащат. Надо же пользоваться, а то буду как деды с НИИ сидеть ныть.
Да и мало языков, которые позволяют такую хуйню делать.
Завтра может скину годболт, щас мне уже лень. Честно говоря думаю там ничего страшного не будет.
691 3038483
>>038473

>Завтра может скину годболт, щас мне уже лень.


Чисто из любопыства было бы интересно глянуть. Да и для саморазвития тоже. И вероятно не одному мне.
692 3038570
>>037807

> а понимать смысл написанного



И каков там смысл написанного? <different options>, различные опции. Что это значит?
693 3038601
думайте....
sage 694 3038603
>>038601
Нахуй...
crop7056IMG20240207130429.jpg4,9 Мб, 4165x1552
695 3038828
>>038439
Да вроде одной строкой делается, если не надо более общие случаи обрабатывать.
696 3038928
>>038828
Согласен, но я хотел принципиально без лямбд.
Пусть язык сам да меня это делает.
>>038483
Гляди.
https://godbolt.org/z/qs7q4vEaT
Оптимизации вырубай, а то там ничего не понять(мне)
697 3038965
>>038928
В с++23 можно будет лучше:
Завезут ranges::to и можно будет говнокодить такое:
ranges::views::transform_view(cont, proj) | ranges::to<vector<int>>()
698 3038994
>>038928
Без блямб не идиоматично.
699 3039002
>>038994
Это в с++14-17 не идеоматично, а в с++20-23 лямбды для лошков😎
image.png90 Кб, 1760x751
700 3039015
>>038928
Хмм. Я разделил твой пример на два и сравнил чем же отличается.
Собственно вот на картинке пример, чем отличается первый способ от второго.

Ничем. При -O3
Познавательно.
YMTKapP53Nw.jpg142 Кб, 1080x1250
701 3039016
>>038928

>Пусть язык сам да меня это делает.


>Пишет на порядок больше строк.

702 3039056
>>039016
На какой порядок? В с++23 это делается в 1 строку.
>>039015
Это круто, имхо
703 3039446
>>039056

> Это круто, имхо


А это разве не подефолту должно так работать? Зеро кост же...
704 3039553
>>039446
Должно, но одно дело теория, а другая практика.
705 3039595
>>039553
Ну так и тут не рокет саенс, а просто трансформ вектора
Если бы даже тут что то ломалось, в реальном мире совсем кашмар бы был
706 3039665
>>039595
Это правда.
Я бы хотел посмотреть что там выведет через трансформ вью и ренжес ту, но этот код нигде ещё не компилируется.
707 3039686
>>038965

> можно будет


Стандарт уже финализирован и всё это есть реализованное в std как минимум у майков.
Лучше бы они за паттерн матчинг взялись и наконец релизнули <reflection>. Вот тогда бы началась настоящая магия.
708 3039772
>>039686

>Вот тогда бы началась настоящая магия.


Как уже тут заметили, магия начинается от -O3
709 3039837
>>039686
Увы, Смаке и гцц пока не релизнули. Да и 23 стандарт ещё не скоро в прод пойдет.
16940777065640.jpg981 Кб, 1414x2000
710 3039925
>>037793
>>037130
Ну и чего вы сидите тут такие высиживаете, вот только что был спор с одним аутистом, объяснял ему что компилятор либо вообще не учитывает локальность кэша, либо если учитывает, то настолько поверхностно, что можно считать, что не учитывает вообще. И ещё пояснял ему за то, что лто ни за что не сравнится с ручным инлайном. А он так и остался в полнейшем неироничном отрицании, я уже начал думать, что он меня троллит, а не, оказывается реально аутист без эмоционального интеллекта, и его стриггерило. Вы же не такие?
711 3039942
Вот представьте верить компилятору настолько. Процедурным вычислениям. Это же техножрецом надо быть в край поехавшим
Лто вообще выдаст совсем другой двоичный код для геев, если что
712 3039949
>>039837

> Смаке


Он-то тут причём. Да и поддерживает он всё, недавно они наконец сделали полную поддержку модулей, а не как раньше частичная была. Теперь как белые люди живём, всё из коробки есть. Даже модуль std с cmake работает.
713 3040088
Допустим, что в консоли запускается программа с одним аргументом "qwerty".
Тогда у нас argc = 2, argv[0] = "имя программы", argv[1] = "qwerty".
Если я верно понимаю, консоль (процесс cmd.exe или, например, bash) в ходе запуска нашей программы передают ей эти аргументы.
Какую именно информацию об этих аргументах получает наша программа?
Получает ли наша программа информацию о точной длине строк argv[0] и argv[1]?
Если получает, то как её нам заполучить и использовать внутри main() {} нашей программы ( чтобы не делать, например, strlen(argv[1]) )?
714 3040091
>>040088
нахуя плюс зачем
даже если аргумент макаисмальной длины (какой там лимит? 64к?) стрлен измеряется микросекундами
что на фоне старта ебучего процесса не заметно никак
715 3040127
>>040088

> длине строк


Сишные строки обычно null-terminated. Просто набор байтиков, а в конце ноль.

> как её нам заполучить


Только пройтись по строке и найти ноль.
716 3040154
>>040088

>Получает ли наша программа информацию о точной длине строк argv[0] и argv[1]


>не делать, например, strlen


Получает, если ты передашь длину строк в аргументах argv[2] и argv[3], например.
image.png6 Кб, 770x91
717 3040156
1581590237492.png66 Кб, 1374x292
718 3040165
>>040156
Смотри, просто 0 после каждого аргумента.
719 3040461
>>040165
Я намекнул на "длину строки". Посмотри на пик >>040156 длина строки 4 или 10 ?
1686357729163.png5 Кб, 406x94
720 3040503
>>040461
Ты собрался передавать эмодзи в аргумент? Тебя любая консольная утилита нахуй пошлёт с таким, такое даже не стоит рассматривать как реальный кейс. В винде на пердоликсе сами проверяйте вместо русских букв 3f в аргументе знаки вопроса, при любых кодировках бинарника/терминала заменяет на них. В винде для получения пути бинарника правильно дёргать GetModuleFileName, чтоб не обосраться с папками на русском, хотя иногда проскакивает софт, где требуют путь установки только на английском - значит там как раз первый аргумент юзают.
721 3040611
>>012308 (OP)
Какие аргументы обычно приводят когда говорят, что Qt сильно устарел?
722 3040752
>>040611

https://youtu.be/9jGpvVGHvso

Котороткий ответ: Любые
Длинный ответ: Ответ дан в басне "Лисица и виноград" - лицензия не очень вкусная.
нетакбыстропроказник.mp48,1 Мб, mp4,
1280x720, 0:19
723 3040860
724 3040887
>>040611
Наличие ООП.
725 3040900
>>040611
Отсутствие ООП.
726 3040925
>>012308 (OP)
Сап двач

Программировал на си, работал с ним же. Сейчас сменил галеру и в основном дело теперь имею с крестами.

Проблема в том, что С++ знаю 98 стандарта. Собес пройти не помешало, но де факто постоянно натыкаюсь на то, что можно сделать что-то по умному и новому и на проде код впринципе от С++17.

Поэтому реквестирую книжку/курс или что-либо чтобы закрыть пропасть в развитии крестов
727 3040936
>>040925

> сменил галеру


> реквестирую книжку


На JS кодил, опущ?
728 3040947
>>040925

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


Даже хуй знает, посмотрел бы просто ретроспективно что в каждый стандарт добавляли классного, на том же цпп референсе
Плюс если тебе только обзорно можешь глянуть лекции на Ютубе от Константина Владимирова, выборочно по интересующим темам
729 3040949
>>040925
С++14 Майерса.
17ый стандарт - полировка 14го.
730 3041008
>>040949
14 - полировка 11.
731 3041050
>>040949
>>040947
Спасибо, аноны, попробую

Я так понял там главная реформа в 11-м произошла? Буду смотреть ещё книжки по этому делу тогда
732 3041061
>>041050

> главная реформа в 11-м произошла?


Без С++20 нехуй лезть в современные кресты.
733 3041158
>>041061
В с++20 нет смысла лезть без 11.
>>041050
В целом да, примерно так, 11 самый прогрессивный стандарт в количестве фич.
734 3041220
>>040925
Расслабься, челик. Раз руководство решило тебя поставить на этот проЭкт то значит что твой уровень крестов это руководство устраивает. А изучение можешь оставить всяким безработным бичам типа меня. Иди лучше дорогую шлюху выеби или 15ти летнего односолодового виски ебани, чем какие-то книжки читать, ты же не лошара.
735 3042271
И так.
Выше мы сумели парой строк без голых циклов конвертнуть один вектор в другой.
Теперь похожая задача:
Есть хеш-мапа<A, B>. Мы хотим получить vec<B>.
Есть ranges::views::values, но возвращаемый им тип ренжа не подходит для ranges::transform
Как какать?
1583135965187.png181 Кб, 1216x1354
736 3042392
>>042271
Как-то так, в одну строчку.
Алсо, подсветка синтаксиса вышла из треда, я так и не смог инициализировать мапу без ошибки в IDE, надо всё же вернуться в VS.
737 3042452
>>042392
Блять, да, с 23 красиво получается.
Но у нас нет 23... А без ranges::to не получается?
sage 738 3042454
>>042392
Чел скинь плиз конфиг как дебагер к вскоду прикрутить.
739 3042459
>>042454
Я не он, но это кажется не вскод, а силион
740 3042603
>>042452
Ты можешь использовать ниблеровскую либу, на которой стандарт и основан. Там нужен 17 или даже 14.
741 3042639
>>042603
Не могу, ее вроде нет в утилзах.
Но поищу.
sage 742 3042645
>>042639
Совсем того? Что мешает сурс взять?
743 3042646
>>042645
То что запрещено тащить рандомные либы в проект? А если я хочу их официально затащить в утилзы, ебля ещё ебанутее.
Да и я че мудак ради 2ух строк тащить хедер?
Это тебе не лаба1.спп
744 3042733
>>042646

> и я че мудак ради 2ух строк тащить хедер


Но это можно и на 11 стандарте сделать в одну строчку, просто меньше сахара будет.
Всё это обсуждение уровня "питон эффективнее потому что хелло ворлд на нем короче".
745 3042770
>>042733
Я действительно хочу больше сахара для работы с контейнерами и не вижу никакой в этом проблемы.
Да и обсуждения никакого нет, питон ты упоминул зачем то
746 3042789
Почему столько говна в исходниках? Зайдите в СВЕЖИЕ трендовые репозитории и покапайтесь, антипаттерн на антипаттерне, каша-малаша с препроцессором, сырые указатели, спагетти с полотной комментариев, и в целом какой-то кал. Нахуй нужны эти правила и конвенции если их никто не соблюдает?
747 3042811
>>042789

> антипаттерн на антипаттерне


Антипаттерн это мем

> сырые указатели


Как будто что то плохое

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


Комментарии я бы уж точно плохим не считал

> Нахуй нужны эти правила и конвенции если их никто не соблюдает?


Ну так раз их никто не принуждает использовать, то и понятное дело все на них забивают

> почему так


Есть несколько причин:
- плюсы в целом синтаксически не созданы чтобы их удобно читали люди, также они сами по себе не помогают писать хороший код
- у многих плюсовиков в общем нет цели делать код читаемым для других
- в опенсорсе достаточно сложно следить за качеством кода
748 3042862
>>042811
Бабахает от того, что люди пишут успешные трендовые вещи, а ты нет? Ну бывает, жизнь говна - боль.
749 3042863
750 3042886
>>042862
Бабахают тут только залётные, мы же выдрачиваем каждую строку, пока не избавимся от всех явных циклов
751 3042888
>>042886
Что такое явный цикл и зачем от него избавляться
752 3042954
>>042888
Явный цикл - любой цикл, совершающий внутри одно действие.
Использование стандартных алгоритмов вместо таких циклов повышает читаемость, безопасность, гибкость кода.
sage 753 3042982
>>042954
Шиза ... ой шиза.
754 3042984
>>042954

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


буквально не делает ничего из вышеперечисленного
755 3043000
>>042954
Достаточно делать циклы итераторами, а не через i и всё будет безопасно. Если выбирать между лямбдой в монаде и циклом, то цикл приятнее читать.
756 3043050
>>043000
Так если ты лепишь в монаду лямбду - делаешь что то не так, и цикл действительно лучше.
А если тебе надо как выше странсформить/скопировать/и тд то тебе даже читать не надо, ты видишь название функции, видишь контейнер с которым она работает. Все.
Ну а так да, итераторы база, вот ток ими тяжело пользоваться.
16386556370040.png1 Мб, 959x890
757 3043073
>>042954

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


Скриптошлюху видно издалека.
758 3043077
>>043073

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


Сагу забыл
759 3043203
>>043077

>это другое


Нет, не другое, скриптошлюха. Заменять простой и ясный цикл из двух строчек на библиотеку это скриптошлюшество чистой воды пикрелейтед >>043073 Библиотека это библиотека, какой бы она ни была, встроенной или скачиваемой, какая разница какой способ приобретения. Тащат библиотеки ради элементарных действий только дебилы скриптомакаки.
760 3043247
>>043203
Понятно, а теперь водички выпей и полежи дедуль, у тебя аж венка на лбу вздулась
sage 761 3043451
>>043050
Плюслтред 2024

> Итераторы сложно.


Си с начала временен

> Птр++

762 3043458
>>042789
примеры, ссыкли на гитхаб в студию
763 3043510
>>043247

>Понятно


Вот и хорошо, а теперь смойся обратно в жс/шарп или откуда говно вылезло, а то воняет.
764 3043513
Ретроградство гейткиперство и аутизм
765 3043585
>>043510
Ахуеешь, но языки которые я знаю это плюсы и луа.
Так что скрипшлюхой я видимо стал в вашем загоне.
>>043451
Итераторы сложно в плане someVarName.begin(); someVarName.end() дохуя многословно получается. Range based for для циклов это решает. Но согласись что тот же
transform(container, out, func)
выглядит гораздо пизже, чем
transform (container.begin(), container.end(), out.begin(), func)
Ptr++ заебись, но это работает только в contiguous последовательностях, а хотелось бы отделить реализацию от знания об устройстве входящего контейнера, если это возможно
766 3043623
>>043513
база треда
767 3044449
>>039925
Что такое локальность кеша?
768 3044586
Анончики, а почему в VS при открытие CMake проекта (пик1) не показывается структура файла как на (пик2)? Что сделать чтобы норм всё стало?
sage 769 3044820
>>044586
1: потому что студия кал говна.
2: потому что какого хера ты ожидаешь увидеть в своих трех файлах? Индентов не хватает? Симейк он для сборки, а не для рисования отступов. То что у тебя на пик 2 к симейку отношения не имеет, чисто тема иде.
image.png5 Кб, 234x87
770 3044868
771 3044940
>>044449
Он видимо про то, что данные, с которыми работают разные потоки, должны быть разнесены в памяти минимум на размер кешлайна, что бы не вызывать синхронизацию кешей разных ядер.
Это 64 байта для современных процессоров.
мимо
772 3045128
>>044940
Что значит быть разнесенным в память на размер?
773 3045209
>>045128
int(ptr1) - int(ptr2) > cachline_size
774 3045257
>>045209
И что, реально надо следить, чтобы адреса данных для разных потоков были не слишком близкими? Звучит как бред.
Аннотация 2024-02-12 163031.jpg166 Кб, 1387x884
775 3045285
>>044820

> 1: потому что студия кал говна.



Возможно, ну я пока на ней, других вариантов у меня нету

> какого хера ты ожидаешь увидеть в своих трех файлах?



Методы класса, чтобы по ним переходить кликая по названию как на пик2

> Симейк он для сборки



Sln то же для сборки по факту, ну в этом случае я не sln проект создавал, cmake проект

> То что у тебя на пик 2 к симейку отношения не имеет



На пик 2 там sln сгенерированный через cmake, то есть по сути и там проект, и там проект, просто в разном формате

> чисто тема иде.



VSCode например норм справляется по умолчанию пик
776 3045289
>>044868

Нет, это не оно
sage 777 3045398
>>045285
Перечитай мой ответ, а потом свой собственный.

> вскод справился


> это не про симейк, это про иде

778 3045444
Анонесы, каковы ваши мысли по поводу этого сайта, стоит ли юзать его для обучения? https://www.learncpp.com/
779 3046267
>>045257
Для HPC - надо, а в других случая не надо.
780 3046296
>>045398

То есть ты хочешь сказать, что VS при создании и открытии cmake проекта никак не заставить таким образом отображать solution explorer?
781 3046340
782 3046349
>>046340

Я видел это видео, там нету ничего по моему вопросу
783 3046350
и в документации нету ничего
784 3046479
Аноны, обесните мне нормально пжлста, как вообще выстраивается воркфлоу при разработки cmake проекта, я что должен тупо постоянно открывать параллельно cmake проект и просто вносить правки какие я новые файлы создал и подключил библиотеки, потом через cmake генерировать в нём новый sln проект, потом периодически возвращаться в cmake, править CMakeLists.txt и так по новой?
785 3046538
>>046479
Не использую симэйк. Проект мультиплатформа. Рядом лежат студийный проект и классический Makefile. Очень хорошо.
786 3046566
>>046538

А что по поводу?

> как вообще выстраивается воркфлоу при разработки cmake проекта

787 3046645
>>046566
Не знаю. И особо не интересно. Версия для Винды на gitlab воркере собирается g++ из Makefile без проблем
788 3046677
>>046479

>потом через cmake генерировать в нём новый sln проект


Зачем? VS 2022 поддерживает cmake нативно. Генерить надо было в прошлых версиях которые не поддерживали симейк.
789 3046696
>>046677

Натвино, это я понимаю так, что я тупо создаю cmake проект и работаю с ним без всяких классических sln, правильно?
image.png35 Кб, 1012x674
790 3046787
>>046696
Ну да, я тупо скачивал с гитхаба проги на симейке, тупо открыл и готово, вот тебе проект, можно компилить и всё такое. Если же ты будешь использовать sln, это и будет sln, а не cmake.
791 3046845
>>046787

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

>>044586

Решения так ей пока и не нашел.

Мне анон другой там начал писать, что я хуйнёй занимаюсь и cmake для этих задач не применяют, и я вот хз, собствено и назрел мой другой вопрос выше, какое воркфлоу, получается, что тогда надо вести CMakeFileLists.txt как отдельный проект, тупо для распространения, чтобы другим на разных платформах и средах можно было собирать проекты и уже их открывать в том, в чем они пишут. Или я хз, в замешательстве пока каком-то, потому что VS получается не позволяет полноценно использовать cmake проекты как в случае с sln.
изображение.png239 Кб, 1093x684
792 3047285
А что потом?
793 3047319
>>047285
Ну так засрать язык это надо постараться.
Что потом? Потом на полку к Фортрану, Алголу и Коболу.
794 3047482
>>047285
Статическая рефлексия, наконец сможем генерировать Enum to str без костылей.
795 3047483
>>047319
Забрать язык чем, дедуль?
796 3047527
>>047483
>>047483
Нахуя тебе Coroutines, например?
Зачем эта хуйня нужна? Многопоточности не хватает?
797 3047530
>>047482
>>047482
Зачем?
798 3047555
>>047482
А как это должно выглядеть? Я не знаком с рефлексией
799 3047594
>>047527

>Многопоточности не хватает


Именно по этой причине его и создали
800 3047674
>>047594
Ну и в каком пронкте тебе не хватало многопоточности?
801 3047723
>>047555
Хуево это будет выглядеть.
Я бы вообще ее не ждал к 26, хотя Полухин обещает.
А вообще вроде уже есть пропозалы, можешь почитать.
Спойлер: ещё более уебанский синтаксис
802 3047724
>>047674
Причем тут многопоточность и корутины?
Корутины про асинхронность.
803 3047740
>>047527
Да ясное дело никто в своем уме подобное дермо использовать не будет, как и очень многое что тащат в плюсы. Переключение контекста со своим стеком давным давно реализовано на асм+си.
804 3047782
>>047740

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


Вообще-то наоборот, это очень удобная фигня постоянно используемая в шарпе и прочих скриптах. Только кресты не скрипты, поэтому, да, скриптоговно в крестах это ну, говно, взять язык и изговнить. Какой смысл использовать кресты, чтобы высирать шарпоговно на них? Тогда бери сразу шарп и получишь желаемое. Сование скриптоговна в кресты это прямая диверсия, вредительство, подрыв языка скатыванием его в говно того, чем он не является. В принципе, это не противоречит концепции крестов как мультипарадигменного языка, это проблема скорее людей, макак которые лезут и требуют это говно в языке и кукарекают, что именно на корутинах надо писать, а не как раньше.
1000004736.mp41,1 Мб, mp4,
848x800, 0:07
805 3047793
806 3047795
>>047527

>Нахуя тебе Coroutines, например?


Мне как-то реально было проще взять из буста корутины, чем накручивать ебанутую логику с вызовами одной внешней библиотеки. Нахуя ты сюда пишешь работая с задачами уровня хелло ворлда, например?
807 3047797
>>047795
А ты с какими задачами работаешь? Ни с какими, иначе бы не выбирал С++ когда задача "проще". С++ не проще, дебил, для этого есть языки проще.
808 3047802
причины по которым корутины не нужны:

- они есть в скриптах (с#)
- это проще, а с++ не проще
809 3047808
>>047802
Не только корутины, та же скриптовая рефлексия с её метастазами, подрывающая сам принцип С++ как компилируемого машинного языка. Всё это дерьмо лезет от скриптомакак которые хотят чтобы си был как их скрипты, потому что дебиломакак взрастили на скриптах и у них навечно скрипты головного мозга.
810 3047828
это он так байтит на срач?
811 3047880
>>047808
Дедуль, нам завезут рефлексию ВРЕМЕНИ КОМПИЛЯЦИИ, а не рантаймовую.
Присядь, успокойся.
812 3047904
>>047880

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


kekw
813 3047946
>>047904
какое связывание че ты несешь орунаху
просто чтандартная замена того что сейчас делается анальными костылями типа парсинга __PRETTY_FUNCTION__
814 3047948
>>047880
Проблема макак, они не понимают разницу между программированием и скриптингов, когда она на самом деле фундаментальная.

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

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

Си, и их расширение С++ это машинный язык программирования, а вовсе не офисная система скриптинга из так называемого "ИТ". ИТ это обработка данных, офисная работа, техника программирования тут совершенно ни при чем. Каким дебилом надо быть, чтобы не отличать офисного клерка от механика-водителя?
3ec84f51801de6bcf78a3b07286562c7269ff4091a2b58675cbb82f07375f663.jpg71 Кб, 643x820
815 3047968
816 3047988
>>047948
Дедуль, обеденный перерыв кончился, а тебе ещё библиотеку для твоей ЗА-ЛУ-ПА-1 писать.
817 3047992
>>047968
Удвою, его поток шизофазии уровня "программист должен знать устройство прибора для печати транзисторов" читать тяжело
818 3047995
>>047948
К чему ты эту хуйню высрал? Водки с утра налакался и внутренний вахтёр проснулся?
819 3048092
>>047988
>>047995
Тявкать как шавка не выражая никаких человеческих мыслей, и даже не читая на что отвечаешь. Типичные макаки, тупорылые животные. Зачем лезут в языки программирования? Чего напрограммируют? Вопрос тщетный.
820 3048096
>>047992

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


Это ты так stepper (литограф) обозвал?

Внутри самой современной EUV-машины каждую секунду 50 000 капель расплавленного олова падают через камеру в её основании. Пара высокоэнергетических лазеров на углекислом газе ударяет по каждой капле, создавая плазму, которая, в свою очередь, испускает свет нужной длины волны. Первый импульс преобразует каплю олова в туманную форму блина, так что второй импульс, который является более мощным и следует за ним всего через 3 микросекунды, взрывает олово в плазму, которая светится на длине волны 13,5 нанометров
821 3048131
>>048096
Когда меня будут спрашивать базу для программистов - буду кидать твой пост
822 3048138
>>047285

>А что потом?


Да все уже, движуха выдохлась. Это даже видно по российскому комьюнити языка. Дальше застой будет. Усугубленный еще и тем что сама ниша языка который он занимает уменьшается. Соответственно и интерес пропадает.
823 3048148
>>048131

>Когда меня будут спрашивать базу для программистов



Базу программистов? Что за база?
Может быть расскажешь как работают аппаратные прерывания на примере сетевой карты?
824 3048199
>>047782
Ты вообще не понял что я написал и высрал такую простыню.
825 3048824
Вообще челики чтобы понять где мы сейчас находимся нужно посмотреть немного назад. А именно у эльфов был один провальный проэкт который утянул за собой на дно и кресты. А именно f-35. Америкашки как всегда сделали вид что нихуя не обосрались и что все типа OK. Но на деле как раз после того как все поняли что разработка усложняется удорожается и затягивается на десятилетия, стали с неохотой связываться с крестами.
826 3048876
>>048824
Хорошо, дедуль, а теперь таблетки и спать.
827 3048891
>>048824
И что выбрали вместо крестов? Сруст?
828 3049099
>>048891
Не что выбрали, а что нужно было выбирать. А выбирать нужно было Аду, как и раньше. И все делать на ней. И было бы чики-пуки все.
829 3049113
Выбирать нужно было фортран.
tumblra98ac31be56fb70fb7bbb3de37bc737ef816da63500.png103 Кб, 417x234
830 3049117
Поработал ньюфаг с отладчиком. Сначала выяснилось, что знаменитый олядебаг для x64 не поддерживается. Нашел x64dbg. Потом выяснилось, что на многих интересующих меня экзешниках стоит защита от дебаггеров - диаологовое окно "Хуле ты дебаггером меня открываешь?" - нажимаю ок и процесс завершается. Далее для пробы открыл helloworld.exe - нихуя не понятно, куча ассемблерного кода. Можно сразу перейти в main, но дальше почему-то Шаг не работает, сразу все выводится в консоль и программа завершается. Попробовал в цикле вывести несколько раз helloworld - то же самое, не дает посмотреть пошагово, сразу выводит в текст консоль и завершает программу. Короче еще ебаться и ебаться.
831 3050309
Нужно под линух написать два независимых приложения: ui и бэкенд. Пока не знаю как организовать общение между процессами гуя и бэкэнда. D-Bus, unix sockets? В общем накидайте базвордов почитать и какие там технологии модно сейчас использовать в таких задачах. В идеале бэкэнд должен быть монолитным и неизменяемым, гуй же под любую портянку вроде qt, даже консольный
832 3050450
>>050309
Базвордов, да? Изволь.
Electron, React, Node.js, Apollo.
833 3050474
>>050309

>Пока не знаю как организовать общение между процессами гуя и бэкэнда.



Через сокеты.
834 3050490
>>050474
Ты сейчас ему насоветуешь и он иксы (X Window System) напишет.
835 3050580
836 3050599
Есть одна игра стратегия, возможно ли зная адрес в оперативной памяти, через плюсы доставать оттуда массив с различными данными? Если да то как это сделать?
Если что мне не для взлома, просто я хочу RL агента обучить играть в одну игру а для этого мне нужно получать данные положения юнита на карте каждую секунду.
837 3050602
>>050599
Уточню: что бы получать данные не одного юнита а массив юнитов, например их может быть сотня, то есть имея под рукой адрес в оперативной памяти можно ли достать массив со всей необходимой информацией? Или это нужно как то парсить?
838 3050684
>>050309

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


Кек, прошивка для сервера, что ни напиши, всё равно получается веб-параша клиент-сервер. Просто написать нормальное приложение? Лолнет, ОС же не завезли.
839 3050688
>>050599

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



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

Только далеко не уходи - разговор долгим будет.
840 3050692
>>050684

>всё равно получается веб-параша клиент-сервер.



Если он извратится с shared memory и pthread_mutex_lock, то тоже получтся "веб-параша"?
841 3050720
>>050688
Тот адрес который выдает Cheat Engine.
842 3050758
>>050309
непонятно по какой причине это должны быть у тебя два отдельных процесса
обычно "бэкенд" выделяют в библиотеку либо набор библиотек, а потом уже "фронэнды" используют эти библиотеки либо используя статическое либо динамическое связывание
843 3050760
>>050450
вчерашний школьник, плиз
844 3050764
>>050599
дык пиши лучше сразу бота который берет инфу с игры, захватывая картинку и онализиуя ее, а свою работу осуществляет эмулируя мышку и клавиатуру
все равно примерно так делают многие беспалевные боты для сетевых игр, и ты сразу же наберешься нужного опыта
845 3050765
>>050720
В душе не ебу что такое Cheat Engine и причём тут С++.
846 3050775
>>050758
>>050684
Это не про веб. В моем случае гуй приложение на малине и второе приложение бекэнд, которое будет делать вещи там же. А дело в том, что гуй скорее всего нахер не упрется и хватит зайти по ссш вызвать команды самому, но спроектировать все надо как если бы была возможность управления этим бекэндом через ui

>>050580
Да, хм, наверное так и сделаю
847 3050802
>>050688
а ты сам-то давно физический адрес видел? если дрова не пишешь
848 3050881
>>050692
Да. Какая разница какой протокол, клиент-серверная параша на прошивке для сервера от этого не меняется. Зачем делать сервер и клиент на той же машине? Ты ебанутый? Нет, просто ОС не завели, нормальное приложение сделать не представляется возможным, серверная прошивка поддерживает только сервера.
849 3050953
>>050764
В игре дохуя спецефектов, юнитиы могут перекрывать друг друга это негативно скажется на обучении РЛ агента, он будет думать что перекрытием уничтожил юнита, ИИ глуп и ему нужно все в лоб объяснять, а значит мне нужно как то из памяти брать данные, такие как фактическое положение юнита то есть координаты, значения здоровья и его название.
850 3051796
Вот я написал #include <gl/GL.h> jrlf/ Потом вылетела ошибка линковки оказывается надо было дописать #pragma comment(lib, "opengl32.lib"). Но я не пойму, нахуя какая-то библиотека, мне обещали, что функции будет выполнять напрямую драйвер.
851 3051799
>>051796

> opengl32.lib


Хуя, под winXP пишешь?
852 3051810
>>051796

> мне обещали, что функции будет выполнять напрямую драйвер.



Ну и пиздец. Феерический. Даже хуй знает что тебе ответить.

И после этого говорят что плюсовику не нужно знакть Си, не нужно знать ассемблер, не нужно знать "кишки". Ну объясняйте тогда сами ему.
853 3051814
>>051810
Ну и че где в си, в ассемблере че сказано про графику, нихуя. Зато смотрим википедию, так opengl - спецификация, прототипы функций - в GL.h, реализация функций - в драйверах от производителей видеокарт. Если какая-то функция видеокартой не поддерживается, ее реализация лежит на gdi. И чем я не прав, обезьяна?
854 3051819
>>051814
Пошёл нахуй.
855 3051834
>>051814
Обезьяна, в этой твоей Википедии тебе пообещали, что спецификация должна сама уметь искать реализацию?
sage 856 3051839
>>051814
Позорище ебаное.
857 3051854
>>047482

>наконец сможем генерировать Enum to str без костылей


Лол, я как раз свой в том году написал на макросах. Нет веры комитету.
858 3051856
>>047808

>та же скриптовая рефлексия с её метастазами, подрывающая сам принцип С++ как компилируемого машинного языка


Иди-ка ты нахуй. Я не хочу класс в XML вручную сохранять. Пусть компилятор работает, он железный.
859 3051861
>>051814
В opengl.dll только реализация 1.1 версии. Весь новый функционал получается из драйвера через wglGetProcAddress (которая сама лежит в opengl.dll), поэтому тебе надо линковаться с opengl.dll и с либой вроде GLEW, которая через экстеншены настроит современную версию OpenGL.
860 3051872
>>051834
Чтобы пользоваться функциями из gdi32.dll, user32.dll, kernel32.dll мне ничего линковать не надо, или это другое?
862 3052222
Почему эта хуетень не правильно считает шестнадцатеричные числа? Как сделать что бы оно корректно все считало?
https://pastebin.com/PVM63R3A
863 3052254
>>052222
Всë там правильно рассчитано.
864 3052262
>>052254
Да вижу это я проебался, там что бы добраться до нужного адреса нужно вычитать число а не добавлять.
865 3052833
>>051814

> реализация функций - в драйверах


Компилятор не имеет ни малейшего понятия что там в драйвере есть и как вызывать это.
>>051872
Можешь без линковки чем угодно пользоваться, но надо тогда вручную загружать dll в рантайме, получать адреса через GetProcAddress и вызывать функции по их адресу. В хедере лежит API, оно никак не поможет компилятору понять что конкретно ты хочешь вызвать во внешней либе. С хедером и dll тебе всегда надо линковать файл *.lib, где лежит макет памяти с адресами функций по которым будет это API вызываться. Во время запуска бинарника по этим адресам будет смаплена твоя dll. А dll ты так или иначе будешь использовать, потому что вызов функций из драйвера геморроен, всегда есть абстракции над этим.
А в каком-нибудь расте вообще пиздец как надо извращаться чтоб dll заюзать, ведь это ансейф. Хорошо если биндген осилит хедер спарсить, а если нет, то пизда.

> gdi32.dll, user32.dll, kernel32.dll


Потому что их линковщик линкует по умолчанию при сборке, у тебя в SDK винды лежат lib-файлы для них.
866 3052895
Вот надо же адекватный человек
>>052833

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


> Потому что их линковщик линкует по умолчанию при сборке,


Спасибо, что пояснил.
867 3052950
yвaжaeмыe рeбятa, cкaжитe пoжaлyйcтa, нe мoгy пoнять:
вoт в ЖC зaдaeшь пeрeмeннyю, нaпримeр lеt x = 33331 - cкoлькo cимвoлoв ввeл, cтoлькo мecтa oнa и зaнимaeт
вoт в C нyжнo изeбнyтьcя и пoдoбрaть длинy, нaпримeр lоng lоng int = 42743251712343 - и oнo вceгдa бyдeт вecить 8 бaйт (ecли я нe oшибaюcь)
a пoчeмy нeльзя былo cдeлaть кaк в ЖC? В чeм cyть и кaкaя прaктичecкaя пoльзa oт этoй eбaтoрии? Или этo прocтo ycтaрeвшee гaвнo мaмoнтa, oт кoтoрoгo никyдa нe дeтьcя? Aктyaльнee ли вкaтывaтьcя в рacт?

cпacибo
552a7bf79e1196e6b0bbc08a578f04df80d0ee9a0d0e8d6db4423e3ebceba967.jpg85 Кб, 604x449
868 3052965
ебать у вас в жс все такие?
869 3052971
>>052965
братик, да, тупой, да дебил, но ты подскажи по делу, а не вайн устраивай
870 3052972
я формошлеп хуесос, встаю на путь истинный, гони ответ
871 3053000
>>052950

> нaпримeр lеt x = 33331 - cкoлькo cимвoлoв ввeл, cтoлькo мecтa oнa и зaнимaeт


А с чего ты это взял? Js вроде не предоставляет API для работы с памятью.
872 3053013
>>052971
ну давай разберем по частям тобою написанное)

>cкoлькo cимвoлoв ввeл, cтoлькo мecтa oнa и зaнимaeт


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

так-то в крестах можно написать auto zalupa=42 и будет инт а можно auto zalupa=42000000000 и будет лонг
873 3053015
>>053000

>А с чего ты это взял? Js вроде не предоставляет API для работы с памятью


Это я так себе представляю, я вобще раньше не задавался такими глубинными вопросами. Насколько я знаю, в расте не нужно задавать. В общем, итоговый вопрос таков: почему размер не задается автоматически с одним словом let
874 3053021
>>053013

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


Это я доку читаю https://learn.microsoft.com/ru-ru/cpp/cpp/data-type-ranges?view=msvc-170
вижу что разные размеры в байтах. Видимо в этом смысл и был - оптимизировать вес, собственно и интересно узнать >>053015
875 3053037
>>053015
Есть ключевое слово auto, появилось только в с++11 стандарте. То есть auto x = 123132; Автоматически подбирается подходящий тип. Но в отличие от let тип данных задается еще на этапе компиляции и не меняется в течение всей жизни программы, потому что в с++ типизация статическая, в js динамическая. То есть, если x родился целым числом, им он и останется до гробовой доски.
876 3053046
>>053021
а доку к жс читал? там небось все числа на самом деле инт64 или вообще дабл
877 3053051
>>053046
не, в жс такие вопросы вобще никого не ебут. я вот и решил базы впитать и не быть обосцаным хипстерком
878 3053060
>>052950

>вoт в ЖC зaдaeшь пeрeмeннyю, нaпримeр lеt x = 33331 - cкoлькo cимвoлoв ввeл, cтoлькo мecтa oнa и зaнимaeт


В js тоже 8 байт:
The JavaScript Number type is a double-precision 64-bit binary format IEEE 754 value, like double in Java or C#.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number#number_encoding
В BigInt надо явно преобразовывать.
879 3053090
>>052950

>a пoчeмy нeльзя былo cдeлaть кaк в ЖC? В чeм cyть и кaкaя прaктичecкaя пoльзa oт этoй eбaтoрии?


В том, что процессоры работают с машинным словом, которое в современном мире обычно 16, 32 или 64 бита длиной. Соответственно, типы целочисленных данных С и С++ сделаны так, чтобы нативно поддерживать то, как работает железо. На 8-битном микроконтроллере Number из JS будет работать адски медленно, а int8_t, int16_t - с нативной скоростью.
image.png27 Кб, 673x89
880 3053304
>>049117
Ты чё, ебанутый? Тобой перечисленное это программы для реверс-инженерии, дебаггингом через это никто не занимается. Дебаггер плюсов это GDB/LLDB или нативная хуйня от майков.

Если нужен убермощный дизассемблер, то Ghidra.

>>052950

> Aктyaльнee ли вкaтывaтьcя в рacт?


Так там тоже такая же ебатория. Ты то можешь let x = 42; и x будет i32, но если значение не даёшь или хочешь пихать числа требующие или не требующие какого-то количества памяти то let x: u64; придётся писать. Если ты реально не вьезжаешь зачем оно: ты не понимаешь, как работает компьютер под капотом выделение памяти если точнее, а значит плюсы тебе либо рано, либо непонятно нахуя.

Могу объяснить прям подробно, но нужно подтверждение что готов читать. Шатал выдавать мемуары чтобы получить "ниасилил".

Так, теперь вопрос. Правда ли пикрил? Я не понял лично прикола. Если ты знаешь что тебе нужно 100 элементов то пустой вектор будет хотя бы пару раз изменять свою вместимость (а это аллокация + копирование что как бы нихуёво), если указываешь сразу 100 то аллокация одна и никаких копирований. Я знаю что есть std::array для этого, меня просто вот этот абзац немного в ахуй поставил.
881 3053364
>>053304
array на стеке вроде, вектор на хипе.
882 3053420
>>053304

>Могу объяснить прям подробно, но нужно подтверждение что готов читать. Шатал выдавать мемуары чтобы получить "ниасилил".


Конечно, готов. Не обязательно простыню, интересно. Другой вопрос - обязательно ли это знать? Может просто принять как данность: Используем длину которая подходит и не выебываемся?
883 3053440
References was a mistake
884 3053457
>>053304

>Так, теперь вопрос. Правда ли пикрил?


>>Написал хуйню на дваче - никто не обратил внимания.


>>Написал хуйню, заскринил, запостил картинку на дваче - 100 ответов обсуждения.


Всегда было интересно, как называется эта болезнь?
885 3053678
>>053440
Без референсов бы не изобрели бы && ты че падла ты че
886 3053720
>>053440
Moscow is the capital of Great Britain.
887 3053725
>>053678

> Без референсов бы не изобрели бы &&


еще одна причина почему референсы это была плохая идея
888 3053738
Как же заебал этот кусок говна под названием qt, просто пиздец. Прошел через все круги ада устанавливая эту хуйню, так после установки нихуя не работает, на любое действие он выдает пук с ошибкой, сука. Я же все настроил, все киты, симейк, компиляторы, что тебе надо нахуй.
images.jpg5 Кб, 196x257
889 3053742
>>053725
Си треш двумя блоками вниз
890 3053752
>>053742
Мув семантика это костыль из за криво задизайненных конструкторов и референсов
891 3053770
>>053752
Все так. Православный птр ван лав.
892 3053902
893 3053903
>>053742
а при чем тут си...
894 3053925
>>053738
Ей нужен пользователь с хотя бы двузначным интеллектом
895 3054047
Я разочаровался в блюпринтах анреала, но я боюсь c++. Все так страшно?
896 3054052
>>054047
Для анриала не все так страшно
897 3054055
>>054052
Мне тоже надо читать книжки из оп поста? Ну.. как всем?
Или можно срезать углы? Если да, то где?
Я не считаю себя программистом и не хотел бы им быть.
898 3054064
qmake или симейк для кьюта? И то и то как говно выглядит, впрочем как и все в средах разработки на плюсах
899 3054074
>>054064
Да съеби уже.
>>054047
Годот используй.
>>053903
Да потому что деды, которые си и кресты изучели еще в нулевых отвергают все реформы языка.
900 3054077
>>054074

> Годот используй.


Я попробовал годот. Не зашло
901 3054081
>>054074

>Да съеби уже.


причина баха?
902 3054087
>>054064
Используй Webpack.
903 3054115
>>054064
Да что хочешь используй, что то говно, что это
Но симейк это более распространенная вещь, считай что стандарт в индустрии, будет легче зависимости подцеплять

>>054055
Можно срезать углы конечно
Тебе не надо знать про очень многие семантики для начала

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

Для самого начала тебе хватит узнать: что такое указатели и референсы, базовые конструкции языка (условия, циклы и ид), классы и ООП в целом, базовые структуры данных из стд (вектор мапа и тд)

Все остальное прям во время работы сможешь изучить
904 3054329
>>054064
CMake де факто стандарт в разработке на плюсах, все его используют. QMake залупа от которой даже сами Qt отказались
905 3054347
>>054329
qmake выглядит читабельней
906 3054647
>>054347
Нюфаг/скриптодураак? Симейк выглядит как измененный си, все базовые принципы соблюдены.
Всякие кумейк/премейк/месоны рядом не стояли.
1708351321041.png1,2 Мб, 728x971
907 3054731
>>054647

> Симейк выглядит как измененный си, все базовые принципы соблюдены


Сумасшедший?
908 3054865
>>054731
Не, он просто дед.
909 3055200
>>054347
Хелоу ворл и на симейке выглядит читабельным. А если ты попробуешь тянуть что то посложнее то ты обрыгаешься от кутешного говна, хотя и симейк тащем то не лучше, но им все пользуются, поэтому легко копипасть из гугла любой вопрос, а тебе кажется именно это и важно, и раз уж так получилось что ты ни в том ни в этом не разбираешься, то не начинай с хуйни которая никому не нужна, это странно довольно
910 3055220
Современный симейк не так уж и ужасно выглядит
911 3055236
>>055220
Что, теперь это не язык программирования, а декларативный конфиг?
912 3055237
>>055236
И то и то
913 3055252
ya make yatool
914 3055458
>>055200
Понятно
915 3055461
>>055200

>не начинай с хуйни которая никому не нужна


кстати добро пожаловать в тред хуйни которая никому не нужна
916 3055599
>>054865
Нас тут много.
Впрочем, тот парень слишком радикален.
917 3055733
>>055599

>Нас тут много.


>cmake


>дед


Дух старой школы живет только в автоконфе, говорите открыто и смело в лицо! M4!
918 3055866
>>055733
Не, с m4 ты перегнул. Кто конфигурил sendmail в прошлом веке, тот будет плеваться.

И да, судя по тому, что ты знаешь что такое m4, ты и сам дед.

p.s. а мне для всего классического make хватает.
919 3057135
>>055866
Я лично пользую м4 для одного малоизвестного ассемблера, а хули делать.
920 3057206
>>057135

>, а хули делать.


Сесть и написать на плюсах ассемблер.
Твой подход хорош для статьи на Хабре, чтобы карму набить.
921 3057210
Аноны есть какая-нибудь серия видео на ютубе, где кто-то пишет прогу с нуля, по красоте, с бест практисами, настраивает сборку с нуля и т.д.? А то одно говно нахожу
922 3057217
>>057210
Ну такого быть не может, потому что разные паузы должны на подумать, иногда не знаешь что писать, иногда вдохновение нахлынет. И 50% времени минимум это дебаггинг и тестирование твоего шедевра.
923 3057231
>>057217

>Ну такого быть не может


Не знаю почему не может, их дохуя, но конкретно на плюсах не видел, а то что видел бесполезно смотреть
924 3057239
>>057210

>, настраивает сборку с нуля


Так это разные задачи - писать код и настроить сборку.
Более того, сборка это тоже разные задачи - одно дело написать Makefile, что тоже требует некоторых знаний, и совсем другое дело настроить CI/CD в Гитлабе, что будет посложнее.
925 3057243
>>057231

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


Вариант - у тебя слабый бэкграунд.
926 3057252
>>057239

>одно дело написать Makefile, что тоже требует некоторых знаний, и совсем другое дело настроить CI/CD в Гитлабе, что будет посложнее.


Чушь. Мейкфайл написать нереально, непонятная хуйня, а сборку на гитхабе спокойно делал с нуля, это банальные команды консоли линукса или винды, ты их и так уже знаешь, а мейкфайл это шизофазия которую надо полностью учить с нуля, что куда сложнее.
927 3057269
>>057243
У меня вообще нет бекграунда, иначе зачем мне такие видео. А то что просмотр курса по созданию окна на winapi по 20 видео по 2 часа не принезет пользы я понять сам могу
928 3057282
>>057252

>Мейкфайл написать нереально, непонятная хуйня



Самый простой Makefile - руками написать компиляцию в цели all.
И затем постоянно его усложнять, добавляя регулярки из примеров.

Реально, самый простой Makefile это две строчки. Две!
929 3057308
>>057206
Т.е. мне нужны шаблоны для языка, надо язык с нуля писать? Нахуя? Взял м4 и доволен как слон.
930 3057318
>>057252

>Мейкфайл написать нереально


Мэйкфал - это буквально самое первое и простое средство для сборки всего, когда нет специальных вопросиков, буквально стандартный подход во всём, где нужна сборка чего-либо.
931 3057371
>>057308
Что архитектура такая? Показывай.
932 3057428
>>057318
Самое первое средство это С++Builder или Visual Studio.
Самое второе средство это Cmake.
Это для полезной работы. А для нитакусечной хипстоты дрочить ради дроча, пойдет одинаково что угодно, кроме перечисленного выше. Понтоваться одинаково удобно чем угодно никому не нужным, и make не исключение.
933 3057437
>>057428
Как ты с симейком собрался собирать проект без мейка?
934 3057519
>>057428
Походу ты болен неизлечимо, если крошишь батон на дедушку make.
Даже страшно неприятно думать какие задачи решаешь и за что денюжку получаешь.
935 3057661
>>012308 (OP)
Объясните кто нибудь пж, вот есть функция

int& func() { int⚹ x = new int(10); return ⚹x; }

Она возвращает адрес x, получается. Как тогда получается инициализировать x2 и x1 адресом, ведь они принимают значение? Например int y = 10; int y2 = &y -- вот так же нельзя. Почему тогда вот так можно:

int x2 = func();
int& x1 = func();
sage 936 3057721
>>057661
Выше в треде базу уже давали:

> реыеренс - мистэйк


А твоя функция - говно.

Ретерн тайп замени на указатель. И у ретерна убери разадресацию. И не еби мозги.
937 3057826
938 3057842
>>057428
Ебать еблан, как ты условный абстрактный язык_нейм собрался собирать, сам скрипты писать будешь?

>cmake


Эта параша кстати и генерит мэйкфайлы лул.

>понтоваться


Ух еблан ты, конечно. Мэйк - это как ходить.
939 3057847
>>057661

>Она возвращает адрес x, получается


Нет, она возвращает ссылку на int

>int x2 = func();


Копирование значение из ссылки

>int& x1 = func();


Новая ссылка
940 3057871
>>057282

>Реально, самый простой Makefile это две строчки. Две!


Как минимум надо еще генерацию файлов зависимостей добавить, чтобы объектный файл пересобирался, когда хидер поменяется. Это еще строчек пять. Плюс если у тебя в проекте есть файлы с одинаковыми именами, надо городить сборку в подкаталогах - это опять же лишний геммор. И так пошло-поехало, твой простой мейкфайл из двух строчек растет как на дрожжах. Симейк в разы проще, там реально несколько строк для простых проектов, но компиляция на маленьком проекте гораздо тормознее будет, конечно.
941 3057881
>>057252

>Мейкфайл написать нереально, непонятная хуйня


Там очень простой принцип в основе работы, и синтаксис совсем не сложный. Если понимаешь как он устроен, мейк-файлы легко писать. Автомейк - полная жопа, да. Но там тоже можно разобраться.
942 3057902
>>057881

>Автомейк


Автоконф, автомейк это доп. шняга сбоку, соглашусь авототулз уже СЛОЖНА даже для дедов, не только для зумерков.
943 3058026
Сегодня весь день искал баг который заключался в том что

вместо memcpy(mapped_data, data, size);
написал memcpy(mapped_data, &data, size);

И это на удивление запустилось и сломалось совсем в другом месте
Вопрос - как такие баги отлавливать? Есть ли возможность в дебаге как то проверять чтобы не обращаюсь ли я к чужой памяти, а если этои случается крашилось и говориле что где и куда протекло?
944 3058067
>>058026
Никак, значек маленькиц, да подленький. Поэтому у меня недавно появилась идея редактора, где он будет красным цветом обводить те строчки кода, изменение которых может существенно поменять логику программы. Это будет полезно и для тех, кто работает с чужим легаси кодом. Вот смотришь на код, много всего понаписано, а по факту ядро программы это несколько строчек, остальное балласт из свистелок.
945 3058088
>>058026
Стопудово ты под Линуксом. В Visual Studio она бы тебя мордой лицом ткнула в ошибку. Просто по стеку поднимаешься и видишь проблему.

В юниксах компиляй с ключом -g и запускай
gdb youprogram

где youprogram - имя твоей софтинки.
И как упадёт - смотри стэк.
946 3058092
>>058088

>Стопудово ты под Линуксом.


Nope, но генератор в симейке ninja

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


у меня ничего не крашилось на самом memcpy, а лишь очень потом если я трогал в шейдере определенный буфер у меня всё зависало и меня выкидывало нахуй VK_ERROR_DEVICE_LOST

Поэтому дебагер вобще нихрена не помогал
помог nvidia insight, но и то я случайно увидел что у меня в буфере мусор валяется
947 3058130
>>058092

>у меня ничего не крашилось на самом memcpy



А компилятор не ругался ли? Замечания должен был дать.
data - где - в статик, на стеке? динамический аллокированный?

Вообще из практики - обычно падает довольно быстро, на самом memcpy, Особливо если size достаточно большой.
948 3058152
>>058130

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


А с чего ему, data это был void⚹, а я вместо него передал void⚹⚹ тоже указатель

> динамический аллокированный?


this
image.png36 Кб, 586x328
949 3058318
Что это за пиздец? Как именовать филды/типы/переменные и не обосраться?
image.png34 Кб, 555x324
950 3058320
Может вот так нормально?
image.png34 Кб, 686x348
951 3058326
Или так вообще?
952 3058389
>>058318
Тебе инт32 ни о чем не говорит?
953 3058401
>>058389
Это не typedef, да и выглядит убого это _t
954 3058420
>>058320
>>058326
И так, и так - нормально. В целом нормально.
Первое похоже на Майкрософт стайл.
955 3058421
>>058401
Не, _t выглядит не убого.
956 3058423
>>058026

>вместо memcpy(mapped_data, data, size);


>написал memcpy(mapped_data, &data, size);


Мне иде это полюбас бы рисовало варнинг на полэкрана за неявное приведение типов. Вы там в блокноте чтоле пишете.
957 3058494
>>058389
О чем это должно нам говорить? Наличие этого типа вообще не гарантируется стандартом.
sage 958 3058503
>>058318
Class_character
Enum_race
Member_race;
Parameter_ebuchiy_race
959 3058510
>>058503
Бьерн, залогинься
960 3058526
>>058423
Clang-tidy молчит
961 3058711
>>058494
Чел ты конченый.
>>058401
Нет. Это идельный способ именования типов.
962 3058714
>>058494
Ну тогда инт_леаст32_т.
963 3058715
>>058711

>Это идельный способ именования типов.


С хуя? Я без _t знаю что это тип, курсором цветом специальным выделяется, или курсор наводишь и видишь что конкретно за тип
17078478870200.mp46,7 Мб, mp4,
1080x1920, 0:19
964 3058719
>>2980771 →
Начался новый семак короче у меня в универе, подскажите книжку/серию видео для тех кто базу С уже как бы могет а в С++ не рубит ваще.
Я гуглю инфу а мне рассказывают что такое интеджер.
965 3058721
>>058326
В большинстве проектов типы с большой буквы, переменные - с маленькой.
966 3058722
>>058026
Для gcc и clang -fsanitize=address компилятору и линкеру.
967 3058756
>>058423
Если data - указатель, то хуй бы что выдало.
>>058722
Не факт, что асан что-то заметит в рантайме.
968 3058769
>>058722
Ох анончик, это именно то что я искал, как раз таки мою ошибку сразу детектит
Смог кстати даже на msvc запустить
2ch2G!!ON52CRehShRpdl6N 969 3061089
сап хз куда ещё писать можете послать в более подходящее место
я компилировал программу на си и винапи
там код простой
но вот что не понял
C:\tcc32\tcc.exe main.c -luser32 -lkernel32 -lgdi32 -o main.exe
где хранятся эти >>-luser32 -lkernel32 -lgdi32
библиотеки?
в mingw они в папке lib
а в tcc их нет вообще
откуда он их берёт?
970 3061295
>>061089
A) tcc.exe знает где они лежат
Б) Поковыряйся в path
971 3061333
>>061089
Что за tcc? Tint C Compiler или что-то другое?
972 3061362
>>058719

> Я гуглю инфу а мне рассказывают что такое интеджер.



Пропусти те главы где про интеджеры рассказывают, начни со следующих
973 3061380
>>061362

>Пропусти те главы где про интеджеры рассказывают, начни со следующих



И как он узнает про такое приведение типов?

i=int(0.1);
974 3061388
>>061380

Но пусть не скулит тогда, что ему про интеджер опять читать приходится
975 3061436
>>061333
да эт он
976 3061792
Какая же блютуз кривожопая технология-говно. Просто отборнейшие дауны занимаются её поддержкой. Я их блять просто ненавижу
977 3061808
>>061792
Нет. Она очень хороша. Имплементации могут быть говном, а как технология Bluetooth великолепен.
978 3061830
>>061808

> как технология Bluetooth великолепен


Нихуя подобного. Лучше бы на основе вафли сделали LE-реализацию. БТ порой даже в метре от приёмника отъебывает при перекрытии мясом, например пользоваться лёжа БТ-калом настоящая боль, если приёмник не в прямой видимости. У меня до сих пор 5 штук приёмников лежат, когда я ебался и пытался заставить их стабильно работать в стоящем на полу ПК. Стоит только параллельно расположенной ноге оказаться между любым устройством и приёмником - идут дикие потери. Как PCI/встроенный в материнку работал как говно, так и юсбишные, 15-сантиметровые антенны не дают никакого результата. В итоге пришёл к единственному рабочему костыльному решению - приёмник поднять над головой через удлинитель юсб. Я ебал такие технологии, плюнул бы в ебало тому кто это придумал. Почему древняя вафля на тех же 2.4 ггц пробивает стены, а этот кал даже в паре метров работает как дрисня? То что БТ жрёт мало - это не оправдание, ведь мне не дают выбора, я страдаю по умолчанию.
979 3061965
>>061830

>То что БТ жрёт мало - это не оправдание


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

>я страдаю по умолчанию


Ты серешь. Если бы дали выбор, каждый дебил бы врубил полную МОЩЬ и его пиздюлька тут же сдохла, а потом бы орал что устройство говно. Каждый тупорылый хуесос хочет всё и сразу, чтобы не жрало и чтобы стены пробивало. Так не бывает, дебил.
980 3061975
>>061965

> за пол часа, а так работают месяц


Фантазии приглуши свои. Легко гуглится энергопотребление обоих - у БТ всего в 2-3 раза ниже.
image.png548 Кб, 940x470
981 3062061
надо делать такой мощьности чтобы мозги нахуй запекало
хотя в принципе 5G идет в правильном направлении
982 3062076
>>061975
Блютус это беспроводной провод. Никто не таскает провод через стены. Стандартный провод около метра всего. Но тупорылые свиньи конечно считают, раз физического провода нет и можно отойти, значит можно отойти и на километр и оно обязано работать. Нет, не обязано, это ты серешь тупостью. Никто не говорил, что блютус это радиостанция для вещания.
983 3062081
>>062076

> беспроводной провод


Пиздос, по праздникам таблетки не дают?
984 3062428
>>061808
А ты с этой технологией работал? Или тебе просто нравятся эйрподсы к фифону подключать?
Технология хорошая только разве что как задумка. Но при этом у нее куча проблем от секурности до физического уровня про который уже писал анон выше. Хотя современные подходы в сетях и помогают нивелировать эти проблемы, но говно здесь закопано действительно в имплементация и поддержке, особенно от вендоров и линукса. Люди банально топы беспроблемных свистков составляют, чего говорить про дурачков которые занимаются в своем гараже имплементацией блюеза. Занимаются, только вот остальным, что они там делают сообщить забыли. И тебе приходится лезть в исходники литературно чтобы его настроить с их наркоманскими дебасами. Не то чтобы я жаловался, ведь на чем пишем забыл что-ли. Но разработка и так состоит из постоянного копания в легаси говне, а когда тебе вставляют еще одну палку, ты просто плюешь и идешь на обед вместо работы понимая что убьешь не один день, как будто других дел нет
985 3062439
двойные решеточки.. знаки подчеркивания..
все это былоа так замечательно там магически притягательно..
25 лет назад
какой же я дурак
986 3062464
>>062439
Да, классно было программировать на препроцессоре.
Moonlover 987 3062668
Я занялся имплементацией Форта на плюсах.
Сначала интерпретатор Форта, затем компилятор.
За вчера сделал половину интерпретатора. Если повезёт, сегодня интерпретатор закончу. Думал за день спраалюсь, но дня на интерпретатор не хватило. Может и двух дней не хватит, а может и хватит. Руки чешутся сделать компилятор Форта.

Задача весьма простая. И немного интересная.

Не спрашивайте зачем - придёт время - покажу и расскажу.
988 3062674
989 3063779
Пацыки, а godbolt это он в ассемблер для какого компилятора выводит? FASM, MASM, NASM?
990 3066459
>>062668
Компилятор-то зачем? В смысле, прикольно, конечно, но форт и так достаточно быстрый для встраиваемого языка. Тупо инлайн прикрутить, и уже ускорение достаточное. Интереснее именно на самом форте писать, ломать устоявшиеся парадигмы в мозгу, что глобальный стейт - это грех, что данные не могут быть кодом, и т.д.
991 3066504
>>066459

>Компилятор-то зачем?


Расскажу после. Серьёзно. Вероятно к тому времени тему перекатят.

А покамест расскажу как заплутал - когда дошёл до теста вложенного цилка, понял что пошёл не по тому пути, а тут и выходные закончились и навалилась как всегда работа. Сейчас продумываю и буду переписывать по канонам, а не по наитию. Но в принципе - неплохой опыт. Примечательно что ошибки проектирования вылезли когда вот уже "всё почти готово".
992 3066509
Форт - хуйня без задач. На его фоне даже от хаскелля какой-то толк есть.
993 3066521
>>066509
Форт в космос летал, в отличие от хаскеля. Да и сейчас - это самый простой способ удобно работать с железом. Без говна с тулчейнами, рекомпиляцией и заливкой билда. Написал форт и асм на том же форте, минимум обвязки - и ты король, все тебе подвластно. Но это язык для одного программиста-энтузиаста, конечно. С современным подходом к разработке далеко не уедешь.
994 3066660
>>066521

> Без говна с тулчейнами, рекомпиляцией и заливкой билда


Объясни ньюфагу, что это значит? Какие проблемы с железом у стандартных инструментов?
995 3066805
56815cfa7ca0ed7d0f7ce5e80143915882b3169b17d7c1bd1088b4629f75913e.jpg49 Кб, 1592x894
996 3066807
997 3066900
>>066805
вопросы религии обсуждают в /re
998 3067058
>>066660

>Какие проблемы с железом у стандартных инструментов?


Проблем нет, есть стандартный цикл: скомпилировал, записал прошивку, запустил-отдебажил, ошибка - все по-новой. Форт позволяет это делать интерактивно, через REPL, что гораздо удобнее.
999 3067145
>>067058
Интерпретатор что ли? Так они тормозные пиздец.
1000 3067237
>>067145
У Форта достаточно шустрый интерпретатор. Он скорее как транслятор. И при желании программу на Форте можно в ассемблер перегнать. Для Форта кодогенерация раз эдак в 100 проще, чем для Си, а тем более для С++.
1001 3067333
>>067145

>Интерпретатор что ли? Так они тормозные пиздец.


Минимальный ассемблер под машину пишется буквально за вечер. Вот для ARM, например, 400 строк:
https://github.com/forthy42/gforth/blob/master/arch/arm/asm.fs
1002 3067410
>>067237

>достаточно шустрый интерпретатор


Интерпретатор - кошмарно тормозной по определению, любой. Твоя "удобная интерактивная отладка" стоит -100 ~ 1000 раз производительности. Компиляцию и сделали чтобы не тыквить компьютеры днищенскими ограничениями. Так что нихуя твоя ковырялка строчная не лучше компиляции с заливкой нативного кода, потому что области применения совершенно разные. Плюс разве что, если можно поковырять интерпретатор для отладки, а потом скомпилить и залить как следует, тогда да.
1003 3067557
>>067333
Ну ни за вечер, но достаточно просто. Надеюь ты ссылку на свой код дал, который за вечер написал.

Что касается Форта то я тоже его за вечер написал и он даже что-то выполнять начал, от чего я сюда прибежал хвалиться. На деле пришлось перепроектировать и переписывать. За вечер пишутся программы которые как бы работают, а лезешь что-то улучшать/исправлять/дополнять и понимаешьчто спешка хороша при ловле блох, а не в программировании.

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

И насчёт проектирования тоже мысли есть. Вот его неплохо делать когда уже по граблям прошёлся. На прототипе шишек набил - самое время проектировать.
1004 3067681
>>067557

>самое время проектировать


Пойти на сайт и скачать этот форт не пробовал? Уже всё написано, и получше тебя.

Очень удобно проектировать то, что никому не нужно включая тебя самого. Никто не пользуется, а значит тебя ебалом в проблемы не ткнёт. Можно спокойно лепить говно и ничего тебе за это не будет, воображая себя великим архертехтаром с идеальным кодом.
Вот только программирование это не код, а программы. Программы определяются их пользователями, а не тобой с твоим говнокодом в манямирке.

Поэтому тупые ленивые говнари и не делают ничего реального, а только "переписывают" уже написанное, естественно всегда хуже оригинала, ведь это снимает всю ответственность за высираемое говно. Что может хорошего написать хуесос даже не начавший толком ничего писать, но уже сделавший всё, чтобы прикрыть свою жопу, откосить от работы, от ответственности. Заранее не собирается ничего делать, но идет имитировать дело с гордо поднятой головой. Тупые уроды.
1005 3067751
>>067681
Жёстко ты приложил офисных рабов.
1006 3067958
>>067681
Ты хто? Брысь. Срыгни отсюда.
1007 3068082
>>067557

>Ну ни за вечер, но достаточно просто. Надеюь ты ссылку на свой код дал, который за вечер написал.


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

>за вечер


А тем временем в реальности: репортишь баг, прошло 10 лет, баг так и висит.
1009 3068601
>>068590
- Правьте баги сами
- Кто, я?!!!
1010 3068799
Подсобите плз. Собираю кутовую приложуху, нужно максимально оптимизировть бинарь. Нагуглил про стрип, lto, собираю в релизе и статически. Получилось неплохие 20мб. Есть еще хаки? Что почитать?
1011 3068818
>>068799
Ещё -Os, но сильно он не ужмёт.
1012 3068828
>>068799
>>068818
Нормально жмёт.
a strip ключики имеет. Если заиграться, то можно вырезать чть-нибудь полезное, от чего программа не будет запускаться.

И всё же 20 Мб это как-то много. Может быть библиотеки с отладочной информацией линкуешь? Т.е. компиленное тобой поажто а кьютишные либы не пожаты. Попробуй саму Qt собрать с ключом -Os.
image.png68 Кб, 864x907
1013 3068846
>>062668
Ну вот и альфа версия интерпретатора Форта заработала. Сырое-сырое, но таки заработала.

Пока в 960 строк поместилась, но не гнался за компактностью.
1015 3068862
>>068818
>>068828
>>068861
Благодарю, коллеги
sage 1016 3069279
Есть проект под линукс и гцц.
Большая часть универсальная, поэтому портировать под винду и мсвц было не сложно.
Но встал вопрос, если вдруг захочется внезапно собрать с мингв, то какие буилтины и интринсики использовать - гццсшные или виндовые?
потому как беглый взгляд на сурсы мингв показал что некоторые мсвц буилтины реальзованы, некоторые дергаются из винапи, но так же присутствуют чисто гцц буилтины
1017 3069481
>>069279
Чертова сажа.
1018 3069530
>>069279
#ifdef _GOVNO_
че забыл уже как выглядит кроссплатформенность на крестах
1019 3069558
>>069530

> читай пост


> думай


> отвечай


Мотай на ус.
1020 3069568
>>069558
чел если ты обмазываешься интринсиками значит уже принял решение прибить прогу к одной платформе и компилеру
1021 3069576
>>069279
Суть в следующем - ВЕСЬ развитый МИР пишет бизнес логику в Вижуал Студии. И из неё переносит на линуксы и встраиваемые системы. Вы пошли другим путём, поэтому страдаете.
1023 3069581
1024 3069603
>>069576
Еще один особенный. Пост прочесть не способен, но вот бреда высрать горазд.
1025 3069606
>>069576
Поделись копиумом
1026 3069628
>>069603

>Пост прочесть не способен,


ССЗБ.

Ещё раз - с винды все портируется влёт на любую платформу. В обратную сторону - ебись как хочешь. Что непонятного?
1027 3069669
>>069628
В обратную сторону никому и не нужно, если бы ты читать умел то понял бы.
1028 3069676
>>069628

> любую платформу1



1. линупс
1029 3069677
>>069669
Первый разумист на хз сколько это же не смен правда? дебилов.
>>069628
Даже отвечать таким не хочется уже, реально нобрэйнеры. а потом удивляются чего это говно вокруг, да потом что толпы таких неучей как ты не способны прочесть двух предложений
1030 3069859
>>069669

> если бы ты читать умел то понял бы.


Хорошо. Я невнимательно прочитал. Вопрос бы был вот тут:

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


Звучит как обмазаться говном.
mingw это лютая хуета и мрезость, к которой лучше не прикасаться.
1031 3069942
>>069859
Clang/gcc > Mingw > msvc > other shit
Но Дискасс
1032 3069957
>>069942
Нет. Правильно только так:
intel C++ > msvc > clang/gcc

А больше ничего и нет, кроме компилятора для какого-то специализированного железа, типа DSP.
1033 3069960
Меня заебало сидеть в дебаггере, меня заебали плюсы, но еще больше меня бесит весь тот пласт сишного говна который тянется как понос за собакой обтеревшей жопу об пол. У меня просто зубы скрипят, у меня под глазами мешки и я еду крышой. Помогите
1034 3069970
>>069960
Слабый ты. А "сишное говно" - лучшее что есть в плюсах.
1035 3069972
>>069970
Пошла нахуй дура
1036 3069976
>>069957
дед, таблетки
image.png62 Кб, 1108x866
1037 3069987
>>069960

>Помогите


Покажи скриншот кода. Если ты много сидишь в дебагере, значит что-то не так с твоим кодом.

Думаешь в C# не приходится сидеть в дебагере? Четырё грёбаных дня просидел в дебагере, решая ДВЕ задачи. Но там и проект вот на картинке, который пишется более десятка лет большой и дружной толпой.
1038 3069996
>>069976
Intel C++ для числодробилок. Оптимизирован под скорость. Давно не интересовался вопросом, но когда последний раз смотрел, он был самый быстрый. Точнее, сгенерированный им код самый быстрый.
1039 3069999
>>069987

> Дептс оф инэритенц


> 12


Вы там совсем ебу дали?
1040 3070002
>>069996
Быстрый под чем? Под Интел? Так серваки на амд.
А если нужно действительно быстро считать - fpga.
Да и не понятно нахуя тут вообще тогда плюсы. Си и погнал.
1041 3070007
>>069999

>Вы там совсем ебу дали?


Не буду деанониться, но этим продуктом пол мира пользуется. Если не весь. Причём, давно.
1042 3070008
>>070002
А плюсы не тормознее Си. Если осмысленно переехал на плюсы с Си.
1043 3070018
>>069987

> Четырё грёбаных дня просидел в дебагере, решая ДВЕ задачи.


Да пиздец, заебали джуны, нихуя не делают и ещё денег просят. Увольнял бы вас нахуй, хуже нейросеток, наху.
1044 3070021
>>070008
Плюсы дают тебе больше способов написать хуйню. А когнитивная сложность у плюсов ещё и выше.
Плюсы это вообще нонсенс, числодробилки помноженные на ооп и Энтерпрайз.
1045 3070025
>>070007
Это понятно, вы крутые.
Но какие нахуй 12 наследований
1046 3070026
>>070021

> Плюсы


> ооп


Что-то одно выбери, джавапетух.
1047 3070029
>>070026
Дедуль, спокуху, за таблетками уже пошли
1048 3070032
>>070025

>Но какие нахуй 12 наследований


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

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

И если что - я не тот, основал компанию, не Chief technical officer.
1049 3070039
>>070032
Я хз, я же плюсовик, у нас не принято более 3 уровней наследования. А за множественные вообще по рукам бьют.
Да не, код нормальный. И на ревью ебут.
1050 3070040
>>070039
Так в Сишарпе множественного наследования нет. И это неплохо в принципе. Я и на плюсах отказался от множественного наследования. Один предок и если надо, то интерфейс. Хватает.
1051 3070041
>>070040
А, ну тогда заебись.
У нас это средство уничтожения архитектуры осталось. Нам все опасные игрушки разрешены.
1052 3070052
>>069960
Что ты такое делаешь хоть? Какая область? Дебаггер и си - это что-то низкоуровневое или с кучей оптимизаций вручную (скорее всего уже не нужных в 2024).
1053 3070065
>>069576

> ВЕСЬ развитый МИР пишет бизнес логику в Вижуал Студии.


Весь развитый мир сейчас на маках сидит поголовно. Винда - это специфический мир энтерпрайза и всякого офисного говна. Плюс наследники юникса - это абсолютное большинство систем сейчас, винда - отдельный мир, где все несовместимое и особенное в плохом смысле.
1054 3070068
>>070065

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


Чушь. Разработчики не используют маки. Точнее, используют если пишут для Айфонов. Потому что выбора нет. Видишь кого с яблоком - это или девопсина, или какой-то менджер.
Ни один разработчик в здравом уме не выберет Макбук.
1055 3070070
>>070040

>Так в Сишарпе множественного наследования нет.


Сейчас и в шарпе и в джаве добавили реализацию у интерфейсов. Это фактически множественное наследование и есть.
1056 3070071
>>070068

>Ни один разработчик в здравом уме не выберет Макбук.


Торвальдс, например. Он сейчас больше менеджер, конечно, но с кодом работает побольше любого сеньора-помидора.
1057 3070072
>>070070
Давай вспоминать что такое интерфейс c C++:

Интерфейсным классом называется абстрактный класс, не имеющий данных и состоящий в основном из чисто виртуальных функций. Такой класс может иметь обычные виртуальные функции (не чисто виртуальные), например деструктор. Также могут быть статические функции-члены, например функции-фабрики.
1058 3070074
>>070071

>Торвальдс, например.



Кто бы о нём помнил сейчас, если бы IBM не решила припустить Microsoft в своё время. И отомстить за OS/2.
1059 3070075
>>070072
Я про шарп и джаву говорил, там свой мирок. Когда реализация "интерфейса" явно требует определенный стейт от наследника (и разработчики бы стейт добавили, если бы была физическая возможность) - это уже не интерфейс, а миксин, вариант множественного наследования.
1060 3070076
>>070074
Если бы BeOS выстрелила, мы бы тоже в другом мире жили. Но имеем, что имеем. Винда сейчас откровенно гниет под управлением индуса.
1061 3070108
>>070065
Да, специфический мир энтерпрайза, при этом доля рынка пк под 90%.
Бля мне даже вот интересно стало, в какой такой офис плюсовых разработчиков можно зайти и увидеть хоть одного с маком? У нас вообще ни одного нет, хотя когда мне покупали ноут, я задумался не взять ли это говно, спасибо что мои школьные мозги тогда все же не настолько были оплавлены
1062 3070142
https://www.youtube.com/watch?v=Cttb8vMuq-Y

чтоб до завтра все посмотрели, буду проверять
image.png140 Кб, 870x487
1063 3070147
неужели хороший нейминг так сложно сделать

ну с какого хуя auto копирует значение
1064 3070148
>>070147

> с какого хуя auto копирует значение


А что должен делать вызов конструктора копирования?
1065 3070158
>>070148
Ты к чему это спрашиваешь? Я где то говорил что конструктор копирования что то не то делает?
1066 3070164
auto a = auto{x};
1067 3070165
>>070158
К тому что auto(x) - это вызов конструктора копирования типа переменной х.
1068 3070166
>>070165
Спасибо что сообщил, но я это знал
1069 3070168
>>070166
Тогда зачем спрашиваешь?
1070 3070185
>>070168
Спрашиваю про нейминг
1071 3070197
>>070185
Что тебе не нравится? auto в данном случае обозначает автоматический выбор конструктора.
Screenshot20240302-125623YouTube.jpg454 Кб, 2340x1080
1072 3070444
>>070142
Вот на этом месте захотелось его убить.
1073 3070475
>>070444
Классно же
1074 3070479
>>070444
Да, сразу какой-то пидоРастией запахло.
1075 3070482
>>070444
Потрясающая хуйня. Жаль что в 23.
Что можно почитать посмотреть, если такое извращение нравится?
1076 3070488
>>070142
Короче, из реально годного, это игнорирование пробелов между \ и переводом строки. Вот это правильно.
image.png106 Кб, 1219x485
1077 3070859
lock в 177 строчке скрывает lock из 173-ей.
Я правильно понимаю, что сокрытие затрагивает только доступность имен, а по факту тут два разных мутекса, которые корректно делают свою работу?
Или что-то может пойти не так?

мопед не мой, пример из говнокнижки
1078 3070868
>>070859

> а по факту тут два разных мутекса, которые корректно делают свою работу?


Все так
1079 3070912
>>070444
А чо за println? Я знаю тока printf puts и cout ….
1080 3070924
>>070912
Надо было видео с начала смотреть. Потихоньку воруют синтаксис у C#.
1081 3070937
>>070924
У раста
1082 3071047
>>070444
читает инт из стандартного ввод, умножает его на 2, выводит в стандартный вывод;
на stl с++98 это можно сделать в одну строку бля
1083 3071334
>>071047

> умножает его на 2,


Только если что то считалось
Если не считалось то ноу интегер

дедуль, пора уже про optional почитать
1084 3071502
>>070444
Видел в шарпе такую хрень похожую на SQL, проблевался. Теперь и в плюсы притащили. Удваиваю >>070479
1085 3071522
>>071502

> Видел в шарпе такую хрень похожую на SQL


Интересное виденье функциональщины
1086 3071654
>>071334

>дедуль


Ты точно программист? А если программист, то написал хотя бы одну программу?
1087 3071740
>>071654
Как же от тебя старостью воняет
image.png119 Кб, 977x816
Forth Moonlover 1088 3071771
Неделя трудов в свободное от зарабатывания денег время.
Руки тянутся и сердце рвётся приступить к генерации ассемблерного кода из Форта, но пока повременю - больше тестов богу тестов.

Нафига мне понадобился Форт? А потому что есть "железка", для которой нет ни одного компилятора. Не существует в природе. Есть только ассемблер. Посему выбор Форта, как второго языка, вполне логичен.
нуб 1089 3071788
https://education.yandex.ru/handbook/cpp/article/classes#menyaem-realizacziyu-sohranyaem-interfejs
Здесь правильно описан интерфейс? Мне казалось, что интерфейсом называют абстрактный класс с виртуальной функцией, не позволяющий создавать объектов.
1090 3071791
>>071788

> js


Ты тредом ошибся.
1091 3071794
>>071788
Выше по треду определение интерфейсного класса ->>070072
1000004512.jpg39 Кб, 466x615
1092 3071796
Интерфейс это хэдер файл
1093 3072064
>>071740
Вот когда напишешь, тогда открывай рот. А до тех пор не открывай - залетит что-нибудь.

А насчёт старости - и ты будешь старый.
И ещё пока у меню хуй стоит, но уже не на всех и не всегда.
1094 3072764
бля круто
самое главное продолжай держать нас плотно в курсе
1095 3072784
>>072064

> Не на всех


А то есть ранее он на всех стоял? Ты из растотреда?
1096 3072856
Попробовал CLion Nova основан на движке из решарпера, а не clangd, наконец-то что-то рабочее. Нормально работает с C++23, в отличии от clangd, который на working draft STL срёт несуществующими ошибками в IDE, при том что код компилируется на том же clang. Плюс сама подсветка синтаксиса пободрее. Теперь уже можно жить на актуальных крестах и не страдать как будто в блокноте пишешь. А то меня аж трясло от того что в clangd даже мапу инициализировать нельзя без ошибки "нет подходящего конструктора".
Ещё бы это портанули в VS Code, IntelliSense такое же говно как и clangd.
1097 3072864
>>072856
Зачем тебе свежий стандарт и что ты пишешь?
1098 3072873
>>072864
А зачем писать на устаревшем стандарте? С++23 уже финализирован, в свежей STL много хороших фич есть, те же ranges, например. clangd отъёбывает даже если С++20 используешь со свежей STL, пикрилейтед этого говна - на первом пике clangd, на втором нова.
1099 3072878
>>072873
>>072873

Походу компилятор для тебя не инструмент, а забавная игрушка.
1100 3072930
Хочу сделать какие-то пользовательские расширения для моего скомпилированного говна, которые работают без дополнительных вызовов внешних библиотек и прочего говна. Идея токова.

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

Такое вообще возможно? Звучит вроде как как что-то возможное...
1101 3072989
>>072878
Ты так и не объяснил какой профит сидеть на два стандарта ниже актуального.
>>072930
Пиздец поток сознания. В рантайме можешь вообще любое говно смапить в память процесса куда надо, задать нужные флаги защиты странице памяти в винде вызвать VirtualProtect() с флагом PAGE_EXECUTE_READ и выполнить из него код. Разве что DEP под виндой может не дать выполнить код со стека, всё остальное можно.
Но нормальный человек бы сделал подключение внешних плагинов просто через LoadLibrary и GetProcAddress.
1102 3073006
>>072989

> Пиздец поток сознания.


Разговаривать пиздец разучился, два месяца ебу алгоритмы

> задать нужные флаги защиты странице памяти в винде вызвать VirtualProtect() с флагом PAGE_EXECUTE_READ и выполнить из него код. Разве что DEP под виндой может не дать выполнить код со стека, всё остальное можно.


Где про эту хуйню читать-то вообще? Там ещё глобалы есть, функции должны глобалы жрать.

> Но нормальный человек бы сделал подключение внешних плагинов просто через LoadLibrary и GetProcAddress.


Там стоимость же есть, а у меня симуляция, не хотеть чтобы плагины жрали во время выполнения даже одного лишнего вызова.
1103 3073048
>>073006

> Там стоимость же есть


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

> глобалы


Вот от этого избавься. Либо плагину в параметрах передавай указатели на это дерьмо.
1104 3073096
>>073048

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


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

Сейчас внезапно понял что позволять юзерам вшивать свои бинари в файл это довольно хуевая идея, кхе-кхе, даже если компилировать на сервере и все проверки на сервере будут проходить.
1105 3073097
>>072989

>Ты так и не объяснил какой профит сидеть на два стандарта ниже актуального.



Хорошо, я тебе объясню. Очень просто объясню. Ты, вот лично ты, со стороны не выглядишь разработчиком ПО. Ты ассоциируешься у меня с преподом колежда/универа, который в жизни не писал ничего сложнее тестовых задачек, не прикасался к реальным проектам. Что, впрочем, не удивительно для российских реалий - тут 3,5 конторы которым действительно нужен С++.

Вот эти все вопросы: "А что ты писал/написал?" Они остались без ответа. Судя по всему - ничего. Но конечно надравичать на новые стандарты это твоё.

Конечно я могу ошибаться, назвав тебя преподом, тем более что быть преподом это даже престижно как-то. Но реально я сильно сомневаюсь что твой код где-то кем-то используется.
1106 3073124
1107 3073128
>>073097
Ты нихуя не объяснил, просто ad hominem.
мимо
1108 3073139
>>073096

> с перезаписью скомпилированного файла


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

> любую стоимость


Ты бы сначала выяснил какую такую "любую" собираешься оптимизировать. Оптимизации без бенчей и профилирования - это путь в никуда. По нормальному надо сначала написать рабочий код, а потом уже после бенчей думать и оптимизировать.
>>073097
Чел, хватит ныть. Вон zig уже в продакшене используют, хотя это такое серые поделие, что даже working draft позавидует. Твоё фанатичное желание сидеть на протухших технологиях никого не волнует, хоть на сишке сиди. C++20 уже много где в продакшене, начиная от нвидии и их CUDA и заканчивая тем же UE5, С++23 в этом году уже в крупные проекты пойдёт понемногу.

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


Это как раз местные шизики из НИИ или студенты учащие кресты по Страуструпу тут топят за старые кресты. В реальности всё немного не так - приоритет в большинстве случаев перед стандартной либой, а не пердольным либам/самописному говну. Буст это вообще ядерный полигон, где обкатывают фичи перед тем как они попадут в стандарт. Фанатичное нежелание использовать современные кресты - это либо тонна легаси, либо утята-шизики. Во всех остальных случаях нет никаких проблем брать актуальную STL.
1109 3073163
>>073124
Там же потеря производительности будет каждый раз при запросе функции, не?

>>073139

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


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

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


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

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


Стоимость запуска функций в оснвном.

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


У меня симуляции, нужно оптимизировать всё прежде чем говно писать. Оно впринципе уже довольно неплохо работает, но можно и ещё лучше.
1110 3073175
>>073163
Ты похоже не понимаешь о какой стоимости идёт речь. Операция деления медленнее чем вызов функции.
1111 3073186
>>073139

>C++20 уже много где в продакшене, начиная от нвидии и их CUDA и заканчивая тем же UE5


Знаем, плавали. В паре мест, где можно было обойтись и без новых фич, воткнули модный код, остальные 99.999% кода всё такое же древнее легаси на костылях и бусте вплоть до 98 стандарта.
1112 3073203
>>073175

>Операция деления медленнее чем вызов функции.


????
1113 3073213
>>073175
Так этож с длл функция, не? Там какая-то другая таблица адресации, ещё какая-то хуйня. Мне кажется дороже чем деление, гораздо.
1114 3073296
>>073213
Длсцф/лоадлайбрари один раз при инициализации и потом строго похер.
1115 3073326
>>073213

> Там какая-то другая таблица адресации


Какая нахуй разница. У тебя вызов по указателю. Разница лишь в том что оно может быть чуть медленнее когда функция далеко и нет оптимизаций компилятора - он одиночные вызовы часто инлайнит. Ты конечно можешь сделать руками что-то типа такого, но это уже по сути JIT-компилятор с рантайм рекомпиляцией будешь писать.
1116 3073337
>>073186

> В паре мест


Сразу видно что ты диванный.
1117 3073348
>>073296

>один раз при инициализации и потом строго похер.


Оптимизирую до уровня наносекунд, так что не похер.

>>073326

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


Короче в случае чего я могу засунуть не просто функцию, а прямо инлайн бинарный код в мой говноцикл который запускает все функции, и именно так хуячить "пользовательские расширения". Прямо в скомпилированный файл. Верно понимаю?
1118 3073352
>>073348

> Верно понимаю?


Если напишешь рантайм рекомпиляцию кода.
1119 3073393
>>073352
А нахуя рекомпилировать-то, я просто какие-нибудь флаги выставлю и всё.
По сути мне просто нужно два бинаря сшить в нужном месте, если то что ты описал работает, то сработает и моя фантазия.
1120 3073403
>>073393

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


Ты занимаешься глупостями.
1121 3073427

> борется за наносекунды


> хочет засунуть рекомпиляцию


Мужик ты чё
1122 3073430
>>073403
Прост выдумываю разные стратегии, чтобы понять куда архитектуру двигать.

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

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

>>073427
Так рекомпиляция будет один раз, а мне наносекунды нужны во время выполнения цикла симуляции.
1123 3073458
>>073337
Ты хочешь сказать что анрил переписали с нуля с концептами, корутинами и ренджами?

>CUDA


https://github.com/NVIDIA/cccl/blob/main/thrust/thrust/tuple.h#L185
Благо дебичи догадались форкнуть либс++ и траст теперь не нужен.
1124 3073468
>>073186
Неправда, кабаны этого не любят, но обычно инициативные разработчики пытаются бороться с легаси. Избавляются от буста и велосипедов в пользу стандарта и тп
1125 3073472
>>073430

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



Сегмент кода ReadOnly. На всех современных операционках. Только полезешь писать туда, сразу словишь CoreDump или "Программа выполнила недопустимую операцию и будет закрыта."

Твои трюки могли бы прокатить во время MS-DOS.
1126 3073473
>>073458

> переписали


Ты траллишь тупостью или что? Речь про то на чём СЕЙЧАС пишут, а не твои попытки в демагогию. Открывай свежие коммиты и смотри что там. Представь себе, фичи С++20 активно используются. Тот же UE5 только под С++20 собирается, в свежем коде и всяких концептов много, рейнджи используют тоже.
1127 3073483
>>073430
почитай как делают плагины на основе динамически загружаемых модулей, хотя бы в том же самом геймдейве;
для энтерпрайза то понятно что во многом тема сдохла, потому что кресты теперь там почти не используют, во многом потому что нет механизма стандартизированной загрузки-выгрузки классов, но это уже немного другая тема
1128 3073564
>>073472
Чел.... Просто не пишешь код в ридонли разделы.... Единственный минус это просирается кэш инструкций, что не есть хорошо.
Лучше будет при запуске просто вносить изменения в ядро. Нашёл уже несколько прототипов программ которые нормально с этим работают и модифицируют код и даже могут читать глобалы.

>>073483
Все эти плагины и модули имеют стоимость при каждом вызове функций. А я хочу чтобы оно прямо в основном цикле симуляции пользовательские расширения были доступны и совершенно никак не нагружали этот цикл, тупо вставка инструкций новых.
1129 3073584
>>073472
>>073564

> Только полезешь писать туда, сразу словишь CoreDump


> Просто не пишешь код в ридонли разделы


Челы, вы первый раз что ли? Никогда не писали инжекторы в процессы? Защита страниц свободно меняется - делаешь read-write память, меняешь что надо, возвращаешь обратно execute-read. Вся эта защита не от того чтобы кто-то не залез туда, а чтоб кривая память случайно или специально из-за переполнения буфера какого-нибудь не полезла куда не надо.
1130 3073598
>>073584

> Никогда не писали инжекторы в процессы?


Ну я не писал, по этому сюда и пришёл.

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


Всё настолько просто? Получается тот анон сверху хуйню полную написал?

Тогда мне вообще можно во время исполнения модифицировать говнокод, инжектить туда что нужно, и не ебать мозги совершенно никак?
1131 3073606
>>073564

>Нашёл уже несколько прототипов программ которые нормально с этим работают и модифицируют код и даже могут читать глобалы.


Покажи.

>>073584

>Никогда не писали инжекторы в процессы?


Не было такой необходимости.

>Защита страниц свободно меняется - делаешь read-write память, меняешь что надо, возвращаешь обратно execute-read.


Это на чём ты так делал? На какой ОС? Покажи API.

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


Это понятно. Ты API покажи.
1132 3073608
>>073598

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


Если ты готов писать на ассемблере или написать JIT-рекомпилер. Ты явно не понимаешь что хочешь сделать.

> не ебать мозги совершенно никак?


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

> Ты API покажи.


https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualprotect
image.png46 Кб, 1151x587
1133 3073624
>>073608

>https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualprotect



Нихуяссе ты чёрт! (В хорошем смысле этого слова)
Оно действительно работает. Вот попробовал это код на картинке и записал константу в код.

А под Линуксами тоже такое есть?
1134 3073638
>>073606

> Покажи.


За меня уже показали, суть там примерно такая же.

>>073608

> Если ты готов писать на ассемблере


Не вижу в этом проблемы особой.

> или написать JIT-рекомпилер.


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

> Ты явно не понимаешь что хочешь сделать.


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

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


Да я в курсе, и не пытаюсь в это вникнуть даже, немного погулил только. Мне важна понять можно ли это сделать или нет. Если такое можно сделать и даже можно не обосраться с кэшем команд - то мне не нужно менять архитектуру и что-то дописывать. Если возможности нет - нужно дописать код и как-то пытаться впихнуть внешние библиотеки и передавать в них глобалы, а не хочу это делать по причине проеб производительности на каждый вызов.
1135 3073645
>>073624

int * return_next_instruction_pointer()
{
_asm {
mov eax, [ebp+4]
}
}
1136 3073646
>>073638
Чо ты там вообще такое пишешь?
1137 3073651
>>073646
Симуляцию всякого интересного говна про которое не расскажу с циклом на 1-10 кГц. Каждая проебанная наносекунда решает.
1138 3073658
>>073651
Но для этого не нужно самомодифицировать код. Это порочная практика. 10 КГц ты вытянешь на современном компе просто эмуляцией.
1139 3073667
>>073658

> Но для этого не нужно самомодифицировать код. Это порочная практика.


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

> 10 КГц ты вытянешь на современном компе просто эмуляцией.


Там вычислений может быть дохуя, например 2к строк матана или больше. 10кГц это верхний разумный предел, но хотелось бы чтобы он был как можно выше, например 50, да и чтобы это работало на дешманских серверах и процах.
1140 3073681
>>073667
Чего бы тогда не посмотреть в сторону ПЛИСин со встроенной плавающей запятой? Очень дорого, это да, прям неприлично дорого. Но по скорости порвут всё что только возможно и невозможно тоже. Представь как вкусно - ебически длинное выражение, которое конвейеризируется и всё сразу считается непрерывно. Ещё доступ к памяти оптимизируешь.

Ебаная капча постоянно подсовывает названия советских радиоламп. Безумие какое-то.
1141 3073724
>>073651

>Симуляцию всякого интересного говна


Почти все современные "симуляторы всякого говна" работают через dynarec, динамическую рекомпиляцию. Полно готовых решений для JIT и кодогенераторов разной сложности.
1142 3073790
>>073473

>в свежем коде


Я про это и писал, дебич. Формально у нас C++20. Стильно, модно, молодёжно. По факту, это лишь бесполезные фасад, всё самое главное, в глубине, лютое костыльное легаси, на которое дыхнуть боишься, не то что трогать.
1143 3073805
>>073790

>на которое дыхнуть боишься, не то что трогать


То есть у вас попросту некомпетентные макаки вместо программистов, раз не могут разобраться в коде - в своей работе между прочим. Не можешь - вон из профессии, неграмотная хуесосина. Как такие вообще попадают на должности, непонятно. Ваша контора гадюшник некомпетентного говна, всех надо разогнать нахуй, начиная с начальства допустившего этот пиздец.
1144 3073809
>>073805
Ебать порвался
?.jpg275 Кб, 1280x1280
1145 3073826
>>073805
Буквально везде так. Добро пожаловать в реальный мир.
1146 3073867
>>073681
Оно на серверах и пользовательских устройствах должно работать, в этом проблема и ещё пользователи могут пилить свои дополнения и встраивать. Если это будет плис, то у всех жопа порвётся, наверное.

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

>>073724
Короче мою маняфантазию сделать возможно, так же как делают динореки и житы. В случае чего просто напишу авторам какой-нибудь подобной либы. А пока что обойдусь генераторами кода, например, или чем ещё подобным.
1147 3074025
>>073826
Я так и сказал - это ты некомпетентное говно, а не "легаси-код плохой". Зачем хвастаться своей тупостью и свинством публично, вот в чем вопрос. Ты говно сидящее не на своем месте, паразит ворующий деньги и не делающий работу. Зачем ты здесь в треде программирования? Зачем ты тут рассказываешь какое ты говно, а не программист? Чтобы что?

И для неграмотных дебилов, в данном случае обращение "ты" общее ко множеству людей, а не индивидуальное.
1148 3074126
>>074025
>>073805
А зачем вообще с++23, если в с14 достаточно для всего? Если тебе что-то недостаточно - у тебя хуевая архитектура.
1149 3074131
>>074126

>с14


c11 в смысле, ебаные стандарты, хуй сломаешь с ними
1150 3074283
>>074131
С98
Ноудискасс
1151 3074286
>>074283
Не ну там тредов нет, как бы 11 всё же получше будет. Максимум 17, думаю. 23 конечно стоит рассматривать, но ничего нового там не прибавилось.
Энивай на с++ лучше не кодить.
1152 3074419
>>074126

>А зачем вообще с++23, если в с14 достаточно для всего?


В 17 добавили инициализацию в ифы, можно делать if ( bool ok = foo(); ok ) - очень удобно. Ну и только ради констэкспров можно дальше переползать.
1153 3074475
>>074419

> if ( bool ok = foo(); ok )


Вот это норм, кста.

> констэкспров


А это хуй знает, сомнительно. Шаблоны можно и без этого делать, а мешать шаблонный код с обычным выглядит как не очень хорошая идея.
1154 3074489
>>074475

>> if ( bool ok = foo(); ok )


>Вот это норм, кста.



ЧТо тут норм? Область видимости ok какая???

> констэкспров


>А это хуй знает, сомнительно.


А вот они как раз годнота. Впрочем, я не старался их понять - утащил пример один и пользую его практически во всех проектах для использования строк в switch/case. А мне для большего он и не нужен.
1155 3074506
>>074126
Много ты понимаешь говноед
1156 3074512
Ретроградство нового уровня, да зачем нам этот новый стандарт, и так хорошо живём

>>074489

> ЧТо тут норм? Область видимости ok какая???


Внутри блока иф очевидно

мимо
1157 3074516
>>074506
Понимаю как не писать говнокод.
1158 3074519
>>074512

>Внутри блока иф очевидно


Это не очевидно, если что.
1159 3074527
>>074519
А есть ещё варианты
которые были бы не совсем глупые?
1160 3074555
>>074475

>Шаблоны можно и без этого делать


Можно, по 200 строчек нечитаемого леса из угловых скобок вместо одного цикла с constexpr.
1161 3074584
>>074527
Внутри круглых скобок? Не?
1162 3074588
>>074489

>ЧТо тут норм?


Пукции понятнее становятся, очевидно.

> Область видимости ok какая???


Ебать ты. Три дня в программировании? Скобочная.

> А вот они как раз годнота.


Ни одного успешного применения

>>074555
Звучит как говняк без макросов
1163 3074597
>>074512
а внутри его блока елсе тоже очевидно?
1164 3074614
>>074588

>Ни одного успешного применения


>


Ха ха ха ха.
Вот ты и спалился.
1165 3074692
>>074519
Ты тупой просто, сори.
Вот тебе и не очевидно
1166 3074699
>>074692
Ну да, я такой. Это безусловно.
Но ты тупее.
1167 3074709
>>074614
Для них нужно подстраивать архитектуру, т.е. я свой код должен подговнять по какие-то констэкспы. Нахуй это нужно вообще, и без этого проблем дохуя, ещё тут этим заниматься, легче и проще макросами наговнять то же самое.
1168 3074768
>>074709
Не. Тут фишка в другом. Ты в constexpr загоняешь хэш-функцию, и у тебя swich начинает понимать сишные строки. Код становится простой, читаемый, мегаоптимальный, по сравнению со strcmp.

Это масло и вкусная фича. Хрен кто меня заставит теперь откатиться на стандарт, который был до constexpr. Это тупо удобно. Очень удобно. Уж насколько я хейтер всей хуйни, что тянут в плюсы, но constexpr это мегарулёз.
1169 3074795
>>073473

>Тот же UE5 только под С++20 собирается, в свежем коде и всяких концептов много


Ковырялся с UE4-5 на уровне туториалов и примерчиков. Не помню, чтобы там вообще использовали std::

>рейнджи используют тоже


В UE своя модель памяти, со сборкой мусора.
Чисто технически в UE-проекте у тебя конечно есть возможность использовать твой любимый std::vector и наслаждаться всей мощью <algorithm>. Но в контексте UE - это тоже самое, что и в C++23 гонять голые указатели по сырым массивам, а то и хуже.
1170 3074847
>>074768

>загоняешь хэш-функцию, и у тебя swich начинает понимать сишные строки


А потом коллизии хешей и

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


Зато свиномакаке проще высирать говнокод.
1171 3074904
>>074795

> на уровне туториалов и примерчиков


Исходники движка открой, даунич.
1172 3074944
>>074904

>Исходники движка


А что там в исходниках написано именно тобой?
Я тебя мордой тычу в на порядки более распространенный сценарий использования, даунич.
1173 3074977
>>074944
Ты тупостью траллишь, да? В движке активно используют свежие фичи - это факт. То что ты туториалы пишешь в стиле си с классами - лично твои проблемы.
Про сборку мусора в UE5 вообще перл. Выпей таблетки.
1174 3074985
>>074768

> Ты в constexpr загоняешь хэш-функцию


Звучит как шизофрения. Зачем это делать?

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


А это что? Как? Зачем?

> по сравнению со strcmp.


Ну хз конечно чел, но ты уверен что всё правильно и оптимально делаешь?

> Это тупо удобно. Очень удобно.


Если ты в макросы не можешь, то наверное так. Просто погугли как писать макросы.
1175 3075027
>>074985
Ещё один неосилятор рвется.
1176 3075028
>>074985

> Макросы


Дедуль спокуху оформляем
1177 3075153
>>075027
>>075028
Неосиляторы, спок.
1178 3075156
>>075153
Да это дети простоили дибилы, постоянно тут срут тупостью своей.
1179 3075190

> констекпр


> ряяя фууу зумеры смузихлебы


> макросы


> омномном

image.png99 Кб, 665x845
1180 3075233
>>074985
Ну вот кусочек моей реализации Форта. Выше ты видел скриншоты его работы.
А на скришоте тот самый switch/case со строками.

Уверен ли я что правильно делаю? Более чем уверен. Как ты понимаешь, hash на данном скриншоте это constexpr.

Если ты и это оспоришь, то я хуй знает что тебе ответить. Разве что обвинить тебя в толстом троллинге.

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

Ещё раз - я не одобряю всю ту хуету, что тянут в стандарт, но там не всё хуета. Там и годнота тоже есть. И частный пример годноты это constexpr.
1181 3075247
>>075233
Ты имеешь в виду hash у тебя constexpr функция? Так здесь он тебе ничего не даёт. Компилятор не обязан выполнять её во время компиляции. С таким же успехом ты можешь объявить её инлайн.
Специально для таких случаев сделали consteval в 20 стандарте.
1182 3075262
>>075247
>>075247

> Так здесь он тебе ничего не даёт. Компилятор не обязан выполнять её во время компиляции.



в case попадёт константа.
inline функцию как параметр case? Это вряд-ли, даже проверять нет желания.
1183 3075271
>>075262

>в case попадёт константа


Благодаря оптимизациям компилятора, а не constexpr.
1184 3075331
>>075233
такой код и на с++98 будет работать, при чем здесь constexpr
1185 3075334
>>075247
более того, в случае его кода, и не будет выполнен в компайл тайм
1186 3075339
>>075331
>>075271
>>075247
>>075334
вы бы хоть попробовали скомпилить свитч по функции без констэкспра прежде чем на двачах позориться
1187 3075377
>>075331
>>075334
извиняюсь, неправду написал
>>075339
да уже осознал ошибку через 10 минут (после того как посрать сходил лол), зашел в тред чтобы написать об этом
1188 3075387
>>075233
Согласен с тобой по поводу плюсов и стандартов, но вот конкретно твой пример констэскпра ниочем, можно тупо констатны твоего хэша использовать, будет то же самое.
То где констэкспр реально ощющается плюсом - иф кжнстэкспр в темплейт функциях.
1189 3075437
>>075387

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



Можно, кто ж спорит, но это геморрой. Считать константы придётся самому, потому руками их объявлять.
1190 3075519
>>075156
Впринципе да, выглядят будто какие-то ньюфаги-вкатывалщики решили вкатиться в программирование.

>>075190
Шаблоны и код должны разделяться. Нахуя их вообще объединять в одном файле? Чтобы что? Чтобы сложнее было этот бред ебаный читать?

>>075233
Погоди, ты. Тебе просто типо лень писать енум этим ты оправдываешь нахождение там констэкспр? А если тебе в какой-то момент потребуется коды иметь, то тогда что, немного перепишешь? А если будет коллизии?

Да и вообще, нахуя искать хэш строки, если компиляторы всё равно хэшируют строки? Типо. Эээ. Зачем? Реально не понимаю зачем ты всё это делал.

>>075437

> но это геморрой


Избавлю тебя ещё от одного гемороя, анон. Компиляторы хэшируют строки. Пользуйся.
1191 3075542
>>075519

> А если будет коллизии?



Вероятность коллизий в switch/case ничтожно мала - там не так много вариантов в case и коллизией можно пренебречь. И это не такое отвественное приложение, которое приведёт к катастрофе в случае коллизии. Если вдруг кто поймает коллизию, то он просто поменяет слово форт-исходнике и коллизия исчезнет. Возможно напишет автору, мол, смотри - у тебя там коллизия. Но к тому времени автор уже состарится и умрёт, пока сработает эта вероятность.
image.png957 Кб, 736x535
1192 3075572
>>075542

> и коллизией можно пренебречь


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

Современное программирование нахуй. Ебануться просто. Забористо, конечно. Надеюсь ты свой говнокод пишешь, а потом удаляешь нахуй, чтобы никто не пользовался.
image.png544 Кб, 612x408
1193 3075587
>>075572

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


Даже не компилироваться, а просто вызываться, так понимаю. Т.е. если программа на форте будет достаточно большой - при КАЖДОМ вызове этой хуйни будет довольно существенный шанс что всё обосрётся. А если пользователей будет достаточно много - каждый день у одного из них будет коллизия.

Это же ебануться просто. Вот это шмаль нахуй. Не представляю человека который на самом деле пишет так.
image.png559 Кб, 650x365
1194 3075589
>>075572
Если ты по маленькой картинке понял как там всё работает, то пиздец ты мегамозг.

Выдыхай, бобёр!
1195 3075627
>>075589
Ну расскажи как это всё работает. Вот я вижу коллизию которая происходит каждый раз при запуске говна на форте. Чем больше размер говно на форте - тем чаще будет коллизия.

Если же форт-кал находится прямо в cpp файле и компилируется при компиляции cpp - так тогда никакие хэши нахуй не нужны, потому что компилятор уже хэширует строки.

Либо это ебейший говнокод с коллизиями, либо незнание работы компилятора.
1196 3075633
>>075519

> Шаблоны и код должны разделяться. Нахуя их вообще объединять в одном файле? Чтобы что? Чтобы сложнее было этот бред ебаный читать?


Каво, какие нах шаблоны
И почему шаблоны и код это какие разные сущности, и схуяли они должны быть раздельно?
1197 3075635

> коллизии хэшей


Как там в 90-е живётся?

хотя и тогда нормальные хэши уже существовали
1198 3075648
>>075633
Чтобы не писать говнокод который никто не понимает, очевидно же.
1199 3075653
>>075587
>>075572
А вы не очень умные, да?
Эти все коллизии можно вообще с помощью тех же констэкспров поймать на стадии компиляции, с помощью intToType.
Я не говорю даже о том, что можно тесты написать, буквально дело 3 минут.
И такое ощущение что вы, два деда, забыли что такое хеш функция и как работают константы.
1200 3075654
>>075648
Шиз, на первые два вопроса то ответь
1201 3075655
>>075635
Вообще в ахуе с этих отсталых.
Наверно до сих пор указывают в резюме "знание stl"
1202 3075659
>>075653
Орунах, тесты, intToType, и вся эта шиза нужна просто для того чтобы не писать енум на 10 строчек, а писать какое-то дерьмо с констэкпром.

Тут уже таблеточки нужно принимать.
1203 3075662
>>075659
Дедуль, а стр ту енум кто тебе напишет?
А кто будет следить за актуальностью?
Две строковые константы это геморрой²
В целом я не удивлен твоему заявлению, ведь если вы будете писать поддерживаемый код вас сразу же с работы выпрут, ебаная мебель.
1204 3075697
>>075627

>Ну расскажи как это всё работает


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

По сути интерпретатор Форта мне не нужен, мне нужен его компилятор. Интерпретатор нужен только чтобы его отладить.
1205 3075706
>>075662

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


Он там вообще не нужен, кстати.

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

Сравнение всех строк свича (даже если их там 20 или 50) будет быстрее одной функции хэширования, потому что многие алгоритмы в либах, как и компиляторы, используют SIMD и MMX. Если нет доверия к компилятору/либе, то можно самому написать SIMD/MMX, с расчётом на максимальную длину строки, это будет на порядок быстрее идеального хэширования.

Хуй знает про что вы тут вообще визжите, буквально не понимаю причину всех этих визгов. Хэширование, тесты, констрэкспы, ебануться просто вкатуны.
1206 3075722
>>075697

> По сути интерпретатор Форта мне не нужен, мне нужен его компилятор.


Тогда тем более тебе строки нужно сравнивать через SIMD, там быстродействие будет раз в 100 нахуй быстрее вот этого всего. Сравнил строки, создал промежуточный байткод, как это делают многие языки, этот промежуточный байткод уже нормально исполняешь, без всякой ебаной дряни типо хэшфункций.
1207 3075767
Дети, производительность только после бенчмарков
Все остальное мнение с дивана
1208 3075863
>>075767

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


Синтетических?
1209 3075870
>>075863
Для начала хотя бы их
1210 3075952
>>075697

>По сути интерпретатор Форта мне не нужен, мне нужен его компилятор.


Тогда зачем ты экономишь на спичках? В обычном форте вообще тупо посимвольное сравнение строк идет, потому что разница по скорости с хэштаблицей будет видна где-то уже на мегабайтах исходников. Олсо "компиляция" в форте - это режим работы интерпретатора после DOES>, когда ты в слово инструкции пишешь.
1211 3075974
>>075952

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


Да. Но в данном случае мне нравится простота и читаемость.

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



В моём случае "компиляция" это ключик в командной строке, который скажет что форт-программу нужно не исполнить, а сформировать ассемблерный файл из неё. Ради этого и заморочился с Фортом.
1212 3075978
>>075722

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


В стандартном форте принцип работы другой, там интерпретация идет сразу во время чтения исходного кода. Он изначально однопроходный, поэтому между определениями функций, нельзя например, циклы или бранчи вставлять. Назад тупо некуда возвращаться, все исполняется прямо вот тут. После ":", определения функции, интерпретатор не сразу исполняет, а переходит в режим "компиляции" слова - заполняет токены в список исполнения. Все очень просто и тупо.
1213 3075983
>>075974

>В моём случае "компиляция" это ключик в командной строке, который скажет что форт-программу нужно не исполнить


Программа в любом случае будет исполняться, там же immediate, [ и ] есть. Тебе надо словарь создать, а потом в какой-то момент его транслировать в бинарник.
1214 3076640
>>075978
Короче никакой хэш там нахуй нинужон, единственное правильное ускорение - компиляция в промежуточный байткод.
1215 3076653
>>076640

>Короче никакой хэш там нахуй нинужон


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

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


Зависит от того, что тебе нужно. Если цель - метакомпиляция под другую машину, там да, промежуточный байткод, потом код под платформу. Для простых вариантов обычно делают или indirect threading, где выполняемый код - это список токенов каждому из которых соответствует адрес слова (тормозной, но занимает меньше места и возможна интроспекция функций), или самый простой вариант - subroutine threading, где код слова - это просто машинный код вида call addr; call addr; ... ret; возможно с инлайном базовых слов (гораздо быстрее, но код чуть пожирнее выходит, по пять байт на инструкцию на x86, и нужен дизассемблер для интроспекции).
1216 3076674
clang-tidy говорит, что у меня виртуальный деструктор не помечен overdrive.
А это надо вообще, деструкторы не оверрайдятся же? Да и функцией не являются в полном смысле слова.
1217 3076687
>>076653

> Можно с хэшем.


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

> Зависит от того, что тебе нужно


Быстро компилировать, например, быстрее исполнять, все операции будут векторными. Хз почему ты вообще читаешь и исполняешь.
1218 3076752
>>076687
Я не автор кода со скрина выше. Он похоже не понимает, как форт работает, думает, что это просто стековый язык вроде постскрипта.

>Быстро компилировать


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

>Хз почему ты вообще читаешь и исполняешь.


Потому что это в стандарте форта лол. Там на это все завязано. Без этого форт не форт. Внешний интерпретатор, который читает текст и тут же его исполняет или компилирует - неотъемлемая часть системы. Причем обычно программа там постоянно прыгает туда-сюда из режима интерпретации в режим компиляции и нет особого синтаксиса для макросов, и синтаксиса вообще - делай, что хочешь, как хочешь и когда хочешь. Предварительный проход тут в принципе невозможен. Там (, начало комментария - просто функция, которая гонит позицию в файле вперед до закрывающей скобки. Слово ." - вывод строки на печать тоже функция, которая набирает литерал строки из входного файла, пока не дойдет до закрывающей кавычки и компилирует его вывод в консоль. То есть синтаксиса вообще нет, все функции, поэтому и предварительный проход невозможен.
1219 3076827
>>076674
1. Являются. Все это функции.
2. Не слушай тиди/клази/клангд - они часто ерунду городят.
1220 3076836
Поднял ТГ бота на с++.

>Нахуя?


Заскучал за изучением синтаксиса, решил дропнуть себе вызов сделать на сишке первое что придет в голову. Доволен как слон ещё зелёный, вылетало куча ошибок в CMake, хоть и делал абсолютно все по мануалу, попутно наебнул vcpkg неведомым образом, по итогу запускаю через студию.

Щас буду сидеть изучать доки библиотеки, чтобы пару приколов вставить и дальше возвращаться к душниловке. Пожелайте удачи.
1221 3076955
>>076836
что бот то делать умеет?
1222 3076989
>>076955
Ещё - абсолютно нихуя. Но я заставил его работать, и с этим уже можно что-то придумать.
1223 3077399
>>076827

>1. Являются. Все это функции.


В полном смысле слова не являются. Это функции с ограниченным функционалом, со специальными правилами.
Впрочем, в контексте вопроса это не имеет значения.
Меня однажды приложили Стандартом. Я у Самого Страуструпа вычитал про имя деструктора, а по Стандарту, оказывается, у деструктора нет имени.

>2. Не слушай тиди/клази/клангд - они часто ерунду городят.


Спасибо.
1224 3077885
А в каком состоянии сейчас вообще популярный опенсурс как таковой в плане багов, тот же qt, g libs? Есть какие интересные статьи? Я вот прогнал свои поделия через санитайзер и валгринд основанные на этих либах, и там просто жопа, куча каких то системных варнингов, утечек и прочего говна. Падает иногда и тп, даже не знаю как это разгрести.
Попробовал запустить простые хелоуворды, ситуация хоть и лучше, но тоже говна подлили. И я вот думаю как это все работает?
Часто кстати проверяете свой продакшн код? Или работает, похуй?
1225 3077908
>>077885
А ты уверен что доступный тебе репозиторий соответстаует коммерческому?
1226 3077946
>>077908
Чего?..
1227 3078025
>>077946
Я не работал с Qt. Но знаю что у многих компаний гитовский репозиторий не соответстаует внутреннему.
1228 3078027
>>077946
Gitlab имел в виду.
1229 3078033
>>078027
Блин, четова дизлексия. Короче, я имел в виду что на github.com и на приватном github версии не 100% соответстввют.
1230 3078076
>>078025
>>078027
>>078033
Мужик, может пойдешь вздремнешь?
image.png32 Кб, 284x895
1231 3078248
>>075983

>Тебе надо словарь создать, а потом в какой-то момент его транслировать в бинарник.



Спасибо за совет.

Что-то такое вот приблизительно получается.
1232 3078939
>>077885
Достаточно просто не использовать ничего связанного в линуксом и под лицензиями GPL. Сразу легче станет жизнь.
1233 3079580
>>078939
Ну, допустим, перехожу на проприетарщину, мне дали хидеры и скомпиленные, стрипнутые либы. Как мне удостовериться, что там нету всякой хуйни?
1234 3079584
>>079580
Поверить на слово.
Райден 1235 3081111
Привет)
помогите сконфигурировать Clang для VS Code
не включается дебаггер lldb
g++ работает, msvc работает, a clang нет(
g++ и Clang установлены через MinGW, ос - Win 11(64)
photo2023-12-1013-38-29.jpg52 Кб, 680x670
1236 3081133
Райден 1237 3081136
Да, установлено это расширение
1238 3081138
>>081136
Тогда должно всё запускаться, иди мануалы читай
Ну или как-то раскрывай свою проблему более подробно, чем просто не запускается
Райден 1239 3081186
Теперь работает сборка по нажатию F5, ниже скрин launch.json
А вот кнопка Run c++ file не работает, и скрин tasks.json
Райден 1240 3081206
хз, короче, все заработало
спасибо
вот стоило сюда написать)
1241 3081303
Есть такая ситуация.
Класс а и класс б ребенок а. В родителе есть функции 1 и 2, 2 находится внутри 1. Ребенок наследует эти функции.
Можно ли в ребенке переопределить функцию 2, вызвать родительскую функцию 1 но чтоб она выполнила переопределенную функцию ребенка?
Было бы удобно не переписывать все родительские функции если надо переписать одну.
Moonlover 1242 3081348
А вот интерпретатор Форта зашевелился. На второй картинке.

И компилятор тоже - https://pastebin.com/XFf7FjeQ <==== этот ассемблерный файл сгенерирован из кода с первой картинки.

Две недели ушло. И всё равно ещё сырое.
1243 3081376
>>081303
Вроде простым способом нельзя, ты какую то магию на уровне CRTP хочешь.
1244 3081457
>>012308 (OP)
Кто-нибудь не подскажет, в типичной реализации виртуальных таблиц используется имплицитно dynamic_cast? Я понимаю, что сначала мы переходим к массиву указателей через _vptr видимый в базовом сегменте, далее находим индекс где лежит адрес метода действительного объекта. Теперь вопрос: как именно происходит его вызов: DerivedMethod(dynamic_cast<Derived*>(this) или как-то по-другому? И откуда берется информация о типе, полагаю из typeinfo в виртуальной таблице?
1245 3081519
>>081457
не используется
1246 3081551
>>081303
Может как-то в таком духе: https://gcc.godbolt.org/z/WxhT4T1P6
1247 3081655
>>081457
Там не надо ничего кастовать, сигнатура методов одна и та же. Просто выбирается разный адрес по которому будет вызов, остальное всё то же самое.

> typeinfo


Никакой инфы о типе там нет, там type erasure происходит, в vtable только адреса методов. Кресты не ООП язык, в рантайме нет никаких объектов. Вот если ты захочешь в рантайме подменить один тип на другой, то тут уже RTTI будет использоваться, т.к. компилятор не знает что ты ему подсовываешь. А в случае с виртуальными методами компилятор всё знает, ему достаточно просто выбирать нужную vtable.
1248 3081717
>>081655
Давай возьмем простой пример:

void foo(Base *ptr)
{
ptr->Multiply();
}

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

1.При запуске программа видит сигнатуру виртуального метода, обращается к vptr, видимого из базового сегмента ptr. Окей, мы перешли в виртуальную таблицу класса D1, нашли индекс метода Multiply, который совпадает по сигнатуре с методом, вызванным через ptr

2.Дальше что? Допустим, сигнатура -- void Multiply().Получается, тут никакого каста нет и программа просто подставляет this в параметр?
1249 3081807
>>081717

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


В твоём примере *ptr == vptr.

> Дальше что?


call [ptr+offset]
Всё.

> Получается, тут никакого каста нет и программа просто подставляет this в параметр?


Грубо говоря да. Без виртуальных методов будет вызван метод напрямую, с ними будет вызван по индексу из vtable. Всё остальное так же.
1250 3082926
>>013314
2 миски корма этому гусю жаль его
1251 3083135
>>082926
Офигеть ты некромант, я это в январе постил
1252 3083408
>>083135
Чаю?
1253 3084330
Подскажите где именно рисуются все эти сообщения в графическом интерфейсе на Qt? Нужно сделать так, чтобы в определённом случае они никак не отображались. Если сделать конструктор пустой, они всё равно есть, но как бы пустые. Если выделить сообщения между видимыми и скрытыми, то счётчик считает их тоже. Если их выше не добавлять в список, то всё вообще ломается.
https://github.com/telegramdesktop/tdesktop/blob/dev/Telegram/SourceFiles/history/history_item.cpp#L353
1254 3084335
>>084330
Найди все вызовы конструкторов этого класса.
Найди случаи, когда это удовлетворяет твоим условиям.
Добавь проверки и НЕ вызывай конструктор.
А пытаться внутри конструктора отменить его вызов - ну фарш не прокрутить назад.
1255 3085047
Тут кто-нибудь занимался встраиванием питона в кресты? Я уже заебался, сначала ебался чтоб он запускался не из глобальной установки, а из папки - оказался pybind11 виноват. Теперь не могу разобраться с установкой пакетов. pip говорит пакеты уже установлены, но при их импорте летит эксепшен. Я их вижу в site-packages, пытался как-то через config.pythonpath_env указывать дополнительно папку site-packages - не помогает, пытался в самом питоне добавлять в path - тоже нихуя. Как отдебажить питон когда он запускается в моём бинарнике не очень понимаю - самое лучше что получаю это стектрейс.
1256 3085068
А как из сишной либы собрать модуль питоновский?
>>085047
Знаешь?
1257 3085280
>>085047
если тебе сверху эту задачу не спустили, а есть выбор, то можно дать совет встраивать lua а не питон
питон же удобно использовать наоборот, те на си либо крестах писать модули для питона, и потом уже в питоне их использовать
1258 3085333
>>085280
У меня там пара мелких нейросеток. Я сначала хотел на крестах всё сделать через onnx, но когда понял сколько придётся питоновского кода переписать забил хуй.

Всё же смог понять что за дерьмо было, пришлось в коде питона чуть ли не каждую строчку try и принтами обмазать, по какой-то причине куча импортов в дебаге сыпят ошибками, в релизе всё заебись.
yaforth Moonlover 1259 3085962
Вот и всё - "Форт, который за один вечер", опубликован в публичном репозитории на Гитлабе.

Ссылку на репозиторий дам чуть позже. Если не забуду. Надо ещё кой-какие моменты подправить.

Название такое - Yet Another Forth. Гугл по такому поиску находит YAFFA - Yet Another Forth For Arduino. Да и пофиг. Даже неплохо сейчас посидеть в тени.

>>081348

Только один вопрос - насколько хороша эта тема и вообще двачи для анонса? Может быть лучше Хабр, LinkedIn, LOR, ixbt, LiveJournal, etc?

Хотя, думаю что интереса к Форту было бы больше в /ra разделе, нежели в /pr.
1260 3086019
>>085962

> гитлаб


Ты из борцунов с микрософтом что ли лол?
1261 3086068
>>085962

> Forth


А это вообще что?
Хабр явно не то место.
1262 3086202
>>086019
>>086068

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

https://github.com/L4OS/yaforth
1263 3086419
А это правда что плюсовики даже не знают что такое безопасность?
1264 3086466
>>086419
Плюсовики работают на оборонку, конечно знают! Три проходных, колючая проволока и бойцы с пулеметами!
1265 3086819
Чем фузировать?
1266 3086870
Что-то, я запутался, зачем нужны статические библиотеки как отдельный формат файлов .a, если можно просто хранить объектные файлы .o?
1267 3086893
Зачем вообще разрешили добавлять переменную в шаблон? Есть какой-либо пример преимущества перед стандартным добавлением в параметры?
1268 3086897
>>086893
Код покажи, не понятно о чем ты.
1269 3086901
>>086202

>CXXFLAGS := -O3


Проиграно, где WFLAGS? Ты же не пидорасте пишешь, ебобо.
1270 3086902
>>086897
ttemplate< int size >
class IntegerArray
{
int Array[ size ];
/ ... /
};
1271 3086998
>>086870

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


.a - это просто архив, в котором лежат .o
1621984870171.png92 Кб, 1331x847
1272 3087035
Как затолкать кусок памяти в STL контейнер? У меня есть структура с 4 байтиками, либа возвращает указатель на память с ними, пикрилейтед - всё заебись, вот они, один байт всегда 0. Но когда я запихиваю это в контейнер данные идут по пизде. В векторе как будто выравнивание делается другое и всё съезжает как-то, такое ощущение что он с нулём что-то делает. В span вообще какой-то мусор оказывается если его инициализировать указателем на память. Что за ебень?
1273 3087061
а потом спрашивают зачем учить С перед С++
вот чел берет указатели на содержимое контейнера и искренне удивляется что на реаллокации они отваливаются..
1274 3087066
>>087035
Покажи как ты это делаешь
1275 3087095
>>087061

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


> реаллокации


Ты шизоид, да? Сишник бы начал memcopy делать, вот там точно всё нахуй отъебнёт.
>>087066
Конструктором (указатель, размер). Но похоже всё же сишная либа подсерает, я половину смог запихнуть, но вторую теперь пердолит.
1276 3087126
ты сам шизоид наху
напиши нормально че ты хочешь сделать. что возвращает либа и что ты кладешь в контейнер. и какой контейнер
1277 3087151
>>086902
Задает тип. IntegerArray<5> и IntegerArray<3> будут разными типами, гарантирована ошибка компиляции при недопустимых операциях, в то время как IntegerArray(5) и IntegerArray(3) один и тот же тип. Мало того, что дополнительные проверки надо писать, так еще и семантически это неправильно.

Не нужно хранить дополнительную переменную, отвечающую за размер в каждом экземпляре класса, метод size() реализуешь как return size, где size уже вшит в бинарник. мелочь, а приятно.

Но самое пиздатое, это сочетаемость с шаблонными функциями, например
template <int size> sort(IntegerArray<size>& array);
1278 3087154
>>086998
А в винде как?
1279 3087161
1280 3087171
>>087095
Твои текстовые описания ничего не стоят.
Неси код.
1281 3087172
>>087151
Если ты не знаешь зачем нужен инт ту тайп значит он тебе не нужен.
1282 3087175
>>087172
Промазал... Это челу выше по ветке.
1283 3087842
Изучаю сейчас код Криты, вроде как большого, серьезного проекта. И что я вижу? Комментарии есть дай бог у десятой части методов и классов. Имена приватных членов классов уровня a,b,c. Куча закомментированного кода без пояснений. Документации считай что и нет вовсе. Какого хуя?
1284 3087917
>>087842

> Какого хуя?


Опенсорс
1285 3087970
>>087151
А что, хранить переменную дороже, чем плодить новые сущности?
>>087172
Заткнись скот, я развиваюсь
1286 3087971
>>087970
Если учесть, что мне потребуется столько же типов, сколько и экземпляров класса
1287 3088090
>>087970

> плодить новые сущности


Они под капотом плодятся, не влияют на производительность. Единственное что увеличивают незначительно размер бинарника.
1288 3088092
>>087971

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


Ты о чем? массив размера 10 это один тип, у него может быть множество экземпляров.
1289 3088366
>>087842

>код Криты, вроде как большого, серьезного проекта


чисто пет-проджект для воскресного пердоленья, кто то ебет телок и бухает пиво, кто то сидит в mmo по выходных, а 0,00000001% ебанашек от популяции имеют такое хобби типа писать код, вот и высирают gnuшный софт
1290 3088421
>>088366

> 0,00000001% ебанашек от популяции


То есть на всей планете Земля таких 0.8 человек?
1291 3088626
>>088421
у тя плохо с арифметикой что ты делаешь в этом итт треде здесь вообще то сидят профессионалы у которых как минимум универсисетский курс матана есть
1292 3088653
>>088626
Да, сразу видно этих "профессионалов", которые учились на платном.
.png88 Кб, 595x687
1293 3088883
Блин. Как же вы спрятались. С третьего раза надеюсь в верном треде спрошу

В общем. Я нубан.
Работаю шарпером на заводе.
Вот, недавно подпустили к проекту, на котором матерые C++'еры работали, но на шарпе.

Увидел там нечто похожее на прикриплейд.
Можете объяснить, нахуя и зачем так делать?
1294 3088891
>>088883
Ты не в тот тред зашел.
1295 3088893
>>088891
А в который надо?
1296 3088900
>>088893
Вопрос по шарпам, на скрине шарпы, очевидно в щарпотред.
1297 3088910
>>088900
Вопрос не по шарпам, а по вот такой вот странной структуре класса.

Потому что по логике остального приложения, это выглядит как описание одной сущности. Задачи, которую надо выполнить

А в коде это работает типа так:

for(int i = 0; i < jobs.Count; i++) {
if(jobs.Status == STARTED)
continiue;

else if(jobs.Status == PENDING)
{
jobs.Started = DateTime.Now;
jobs.Status = STARTED;
jobs.Handler(context);
}
...
}

Но почему-то вместо обычного массива или листа - вот такая странная фигня. В коде шарпанов я такого никогда не видел.
Вот и думал, может быть С++ пояснят зачем так делать и есть ли вообще в этом смысл какой-то.
1298 3088912
>>088910
Блин. Еще и проебался с написанием кода

В коде оно выглядит так:

for(int i = 0; i < jobs.Count; i++) {
if(jobs.Status == STARTED)
continiue;

else if(jobs.Status == PENDING)
{
jobs.Started = DateTime.Now;
jobs.Status = STARTED;
(jobs.Handler)(context);
}
...
}
.png56 Кб, 758x354
1299 3088920
>>088912
ВАКАБА ПРОГЛАТЫВАЕТ квадратные скобки с i. Вот картинкой.
1300 3088963
>>088920
Матёрые плюсовики решили сэкономить наносекундов на обходе статусов джоб. Ход мыслей таков: идти по массиву джобов, заглядывать в каждую джобу и проверять ее статус будет медленнее, чем идти по массиву статусов и проверять статусы.

Для больших массивов и/или серьезных требований к latency так и есть, в остальных случаях - преждевременная оптимизация и ненужное усложнение кода.
1301 3089124
>>088963

> ненужное усложнение кода


Ненужное усложнение кода - это всякие ООП паттерны, созданные чтоб джун мог мыслить шаблонными конструкциями и не запутаться с 100 строчках кода.
1302 3089211
>>089124
В данном случае джун запутался в 30 строчках кода. Да и структура массивов - вполне себе паттерн во многих сферах.
1570546053004.png80 Кб, 2067x701
1303 3089306
>>088920
Чтож тогда с тобой случится, когда ты шаблоны увидишь? Пикрилейтед ещё вполне безобидный шаблон.
1304 3089378
>>089306
Так прикриплейд таки - как раз обычный ООП код с женериками, просто как обычно у плюсов - синтаксис выбрали максимально странный. Могу даже предположить, что это сорт оф обертка создания COM-объектов. Угадал? МБ нет. С++ я все равно не знаю совсем.

А вот тот подход выше, как раз для меня, чет новое. Я ни разу такого раньше не видел.
1305 3089400
>>089211
Погодь. Я вроде не говорил что запутался. Я просто никогда такого не видел и не понимаю, зачем так делать.
Для меня это выглядит как непонятное усложнение. Типа теперь - на разработчика переложена ответственность за тем, чтобы следить, что данные в этой вот штуке согласованы, что кто-то случайно потом не перепутает индекс и не запишет неправильно чего-то. Плюс - работа с этим кодом - усложняется, потому что теперь апи для остальной работы должно не просто объект принимать, а еще индекс той сущности с которой идет работа.
Вот мне и интересно, а зачем это делать. Есть ли от этого профиты какие-то и насколько они существенны.

Этот анон >>088963 сказал что экономится время и что это может дать прирост по перформансу. Это валидная причина, я считаю. Но насколько она экономится и за счет чего? Надо ли мне теперь везде, где я обхожу что-то в цикле - сделать вот такую же штуку, или прирост там 0,0000000000000000000001% а работа с кодовой базой усложнится в разы?
sage 1306 3089477
>>088920

> unsafe


> var


И это по вашему плюсы?
1307 3089500
>>089400

> Но насколько она экономится


Только бенчмарк покажет на твоих объемах.

> и за счет чего?


За счет того, что при чтении данных из оперативки они остаются в кеше не байтиками, а линиями по 64 байта. В эту линию влезет 8 значений int из твоего массива, а если переделать на структурки - то только 2 значения по 28 байт (если зделоть нормально padding). А кеш быстрее оперативы - вот за счет этого и ускорение. Если бы статус был enum: byte, было бы еще быстрее.

> Надо ли мне теперь везде, где я обхожу что-то в цикле - сделать вот такую же штуку, или прирост там 0,0000000000000000000001% а работа с кодовой базой усложнится в разы?


Нет, не надо. Такое нужно только если гонишься за низким latency или hotpath в числодробилках для обсчёта гигабайтных агрегаций/etc. Делай сначала чтоб работало правильно хоть через foreach, хоть через linq, потом оптимизируй (с бенчмарками).
1308 3089516
>>089500
А. Ну у них там статуса - в виде байтиков. Да.

Но из-за твоего описания - мне теперь еще менее понятно, зачем так делать было.
Уже сказал. Завод. Там типа код - для сборщика данных с датчиков. Да, датчиков много, но большую же часть времени, будем не чет на процессоре обрабатывать, а ждать что там в сокет прилетит.
Надо наверное у них пойти и спросить. Но блин, так страшно, посмотрят как на дурака, я потом полгода буду в пол смотреть.
1309 3089537
>>089516
Дурак не знает и знать не хочет. А ты интересующийся.
Тем более для прогеров алгоритмы и архитектура - такой же повод для гордости как и большой хуй.
1310 3092759
Шаблонщики, попробуйте решить головоломку - как сохранить в структуре тип функции без указания его в параметрах шаблона? Проблема в том что при его объявлении в другом классе надо прописывать все его параметры, а там может быть длинная лапша в виде int()(int&, zalupa, govno). В методах есть частичный/полный вывод типов шаблона, а для классов не завезли - указывай всё явно. При этом нужен именно компайл-тайм тип чтоб потом можно было его в концепте другого метода заюзать.
1311 3092835
>>092759
Using func_type = govno(zalupa)(penis, her)
T::func_type
Так не выйдет?
Накидай минимальный воспроизводимый пример
1312 3092871
>>092835
Так это надо для каждого типа писать такое. А я имею в виду, условно, передать функцию в конструктор, сохранить её тип и потом в методе обращаться к этому типу. С auto при создании инстанса шаблона такой трюк провернуть можно - тогда типы шаблона сами выведутся, но auto нельзя использовать для полей класса - там придётся писать при объявлении поля вот такое говно:

> A<govno()(zalupa, pizda)> a;


При том что этот тип по логике приватный, нахуй он нужен во внешнем интерфейсе класса, где инкапсуляция.
sage 1313 3092941
>>092759
>>092871
Генери функции макросами
таблетки пил
1314 3092980
>>092871
Накидай пример, я попробую.
Потому что пока мне кажется что юсинг то что нужно.
1315 3093281
>>092759
Либо забей на типы параметров нахуй они тебе дались?
template <typename F>
struct huynya
{
using funkziya = F;
huynya(F f) {}
}
либо
template <typename Ret, typename... Args>
struct huynya
{
using funkziya = Ret(*)(Args...);
huynya(Ret f(Args...)) {}
}

Тип функции должен вывестись сам во время вызова конструктора, начиная с 17 стандарта, если не захочет, пиши deduction guide для него.
1316 3093285
>>092759
>>093281
Но, вообще, я бы не советовал делать, как во втором варианте, если ты точно не знаешь, что у тебя всегда будут именно указатели, а не вызываемые объекты, типа лямбд.
1317 3093708
>>092759
вообще, вопрос интересный
так или иначе его решали начиная собственно с начала проектирования стандартной библиотеки шаблонов, там была парочка функций-помощьников для этого
потом предлагались различные улучшения, часть из которых была в буст добавлена
ну а потом когда пошли новые стандарты, то почти в каждом стандарте добавлялись какие-нибудь мелочи чтобы улучшить решение данной проблемы
так чтож удачи опу во всем этом разбираться, ибо это интересно и очаровательно бесполезно
1318 3093709
>>093708

>опу


вернее, спрашивающему
1319 3093801
>>092759

> В методах есть частичный/полный вывод типов шаблона, а для классов не завезли - указывай всё явно


>так разве CTAD не про это как раз?

1320 3093818
>>093708

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


Я уже на 99% уверен что это невозможно. Т.к. шаблоны не могут хранить никакого состояния, кроме того что находится в списке параметров шаблона. Более того, после того как инстанс шаблона создан, типы в шаблоне не могут меняться, т.е. фактически мы можем только константы хранить в параметрах шаблона. Так что вариант один - прописывать каждый тип, через using или ещё как, и обращаться к этим прописанным типам. Я вчера попердолился с constexpr-функциями, возвращающими тип, но всё хуйня. На момент передачи чего-либо в конструктор все типы шаблона уже выведены и ничего невозможно сохранить. Ждём рефлексию в С++26, там уже можно будет в компайл-тайм типами жонглировать как переменными, может уже в этом году увидим в working draft.
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2996r2.html
1321 3094342
я прпльно понимаю что для иучения с++ в visual studio мне нужно иметь примерно 50 гб свод места? пиздец много весят "файлы" для него. охуеть.
жаль а) я нищий б) у ноута всего один слот ссд.
придется отлодить учебу (
так бы купил 8тб ссд м.2
1322 3094367
ну поставь турбо-С в досбоксе
в мегабайт уложишься
1323 3094427
>>094342

> Visual studio


> C++


Тебе ещё компилятор понадобится
ты же не собираешься мсвц использовать, ведь правда?
1324 3094680
>>094427

>мсвц


why not
1325 3094732
>>094427
Если по какой то причине чел хочет под виндой писать, то мсвц лучший выбор лол, и мингв и кланг еще хуже. А так то конечно лучше православного гцц ничего нету.
1326 3094769
>>094732
Но мингв это и есть порт гцц под винду.
1327 3094796
>>094427
В чем проблема мсвц? Он бывает на шаблонах ошибается, но в целом им собирают почти все под виндой. Не думаю, что у него будет проект сложнее UE5, что возникнут проблемы.
1328 3094804
Кто подавался на сеньора C++ в бигтехи, что там по System design спрашивают?
Просто на плюсах обычно байтики переворачивают, а не сайты делают, неужели там попросят Twitter спроектировать
sage 1329 3094808
>>094769
Теплое с мягким не путай.
1330 3095160
Посоны, а на cppreference.com вот это вот что пишется в каждом стандарте, что добавлено, что удалено, депрекейтед, это же все изменения описаны какие есть на каждый стандарт плюсов, или только самые важные?
1331 3095162
>>095160
Все
1332 3095194
>>095160
Там местами инфа довольно скудная, за полной в стандарт идти надо. По новым фичам там пробелы есть, TS неактуальная по большей части.
1333 3095292
>>095194

> По новым фичам там пробелы есть



Ну это же крайнего только стандарта касается, правильно я понимаю?
1334 3095301
>>094804
На завод иди гайку крутить, где бронь дают, лошара. Может под майскую мобку не попадешь.
Ишь чего он захотел. Бигтех какой то с крестами.
1335 3095329
Абсолютно серьезный вопрос. Переполнение знаковых чисел - ub. Как код писать? Понятно, что есть ограничения на размер входных данных, но везде высчитывать, что все укладывается в int нереально на практике. Как писать? И как это в расте, например, решено?
1336 3095334
Абсолютно серьезный вопрос. Переполнение знаковых чисел - ub. Как код писать? Понятно, что есть ограничения на размер входных данных, но везде высчитывать, что все укладывается в int нереально на практике. Как писать? И как это в расте, например, решено?
1337 3095369
>>095334
Ну ты же понимаешь, какой размерности у тебя числа на входе в функцию, какой на выходе.
Если нет - то да, плюсовики складывать не умеют.
на х86-64 переполнение знакового не является УБ
1338 3095378
>>095334
stdckdint.h
__builtin_add_overflow
image.png53 Кб, 997x349
1339 3095388
>>095369

>на х86-64 переполнение знакового не является УБ


Является.
151537385235.png22 Кб, 1174x222
1340 3095408
Как это он сделал ?
Beginning C++20 From Novice to Professional001.png1,2 Мб, 4200x6000
1341 3095445
Анон, ты не читал этот букварь, норм он для вкатунов?
1342 3095451
>>095445
Я не читал, но обычно такие книги, которые посвящены конкретному стандарту, рассказывают не про язык в целом, а только про конкретный стандарт. Соответственно для незнающих язык не подходят
1343 3095458
>>095451

Чет не подумал сразу закинуть его на файлообмен

https://transfiles.ru/27tqh
sage 1344 3095464
>>095329
Так и должно быть, лалка.
1345 3095500
>>095445
вкатунов куда? в эзотерический язык программирования?
надеюсь у тебя есть две квартиры в собсвенности, чтобы одну сдавать, а во второй жить как монах, посвящая остаток жизни искусству метапрограммирования на крестах или че там придумали в новых стандартах еще такие же шизики
1346 3095536
>>095388
Так ты со шланга спрашивай что за параша у него происходит. Под виндой это не UB.
1347 3095537
>>095536
А на шланге х86-64 в какую то другую архитектуру превращается?

>>095369

> на х86-64 переполнение знакового не является УБ


Пиздеж
image.jpeg478 Кб, 1512x2016
1348 3095543
Сап, анон. Я давно программирую сервера/клиенты на boost::asio, но сейчас столкнулся с проблемой, где не хватает знаний разбираться. Клиент, подключающийся ко мне, при RESET сокете вызывает у меня эксепшн, но, сука не всегда.

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

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

Как диагностировать?
1349 3095545
>>095537
В ассемблере х86 это абсолютно корректная операция. То что шланг зачем-то делает сегфолт при кривых оптимизациях - это вопросы не к х86 и даже не к крестам. То что стандарт разрешает сделать там UB не значит что компиляторописатели должны такое говно вытворять.
1350 3095576
>>095545

>при кривых оптимизациях


> это вопросы не к крестам


А теперь идем и читаем что такое уб
1351 3095618
>>095388
У тебя здесь УБ в другом месте:
while (i + 1 > i) эквивалентно while (true) при О3, кмк, а бесконечные циклы без возможности выхода - уб и без оверфлова.
Так что тут да, УБ, но не из-за оверфлова.
Оверфлоу - это UNT_MIN * -1.
1352 3095624
>>095618

>бесконечные циклы без возможности выхода - уб


huh?
1353 3095640
>>095624
Ну вот так, бесконечные циклы без сайд эффектов УБ. Ты конечно можешь заявить что здесь есть сайд эффекты, но кто мешает компилятору выкинуть строку 13(до нее ведь исполнение не дойдет), а в след за ней и все переменные, кроме х? А раз х нигде не используется далее, то и выкинуть весь цикл.
Я бы вообще вывел посмотреть, что там осталось после оптимизаций компилятора.
1354 3095657
>>095640

> Ну вот так, бесконечные циклы без сайд эффектов УБ.


А, ну без сайд эффектов ещё понятно
Я только знал что пустой бесконечный цикл это уб
1355 3095714
>>095500

> в эзотерический язык программирования?



У меня других вариантов нету, мне VST плокенчики надо реализовывать, это не я выбрал плюсы, это они выбрали меня
image.png13 Кб, 562x379
1356 3095834
>>095329

> Переполнение знаковых чисел - ub. Как код писать?



0.7 секунды гугления
1357 3095858
>>095834

> INT_MIN - lhs


Бро, так не троллят...
1358 3095869
>>095858
Бро, я не проверял. Честно. Но уверен что ответ верен.
1359 3095881
>>095869
Да не, там верный код. Я почему то затупил, что в этой ветви лхс всегда отрицательный и андерфлова не будет.
>>095388
Вот чекни ассемблер, который у тебя сгенерится, сильно удивишься. Там действительно не будет ничего, кроме вывода константы в каут.
И не будет именно потому, что компилятор уверен что УБ не бывает и выкидывает цикл нахой.
1360 3095885
>>093818

>Т.к. шаблоны не могут хранить никакого состояния


Вообще могут, хоть стандарт это и запрещает:
https://b.atch.se/posts/constexpr-meta-container/
1361 3095886
>>095369

>на х86-64 переполнение знакового не является УБ


Хуя прогресс плюсах, в C11 чёрным по белому написано:

>If an exceptional condition occurs during the evaluation of an expression (that is, if the result is not mathematically defined or not in the range of representable values for its type), the behavior is undefined.


Exceptional condition переполнение знаковых, например.
Но можно компилятору указать сабсет языка, где переполнение будет опредленным поведением, с помощью инструментального флага.
1362 3095888
>>095886
Чувак, в стандарте пишут абстрактные вещи, чтоб не зависеть от платформы.
Если ты пишешь под конкретную, и знаешь как на ней работает условный ADD, то поведение в случае оверфлоу будет очень даже ожидаемым и определенным.
Оно станет неопределенным при переносе на другую платформу.
1363 3095889
>>095858

>Бро, так не троллят...


Хуя ты тупостью потроллил.
Бранч lhs < 0
Выражение rhs < INT_MIN - lhs эквивалентно rhc + lhs < INT_MIN
1364 3095892
>>095889
Да согласен, читал жопой...
1365 3095894
>>095888

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


Да, конпелятор ожидаемо заметит УБ и сделает, как ему будет нужным, а не как ты ожидаешь лол.
1366 3095909
>>095894
В примере выше он абузит не уб, а уверенность в том что уб там нет(ведь в коде на плюсах не должно быть уб)(что i всегда положительно).
Если кстати заменить тип i на size_t все ок.
1367 3095939
>>095909
Именно поэтому сайзт это сайзт, внезапно. А индексировать интами нужно только во всяких сиатик ассертах.
1368 3095966
>>095939
Я должен вообще согласиться с тобой что писать цикл как было выше нельзя, ибо действительно мы полагаемся что уб произойдет, а компилятор может его банально недопустить удалив цикл.
То есть логика такая: на УБ полагаться нельзя.
Но в целом изначальный спор не об этом, а о том как работает ADD в х86-64.
То есть если мы сложим INT_MAX и 1 мы получим гарантированное значение, но нельзя полагаться что компилятор не выкинет всю эту операцию из-за оптимизаций.
1369 3096077
Как сделать игру типа Марио или Ори или Брейд на С++ мультиплатформенную, чтобы ебически красивый виузал? Огни, искры, шлейфы, дым, порох, туман, чтобы динаимчесики двигались. Свет, цвет, физика шлейфа клейкого густого думана, турбулентности после пробега героя

Вот именно как на уровне кода реализовывать эти вещи. Чтобы игра шла в 60фпс на ipad и 120фпс на пс4/хбокс

А еще - ДОЖДЬ. Т.е. огни, искры, шлефы, дым и порох будут в В ДВУХ ФИЗИЧЕСКИХ ИПОСТАСИЯХ, при сухом и влажном воздухе, да и не дискретно, а градиентно чтобы менялась физика(ХИМИЯ?!?!?!???) их поведения, в зав-то от интенсивности дождя.
1370 3096090
>>096077
Никак
1371 3096124
>>096077
Да все просто
- учишь с++
- учишь компьютерную графику
- тратишь 10 лет на написание идеального движка
- ещё пять лет на создание игры
1372 3096136
>>096077
Набираешь команду, ищешь финансирование, организуешь процесс разработки, делаешь игру.
1373 3096148
>>095966
Не знаю о каком компиляторе речь, но нормальный гцц ничего не выуидывает,а переполнение интов базированая база используемая в логике.
не отменяет факта что сингед типы в роли индекса использовать глупо
1374 3096221
я так хочу делать ААА+ игры. и зарабатывтаь сотни миллионов долларов.
так хочу....
1375 3096222
>>096124

>- тратишь 10 лет на написание идеального движка


вот конкретно что сложного в 2д дыме и порохзе, свете, искре и огне? буквально пара часов написания кода и пара дней полировки и калибровки. нет?
1376 3096230
>>096148
Скомпиль пример выше гцц, он тоже выкинет цикл.
1377 3096247
>>096230
Он выкинет бесполезный цикл, а не полезное переполнение.
1378 3096254
>>096077

> Чтобы игра шла в 60фпс на ipad и 120фпс на пс4/хбокс



Я не знаю что внутри ipad и иксбокс,
но под Виндой это достигается прямой работой с WinAPI, а под Юниксами прямой работой поверх xlib.

Хуячу так уже несколько лет, но не игры.
Охуеваю с мифа, к созданию которого сильно приложил руку, мол X11 тормозной. Нихуя он не тормозной, а скорость его работы приблизительно равна Windows GDI.

А знаешь откуда взялся этот миф? Да потому что писатели либ, что идут поверх Х11, болваны. Не все, но многие. И потому что пверх Х11 уже несколько слоёв нагородили.
1379 3096255
>>096148

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


Qt, например, использует. Так арифметика с индексами гораздо логичнее выглядит. Например, for ( int i = 0; i < ar.size() - 1; ++i ) выглядит более естественно, чем for ( size_t i = 0; i + 1 < ar.size(); ++i ). Ну и вообще, у знаковых чисел i - 1 гораздо меньше вопросов вызывает, чем у беззнаковых, не надо думать над каждым вычитанием.
1380 3096262
>>096077

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



Очевидно - спрайтами, если типа Марио. Дёргать OpenGL ради Марио равносильно забиванию гвоздей микроскопом.

Спрайты, спрайты, спрайты, спрайты - в них весь секрет и только в них.
1381 3096264
>>096254
Сейчас весь графоний целиком на видюхе считается, и большая часть физики тоже. От WinAPI и иксов только создание окна берут. Ну и иксы реально тормозные, когда надо полупрозрачность использовать, например.
1382 3096267
>>096262
Какие спрайты лол. Даже на консолях после PS2 уже аппаратных спрайтов давно нет. Все на видюхе рисуется треугольничками.
1383 3096268
>>096247
Так ничего не выкидывает или бесполезные циклы все таки выкидывает, ты определись.
Идея в том, что такой цикл написан с опрой на уб, а компилятор не в курсе что там будет уб и i переполнится.
1384 3096269
>>096264

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



Да кто ж спорит? Я это понял, когда несколько (десять?) лет назад запустил пасьянс Косынку из новой винды на каком-то старом железе. И когда это пасьянс безбожно тормозил, то тут и пришло понимание.

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


Не помню, использовал ли полупрозрачность, но Xft, которая умеет красиво рендерит TTF шрифты, тормозной мне показалась.

Иксы реально тормозят до невозможности их использовать когда терминал и сервер на разных компах находятся. Тогда латентность убивает весь смысл этого протокола, а локально там всё очень даже шустро работает.
1385 3096271
>>096255
Не использовать итераторы = ССЗБ
1386 3096274
>>096267
Да. Но он заебётся изучать OpenGL.
Ему тогда либа какая-нибудь понадобится.

В итоги он или сделает, или не сделает. Скорее не сделает.
А спрайтами мог бы и сделать. Наскришотить с других игрушек, в фотошопе добавить прозрачность и хуячить, хуячить, хуячить.
1387 3096275
>>096269

>тормозной мне показалась.


не показалась.
фикс.
1388 3096281
>>096269

>но Xft, которая умеет красиво рендерит TTF шрифты, тормозной мне показалась.


Потому что шрифты как раз на клиенте рисуются через XRender, а для сглаженной линии, например кругленькой обводке на кнопке, приходтися битмепы с клиента на сервер гонять постоянно.
1389 3096283
>>096274

>Да. Но он заебётся изучать OpenGL.


Так или иначе придется под видюху кодить, если он хочет "ебически красивый визуал".
1390 3096285
>>096271

>Не использовать итераторы = ССЗБ


С итераторами обычно код на экран не влезает, и становится абсолютно нечитаемым. Индексы тупо проще и понятнее в большинстве случаев.
1391 3096290
>>096285
Так, дедуль, опять с завода пораньше ушел?
1392 3096305
>>096290
Тебе за строчки кода платят как индусам? Я ИРЛ не встречал людей, которым std::distance( v.begin(), it ) проще писать, чем тупо i.
1393 3096309
>>096222
Из головы брал цифры

> пару дней


Нууууу, побольше точно, но все от тебя кончено зависит
1394 3096313
>>096305
Зачем тебе вообще индекс?
90% операций с контейнерами - трансформ/копи
1395 3096331
>>096313
Потому что у меня в контейнерах не опердени лежат, а обычно геометрия: вершины, треугольники и всякие графы, деревья. Там индексы явно надо хранить обычно.
1396 3096870
>>095388
Ну ребят, не ленитесь. Вот я вам перепиисал код даже, чтобы уб было именно в переполнении, в не в цикле без эффектов. Все равно не работает код. С O3 просто беосконечно что то выводится
image.png72 Кб, 996x325
1397 3096874
И вот с unsigned int
1398 3097018
>>096870
Ассемблер неси, что мне твои закорючки до оптимизаций
1399 3097046
>>097018
Причем тут ассемблер?
1666028088925.png82 Кб, 1099x1096
1400 3097058
>>096870
Выкинь свой говнокомпилятор уже.
1401 3097059
>>097058
Читай стандарт. Мой компилятор нормально все компилирует
1402 3097062

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



Самая странная дискуссия в этом треде
Шаг 1 - читаем что такое уб
Шаг 2 - узнаем кто определяет что уб, а что не уб
Шаг 3 - узнаем про взаимоотношения компиляторов и уб
1403 3097110
>>097059
Покажи в каком месте стандарт разрешает переполнению инта крашить рантайм, лол. В стандарте написано что на поддерживаемых архитектурах переполнение должно быть обратимым, т.е. если оно случилось ты можешь задетектить его и пофиксить. Пикрилейтед дебаг билд и релиз, хоть обосрись, но он будет всегда компилить валидное для x86 поведение. Покажи тогда как твой говнокомпилятор скомпилирует код с unsigned int, это по стандарту не UB.
1404 3097126
Да принести уже скрин со стандарта
1405 3097142
>>097126

> Читай стандарт.


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


Ору с дауна.
Начни с этого хотя бы: https://eel.is/c++draft/basic.types#basic.fundamental-note-2
1406 3097179
пик 1 - пункт что скинул анон выше
Unsigned arithmetic does not overflow. Overflow for signed arithmetic yields undefined behavior
пик 2 - пункт 7.1.4

>>097142
Если не кидать скрин то вы еще треда два спорить будете, ну и в целом когда на стандарт ссылаешься например как тут: "В стандарте написано что на поддерживаемых архитектурах переполнение должно быть обратимым", то не помешало бы сразу прикреплять сурс
сам то читал что мне скинул, где там про обратимость сказано? без упрека, самому интересно почитать о чем ты говоришь
1407 3097194
>>097058
Внезапно захотел проверить свой компилятор, начал копипастить и о осознал что это скриншот. Придётся пальцами колотить.
1408 3097216
>>097058
Да не спорь с ним, очевидно что залетный долбаеб.
image.png126 Кб, 894x866
1409 3097460
Скажите, а существует ли онлайн компилятор, который умеет собирать в онлайне умеет собирать досовские программы с эмуляцией C:\\BORLANDC\\BGI и чтобы умел рисовать на странице при этом?
1410 3097525
>>097460
в вузике, когда поступил на прогера, на курсе по СиПласПлас препод на полном серьёзе давал лабы с использованием этой либы для для рисования графики (2 курс 2018-2019).

ебало моё имаджинировали? Хотя тогда это казалось чем-то прикольным, но сейчас понимаю, что это архаика и не абсолютно неактуально.
1411 3097549
>>097525
ну как бы да. но альтернатива это опенжл со своими 500 строками на треугольник. вот там ебало твоё имаджинировать посложнее будет
1412 3097653
>>097549
Чел, есть Direct2D.
1413 3097658
>>097549
А как же glBegin glEnd?

меня так на компьютерной графике и обучали, в 2018 лол
1414 3098096
>>097653
Дебил, под винду писать, надо сначала разобраться со структурой приложения винапи, все эти окна, сообщения, что и как куда идет и как это надо обрабатывать, и это только базовый хеллоуворлд вообще без функционала пустышка. Твоя школота обосрется кровью и сдохнет даже не дойдя до рисования. И такое в любой современной ОС, потому что они уже давно не ДОС с эксклюзивной однозадачностью где можно тупо писать программу без обвязок-соглашений с чем-то.
1415 3098285
>>098096
Для совсем хлебушков есть обёртка Win2D, часть виндового SDK. Там на WinUI формошлёпишь окошки в визульном редакторе, потом в событие Draw элемента интерфейса/окошка просто пишешь типа такой хуйни:

> args.DrawingSession().DrawEllipse(155, 115, 80, 30, Microsoft::UI::Colors::Black(), 3);


> args.DrawingSession().DrawText(L"Hello, world!", 100, 100, Microsoft::UI::Colors::Colors::Yellow());


Всё.
1416 3098821
>>098285
Хлебушек, речь про учебу. Что толку формошлепить говно, чему ты научишься? Только формошлепить говно. От такого только тупеют, а школа предназначена учить людей понимать как устроены вещи, программирование в данном случае, делать учеников умнее. Школа не курсы где натаскивают на РАБОТУ "не думай, делай". Школа это про ДУМАТЬ, ПОНИМАТЬ. Нельзя ничему научить заставляя учеников делать то что они не понимают. А обертки говна или тем более ковыряние мышкой СКРЫВАЮТ как оно работает, ты делаешь магическую хуйню совершенно не понимая что делаешь, от такого только тупеют. А школа нужна не для выращивания дебилов.

Таким образом, учебная программа обязана быть явной, понятной ученику, чтобы он видел как это работает. А такое просто может быть только в простой системе как ДОС, а в современных системах это очень сложно. Самая базовая пустышка хеллоуворлда сложна и требует квалификации программиста, то есть уже сформированного специалиста, а школы нужны делать наоборот, учить тех у кого нет квалификации, и вовсе не делать работу, а понимать что такое программы, программирование. Школы учат не для того чтобы потом ученики это делали, так же как в школах преподают математику, физику, химию вовсе не потому что ученик потом захочет быть математиком, физиком или химиком. Так и программирование, оно и не должно учить работе, оно должно учить ПРОГРАММИРОВАНИЮ, как оно устроено по сути, чтобы ученик понимал что это такое, как оно работает, а для этого требуется ЯСНОСТЬ, ПРОЗРАЧНОСТЬ, ПОНИМАНИЕ, а вовсе не как проще запилить рисунок.

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

А в современном говне совсем не так. В современной сложной ОС рисует не программа, а система, система отвечает полностью за всю графику "магически", о чем программист даже не подозревает. Программист вообще ничего не рисует. Современное рисование практически не применяется нигде, только в очень ограниченных случаях называемых OwnerDraw. Это уже уровень высокой квалификации, отъявленных извращений. Поэтому и современные фреймворки по сути даже не дают инструментов рисования, то есть синтеза графики. Синтез в современных системах по сути выпилен нахуй. Поэтому, по такому говну невозможно учить программированию, можно только учить как на курсах тупых макак типа Офиса, учить пользоваться Вордом и Екселем, просто надрессировал собак выполнять действия, это не учеба никакая.
1416 3098821
>>098285
Хлебушек, речь про учебу. Что толку формошлепить говно, чему ты научишься? Только формошлепить говно. От такого только тупеют, а школа предназначена учить людей понимать как устроены вещи, программирование в данном случае, делать учеников умнее. Школа не курсы где натаскивают на РАБОТУ "не думай, делай". Школа это про ДУМАТЬ, ПОНИМАТЬ. Нельзя ничему научить заставляя учеников делать то что они не понимают. А обертки говна или тем более ковыряние мышкой СКРЫВАЮТ как оно работает, ты делаешь магическую хуйню совершенно не понимая что делаешь, от такого только тупеют. А школа нужна не для выращивания дебилов.

Таким образом, учебная программа обязана быть явной, понятной ученику, чтобы он видел как это работает. А такое просто может быть только в простой системе как ДОС, а в современных системах это очень сложно. Самая базовая пустышка хеллоуворлда сложна и требует квалификации программиста, то есть уже сформированного специалиста, а школы нужны делать наоборот, учить тех у кого нет квалификации, и вовсе не делать работу, а понимать что такое программы, программирование. Школы учат не для того чтобы потом ученики это делали, так же как в школах преподают математику, физику, химию вовсе не потому что ученик потом захочет быть математиком, физиком или химиком. Так и программирование, оно и не должно учить работе, оно должно учить ПРОГРАММИРОВАНИЮ, как оно устроено по сути, чтобы ученик понимал что это такое, как оно работает, а для этого требуется ЯСНОСТЬ, ПРОЗРАЧНОСТЬ, ПОНИМАНИЕ, а вовсе не как проще запилить рисунок.

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

А в современном говне совсем не так. В современной сложной ОС рисует не программа, а система, система отвечает полностью за всю графику "магически", о чем программист даже не подозревает. Программист вообще ничего не рисует. Современное рисование практически не применяется нигде, только в очень ограниченных случаях называемых OwnerDraw. Это уже уровень высокой квалификации, отъявленных извращений. Поэтому и современные фреймворки по сути даже не дают инструментов рисования, то есть синтеза графики. Синтез в современных системах по сути выпилен нахуй. Поэтому, по такому говну невозможно учить программированию, можно только учить как на курсах тупых макак типа Офиса, учить пользоваться Вордом и Екселем, просто надрессировал собак выполнять действия, это не учеба никакая.
1417 3098828
Ебать шизо паста
1418 3098850
>>098821

> чтобы он видел как это работает


Как что работает? Современная графика совсем не так рисуется. Какой смысл в том что ему покажут примитивное рисование пикселями из начала нулевых?

> очень сложно


Тогда не трожь сложные темы, вместо того чтобы заменять их на какое-то бесполезное говно. А потом получаем какой-то кал мамонта в 2024 году, как будто его писал дед после 20-летнего криосна.
1419 3098874
>>098850
Не 20. Шейдеры в 90 уже были.
1420 3099019
>>098874

>Шейдеры в 90 уже были.


В 1999 только если.
1421 3099048
>>096077

>ебически красивый виузал


Для этого не нужно уметь программировать, а нужно уметь в VFX и рисование. В юнити достаточно кастомизируемый рендер пайплайн, Ори его как раз активно использует. Так же юнити кроссплатформа, так что проблем с всякими айпадами быть не должно. Запомни сразу - если ты видишь, что что-то выглядит необычно, то над этим работал либо талант, либо команда профессионалов с хорошим вкусом и многолетним опытом, а сама работа заняла годы. Попробуй хотя бы кубики порисовать от руки на бумаге, думаю дальше этого дело не уйдет.
диалог.png81 Кб, 1079x465
1422 3099235
>>098850

>>читать полностью, а не выдергивать отдельные слова


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


Сократа нет на жопы таких дебилов.
1423 3099581
>>098821
Чел, какое ещё рисование пикселей на ЦП в 2024? Immediate рендеринг уже легаси из нулевых, кроме примитивного 2D ни для чего не пригоден, графические пайплайны из Vulkan/DX12 скоро легаси станут и их заменят графами. Если хочешь изучать графику, то надо начинать с актуальных технологий.
1424 3099737
>>099581

>с актуальных технологий


Дергать API вызовы, которые меняются каждые пять лет?
1000005359.jpg57 Кб, 564x745
1425 3100054
>>099581

> графические пайплайны из Vulkan/DX12 скоро легаси станут и их заменят графами.


Как это все учить вобще
Еле еле вулкан осилил на самом деле нет, так тут ещё что то новое придумали
1426 3100165
>>099581

>какое ещё рисование пикселей на ЦП в 2024


Если что большинство не риалтайм рендереров софтварные и работают на ЦП. Если ты на Дюну 2 ходил то можешь быть уверен, что рендерили ее или в Mantra или в Arnold-е на ферме из цпу.
1427 3100217
Мнения clang vs gcc vs msvc?
1428 3100218
>>100165
Почему так?
1429 3100240
>>100218
так удобнее
1430 3100321
>>100218
У софтварных рендереров больше фич. Например Mantra это рендер движок от пакета Houdini, в нем упор сделан на процедурность, и для этого уже есть сотни инструментов. Например процедурно нагенерировать горы, снег, реки, раскидать флору по локации, это все можно сделать чисто на алгоритмах, причем так, что если ты сменишь локацию то все будет выглядить заебись. А теперь представь, что ты разработчик этого пакета и тебе нужно сделать рендер движок - если он будет на цпу то можно весь этот функционал перенести прямо в движок (например сгенерировать дисплейсмент мапы, добавить осколы/декали, сделать нижние этажы зданий более грязными опираясь на Z координаты точек геометрии, менять параметры BRDF по маскам с геометрии и т.д), или же делать рендер движок на ГПУ и весь функционал для него с нуля (и в целом ГПУ более ограниченные). Люди из кино выбрали первое, хотя сейчас пошли на компромисс и постепенно пилят и рендереры на видюхах, например Karma XPU/VRay.
Так же ЦПУ просто дешевле, а время на кадр не особо важно - у тебя задача сделать шот на 3-5 секунд (72-120 кадров), ты просто все настраиваешь, рендеришь 5 кадров, и закидываешь таску на ферму и идешь домой, а утром получаешь готовый шот. Нет особой разницы будет ли оно рендерится 3 минуты на кадр или 15, минут, все равно в пределах суток-двое все отрендерится.
1431 3100359
>>100165

> большинство


Кроме Мантры ничего нет. И то её в кинце 146% не используют.

> Дюну 2 ходил то можешь быть уверен


Хватит срать под себя. VFX-движки - это не финальный рендеринг. В кинце скорее всего будет Redshift или Vray. В сиричах сейчас вообще UE5 используют часто, тот же Мандалорец полностью на UE5 рендерился.

> Arnold


Это GPU-рендерер.
1432 3100383
>>100218

>Почему так?


Потому что кучу вспомогательных алгоритмов и либ там писали еще диды в 80-х на фортране. Все это портировать на GPU просто нереально.
1433 3100388
>>100321
Неужто коллега из VFX? Я бы с тобой подискутировал, но это нерелевантно треду.
1434 3100398
>>100359

>Это GPU-рендерер.


Когда успел стать GPU?
>>100383
Максимум, что там на фортране, это lapack или blas, которые давно переписали, и они не используются в рендерах.
1435 3100410
>>100359

>тот же Мандалорец полностью на UE5 рендерился.


Пиздёж.
1437 3100455
>>100398

>Максимум, что там на фортране


Я про сам гудини. Да и в рендере, если он RenderMan поддерживает, наверняка куча непортируемого кода.
1438 3100553
>>100217
msvc для разработки и отладки, затем портируется повсюду.

А так-то Intel C Compiler, если нужна максимальная оптимизация. Но он дорогой, а триал период короткий.
1439 3100572
>>100553
Ицц ето уже мем. По сути сейчас там кланг со всеми вытикающими. Толку от него нету.
Для винды мсвц, для остального гцц.
1440 3100872
>>094732

> А так то конечно лучше православного гцц ничего нету.


Схуяли?
1441 3100877
>>094342
Если бы сидел на лине, то мог бы просто шланг или гцц скачать и в vs code (не путать с visual studio) прогать. Потребовалось бы ну очень сильно меньше памяти. Наверное можно как то их на винду затащить, но я не могу подсказать
1442 3100904
1443 3101093
>>100553

>msvc для разработки


Только потому что допотопное говно, которое от нормальных компиляторов отстает на пять лет - если на нем собралось, то везде соберется. Там С++17 до конца еще не реализован. Мультилайн регекспов, похоже вообще никогда не будет. Разрабатывать на нем боль, конечно: скорость компиляции там в разы меньше, чем у других, особенно на сложных темплейтах. Поэтому без pch далеко не уедешь. Линкер тоже а разы тормознее даже стандартного ld, не говоря уже про молд и голд.
image.png10 Кб, 525x144
1444 3101179
>>101093

>Там С++17 до конца еще не реализован.

image.png57 Кб, 993x662
1445 3101184
>>101093
Даже так.
1446 3101198
>>101093

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


Чел, самый отсталый компилятор - это шланг, в котором даже С++20 нет до сих пор. Корутин нет, модулей нет, рейнджей нет. Какой-нибудь UE5 на шланге не собрать, лол.

> Там С++17 до конца еще не реализован.


Хватит бредить, MSVC единственный компилятор с полной поддержкой C++20, и на текущий момент он единственный с полной реализацией STL С++23.

> Мультилайн регекспов, похоже вообще никогда не будет.


Естественно, стандарт надо соблюдать.
1447 3101200
>>101093
Пердодебил, компиляция в разработке занимает последнее место. Разработка это __написание__ кода, а вовсе не компилирование. Как твой сраный пердоговняный компилятор поможет __писать__ код?
1448 3101247
>>101200

>Разработка это __написание__ кода, а вовсе не компилирование.


Чем дольше ты ждешь пока компиляция закончится, тем меньше кода ты напишешь.

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


У clang сообщения об ошибках в разы лучше, чем у MSVC как минимум. Не говоря об тулзах clang, которые сейчас везде абсолютный стандарт для работы с кодом, в том числе в MS.
1449 3101255
>>101179
Там на каждый пункт поддержки "The implementation is sufficient to support c++xx standart" лол. Если хоть как-то экспериментировать начинаешь с новыми фичами, то MSVC сосет вообще всегда, хотя по букве стандарт поддерживается. У них вроде до сих пор только пять кодеров компилятор делают, и то на отъебись.
1450 3101257
>>101200

>Пердодебил


Майки уже сами на винду забили. Это фактическим мертвая ОС, убитая эффективным индусским менеждментом. Но фанаты до сих пор обмазываются несвежей спермой и вспоминают счастливую юность, как они в третьих героев на хрюше играли и смеялись в ЖЖ над красноглазиками вместе с Русланом Кармановым (кстати, где он?).
1451 3101291
>>101257

> Это фактическим мертвая ОС



Со времен висты слышу
1452 3101292
А линукс как был не подходящим для десктопа и творчества, так и остался, кабанчики как не спешили портировать свой софт на него, так и не торопятся
1453 3101298
>>101247
Сразу видно пердосраль, быдлоюзер компилирующий чужие исходники, сам ничего не пишет. Все кукареки про то, сколько в консольке проходит времени до высера готового продукта. И это говно зачем-то лезет в тред программирования, съеби обратно на свой линук-сру или откуда там вылез компилировать генту, там и сренькай про компиляторы.
1454 3101325
Хуя виндобляди порвались.
scale1200.png122 Кб, 406x499
1455 3101360
Челик с графиком. Вот тебе совет: мапь пиксели экрана на свою функцию, а не функцию на пиксели.
1456 3101390
КОЛЛЕГИ, ПЕРЕКАТИТЕ ТРЕД, ПОЖАЛУЙСТА
1457 3101400
>>101390
Перекати.
1458 3101401
>>101400
Я новенький, хотел поговорить про std::move. Не знаю местного лора чтоб перекатывать.
1459 3101411
Ладно. Раз никто не перекатывают сам перекачу. Потом не жалуйтесь.
1460 3101413
>>101411
Только не проеби тег и ссылку на прошлый тред.
1461 3101414
>>101413
Тег это "cpp" надо вписать в поле "тег"?

Ссылку уже не проебал.
image.png28 Кб, 693x471
1462 3101415
Вот. Заапрувьте, а то в первый раз.
1464 3101445
>>101414
Да.
>>101415
Короче, всё правильно.
1465 3101607
>>100359

>В кинце скорее всего будет Redshift или Vray. В сиричах сейчас вообще UE5 используют часто, тот же Мандалорец полностью на UE5 рендерился


Бля не пытайся отвечать по темам, о которых ты слышал из какого-то видосика на ютубе, выглядит максимально комично.
1466 3101610
>>100452
Долбаеб даже не знает что означает virtual production, но уже пытается дискутировать по теме, спешите видеть
IMG20240109023229885.jpg103 Кб, 640x640
1467 3104119
а где работа?
куда податься без опыта в питере
1468 3104170
>>104119
Яндекс. Хуавей по знакомствам. Спектр hft.
2974560910.jpg395 Кб, 1024x1024
1469 3104257
>>104170
тяжело
1470 3104540
>>104257
Да че тяжело? Спект через дорогу от вузика
изображение.png10 Кб, 797x158
1471 3112079
есть массивы ip и port
хочу скопировать их в массив fullAdress через :

я чо-то вообще не могу как норм это сделать
1472 3120943
>>104119
В скoтoублюдии работа на крестах это проектировать хуи в нии. Оно тебе надо? Ты проснуться не успеешь как очнешься нищим полулысым скуфом с грыжей и огромным биноклем на ебале
1473 3122819
Посоны, насколько быстро происходит переход с чистого C на шарп и кресты?
1474 3123368
>>122819
Че за переход? Гормональный?
Тред утонул или удален.
Это копия, сохраненная 16 апреля в 15:55.

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

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