Сохранен 1474
https://2ch.hk/pr/res/3012308.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

C++ thread #146 /cpp/

 Аноним 21/01/24 Вск 13:10:11 #1 №3012308 
image.png
Вместо шапки:
https://github.com/sosachbot/cppthreadhat
⚹ Для кусков кода: https://0bin.net/

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

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

Прошлый тред: >>2938659 (OP)
sage[mailto:sage] Аноним 21/01/24 Вск 13:48:01 #2 №3012358 
>>3012308 (OP)
Долбоëб, где ты 1000 постов в треде увидел, чтобы перекатывать? Репорт,
Аноним 21/01/24 Вск 13:48:51 #3 №3012360 
>>3012358
Хуй будешь?
Аноним 21/01/24 Вск 17:28:50 #4 №3012601 
>>3012308 (OP)
... стот ли... к вам вкатываться... ?
зачем нужны указатели ? а указатели на указаители *? Если в методе класса выделяю на объект память я должен освободить память в этом же методе/классе или могу осободить ее из любого места программы? Если из любого, то все переменные что ли глобальные или вы где-то гетаете объект и удаляете его по ссылке/указателю?

это же все безумие, объяснитесь.
Аноним 21/01/24 Вск 18:01:11 #5 №3012643 
>>3012601
> зачем нужны указатели
Чтобы указывать на кусок памяти
> а указатели на указаители *?
Чтобы указывать на кусок памяти в котором лежат другие указатели
> Если в методе класса выделяю на объект память я должен освободить память в этом же методе/классе или могу осободить ее из любого места программы?
Конечно можешь в любом месте
> Если из любого, то все переменные что ли глобальные или вы где-то гетаете объект и удаляете его по ссылке/указателю?
Память может выделятся на куче, она может быть доступна глобальна

Почитай про стак и кучу, тогда более менее понятнее станет что происходит
Ну а про поинтеры, они просто в других языках программирования спрятаны от тебя, но также есть
Аноним 21/01/24 Вск 18:38:57 #6 №3012718 
>>3012643
>росто в других языках программирования спрятаны от тебя
1)Я правильно тебя понял, ссылка на объект в джаве это же просто указатель ⚹?
2)Сам указатель занимает тоже место в памяти и мы можем как бы указать на ссылку ссылкой через ⚹⚹?
3)Разыменование указателя ⚹ через & это же просто получение значения по указателю(оно же ссылка в других языках типа джава)?
4)А что мы получаем при разыменовании указателя на указатель ⚹⚹, просто указатель ⚹, или мы не можем из ⚹⚹р получить что-то через &р?
sage[mailto:sage] Аноним 21/01/24 Вск 19:02:36 #7 №3012765 
>>3012308 (OP)
ты зачем, чертило, до бамплимита тред пересоздал? тебя кто просил? кто твой старший вообще, че это за хуета
Аноним 21/01/24 Вск 19:08:48 #8 №3012783 
>>3012765
Спокуху оформи, хуесос.
Аноним 21/01/24 Вск 19:13:33 #9 №3012793 
>>3012718
>А что мы получаем при разыменовании указателя на указатель ⚹⚹
Значение указателя на которую указыавет указатель.
>или мы не можем из ⚹⚹р получить что-то через &р?
Ничего не понятно. &p вернет тебе адрес указателя на указатель.
Moonlover 21/01/24 Вск 19:17:35 #10 №3012795 
А нахуя нужен С++ тред? Плюсовики чувствуют себя каа дома в любом треде?

Круче плюсовика только плюсовик, который пишет ещё на нескольких языках и отменно знает пару-другую ассемблеров.
Аноним 21/01/24 Вск 19:20:47 #11 №3012797 
>>3012795
>Плюсовики чувствуют себя каа дома в любом треде?
Веб-макаки мне не соседи.
Аноним 21/01/24 Вск 19:53:28 #12 №3012814 
>>3012795
Чтобы отбивать желание писать на нем у новичков
Аноним 21/01/24 Вск 20:00:05 #13 №3012816 
>>3012601
> ... стот ли... к вам вкатываться... ?
Тебе нет
> зачем нужны указатели ?
Чтобы иметь возможность работать с переменными.
> а указатели на указаители *?
Просто второй уровень косвенности
>Если в методе класса выделяю на объект память я должен освободить память в этом же методе/классе или могу осободить ее из любого места программы?
Кому должен? Ты можешь её освободить в любом месте, ты можешь её не освобождать, можешь освободить до инициализации, ты можешь даже освободить память одного объекта делая вид что там находится другой.
>Если из любого, то все переменные что ли глобальные или вы где-то гетаете объект и удаляете его по ссылке/указателю?
Так или иначе вся память твоего приложения глобальная, но области видимости есть.
> это же все безумие, объяснитесь.
Хаос прежде всего в голове.
В твоей же чистое поле флуктуаций. Вообще удивительно что ты можешь членораздельно общаться. Хотя письменность у тебя хромает.
Аноним 21/01/24 Вск 20:04:43 #14 №3012818 
>>3012797
Пески времени уже замели следы истерики зазнавшегсоя плюсовичка, когда его опускал Луговский на sql.ru

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

В общем, так: хороший программист обязан знать Си. Хороший программист может знать C++, но это не обязательно уже. Главное, чтоб C и C++ не были единственными доступными программисту инструментами — иначе это адски паршивый программист.
Аноним 21/01/24 Вск 20:07:06 #15 №3012820 
>>3012818
Все так
Было раньше, до с++11
Современные стандарты оч много принесли.
Аноним 22/01/24 Пнд 00:27:04 #16 №3013138 
VID20240121210200325.mp4
Есть график на 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 можно вычислить ошибку шаг ошибки, то через сколько пикселей, появится следующий разрыв. Но вот как вычислить координату самого первого разрыва я не знаю, поэтому пишу сюда. Было бы очень классно если бы я знал, координату самого первого разрыва и зная шаг с которым идут разрывы, бы просто добавил в отрисовку точек, которые бы закрыли разрывы.
Аноним 22/01/24 Пнд 00:39:01 #17 №3013152 
>>3013138
Ты уже сколько лет пишешь эти графики?
Аноним 22/01/24 Пнд 00:57:08 #18 №3013171 
>>3012820
... и очень много унесли
Софт, который писался со стандартами c++11 сложно скомпилить под c++17, например, ибо даже throw вынесли нахуй
Аноним 22/01/24 Пнд 01:42:25 #19 №3013206 
>>3013171
Ну и чтож там такое с throw сломали?
Я из Qt, у нас не принято throw
Аноним 22/01/24 Пнд 01:44:41 #20 №3013207 
>>3013206
Тупо депрекейтнули, сказали, что нахуй не нужно
Я если что хотел собрать ogre-next с последним стандартом, в итоге меня компилятор нахуй послал
возможно, мне лучше стоило бы в /gd/ уйти
Аноним 22/01/24 Пнд 01:44:42 #21 №3013208 
>>3013138
Увеличивай толщину линий при зуме.
Аноним 22/01/24 Пнд 01:45:39 #22 №3013209 
>>3013207
А блять, ты про спецификацию выбрасываемых исключений?
Ну так она изначально была идеей говна, ведь ничего не гарантировала.
Аноним 22/01/24 Пнд 01:50:15 #23 №3013213 
>>3013209
Ну, оно вроде как работает
Аноним 22/01/24 Пнд 02:26:45 #24 №3013243 
>>3013152
Два года

>>3013208
Тогда самая правя линия будет выходить за пределы той точки которой она принадлежит
sage Аноним 22/01/24 Пнд 04:48:37 #25 №3013295 
не пишите в запомоеном треде
у опа грязный рот
Аноним 22/01/24 Пнд 07:14:15 #26 №3013313 
>>3013207
>Тупо депрекейтнули, сказали, что нахуй не нужно
>Я если что хотел собрать ogre-next с последним стандартом, в итоге меня компилятор нахуй послал
Разрабам было лень обработать сырцы парой регулярок, чтобы привести к новому стандарту? Нахуй такой движок тогда.
sage[mailto:sage] Аноним 22/01/24 Пнд 07:15:54 #27 №3013314 
1702599257157586083.webp
Сажу забыл (
Аноним 22/01/24 Пнд 09:11:31 #28 №3013361 
>>3013243
Ну и напиши для самой правой отдельный кейс.
Аноним 22/01/24 Пнд 10:37:27 #29 №3013444 
>>3013361
Я разрабатываю алгоритм собственной растеризации на CPU и моя цель как можо меньше процессорного времени потреблять, если я буду рисовать лишние пиксели у каждой линии, то смысла тогда не будет. Моя цель состоит в том что бы найти самый первый разрыв, добавить туда точку, сделать шаг равный шагу между разрывами, добавить туда точку и повторять это пока до тех пор пока не заполню все разрывы в массиве точек.
Аноним 22/01/24 Пнд 11:10:10 #30 №3013489 
>>3013444
Раздели ширину области отрисовки на количество полос. Если получилась ширина > 1, то у тебя есть разрывы. Далее уж надо думать в зависимости от того как ты что рисуешь. Если слева направо, то:
Округляем ширину линии вниз до целого
Складываем остатки от каждой линии, как только остатки > 1, то ширина этой линии должна быть +1.
Но это какая то хуйня. Не очень понятно что ты решаешь и зачем это делать руками, когда есть готовые решения.
Аноним 22/01/24 Пнд 11:32:05 #31 №3013524 
>>3013489
Готовые решения не дают то что мне надо + жрут много процессорного времени
Аноним 22/01/24 Пнд 11:40:14 #32 №3013540 
>>3013524
А куда оно тебе нужно такое производительное?
Аноним 22/01/24 Пнд 11:46:30 #33 №3013549 
>>3013540
На raspberry pi
Аноним 22/01/24 Пнд 13:11:47 #34 №3013656 
>>3013549
А какая задача?
Ты пишешь свое потому что уже упёрся в производительность?
Аноним 22/01/24 Пнд 13:15:36 #35 №3013668 
>>3013656
Да, упёрся. Задача быстро отрисовывать спектр сигнала
Аноним 22/01/24 Пнд 13:17:51 #36 №3013677 
image.png
Мне хочется сделать так что разрыв заполнялся как на картинке.
Разрыв заполняется значением Y точки x - 1. То есть линия рисуемая на месте разрыва должна быть высотой с предыдущую.
Аноним 22/01/24 Пнд 13:19:03 #37 №3013684 
>>3013677
> Мне хочется сделать так что разрыв заполнялся как на картинке.
> Разрыв заполняется значением Y точки x - 1. То есть линия рисуемая на месте разрыва должна быть высотой с предыдущую.
Ну я тебе вроде такой алгоритм и написал выше.
А красные линии это что?
Аноним 22/01/24 Пнд 13:19:27 #38 №3013685 
image.png
Если взять обратное число от масштаба по оси 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
Аноним 22/01/24 Пнд 13:19:52 #39 №3013686 
>>3013684
На картинке: слева от красной линии представлен вариант когда предыдущая линия меньше чем линия после разрыва, справа больше
Аноним 22/01/24 Пнд 13:37:02 #40 №3013721 
>>3013685
Не надо тебе ничего искать. Как только у тебя ошибка(дельта) накапливается больше единицы - рисуешь линию толще на пиксель и единицу вычитаешь.
Аноним 22/01/24 Пнд 13:49:30 #41 №3013735 
image.png
image.png
>>3013721
Задумка была такая.
Ищем самый левую точку которая попадает в окно просмотра, и самую правую точку которая попадает в окно просмотра. Как на первой картинке.
Производим преобразование координат с startIndex по
endIndex, как на второй картинке.
Получаем вектор точек в пиксельном пространстве. В этом векторе есть разрывы которые я хотел бы заполнять по вот так
>>3013677
То есть добавлять точку с Y равную значению Y у точки X - 1.
Да можно просто следить за ошибкой, и когда ошибка станет >= 1 добавлять точку. Но тогда в цикле придётся писать if(error >= 1). А я хочу написать алгоритм с минимальным количеством if'ов в цикле
Аноним 22/01/24 Пнд 13:50:40 #42 №3013737 
>>3013735
Только я во второй картинке не то сфоткал, там vectorUnitX и vectorPixelX должны быть
Аноним 22/01/24 Пнд 13:51:22 #43 №3013738 
image.png
Аноним 22/01/24 Пнд 14:22:23 #44 №3013789 
>>3013735
Твой код можно поковырять?
Аноним 22/01/24 Пнд 14:39:37 #45 №3013807 
>>3013789
Там ничего пока особо нет, вся идея пока в голове, вот застопорился на поиске начала разрыва. Могу скинуть код виджета где всё отрисовывается
https://pastebin.com/drVt6NFt
Аноним 22/01/24 Пнд 14:41:25 #46 №3013809 
>>3013807
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();
}
Аноним 22/01/24 Пнд 14:43:57 #47 №3013812 
>>3013807
Вечером попробую что нить сделать
Аноним 22/01/24 Пнд 18:41:10 #48 №3014260 
windisp.gif
Обожаю виндоус еще с тех пор как в детстве на витрине увидел компы с 95 и загадочным ярлыком "Мой компьютер". А теперь сам могу делать окошки, какой же кайф. Линукс маст дай.
Аноним 22/01/24 Пнд 19:30:24 #49 №3014338 
>>3012308 (OP)
Захотелось освоить какой-нибудь хардкорный низкоуровневый язык, знакомый одолжил книжку по C Стивена Прата.
Есть опыт в программировании, есть опыт в си (в вузе 2 семестра изучал, но нихуя не помню кроме указателей на указатели)
Вопрос: насколько сложно будет перейти на с++, при желании? Насколько они отличаются? Есть ли смысл в си? Мой выбор обусловлен только наличием няшной бумажной книжечки.
Аноним 22/01/24 Пнд 20:08:18 #50 №3014379 
>>3014260
Ахуеть, микролахта
Аноним 22/01/24 Пнд 20:45:32 #51 №3014430 
>>3014338
Скорее всего ты не найдешь работу будучи чисто сишником, для меня это важнейший фактор выбора плюсов
Аноним 22/01/24 Пнд 22:29:00 #52 №3014667 
Использовать intX_t или забить хуй и просто int? Вервое вроде делает более самодокументированный код.
Аноним 22/01/24 Пнд 23:16:46 #53 №3014724 
>>3014667
Если не лень - используй. Чаще будешь думать о том, а нужен ли тебе тут инт вообще и влезет ли в него.
Аноним 22/01/24 Пнд 23:27:56 #54 №3014732 
>>3013313
>Разрабам было лень обработать сырцы парой регулярок, чтобы привести к новому стандарту? Нахуй такой движок тогда.
Ну тыг графических опен сурсных графических движков с гулькин хуй, а огр со старым стандартом единственный более менее работающий без всяких изъёбов (про bgfx шарю, но он тупо _mem у меня в нулину ебашит при загрузке шейдера), потому придётся страдать
Аноним 22/01/24 Пнд 23:30:58 #55 №3014736 
>>3014732
Так падажжи, ну депрекейтнули, так ничего не должно же ломаться?
Аноним 23/01/24 Втр 00:13:07 #56 №3014799 
>>3014736
Ну, у меня bgfx тупо не может свои же примеры для демонстрации запустить нормально, лол
Может это проблема из-за невидии, не ебу, может я как-то не правильно собираю (но при этом оно вообще собирается)
Аноним 23/01/24 Втр 00:23:50 #57 №3014820 
>>3014732
Ой бля, не при загрузке, а при создании
Аноним 23/01/24 Втр 14:21:51 #58 №3015505 
size_t/int/unsigned? Что выбираете для счетчиков контейнеров?
Аноним 23/01/24 Втр 14:47:41 #59 №3015553 
image.png
Была такая детская книжка, сказка, которая чуть менее, чем полностью, состояла из восточной философии.

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

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

Звучит как бред? А дело в том, что С++ мультипарадигменный язык. На нём можно писать и как на языке очень высоких абстракций, так и опуститься на уровень железа. Поэтому сишные программисты писали бы на С++ в той парадигме, которую требует проект. И писали бы они без костылей, но и без велосипедов.
Аноним 23/01/24 Втр 15:33:02 #60 №3015643 
>>3015505
Уже давно выбрано за тебя size_t
Аноним 23/01/24 Втр 18:29:36 #61 №3015932 
Блять меня уже трясет решать линуксопроблемы. Ничего никогда и нихуя не работает, ну просто с одной мины на другую
Аноним 23/01/24 Втр 18:40:37 #62 №3015937 
>>3015932
Это не совсем так, если быть точным.
sage[mailto:sage] Аноним 23/01/24 Втр 19:55:07 #63 №3015994 
>>3012795
>А нахуя нужен С++ тред?
Залетные чертилы выясняют для чего нужен указатель на указатель. Местные омеганы радостно отвечают.
Аноним 23/01/24 Втр 20:00:44 #64 №3016003 
Ну и для чего нужен указатель на указатель?
sage[mailto:sage] Аноним 23/01/24 Втр 20:06:32 #65 №3016008 
>>3012797
>Веб-макаки мне не соседи.
По крайней мере они не являются твоими прямыми конкурентами, отбирающими у тебя краюху хлеба. В отличие от "коллег" и вкатывающихся в этом итт треде, между прочим, которые и являются твоими прямыми конкурентами за место под солнцем.
sage[mailto:sage] Аноним 23/01/24 Втр 20:18:07 #66 №3016016 
>>3012814
Одно из важнейших преимуществ с++ перед си. Хотя и на си можно хуярить кодогенерацию на макросах, к примеру. Что довольно полезно, тк ухудшает читательность кода, делает невозможным инструментальную отладку и прочее, что очень хорошо откидывает голодных конкурентов. Ну или эмулировать ооп, хуяря собственные vtable например. Ну или делать собственную компонентную модель на структурах с указателями на фии и pinvoke. Ну или хуярить недо-adt на войд звездочка.
Но с++ все равно нет равных в софтварной обфускации. Это очень хорошо. Потому что вкатуны не нужны, они должны сдохнуть на вахте, сдохнуть в окопе на бомбасе, сдохнуть от передоза в бабкиной хате своего мухосранска. А не пытаться вкатиться в индустрию. С++ тоже в конечном итоге должен сдохнуть. Стать эзотерическим языком для развлечения богатеньких челов.
sage[mailto:sage] Аноним 23/01/24 Втр 20:22:45 #67 №3016020 
>>3013138
Вот такие хуесосы и сидят годами в оборонке на гос зарплате. Годами неспособные открыть ебаный учебник чтобы увидеть нужные формулы, изобретая свою какую то хуету, и более того спрашивая "как зделоть" на рандомном форуме.
sage[mailto:sage] Аноним 23/01/24 Втр 20:27:34 #68 №3016027 
>>3014338
>Стивена Прата
что сказать
ты сделал первый маленький шажок и уже наступил на кучу коровьего навоза
возможно тебе не стоит начинать заниматься программированием а продолжить мести улицы или грузить палетты в пятерочке или чем ты там занимаешься
sage[mailto:sage] Аноним 23/01/24 Втр 20:31:09 #69 №3016036 
>>3016003
для того чтобы возвращать указатель из функции
это материал первого полугодия первого года любого вуза где учат на программистов
Аноним 23/01/24 Втр 20:39:48 #70 №3016044 
>>3016016
И заменят кресты чистые си, ибо самые стабильные по стандарту...
Аноним 23/01/24 Втр 20:43:08 #71 №3016049 
Кто этого шиза сюда впустил? Съебоса оформи, чертила
Аноним 23/01/24 Втр 20:45:05 #72 №3016051 
>>3016049
на кого ты так
sage[mailto:sage] Аноним 23/01/24 Втр 20:58:53 #73 №3016055 
>>3016049
За это стоит поблагодарить опхуя, перекатившего до 1000 постов.
sage[mailto:sage] Аноним 23/01/24 Втр 21:05:49 #74 №3016059 
>>3016049
я здеся с 2007 года в отличие от залетухи опа
Аноним 23/01/24 Втр 21:10:19 #75 №3016063 
>>3016059
2ch.ru
Аноним 23/01/24 Втр 22:34:38 #76 №3016191 
>>3016020
И в каком же разделе математике я могу найти нужную мне формулу?
Аноним 24/01/24 Срд 00:00:42 #77 №3016380 
>>3013807
Дохуя чего не хватает
Аноним 24/01/24 Срд 00:34:45 #78 №3016406 
>>3013807
В общем я глянул, заставил это работать, и вот что могу сказать:
1) интерфейс твоей хуйни - кал. Какого хуя ты закладываешь то, что внутри рисовалки генеришь какие то вектора? О какой производительности здесь вообще речь?
Ты должен принимать по указателю\ссылке массив константного размера и из него читать значения.
2) Генерится непонятно что. Напиши сначала генератор нормальных данных.
3) Эту всю хуйню если ты действительно производительности хочешь нужно писать на OpenGL, а не внутри ПейнтИвента. Это вообще какая то кринж комедия.
https://github.com/alandefreitas/matplotplusplus
Короче щас выглядит будто ты не понимешь что ты делаешь зачем и почему.
Аноним 24/01/24 Срд 01:43:44 #79 №3016475 
>>3016406
Я ему еще в прошлый раз пол года назад вроде примерно тоже сказал.
Аноним 24/01/24 Срд 02:37:06 #80 №3016493 
>>3016406
лучше подумай о том что челик уже два года сидит-пердит в своем нии и получает за это зарплату
Аноним 24/01/24 Срд 02:41:39 #81 №3016495 
>>3016191
тебе достаточно немного подумать, сделать правильный запрос в гугл и ты увидишь нужный мат аппарат на выборке на первой странице блядь
включая и необходимый алгоритм из вычмата
Аноним 24/01/24 Срд 09:37:25 #82 №3016615 
VID20240124092215238.mp4
>>3016406
У меня есть нормальный спектр который на вход принимает fft и довольно быстро перерисовывает(быстрее чем готовые решения) изображение. Но код от него я не дам.
То что я тебе скинул это зародыш попытки заново переизобрести спектр. Что бы был ещё оптимизированней. У меня в голове есть наброски и во время реализации возникли трудности, в виде решения проблемы разрывов и несоответствия математической формулы линии брезенхема и алгоритму брезенхема без умножения. Ну если алгоритмом брезенхема можно пренебречь, и использовать DDA алгоритм и при этом я все не выйду за рамки намеченного пути. А вот если забить хуй и обходить массив поэлементно на поиск разрывов, то это уже будет далеко о того идеального спектра что я представлял. С OpeGL не всё так просто. Я брал обычный шейдер который отрисовывает точки и соединяет их линиями. Результаты были не очень впечатляющими, при количестве точек 1024, нагрузка на процессор при рендеринге на CPU была 26%, а на GPU - 16%. Это при 30 кадров в секунду. Да прирост есть, но я думал будет больше. Если писать сректр на OpenGL там тоже не плохо бы посидеть и придумать собственный шейдер.

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

У меня вроде бы там под вектор один раз память выделяется, и патом только перезаполняется, разве нет? Даже если не так, то опять это вообще даже не заготовка, так болванка
Аноним 24/01/24 Срд 09:54:32 #83 №3016644 
>>3016615
Так а что природа разрывов, ты когда генеришь линию четко указываешь где ее пиксели, вместо того чтобы при отрисовке вычислять где она должна быть.
Аноним 24/01/24 Срд 09:58:12 #84 №3016653 
>>3016644
Ну хорошо природа разрывов так то понятна, предсказание в каких пикселях они появятся меня интересует
Аноним 24/01/24 Срд 10:19:24 #85 №3016677 
2024-01-24 10-17-52.mp4
>>3016653
Аноним 24/01/24 Срд 10:41:16 #86 №3016708 
>>3016677
Понятно ты просто заполняешь квадрат, до ближайшей следующей точки. Но когда я найд решение поиска точек разрыва я буду делать, не так, я буду по получившимся точкам строить полигон, и в ручную массив изображения закрашивать нужным мне цветом, потому что как я понял Qt делает это очень медленно. Потому что разрыв на большом масштабе может быть больше одного пикселя, и тогда мне придётся ещё писать цикл для заполнения разрыва. А я хотел бы добавить точку в начале разрыва, патом все получившиеся точки соединить линией брезенхема, а патом все что ниже линии брезенхема заполнить нужным мне цветом
Аноним 24/01/24 Срд 10:49:21 #87 №3016728 
>>3016708
Давай так:
У тебя есть линия с толщиной 1 в пикселе 0.
И линия с толщиной 1 в пикселе 2.
Как посчитать ширину разрыва и откуда он начнется?
Зачем тебе линии брезенхема при отрисовке вертикальных линий?
В куте для рисования есть классы по типу QGraphicsScene. И да, она в целом медленная. Она затачивалась под отрисовку окон, а не графиков в 30фпс.
Аноним 24/01/24 Срд 11:07:08 #88 №3016766 
>>3016728
Я пока могу только сказать формулу ошибки которая накапливается с каждой отрисованной линией.
Если взять обратное число от масштаба по оси X и вычесть шаг значений в векторе X, получим ошибку на каждый пиксель изображения.

float error = (1.0/scaleX) - stepVectorUnitX;

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

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

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

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

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

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

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

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

И да рисование полигоном быстрее чем рисовать линии вертикальные как показала практика
Аноним 24/01/24 Срд 11:08:47 #89 №3016769 
>>3016615
Выглядит, кста, как говно. Почему ты скейлишь график, а не диапазон визуализации? В любом аудио-редакторе никакие графики не скейлятся, блять.
Аноним 24/01/24 Срд 11:12:34 #90 №3016778 
>>3016708
> Понятно ты просто заполняешь квадрат, до ближайшей следующей точки. Но когда я найд решение поиска точек разрыва я буду делать, не так, я буду по получившимся точкам строить полигон, и в ручную массив изображения закрашивать нужным мне цветом
Ну отрисуй линию тем же drawline, а область уменьши и залей любым цветом. Что в этом контексте значит делать в ручную и зачем?
> Потому что разрыв на большом масштабе может быть больше одного пикселя, и тогда мне придётся ещё писать цикл для заполнения разрыва.
Приди к тому, что у тебя не линии, а прямоугольники, с минимальной толщиной в 1 пиксель. И рисуй сразу прямоугольники, а не линии.
> А я хотел бы добавить точку в начале разрыва,
Мы говорим о двумерной плоскости, что здесь значит в начале разрыва? Линию?
> патом все получившиеся точки соединить линией брезенхема, а патом все что ниже линии брезенхема заполнить нужным мне цветом
Тут тоже не понял. Если ты хочешь рисовать линии от точки до точки - рисуй их сразу. Зачем тогда вертикальные от 0 до Y рисовать?
Все так же, рисуй сразу полигоны. За контур отвечает QPen, за заполнение QBrush.
А вообще идея собрать свой рендерер внутри рендерера(Qt сама отлично умеет рисовать объекты) очень странная.
Аноним 24/01/24 Срд 11:14:53 #91 №3016781 
>>3016766
А с чего ты решил что проблема в отрисовщике кути, а не в твоих алгоритмах?
Построй флеймграф, оценить перф.
И если тебя уже не устраивает скорость работы, зачем ты опять Qt взял?
Аноним 24/01/24 Срд 11:15:43 #92 №3016782 
image.png
О, брат вот ты где.
Не было ни единого разрыва, а теперь есть.
Ебать ты шиз конечно, ещё и семёнишь.

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

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

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

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

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

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

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

Тьфу бля на тебя, шиз. Реально запомоенный. Пей таблетки и пиздуй нахуй отсюда, долбаёб.
Аноним 24/01/24 Срд 11:17:35 #93 №3016785 
>>3016766
> Также у меня там ещё будет аппроксимация, тоесть если несколько точек попадает в один пиксель, то рисовать я буду самую высокую из них.
А зачем? У тебя же изменение цвета идёт от высоты линии. То есть, оверлаппинг линий тебя вообще не пугает. И можно просто их рисовать в каком угодно порядке в один пиксель.
Аноним 24/01/24 Срд 11:18:49 #94 №3016787 
>>3016782
Ты отметил посты минимум двух разных людей, шиз.
Аноним 24/01/24 Срд 11:38:16 #95 №3016808 
Отличие линий.jpg
Отличие графиков.jpg
image.png
image.png
>>3016782
> Нахуй ты это ищешь? Что ты думаешь патом лол с этим делать?
А тебя это ебать не должно

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

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

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

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

Вообщем что бы думать над проблемой нахождения координаты самого первого разрыва вы мне предлагаете свои решения, которые ничем не лучше будут чем мой спектр >>3016615
Аноним 24/01/24 Срд 11:53:17 #96 №3016824 
>>3016808
Насколько я помню, КуПейнтИвент перерисовывает всю область виджета.
Тогда вычисляй ошибку и дорисовывай линию, в чем проблема то?
Сделаю вечером через ошибку, но какая разница, визуально результат будет одинаковый.
Аноним 24/01/24 Срд 12:04:15 #97 №3016833 
>>3016824
>Насколько я помню, КуПейнтИвент перерисовывает всю область виджета.
Ну перерисовывает, да.

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

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

Что бы следить за ошибкой надо начинать откуда то следить, а начинаться следить за ошибкой надо как раз так с момента первой ошибки, то есть с первого разрыва
Аноним 24/01/24 Срд 12:09:48 #98 №3016843 
>>3016615
блять анон, какой же ты крутой ебать, это то что мне нужно, как сделать чтобы твои посты не проебланились? у тебя есть тг?
Аноним 24/01/24 Срд 12:42:15 #99 №3016883 
>>3016843
Лучше на почту
[email protected]
Аноним 24/01/24 Срд 12:47:15 #100 №3016892 
>>3016615
>Я брал обычный шейдер который отрисовывает точки и соединяет их линиями. Результаты были не очень впечатляющими
Еще бы они были впечатляющими. Тебе вообще все надо рисовать в фрагментном шейдере. Т.е. рисовать весь прямоугольник со спектром, и для каждого пикселя считать цвет точки.
Аноним 24/01/24 Срд 13:23:09 #101 №3016933 
>>3016615
> С OpeGL не всё так просто
так возьми куду, это максимально нативный для неё процесс сравнивать рядом лежащие элементы массива и она запросто может выдать тебе разность соседей

что то я не понимаю?
Аноним 24/01/24 Срд 13:25:26 #102 №3016935 
>>3016933
У него железка без карточки зелёных
Этот софт планируется под распберри, как я понял
Аноним 24/01/24 Срд 18:14:39 #103 №3017397 
>>3016782
>Какой, в жопу, НИИ?
Он два года сидит в НИИ, на нормальной для джуна зарплате. И вместо того чтобы просто открыть нужную книжку взяв готовые мат формулы и соответствующие им алгоритмы из вычмата, пытается че то выдумать из своей головы. И нихуя у него не получается само собой. Но чукча не читатель, чукча писатель. Программисты же пишут код, а читают книги только задроты.
Другая проблема в том куда смотрят его старшие товарищи, в принципе у него же должен быть что-то вроде куратора, который ему скажет - заебал страдать хуйней, или открывай такуюто книгу на такой странице и реализуй алгоритм раз ты не способен на самостаятельный поиск.
Аноним 24/01/24 Срд 18:42:53 #104 №3017434 
>>3017397
Какую книжку? Как нарисовать спектр без разрывов, есть такая книжка?
Аноним 24/01/24 Срд 19:03:47 #105 №3017462 
>>3017434
>Как нарисовать спектр без разрывов
для начала посоветую задать ровно тот же вопрос гуглу или чат джипити
Аноним 24/01/24 Срд 19:05:13 #106 №3017464 
>>3017397

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

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

>>3016843
>>3016883

давно так не залупался
Аноним 24/01/24 Срд 19:37:24 #107 №3017527 
>>3017464
>Например >>3015981 → →, там такая каша

Это не я писал, я таких слов то не знаю.
Аноним 24/01/24 Срд 20:12:16 #108 №3017587 
asm это высокоуровневый язык? Какого хуя там типа данных, переменные, строки? Я ожидал работу с сырыми байтами.
Аноним 24/01/24 Срд 20:18:36 #109 №3017605 
>>3017587
Уровневость языков субъективное понятие
Аноним 24/01/24 Срд 20:50:26 #110 №3017662 
>>3017587
Потому что те, кто реально на асме пишут, не особо любят с сырыми данными работать. Зачем себе голову ломать, если можно проще сделать? Так-то с макросами можно сделать вполне высокоуровневый язык.
Аноним 24/01/24 Срд 20:55:55 #111 №3017677 
>>3017587
>asm это высокоуровневый язык?

Это смотря какой. Макрософт очень красивый ассемблер генерит, а на каком-нибудь недомелкоконтроллере, там можно кукухой поехать, если глубоко вникать.
Аноним 24/01/24 Срд 21:04:20 #112 №3017689 
>>3017662
>Потому что те, кто реально на асме пишут, не особо любят с сырыми данными работать. Зачем себе голову ломать, если можно проще сделать? Так-то с макросами можно сделать вполне высокоуровневый язык.
Если что, С и С++ теперь считаются низкоуровневыми.
Аноним 24/01/24 Срд 21:15:45 #113 №3017710 
>>3017689
> С++ теперь считаются низкоуровневыми.
Буквально язык, на котором можно писать что угодно и как угодно.
Язык, который даёт неограниченные возможности, в том числе и сорок способов выстрелить себе в ногу.
Аноним 24/01/24 Срд 22:13:02 #114 №3017851 
>>3017689
Счиьается необучаемыми дибилами, разве что. Что плюсы что си - ящыки высокого уровня.
Аноним 25/01/24 Чтв 01:56:42 #115 №3018122 
>>3017851
Предлагаешь ассемблером писать под каждую микроархитектуру?
Аноним 25/01/24 Чтв 08:20:56 #116 №3018218 
Насколько надо быть ебанутым, чтобы из
>>3017851
получить
>>3018122
?
Я уж не говорю про то, что это говно не знает, что такое микроархитектура.
Аноним 25/01/24 Чтв 08:22:55 #117 №3018220 
>>3017851
Такое восприятие давно устарело. Это в 80-х писали программы на ассемблере, компьютеры были простые и программы тоже простые, вот и си и далее считались высокоуровневыми. А сейчас компьютеры слишком сложные, писать на ассемблере нереально, кроме убогих хеллоуворлдов, так что самым низким уровнем является си, то есть самым низким уровнем языка на котором реально писать рабочие программы.
Кстати видел живого долбоеба пишущего на ассемблере, загугли "manhunter блог" и увидишь ебаната который только пальчиком ковыряется в трех строчках кода уровня "лаба1", не программист, а слесарь ковыряльщик-затыкальщик дырок.
Аноним 25/01/24 Чтв 10:12:15 #118 №3018300 
>>3018218
Ты пишешь, что си и кресты это ЯП высокого уровня, но если в целом смотреть, то из кроссплатформенных чистый си самый низкоуровневый.
А про ассемблер вставка потому что у каждой архитектуры свой набор команд.
Аноним 25/01/24 Чтв 10:30:56 #119 №3018314 
image.png
>>3018300
>А про ассемблер вставка потому что у каждой архитектуры свой набор команд
Да ладно. Вот открыл по приколу последнюю свою прогу, как стояло по дефолту 386, так и не менял никогда, нафиг не надо, ведь прога нормальная, а не вычислялка сжигадка проца. Нет смысла даже ставить 486, только совместимость испортишь, а выгоды нет. Так что и на ассемблере в большинстве случаев можно писать под 386 и не париться, пойдет везде.
Аноним 25/01/24 Чтв 10:31:59 #120 №3018318 
>>3018218
Еше неопознана глубина тупизны.
>>3018122
>>3018300
>>3018220
Дибилы уровня б. Ваш бред уровня споров о силе акулы и медведя, например. Просто молчите. Чидите подрачивайте ридонли.
Ну и позорище.
Аноним 25/01/24 Чтв 10:35:02 #121 №3018327 
>>3018318
Ты тот самый хост www.manhunter.ru? Чего обиделся то, сразу перешёл на оскорбления?
Аноним 25/01/24 Чтв 11:05:29 #122 №3018353 
А какой смысл писать на asm в 2k24, если компилятор сам все супер оптимизирует. Иначе говоря, разрабы компилятора за нас уже эту работу сделали. А то читаешь иногда о программе, вот она написана на си и си++, и есть ассемблерные вставки, вот нахуя они? Для скорости можно __fastcall прописать, не?
Аноним 25/01/24 Чтв 11:18:51 #123 №3018380 
IMAGE 2024-01-25 11:18:37.jpg
>>3018353
> если компилятор сам все супер оптимизирует
Аноним 25/01/24 Чтв 11:47:54 #124 №3018421 
>>3018318
Ты разговариваешь с тяжёлым шизом, который любит сыпать бессвязными терминами, разговаривая сам с собой. Может он так остужает горящую от непростых реалий жопу. Не знаю, чему тут удивляться. Я сначала тоже повёлся, когда он начал про обработку сигналов наваливать в соседнем треде (и всё ещё наваливает), пока не понял, что это шезлонг. Ему никак не помочь, потому что он уверен что с ним всё в порядке.
Аноним 25/01/24 Чтв 11:53:18 #125 №3018425 
>>3018327
Не думал что для тебя это оскорбление. Врятли таких как ты вообще можно задеть.
Аноним 25/01/24 Чтв 12:40:31 #126 №3018501 
>>3018421
Бля какое же ты шизло
Аноним 25/01/24 Чтв 13:14:58 #127 №3018547 
>>3018353
>А какой смысл писать на asm в 2k24, если компилятор сам все супер оптимизирует
Только на десктопе, там компиляторы вылизаны до максимума. Под микроконтроллеры часто на асме пишут, потому что стоковые говнокод выдают, плюс на асме проще писать проги, где важны тайминги до такта - там по инструкциям сразу видно сколько времени кусок кода будет выполняться.
Аноним 25/01/24 Чтв 14:27:29 #128 №3018644 
>>3018547
ну как вылизаны, они работают без ошибок, но далеко не всё оптимизировано
Аноним 25/01/24 Чтв 15:57:52 #129 №3018838 
Деды не видели новые яп, и пишут, что си это высокоуровневый ЯП, лол
Аноним 25/01/24 Чтв 16:17:15 #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;

Не помогло, в чем может быть еще проблема?
Аноним 25/01/24 Чтв 16:19:04 #131 №3018866 
>>3018864
Не помогло в том плане, что всёеще получаю 5 ошибку.
Сертификат в свойствах экзешника после перезаписи не показывается
Аноним 25/01/24 Чтв 16:20:06 #132 №3018868 
>>3018838
Новых языков программирования нет, есть скриптовое говно. Скрипты не программирование, ибо программирование это управление железом, а скрипты работают в виртуалке, это разновидность офисного софта как 1с. Код который пишут без оглядки на железо это не программа, а скрипт, просто другая парадигма в принципе.
Аноним 25/01/24 Чтв 16:46:17 #133 №3018927 
Олды тут, читал когда то книжку в пиздючестве она была на половину про Си, вторая половина про С++ что то захотелось перечитать. Вряд ли кто по такому описанию подскажет, может есть удобная онлайн библиотека или подборка книг по Си и плюсам
Аноним 25/01/24 Чтв 17:58:13 #134 №3019118 
>>3018838
Для меня критерием высокоуровневости является наличие абстракций, которые не понимает машина. Вот есть в С функции, машина это не понимает, для нее есть всякие колл и джампы.
Аноним 25/01/24 Чтв 17:59:20 #135 №3019121 
>>3018864
Я плохо помню, сначала надо запросить доступ на такие действия.
Аноним 25/01/24 Чтв 18:11:07 #136 №3019135 
Подскажите пожалуйста, у кого возможно было, что могут задать на командном собеседовании по плюсам? Какие вопросы и задания могут дать?

вкатывальщик в тындекс
Аноним 25/01/24 Чтв 18:14:17 #137 №3019137 
>>3019135
> в тындекс
гг
Аноним 25/01/24 Чтв 18:18:05 #138 №3019138 
>>3019121
на процессе других программ отрабатывает итак отлично, а тут какой-то хитровыебаный попался
Аноним 25/01/24 Чтв 18:20:32 #139 №3019140 
>>3019137
АХАХАХ, есть такое, а что поделать, стажировок нормальных нет, никуда не берут, здесь хотя бы до командного дошел =)
Аноним 25/01/24 Чтв 18:50:50 #140 №3019159 
>>3019135
Ну например:
Есть две строки.
Надо за линию дать ответ, можно ли 1 заменой/вставкой/удалением получить из одной другую.
Другая:
Дано массив из К уникальных чисел. Нужно посчитать количество корректных бинарных деревьев.
Аноним 25/01/24 Чтв 18:51:31 #141 №3019160 
>>3019159
Бинарных деревьев поиска*
Аноним 25/01/24 Чтв 19:06:11 #142 №3019196 
Есть какие-то годные источники вопросов (и ответов) на собеседовании по плюсам (джун)? Задачи какие-нибудь
Не алгоритмические, а скорее по самому языку и около темы
Аноним 25/01/24 Чтв 19:09:27 #143 №3019201 
>>3019196
В интернете пробовал искать?
Аноним 25/01/24 Чтв 19:43:51 #144 №3019254 
изображение.png
изображение.png
изображение.png
Где же правда?
У локальной переменной b адрес должен быть меньше, чем у а, потому что стек идет вниз. Но по факту он больше. Сегмент текста и данных по факту находится в старших адресах. При чем сначала идет текст, а потом данные.
Аноним 25/01/24 Чтв 20:09:32 #145 №3019329 
>>3019254
Компилер пытается, хотя и не обязан этого делать, поскольку это кресты, чтобы объявленные переменные в памяти подряд шли. Это на случай union struct. То, что ты объявил a и b, это не значит, что ты что-то запушил в стек. Сегменты где хочешь могут вообще оказаться при релокации, операционка еще и адреса рандомно выберет, чтобы вирусописателям посложнее данные было искать. Эта хуйня как-то называется и где-то отключается.
Аноним 25/01/24 Чтв 20:25:38 #146 №3019391 
>>3019254
> Где же правда?
> У локальной переменной b адрес должен быть меньше, чем у а, потому что стек идет вниз
Вообще не обязательно и платформозависимо. Надо читать спеки платформы, для х86 растет вниз.
https://stackoverflow.com/questions/664744/what-is-the-direction-of-stack-growth-in-most-modern-systems
Аноним 25/01/24 Чтв 21:07:09 #147 №3019515 
>>3019159
Алгособес я то прошел. Мне интересно какие задачи плюсовые могут дать. К примеру на джаве собесе могут дать задачу реализовать безопасный синглтон. Вот какие задачи такого формата могут дать на плюсах?
Аноним 25/01/24 Чтв 21:10:18 #148 №3019523 
>>3019515
Сколько алгособесов ты прошел? Их в яндексе 4+.
5 и дальше архитектура.
Аноним 25/01/24 Чтв 22:14:26 #149 №3019692 
1706210066541.jpg
>>3019159
> Надо за линию дать ответ, можно ли 1 заменой/вставкой/удалением получить из одной другую.
> Другая:
> Дано массив из К уникальных чисел. Нужно посчитать количество корректных бинарных деревьев.
Кашмар, это прям хард задачки с литкода решать придется
В Яндексе ещё и на бумажке это всё делать заставят?

мимо проходил, скоро тоже буду работу искать
Аноним 25/01/24 Чтв 22:31:36 #150 №3019737 
>>3019523
Я на стажера иду, у меня была одна техническая секция и одна алгоритмическая. Теперь у меня идут командные собеседования.
Аноним 25/01/24 Чтв 22:32:27 #151 №3019739 
>>3019692
Не, решаешь в их блокноте специальном. Код не компилируешь. Харды дают, но не на первом собесе.
Аноним 25/01/24 Чтв 22:59:30 #152 №3019785 
>>3019737
Ааа.
Все, я тебя понял.
Командные - это просто общение с командой. Тебе надо себя презентовать, что ты умеешь, и тд.
Но там тоже может быть алгосы. Меня такая хуйня подъебала, пришлось пару минут поступить
Аноним 25/01/24 Чтв 23:00:38 #153 №3019788 
>>3019692
Это медиумы.
Основных алгоритмов хватит. Хотя я в целом готовился к собесам.
Аноним 25/01/24 Чтв 23:05:35 #154 №3019796 
>>3019785
Да, там могут и алгосы дать, и просто о жизни поговорить. Но на последних командных собесах меня вопросами душат, я просто ебал их в рот. Я не бездельник, даже 2 первых этапа прошел, почему они не могут просто взять меня на работу?!? НА СТАЖИРОВКУ!!! СТАЖЕРОМ!!!! СУКА.
Аноним 25/01/24 Чтв 23:14:09 #155 №3019821 
>>3019796
А что там за вопросы? На знание языка?
Возможно просто смотрят как ты реагируешь на ситуацию когда нихуя не знаешь и нихуя непонятно.
Я пол года работаю, до сих пор нихуя не понятно.
Аноним 25/01/24 Чтв 23:17:41 #156 №3019829 
>>3019821
В этом и дело, что разные. Вот была команда по плюсам, начал про умные указатели (легкий вопрос), виртуальный деструктор (тоже легкий), но он не остановился, начал спрашивать про тесты и многопоточку на плюсах. А я ебу что ли, на плюсах продуктовый код никогда нормально не писал, только синтаксис знаю. Про память спросил, про её выделение, не помню точно какой вопрос, помню что неправильно на него ответил. И ЭТО ПРИ ТОМ, ЧТО Я РЕШИЛ ЕГО ЗАДАЧУ))))))) Задача была вот эта https://leetcode.com/problems/string-compression/description/
Аноним 25/01/24 Чтв 23:19:35 #157 №3019834 
>>3019829
Я конечно понимаю, что можно лучше знать язык, но блять, я иду на стажера. Быть стажером и знать все нюансы - это странно, нахуй тогда на стажировку идти, почему не пойти сразу джуном? хм.....

Самое дебильное - о команде ты узнаешь нормально только на собесе, поэтому подготовиться к собесу физически не можешь. Если к алгособесу подготовиться было легко, я знал примерно, что там будет, то здесь так не работает.
Аноним 26/01/24 Птн 01:11:06 #158 №3019968 
>>3019834
Так к ним и не надо готовиться по сути. Они спрашивают от балды что считают важным.
По сути ты уже прошел, осталось команду найти, которая тебя решит принять.
Хуево что единственный вопрос который ты заруинил ты не запомнил.
Аноним 26/01/24 Птн 08:27:58 #159 №3020090 
>>3019201
пробовал, там вопросы на уровне "какой размер в байтах у int" и "напишите fizzbuzz". Может я плохо искал, буду рад, если кинешь годноту.
Аноним 26/01/24 Птн 08:38:25 #160 №3020097 
>>3019796
Потому что не хуй идти в Яндекс. Посредственная работа за среднюю ЗП.
Аноним 26/01/24 Птн 08:41:11 #161 №3020099 
>>3020097
За низкую зп.
Аноним 26/01/24 Птн 09:36:19 #162 №3020138 
>>3020097
А какие там ща вилки и какие медианные?
Аноним 26/01/24 Птн 10:47:01 #163 №3020200 
>>3013668
Рисуешь на экране? Никогда не делай так. Рисуй в буфере, затем средствами графической системы копируй в окно. Выжмешь максимум скорости.
Аноним 26/01/24 Птн 10:49:15 #164 №3020204 
>>3014667
Используй. Сэкономишь силы и время при порте программы на другую платформу или разрядность.
Это не про красоту, это про переносимость.
Аноним 26/01/24 Птн 11:05:37 #165 №3020234 
Сейчас вот здесь >>3016615 рисую на экране. В планах сделать отрисовку в одномерном массиве разделенном на строки и рисовать там, патом отрисовывать получившеюся текстуру.
Аноним 26/01/24 Птн 11:13:56 #166 №3020243 
Что можно написать реаьное для практики?
Аноним 26/01/24 Птн 11:55:28 #167 №3020320 
>>3020234
Вот планы у тебя правильные. Нужна скорость - не откладывай эти планы на будущее.
Аноним 26/01/24 Птн 12:03:48 #168 №3020327 
>>3020243
Тетрис.
Аноним 26/01/24 Птн 12:35:46 #169 №3020354 
>>3020243
Напиши нормальные строко/квадраты как у заводчанина, но на нормальном опенгл/вулкане, а не цпу кути.
Аноним 26/01/24 Птн 12:42:56 #170 №3020362 
>>3019968
А куда идти новичку? На всех других стажировках ебать какая конкуренция. На джун позицию никуда не берут. Вот и остается Яндекс. И давай честно, зарплата нормальная, она невысокая, она нормальная, вот стажером в МСК предлагает от 80к до 120к, это мало? Если да, значит я реально нищук

вкатывальщик в тындекс
Аноним 26/01/24 Птн 13:10:23 #171 №3020395 
>>3020354
Ахахах, а что мы, мы заводчане плюсовые или жабо пидоры смузевые, подведём начальника что ли, али не выйдем на не оплачиваемые смены? Я по глазам вижу среди нас таких нет.

>>3020243
Игрульку какую нибудь, сервер клиент напиши, или реально спектр напиши
Аноним 26/01/24 Птн 14:29:38 #172 №3020496 
>>3012308 (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;
Аноним 26/01/24 Птн 14:32:40 #173 №3020503 
>>3020496
> X = S(20)
Это что такое по твоему?
Аноним 26/01/24 Птн 14:38:42 #174 №3020513 
>>3020496
все значки полетели блять. Должно было быть вот так:
S x = new S(10);

std::cout << x->x;

x->~S();

x = S(20);

x->print();

std::cout << x->x;
Аноним 26/01/24 Птн 14:42:28 #175 №3020518 
>>3020503
Я не знаю почему звездочка пропала, там должно было быть вот так:
*x = S(20)

раскрываю указатель и меняю значение объекта
Аноним 26/01/24 Птн 15:49:12 #176 №3020637 
>>3020518
Такого ты точно сделать не можешь, у тебя слева указатель, а справа объект.
Аноним 26/01/24 Птн 16:10:15 #177 №3020670 
>>3020496
Чел, у тебя все звездочки полетели нах, поэтому не поймешь ничего. После вызова деструктора, ты можешь что хочешь делать. Можешь еще раз деструктор вызвать, лол. Весь вопрос, в какой момент тебя это приведет к Segmentation Fault. А если не приведет, то еще хуже - жесткий баг останется незамеченным. Если хочешь предотвратить повторный вызов деструктора, то наследуйся от класса, который статиком hash_map объектов и запоминает, какие из них уже деструктнуты. У меня подобное было в гуе, когда onclick на кнопке уничтожал ее нах, а этого дефолтный mouseup пытался ее отрисовать с отжатом состоянии, хотя на ней уже и деструктор и даже delete на указателе отрабатывали. Ничего лучше, чем вести таблицу объектов, не придумал.
Аноним 26/01/24 Птн 17:27:30 #178 №3020821 
>>3020637
Лалка.
>>3020518
> раскрываю указатель
Как? Как консервную банку?)
Думай хоть что пишешь, не позорься так.
> меняю значение
Это что по твоему?
Аноним 26/01/24 Птн 17:29:23 #179 №3020830 
>>3020821
Я действительно лалка.
Возможно у тебя тут лайфтайм экстеншион.
Но я бы не надеялся. Напиши деструктор и посмотри когда что у тебя умирает.
Аноним 26/01/24 Птн 17:42:14 #180 №3020863 
>>3020496
Так падажжи.
А что ты хотел?
Ты же не очищаешь память. Ты вызываешь деструктор. Память никто не освобождал.
Аноним 26/01/24 Птн 18:42:48 #181 №3020989 
Зачем подключать хедер file.h в файл с реализацией file.cpp? Хедеры же нужно в другом месте для использования, но зачем в самом файле реализации?
Аноним 26/01/24 Птн 18:52:12 #182 №3021007 
Есть тут разработчики графики? Вулкан/опенгл, гпу и все такое? Подскажите как у вас с работой сейчас, есть какие-то вакансии? Стоит вкат оформлять?
Аноним 26/01/24 Птн 19:23:38 #183 №3021044 
>>3021007
есть, тухляк, только пет проекты
Аноним 26/01/24 Птн 19:26:08 #184 №3021047 
>>3021007
Ебанько что ли? Тут никто не пишет код за деньги. А графические API - это уровень умения работать с qt, любой дебил сможет, соответственно никто тебя только за это не возьмёт на работку. Тебе как минимум надо с математикой быть знакомым и уметь в HLSL, т.е. в сишку.
Аноним 27/01/24 Суб 00:28:39 #185 №3021399 
>>3020830
Если бы ты не ответил былр бы ок. Но сейчас я в замешательстве. Это такой тролинг тупостью?
Птр = {} нормальный синтаксис, гцц, кланг, мсвц его правильно воспринимают.
Аноним 27/01/24 Суб 00:31:01 #186 №3021407 
>>3021047
Это прав с про отсутсвие работы, но абсолютно не прав с тезисами, вообще не понимает что несет.
Аноним 27/01/24 Суб 00:42:04 #187 №3021421 
>>3021407
>вообще не понимает что несет
Да я так и понял, решил не отвечать чтоб не триггерить, спасибо за ответ если ты >>3021044
Аноним 27/01/24 Суб 12:05:47 #188 №3021722 
>>3021007
Не совсем графика, но в каком-то смысле да. 3D CAD. За полгода набрали около 10 джунов.
Аноним 27/01/24 Суб 21:54:29 #189 №3022582 
>>3021722
Интересно, что именно делают эти джуны? Что они пишут?
Аноним 27/01/24 Суб 22:35:16 #190 №3022638 
>>3022582
>что именно делают эти джуны
увеличивают энтропию проэкта
Аноним 27/01/24 Суб 23:42:22 #191 №3022789 
image.png
image.png
>>3016808
>>3016782
>>3016785
>>3016781
>>3016677
>>3016406

Я тут подумал и понял что шаг в векторе у меня равен
Частота дискретизации/размер бпф = 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 пикселей. Но это ещё удачный случай, при разных масштабах ошибка тоже разная
Аноним 27/01/24 Суб 23:49:53 #192 №3022808 
челик присядь попей водички те хуёва
Аноним 28/01/24 Вск 00:34:28 #193 №3022891 
CLion или VS с решарпером? Первый по религиозным причинам недолюбливаю, при том что заебись по функционалу, новый гуй приятнее выглядит чем раньше, но тормозит прокрутка до сих пор. А второй какой-то протухший в 2024 уже, ещё и IntelliSense говно собаки, но с решарпером получше уже. VS Code даже трогать не хочется, экстеншон под кресты ещё хуже чем IntelliSense в студии.
Аноним 28/01/24 Вск 00:51:12 #194 №3022906 
изображение.png
ElqnKOXIAAl27K.jpg
>>3022891
> CLion
Аноним 28/01/24 Вск 02:09:17 #195 №3022956 
image.png
>>3022891
QtCreator
Аноним 28/01/24 Вск 07:25:04 #196 №3023000 
>>3022891
VSCode + clangd + CodeLLVM + CMake.

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

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

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

Короче, инструмент выбирают под задачи. Хуле нам тебе дилдо советовать если тебе гвоздь забить а не в жопу себя ебать?
Аноним 28/01/24 Вск 07:29:27 #197 №3023002 
>>3023000
>CodeLLVM
*CodeLLDB

быстрофикс

К слову, мне очень нравится как легко вкорячивается Clang и периферия в Винду. Не то что GCC. И при этом функционала больше. Тут тебе и clangd, и clang-format, и прочее.
Аноним 28/01/24 Вск 07:50:31 #198 №3023004 
>>3023002
> легко вкорячивается Clang и периферия в Винду
А шланг хоть сможет собрать код виндовых SDK?
Аноним 28/01/24 Вск 11:08:28 #199 №3023102 
>>3022906
Всё ещё быстрее и экономичнее чем VS Code, который вообще на JavaScript, а не просто Java.
>>3023000
> clangd
Не умеет в кучу важных вещей, например даже в базовые фичи типа переход к реализации, или поиск ссылок. А у майкоского экстеншена даже синтаксис С++20 не реализован полностью.
> В нём удобно
В студии каждый час IntelliSense падает и чинится только перезапуском студии, пиздец заёбывает. Или бывает пишешь код и хуяк он отъёбывает, подсветка синтаксиса пропадает и оно просерается только через пару минут. И гуй уже лет 5 не развивается никак, даже нормальной поддержки нейронок нет, только Копилот кое-как костылями пришили через очко. Из настроек там разве что гуй проектов для MSBuild неплох, остальное кал, даже панельки аутлайна нет нормальной.
> под задачи
Задача - писать код и не страдать от IDE.
>>3023002
> Clang
Его разве что под mingw имеет смысл использовать. С майковским тулчейном боль сплошная, а из SDK лезут тысячи варнингов. Сомнительное удовольствие.
Аноним 28/01/24 Вск 11:52:09 #200 №3023169 
>>3022891
> CLion или VS с решарпером?
Анончик не знаю даже что ты услышать хочешь
Оба говно, но лучше аналогов нет

Выбирай просто что больше нравится
Аноним 28/01/24 Вск 12:01:27 #201 №3023178 
>>3023102
Идея переодически начинает тупить и это лечится только invalidate cache and restart
Аноним 28/01/24 Вск 12:26:23 #202 №3023229 
Почему в плюсы не завезли аналоги всяких IDisposable, try-with, with?
Что мешает-то?
Аноним 28/01/24 Вск 12:59:31 #203 №3023277 
>>3023229
> try-with
А нахуя он нам нужен?
У нас есть raii и так
Аноним 28/01/24 Вск 13:02:37 #204 №3023285 
>>3023229
Напиши пропозал, тебя обоссут и попутно объяснят.
Аноним 28/01/24 Вск 13:04:46 #205 №3023288 
>>3023229
> IDisposable
Чел, деструкторы тебе для чего?
> try-with
Эксепшены религия не позволяет использовать?
> with
Скобочки, блять, используй. with - это костыль в языках без RAII. Можешь в if затолкать объект с деструктором или сделать макрос на with, если хочется прям как в питоныче.
Аноним 28/01/24 Вск 13:08:41 #206 №3023294 
>>3023288
Так with === {}, не? Выделяем новый скоуп, по выходу из него все само умрет
Аноним 28/01/24 Вск 13:16:32 #207 №3023302 
>>3022789
Лол, через полгода Штирлиц догадался, что Брезенхем работает только с линиями с наклоном не больше 45 градусов. То есть, если зум меньше 1, у тебя будут разрывы по определению. Тебе нужен nearest-neighbor или что-то подобное.
Аноним 28/01/24 Вск 13:19:41 #208 №3023307 
>>3023102
>Не умеет в кучу важных вещей, например даже в базовые фичи типа переход к реализации, или поиск ссылок
Он и не должен этого уметь by design. Он просто синтаксическое дерево строит. Дальше уже должна работать какая-то более высокоуровневая либа, вроде плагина для LSP. Плагин VSCode умеет и переход к реализации и поиск ссылок.
Аноним 28/01/24 Вск 13:50:45 #209 №3023382 
>>3023302
Ааа, ты думаешь это все брезенхемом рисуется от точки к точки. Нет это просто вертикальные линии от нижней границы виджета к точке. Там брезенхемом никаким и не пахнет.
Аноним 28/01/24 Вск 13:56:30 #210 №3023387 
.png
>>3023277
>>3023288
Да что вы говорите.

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

В это же время, в жавах и остальных - ты имеешь синтаксис, который именно для вот такой хуйни предназначен, и позволяет, в любом случае нормально освободить что там у объекта навыделялось.
Аноним 28/01/24 Вск 14:02:03 #211 №3023395 
>>3023382
Он Брезенхемом не линии рисует, а по горизонтали идет, и считает когда на следующий сэмпл в спектре переходить.
Аноним 28/01/24 Вск 14:10:48 #212 №3023419 
>>3023387
А какого хуя ты удаляешь строку над которой не владеешь?
Пикрилейтед говнокод, за который тебя палкой надо ебануть.
Аноним 28/01/24 Вск 14:12:10 #213 №3023423 
>>3023387
> Не использует RAII
> Стреляет эксепшенами
> Это не я еблан, это язык плохой
Ливни с треда, чушпан
Аноним 28/01/24 Вск 14:21:08 #214 №3023441 
>>3023387
> Прикриплейд
И что у тебя на пикрилейтеде, джаваопущ? Ты ведь даже не знаешь крестов, а уже пишешь код. При нормальном RAII у тебя всё будет освобождаться, то что ты вручную выделил память что в нормальном коде запрещено уже давно и не почистил - это твои проблемы, сборки мусора за даунами тут нет. Лучше расскажи как джава справляется c ConcurrentModificationException, всё так же надо делать ручные итерации с .next(), чтоб рантайм не наебнуть?
Аноним 28/01/24 Вск 14:23:06 #215 №3023443 
>>3023387
По скрину же видно, что ты явный неадекват. У нормального человека глаза вытекут от такой темы.
Аноним 28/01/24 Вск 14:24:45 #216 №3023446 
>>3023395
Ды нет, я просто делаю преобразование координат

Для 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);
}

Причём тут брезенхем. То что я хочу сделать возможно похоже на работу брезенхема. Я хотел бы вычислять накапливаемую ошибку не в цикле, а по формуле. В брезехеме тоже ошибка вычисляется, но делается это в цикле. Но сейчас, на данном этапе ничего общего с брезенхемом нет
Аноним 28/01/24 Вск 14:52:22 #217 №3023486 
>>3023419
>>3023423
>>3023441
У плюсовиков настолько все плохо с абстракциями и примерами?

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

В реальности, ну, вот будет у тебя класс TcpConnection, где-то в недрах ебнется какой-нибудь IOException или AppException, тебе надо почистить и вернуть в пулл буфферы, а сокет освободить правильно. Ну и че будете делать? Покажите как это делается на плюсах. А то начали чет щебетать, а показать как делать без устоявшихся уже в остальных языках конструкциях - не хотите.
Аноним 28/01/24 Вск 14:54:47 #218 №3023491 
>>3023486
Ды тут чёт одни токсики. Что не спроси, сразу дураком обзывают
Аноним 28/01/24 Вск 14:59:36 #219 №3023502 
>>3023491
Я подозреваю, что они просто сами не знают, как сделать это нормально, чтобы не выглядело как ебаный пиздец, и при этом не городя всякие свои велосипеды в духе лайфтаймов или своих GC'шек.
Аноним 28/01/24 Вск 14:59:39 #220 №3023503 
>>3023486
unique_ptr для кого придумали, долбаёб?
А вообще ты явно не из плюсов, потому что все плюсовики знают:
Ты либо не трогаешь руками память нигде, кроме возможно конструкторов/деструкторов и используешь исключения, либо не пользуешься исключениями, так как без RAII это будет работать некорректно.
Аноним 28/01/24 Вск 15:02:27 #221 №3023514 
>>3023486
> Ну и че будете делать?
Чел, выполнится деструктор, эксепшен точно так же выполнит деструкторы у вышедших из области видимости объектов, так же как в твоей джаве. Ты вообще в курсе, что в твоём говнокоде foo делает две аллокации и у обоих RAII не работает?
Аноним 28/01/24 Вск 15:07:17 #222 №3023521 
>>3023514
Я думаю он даже не представляет что такое "Hello world", где он хранится, и какой у него лайфтайм, раз он передает его в объект и пытается удалить.
Аноним 28/01/24 Вск 15:09:58 #223 №3023524 
>>3023486
Это у тебя плохо со знаниями крестов, ты даже не знаешь синтаксиса. В крестах объекты создаются не через new, у этого ключевого слова семантика отличается от джавы. В 2024 года даже IDE тебе варнинги кинет за new, так никто не делает. Убери его и всё будет работать как в джаве. Я уже молчу про то что ты память не выделял, а зачем-то освобождаешь её в деструкторе.
Аноним 28/01/24 Вск 15:14:57 #224 №3023530 
>>3023524
Я мимо пробегал, а как тогда объекты делают в C++?
Аноним 28/01/24 Вск 15:15:44 #225 №3023533 
>>3023503
> unique_ptr
Всратый костыль.
Я хочу работать с TcpConnection. Как-бы ООП, все дела. Нахуй мне этот вот юник поинтер, мне нужен объект удовлетворяющий требуемому интерфейсу.

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

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

>>3023521
Каким образом пример кода, в котором не выполнится деструктор и соответственно - я получил утечку - вообще относится к тому, что я делаю? Серьезно, чел. Еще раз. ЭТО ПРИМЕР. Я просто показываю ситуацию, в которой ты - нихуя сделать не можешь, чтобы корректно освободить выделенные в процессе работы ресурсы.
У тебя так же может остаться висеть в памяти открытый файл, и ты нихуя не сделаешь, потому что ничего, что могло бы его в такой ситуации корректно закрыть и освободить ресурсы не будет вызвано. Только городи костыли, либо как деды - все что надо в начали функции прописывай, потом здоровый try-catch и в конце - руками освобождай.
Аноним 28/01/24 Вск 15:20:19 #226 №3023538 
>>3023533
Ты очень тупой по причине долбаёб. Вы в жаве все такие? Ты знаешь что-то о Эксепшен Сейфити?
Варианты решения твоей проблемы:
1) убрать new.
2) добавить unique_ptr
3) обернуть часть кода, где может быть исключение в try, отловить его и очистить ресурсы.
Буквально 5 секунд ввода кода. Но ты подаёшь это будто это нерешаемая проблема.
Аноним 28/01/24 Вск 15:20:39 #227 №3023539 
>>3023524
Пажди, чел. Че ты вообще несешь?
new - создает выделяет память в хипе и отдает указатель на этот кусок памяти. Че не так-то? Я именно этого и хотел.
Чи с 2010 года, когда я последний раз на плюсах писал - что-то поменялось?
Аноним 28/01/24 Вск 15:21:26 #228 №3023541 
>>3023539
А delete где?
Ты троллишь что ли?
Аноним 28/01/24 Вск 15:23:18 #229 №3023546 
>>3023538
> убрать new.
Мне надо, чтобы объект был в куче
> добавить unique_ptr
Всрытай костыль. Уровня лайфтаймов от жидбрейнсов
> обернуть часть кода, где может быть исключение в try, отловить его и очистить ресурсы
И получить страшную партянку, если у меня много разного создается, что надо осводождать, вместо того, чтобы дать конструкцию языка, которая обернет это за меня.

>>3023541
Тут он не нужен, потому что пример синтетический. Он в любом случае не вызовется, так что зачем строчки лишние писать?
Аноним 28/01/24 Вск 15:24:20 #230 №3023547 
>>3023546
> Всрытай костыль. Уровня лайфтаймов от жидбрейнсов
Аргументы будут?
Пока что все намекает что ты зеленый.
Аноним 28/01/24 Вск 15:30:30 #231 №3023558 
>>3023530
Просто вызовом конструктора, внезапно. А new - это аналог malloc, т.е. выделить память на куче, создать в ней объект и вернуть ссылку на него. Естественно RAII не работает, потому что объект за пределами области видимости и не принадлежит тебе.
>>3023539
> Че не так-то?
То что так никто не пишет код, уже не нулевые, за такое говно тебя уволят нахуй. В каком-нибудь Unreal Engine вообще память на куче запрещено так просто выделять, можешь посмотреть исходники на гитхабе, увидишь как реальные проекты на современных крестах выглядят.
> что-то поменялось?
Да, есть чёткие гайдлайны как писать на современных креста, а не на сишке с классами. Обратная совместимость позволяет писать код как в 90-х, но это сделано для компиляции легаси, а не чтоб дегроды писали на С++03.
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#S-resource
Аноним 28/01/24 Вск 15:32:21 #232 №3023564 
>>3023547
Аргумент в том, что я как пользователь какого-то класса, не хочу думать о том как мне его передают.
Я хочу работать, с условным Computer, Connection, TextBox'ом и мне до пизды должно быть, уникальный это поинтер, шарящийся или сишный. Меня это, по хорошему, не должно волновать.
Иначе - начинают протекать слои и я на своем уровне слишком дохуя знаю о том как мне что передается, как оно там управляется.
Сверху, я могу из-за этого быть долбоебом, который полезет в этот юник поинтер я могу вообще сделать какой-нибудь reset и ебитесь как хотите, я в домике, удачного дебага.

>>3023558
Ну, т.е. вместо того, чтобы сделать язык удобнее для использования его фич - мы запрещаем одну из основных фич, которая была как раз удобна в С++.
Отличное решение.
Темплейты тоже запрещаем, чи как?
Аноним 28/01/24 Вск 15:35:44 #233 №3023570 
>>3023564
> Иначе - начинают протекать слои
Никуда ничего не протекает.
Во первых - уник птр лишь удалит объект по выходу из скоупа. ты все также можешь передавать свои указатели куда хочешь КАК ОБЫЧНЫЕ указатели.
Во вторых - ссылки гораздо безопаснее, лучше использовать их.
Аноним 28/01/24 Вск 15:39:49 #234 №3023577 
>>3023564
> одну из основных фич, которая была как раз удобна в С++
Что ты вообще несёшь? new всегда был зашкваром, это убогий синтаксический сахар над malloc. О каком удобстве речь, когда ты сам себе стреляешь в ногу, если можно просто не делать этого? Нет почти ни одной адекватной причины зачем тебе делать аллокации на куче вместо стека, куча даже банально по производительности медленнее.
Аноним 28/01/24 Вск 15:42:52 #235 №3023586 
>>3023577
Серьезнее хелловорлдов никогда ничего не писал?
Размер стека измеряется мегабайтами.
Аноним 28/01/24 Вск 15:53:04 #236 №3023611 
>>3023586
Вот тоже интересно, как он без кучи живёт
Аноним 28/01/24 Вск 15:58:51 #237 №3023625 
>>3023586
Как там на MS DOS?
Аноним 28/01/24 Вск 16:04:18 #238 №3023640 
>>3023625
Имел ввиду на Вин10?
Не виляй, ты чушь написал. Проблема не в стеке\куче, а в управлении памятью.
Аноним 28/01/24 Вск 16:09:09 #239 №3023654 
>>3023625
В MS DOS памяти всего 640 КБ, стека не хватит даже на десяток вложенных функций. Первая ошибка любой современной кодомакаки будет переполнение стека при запуске его высера даже уровня лаба1.
Аноним 28/01/24 Вск 16:09:52 #240 №3023656 
Да, размер стека измеряется одним мегабайтом.
Аноним 28/01/24 Вск 17:17:11 #241 №3023810 
>>3023654
>В MS DOS памяти всего 640 КБ, стека не хватит даже на десяток вложенных функций.

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

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

Просто поумничал, мне пофигу.
Аноним 28/01/24 Вск 18:45:38 #242 №3023990 
>>3023530
Через make_unique/make_shared.
>>3023546
Не хочешь "всратый костыль" - обкладывайся тестами под valgrind/msan, убирать за тебя твой мусор в этом языке никто не будет и никто не должен.
> Мне надо, чтобы объект был в куче
Если тебе хватает try-with, то стек тебе тоже сойдёт.
>>3023486
>Покажите как это делается на плюсах
Все ресурсы для которых нужна уборка, чистятся в деструкторе.
>>3023229
Не можешь сам реализовать scope_exit, спиши из черновиков - https://en.cppreference.com/w/cpp/experimental/scope_exit
>>3023577
Ты ёбнутый? UaF давно не дебажил?
Аноним 28/01/24 Вск 18:51:10 #243 №3024002 
Если во всех современных компьютерах реализован механизм виртуальной памяти, то почему просто не сделать стек бесконечным (скажем 10 ТБ) и дальше память будет подгружаться по мере использования?
Аноним 28/01/24 Вск 18:54:58 #244 №3024010 
>>3024002
> Двач а зачем существует RAM?
Аноним 28/01/24 Вск 18:57:00 #245 №3024012 
>>3024010
Так чë, стек хранится не в RAM, а в каком-то отдельном виде памяти?
Аноним 28/01/24 Вск 18:58:36 #246 №3024017 
>>3024010
К чему ты это?
Аноним 28/01/24 Вск 19:00:01 #247 №3024023 
>>3024012
Долбаёб, скорость у разной памяти разная.
Аноним 28/01/24 Вск 19:01:41 #248 №3024027 
>>3024023
Да, скорость RAM быстрее скорости RAM, это все знают.
Аноним 28/01/24 Вск 19:02:19 #249 №3024030 
>>3024017
Неиспользуемые страницы падают в своп.
Как ты думаешь, быстро их оттуда загрузить обратно?
Аноним 28/01/24 Вск 19:02:33 #250 №3024031 
С каким-то дауном-питонистом разговариваете или просто с толстяком, я ебу.
Аноним 28/01/24 Вск 19:03:24 #251 №3024032 
>>3024027
Ты про виртуальную память слышал только что она виртуальная, да?
Аноним 28/01/24 Вск 19:03:57 #252 №3024035 
>>3024030
Так с чего они неиспользуемые то будут? Ну будет заняты 3гб оперативы не рандомными кусками где-то в памяти, а сразу на стеке, а там дальше ОС размапит как ей удобно.
Аноним 28/01/24 Вск 19:06:19 #253 №3024037 
>>3024002
У тебя в программе минимум два стека, плюс по одному на каждый дополнительный тред.
А так да, ты можешь сделать так чтобы стек рос до тех пор пока не попадёт в область кучи.
Аноним 28/01/24 Вск 19:06:25 #254 №3024038 
>>3024032
Я правильно понял, что у тебя стек хранится где-то в отдельной памяти и поэтому к нему доступ быстрее? А где он хранится можешь подсказать? Вот я на эксешник даблкликаю, что происходит? В L3 кэше 8мб выделяется?
Аноним 28/01/24 Вск 19:06:52 #255 №3024039 
>>3024035
У тебя не может быть активной памяти выделено больше, чем РАМ.
Аноним 28/01/24 Вск 19:09:02 #256 №3024041 
>>3024038
Стек лежит там же, просто по особенностям использования у тебя меньше переходов по указателям и память стека почти всегда в кэшах, за счёт этого стек быстрее.
Аноним 28/01/24 Вск 19:10:15 #257 №3024044 
>>3024041
Ну я и спрашиваю почему не выделить стек 10ТБ и размещать всё на стеке, динамические размеры через какой-то alloca реализовать можно без проблем, я даже реализации под микрожелезки видел.
Аноним 28/01/24 Вск 19:10:18 #258 №3024045 
>>3024038
Стек неразрывный, и там меньше кешмиссов. А где там твой Хип ещё посчитать надо.
Аноним 28/01/24 Вск 19:11:44 #259 №3024049 
>>3024044
Вот поэтому - >>3024037
Аноним 28/01/24 Вск 19:12:32 #260 №3024053 
>>3024037
Что за два стека?
Аноним 28/01/24 Вск 19:13:28 #261 №3024055 
>>3024049
Что поэтому? Как количество стеков влияет на их размер? Я запросил у операционки 10 ТБ, она мне дала кусок 1мб, дальше память будет выделяться по мере обращения к адресам. Виртуальное пространство сейчас сколько занимает, 57 битов помоему, на 256 петабайт вроде бы, должно хватить хоть на 32к тредов.
Аноним 28/01/24 Вск 19:31:03 #262 №3024089 
>>3024053
Главный тред и стек для обработки сигналов (опциональный, но он скорее есть, чем нет).
>>3024055
> 57 битов помоему
48
> Я запросил у операционки 10 ТБ, она мне дала кусок 1мб
Или послала тебя нахуй с такими запросами.
Вообще ulimit -s unlimited и стек у тебя безграничный.
Аноним 28/01/24 Вск 20:38:38 #263 №3024249 
>>3023229
>Почему в плюсы не завезли аналоги всяких IDisposable
технически подобное пока невозможно пока сделать тк в языке нет рефлекции
но конечно же есть другие подходы как управлять временем жизни выделенных ресурсов
Аноним 28/01/24 Вск 21:14:27 #264 №3024327 
>>3023530
>Я мимо пробегал, а как тогда объекты делают в C++?
Если упрощенно то четырьмя способами - конструктор глобального либо локального статического объекта размещается где то в свободной памяти, конструктор локального объекта размещается на стеке, по умолчанию оператор new создает объект в динамической памяти (на куче), форма размещающего оператора (operator new) позволяет поместить объект куда угодно по желанию программиста
Аноним 28/01/24 Вск 21:35:28 #265 №3024360 
1588548431409.png
>>3024327
Тебе тоже надо читать гайдлайны. Правильное создание объекта на куче - сразу в управляющем объекте, без new.
Аноним 28/01/24 Вск 21:38:44 #266 №3024365 
>конструктор размещается на стеке
кек
Аноним 28/01/24 Вск 21:41:42 #267 №3024368 
>>3024012
зависит от машинной архитектуры
в подавляющем большинстве архитектур сегодня стек размещается в оперативной памяти
Аноним 28/01/24 Вск 21:45:26 #268 №3024371 
>>3024037
>У тебя в программе минимум два стека, плюс по одному на каждый дополнительный тред.
Помню, в висте (между xp и семеркой была такая ос), при определенных условиях могло быть то ли 8 то ли аж 16 стеков в однопоточной программе из-за особенностей виртуализации x32 в x64 и особенностей защиты которая там была реализована (это когда всех еще это окошко с разрешением выполнения задалбывало)
Аноним 28/01/24 Вск 21:48:43 #269 №3024372 
>>3024053
>Что за два стека?
user space и kernel space как минимум;
вообще если твоя прога с гуи интерфейсом, с активным вводо-выводом (та же сеть), то считай подавляющее количество процессорного времени твоя прога проведет в kernel space, при этом многие кодеры даже об этом и не знают, хех
Аноним 28/01/24 Вск 21:52:01 #270 №3024376 
>>3024365
это было неточно быстро сформулированное предложение, не передергивай
Аноним 28/01/24 Вск 21:54:31 #271 №3024385 
>>3024360
ну этот же совет говорит типа используйте всякие обертки, внутри то все равно будет где то по итогу вызвана та либо иная форма new
Аноним 28/01/24 Вск 21:59:59 #272 №3024392 
>>3024037
>А так да, ты можешь сделать так чтобы стек рос до тех пор пока не попадёт в область кучи.
Хм, а как ты это можешь сделать? Вроде же размер стека (в винде) указывается когда ты создаешь поток (create thread), а по умолчанию вроде бы мегабайт размер, но этот размер ты где то в реестре можешь так же изменить. И как бы все, дальше размер зафиксирован.
Аноним 28/01/24 Вск 22:11:47 #273 №3024403 
>>3023514
А где тут 2 аллокации? мимо 3 года плюсов
Аноним 28/01/24 Вск 23:46:43 #274 №3024549 
>>3023004
Может, но там будут ворнинги.

>>3023102
>переход к реализации
Не проверял, если и так то решение простое: не писать говнокод чтобы надо было смотреть что-то помимо доков/хэдэров. Понятно что в реальной работе без этой хуйни никак.
>В студии каждый час IntelliSense падает
Это рандом, но да, заебывает. Студия вообще жутко кривая, однако она заточена хорошо под разработку на Винде. Я когда в унике win32 и WDK ковырял понял что использовать что-то помимо вижуалки не выйдет. А еще она до тупого проста для новичков и там много удобств именно для настройки проекта. Учитывая что многие туториалы юзают её, это плюс.
>И гуй уже лет 5 не развивается никак
Уже показывали что пишут новый с закосом под стиль 11-ки. Не думаю что они просто внешний вид переделывают.
>даже нормальной поддержки нейронок нет
Тьфу нахуй, максимум время сэкономит.
>Задача - писать код и не страдать от IDE.
Удачи тебе под выбранной утилитой для STM код писать, лол. Или если в конторе скажут что юзают X а ты выбрал Y. Ещё раз, свобода выбора есть далеко не всегда и когда она и есть, лучше отталкиваться от какой-то логики относительно целей.
Аноним 28/01/24 Вск 23:49:37 #275 №3024551 
>>3024385
Вот именно. Внутри, реализации объекта а не рандомно в коде. Когда у тебя вся хуйня требующая особого внимания в конструкторах/деструкторах баги легче искать.
Аноним 28/01/24 Вск 23:50:39 #276 №3024554 
>>3024549
> в конторе
Заебал, никто тут не пишет на крестах за деньги, даже в техподдержке хуи пинать лучше, ещё и за те же деньги.
Аноним 29/01/24 Пнд 00:04:40 #277 №3024566 
>>3024554
Довольно спорно, в моей мухосрани почти все вакансии по плюсам, да и я сам с плюсам :0
Аноним 29/01/24 Пнд 00:17:42 #278 №3024589 
>>3024566
И сколько платят? Хоть больше чем дворнику в ДС?
Аноним 29/01/24 Пнд 00:44:16 #279 №3024606 
>>3024566
Нск что ли?
Аноним 29/01/24 Пнд 03:26:29 #280 №3024651 
Вот бы переехать в Техас и разрабатывать боевых роботов для национальной гвардии.
Аноним 29/01/24 Пнд 06:40:32 #281 №3024705 
изображение.png
изображение.png
Тред сишников куда то делся и поэтому высрусь здесь.
На что компилятор жалуется?
Аноним 29/01/24 Пнд 07:39:37 #282 №3024732 
>>3024705
На то что ты пидор считать до трёх не умеешь.
Аргументы, которые ты передаёшь макросу:
1 - obj
2 - {float x
3 - y;}
Аноним 29/01/24 Пнд 09:21:27 #283 №3024764 
>>3024705
Тут надо юзать
#define COMMA ,
иначе препроцессор тебя не поймет.
Аноним 29/01/24 Пнд 09:41:15 #284 №3024782 
>>3024705
Препроцессору насрать на фигурные скобки, он не знает, что это такое, видит запятую между x и y и интерпретирует это как разделитель аргументов.
Аноним 29/01/24 Пнд 11:13:01 #285 №3024899 
>>3024764
>>3024782
Спасибо аноны
Аноним 29/01/24 Пнд 11:26:53 #286 №3024934 
Добрый день. Помогает ли изучение C++ в понимании принципов программирования в целом и может ли быть использован как хорошая база в освоении других ЯП? В частности те методики, которые представлены в книжках могут быть использованы в других ЯП или там все исключительно для понимания принципов работы C++? Тут есть те, кто учит C++ для саморазвития в программировании, а не для устройства на работу с ним? Думаю начать учить C++ вторым языком.
Аноним 29/01/24 Пнд 11:27:20 #287 №3024935 
>>3024651
лох
Аноним 29/01/24 Пнд 11:28:44 #288 №3024938 
>>3024934
если тебе для заработка, то лучшая стратегия это углублять знания о выбранном тобой яп и платформе, на которой ты зарабатываешь деньги, а не распыляться на что то другое
Аноним 29/01/24 Пнд 11:52:33 #289 №3024979 
>>3024934
Для этих целей лучше пойти в Си тред и навернуть книжецу из оппика
Аноним 29/01/24 Пнд 11:55:41 #290 №3024984 
изображение.png
>>3024979
Си треда больше нет
Аноним 29/01/24 Пнд 11:56:48 #291 №3024985 
>>3024934
Чел, для саморазвития первым делом учи функциональщину - Хачкель как теоретический ЯП и Окамл как практическую функциональщину. Потом ассемблер. Всё. Кресты нужны чтоб писать код, а не саморазвиваться, тут ты можешь только развить умение читать легаси. Если хочется увидеть много интересных вещей в ООП - смотри на D.
Аноним 29/01/24 Пнд 12:53:54 #292 №3025054 
>>3024985
Зачем учить функциональщину? Она неестественна как для человеческого мозга, так и для машины. Объекты естественнее, проще и понятнее.
Аноним 29/01/24 Пнд 13:11:55 #293 №3025077 
>>3025054
> Зачем учить функциональщину?
Чтобы не превращаться в извращенца пидеРаста, пытаясь написать безопасный код.
Особенно актуально когда у тебя мультипарадигменный язык как кресты, а ты бездумно пишешь строго в ООП/процедурном стиле.
Аноним 29/01/24 Пнд 13:36:10 #294 №3025098 
>>3025077
>пишешь строго в ООП
А минусы будут?
Аноним 29/01/24 Пнд 13:43:39 #295 №3025107 
>>3024589
Мне не интересно сколько платят дворнику в ДС. В Мухосранях СИ/С++ требуется, зп по региону выше среднего.
Далеко не все хотят уезжать из уютных мухосраней в вонючий ДС.
Аноним 29/01/24 Пнд 13:53:54 #296 №3025127 
>>3025077
Раст в этом плане из коробки более функционален чем плюсы лол
Аноним 29/01/24 Пнд 14:38:45 #297 №3025228 
>>3025077
"Безопасный код" тогда проще всего на js писать. Зачем хаскелем себя мучать? Функциональщина вообще нигде не взлетела. Даже в HFT, где тупых в принципе не держат, и нет проблем хоть академиков набрать на любую зарплату, все равно пишут на плюсах и джаве.
Аноним 29/01/24 Пнд 14:47:24 #298 №3025240 
>>3012308 (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 }; -- тут пишет что отсутствуют экземпляры конструктора
Аноним 29/01/24 Пнд 14:52:53 #299 №3025248 
>>3024985
>>3024985
Покаж свой гитхаб, набитый проэктами на хачкеле и окамле. Или у тебя нет права такое советовать.
Аноним 29/01/24 Пнд 14:55:18 #300 №3025254 
>>3025107
>В Мухосранях СИ/С++ требуется
Шиза ебаная. Что для тебя мухосрань. Типичный 300к областной/крупный районный центр - и там за небольшим исключением будет 0 (ноль) разработки на крестах локальной.
Аноним 29/01/24 Пнд 14:56:01 #301 №3025255 
>>3025240
Попробуй based{ std::move( derived ) } сделать.
Аноним 29/01/24 Пнд 14:58:09 #302 №3025256 
>>3025254
Набережные Челны, например, лол. Там Алабуга, которая набирает крестовиков с зарплатами по 500тыр.
Аноним 29/01/24 Пнд 14:59:47 #303 №3025258 
>>3025228
>HFT
о да бля ахуенно актуально для россии где на биржах в принципе нету высокочастотной торговли ибо модель торгов другая
Аноним 29/01/24 Пнд 15:02:08 #304 №3025267 
>>3025228
> Функциональщина вообще нигде не взлетела.
Взлетела там где нужен гарантированно безопасный код с высоким уровнем абстракций. На Lisp например в НАСА или Боинге под некоторые задачи пишут, OCaml в финансовых корпорациях используется. Понятное дело в вебе или просто педоликам проще хуяк-хуяк на ООП слепить тонну легаси, а когда у тебя в принципе не должно быть легаси в коде - тут уже ООП серит себе в штаны, т.к. какой-нибудь солид требует писать расширяемый код, а не модифицируемый.
Аноним 29/01/24 Пнд 15:03:19 #305 №3025271 
>>3025256
чел это не мухосранск
Аноним 29/01/24 Пнд 15:04:58 #306 №3025275 
>>3025258
Ну приведи другую область, где функциональщина может в принципе взлететь. Обычный аргумент функциональщиков - ряяя, тупое быдло не осиливает. В HFT тупого быдла нет. В науке тоже тупых мало, но там питон, матлаб, фортран, плюсы. Окамл только на компсаенс кафедрах, и за их пределы не вылезвает.
Аноним 29/01/24 Пнд 15:10:35 #307 №3025283 
>>3025254
Мухосрань это до ляма
Аноним 29/01/24 Пнд 15:10:38 #308 №3025284 
>>3025267
>На Lisp например в НАСА или Боинге под некоторые задачи пишут
Лисп - это функциональщина уровня js лол. Что-то на лиспе в НАСА писали в 80-х и немного в 90-х на волне АИ хайпа, потом бросили.
>OCaml в финансовых корпорациях используется
Почти нигде не используется. Вакансий нет, историй успеха нет. Чисто академический язык.
Аноним 29/01/24 Пнд 15:11:02 #309 №3025286 
>>3025267
А ты не очень умный.
Аноним 29/01/24 Пнд 15:14:10 #310 №3025292 
>>3025267
>Взлетела там где нужен гарантированно безопасный код с высоким уровнем абстракций.
"Гарантированно безопасным" будет код только со статической аллокацией. Из функциональных языков такое возможно только в ATS, в остальном на некоторых из них можно только корректность алгоритма доказывать, но для этого обычно используют статические анализаторы.
Аноним 29/01/24 Пнд 15:21:47 #311 №3025306 
Какой гений придумал добавлять в язык возможность создавать функции вне классов? Почему каждый раз создавая функцию я по этой причине должен указывать класс_нейм::функ_нейм ? Почему в языке которому уже чёртову кучу лет до сих пор существуют такие удобные вещи как хэдер файлы, чтоб дважды писать одно и то же в разных местах?
Аноним 29/01/24 Пнд 15:25:40 #312 №3025315 
>>3025306
Потому что не все пишут опен-сорс, и многим надо скрывать имплементацию. Чтобы делать это без хидеров, нужны переносимые модули с универсальным форматом, который будут понимать все компиляторы. Такой сложной штуки комитет и разработчики компиляторов осилить не смогли, поэтому кушаем хидеры.
Аноним 29/01/24 Пнд 15:43:06 #313 №3025339 
>>3025315
Майкрософт годную технологию придумала COM - https://learn.microsoft.com/ru-ru/windows/win32/com/component-object-model--com--portal

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

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

COM -технология не идеальна, она overblow, требует наличие большого, единого и неповоротливого реестра, но, ловите мнение эксперта - на сегодняшний день ничего лучше не придумано и скорее всего даже не опубликовано в исследованиях.
Аноним 29/01/24 Пнд 15:50:16 #314 №3025359 
>>3025339
>corba
>com
>borland
Скуфидоны, о чем вы вообще? Почитайте современные книжки по плюсам и в целом освежите свои знания. Не надо вскрывать эту тему, борланд это даже не флеш или активеэкс
Аноним 29/01/24 Пнд 15:55:19 #315 №3025372 
>>3025359
Это не скуф, это дед. Имей уважение!
Аноним 29/01/24 Пнд 15:55:29 #316 №3025375 
>>3025359
Только долбоёбы уверены в том, что Майкрософт похоронила COM, на котором половина Винды основана. И, как оказалось, очень даже хорошо что "мелкомягкие" так старательно присыпали всякой мишурой свою Component Object Model - это чтобы такие как ты туда свои кривые ручонки не запускали.
Аноним 29/01/24 Пнд 16:03:33 #317 №3025395 
>>3025339
При чем тут COM вообще? Я хотел пидоров комитетских палкой ткнуть, которые 15 лет изобретали модули, и вышла ненужная хрень, кривая замена PCH.
Аноним 29/01/24 Пнд 16:41:04 #318 №3025474 
>>3025283
Неа, мухосрань это город где жизнь остановилась. Типа Вологды или Твери, вообще весь вымирающий "русский север".
Аноним 29/01/24 Пнд 16:45:13 #319 №3025484 
>>3025275
Да нигде она не может взлететь лол. Даже в контексте этого треда. Взять хотя бы метапрограммирование на 98 стандарте. Тогда это осуществлялось по сути через функциональный подход, ибо иначе никак - а именно рекурсия, паттерн-матчинг и иммутабельные переменные. И че кто нибудь делал это в продакшене? Да нихуя, чисто state of art код. А в продакшене делали внешнуюю кодогенерацию если надо было. Никто не корячился на шаблонах.
Аноним 29/01/24 Пнд 16:57:30 #320 №3025507 
>>3025306
если вкратце - то лишь потому что с++ создавался как надстройка над си
Аноним 29/01/24 Пнд 17:04:40 #321 №3025514 
>>3025315
тебе никак модули не позволят скрыть имплементацию
скрыть имплементацию ты можешь только оформив код в динамически загружаемую библиотеку, из которой могут торчать си-совместимые функции и все
в этом то и состоит, кстати, главный посос крестов по сравнению с явкой и шарпом
главнейший посос из-за чего кресты подыхают кстати
и за 20 лет ни одна сука ни на одной конференции про это не заикнулась лол
Аноним 29/01/24 Пнд 17:15:03 #322 №3025531 
>>3025395
>>3025359
ну дак он и отвечает на пост выше где вякнули про "скрыть имплементацию"
сделать это можно только через дин библиотеку
из нее будут торчать сишные функции и ничего более, и это крайне убого, убого это было уже в начале девяностых а сегодня это просто пиздец по сравнению с тем как подобные вещи делаются в явке или шарпе
как то компенсировать это можно только создав на базе этого (и сохранив совместимость) надстройку, использовав компонентный подход - как раз это com в винде или gobject в линуксе, и тогда это будет еще все более-менее терпимо
либо второй подход - это делать что то глобальней, а именно запиливать систему удаленного вызова процедур/методов/объектов, одной из примеров таких систем и являлся стандарт CORBA
Аноним 29/01/24 Пнд 17:15:11 #323 №3025532 
>>3025514
Ты херню какую-то говоришь. Dll с сишными функциями нужны только для связки с другими языками. В C++ хидеры и объектные файлы уже позволяют скрывать имплементацию: можно поставлять хидеры и собранную либу, хоть dll, хоть статическую. Модули теоретически позволили бы не разделять определения и имплементацию в коде, т.е. можно было бы импортировать собранный файл модуля, и компилятор выдавал бы все определения. Как dll в шарпе или jar в джаве.
Аноним 29/01/24 Пнд 17:35:08 #324 №3025577 
>>3025532
это ты херню говоришь
стандартизированного экспорта классов в крестах нет
только си-совместимые функции и все
Аноним 29/01/24 Пнд 17:55:06 #325 №3025609 
>>3025577
Это проблема из 90-х. Сейчас фактически осталось только два формата библиотек: юниксовый и MSVC, и gcc умеет делать def, чтобы, например, линковать dll собранную MSYS к MSVC. В vcpkg под виндой, например, куча либ через MSYS собирается, и проблем с линковкой нет.
Аноним 29/01/24 Пнд 18:02:00 #326 №3025619 
>>3025375
да всем насрать на виндоус, лол
Аноним 29/01/24 Пнд 18:04:47 #327 №3025621 
>>3025306
> должен указывать класс_нейм::функ_нейм
И кто тебя заставляет, пердоля? С темплейтами вообще нельзя определение и имплементацию в разных файлах иметь.
> дважды писать одно и то же в разных местах
Так не пиши. Модули уже давно везде работают, даже std на модулях вышла из экспериментальной.
Аноним 29/01/24 Пнд 18:20:38 #328 №3025637 
>>3025619
>всем
Отучаемся говорить за всех. Отучил себя - отучит товарища.

http://lurklurk.com/Отучаемся_говорить_за_весь_интернет
Аноним 29/01/24 Пнд 18:37:38 #329 №3025657 
>>3025621
> с темплейтами нельзя
Ну ты обосрался. Можно еще как.
Аноним 29/01/24 Пнд 18:43:48 #330 №3025667 
image.png
>>3025637
Но ведь он прав.
Аноним 29/01/24 Пнд 18:46:44 #331 №3025669 
>>3025657
Есть штуки в темплейтах, когда реализация должна быть строго в хедерах. И их много. Не назову, потому что не пишу шаблоны.
Аноним 29/01/24 Пнд 18:55:35 #332 №3025683 
>>3025637
скуфидон, иди на пенсию уже, дорогу молодым
Аноним 29/01/24 Пнд 19:52:02 #333 №3025782 
image.png
>>3025667
>Но ведь он прав.
Нет, конечно. Он глубоко заблуждается.
Аноним 29/01/24 Пнд 19:54:57 #334 №3025787 
>>3025782
Я понимаю если бы это был тред для домохозяек или для игродебилов, но будучи разрабом сидеть на винде, если ты не пишешь под винду - это клиника.
Аноним 29/01/24 Пнд 20:02:36 #335 №3025796 
image.png
Умножаю int 2^32 на int 2^6 и прибавляю 1
возвращаю long long, ожидаю увидеть 2^38 + 1, а вижу 0 + 1
В чем я не прав?
sizeof(long long) == 8
Аноним 29/01/24 Пнд 20:02:40 #336 №3025797 
>>3025787
>если ты не пишешь под винду - это клиника.
Ты два раза не прав.
Я пишу кросспалтформу. Всё кроссплатформенное за интерфейсы спрятано. Это раз.

Это тред С++? Тогда ты обязан знать что есть только одна среда разработки для С++ - MS Visual Studio. Всё под всей платформы пишется и отлаживается в ней, а затем переносится на целевые платформы. Так весь мир работает, если ты не знал.
Ну, кроме Торвальдса и и нескольких десятков его подсосов.
Аноним 29/01/24 Пнд 20:07:49 #337 №3025810 
>>3025797
>Так весь мир работает, если ты не знал.
Далеко не весь. Во многих конторах можешь на чем хочешь сидеть и любыми тулзами и ИДЕ пользоваться. Но под виндой там как правило самые упертые и консервативные мамонты сидят. Чисто виндовые обычно конторы, которые начинали чисто с виндового продукта и им потом потребовалась кросс-платформа (и они ее делают на отъебись).
Аноним 29/01/24 Пнд 20:13:06 #338 №3025825 
>>3025797
В голос с этого спермовода. Компилятор нормальный завезли хотя бы в твою студию?
Алсо, винда настолько удобная, что пришлось встраивать в нее Линукс в виде WSL, чтобы совсем убогими не казаться.
Аноним 29/01/24 Пнд 20:22:16 #339 №3025835 
>>3025796
В том что заигрываешь с переполнением
Аноним 29/01/24 Пнд 20:25:11 #340 №3025842 
>>3025796
UB UB ГРОБ ГРОБ КЛАДБИЩЕ
Аноним 29/01/24 Пнд 20:29:29 #341 №3025851 
>>3025825
>Алсо, винда настолько удобная, что пришлось встраивать в нее Линукс в виде WSL, чтобы совсем убогими не казаться.
При чём тут удобство? Это как раз наоборот, чтобы можно была писать на удобной винде под неудобный линукс без ебли с виртуалками.
Аноним 29/01/24 Пнд 20:31:48 #342 №3025854 
>>3025851
Жир пиздец.
Линух как система для девелопера в 100 раз удобнее.
Аноним 29/01/24 Пнд 20:33:38 #343 №3025859 
>>3025851
>Это как раз наоборот, чтобы можно была писать на удобной винде под неудобный линукс без ебли с виртуалками.
Ты даже не стараешья, поэтому я отказываюсь в этом учавствовать.
Аноним 29/01/24 Пнд 20:47:14 #344 №3025884 
>>3025854
Чем?
Аноним 29/01/24 Пнд 20:50:40 #345 №3025890 
>>3025884
Чем виндовс.
Аноним 29/01/24 Пнд 20:52:28 #346 №3025895 
1706550747860.jpg
> лучшая ос для разработки
Макос же
Аноним 29/01/24 Пнд 21:32:56 #347 №3025936 
>>3025895
Для разработки ануса.
Аноним 29/01/24 Пнд 22:42:38 #348 №3026013 
Есть скомпилированный файл приложения в ubuntu (без расширения, просто main), как запустить его в windows ?
Когда запускаю мне вылетает сообщение от windows - "Невозможно запустить это приложение на вашем ПК. Что бы найти версию для вашего компьютера, обратитесь к издателю приложения". А ?
Аноним 29/01/24 Пнд 22:46:44 #349 №3026016 
>>3026013
Если повезёт, то через WSL. Если не повезёт, то вообще никак, хоть убейся, придётся виртуалку с линуксом разворачивать.
Аноним 29/01/24 Пнд 23:09:48 #350 №3026042 
>>3026013
> А ?
Хуй на, пердоля.
Аноним 29/01/24 Пнд 23:17:41 #351 №3026046 
image.png
>>3025782
Кстати вот тоже пример разрывов и неравномерностей
Аноним 29/01/24 Пнд 23:20:30 #352 №3026048 
>>3026016
Ага. Или обрвтиться к разработчику приложения.
Аноним 29/01/24 Пнд 23:51:38 #353 №3026079 
image.png
>>3025825
>Компилятор нормальный завезли хотя бы в твою студию?
Охуенный компилятор.
Аноним 30/01/24 Втр 00:16:41 #354 №3026103 
>>3026042
Какой ?
Аноним 30/01/24 Втр 00:34:36 #355 №3026112 
>>3025797
Qt
Аноним 30/01/24 Втр 01:09:40 #356 №3026123 
>>3025854
Нет. Нужно писать либо в текстовом редакторе с подсветкой синтаксиса, а потом компилировать в симейк, либо использовать неудобные или зашкварные IDE. Тот же Clion это зашквар, написанный на java от зашкварной джабаебской компании Jetbrains
Аноним 30/01/24 Втр 01:22:12 #357 №3026126 
>>3026123
>Нужно писать либо в текстовом редакторе с подсветкой синтаксиса, а потом компилировать в симейк
Дед, 90-е давно закончились, сейчас в любом "редакторе с подсветкой синтаксиса" есть все возможности IDE благодаря LSP.
>Тот же Clion это зашквар
Почему? Это в нулевые он тормозил, сейчас он работает норм на любом днищеноуте.
Аноним 30/01/24 Втр 02:21:02 #358 №3026151 
>>3012308 (OP)
Есть моар картинки с пикрила? Что-то даже и на русском было
Аноним 30/01/24 Втр 02:32:03 #359 №3026153 
image.png
image.png
Чё бля?
Аноним 30/01/24 Втр 02:40:31 #360 №3026156 
image.png
>>3026153
Язык без невидимой хуйни, да-да. Дебаггер после cin сразу 0 показывает.
Аноним 30/01/24 Втр 08:53:10 #361 №3026239 
>>3025609
стандартизированного экспорта классов в крестах нет
Аноним 30/01/24 Втр 08:54:19 #362 №3026241 
>>3025619
к сожалению, для разработки, оставшейся в россии, это во многом так
Аноним 30/01/24 Втр 09:05:40 #363 №3026251 
>>3025669
это застарелая проблема крестов, которая так и не была решена
по стандарту 98 было две модели организации исходного кода шаблонов а именно модель включения и модель разделения (через ключевое слово export)
вторая модель так и не была реализована в мейнстрим компиляторах языка
и всегда используется только первая, которая означает что весь код шаблона должен выглядеть так как будто бы он встраиваемый (inline), что на практике означает что весь шаблон должен быть помещен в хедер файл (если код шаблона планируется задействовать в нескольких единицах трансляции, само собой)
Аноним 30/01/24 Втр 10:45:25 #364 №3026354 
>>3026156
Господи мудила, ну посмотри в каком порядке ты аргументы принимаешь и передаешь.
Аноним 30/01/24 Втр 12:08:35 #365 №3026462 
>>3026126
> сейчас в любом "редакторе с подсветкой синтаксиса" есть все возможности IDE благодаря LSP.

Есть такое слово Debug.
Код набирать и в vi можно.
Аноним 30/01/24 Втр 12:13:10 #366 №3026468 
>>3026156
Что меня всегда добивало в пользователях плюсов, так это какой-то панический отказ от scanf, gets и т.д.

С++ это язык, в котором к результату можно прийти 1024 способами, три четверти из которых будут неэффективными, а остальные - весьма эффективными.
Аноним 30/01/24 Втр 12:16:02 #367 №3026471 
>>3026468
> 2024 год
> калсоль!
Таких уродов давно пора кастрировать.
Аноним 30/01/24 Втр 12:23:49 #368 №3026483 
>>3026471
Кажется ты не программист.
Аноним 30/01/24 Втр 12:34:55 #369 №3026494 
>>3026046
Чё вы хуйню какую то обсуждаете вместо разрывов?
Аноним 30/01/24 Втр 12:40:22 #370 №3026502 
>>3026462
>Есть такое слово Debug.
И в чем проблема с дебагом? Виндузятничка пугает консольный GDB? Так есть плагины для большинства редакторов-IDE.
Аноним 30/01/24 Втр 13:07:28 #371 №3026538 
>>3026483
Кажется тебя давно пора кастрировать за тупость.

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

В 2024 году писать программу печатающую на телетайпе так же нелепо как делать автомобиль с лошадью вместо двигателя. Ты просто дегенеративный выродок которых нужно уничтожать.
Аноним 30/01/24 Втр 13:10:34 #372 №3026540 
>>3026538
Консоль это ввод буковками. Чего жы ты аудио сообщением свой ответ не написал, а буковками?

мимо шел
Аноним 30/01/24 Втр 13:13:47 #373 №3026545 
>>3026538
Шиз, таблетки
Аноним 30/01/24 Втр 13:24:42 #374 №3026561 
чёто в треде говной пахнуло
Аноним 30/01/24 Втр 13:32:53 #375 №3026571 
ДЕБАЖИМ ПЛЮСЫ ВОЙСАМИ ИТТ
Аноним 30/01/24 Втр 13:41:29 #376 №3026584 
>>3026502
>Виндузятничка пугает консольный GDB?

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

Не надо сравнивать удобство отладки в Visual Studio и gdb. Это несравнимые вещи.
Аноним 30/01/24 Втр 13:43:27 #377 №3026586 
>>3026538
Пиздец, ты даже для "Мы вам перезвоним" ебанутый.
Тролль, что ли? Слишком жирно.
Аноним 30/01/24 Втр 14:24:20 #378 №3026656 
image.png
>>3026584
Кем бы мог быть gdb в лучшем мире.
Аноним 30/01/24 Втр 14:25:03 #379 №3026657 
>>3026584
>Ты сам то в нём много времени провёл?
Достаточно, и мне в нем удобнее, чем в студии.
>Точку останова без поиска в гугле сможешь поставить?
Смогу, там просто файл и строку указываешь. Но они в любом редакторе из интерфейса ставятся.
>Без man назовёшь ключ компиляции с отладочной инфой?
-ggdb
>Не надо сравнивать удобство отладки в Visual Studio и gdb. Это несравнимые вещи.
Да, в gdb есть суперкрутой принт и скрипты, это ставит его на голову выше студии.
Аноним 30/01/24 Втр 14:31:05 #380 №3026666 
>>3026657
>суперкрутой принт

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

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

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

А gdb - его приходится использовать на целевой платформе. Как средство для переноса программ между платформами - годен. Но отлаживать в нём так называемую "бизнес-логику" или разбор протоколовов каких. Ну-ну.
Аноним 30/01/24 Втр 14:38:29 #381 №3026687 
>>3026538
Текст можно обрабатывать программно, гуй - можно, но очень сложно. Программист обычно выбирает текст и консоль, макака визжит и трясет ручками, чтобы ей добавили кнопочку в интерфейс.
Аноним 30/01/24 Втр 14:42:13 #382 №3026696 
>>3026494
Вот вот, какие то конструкторы деструкторы, консоли сосноли. Давайте разрывы обсуждать
Аноним 30/01/24 Втр 14:44:27 #383 №3026700 
>>3026666
>И тебе нечего на это возразить.
Принт умеет вызвать функции из кода, просто пишешь выражение как в коде, получаешь результат. Студия тоже умеет, но там это супергеморно.
>подвёл мышку к меременной - а она, вижуал студия, рисует тултип со сначением переменной.
Ну если у тебя все в переменных лежит, на которые мышку можно навести, то удобно, конечно. Если надо какую-то чуть более сложную структуру данных ковырять - то уже не очень.
Аноним 30/01/24 Втр 14:45:28 #384 №3026701 
>>3026696
> Давайте разрывы обсуждать
Тебе нужно понять природу IEEE 754 (IEC 60559)
Для начала. А тогда уже можно и пообсуждать.
Аноним 30/01/24 Втр 14:50:15 #385 №3026721 
>>3026700
>Если надо какую-то чуть более сложную структуру данных ковырять - то уже не очень.
Наоборот - можно даже в тултпиах по спискам бегать, да и не только по спискам, можно сложный структуры данных открывать. Это бомбовая вещь.

При этом на целевой платформе бывают ситуации, когда проще в коде printf'ами отладочной инфомации в консоль/лог навалить, нежели пытаться поймать ошибку в gdb.
Аноним 30/01/24 Втр 15:05:31 #386 №3026765 
>>3026561
дак ты зашел!
Аноним 30/01/24 Втр 15:12:16 #387 №3026786 
>>3026584
>>3026656
к gdb куча фронтендов есть кстати
Аноним 30/01/24 Втр 15:19:17 #388 №3026808 
>>3026656
Не мог быть. Пердоговно не может быть хорошим, ибо сделано по принципу юниксвей - "мне в падлу делать хорошо, сляпаю огрызок, серану в консоль, и так сойдет, кому надо будет, сам слепит с чем-нибудь другим костылями из соплей".
Аноним 30/01/24 Втр 15:19:45 #389 №3026809 
>>3026786
>к gdb куча фронтендов есть кстати

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

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

Ты вообще не шаришь и нихуя не понимаешь в компьютерах. Тебе бы помолчать, послушать об чём люди толкуют, а не нести сюда свои убогие суждения.
Аноним 30/01/24 Втр 17:12:49 #391 №3026924 
>>3026815
Читать научись на что отвечаешь, воен коленного рефлекса.
Аноним 30/01/24 Втр 19:34:34 #392 №3027123 
image.png
>>3026924
А ты у народ поинтересуйся, кто лучше отвечает - ты или я :)

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

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

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

Ну и не исключён вариант что ты просто "долбоёб". Ты даже не представляешь на какое количество абсолютно разных людей наехал, наехавши на консоль.
Аноним 30/01/24 Втр 20:18:05 #393 №3027194 
>>3027123
Во-первых

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

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

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

мимо
Аноним 30/01/24 Втр 20:28:57 #394 №3027214 
image.png
>>3027194
А нахуя он консоль, мать нашу, обижает? За мать будем ебать!

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

И я сам таким бывал, хотя до бреда супротив консоли никогда не доходил.
Аноним 30/01/24 Втр 22:55:02 #395 №3027418 
>>3027214
Ну тогда согласен, консоль надо уважать
Аноним 30/01/24 Втр 23:05:53 #396 №3027441 
>>3023577
Не помогает.
ЦэПлюсПлюс - рассчитывает, что ты уже, как минимум, освоил си на уровне - можешь писать комерческий софт или хотя бы прошивки/драйвера, и теперь тебе надо УЛУЧШИТЬ ЭКСПИРИЕНС.
Соответственно, если плюсы будут первым языком, ты больше будешь ловить себя на "А ПОЧЕМУ ТАК-ТО? ПОЧЕМУ, БЛЯДЬ???" А когда спросишь у кого-нибудь, тебя нахуй пошлют(потому что 95% не знают на самом деле)

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

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

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

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

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

Советую, если начинаешь, брать нормальный язык. Жава, Питон, Жаваскрипт, на худой конец - шарпы. Ну а если эти крохи перформанса, которые плюсы дают таки хочется - бери раст, там хоть нормальный туллчейн и из коробки есть почти все, что нужно, чтобы что-то полезное писать.
Аноним 30/01/24 Втр 23:25:50 #397 №3027463 
1553835834618.png
1685026339421.png
>>3027441
Пиздос ты поехавший.
> setlocale
> itoa
> вывод даты
Как там на ХР с сишкой и без std? Ты тред не попутал?
> Ее нет кста.
Шзоид, фактический стандарт индустрии на крестах в 2024 - cmake. Там не надо делать ничего из перечисленного тобой. В каком-нибудь CLion ещё и гуй есть, даже в конфиг никогда не придётся заглядывать.
> Сейчас же, блядь, 2024 год
Так ты из 2004 вещаешь, шизик.
> там даже не в 2 раза разница
А в 5-10, когда надо алгоритм написать, джава ещё и памяти сожрёт в десять раз больше.
Аноним 30/01/24 Втр 23:32:28 #398 №3027467 
>>3027441
> Буст
Открой для себя мир кути. Не панацея, но очень годно.
> Системы сборки
Смаке конечно кал, но не надо нам и так долгий компилятор ещё сильнее нагружать. Пусть хоть как то работает
> Раст
Пока что слишком сырой. А так обмазаться опционалами можно и в плюсах.
> Брать нормальный язык
Так плюсы и есть нормальный язык. Со своими фичами и ценой за них. Это вы ненормальные.
Аноним 30/01/24 Втр 23:37:59 #399 №3027471 
Если я неплохо знаю шарп трудно будет в плюсы вкатиться?
Аноним 30/01/24 Втр 23:40:20 #400 №3027475 
>>3027471
Не будет сложно, скорее непривычно что рядом с сахарницей стоит банка с цианидом.
Аноним 30/01/24 Втр 23:41:01 #401 №3027476 
>>3027471
И да, и нет.
А зачем? Деньги легяе на шарпе зарабатывать.
Аноним 31/01/24 Срд 00:13:52 #402 №3027498 
>>3027441
БАЗА
Шизики итт уже начали перекрывать своими нелепыми мувами базу, мол симейк есть (фактически стандарт лол), кути, который не пришей пизде рукав тут вообще. Очень слабо. Давайте по всем пунктам кройте или соснули.
Аноним 31/01/24 Срд 04:47:13 #403 №3027673 
image.png
image.png
image.png
>>3026156
Ещё раз, для тупых, пик 1. Инфа в книжке от создателя языка не соответсвует его поведению. Там написано, что если дать программе неправильный ввод, то будет понятно, что он неправильный, потому что возраст будет -1. Но когда я ввожу точь, сука, в точь как в книге, я получаю 0.

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

Хотя ладно, один раз я получил -1. Когда дал ^Z после ввода первого значения в PS.
Аноним 31/01/24 Срд 06:30:51 #404 №3027689 
.png
>>3027463
Ну, ладно. Я на самом деле зря наверное так вот злобно написал. Просто хотел типа в двачевском стиле.
Так-то да. Я на плюсах активно писал на первых курсах, а было это как раз во времена, когда XP был актуальным.
Но срсли. Личный опыт таки неприятный. Особенно по сравнению с джавой, которую стали к третьему курсу давать.

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

Корче. Я все равно не рекомендую новичку брать первым языком для изучения плюсы. Больше батхерта испытает, по итогу - либо дропнет, либо переключится на более удобный для себя язык.
Аноним 31/01/24 Срд 07:13:31 #405 №3027714 
>>3027475
И в сахарнице тоже цианид.
Аноним 31/01/24 Срд 07:20:51 #406 №3027715 
>>3027673
Долбоёб, ты сначала имя вводи, а затем возраст.
Совсем белены объелся?
Аноним 31/01/24 Срд 08:19:34 #407 №3027731 
>>3027714
Да ладно! В натруженных руках это всемогущий инструмент.
Аноним 31/01/24 Срд 09:40:31 #408 №3027784 
>>3027731
Одебилевший от шарпа зачерпнет ложку цианида и подохнет. Кто начал со скриптов никогда не поймет программирование, это мертворожденный зомби с тухлой жижей вместо мозгов.
Аноним 31/01/24 Срд 09:55:02 #409 №3027792 
>>3027673
Потому что это либо УБ, либо иди читай спеки ввода и что там при не совпадении типов.
Аноним 31/01/24 Срд 10:24:20 #410 №3027813 
Объясните мне, почему вы, выродки, до сих пор пишете нейспейс для доступа к имени вместо использования using? Кодовая база на плюсах это по умолчанию блевотный высер слепого. Исключений не бывает.
sage[mailto:sage] Аноним 31/01/24 Срд 12:02:31 #411 №3027938 
>>3027673
И вот это животное тоже считается человеком.
> cin >> first_name >> age;
Аноним 31/01/24 Срд 15:59:37 #412 №3028294 
>>3027813
> пишете нейспейс для доступа к имени вместо использования using?
В хэдере это делать нельзя - протечет что не нужно
Целый неймспейс юзать сразу, тоже такое себе, конфликт имён легко словить
Выцеплять каждый пук через using namespace::name, так это только засорить начало файла
Аноним 31/01/24 Срд 16:25:47 #413 №3028359 
>>3028294
> В хэдере
Как там в 2017? Про модули не слышал? Из них ничего не течёт.
Аноним 31/01/24 Срд 16:46:24 #414 №3028401 
да я смотрю никто из разработчиков компиляторов и систем сборки до сих пор про модули не слышал
(кроме мелкософтных которые скорее всего своё говно и продавили в комитете)
Аноним 31/01/24 Срд 16:57:00 #415 №3028425 
>>3028401
> компиляторов
Шланг поддерживает больше года, MSVC уже три года как.
> систем сборки
cmake и msbuild поддерживают уже давно, нахуй ты пиздишь.
> не слышал
При этом уже std на модулях переписана и зарелизена после трёх лет тестов, ага.
> своё говно
Самая нужная вещь в современных крестах, наконец можно пидорнуть хедеры и писать код в одном месте без ебли с инклюдами. Ещё и std одной строчкой импортится, вместо десятков инклюдов на каждую фичу.
Аноним 31/01/24 Срд 17:54:19 #416 №3028490 
>>3028359
Предлагаешь поесть говна чтобы не пить мочу?
Аноним 31/01/24 Срд 18:58:54 #417 №3028588 
загадка.jpeg
Аноним 31/01/24 Срд 19:38:11 #418 №3028636 
>>3028588
всё, я бросаю плюсы, пойду дальше жсоны перекидывать на жаба скрипте и пить смузи
Аноним 31/01/24 Срд 19:43:06 #419 №3028651 
>>3028588
Легко, но через UB.
Аноним 31/01/24 Срд 19:43:54 #420 №3028653 
>>3028588
Ну идёшь до элемента запоминая один прошлый, что сложного?
Аноним 31/01/24 Срд 19:46:30 #421 №3028659 
>>3028653
Сложность в том, что указателя на начало списка у тебя нет.
Аноним 31/01/24 Срд 19:49:16 #422 №3028662 
>>3028659
Ну тогда:
1) Сканим хип процесса
2) находим наш указатель
3) меняем на следующий
4) чистим память по этому
Аноним 31/01/24 Срд 19:53:08 #423 №3028669 
>>3028588
Если нам нужно убрать значение, то можем заменить текущее на следующее, и удалить следующую ноду. Указатель на след поставить на через одну.
Аноним 31/01/24 Срд 22:10:45 #424 №3028909 
>>3027715
>>3027938
Сука, вы реально настолько тупые? В этом и суть примера что после добавления инициализации если пользователь проебется и введёт задом наперед возраст будет -1. Там весь подраздел про инициализацию и почему она должна присутствовать в 99% случаев. Ошибка продемонстрирована намеренно, но когда я её проверил получил другой результат.

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

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

Тот факт что терминал винды на ^Z всё же выдает -1 значение которое там и должен быть, напоминаю намекает что возможно зависит от реализации конкретной ОС. Надо будет в cmd попробовать вместо PS.
Аноним 31/01/24 Срд 22:15:11 #425 №3028915 
>>3028588
Это задача не имеет ответа, без ответа на вопрос - циклический список или нет.
Если список не циклический, то запрошенное действие невозможно.
Если список циклический... ну, вы понЕли.
Аноним 31/01/24 Срд 22:15:42 #426 №3028916 
image.png
image.png
>>3027673
Вот вам фулл подраздел, для даунов, если не верите.

Так что там по стандартизированному языку, пидорки?
Аноним 31/01/24 Срд 22:18:13 #427 №3028919 
>>3028909
>Ещё раз с++виньи, почему поведение программы из книги от создателя языка не соответствует реальности?
>
Глупая девочка, ты пытаешься спорить со стандартом? Не рекомендую - соснёшь с проглотом.

Твоя задача решается элементарным вводом двух строк и последующим анализом ввода. Всё! И ради такой хуйни ты уже который день ебёшь тут мозги анонам?
Лучше скажи как сюда jpeg7zip цеплять. Или tar попробовать?
Аноним 31/01/24 Срд 22:21:10 #428 №3028921 
>>3028916
Тупая-пизда-вкатун, иди нахуй. Просто развернулась, взяла свою тупую голову в руки и ка-а-а-а-а-ак попиздовала нахуй, чтобы только пятки сверкали.
Аноним 31/01/24 Срд 22:52:25 #429 №3028956 
>>3028359
> Про модули не слышал?
Слышал, в 20 стандарте ввели, до сих пор нихуя не работает
Аноним 31/01/24 Срд 22:55:53 #430 №3028963 
>>3028909
> из книги от создателя языка
Добро пожаловать, Страуструп долбоеб

который не особо сильно решает в языке
Аноним 31/01/24 Срд 23:08:06 #431 №3028969 
1587885979684.png
>>3028916
> фулл подраздел
Во-первых, иди нахуй.
Во-вторых, у тебя на пиках говно какое-то, а вот пикрилейтед стандарт. По стандарту для инта вызывается num_get, который возвращает 0, т.к. не смог распарсить число.
> книжке от создателя языка
Что ещё притащишь от создателя языка? Какое он имеет отношение к стандарту?
По итогу мы выяснили только то что ты пидор.
Аноним 31/01/24 Срд 23:46:09 #432 №3029018 
>>3028916
А как ты умудрился натянуть труп страуса на стандарт?
Он язык родил создал, а воспитывают совсем другие люди комитет
А пьет за гаражами он с третьими разработчики компиляторов
Плюс он мог банально ошибиться. Или, что ещё проще, за время существования книги стандарт поменялся.
Аноним 31/01/24 Срд 23:56:35 #433 №3029019 
>>3029018
> Или, что ещё проще, за время существования книги стандарт поменялся.
Там же была изначальная книга от него по С++98. А потом уже неизвестные редакторы, не факт что даже с участием Страуса, апали редакции под новые стандарты, пока не дошли до абсурда с С++20. Хотя очевидно что Страус не знает современного стандарта, С++11 уже без него рожали. Все эти "garbage value" - это дыры в безопасности, естественно их прикрыли в каком-то стандарте.
Аноним 01/02/24 Чтв 00:04:30 #434 №3029021 
>>3029019
Примерно поэтому я книги по плюсам и не читаю. Исключение - Мейерс 2014. Отличное введение в современные плюсы после вузовского Си с классами. А все остальное cppref + SO.
Пока выйдут книги по старому стандарту выйдет новый стандарт. Сппкон гораздо полезнее в этом плане. Хотя чё то самые годные 17-18 год будто.
Алсо:
Накидайте годных лекций с сппкона.
Аноним 01/02/24 Чтв 01:57:34 #435 №3029077 
>>3028921
Пошёл нахуй, псина.

>>3028919
>>3028969
>>3029018
>>3028963
>>3029019
Слава богу, хоть кто-то наконец-то понял что я спрашивал. Почему раньше не могли сказать? Я то думал что он там великий авторитет и имеет прямое отношение к разработке стандартов и прочей хуйни, а он лох.

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

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

>>3029021
А где тогда учить? Всякие васяны и индусы обычно многое тонкости не упоминают в своих видосиках.
Аноним 01/02/24 Чтв 07:33:12 #436 №3029114 
>>3029077
> А где тогда учить?
https://en.cppreference.com/w/
Или хотя бы это, но за качество перевода не знаю:
https://ru.cppreference.com/w/

Кто вообще читает книги по конкретным технологиям, которые меняются каждые несколько лет? Ты вот видел чтоб пидоРасты читали какие-то книги?
Аноним 01/02/24 Чтв 08:30:33 #437 №3029122 
>>3029114
>Кто вообще читает книги по конкретным технологиям
Все нормальные люди. Ты не учишь язык по словарю, ты учишь его по учебнику/репетитору/индусу с Ютуба.
С ЯП/фреймворками принцип схож, просто дополнительно придется ознакамливаться с новыми версиями/стандартами языка. В идеале тоже по какой-то небольшой книге с примерами, но если к тому моменту опыт программирования есть то хватит просто почитать статью какую-то, примеры и самому накидать можно будет.
>которые меняются каждые несколько лет?
Синтаксис плюсов практически не менялся с его появления. if он и в 98 стандарте if.
>Ты вот видел чтоб пидоРасты читали какие-то книги?
Раст учится по растбуку, который, исходя из его названия, книжка. Просто они не отстали в развитии и залили его на халяву в удобное видное для всех место. И обновляют. Но там сильно решают удачные на данный момент решения из-за чего переписывать много не приходится + фанатичность комьюнити. Продаются печатные версии кому так удобнее. Правда надо отметить что книга для людей с опытом. Кто никогда не касался кодинга будет испытывать проблемы с пониманием почти наверняка. После изучения базы можно почитать растономикон который книга про некоторые более сложные вещи которые для десктопа не нужны совсем, весьма хуевую книгу по эмбеддед или туториалы по фреймворкам, по факту, тоже книги.

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

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

Страуструп книгу направил именно на вкатунов так как любит пофилософствовать о том как писать программы правильно. Вкратце пояснил за типы, за безопасный и не очень каст а всё остальное либо дальше будет массивы и указатели у него ближе к концу книги, у Липпмана не смотрел но вроде в начале либо тебе оно не надо. Но вообще Страуструп дружелюбнее. Он растекается мыслями часто отходя от плюсов совсем, но в то же время говорит те вещи которые важны для любого ЯП. Та самая хуйня, о которой индусы и не вспоминают даже не работе.
Аноним 01/02/24 Чтв 08:52:30 #438 №3029131 
>>3029122
> Ты не учишь язык по словарю, ты учишь его по учебнику/репетитору/индусу с Ютуба.
Хуёвая аналогия. Надо сравнивать изучение ЯП по книгам с изучением грамматики языков по детским сказкам.
> Синтаксис плюсов практически не менялся с его появления.
Меняется каждый стандарт. Из примеров для С++20 -> С++23: поменялся синтаксис лямбд, поменялся синтаксис ключевых слов this и auto, изменения с consteval - в том числе и синтаксис if поменялся, поменялся синтаксис индексации массивов. Это я перечислил только то что в голову сходу пришло, там ещё десяток мелких изменений. Синтаксис того что я перечислил от С++23 уже не валиден в С++20, хоть обратная совместимость и есть.
> Страуструп книгу направил именно на вкатунов так как любит пофилософствовать о том как писать программы правильно.
Только вот в его книге, как мы выяснили, код нерабочий.
Аноним 01/02/24 Чтв 08:58:42 #439 №3029137 
>>3029131
>Только вот в его книге, как мы выяснили, код нерабочий.
Так и должно быть. Как еще определить что ты понимаешь код, а не копипастишь как дебил? Тот кто книгу читал, должен код понимать, понимать что он пишет, а значит исправлять ошибки. А если давать рабочий код. дебилы будут его копипастить совершенно ничему не учась, такая книга не имеет смысла.
Аноним 01/02/24 Чтв 09:03:32 #440 №3029148 
>>3029122
последние книжки страуструпа очень плохие
читать стоит "язык с++ третье специальное издание" - изложение в основных главах по стилю (лакончиность, концентированность) напоминает к&r, но 4я часть ("проектирование на с++") выбивается по стилю, там больше рассуждений, возможно не очень удачная часть, которую ему стоило вынести в отдельную статью статьи а не добавлять в книгу, так же по сравнению с k&r не очень удачные дополнения, в то время как "приложение А" k&r я считаю небольшим шедевром в шедевре; самое большое достоинство в книге - это задачки на кодинг в конце каждой главы, задачи офигенные
а самая интересная книга у страуструпа - это "дизайн и эволюция языка"
вообще нужно знать что страутруп последние десятилетия разленился и нихуя не делает и знатно деграднул (типичное поведение удачного европейца кстати, в отличие от англо-саксов которые могут как белки в колесе до смерти крутиться), дохуя лет проработал в морганстенли на символической должности рубая лям баксов в год, а последние года вообще откровенно писал что мол ему больше нравится жрать и бухать в компании своих родственников и друзей чем заниматься чем то полезным
Аноним 01/02/24 Чтв 09:44:10 #441 №3029187 
>>3029148
>ему больше нравится жрать и бухать в компании своих родственников и друзей чем заниматься чем то полезным

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

Учитывая что страуструп уже принёс довольно много обществу, если опускаться на твой уровень суждений ставя пользу в абсолют с чем я не согласен, довольно инфантльно на мой взгляд
Аноним 01/02/24 Чтв 12:42:46 #442 №3029400 
image.png
>>3029187
>Когда взрослеешь - начинаешь понимать, что социальные связи, друзья, прогулки с собакой под приятным солнцем, ужин с друзьями - это жизнь.

До скольки надо повзрослеть?
Аноним 01/02/24 Чтв 13:47:34 #443 №3029585 
>>3029187
бать а напомни кто твое авторитетное мнение по этой теме спрашивал
Аноним 01/02/24 Чтв 14:19:34 #444 №3029681 
>>3029187
>"Когда взрослеешь - начинаешь понимать, что социальные связи, друзья, прогулки с собакой под приятным солнцем, ужин с друзьями - это жизнь."
>вместо жизни сидит на дваче кукарекает
Баба, говорит одно, делает наоборот.
Аноним 01/02/24 Чтв 15:01:16 #445 №3029781 
>>3029400
Хотя бы до возраста страуструпа
Аноним 01/02/24 Чтв 15:28:17 #446 №3029851 
9a6-235302092.jpg
>>3029400
>>3029585
>>3029681
Вы только посмотрите, крестопетухам ИТТ неприятно от того, что их мокнули их петушиной бошкой в реальность.

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

>бать а напомни кто твое авторитетное мнение по этой теме спрашивал
Это двач сынок, ты тут новенький да?


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

Вы бы так не напрягались! А то и до 30 не доживёте. Сходите лучше проветрите мысли и наконец перекатитесь на нормальный язык уже, жизнь корттка!
Аноним 01/02/24 Чтв 15:44:47 #447 №3029884 
>>3029851
>Я понимаю
Ты? Видишь ли, ковырялка, чтобы тебя ебали достойные аноны, это ещё надо заслужить. Проблема в том, что ради удовольствия мало кто хочет тебя ебать - не вышла ни жопой, ни сиськами, ни мордашкой. Остаётся только ебля тебя без смазки, в качестве наказания. На сухую. И даже это лениво. Так съебись уже - ты уныла, ты очень уныла.
Аноним 01/02/24 Чтв 17:00:31 #448 №3030076 
>>3029137
Не должно, он примеры показывает. И в книге никто ничего за то что должно происходить если вместо числа пихать строку не написано. Точнее, по факту сказано что должно быть то же самое что и было в переменной изначально.

>>3029131
>Надо сравнивать изучение ЯП по книгам с изучением грамматики языков по детским сказкам.
Это уже от книги зависит.
>Синтаксис того что я перечислил от С++23 уже не валиден в С++20, хоть обратная совместимость и есть.
Тем не менее, старый ты знать обязан будешь ещё лет 20 а новый сейчас почти никто пока не использует.

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

>>3029400
Надо чтобы жизнь не хуйнёй была как у типичного стереотипного двачерка. Иначе тебе будет нравится долбить хуйню потому что тебе больше нечем заняться в жизни.
Аноним 01/02/24 Чтв 18:19:52 #449 №3030257 
image.png
>>3030076
> потому что тебе больше нечем заняться в жизни.
Тебе сколько лет? А я назову челое число, которое надо вычесть из твоего возраста, чтобы получить мой.

А?
Аноним 01/02/24 Чтв 19:22:55 #450 №3030373 
>>3030257
скуф иди купи сиську пива и расслабься уже
Аноним 01/02/24 Чтв 19:33:38 #451 №3030404 
>>3030373
Согласен, но на сначала тебе по губам поводить.
Аноним 01/02/24 Чтв 19:40:34 #452 №3030413 
>>3030404
Кто о чем, а скуфы все о хуях
Аноним 01/02/24 Чтв 19:47:24 #453 №3030425 
>>3030413
>а скуфы все о хуях
Это точно. Хуй это голова всему. А пизда, она кому кормилица, а кому и обуза.

А хуле пиво-то? Чего бы и не благородного чего? Коньяка там или водочки качественно, а можно и абсентом закинуться.
Аноним 01/02/24 Чтв 21:24:35 #454 №3030598 
Тред скатили в говно. Вы нахуя сюда пришли? Вопросы спрашивать или ныть по поводу синтаксиса? Не нравится - уебывайте в свою динамически типизированную питиновскую парашу, которая работает в 4 раза медленнее плюсов. Или в своё разожраное джава говно. Чел не умеет std::cin использовать и говнит тут, охуеть блядь. Плюсы для умных, с горящими глазами, мы за нулевой оверхед. За вами не будут подтирать сопельки господа зумерки, идите нахуй.
Аноним 01/02/24 Чтв 21:33:55 #455 №3030620 
>>3030598
> Плюсы для умных, с горящими глазами
А хуле умные такое говно сделали?
Хуле у людей с горящими глазами модули из 20 стандарта уже как 4 года это неработающая нечто?
Аноним 01/02/24 Чтв 21:35:52 #456 №3030623 
>>3030598
>Вопросы спрашивать

Охуел? Я сюда пиариться пришёл через ответы на вопросы.
Ты кого вкатуном обозвал?
Аноним 01/02/24 Чтв 21:55:28 #457 №3030655 
>>3030620
>модули
Есть мнение что в интересных проектах они не нужны.
Аноним 01/02/24 Чтв 22:18:35 #458 №3030695 
>>3030598
>Плюсы для умных, с горящими глазами
Двачую, иначе вкатиться не в галеру невозможно, спросят что делает мув и после ответа "мувает" быстренько закончат собес. Если вы не готовы потратить полтора-два года на глубокое изучение языка то даже не начинайте, вы максимум вкатитесь в яндекс перекладывать жсоны на userver-е и будете сидеть на одном грейде по 3 года.
Аноним 01/02/24 Чтв 22:20:23 #459 №3030703 
>>3030620
> неработающая нечто
Почему-то у всех кто их использует всё работает. В том числе у майков std и виндоаое API на модули переведено. За последние годы уже всё вылизано, как в компиляторах, так и в IDE. А хедеры - это реально кал, из-за них до сих пор имеем header-only либы и cpp-файлы в 10к строчек, от которых страница на гитхабе зависает намертво при попытке навигации в коде.
Аноним 01/02/24 Чтв 22:23:24 #460 №3030708 
>>3030695
>и будете сидеть на одном грейде по 3 года.
А как надо? 3 года и синька?
Аноним 01/02/24 Чтв 22:24:12 #461 №3030709 
>>3030703
> Header only
А мне они наоборот нравятся
Аноним 01/02/24 Чтв 22:26:24 #462 №3030712 
>>3030708
У яши система грейдов более гибкая чем джун-мидл-синька если что.
Аноним 01/02/24 Чтв 22:30:01 #463 №3030717 
>>3030712
13 грейд стажер
14-15 грейд - джун
15-16 - мидл
17 - сеня
18 - ведущий разработчик

Что тут более гибкого я не знаю, лол. Такие же стажеры - джуны - мидлы и сеньки.
Аноним 01/02/24 Чтв 22:31:34 #464 №3030719 
>>3030703
>А хедеры - это реально кал
Хидеры это заебись.

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

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

Хуй поймёшь с чем ты борешься.
Аноним 01/02/24 Чтв 22:31:59 #465 №3030720 
>>3030717
Ты же сам промежуточные грейды написал, вот до них и подниматься.
1 год - стажер
1-3 года - джун/премидл
3-5 лет - мидл/пресенька
5+ сенька
В менеджмент по желанию и возможности, или уходить туда где есть грейды повыше типо Staff/Principal
Аноним 01/02/24 Чтв 22:44:48 #466 №3030736 
>>3030719
> Хидеры это заебись.
Из них вечно протекает какое-то говно, инкапсуляция нулевая. Когда несколько зависимостей в одном файле ещё надо ебаться с порядком инклюдов, чтоб из одного не текло в другой и код не ломался. Зачем вся эта ебля, когда можно её не иметь.
> Разве что автосгенерённый.
Ты видимо не видел крупных популярных крестовых проектов на гитхабе.
Вот держи проекты с 50к звёзд, причём никого это не смущает, крестовики с основной массе считают это хорошим кодом:
https://github.com/ggerganov/llama.cpp/blob/master/llama.cpp
https://github.com/ocornut/imgui/blob/master/imgui.cpp
Аноним 01/02/24 Чтв 22:58:04 #467 №3030750 
>>3030712
Я отлично знаю какие там грейды, вопрос не в этом.
Сколько лет по твоему занимает рост от Джуна до мидла, от мидла до сеньки?
Аноним 01/02/24 Чтв 23:06:11 #468 №3030755 
>>3030750
Я же уже расписал. До мидла - 3 года, до сеньки - 5. Это если авераге компанию брать конечно, в нвидии сеньки это 8+ лет опыта, а в гугле сенька с 2-мя годами опыта может быть.
Аноним 01/02/24 Чтв 23:14:05 #469 №3030772 
Подскажите пожалуйста, как собрать проект на linux ?
Аноним 01/02/24 Чтв 23:27:31 #470 №3030789 
>>3030755
Ну вот я и не согласен, что 5 лет это сенька. На мой взгляд это что то между мидлом и сенькой. Поэтому и грейд в 3 года имхо нормально.
Аноним 01/02/24 Чтв 23:29:19 #471 №3030790 
>>3030772
./configure && make
Аноним 01/02/24 Чтв 23:32:58 #472 №3030794 
>>3030790
и
sudo make install
Аноним 01/02/24 Чтв 23:34:17 #473 №3030798 
>>3030794
После инсталла
rm -rf /
Аноним 01/02/24 Чтв 23:37:12 #474 №3030804 
>>3030798
можно и

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

Или как том оно щас называется.
Аноним 01/02/24 Чтв 23:38:56 #475 №3030806 
>>3030798
>>3030804
А потом
wsl --install
Аноним 01/02/24 Чтв 23:39:09 #476 №3030807 
>>3030804
Не знаю, у меня хоть линукс и рабочий ноут, но команд вообще не знаю кроме базы пм мв сп сд греп. И баш немного, чисто рутину снизить.
Аноним 01/02/24 Чтв 23:40:14 #477 №3030809 
>>3030794
Ему же надо только собрать, а не превратить линукс в Slackware, насрав в /usr.
Аноним 01/02/24 Чтв 23:54:56 #478 №3030818 
Адепты языка, который в 2024 веке не умеет в юникод из коробки, нахуй вы дышите?
Аноним 01/02/24 Чтв 23:55:26 #479 №3030820 
>>3030809
>Slackware
А вот животинку нашу не надо обежать.
Slackware rulezzz.
Аноним 01/02/24 Чтв 23:56:16 #480 №3030822 
>>3030818
Кыш отсюда. И не тащи бред.
Аноним 02/02/24 Птн 00:06:49 #481 №3030833 
>>3030818
Плюсы нужны не для написания программ, где нужен юникод. Они нужны, чтобы реализовать этот самый юникод.
Аноним 02/02/24 Птн 00:11:51 #482 №3030839 
>>3030818
>из коробки
Он еще и в нетворкинг без коробки не умеет, тем не менее весь хайлоад на нём живет. Представляю как ты охуеешь когда узнаешь про существование библиотек..
Аноним 02/02/24 Птн 00:53:15 #483 №3030864 
Вопрос Clion-спецам: как там с лицензией? JetBrains прикрыли лавочку для рашки, как теперь работаете? Он ломается или что, а то триальная версия только 1 месяц...
Аноним 02/02/24 Птн 00:57:11 #484 №3030867 
>>3030864
Пиратство.
Аноним 02/02/24 Птн 01:11:22 #485 №3030877 
image.png
>>3012308 (OP)
Захотел наехать на ОПа, мол, зачем ты сюда "китайские мультики" тащишь, мол, тема серьёзная.
Но потом пригляделся к картинке и заметил вот это.
И сразу ничего плохого в "китайских мультках" не вижу. Хорошие мультики.
sage[mailto:sage] Аноним 02/02/24 Птн 01:26:24 #486 №3030883 
>>3030598
В 4 это жавая какая нибудь, а питон поди в 40
sage[mailto:sage] Аноним 02/02/24 Птн 01:28:30 #487 №3030884 
>>3030736
Сейчас бы обоссаный нонейм на имгуи пиздел лол. Вот потека.
Аноним 02/02/24 Птн 01:30:36 #488 №3030890 
>>3030598
Ну так сессии в вузиках закончилась, хеш-таблицы и сортировки сданы, теперь можно повыёбываться, пока каникулы.
Аноним 02/02/24 Птн 01:40:09 #489 №3030899 
>>3030890
> хеш-таблицы
И эту животинку тоже не надо обижать.
std::map конечно хорош, прекрасен и заебат.
Но для кастомного случая так же пишется кастомный хэш и им можно ебать std::map - насколько бы прекрасно не был написан std::map, но реализованная опытными руками хэш-таблица порвёт в клочья std::map по скорости, простоте и эффективности.
Аноним 02/02/24 Птн 01:43:55 #490 №3030901 
че сказать-то хотел
Аноним 02/02/24 Птн 01:48:01 #491 №3030907 
>>3030899
Тогда уж std::unordered_map. В std::map же дерево, а не хеш-таблица.
Аноним 02/02/24 Птн 01:58:52 #492 №3030914 
>>3030864
Летом покупал бандл из решарпера, райдера и еще какого-то дерьма.
через своего человечка в ОАЭ. регистрировал мне аккаунт тоже он, со своего айпи
Аноним 02/02/24 Птн 02:00:58 #493 №3030917 
>>3030907
>unordered_map
Ты прав, а я лоханулся.
Но если самому писать, то можно обогнать по скорости и его. В каких-то частных случаях.
Аноним 02/02/24 Птн 02:12:24 #494 №3030925 
>>3030917
Сегодня весь путь на работу бежал за автобусом. Сэкономил 10 рублей. Завтра побегу за такси — экономия еще больше!!!
Аноним 02/02/24 Птн 02:29:24 #495 №3030937 
>>3030925
It depends.
В общем случае ты прав. Нынче экономить биты и такты не нужно.
Но вот есть люди, которые несчастливы, если не сэкономили ни бит, ни такт - день зря прошёл. И изредка такие проекты тоже бывают. Очень редко, но бывают. И иногда такие люди и такие проекты пересекаются.
Аноним 02/02/24 Птн 02:42:43 #496 №3030941 
>>3030917
Не надо ничего писать. Уже есть флэтмап/пхмап которые ебут стдшную. Ну и на си тоже есть пара быстрых
Аноним 02/02/24 Птн 02:47:18 #497 №3030944 
>>3030941
>Не надо ничего писать.
Тоже верно. Достаточно спиздить годную хэш-функцию, а уж использовать её и школьник сумеет.
Аноним 02/02/24 Птн 07:59:31 #498 №3030997 
Ахуеть, модули уже в симейке поддерживаются?
Аноним 02/02/24 Птн 09:07:17 #499 №3031033 
Есть ли хоть одна причина не делать класс movable?
Аноним 02/02/24 Птн 10:34:49 #500 №3031120 
>>3030818
Это ты про какой язык? Кресты уже с С++11 имеют поддержку юникода в std.
>>3030864
Активатором активируй.
>>3030997
Давно, год точно.
Аноним 02/02/24 Птн 11:16:36 #501 №3031181 
>>3031120
>Это ты про какой язык? Кресты уже с С++11 имеют поддержку юникода в std.
Ага, особенно на винде.
Аноним 02/02/24 Птн 11:23:18 #502 №3031201 
>>3031181
Да и на винде, ты серишь же. С С++11 есть поддержка как виндового UTF-16, так и обычного UTF-8.
Аноним 02/02/24 Птн 11:28:10 #503 №3031210 
>>3031201
Раз я серю, скинь мне код C++, который выводит вот это сообщение в консоль.
Аноним 02/02/24 Птн 11:32:27 #504 №3031214 
>>3031210
А какое отношение имеет консоль к языку?
Аноним 02/02/24 Птн 11:37:39 #505 №3031221 
>>3031210
Какое отношение имеет консоль к С++ и std? Ты серишь переобуваясь на ходу.
Аноним 02/02/24 Птн 12:00:31 #506 №3031242 
1685764229674.png
>>3031210
Под виндой консоль юникод не поддерживает из коробки, а не кресты. Переводишь консоль в режим юникода и пишешь туда.
Аноним 02/02/24 Птн 12:38:31 #507 №3031301 
>>3031242
>#include <Windows.h>
так не честно
Аноним 02/02/24 Птн 12:54:44 #508 №3031314 
>>3031301
>консоль Windows
>так не честно
Ты серишь.
Аноним 02/02/24 Птн 13:23:42 #509 №3031362 
>>3012308 (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, ведь он то как раз и нетривиальный, разве это не значит что нужно указывать информацию именно о нем?
Аноним 02/02/24 Птн 13:37:51 #510 №3031382 
>>3031362
А оно компилируется???
Аноним 02/02/24 Птн 13:40:10 #511 №3031389 
>>3031362
Что непонятного? Для чего указал дефолт, то и конструируется. Два дефолта для юниона нельзя указать. Если не укажешь дефолт для любого мембера - у юниона дефолтный конструктор будет удалён и надо будет инициализировать юнион вручную.
Аноним 02/02/24 Птн 14:10:09 #512 №3031439 
>>3031214
>>3031221
>КАНСОЛЬ ПЛАХАЯ, МАМ, ЕЗЫК ХАРОШИЙ!!!111ЁЁЁ
1) Для теста я использовал ConEmu
2) Все протестированные мной языки - а я специально проверил: Java, Rust, Go, Node.js, Python - не испытали с обеими консолями (стандартный terminal и conemu) никаких проблем

>>3031242
>windows.h
>SetConsoleOutput(65001)
Как дела с переносимостью?
Аноним 02/02/24 Птн 14:11:18 #513 №3031441 
>>3031439
> КАНСОЛЬ ПЛАХАЯ, МАМ, ЕЗЫК ХАРОШИЙ
Консоль не часть языка, консоль часть винды, ты тупостью троллишь?
Аноним 02/02/24 Птн 14:13:31 #514 №3031442 
изображение.png
Сама винда физически не позволяет программисту кодировать весь диапазон юникода.
Аноним 02/02/24 Птн 14:15:54 #515 №3031447 
>>3031441
>Консоль не часть языка, консоль часть винды, ты тупостью троллишь?
Ни у одного другого языка с этой консолью проблем нет, ты жопой читаешь?
Аноним 02/02/24 Птн 14:23:05 #516 №3031454 
>>3031442
UTF8 решает эти проблемы. Да и суррогаты это не так уж страшно, как может показаться.

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

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

Чему можно удивиться, так это насколько неплохо спроектирована графическая оболочка Винды, что "костыли", заложенное несколько десятков лет назад, живут и здравствуют до сих пор.
Аноним 02/02/24 Птн 14:25:51 #517 №3031462 
>>3031454
> Винда начала разрабатываться на Intel 80286

Какая винда? Ядро NT полностью с нуля переписано.
Аноним 02/02/24 Птн 14:28:30 #518 №3031469 
>>3031389
Ты хочешь сказать что дефолтному конструктору юниона достаточно лишь одного инициализированного члена для создания объекта? А когда их уже двое и больше, то он не может выбрать под какой объект создавать, но при этом если все члены тривиальные, то этой проблемы нет

Т.е.

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

m.var2 = n; //теперь var2 активный член
Аноним 02/02/24 Птн 14:32:39 #519 №3031488 
>>3031462
>Какая винда?
2.xx
Насчёт третьей не помню, вроде тоже на 286 запускалась.

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

Например, в Windows 2000 ввели в драйверах управление питанем и старые драйверы отвалились.
Аноним 02/02/24 Птн 15:05:37 #520 №3031617 
1671640932296.png
>>3031439
> Как дела с переносимостью?
С переносимостью куда? Ты сначала просишь сделать под виндой, теперь уже под виндой нельзя, шизоид. Тебе уже написали что это проблема терминала, не умеющего выводить юникод, а не крестов. Ну и даже в сишке можешь написать ifdef _WIN32, никто не запрещает делать только под виндой SetConsoleOutputCP, а на линуксе не использовать это. Либо юзер должен поставить галку пикрилейтед, чтоб консолька по умолчанию работала в UTF-8, но это может сломать легаси софт с ХР, выводящий текст в легаси-кодировках типа Windows-1252.
>>3031442
WINAPI является легаси уже давно. Так же как и поддержка нормального юникода есть с десятки.
Аноним 02/02/24 Птн 15:07:17 #521 №3031627 
>>3031469
> А когда их уже двое и больше
То код не скомпилируется даже. Ты бы хоть свои фантазии проверял на практике.
Аноним 02/02/24 Птн 15:24:08 #522 №3031663 
>>3031439
>Как дела с переносимостью?

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

#ifdef _WIN32
SetConsoleOutput(65001);
#endif

Я на такое не подписывался! Это ужасно!
Аноним 02/02/24 Птн 15:39:38 #523 №3031671 
1694068244580.png
>>3031439
> Как дела с переносимостью?
Держи, даже без вызовов WINAPI, если вдруг у тебя нет windows.h.
Аноним 02/02/24 Птн 16:02:19 #524 №3031717 
>>3031671
вызывать внешнюю команду для таких целей это моветон.
Такой золотой костыль.
Аноним 02/02/24 Птн 16:04:03 #525 №3031719 
изображение.png
>>3031617
>Ты сначала просишь сделать под виндой, теперь уже под виндой нельзя, шизоид.
Можно, просто нужно, чтобы и не под виндой нормально отображалось.

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

>Либо юзер должен поставить галку пикрилейтед, чтоб консолька по умолчанию работала в UTF-8
Чел, блять.
Аноним 02/02/24 Птн 16:06:15 #526 №3031726 
>>3031719
> с этим терминалом
Не с этим. У них свой терминал и накладные расходы соответствующие.
Аноним 02/02/24 Птн 16:08:25 #527 №3031731 
>>3031719
>все остальные языки не испытывают никаких проблем с этим терминалом

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

JFYI
Аноним 02/02/24 Птн 16:19:28 #528 №3031743 
>>3031726
>Не с этим. У них свой терминал и накладные расходы соответствующие.
Что у них там свое, блять? Ты совсем поехавший?

>>3031731
>Все остальные языки неявно вызыват ту самую - SetConsoleOutput(65001);
И только в великом C++ в 2024 веке это нужно делать врукопашную, охуенно. Если там простой вывод юникода в консоль организован таким чрезпиздяным изподвывертом, боюсь представить какие сюрпризы меня ждут при написании чего-то сложнее println("Hello World"). Охуенный язык, программирования, ничего не скажешь.
Аноним 02/02/24 Птн 16:19:57 #529 №3031744 
>>3031719
> все остальные языки не испытывают никаких проблем с этим терминалом
Это какие? Раст в консоль на винде пишет в UTF-16, он как раз не поддерживает нормальный юникод, чмоха.
> Безо всякой ебли с #endif'ами
То что у тебя неявно строки конвертятся или вызывается WINAPI по умолчанию, ещё не значит что твои ЯП умеют в юникод на винде просто так.
Аноним 02/02/24 Птн 16:21:21 #530 №3031748 
>>3031743
> акие сюрпризы меня ждут при написании чего-то сложнее println("Hello World")
Нужно явно указывать перевод строки, иначе следующий вывод "Hello World" прилепится к предыдущему. вообще ужас.
Аноним 02/02/24 Птн 16:22:49 #531 №3031749 
>>3031743
> врукопашную
Заебись низкоуровневый язык, дёргающий всё подряд из WINAPI даже не спрашивая тебя. С таким подходом можно и на питоне писать, он за тебя всё сделает.
Аноним 02/02/24 Птн 16:36:19 #532 №3031763 
1676318868985.png
>>3031743
> Охуенный язык, программирования, ничего не скажешь.
А теперь ор для всего треда - как в расте выводится юникод в консольку винды. Скрин из std пидораста.
Аноним 02/02/24 Птн 16:57:06 #533 №3031807 
>>3031447
Покажи вывод скомпилированных прог на питоне и жаве
Аноним 02/02/24 Птн 17:05:27 #534 №3031819 
>>3031763
Что низкоуровнего в printf? Это же кластерфак мегатонн говна, высочайшего уровня, почти язык программирования со своим синтаксисом. Если нужен низкий уровень, для него есть соответствующие функции, но даже они - обертки для конкретных осей, так что если надо действительно чисто, юзаешь апи оси напрямую. Си позволяют всё, программисту доступны любые уровни, язык за тебя ничего не решает. как в скриптоговне для макак тупых, которые ненавидят думать, вот и привыкли, что за них дядя решает и рвутся от сей где надо своей головой думать и принимать решения имея множественный выбор вариантов.
Аноним 02/02/24 Птн 17:09:13 #535 №3031833 
1594753309015.png
>>3031743
> в 2024
В 2024 не нужно, если у тебя С++23 есть. Он как раз за тебя сделает всё.
Аноним 02/02/24 Птн 17:19:02 #536 №3031858 
>>3031819
>Что низкоуровнего в printf? Это же кластерфак мегатонн говна, высочайшего уровня, почти язык программирования со своим синтаксисом.

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

Ты часом не Дон Кихот, который воюет с ветряными мельницами?
Аноним 02/02/24 Птн 17:38:01 #537 №3031893 
Кто-то сталкивался с такой проблемой: при установке Qt на Linux отсутствуют комплекты для сборки проектов? Устанавливаю командами sudo apt install qtcreator; sudo apt-get install qt5-doc qtbase5-example qtbase5-doc-html, Linux Mint, если что
sage[mailto:sage] Аноним 02/02/24 Птн 17:50:18 #538 №3031915 
>>3031663
>>3031439
>>3031442
>>3031439
>>3031210
>>3031743
Грязноштанных детишек полон тред.
Аноним 02/02/24 Птн 17:54:10 #539 №3031918 
>>3031915
Пиздуй нахуй, говно.
Аноним 02/02/24 Птн 19:03:08 #540 №3031993 
>>3031833
У меня как раз 2023 стандарт, MSVC вся хуйня
Аноним 02/02/24 Птн 20:54:46 #541 №3032165 
>>3030899
проиграл с тебя, опытный чушок, что ты там напишешь своими потными, волосатыми, заплывшими жиром ручонками? А уж если и напишешь - сразу кидай пулреквест в стдлиб
Аноним 02/02/24 Птн 21:20:30 #542 №3032222 
>>3032165
>сразу кидай пулреквест в стдлиб
Тупая пизда, пущай в твоей наплечной параше, именуемой в народе головой, возникнет хоть одна светлая мысль, а именно - в stdlib/stl не нужны кастомные решения под конкретную задачу.

Заруби себе это на носу!
Аноним 02/02/24 Птн 23:28:23 #543 №3032395 
Подскажите пожалуйста, как засунуть в сборку картинки для проекта ?
Аноним 03/02/24 Суб 00:20:16 #544 №3032459 
>>3032395
>Подскажите пожалуйста, как засунуть в сборку картинки для проекта ?

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

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

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

Возможно что пока топтал этот ответ, кто-то уже по-красоте расписал.
Аноним 03/02/24 Суб 07:54:10 #545 №3032602 
Книга "Эффективный и современный с++" заменяет "Эффективное использование с++" или их надо обе читать? Последнюю на первых страницах гугла удалили и я не знаю где ее скачать (В шапке тоже нету)
Аноним 03/02/24 Суб 08:12:52 #546 №3032605 
>>3031763
>раст
любая ф-я выполняющая действительно полезную работу, на 3-4 строке: unsafe {
и пошли говнякать
как же я проигрываю с промытых фанатиков
Аноним 03/02/24 Суб 08:53:29 #547 №3032615 
>>3032605
сейчас бы в плюсо треде ансейф коду удивляться

ладно бы еще какие то жаберы ныли
Аноним 03/02/24 Суб 11:20:36 #548 №3032680 
>>3032615
Я лично удивляюсь тому, как растеры называют это безопасным кодом.
Аноним 03/02/24 Суб 11:33:56 #549 №3032689 
>>3032680
Как будто ты свой код безопасным не называешь?
Аноним 03/02/24 Суб 11:35:25 #550 №3032690 
>>3032689
Конечно не называю, ведь плюсовики не умеют складывать...
Аноним 03/02/24 Суб 11:36:15 #551 №3032693 
Насколько сложно добавить в плюсы возможность возвращать из функции несколько аргументов сразу?
Какие подводные в такой фиче могут быть?
Аноним 03/02/24 Суб 11:37:10 #552 №3032694 
>>3032693
std::tuple и structural binding
Аноним 03/02/24 Суб 11:55:05 #553 №3032708 
>>3032694
> std::tuple
ну я имею ввиду менее bloat способ возвращать аргументы
да и разве если я стандартную либу вырублю tuple останется?
sage[mailto:sage] Аноним 03/02/24 Суб 12:13:55 #554 №3032729 
>>3032708
Ты совмем отупел со своипи плюсами? Делаешь нужную структуру, функция возвращает структуру . Все.
Аноним 03/02/24 Суб 12:19:44 #555 №3032736 
>>3032729
И под каждую функцию фигачить структуру, которая ещё будет юзеру протекать? Так ещё юзеру каждое поле из структуры доставать и дожить туда куда ему надо?
Аноним 03/02/24 Суб 12:20:44 #556 №3032738 
>>3032736
В чем проблема стандартной либы, не понял
Аноним 03/02/24 Суб 12:22:27 #557 №3032740 
>>3032738
В том что в некоторых случаях ее использовать нельзя и в проектах ее вырубают, а фичу все равно хочется
Да и странно что фича зависит почему то от состояния стандартной либы
Аноним 03/02/24 Суб 12:27:03 #558 №3032746 
>>3032740
Я вас выслушал и могу вынести вам диагноз:
Преждевременная шизофрения.
Аноним 03/02/24 Суб 12:31:02 #559 №3032748 
>>3032708
Проиграл с этого оладушка.

Стандартная либа это часть языка, что ты там отключать собрался? Более того, стандартные заголовки могут не быть физическими файлами на диске.
Аноним 03/02/24 Суб 12:43:06 #560 №3032758 
>>3032748
> что ты там отключать собрался
Стандартную библиотеку
> Более того, стандартные заголовки могут не быть физическими файлами на диске.
И что из этого следует?

std::tuple у тебя без стдлиб работает или нет?
если нет, то зачем ты мне вообще это написал?
Аноним 03/02/24 Суб 12:52:50 #561 №3032768 
1664088624354.png
>>3032693
Пикрилейтед.
>>3032758
Если напишешь свою стандартную либу, то конечно будет работать. Синтаксис не поменяется от отсутствия стандартной библиотеки. Но тот кто переписывает std - конченые дегенераты, потому что std даже без ОС работает, нет ни одной причины почему её нельзя использовать, кроме того что ты даун.
Аноним 03/02/24 Суб 12:54:42 #562 №3032772 
>>3032768
Похоже этот чел в нии работает, знаю пару таких, где СТД запрещен.
Аноним 03/02/24 Суб 12:57:16 #563 №3032774 
>>3032768
> потому что std даже без ОС работает
cout у тебя как без ос работать будет, а vector?

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

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

> Пикрилейтед.
Ты возвращаешь одно значение
Аноним 03/02/24 Суб 13:14:12 #564 №3032788 
>>3032774
Основной функционал std работает без ОС. И представь себе, динамические аллокации из std будут работать без ОС. В линуксе динамические аллокации предоставляет libc, а не линукс.
> cout у тебя как без ос работать будет
Как обычно, в микроконтроллерах в качестве stdout будет вступать JTAG, в него и будет писать cout.
> а vector?
Тем более нет никаких проблем.
> Ты возвращаешь одно значение
Ты совсем дегенерат, да?
Аноним 03/02/24 Суб 13:19:59 #565 №3032792 
>>3032758
>И что из этого следует?
То что некоторые/часть стандартных заголовков это не просто код в файлике, а часть самого языка.
>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).

>>3032758
>std::tuple у тебя без стдлиб работает или нет?
Вопрос бессмысленный. Переформулирую: работают ли части языка, если мы их выбросили? Потому-то я с тебя и проиграл, оладушек. Можешь, кстати, еще объяснить как ты собрался либу стандартную отключить, тоже покекаем.
Аноним 03/02/24 Суб 13:23:33 #566 №3032796 
Если что напоминаю, что вопрос заключался в том сложно ли такую фичу реализовать, а не нужен/не нужен тапл

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

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

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

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

> Можешь, кстати, еще объяснить как ты собрался либу стандартную отключить, тоже покекаем.
Не линкуешься с ней и все
Аноним 03/02/24 Суб 13:25:28 #567 №3032798 
Вы наверное удивитесь, но и С можно пользоваться не используя libc
Аноним 03/02/24 Суб 13:27:23 #568 №3032799 
>>3032796
> Что прости?
Для использования libc тебе не нужен линукс, деб.
> У тебя из функции возвращается одно значение, что тут не понятного?
Ты синтаксис крестов не знаешь? auto [a, b, c] - объявление трёх переменных.
> Давай я тебе дам голую железку без ос да, даже без линукса, а ты попробуешь на нем вектором воспользоваться
Легко, если под микроконтроллер написана std с его поддержкой. На Ардуино вектор работает, ты бы не позорился тут.
Аноним 03/02/24 Суб 13:28:41 #569 №3032800 
>>3032746
Похоже на то.
>>3032740
>>3032736
Протекает твоя шиза.
Аноним 03/02/24 Суб 13:30:11 #570 №3032801 
>>3032799
> Для использования libc тебе не нужен линукс
А я говорил что это не так?

> auto [a, b, c] - объявление трёх переменных.
Как твои переменные меняют факт того что сигнатура твоей функции возвращает одно значение

> если под микроконтроллер написана std с его поддержкой
А если не написан?
Аноним 03/02/24 Суб 13:34:18 #571 №3032806 
1645744659094.png
>>3032801
> сигнатура твоей функции возвращает одно значение
А это что, блять? Дай будем учить тебя считать до трёх, как карапуза.
Аноним 03/02/24 Суб 13:36:05 #572 №3032807 
>>3032806
Это типы которыми ты параматризуешь другой тип
Функция у тебя возвращает одно значение типа: std::tuple<int, int, int>
Что собственно в сигнатура и написано, просто ты потом этот тапл распакуешь на несколько значений
Аноним 03/02/24 Суб 13:39:44 #573 №3032809 
>>3032807
Ты реально траллишь тупостью? В любом языке так же будет, тапл - это кусок памяти с несколькими значениями. Как таких дебилов в НИИ держат?
Аноним 03/02/24 Суб 13:45:29 #574 №3032814 
>>3032768
>Пикрилейтед.

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

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

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

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

В main выделяется структура с нужными полями и дальше указатель на неё гонится хоть до 1000-го уровня вложенности.
Функции чего-то там читают/заполняют в полях структуры.
Экономия выходит за счёт минимазии количества параметров, которые кладутся на стек при каждом вызове функции.
Аноним 03/02/24 Суб 13:45:57 #575 №3032815 
>>3032796
Как язык может быть языком, если компилятор плюсов написан на плюсах?
А на чем блять ещё должна быть написана стандартная библиотека? На святом духе?
Аноним 03/02/24 Суб 13:47:21 #576 №3032816 
>>3032809
Во первых для возвращения нескольких значений тебе тапл как структура данных в языке не необходима
Во вторых
> В любом языке так же будет, тапл
Только он не будет частью стандартной библиотеки, а типом встроенный в сам язык
Аноним 03/02/24 Суб 13:47:38 #577 №3032817 
>>3032807
Делай ассемблерную вставку, клади возвращаемые значения в регистры откуда будешь читать.
Либо принимай по ссылке значения для возврата и ничего не возвращай.
Аноним 03/02/24 Суб 13:47:41 #578 №3032818 
>>3032798
>но и С можно пользоваться не используя libc
И С++ тоже. -nostdlib
При этом классическая stl отваливается, но можно найти в Сети её суррогаты, которым OS не нужна.
Аноним 03/02/24 Суб 13:48:23 #579 №3032819 
>>3032815
> Как язык может быть языком, если компилятор плюсов написан на плюсах?
Поэтому компилятор и не часть языка
Аноним 03/02/24 Суб 13:49:18 #580 №3032820 
>>3032819
Я тебя понял, съеби из треда пожалуйста
Аноним 03/02/24 Суб 13:50:16 #581 №3032822 
>>3032820
А то что? Заплачешь?
Аноним 03/02/24 Суб 13:52:08 #582 №3032826 
>>3032822
Ты отпугиваешь адекватных новичков.
Зайдет зелёный в тред, а тут шиз стандартную библиотеку отключает.
Аноним 03/02/24 Суб 13:53:16 #583 №3032828 
>>3032814
> В main выделяется структура с нужными полями и дальше указатель на неё гонится хоть до 1000-го уровня вложенности.
Сколько там будет кэшмиссов из-за того что структура где-то в начале стека валяется?
> Экономия выходит
Нет никакой экономии, в тапле значения лежат радом друг с другом, а в [a, b, c] три ссылки на них. По факту они будут в регистрах лежать, если это примитивные типы, вообще без записи на стек.
Аноним 03/02/24 Суб 13:54:33 #584 №3032829 
>>3032828
> Ссылки
Вообще не факт что ссылки, зависит от способа создания. Мейк тапл делает копии. Для явных ссылко либо студ реф/креф, либо форвард тапл.
Аноним 03/02/24 Суб 13:57:31 #585 №3032830 
>>3032816
> Только он не будет частью стандартной библиотеки, а типом встроенный в сам язык
В крестах он тоже будет работать, но как просто указатель на кусок памяти. Синтаксически будет всё так же как с таплом, но тип другой и нет безопасной работы со значениями.
Аноним 03/02/24 Суб 14:02:01 #586 №3032836 
>>3032829
Про copy elision слышал? Это всё не важно, оно всё равно будет перемещаться. А то что при создании тапла надо копировать что-то - тут уж без вариантов, как ты ещё значения рядом в памяти положишь без копирования. На выходе всё равно получишь кусок памяти и ссылки на значения в ней.
Аноним 03/02/24 Суб 14:08:51 #587 №3032844 
>>3032836
Я тебя не так понял.
Аноним 03/02/24 Суб 14:11:44 #588 №3032850 
>>3032826
адекватных таких как ты?)
Аноним 03/02/24 Суб 14:20:59 #589 №3032862 
>>3032850
Меня такой шизой не отпугнешь, я читал кишки stl'я.
Аноним 03/02/24 Суб 14:28:44 #590 №3032871 
> Стандартная либа это часть языка
> std даже без ОС работает
Весь эмбедед вышел из треда
Аноним 03/02/24 Суб 14:32:15 #591 №3032876 
чче происходит наху
Аноним 03/02/24 Суб 14:33:56 #592 №3032878 
>>3032876
Два студента посрались опять
sage[mailto:sage] Аноним 03/02/24 Суб 16:46:39 #593 №3033030 
Даже отвечать этим малолетним дибилам противно.
Аноним 03/02/24 Суб 17:00:53 #594 №3033045 
>>3016027
Ты хотя бы поясни чем вызвана такая реакция?

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

Мимодругойанон.
Аноним 03/02/24 Суб 17:09:26 #595 №3033057 
>>3033045
Вкатуны вообще могут объяснить зачем читать научную фантастику по мотивам приключений страусов, а не cppreference? Я ещё понимаю стандарт тяжело читать, он написал своеобразно чтоб как можно меньше двусмысленности в тексте было, но cppreference сильно проще же. Просто сверху-вниз по разделам читаешь и всё. Да, там многое пропускают из того что в стандарте написано, но как минимум не будет засерания башки высерами книгописак. Даже перевод есть какой-то, если совсем с английским плохо.
Аноним 03/02/24 Суб 17:18:09 #596 №3033075 
17062499156450.webm
>>3033057
> учить язык по справочнику
Аноним 03/02/24 Суб 22:12:57 #597 №3033519 
>>3032828
>Сколько там будет кэшмиссов из-за того что структура где-то в начале стека валяется?

Приблизительно ноль. В ТLB ззастолибится. Если переключений контекста не много, то кэшмисс вообще можно не рассматривать.
А вот если процессов много и они борятся за процессорное время, тогда твой аргумент принимается.
Аноним 03/02/24 Суб 23:39:19 #598 №3033585 
>>3033075
Приблизительно так и выучил английский - по хелпу TurboC. Не шутка.
Аноним 04/02/24 Вск 06:18:21 #599 №3033782 
>>3033057
На cppreference нет аниме-шлюх. Не шутка.
Аноним 04/02/24 Вск 06:50:45 #600 №3033789 
>>3033782
Есть.
Аноним 04/02/24 Вск 07:08:26 #601 №3033794 
>>3033585

Я по книжке по GTK когда то вкатывался в инглиш
Аноним 04/02/24 Вск 07:29:45 #602 №3033799 
2024-02-0411-21-43.png
Двачик. Не совсем по теме треда, но может кто сталкивался.
Есть один проектик на Qt, который собираю на андроид. Раньше всё было ок, но в один прекрасный момент компиляция вместо пяти минут стала занимать 30. А всё из-за того, что clang стартует и секунд по 20-30 чего-то ждёт (на скрине как это выглядит). А потом только начинает работать. На другом компе всё ок
Пытался на другой диск сам проект уносить и ndk, но всё равно картина схожая. При этом студия visual studio собирает так же резво, как и всегда

Может у кого-нибудь будут годные советы или идеи, что может быть не так
Аноним 04/02/24 Вск 07:39:38 #603 №3033802 
>>3033799
Количество потоков в ниндзе пробовал уменьшить?
Аноним 04/02/24 Вск 08:04:02 #604 №3033804 
>>3033802
Проц 24 поточный, поэтому не должно быть проблемой. Но уменьшил до 5 - та же хрень. Точно так же он стартует, несколько секунд ждёт (ну, 20-30 я загнул, но секунд до 10 он ждёт) и потом начинает работать
Аноним 04/02/24 Вск 08:12:47 #605 №3033805 
>>3033045
>Тоже начал вкатываться в айти, в унике проходят с++
Тогда читаешь К&R, обязательно выполняешь все упражнения, обязательно читаешь приложение А и читаешь его до тех пор пока не поймешь.
Далее уже читаешь учебники по структурам и алгоритмам. И прорешиваешь 200-300 алгоритмических задач на любом из контестных сайтов.
Это лучшее что ты можешь сделать для начала своей будущей карьеры.
И второй лучший совет который могу дать - это НЕ изучать с++ в универе, а уже нам ближе к старшим курсам выбрать себе другое направление (хотя бы ту же явку) и специализироваться на нем.
Аноним 04/02/24 Вск 08:39:58 #606 №3033809 
image.png
>>3033804
>Проц 24 поточный, поэтому не должно быть проблемой.
Аноним 04/02/24 Вск 09:59:55 #607 №3033832 
>>3033805
> НЕ изучать с++ в универе
> выбрать себе другое направление (хотя бы ту же явку)

Шило на мыло
Аноним 04/02/24 Вск 10:28:46 #608 №3033848 
>>3033805
> Тогда читаешь К&R

Издательство какого года самый норм?
Аноним 04/02/24 Вск 11:19:42 #609 №3033878 
>>3033848
second edition
Аноним 04/02/24 Вск 13:45:25 #610 №3033996 
>>3033805
Твои советы неплохи, но K&R style написания функций... Его хоть поддерживают современные компиляторы?
Moonlover 04/02/24 Вск 13:49:27 #611 №3033999 
А от чего тред не перекатываем? Не настоялся ещё или есть более веские причины?
Аноним 04/02/24 Вск 14:16:22 #612 №3034047 
>>3033999
Любитель Мун, тред перекатывается после 1000 постов
Чтобы всякие шизы в тред не заходили
как тот анон выше, который и тут, и в расто треде успевает настрать
Аноним 04/02/24 Вск 14:31:24 #613 №3034070 
не верю что это реально помогает от шизов
разве только не очень целеустремленных
Аноним 04/02/24 Вск 15:31:41 #614 №3034200 
>>3034070
Этот тред тому подтверждение
Аноним 04/02/24 Вск 19:22:41 #615 №3034668 
>>3034070
Как видишь срачи с крестовиками у пидорастов, а не у нас. Значит всё нормально.
Аноним 04/02/24 Вск 22:00:13 #616 №3034953 
>>3033996
>K&R style написания функций... Его хоть поддерживают современные компиляторы?
В годболт запихай. Было бы странно, если бы хотя бы гцц и вц не поддердивали этих зубров.
Аноним 05/02/24 Пнд 02:24:34 #617 №3035360 
>>3033996
> Его хоть поддерживают современные компиляторы?

С чего бы это они вдруг не поддерживали?
Аноним 05/02/24 Пнд 02:42:03 #618 №3035373 
Аннотация 2024-02-05 024042.jpg
Люди, где это настраивается чтобы в VSCode терминале аутпут выглядел по человечески не могу найти?
Аноним 05/02/24 Пнд 05:44:04 #619 №3035438 
>>3035373
Выбери как стандартный терминал powershell
Аноним 05/02/24 Пнд 07:46:55 #620 №3035480 
>>3035373
powershell и стоит
Аноним 05/02/24 Пнд 08:51:30 #621 №3035553 
>>3033848
Только оригинальные рукописи Кернигана и Риччи.
Аноним 05/02/24 Пнд 15:17:52 #622 №3035912 
>>3035373
SetConsoleOutputCP(65001);

cout << "Это utf8"
Аноним 05/02/24 Пнд 16:28:52 #623 №3036020 
>>3035912
>"Это utf8"
Дебил.
Аноним 05/02/24 Пнд 19:21:46 #624 №3036418 
>>3035373
Шел 24 год
Аноним 05/02/24 Пнд 19:28:08 #625 №3036436 
>>3036020
Кто?
Аноним 05/02/24 Пнд 21:13:33 #626 №3036620 
image.png
Так, парни, это снова я. Мне срочно нужна помощь. Дурачок на мне попытался поставить на C++ одну стороннюю библиотеку. Попытки не увенчались успехом, я пробовал различные решения, но ничего не помогло. А теперь к сути. Одним из моих решений (не спрашивайте зачем) была переустановка компилятора gcc. Однако теперь, программы на вс коде отказываются компилироваться, выбрасывая ошибку на пике1. Ошибка гуглится, но единственное решение что я нашёл требует создания конфигурационных жсон файлов вручную, каждый раз для каждого нового проекта. Меня это не устраивает, т.к. раньше все необходимое создавалось при первом запуске проекта. Сталкивался ли кто-нибудь с таким? То ли у меня ручки кривые, то ли ещё что, но C++ на вс коде порой кривовато себя ведёт. Стоит ли задуматься о перекате в другой редактор типа вимов или эмаксов, или что у вас там сейчас популярно? (студию не предлагать). Заранее спасибо за ответы.
Аноним 05/02/24 Пнд 21:33:09 #627 №3036680 
>>3036620
> gcc под виндой в vs code
Шутка дня, не иначе. Поставь CLion, он за тебя сделает всё, даже тупой разберётся куда тыкать в окне настройки тулчейна. А на вскоде гугли как настраивать это говно, можешь найдёшь истории таких же пердоль, я не удивлён что там присутствует ебля под виндой с чем-то отличным от msvc.
Аноним 05/02/24 Пнд 21:34:37 #628 №3036687 
>>3036620
Чо это у тебя пробел в расширении - .ex e
????
Аноним 05/02/24 Пнд 21:47:13 #629 №3036723 
1701220985739.png
>>3036687
Это не пробел, а шрифты у него на микромониторе съезжают, видишь там нет промежутка между символами, е желтит слева.
sage[mailto:sage] Аноним 05/02/24 Пнд 23:21:23 #630 №3036904 
>>3036620
Ты не только не программист, ты даже программу на винду установить не в состоянии. Тупизна уровня бабы сраки.
вангую не те пути в пас прописались после переустановки
Аноним 05/02/24 Пнд 23:55:46 #631 №3036965 
>>3036680
>Шутка дня, не иначе
Для вас может быть и шутка. А вот я действительно не знал где ещё можно удобно работать. Изначально сидел на студии, но в конечном итоге она надоела своей медлительностью. А про какие-то аналоги в виде CLion я не слышал.
>>3036904
Разве я сказал, что являюсь профессиональным программистом? Я скорее любитель, и не собираюсь отбирать у тебя хлеб, если ты так об этом беспокоишься. А что касается твоего совета, то ты в принципе оказался прав. Я забыл добавить второй путь до папки с dgb. Теперь всё работает.
Всем спасибо за советы и предположения.
Аноним 05/02/24 Пнд 23:57:33 #632 №3036967 
>>3036965
*gdb
Уже совсем сонный сижу
Аноним 06/02/24 Втр 00:02:59 #633 №3036981 
1690152789080415.jpg
А почему только у крестов аниме на оп-пике? Единственный нормальный язык, что ли?
Аноним 06/02/24 Втр 00:08:34 #634 №3036989 
>>3036965
>но в конечном итоге она надоела своей медлительностью
Студияя и медлительность? Что у тебя за железо? Сколько памяти?
У меня ничего не тормозит.
Аноним 06/02/24 Втр 00:29:02 #635 №3037027 
>>3036989
Немного неправильно выразился. По какой-то причине у меня долго прогружаются стартовый экран студии, меню выбора шаблона и подготовка проекта. Всё это обычно занимает 1-2 минуты. Также крайне редко бывают 1-2 секундные прогрузки во время работы, но это уже мелочи. Железо: i5-8400, 16 Гб, 1060 6gb.
Аноним 06/02/24 Втр 00:42:51 #636 №3037038 
>>3037027
>Железо: i5-8400, 16 Гб,
Не должно тормозить на таком железе. Что-то тут не то.
Аноним 06/02/24 Втр 01:59:12 #637 №3037096 
Аннотация 2024-02-06 015540.jpg
Аннотация 2024-02-06 015636.jpg
>>3035912
>>3036418
>>3035438

Короч, если кто нибудь сюда с таким же вопросом зайдёт, то пусть либо в настройках язык винды меняет, а если не хочет сидеть на англоязычном интерфейсе, то пусть язык меняет там как на пикрил
Аноним 06/02/24 Втр 02:55:05 #638 №3037119 
image.png
>>3037096
Это просто феерический пиздец.
Ты программист или эникейщик?
Ты кому эти советы принёс?
Что ты вообще в этом треде делаешь?
Аноним 06/02/24 Втр 03:29:46 #639 №3037130 
16352739811710.png
>>3036981
не единственный
Аноним 06/02/24 Втр 03:36:46 #640 №3037131 
Почему можно как параметр функции указать int p[], но нельзя int p[][] без указания размеров столбцов? Хочется понять логику такого поведения
Аноним 06/02/24 Втр 04:13:19 #641 №3037138 
Теперь в растотреде пожар, лол.
Аноним 06/02/24 Втр 05:11:01 #642 №3037144 
>>3037138
Вот бы вас в один загон отправить, чтобы ни в этом ни в том треде не срали
Аноним 06/02/24 Втр 05:16:34 #643 №3037145 
>>3037144
Кого "вас", шиз?
Аноним 06/02/24 Втр 05:18:38 #644 №3037147 
>>3037145
В первую очередь тебя
Аноним 06/02/24 Втр 05:59:20 #645 №3037150 
123.jpg
Анон, помоги разобраться, как мне грёбанный хеллоуворлд откомпилировать в VSCode, делаю всё по официальной инструкции https://code.visualstudio.com/docs/cpp/config-msvc, а он мне мозг ебет, из консоли cl hello.c компилирует нормально, как эту залупу настроить правильно, это ж вроде самый популярный редактор как-никак, почему так?
Аноним 06/02/24 Втр 06:07:15 #646 №3037151 
>>3037150
Прочитай внимательно что тебе программа пишет, если не знаешь английский то используй переводчик

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

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

> это ж вроде самый популярный редактор как-никак
Не для плюсов
Аноним 06/02/24 Втр 06:08:55 #647 №3037153 
Про экзешник забей, я слепой
Аноним 06/02/24 Втр 06:21:11 #648 №3037155 
>>3037151

Короч отбой нахой, ему амперсанд не понравился в названии пути (k&r), мне компилятор об этом сообщил только тогда когда я код в tasks.json заменил на тот, что у них в мануале
Аноним 06/02/24 Втр 06:24:33 #649 №3037158 
>>3037151
> Не для плюсов

Но хз, я в гайдах постоянно вижу что его юзают, а какой тогда самый популярный? Мне так чисто, из любопытства, я все равно на нем останусь, вернее не только на нем, я еще студию осваиваю.
Аноним 06/02/24 Втр 06:32:42 #650 №3037159 
>>3037158
> Но хз, я в гайдах постоянно вижу что его юзают, а какой тогда самый популярный?
Студия/Clion
Аноним 06/02/24 Втр 06:42:10 #651 №3037162 
>>3037159
> Студия/Clion

Ну VSCode я по любому держать буду, мне еще питончики всякие понадобятся, джаваскрипты и всё такоё, а что касается IDE, я сейчас пока только вкатываюсь, мне другие среды будут только лишним гемороем, не отрицаю, что они вероятно могут быть лучше и удобнее, но считаю, что надо исходить из того, что более популярно в начале пути, по чем быстрее и вероятнее инфу найти когда какая нибудь запара и непонятка случается
Аноним 06/02/24 Втр 07:09:28 #652 №3037171 
>>3037162
> надо исходить из того, что более популярно в начале пути, по чем быстрее и вероятнее инфу найти когда какая нибудь запара и непонятка случается
Студия.
Аноним 06/02/24 Втр 07:18:14 #653 №3037174 
>>3037171
Так я же студию и юзаю по мимо вскода, выше написал >>3037158
Аноним 06/02/24 Втр 08:25:10 #654 №3037192 
>>3037147
Вообще не понял причины твоего возбуждения.
Аноним 06/02/24 Втр 10:19:13 #655 №3037270 
Анон, а sln файл нельзя конвертнуть в список команд консольных какие выполняются при компиляции и линковки проекта, ну или makefile на худой конец конвертнуть?
Аноним 06/02/24 Втр 10:20:55 #656 №3037271 
>>3037270
Да сразу через CMake сделай и все, чего париться? Про конвертацию хз
Аноним 06/02/24 Втр 11:08:28 #657 №3037306 
>>3037271

Та мне просто интересно посмотреть какие команды выполняются под капотом, якобы они как будто печатались прямиком в консоль
Аноним 06/02/24 Втр 11:38:20 #658 №3037320 
>>3037131
>Почему можно как параметр функции указать int p[], но нельзя int p[][] без указания размеров столбцов? Хочется понять логику такого поведения

int p[] - по сути указатель на первый элемент массива.
int p[][] - хуй знает что. Можно было бы сказать что это массив указателей, но нельзя. Потому ччто двухмерный массив в мамяти это просто последовательность элементов. Это просто логическое разделение на строки и столбцы.
Аноним 06/02/24 Втр 11:40:04 #659 №3037322 
>>3037270
> а sln файл нельзя конвертнуть
sln нелья, а файл проекта можно.
Moonlover 06/02/24 Втр 11:43:25 #660 №3037328 
Ну что, ребят, с унынием констатирую факт что "дедов", пишущих на С++, в этом треде маловато будет. Обсуждания какие-то поверхностные, вопросы не отвечаются или отвечаются херово.

Печально это.
Аноним 06/02/24 Втр 11:43:46 #661 №3037329 
>>3037131
При передаче в функцию массив декеится в указатель на тип массива , int p[] становится int star p.
При двойном массиве p[][] данные идут последовательно, но у тебя неизвестен размер внутреннего массива, поэтому невозможна адресная арифметика, и для нормальной работы компилятора надо его указать: например p[][10] сдекеится на указатель на массивы по 10 интов.
Аноним 06/02/24 Втр 11:46:11 #662 №3037335 
Кстати, как decay официально на русский переводится?
Аноним 06/02/24 Втр 12:05:48 #663 №3037368 
>>3037322
А каким образом анон, чет я внятного ниче нагуглить по теме не нашел?
Аноним 06/02/24 Втр 12:06:08 #664 №3037370 
Мы проблему с разрывами будем решать или нет?
Аноним 06/02/24 Втр 12:29:22 #665 №3037410 
>>3037368
Открой его (файл проекта) в редакторе и посмотри.
И .sln тоже посмотри, чтобы убедиться что внутри его только отсылки к проектам.

Далее. Посмотреть на процесс компиляции можно окне Output. А именно - компиляция каждого изменённого файла, а затем их линковка.
Аноним 06/02/24 Втр 12:31:04 #666 №3037413 
>>3037328
ну хочешь смешное почитать скину
https://ledas.com/post/857-how-to-hack-c-with-templates-and-friends/
Аноним 06/02/24 Втр 12:38:08 #667 №3037428 
image.png
>>3037335
>официально
Если ты про array decay, то это сленг.
Аноним 06/02/24 Втр 12:43:21 #668 №3037431 
>>3037370
слишком сложно
лучшие умы передовых нии годами бились над этой задачей
Аноним 06/02/24 Втр 13:29:30 #669 №3037508 
>>3037328
Мне просто лень тут сидеть, стабильно одна студентота спрашивающая как очистить вектор. Если хочешь нормальных дискуссий заходи в @ProCxx в телеге.
Аноним 06/02/24 Втр 13:34:43 #670 №3037516 
image.png
>>3037410
> Посмотреть на процесс компиляции можно окне Output.

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

$ gcc -static myfile.c -L/user/local/math -lmath -o execfile
Аноним 06/02/24 Втр 13:44:31 #671 №3037543 
>>3037516
В настройках свойств проекта, у компилятора и линкера есть страница "командная строка".
Аноним 06/02/24 Втр 13:53:13 #672 №3037559 
Аннотация 2024-02-06 135221.jpg
Аннотация 2024-02-06 135247.jpg
>>3037543

Вот эти что ли?
Аноним 06/02/24 Втр 14:03:31 #673 №3037564 
>>3037559
А какие еще?
Аноним 06/02/24 Втр 14:15:33 #674 №3037570 
>>3037564

Так в них пусто
Аноним 06/02/24 Втр 15:41:39 #675 №3037656 
>>3037570
Если не умеешь читать, да, пусто, в тупой башке.
Аноним 06/02/24 Втр 15:49:22 #676 №3037663 
>>3037656
Читать что? <different options>? Прочитал...
Аноним 06/02/24 Втр 17:22:07 #677 №3037793 
>>3036981
> Единственный нормальный язык
Это факт, да. Но не поэтому.
Аноним 06/02/24 Втр 17:28:59 #678 №3037807 
>>3037663
Читать означает не произносить буквы, а понимать смысл написанного, думать головой. Тупая башка не может думать, а значит и читать не может, "смотрит в книгу, видит фигу вместо написанного".
Аноним 06/02/24 Втр 17:57:43 #679 №3037878 
>>3037807
Петровско-разумовская, послезавтра в 5 часов, жду тебя с красной розой.
Аноним 06/02/24 Втр 19:22:13 #680 №3038042 
>>3037807
>Читать означает не произносить буквы, а понимать смысл написанного, думать головой.

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

나는 한국어를 읽을 수 있지만 읽은 내용을 이해하지 못합니다.
Аноним 06/02/24 Втр 19:45:12 #681 №3038074 
>>3038042
Всегда. написанное это не буквы и не слова, а мысль которую написавший хотел донести до читателя. Автор что-то подразумевал, и задача читающего правильно понять что. Это мыслительный процесс - чтение. Дебил читать не может, ибо не думает, а тупо произносит буквы и слова не думая о смысле.
Аноним 06/02/24 Втр 22:19:06 #682 №3038325 
Дайте пожалуйста код подключения curl в cmake на windows, уже второй день мучаюсь :с
Аноним 07/02/24 Срд 00:20:46 #683 №3038439 
Сап плюсаны
Представим: есть контейнер с структурой, у структуры К полей. Как наиболее идеоматично собрать новый вектор по одному из полей?
Аноним 07/02/24 Срд 00:23:03 #684 №3038441 
>>3038439
Если не игнорировать UB, то есть только один способ.
Аноним 07/02/24 Срд 00:32:16 #685 №3038449 
>>3038441
Да я походу нагуглил,
ranges::copy с back inserter и проекцией
Аноним 07/02/24 Срд 00:35:13 #686 №3038453 
>>3038439
>идеоматично
Вот теперь ты не получишь мой ответ.
Аноним 07/02/24 Срд 00:36:36 #687 №3038454 
>>3038449
Давай теперь сравним сгенерированны код с циклом и твой вариант.
Аноним 07/02/24 Срд 01:00:24 #688 №3038468 
>>3038454
Мне вообще пофиг какой там код генерится.
Аноним 07/02/24 Срд 01:08:02 #689 №3038471 
>>3038468
>Мне вообще пофиг какой там код генерится.

Вот это и печалит. Не понимаю тогда зачем тебе нужен С++. Потому что это модно было 20 лет назад?
Аноним 07/02/24 Срд 01:10:56 #690 №3038473 
>>3038471
Потому что мне платят за код на нем? Тем более что всю эту хуйню в язык тащат. Надо же пользоваться, а то буду как деды с НИИ сидеть ныть.
Да и мало языков, которые позволяют такую хуйню делать.
Завтра может скину годболт, щас мне уже лень. Честно говоря думаю там ничего страшного не будет.
Аноним 07/02/24 Срд 01:22:46 #691 №3038483 
>>3038473
>Завтра может скину годболт, щас мне уже лень.
Чисто из любопыства было бы интересно глянуть. Да и для саморазвития тоже. И вероятно не одному мне.
Аноним 07/02/24 Срд 04:23:25 #692 №3038570 
>>3037807
> а понимать смысл написанного

И каков там смысл написанного? <different options>, различные опции. Что это значит?
Аноним 07/02/24 Срд 07:13:32 #693 №3038601 
думайте....
sage[mailto:sage] Аноним 07/02/24 Срд 07:16:14 #694 №3038603 
>>3038601
Нахуй...
Аноним 07/02/24 Срд 12:07:02 #695 №3038828 
crop7056IMG20240207130429.jpg
>>3038439
Да вроде одной строкой делается, если не надо более общие случаи обрабатывать.
Аноним 07/02/24 Срд 12:41:13 #696 №3038928 
>>3038828
Согласен, но я хотел принципиально без лямбд.
Пусть язык сам да меня это делает.
>>3038483
Гляди.
https://godbolt.org/z/qs7q4vEaT
Оптимизации вырубай, а то там ничего не понять(мне)
Аноним 07/02/24 Срд 13:08:22 #697 №3038965 
>>3038928
В с++23 можно будет лучше:
Завезут ranges::to и можно будет говнокодить такое:
ranges::views::transform_view(cont, proj) | ranges::to<vector<int>>()
Аноним 07/02/24 Срд 13:20:35 #698 №3038994 
>>3038928
Без блямб не идиоматично.
Аноним 07/02/24 Срд 13:24:27 #699 №3039002 
>>3038994
Это в с++14-17 не идеоматично, а в с++20-23 лямбды для лошков😎
Аноним 07/02/24 Срд 13:32:13 #700 №3039015 
image.png
>>3038928
Хмм. Я разделил твой пример на два и сравнил чем же отличается.
Собственно вот на картинке пример, чем отличается первый способ от второго.

Ничем. При -O3
Познавательно.
Аноним 07/02/24 Срд 13:32:57 #701 №3039016 
YMTKapP53Nw.jpg
>>3038928
>Пусть язык сам да меня это делает.
>Пишет на порядок больше строк.
Аноним 07/02/24 Срд 13:53:18 #702 №3039056 
>>3039016
На какой порядок? В с++23 это делается в 1 строку.
>>3039015
Это круто, имхо
Аноним 07/02/24 Срд 17:17:08 #703 №3039446 
>>3039056
> Это круто, имхо
А это разве не подефолту должно так работать? Зеро кост же...
Аноним 07/02/24 Срд 18:46:28 #704 №3039553 
>>3039446
Должно, но одно дело теория, а другая практика.
Аноним 07/02/24 Срд 19:11:51 #705 №3039595 
>>3039553
Ну так и тут не рокет саенс, а просто трансформ вектора
Если бы даже тут что то ломалось, в реальном мире совсем кашмар бы был
Аноним 07/02/24 Срд 19:57:58 #706 №3039665 
>>3039595
Это правда.
Я бы хотел посмотреть что там выведет через трансформ вью и ренжес ту, но этот код нигде ещё не компилируется.
Аноним 07/02/24 Срд 20:17:00 #707 №3039686 
>>3038965
> можно будет
Стандарт уже финализирован и всё это есть реализованное в std как минимум у майков.
Лучше бы они за паттерн матчинг взялись и наконец релизнули <reflection>. Вот тогда бы началась настоящая магия.
Аноним 07/02/24 Срд 21:13:31 #708 №3039772 
>>3039686
>Вот тогда бы началась настоящая магия.
Как уже тут заметили, магия начинается от -O3
Аноним 07/02/24 Срд 21:53:37 #709 №3039837 
>>3039686
Увы, Смаке и гцц пока не релизнули. Да и 23 стандарт ещё не скоро в прод пойдет.
Аноним 07/02/24 Срд 22:41:06 #710 №3039925 
16940777065640.jpg
>>3037793
>>3037130
Ну и чего вы сидите тут такие высиживаете, вот только что был спор с одним аутистом, объяснял ему что компилятор либо вообще не учитывает локальность кэша, либо если учитывает, то настолько поверхностно, что можно считать, что не учитывает вообще. И ещё пояснял ему за то, что лто ни за что не сравнится с ручным инлайном. А он так и остался в полнейшем неироничном отрицании, я уже начал думать, что он меня троллит, а не, оказывается реально аутист без эмоционального интеллекта, и его стриггерило. Вы же не такие?
Аноним 07/02/24 Срд 22:49:17 #711 №3039942 
Вот представьте верить компилятору настолько. Процедурным вычислениям. Это же техножрецом надо быть в край поехавшим
Лто вообще выдаст совсем другой двоичный код для геев, если что
Аноним 07/02/24 Срд 22:53:18 #712 №3039949 
>>3039837
> Смаке
Он-то тут причём. Да и поддерживает он всё, недавно они наконец сделали полную поддержку модулей, а не как раньше частичная была. Теперь как белые люди живём, всё из коробки есть. Даже модуль std с cmake работает.
Аноним 08/02/24 Чтв 04:20:19 #713 №3040088 
Допустим, что в консоли запускается программа с одним аргументом "qwerty".
Тогда у нас argc = 2, argv[0] = "имя программы", argv[1] = "qwerty".
Если я верно понимаю, консоль (процесс cmd.exe или, например, bash) в ходе запуска нашей программы передают ей эти аргументы.
Какую именно информацию об этих аргументах получает наша программа?
Получает ли наша программа информацию о точной длине строк argv[0] и argv[1]?
Если получает, то как её нам заполучить и использовать внутри main() {} нашей программы ( чтобы не делать, например, strlen(argv[1]) )?
Аноним 08/02/24 Чтв 05:06:15 #714 №3040091 
>>3040088
нахуя плюс зачем
даже если аргумент макаисмальной длины (какой там лимит? 64к?) стрлен измеряется микросекундами
что на фоне старта ебучего процесса не заметно никак
Аноним 08/02/24 Чтв 08:11:08 #715 №3040127 
>>3040088
> длине строк
Сишные строки обычно null-terminated. Просто набор байтиков, а в конце ноль.
> как её нам заполучить
Только пройтись по строке и найти ноль.
Аноним 08/02/24 Чтв 10:04:33 #716 №3040154 
>>3040088
>Получает ли наша программа информацию о точной длине строк argv[0] и argv[1]
>не делать, например, strlen
Получает, если ты передашь длину строк в аргументах argv[2] и argv[3], например.
Аноним 08/02/24 Чтв 10:09:09 #717 №3040156 
image.png
>>3040127
Аноним 08/02/24 Чтв 10:25:32 #718 №3040165 
1581590237492.png
>>3040156
Смотри, просто 0 после каждого аргумента.
Аноним 08/02/24 Чтв 15:50:24 #719 №3040461 
>>3040165
Я намекнул на "длину строки". Посмотри на пик >>3040156 длина строки 4 или 10 ?
Аноним 08/02/24 Чтв 16:16:17 #720 №3040503 
1686357729163.png
>>3040461
Ты собрался передавать эмодзи в аргумент? Тебя любая консольная утилита нахуй пошлёт с таким, такое даже не стоит рассматривать как реальный кейс. В винде на пердоликсе сами проверяйте вместо русских букв 3f в аргументе знаки вопроса, при любых кодировках бинарника/терминала заменяет на них. В винде для получения пути бинарника правильно дёргать GetModuleFileName, чтоб не обосраться с папками на русском, хотя иногда проскакивает софт, где требуют путь установки только на английском - значит там как раз первый аргумент юзают.
Аноним 08/02/24 Чтв 17:21:33 #721 №3040611 
>>3012308 (OP)
Какие аргументы обычно приводят когда говорят, что Qt сильно устарел?
Аноним 08/02/24 Чтв 18:23:57 #722 №3040752 
>>3040611

https://youtu.be/9jGpvVGHvso

Котороткий ответ: Любые
Длинный ответ: Ответ дан в басне "Лисица и виноград" - лицензия не очень вкусная.
Аноним 08/02/24 Чтв 19:25:39 #723 №3040860 
нетакбыстропроказник.mp4
Аноним 08/02/24 Чтв 19:36:51 #724 №3040887 
>>3040611
Наличие ООП.
Аноним 08/02/24 Чтв 19:47:20 #725 №3040900 
>>3040611
Отсутствие ООП.
Аноним 08/02/24 Чтв 20:23:58 #726 №3040925 
>>3012308 (OP)
Сап двач

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

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

Поэтому реквестирую книжку/курс или что-либо чтобы закрыть пропасть в развитии крестов
Аноним 08/02/24 Чтв 20:31:31 #727 №3040936 
>>3040925
> сменил галеру
> реквестирую книжку
На JS кодил, опущ?
Аноним 08/02/24 Чтв 20:41:30 #728 №3040947 
>>3040925
> Поэтому реквестирую книжку/курс или что-либо чтобы закрыть пропасть в развитии крестов
Даже хуй знает, посмотрел бы просто ретроспективно что в каждый стандарт добавляли классного, на том же цпп референсе
Плюс если тебе только обзорно можешь глянуть лекции на Ютубе от Константина Владимирова, выборочно по интересующим темам
Аноним 08/02/24 Чтв 20:41:52 #729 №3040949 
>>3040925
С++14 Майерса.
17ый стандарт - полировка 14го.
Аноним 08/02/24 Чтв 21:01:30 #730 №3041008 
>>3040949
14 - полировка 11.
Аноним 08/02/24 Чтв 21:16:44 #731 №3041050 
>>3040949
>>3040947
Спасибо, аноны, попробую

Я так понял там главная реформа в 11-м произошла? Буду смотреть ещё книжки по этому делу тогда
Аноним 08/02/24 Чтв 21:23:13 #732 №3041061 
>>3041050
> главная реформа в 11-м произошла?
Без С++20 нехуй лезть в современные кресты.
Аноним 08/02/24 Чтв 22:02:38 #733 №3041158 
>>3041061
В с++20 нет смысла лезть без 11.
>>3041050
В целом да, примерно так, 11 самый прогрессивный стандарт в количестве фич.
Аноним 08/02/24 Чтв 23:18:03 #734 №3041220 
>>3040925
Расслабься, челик. Раз руководство решило тебя поставить на этот проЭкт то значит что твой уровень крестов это руководство устраивает. А изучение можешь оставить всяким безработным бичам типа меня. Иди лучше дорогую шлюху выеби или 15ти летнего односолодового виски ебани, чем какие-то книжки читать, ты же не лошара.
Аноним 09/02/24 Птн 21:02:01 #735 №3042271 
И так.
Выше мы сумели парой строк без голых циклов конвертнуть один вектор в другой.
Теперь похожая задача:
Есть хеш-мапа<A, B>. Мы хотим получить vec<B>.
Есть ranges::views::values, но возвращаемый им тип ренжа не подходит для ranges::transform
Как какать?
Аноним 09/02/24 Птн 22:25:11 #736 №3042392 
1583135965187.png
>>3042271
Как-то так, в одну строчку.
Алсо, подсветка синтаксиса вышла из треда, я так и не смог инициализировать мапу без ошибки в IDE, надо всё же вернуться в VS.
Аноним 10/02/24 Суб 00:05:46 #737 №3042452 
>>3042392
Блять, да, с 23 красиво получается.
Но у нас нет 23... А без ranges::to не получается?
sage[mailto:sage] Аноним 10/02/24 Суб 00:14:17 #738 №3042454 
>>3042392
Чел скинь плиз конфиг как дебагер к вскоду прикрутить.
Аноним 10/02/24 Суб 00:36:36 #739 №3042459 
>>3042454
Я не он, но это кажется не вскод, а силион
Аноним 10/02/24 Суб 10:01:09 #740 №3042603 
>>3042452
Ты можешь использовать ниблеровскую либу, на которой стандарт и основан. Там нужен 17 или даже 14.
Аноним 10/02/24 Суб 10:42:15 #741 №3042639 
>>3042603
Не могу, ее вроде нет в утилзах.
Но поищу.
sage[mailto:sage] Аноним 10/02/24 Суб 10:48:41 #742 №3042645 
>>3042639
Совсем того? Что мешает сурс взять?
Аноним 10/02/24 Суб 10:51:38 #743 №3042646 
>>3042645
То что запрещено тащить рандомные либы в проект? А если я хочу их официально затащить в утилзы, ебля ещё ебанутее.
Да и я че мудак ради 2ух строк тащить хедер?
Это тебе не лаба1.спп
Аноним 10/02/24 Суб 13:31:52 #744 №3042733 
>>3042646
> и я че мудак ради 2ух строк тащить хедер
Но это можно и на 11 стандарте сделать в одну строчку, просто меньше сахара будет.
Всё это обсуждение уровня "питон эффективнее потому что хелло ворлд на нем короче".
Аноним 10/02/24 Суб 14:22:44 #745 №3042770 
>>3042733
Я действительно хочу больше сахара для работы с контейнерами и не вижу никакой в этом проблемы.
Да и обсуждения никакого нет, питон ты упоминул зачем то
Аноним 10/02/24 Суб 14:51:52 #746 №3042789 
Почему столько говна в исходниках? Зайдите в СВЕЖИЕ трендовые репозитории и покапайтесь, антипаттерн на антипаттерне, каша-малаша с препроцессором, сырые указатели, спагетти с полотной комментариев, и в целом какой-то кал. Нахуй нужны эти правила и конвенции если их никто не соблюдает?
Аноним 10/02/24 Суб 15:10:37 #747 №3042811 
>>3042789
> антипаттерн на антипаттерне
Антипаттерн это мем
> сырые указатели
Как будто что то плохое
> спагетти с полотной комментариев
Комментарии я бы уж точно плохим не считал

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

> почему так
Есть несколько причин:
- плюсы в целом синтаксически не созданы чтобы их удобно читали люди, также они сами по себе не помогают писать хороший код
- у многих плюсовиков в общем нет цели делать код читаемым для других
- в опенсорсе достаточно сложно следить за качеством кода
Аноним 10/02/24 Суб 15:53:22 #748 №3042862 
>>3042811
Бабахает от того, что люди пишут успешные трендовые вещи, а ты нет? Ну бывает, жизнь говна - боль.
Аноним 10/02/24 Суб 15:54:03 #749 №3042863 
>>3042862
>>3042789
Аноним 10/02/24 Суб 16:13:21 #750 №3042886 
>>3042862
Бабахают тут только залётные, мы же выдрачиваем каждую строку, пока не избавимся от всех явных циклов
Аноним 10/02/24 Суб 16:14:24 #751 №3042888 
>>3042886
Что такое явный цикл и зачем от него избавляться
Аноним 10/02/24 Суб 17:02:37 #752 №3042954 
>>3042888
Явный цикл - любой цикл, совершающий внутри одно действие.
Использование стандартных алгоритмов вместо таких циклов повышает читаемость, безопасность, гибкость кода.
sage[mailto:sage] Аноним 10/02/24 Суб 17:24:35 #753 №3042982 
>>3042954
Шиза ... ой шиза.
Аноним 10/02/24 Суб 17:25:46 #754 №3042984 
>>3042954
> повышает читаемость, безопасность, гибкость кода
буквально не делает ничего из вышеперечисленного
Аноним 10/02/24 Суб 17:40:47 #755 №3043000 
>>3042954
Достаточно делать циклы итераторами, а не через i и всё будет безопасно. Если выбирать между лямбдой в монаде и циклом, то цикл приятнее читать.
Аноним 10/02/24 Суб 18:42:55 #756 №3043050 
>>3043000
Так если ты лепишь в монаду лямбду - делаешь что то не так, и цикл действительно лучше.
А если тебе надо как выше странсформить/скопировать/и тд то тебе даже читать не надо, ты видишь название функции, видишь контейнер с которым она работает. Все.
Ну а так да, итераторы база, вот ток ими тяжело пользоваться.
Аноним 10/02/24 Суб 18:54:48 #757 №3043073 
16386556370040.png
>>3042954
>Использование стандартных алгоритмов вместо таких циклов повышает читаемость, безопасность, гибкость кода.
Скриптошлюху видно издалека.
Аноним 10/02/24 Суб 18:56:23 #758 №3043077 
>>3043073
> Сравнивает базовый функционал языка с сторонними пакетами
Сагу забыл
Аноним 10/02/24 Суб 20:27:38 #759 №3043203 
>>3043077
>это другое
Нет, не другое, скриптошлюха. Заменять простой и ясный цикл из двух строчек на библиотеку это скриптошлюшество чистой воды пикрелейтед >>3043073 Библиотека это библиотека, какой бы она ни была, встроенной или скачиваемой, какая разница какой способ приобретения. Тащат библиотеки ради элементарных действий только дебилы скриптомакаки.
Аноним 10/02/24 Суб 21:11:41 #760 №3043247 
>>3043203
Понятно, а теперь водички выпей и полежи дедуль, у тебя аж венка на лбу вздулась
sage[mailto:sage] Аноним 11/02/24 Вск 01:34:45 #761 №3043451 
>>3043050
Плюслтред 2024
> Итераторы сложно.
Си с начала временен
> Птр++
Аноним 11/02/24 Вск 01:51:30 #762 №3043458 
>>3042789
примеры, ссыкли на гитхаб в студию
Аноним 11/02/24 Вск 06:34:14 #763 №3043510 
>>3043247
>Понятно
Вот и хорошо, а теперь смойся обратно в жс/шарп или откуда говно вылезло, а то воняет.
Аноним 11/02/24 Вск 07:31:43 #764 №3043513 
Ретроградство гейткиперство и аутизм
Аноним 11/02/24 Вск 11:12:13 #765 №3043585 
>>3043510
Ахуеешь, но языки которые я знаю это плюсы и луа.
Так что скрипшлюхой я видимо стал в вашем загоне.
>>3043451
Итераторы сложно в плане someVarName.begin(); someVarName.end() дохуя многословно получается. Range based for для циклов это решает. Но согласись что тот же
transform(container, out, func)
выглядит гораздо пизже, чем
transform (container.begin(), container.end(), out.begin(), func)
Ptr++ заебись, но это работает только в contiguous последовательностях, а хотелось бы отделить реализацию от знания об устройстве входящего контейнера, если это возможно
Аноним 11/02/24 Вск 12:43:44 #766 №3043623 
>>3043513
база треда
Аноним 12/02/24 Пнд 05:26:24 #767 №3044449 
>>3039925
Что такое локальность кеша?
Аноним 12/02/24 Пнд 10:38:18 #768 №3044586 
Аннотация 2024-02-12 103237.jpg
Аннотация 2024-02-12 103649.jpg
Анончики, а почему в VS при открытие CMake проекта (пик1) не показывается структура файла как на (пик2)? Что сделать чтобы норм всё стало?
sage[mailto:sage] Аноним 12/02/24 Пнд 12:19:59 #769 №3044820 
>>3044586
1: потому что студия кал говна.
2: потому что какого хера ты ожидаешь увидеть в своих трех файлах? Индентов не хватает? Симейк он для сборки, а не для рисования отступов. То что у тебя на пик 2 к симейку отношения не имеет, чисто тема иде.
Аноним 12/02/24 Пнд 12:34:58 #770 №3044868 
image.png
>>3044586
Аноним 12/02/24 Пнд 13:10:14 #771 №3044940 
>>3044449
Он видимо про то, что данные, с которыми работают разные потоки, должны быть разнесены в памяти минимум на размер кешлайна, что бы не вызывать синхронизацию кешей разных ядер.
Это 64 байта для современных процессоров.
мимо
Аноним 12/02/24 Пнд 14:28:54 #772 №3045128 
>>3044940
Что значит быть разнесенным в память на размер?
Аноним 12/02/24 Пнд 15:08:30 #773 №3045209 
>>3045128
int(ptr1) - int(ptr2) > cachline_size
Аноним 12/02/24 Пнд 16:04:30 #774 №3045257 
>>3045209
И что, реально надо следить, чтобы адреса данных для разных потоков были не слишком близкими? Звучит как бред.
Аноним 12/02/24 Пнд 16:31:06 #775 №3045285 
Аннотация 2024-02-12 163031.jpg
>>3044820
> 1: потому что студия кал говна.

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

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

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

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

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

> То что у тебя на пик 2 к симейку отношения не имеет

На пик 2 там sln сгенерированный через cmake, то есть по сути и там проект, и там проект, просто в разном формате

> чисто тема иде.

VSCode например норм справляется по умолчанию пик
Аноним 12/02/24 Пнд 16:32:05 #776 №3045289 
>>3044868

Нет, это не оно
sage[mailto:sage] Аноним 12/02/24 Пнд 17:37:45 #777 №3045398 
>>3045285
Перечитай мой ответ, а потом свой собственный.
> вскод справился
> это не про симейк, это про иде
Аноним 12/02/24 Пнд 18:01:56 #778 №3045444 
Анонесы, каковы ваши мысли по поводу этого сайта, стоит ли юзать его для обучения? https://www.learncpp.com/
Аноним 13/02/24 Втр 02:19:36 #779 №3046267 
>>3045257
Для HPC - надо, а в других случая не надо.
Аноним 13/02/24 Втр 04:01:27 #780 №3046296 
>>3045398

То есть ты хочешь сказать, что VS при создании и открытии cmake проекта никак не заставить таким образом отображать solution explorer?
Аноним 13/02/24 Втр 06:43:15 #781 №3046340 
>>3046296
У тётеньки спроси
https://www.youtube.com/watch?v=yImev317_Ns
Аноним 13/02/24 Втр 07:16:23 #782 №3046349 
>>3046340

Я видел это видео, там нету ничего по моему вопросу
Аноним 13/02/24 Втр 07:16:47 #783 №3046350 
и в документации нету ничего
Аноним 13/02/24 Втр 10:07:40 #784 №3046479 
Аноны, обесните мне нормально пжлста, как вообще выстраивается воркфлоу при разработки cmake проекта, я что должен тупо постоянно открывать параллельно cmake проект и просто вносить правки какие я новые файлы создал и подключил библиотеки, потом через cmake генерировать в нём новый sln проект, потом периодически возвращаться в cmake, править CMakeLists.txt и так по новой?
Аноним 13/02/24 Втр 11:29:36 #785 №3046538 
>>3046479
Не использую симэйк. Проект мультиплатформа. Рядом лежат студийный проект и классический Makefile. Очень хорошо.
Аноним 13/02/24 Втр 11:47:31 #786 №3046566 
>>3046538

А что по поводу?
> как вообще выстраивается воркфлоу при разработки cmake проекта
Аноним 13/02/24 Втр 12:16:43 #787 №3046645 
>>3046566
Не знаю. И особо не интересно. Версия для Винды на gitlab воркере собирается g++ из Makefile без проблем
Аноним 13/02/24 Втр 12:34:10 #788 №3046677 
>>3046479
>потом через cmake генерировать в нём новый sln проект
Зачем? VS 2022 поддерживает cmake нативно. Генерить надо было в прошлых версиях которые не поддерживали симейк.
Аноним 13/02/24 Втр 12:44:51 #789 №3046696 
>>3046677

Натвино, это я понимаю так, что я тупо создаю cmake проект и работаю с ним без всяких классических sln, правильно?
Аноним 13/02/24 Втр 13:42:52 #790 №3046787 
image.png
>>3046696
Ну да, я тупо скачивал с гитхаба проги на симейке, тупо открыл и готово, вот тебе проект, можно компилить и всё такое. Если же ты будешь использовать sln, это и будет sln, а не cmake.
Аноним 13/02/24 Втр 14:44:46 #791 №3046845 
>>3046787

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

>>3044586

Решения так ей пока и не нашел.

Мне анон другой там начал писать, что я хуйнёй занимаюсь и cmake для этих задач не применяют, и я вот хз, собствено и назрел мой другой вопрос выше, какое воркфлоу, получается, что тогда надо вести CMakeFileLists.txt как отдельный проект, тупо для распространения, чтобы другим на разных платформах и средах можно было собирать проекты и уже их открывать в том, в чем они пишут. Или я хз, в замешательстве пока каком-то, потому что VS получается не позволяет полноценно использовать cmake проекты как в случае с sln.
Аноним 13/02/24 Втр 18:42:27 #792 №3047285 
изображение.png
А что потом?
Аноним 13/02/24 Втр 19:12:25 #793 №3047319 
>>3047285
Ну так засрать язык это надо постараться.
Что потом? Потом на полку к Фортрану, Алголу и Коболу.
Аноним 13/02/24 Втр 20:54:32 #794 №3047482 
>>3047285
Статическая рефлексия, наконец сможем генерировать Enum to str без костылей.
Аноним 13/02/24 Втр 20:54:55 #795 №3047483 
>>3047319
Забрать язык чем, дедуль?
Аноним 13/02/24 Втр 21:36:39 #796 №3047527 
>>3047483
>>3047483
Нахуя тебе Coroutines, например?
Зачем эта хуйня нужна? Многопоточности не хватает?
Аноним 13/02/24 Втр 21:40:07 #797 №3047530 
>>3047482
>>3047482
Зачем?
Аноним 13/02/24 Втр 21:59:06 #798 №3047555 
>>3047482
А как это должно выглядеть? Я не знаком с рефлексией
Аноним 13/02/24 Втр 22:45:34 #799 №3047594 
>>3047527
>Многопоточности не хватает
Именно по этой причине его и создали
Аноним 13/02/24 Втр 23:35:45 #800 №3047674 
>>3047594
Ну и в каком пронкте тебе не хватало многопоточности?
Аноним 14/02/24 Срд 01:04:59 #801 №3047723 
>>3047555
Хуево это будет выглядеть.
Я бы вообще ее не ждал к 26, хотя Полухин обещает.
А вообще вроде уже есть пропозалы, можешь почитать.
Спойлер: ещё более уебанский синтаксис
Аноним 14/02/24 Срд 01:07:44 #802 №3047724 
>>3047674
Причем тут многопоточность и корутины?
Корутины про асинхронность.
Аноним 14/02/24 Срд 01:57:30 #803 №3047740 
>>3047527
Да ясное дело никто в своем уме подобное дермо использовать не будет, как и очень многое что тащат в плюсы. Переключение контекста со своим стеком давным давно реализовано на асм+си.
Аноним 14/02/24 Срд 06:30:35 #804 №3047782 
>>3047740
>Да ясное дело никто в своем уме подобное дермо использовать не будет
Вообще-то наоборот, это очень удобная фигня постоянно используемая в шарпе и прочих скриптах. Только кресты не скрипты, поэтому, да, скриптоговно в крестах это ну, говно, взять язык и изговнить. Какой смысл использовать кресты, чтобы высирать шарпоговно на них? Тогда бери сразу шарп и получишь желаемое. Сование скриптоговна в кресты это прямая диверсия, вредительство, подрыв языка скатыванием его в говно того, чем он не является. В принципе, это не противоречит концепции крестов как мультипарадигменного языка, это проблема скорее людей, макак которые лезут и требуют это говно в языке и кукарекают, что именно на корутинах надо писать, а не как раньше.
Аноним 14/02/24 Срд 07:35:08 #805 №3047793 
1000004736.mp4
>>3047782
Аноним 14/02/24 Срд 07:37:45 #806 №3047795 
>>3047527
>Нахуя тебе Coroutines, например?
Мне как-то реально было проще взять из буста корутины, чем накручивать ебанутую логику с вызовами одной внешней библиотеки. Нахуя ты сюда пишешь работая с задачами уровня хелло ворлда, например?
Аноним 14/02/24 Срд 07:55:14 #807 №3047797 
>>3047795
А ты с какими задачами работаешь? Ни с какими, иначе бы не выбирал С++ когда задача "проще". С++ не проще, дебил, для этого есть языки проще.
Аноним 14/02/24 Срд 08:14:06 #808 №3047802 
причины по которым корутины не нужны:

- они есть в скриптах (с#)
- это проще, а с++ не проще
Аноним 14/02/24 Срд 08:22:47 #809 №3047808 
>>3047802
Не только корутины, та же скриптовая рефлексия с её метастазами, подрывающая сам принцип С++ как компилируемого машинного языка. Всё это дерьмо лезет от скриптомакак которые хотят чтобы си был как их скрипты, потому что дебиломакак взрастили на скриптах и у них навечно скрипты головного мозга.
Аноним 14/02/24 Срд 09:10:12 #810 №3047828 
это он так байтит на срач?
Аноним 14/02/24 Срд 09:59:23 #811 №3047880 
>>3047808
Дедуль, нам завезут рефлексию ВРЕМЕНИ КОМПИЛЯЦИИ, а не рантаймовую.
Присядь, успокойся.
Аноним 14/02/24 Срд 10:16:49 #812 №3047904 
>>3047880
>перемогает ранним временем связывания.
kekw
Аноним 14/02/24 Срд 10:49:20 #813 №3047946 
>>3047904
какое связывание че ты несешь орунаху
просто чтандартная замена того что сейчас делается анальными костылями типа парсинга __PRETTY_FUNCTION__
Аноним 14/02/24 Срд 10:49:58 #814 №3047948 
>>3047880
Проблема макак, они не понимают разницу между программированием и скриптингов, когда она на самом деле фундаментальная.

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

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

Си, и их расширение С++ это машинный язык программирования, а вовсе не офисная система скриптинга из так называемого "ИТ". ИТ это обработка данных, офисная работа, техника программирования тут совершенно ни при чем. Каким дебилом надо быть, чтобы не отличать офисного клерка от механика-водителя?
Аноним 14/02/24 Срд 11:06:54 #815 №3047968 
3ec84f51801de6bcf78a3b07286562c7269ff4091a2b58675cbb82f07375f663.jpg
Аноним 14/02/24 Срд 11:32:07 #816 №3047988 
>>3047948
Дедуль, обеденный перерыв кончился, а тебе ещё библиотеку для твоей ЗА-ЛУ-ПА-1 писать.
Аноним 14/02/24 Срд 11:33:10 #817 №3047992 
>>3047968
Удвою, его поток шизофазии уровня "программист должен знать устройство прибора для печати транзисторов" читать тяжело
Аноним 14/02/24 Срд 11:33:57 #818 №3047995 
>>3047948
К чему ты эту хуйню высрал? Водки с утра налакался и внутренний вахтёр проснулся?
Аноним 14/02/24 Срд 12:48:04 #819 №3048092 
>>3047988
>>3047995
Тявкать как шавка не выражая никаких человеческих мыслей, и даже не читая на что отвечаешь. Типичные макаки, тупорылые животные. Зачем лезут в языки программирования? Чего напрограммируют? Вопрос тщетный.
Аноним 14/02/24 Срд 12:50:11 #820 №3048096 
>>3047992
>программист должен знать устройство прибора для печати транзисторов
Это ты так stepper (литограф) обозвал?

Внутри самой современной EUV-машины каждую секунду 50 000 капель расплавленного олова падают через камеру в её основании. Пара высокоэнергетических лазеров на углекислом газе ударяет по каждой капле, создавая плазму, которая, в свою очередь, испускает свет нужной длины волны. Первый импульс преобразует каплю олова в туманную форму блина, так что второй импульс, который является более мощным и следует за ним всего через 3 микросекунды, взрывает олово в плазму, которая светится на длине волны 13,5 нанометров
Аноним 14/02/24 Срд 13:24:30 #821 №3048131 
>>3048096
Когда меня будут спрашивать базу для программистов - буду кидать твой пост
Аноним 14/02/24 Срд 13:33:51 #822 №3048138 
>>3047285
>А что потом?
Да все уже, движуха выдохлась. Это даже видно по российскому комьюнити языка. Дальше застой будет. Усугубленный еще и тем что сама ниша языка который он занимает уменьшается. Соответственно и интерес пропадает.
Аноним 14/02/24 Срд 13:41:23 #823 №3048148 
>>3048131
>Когда меня будут спрашивать базу для программистов

Базу программистов? Что за база?
Может быть расскажешь как работают аппаратные прерывания на примере сетевой карты?
Аноним 14/02/24 Срд 14:42:11 #824 №3048199 
>>3047782
Ты вообще не понял что я написал и высрал такую простыню.
Аноним 14/02/24 Срд 20:46:42 #825 №3048824 
Вообще челики чтобы понять где мы сейчас находимся нужно посмотреть немного назад. А именно у эльфов был один провальный проэкт который утянул за собой на дно и кресты. А именно f-35. Америкашки как всегда сделали вид что нихуя не обосрались и что все типа OK. Но на деле как раз после того как все поняли что разработка усложняется удорожается и затягивается на десятилетия, стали с неохотой связываться с крестами.
Аноним 14/02/24 Срд 21:31:48 #826 №3048876 
>>3048824
Хорошо, дедуль, а теперь таблетки и спать.
Аноним 14/02/24 Срд 21:44:20 #827 №3048891 
>>3048824
И что выбрали вместо крестов? Сруст?
Аноним 15/02/24 Чтв 01:07:22 #828 №3049099 
>>3048891
Не что выбрали, а что нужно было выбирать. А выбирать нужно было Аду, как и раньше. И все делать на ней. И было бы чики-пуки все.
Аноним 15/02/24 Чтв 01:39:11 #829 №3049113 
Выбирать нужно было фортран.
Аноним 15/02/24 Чтв 02:15:52 #830 №3049117 
tumblra98ac31be56fb70fb7bbb3de37bc737ef816da63500.png
Поработал ньюфаг с отладчиком. Сначала выяснилось, что знаменитый олядебаг для x64 не поддерживается. Нашел x64dbg. Потом выяснилось, что на многих интересующих меня экзешниках стоит защита от дебаггеров - диаологовое окно "Хуле ты дебаггером меня открываешь?" - нажимаю ок и процесс завершается. Далее для пробы открыл helloworld.exe - нихуя не понятно, куча ассемблерного кода. Можно сразу перейти в main, но дальше почему-то Шаг не работает, сразу все выводится в консоль и программа завершается. Попробовал в цикле вывести несколько раз helloworld - то же самое, не дает посмотреть пошагово, сразу выводит в текст консоль и завершает программу. Короче еще ебаться и ебаться.
Аноним 15/02/24 Чтв 22:09:15 #831 №3050309 
Нужно под линух написать два независимых приложения: ui и бэкенд. Пока не знаю как организовать общение между процессами гуя и бэкэнда. D-Bus, unix sockets? В общем накидайте базвордов почитать и какие там технологии модно сейчас использовать в таких задачах. В идеале бэкэнд должен быть монолитным и неизменяемым, гуй же под любую портянку вроде qt, даже консольный
Аноним 15/02/24 Чтв 23:03:52 #832 №3050450 
>>3050309
Базвордов, да? Изволь.
Electron, React, Node.js, Apollo.
Аноним 15/02/24 Чтв 23:19:42 #833 №3050474 
>>3050309
>Пока не знаю как организовать общение между процессами гуя и бэкэнда.

Через сокеты.
Аноним 15/02/24 Чтв 23:31:49 #834 №3050490 
>>3050474
Ты сейчас ему насоветуешь и он иксы (X Window System) напишет.
Аноним 16/02/24 Птн 00:37:36 #835 №3050580 
>>3050309
Grpc
Аноним 16/02/24 Птн 01:11:51 #836 №3050599 
Есть одна игра стратегия, возможно ли зная адрес в оперативной памяти, через плюсы доставать оттуда массив с различными данными? Если да то как это сделать?
Если что мне не для взлома, просто я хочу RL агента обучить играть в одну игру а для этого мне нужно получать данные положения юнита на карте каждую секунду.
Аноним 16/02/24 Птн 01:20:28 #837 №3050602 
>>3050599
Уточню: что бы получать данные не одного юнита а массив юнитов, например их может быть сотня, то есть имея под рукой адрес в оперативной памяти можно ли достать массив со всей необходимой информацией? Или это нужно как то парсить?
Аноним 16/02/24 Птн 09:01:32 #838 №3050684 
>>3050309
>Нужно под линух написать два независимых приложения: ui и бэкенд.
Кек, прошивка для сервера, что ни напиши, всё равно получается веб-параша клиент-сервер. Просто написать нормальное приложение? Лолнет, ОС же не завезли.
Аноним 16/02/24 Птн 09:14:55 #839 №3050688 
>>3050599
>Есть одна игра стратегия, возможно ли зная адрес в оперативной памяти, через плюсы доставать оттуда массив с различными данными?

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

Только далеко не уходи - разговор долгим будет.
Аноним 16/02/24 Птн 09:17:38 #840 №3050692 
>>3050684
>всё равно получается веб-параша клиент-сервер.

Если он извратится с shared memory и pthread_mutex_lock, то тоже получтся "веб-параша"?
Аноним 16/02/24 Птн 09:54:54 #841 №3050720 
>>3050688
Тот адрес который выдает Cheat Engine.
Аноним 16/02/24 Птн 10:51:24 #842 №3050758 
>>3050309
непонятно по какой причине это должны быть у тебя два отдельных процесса
обычно "бэкенд" выделяют в библиотеку либо набор библиотек, а потом уже "фронэнды" используют эти библиотеки либо используя статическое либо динамическое связывание
Аноним 16/02/24 Птн 10:52:42 #843 №3050760 
>>3050450
вчерашний школьник, плиз
Аноним 16/02/24 Птн 10:55:46 #844 №3050764 
>>3050599
дык пиши лучше сразу бота который берет инфу с игры, захватывая картинку и онализиуя ее, а свою работу осуществляет эмулируя мышку и клавиатуру
все равно примерно так делают многие беспалевные боты для сетевых игр, и ты сразу же наберешься нужного опыта
Аноним 16/02/24 Птн 10:57:20 #845 №3050765 
>>3050720
В душе не ебу что такое Cheat Engine и причём тут С++.
Аноним 16/02/24 Птн 11:12:04 #846 №3050775 
>>3050758
>>3050684
Это не про веб. В моем случае гуй приложение на малине и второе приложение бекэнд, которое будет делать вещи там же. А дело в том, что гуй скорее всего нахер не упрется и хватит зайти по ссш вызвать команды самому, но спроектировать все надо как если бы была возможность управления этим бекэндом через ui

>>3050580
Да, хм, наверное так и сделаю
Аноним 16/02/24 Птн 11:53:14 #847 №3050802 
>>3050688
а ты сам-то давно физический адрес видел? если дрова не пишешь
Аноним 16/02/24 Птн 13:22:19 #848 №3050881 
>>3050692
Да. Какая разница какой протокол, клиент-серверная параша на прошивке для сервера от этого не меняется. Зачем делать сервер и клиент на той же машине? Ты ебанутый? Нет, просто ОС не завели, нормальное приложение сделать не представляется возможным, серверная прошивка поддерживает только сервера.
Аноним 16/02/24 Птн 14:10:41 #849 №3050953 
>>3050764
В игре дохуя спецефектов, юнитиы могут перекрывать друг друга это негативно скажется на обучении РЛ агента, он будет думать что перекрытием уничтожил юнита, ИИ глуп и ему нужно все в лоб объяснять, а значит мне нужно как то из памяти брать данные, такие как фактическое положение юнита то есть координаты, значения здоровья и его название.
Аноним 17/02/24 Суб 00:06:30 #850 №3051796 
Вот я написал #include <gl/GL.h> jrlf/ Потом вылетела ошибка линковки оказывается надо было дописать #pragma comment(lib, "opengl32.lib"). Но я не пойму, нахуя какая-то библиотека, мне обещали, что функции будет выполнять напрямую драйвер.
Аноним 17/02/24 Суб 00:11:44 #851 №3051799 
>>3051796
> opengl32.lib
Хуя, под winXP пишешь?
Аноним 17/02/24 Суб 00:24:21 #852 №3051810 
>>3051796
> мне обещали, что функции будет выполнять напрямую драйвер.

Ну и пиздец. Феерический. Даже хуй знает что тебе ответить.

И после этого говорят что плюсовику не нужно знакть Си, не нужно знать ассемблер, не нужно знать "кишки". Ну объясняйте тогда сами ему.
Аноним 17/02/24 Суб 00:34:36 #853 №3051814 
>>3051810
Ну и че где в си, в ассемблере че сказано про графику, нихуя. Зато смотрим википедию, так opengl - спецификация, прототипы функций - в GL.h, реализация функций - в драйверах от производителей видеокарт. Если какая-то функция видеокартой не поддерживается, ее реализация лежит на gdi. И чем я не прав, обезьяна?
Аноним 17/02/24 Суб 00:44:02 #854 №3051819 
>>3051814
Пошёл нахуй.
Аноним 17/02/24 Суб 01:57:49 #855 №3051834 
>>3051814
Обезьяна, в этой твоей Википедии тебе пообещали, что спецификация должна сама уметь искать реализацию?
sage[mailto:sage] Аноним 17/02/24 Суб 02:17:25 #856 №3051839 
>>3051814
Позорище ебаное.
Аноним 17/02/24 Суб 03:17:36 #857 №3051854 
>>3047482
>наконец сможем генерировать Enum to str без костылей
Лол, я как раз свой в том году написал на макросах. Нет веры комитету.
Аноним 17/02/24 Суб 03:20:12 #858 №3051856 
>>3047808
>та же скриптовая рефлексия с её метастазами, подрывающая сам принцип С++ как компилируемого машинного языка
Иди-ка ты нахуй. Я не хочу класс в XML вручную сохранять. Пусть компилятор работает, он железный.
Аноним 17/02/24 Суб 03:29:45 #859 №3051861 
>>3051814
В opengl.dll только реализация 1.1 версии. Весь новый функционал получается из драйвера через wglGetProcAddress (которая сама лежит в opengl.dll), поэтому тебе надо линковаться с opengl.dll и с либой вроде GLEW, которая через экстеншены настроит современную версию OpenGL.
Аноним 17/02/24 Суб 07:21:59 #860 №3051872 
>>3051834
Чтобы пользоваться функциями из gdi32.dll, user32.dll, kernel32.dll мне ничего линковать не надо, или это другое?
Аноним 17/02/24 Суб 10:07:33 #861 №3051927 
>>3051872


https://learn.microsoft.com/en-us/cpp/build/reference/nodefaultlib-ignore-libraries?view=msvc-170
Аноним 17/02/24 Суб 16:13:55 #862 №3052222 
Почему эта хуетень не правильно считает шестнадцатеричные числа? Как сделать что бы оно корректно все считало?
https://pastebin.com/PVM63R3A
Аноним 17/02/24 Суб 16:24:41 #863 №3052254 
>>3052222
Всë там правильно рассчитано.
Аноним 17/02/24 Суб 16:27:06 #864 №3052262 
>>3052254
Да вижу это я проебался, там что бы добраться до нужного адреса нужно вычитать число а не добавлять.
Аноним 17/02/24 Суб 21:35:53 #865 №3052833 
>>3051814
> реализация функций - в драйверах
Компилятор не имеет ни малейшего понятия что там в драйвере есть и как вызывать это.
>>3051872
Можешь без линковки чем угодно пользоваться, но надо тогда вручную загружать dll в рантайме, получать адреса через GetProcAddress и вызывать функции по их адресу. В хедере лежит API, оно никак не поможет компилятору понять что конкретно ты хочешь вызвать во внешней либе. С хедером и dll тебе всегда надо линковать файл *.lib, где лежит макет памяти с адресами функций по которым будет это API вызываться. Во время запуска бинарника по этим адресам будет смаплена твоя dll. А dll ты так или иначе будешь использовать, потому что вызов функций из драйвера геморроен, всегда есть абстракции над этим.
А в каком-нибудь расте вообще пиздец как надо извращаться чтоб dll заюзать, ведь это ансейф. Хорошо если биндген осилит хедер спарсить, а если нет, то пизда.
> gdi32.dll, user32.dll, kernel32.dll
Потому что их линковщик линкует по умолчанию при сборке, у тебя в SDK винды лежат lib-файлы для них.
Аноним 17/02/24 Суб 22:10:50 #866 №3052895 
Вот надо же адекватный человек
>>3052833
> потому что вызов функций из драйвера геморроен, всегда есть абстракции над этим.
> Потому что их линковщик линкует по умолчанию при сборке,
Спасибо, что пояснил.
Аноним 17/02/24 Суб 22:28:06 #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
Аноним 17/02/24 Суб 22:32:17 #868 №3052965 
552a7bf79e1196e6b0bbc08a578f04df80d0ee9a0d0e8d6db4423e3ebceba967.jpg
ебать у вас в жс все такие?
Аноним 17/02/24 Суб 22:33:01 #869 №3052971 
>>3052965
братик, да, тупой, да дебил, но ты подскажи по делу, а не вайн устраивай
Аноним 17/02/24 Суб 22:33:45 #870 №3052972 
я формошлеп хуесос, встаю на путь истинный, гони ответ
Аноним 17/02/24 Суб 22:39:17 #871 №3053000 
>>3052950
> нaпримeр lеt x = 33331 - cкoлькo cимвoлoв ввeл, cтoлькo мecтa oнa и зaнимaeт
А с чего ты это взял? Js вроде не предоставляет API для работы с памятью.
Аноним 17/02/24 Суб 22:42:26 #872 №3053013 
>>3052971
ну давай разберем по частям тобою написанное)

>cкoлькo cимвoлoв ввeл, cтoлькo мecтa oнa и зaнимaeт
во первых сам сначала поясни что хотел сказать. надеюсь не то что каждая цифра в отдельном байте

так-то в крестах можно написать auto zalupa=42 и будет инт а можно auto zalupa=42000000000 и будет лонг
Аноним 17/02/24 Суб 22:42:55 #873 №3053015 
>>3053000
>А с чего ты это взял? Js вроде не предоставляет API для работы с памятью
Это я так себе представляю, я вобще раньше не задавался такими глубинными вопросами. Насколько я знаю, в расте не нужно задавать. В общем, итоговый вопрос таков: почему размер не задается автоматически с одним словом let
Аноним 17/02/24 Суб 22:44:07 #874 №3053021 
>>3053013
>во первых сам сначала поясни что хотел сказать. надеюсь не то что каждая цифра в отдельном байте
Это я доку читаю https://learn.microsoft.com/ru-ru/cpp/cpp/data-type-ranges?view=msvc-170
вижу что разные размеры в байтах. Видимо в этом смысл и был - оптимизировать вес, собственно и интересно узнать >>3053015
Аноним 17/02/24 Суб 22:47:33 #875 №3053037 
>>3053015
Есть ключевое слово auto, появилось только в с++11 стандарте. То есть auto x = 123132; Автоматически подбирается подходящий тип. Но в отличие от let тип данных задается еще на этапе компиляции и не меняется в течение всей жизни программы, потому что в с++ типизация статическая, в js динамическая. То есть, если x родился целым числом, им он и останется до гробовой доски.
Аноним 17/02/24 Суб 22:49:40 #876 №3053046 
>>3053021
а доку к жс читал? там небось все числа на самом деле инт64 или вообще дабл
Аноним 17/02/24 Суб 22:51:24 #877 №3053051 
>>3053046
не, в жс такие вопросы вобще никого не ебут. я вот и решил базы впитать и не быть обосцаным хипстерком
Аноним 17/02/24 Суб 22:54:38 #878 №3053060 
>>3052950
>в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 надо явно преобразовывать.
Аноним 17/02/24 Суб 23:02:59 #879 №3053090 
>>3052950
>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 - с нативной скоростью.
Аноним 18/02/24 Вск 02:21:11 #880 №3053304 
image.png
>>3049117
Ты чё, ебанутый? Тобой перечисленное это программы для реверс-инженерии, дебаггингом через это никто не занимается. Дебаггер плюсов это GDB/LLDB или нативная хуйня от майков.

Если нужен убермощный дизассемблер, то Ghidra.

>>3052950
> Aктyaльнee ли вкaтывaтьcя в рacт?
Так там тоже такая же ебатория. Ты то можешь let x = 42; и x будет i32, но если значение не даёшь или хочешь пихать числа требующие или не требующие какого-то количества памяти то let x: u64; придётся писать. Если ты реально не вьезжаешь зачем оно: ты не понимаешь, как работает компьютер под капотом выделение памяти если точнее, а значит плюсы тебе либо рано, либо непонятно нахуя.

Могу объяснить прям подробно, но нужно подтверждение что готов читать. Шатал выдавать мемуары чтобы получить "ниасилил".

Так, теперь вопрос. Правда ли пикрил? Я не понял лично прикола. Если ты знаешь что тебе нужно 100 элементов то пустой вектор будет хотя бы пару раз изменять свою вместимость (а это аллокация + копирование что как бы нихуёво), если указываешь сразу 100 то аллокация одна и никаких копирований. Я знаю что есть std::array для этого, меня просто вот этот абзац немного в ахуй поставил.
Аноним 18/02/24 Вск 05:34:05 #881 №3053364 
>>3053304
array на стеке вроде, вектор на хипе.
Аноним 18/02/24 Вск 09:56:35 #882 №3053420 
>>3053304
>Могу объяснить прям подробно, но нужно подтверждение что готов читать. Шатал выдавать мемуары чтобы получить "ниасилил".
Конечно, готов. Не обязательно простыню, интересно. Другой вопрос - обязательно ли это знать? Может просто принять как данность: Используем длину которая подходит и не выебываемся?
Аноним 18/02/24 Вск 10:31:56 #883 №3053440 
References was a mistake
Аноним 18/02/24 Вск 11:07:46 #884 №3053457 
>>3053304
>Так, теперь вопрос. Правда ли пикрил?
>>Написал хуйню на дваче - никто не обратил внимания.
>>Написал хуйню, заскринил, запостил картинку на дваче - 100 ответов обсуждения.
Всегда было интересно, как называется эта болезнь?
Аноним 18/02/24 Вск 16:12:31 #885 №3053678 
>>3053440
Без референсов бы не изобрели бы && ты че падла ты че
Аноним 18/02/24 Вск 16:46:06 #886 №3053720 
>>3053440
Moscow is the capital of Great Britain.
Аноним 18/02/24 Вск 16:49:02 #887 №3053725 
>>3053678
> Без референсов бы не изобрели бы &&
еще одна причина почему референсы это была плохая идея
Аноним 18/02/24 Вск 17:05:37 #888 №3053738 
Как же заебал этот кусок говна под названием qt, просто пиздец. Прошел через все круги ада устанавливая эту хуйню, так после установки нихуя не работает, на любое действие он выдает пук с ошибкой, сука. Я же все настроил, все киты, симейк, компиляторы, что тебе надо нахуй.
Аноним 18/02/24 Вск 17:08:02 #889 №3053742 
images.jpg
>>3053725
Си треш двумя блоками вниз
Аноним 18/02/24 Вск 17:15:58 #890 №3053752 
>>3053742
Мув семантика это костыль из за криво задизайненных конструкторов и референсов
Аноним 18/02/24 Вск 17:51:41 #891 №3053770 
>>3053752
Все так. Православный птр ван лав.
Аноним 18/02/24 Вск 19:53:03 #892 №3053902 
>>3053770
>>3053742
Аноним 18/02/24 Вск 19:54:41 #893 №3053903 
>>3053742
а при чем тут си...
Аноним 18/02/24 Вск 20:20:17 #894 №3053925 
>>3053738
Ей нужен пользователь с хотя бы двузначным интеллектом
Аноним 18/02/24 Вск 23:20:47 #895 №3054047 
Я разочаровался в блюпринтах анреала, но я боюсь c++. Все так страшно?
Аноним 18/02/24 Вск 23:29:51 #896 №3054052 
>>3054047
Для анриала не все так страшно
Аноним 18/02/24 Вск 23:31:53 #897 №3054055 
>>3054052
Мне тоже надо читать книжки из оп поста? Ну.. как всем?
Или можно срезать углы? Если да, то где?
Я не считаю себя программистом и не хотел бы им быть.
Аноним 18/02/24 Вск 23:52:09 #898 №3054064 
qmake или симейк для кьюта? И то и то как говно выглядит, впрочем как и все в средах разработки на плюсах
Аноним 19/02/24 Пнд 00:10:10 #899 №3054074 
>>3054064
Да съеби уже.
>>3054047
Годот используй.
>>3053903
Да потому что деды, которые си и кресты изучели еще в нулевых отвергают все реформы языка.
Аноним 19/02/24 Пнд 00:18:07 #900 №3054077 
>>3054074
> Годот используй.
Я попробовал годот. Не зашло
Аноним 19/02/24 Пнд 00:24:29 #901 №3054081 
>>3054074
>Да съеби уже.
причина баха?
Аноним 19/02/24 Пнд 00:58:46 #902 №3054087 
>>3054064
Используй Webpack.
Аноним 19/02/24 Пнд 07:04:46 #903 №3054115 
>>3054064
Да что хочешь используй, что то говно, что это
Но симейк это более распространенная вещь, считай что стандарт в индустрии, будет легче зависимости подцеплять

>>3054055
Можно срезать углы конечно
Тебе не надо знать про очень многие семантики для начала

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

Для самого начала тебе хватит узнать: что такое указатели и референсы, базовые конструкции языка (условия, циклы и ид), классы и ООП в целом, базовые структуры данных из стд (вектор мапа и тд)

Все остальное прям во время работы сможешь изучить
Аноним 19/02/24 Пнд 12:36:33 #904 №3054329 
>>3054064
CMake де факто стандарт в разработке на плюсах, все его используют. QMake залупа от которой даже сами Qt отказались
Аноним 19/02/24 Пнд 12:43:18 #905 №3054347 
>>3054329
qmake выглядит читабельней
Аноним 19/02/24 Пнд 15:35:25 #906 №3054647 
>>3054347
Нюфаг/скриптодураак? Симейк выглядит как измененный си, все базовые принципы соблюдены.
Всякие кумейк/премейк/месоны рядом не стояли.
Аноним 19/02/24 Пнд 17:02:02 #907 №3054731 
1708351321041.png
>>3054647
> Симейк выглядит как измененный си, все базовые принципы соблюдены
Сумасшедший?
Аноним 19/02/24 Пнд 18:44:03 #908 №3054865 
>>3054731
Не, он просто дед.
Аноним 19/02/24 Пнд 22:12:51 #909 №3055200 
>>3054347
Хелоу ворл и на симейке выглядит читабельным. А если ты попробуешь тянуть что то посложнее то ты обрыгаешься от кутешного говна, хотя и симейк тащем то не лучше, но им все пользуются, поэтому легко копипасть из гугла любой вопрос, а тебе кажется именно это и важно, и раз уж так получилось что ты ни в том ни в этом не разбираешься, то не начинай с хуйни которая никому не нужна, это странно довольно
Аноним 19/02/24 Пнд 22:23:47 #910 №3055220 
Современный симейк не так уж и ужасно выглядит
Аноним 19/02/24 Пнд 22:34:54 #911 №3055236 
>>3055220
Что, теперь это не язык программирования, а декларативный конфиг?
Аноним 19/02/24 Пнд 22:38:25 #912 №3055237 
>>3055236
И то и то
Аноним 19/02/24 Пнд 23:03:15 #913 №3055252 
ya make yatool
Аноним 20/02/24 Втр 02:47:53 #914 №3055458 
>>3055200
Понятно
Аноним 20/02/24 Втр 02:54:48 #915 №3055461 
>>3055200
>не начинай с хуйни которая никому не нужна
кстати добро пожаловать в тред хуйни которая никому не нужна
Аноним 20/02/24 Втр 09:27:52 #916 №3055599 
>>3054865
Нас тут много.
Впрочем, тот парень слишком радикален.
Аноним 20/02/24 Втр 11:18:11 #917 №3055733 
>>3055599
>Нас тут много.
>cmake
>дед
Дух старой школы живет только в автоконфе, говорите открыто и смело в лицо! M4!
Аноним 20/02/24 Втр 13:07:49 #918 №3055866 
>>3055733
Не, с m4 ты перегнул. Кто конфигурил sendmail в прошлом веке, тот будет плеваться.

И да, судя по тому, что ты знаешь что такое m4, ты и сам дед.

p.s. а мне для всего классического make хватает.
Аноним 21/02/24 Срд 06:43:28 #919 №3057135 
>>3055866
Я лично пользую м4 для одного малоизвестного ассемблера, а хули делать.
Аноним 21/02/24 Срд 10:10:39 #920 №3057206 
>>3057135
>, а хули делать.
Сесть и написать на плюсах ассемблер.
Твой подход хорош для статьи на Хабре, чтобы карму набить.
Аноним 21/02/24 Срд 10:15:36 #921 №3057210 
Аноны есть какая-нибудь серия видео на ютубе, где кто-то пишет прогу с нуля, по красоте, с бест практисами, настраивает сборку с нуля и т.д.? А то одно говно нахожу
Аноним 21/02/24 Срд 10:21:53 #922 №3057217 
>>3057210
Ну такого быть не может, потому что разные паузы должны на подумать, иногда не знаешь что писать, иногда вдохновение нахлынет. И 50% времени минимум это дебаггинг и тестирование твоего шедевра.
Аноним 21/02/24 Срд 10:37:40 #923 №3057231 
>>3057217
>Ну такого быть не может
Не знаю почему не может, их дохуя, но конкретно на плюсах не видел, а то что видел бесполезно смотреть
Аноним 21/02/24 Срд 10:40:41 #924 №3057239 
>>3057210
>, настраивает сборку с нуля
Так это разные задачи - писать код и настроить сборку.
Более того, сборка это тоже разные задачи - одно дело написать Makefile, что тоже требует некоторых знаний, и совсем другое дело настроить CI/CD в Гитлабе, что будет посложнее.
Аноним 21/02/24 Срд 10:41:44 #925 №3057243 
>>3057231
> а то что видел бесполезно смотреть
Вариант - у тебя слабый бэкграунд.
Аноним 21/02/24 Срд 10:46:11 #926 №3057252 
>>3057239
>одно дело написать Makefile, что тоже требует некоторых знаний, и совсем другое дело настроить CI/CD в Гитлабе, что будет посложнее.
Чушь. Мейкфайл написать нереально, непонятная хуйня, а сборку на гитхабе спокойно делал с нуля, это банальные команды консоли линукса или винды, ты их и так уже знаешь, а мейкфайл это шизофазия которую надо полностью учить с нуля, что куда сложнее.
Аноним 21/02/24 Срд 10:54:33 #927 №3057269 
>>3057243
У меня вообще нет бекграунда, иначе зачем мне такие видео. А то что просмотр курса по созданию окна на winapi по 20 видео по 2 часа не принезет пользы я понять сам могу
Аноним 21/02/24 Срд 11:03:44 #928 №3057282 
>>3057252
>Мейкфайл написать нереально, непонятная хуйня

Самый простой Makefile - руками написать компиляцию в цели all.
И затем постоянно его усложнять, добавляя регулярки из примеров.

Реально, самый простой Makefile это две строчки. Две!
Аноним 21/02/24 Срд 11:24:43 #929 №3057308 
>>3057206
Т.е. мне нужны шаблоны для языка, надо язык с нуля писать? Нахуя? Взял м4 и доволен как слон.
Аноним 21/02/24 Срд 11:29:19 #930 №3057318 
>>3057252
>Мейкфайл написать нереально
Мэйкфал - это буквально самое первое и простое средство для сборки всего, когда нет специальных вопросиков, буквально стандартный подход во всём, где нужна сборка чего-либо.
Аноним 21/02/24 Срд 12:01:17 #931 №3057371 
>>3057308
Что архитектура такая? Показывай.
Аноним 21/02/24 Срд 12:30:31 #932 №3057428 
>>3057318
Самое первое средство это С++Builder или Visual Studio.
Самое второе средство это Cmake.
Это для полезной работы. А для нитакусечной хипстоты дрочить ради дроча, пойдет одинаково что угодно, кроме перечисленного выше. Понтоваться одинаково удобно чем угодно никому не нужным, и make не исключение.
Аноним 21/02/24 Срд 12:34:13 #933 №3057437 
>>3057428
Как ты с симейком собрался собирать проект без мейка?
Аноним 21/02/24 Срд 13:11:05 #934 №3057519 
>>3057428
Походу ты болен неизлечимо, если крошишь батон на дедушку make.
Даже страшно неприятно думать какие задачи решаешь и за что денюжку получаешь.
Аноним 21/02/24 Срд 14:18:38 #935 №3057661 
>>3012308 (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[mailto:sage] Аноним 21/02/24 Срд 14:38:29 #936 №3057721 
>>3057661
Выше в треде базу уже давали:
> реыеренс - мистэйк
А твоя функция - говно.

Ретерн тайп замени на указатель. И у ретерна убери разадресацию. И не еби мозги.
Аноним 21/02/24 Срд 15:24:45 #937 №3057826 
>>3057371
MIX
Аноним 21/02/24 Срд 15:29:09 #938 №3057842 
>>3057428
Ебать еблан, как ты условный абстрактный язык_нейм собрался собирать, сам скрипты писать будешь?
>cmake
Эта параша кстати и генерит мэйкфайлы лул.
>понтоваться
Ух еблан ты, конечно. Мэйк - это как ходить.
Аноним 21/02/24 Срд 15:31:44 #939 №3057847 
>>3057661
>Она возвращает адрес x, получается
Нет, она возвращает ссылку на int
>int x2 = func();
Копирование значение из ссылки
>int& x1 = func();
Новая ссылка
Аноним 21/02/24 Срд 15:41:32 #940 №3057871 
>>3057282
>Реально, самый простой Makefile это две строчки. Две!
Как минимум надо еще генерацию файлов зависимостей добавить, чтобы объектный файл пересобирался, когда хидер поменяется. Это еще строчек пять. Плюс если у тебя в проекте есть файлы с одинаковыми именами, надо городить сборку в подкаталогах - это опять же лишний геммор. И так пошло-поехало, твой простой мейкфайл из двух строчек растет как на дрожжах. Симейк в разы проще, там реально несколько строк для простых проектов, но компиляция на маленьком проекте гораздо тормознее будет, конечно.
Аноним 21/02/24 Срд 15:44:18 #941 №3057881 
>>3057252
>Мейкфайл написать нереально, непонятная хуйня
Там очень простой принцип в основе работы, и синтаксис совсем не сложный. Если понимаешь как он устроен, мейк-файлы легко писать. Автомейк - полная жопа, да. Но там тоже можно разобраться.
Аноним 21/02/24 Срд 15:50:24 #942 №3057902 
>>3057881
>Автомейк
Автоконф, автомейк это доп. шняга сбоку, соглашусь авототулз уже СЛОЖНА даже для дедов, не только для зумерков.
Аноним 21/02/24 Срд 16:53:17 #943 №3058026 
Сегодня весь день искал баг который заключался в том что

вместо memcpy(mapped_data, data, size);
написал memcpy(mapped_data, &data, size);

И это на удивление запустилось и сломалось совсем в другом месте
Вопрос - как такие баги отлавливать? Есть ли возможность в дебаге как то проверять чтобы не обращаюсь ли я к чужой памяти, а если этои случается крашилось и говориле что где и куда протекло?
Аноним 21/02/24 Срд 17:33:48 #944 №3058067 
>>3058026
Никак, значек маленькиц, да подленький. Поэтому у меня недавно появилась идея редактора, где он будет красным цветом обводить те строчки кода, изменение которых может существенно поменять логику программы. Это будет полезно и для тех, кто работает с чужим легаси кодом. Вот смотришь на код, много всего понаписано, а по факту ядро программы это несколько строчек, остальное балласт из свистелок.
Аноним 21/02/24 Срд 17:52:49 #945 №3058088 
>>3058026
Стопудово ты под Линуксом. В Visual Studio она бы тебя мордой лицом ткнула в ошибку. Просто по стеку поднимаешься и видишь проблему.

В юниксах компиляй с ключом -g и запускай
gdb youprogram

где youprogram - имя твоей софтинки.
И как упадёт - смотри стэк.
Аноним 21/02/24 Срд 17:56:54 #946 №3058092 
>>3058088
>Стопудово ты под Линуксом.
Nope, но генератор в симейке ninja

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

Поэтому дебагер вобще нихрена не помогал
помог nvidia insight, но и то я случайно увидел что у меня в буфере мусор валяется
Аноним 21/02/24 Срд 18:27:18 #947 №3058130 
>>3058092
>у меня ничего не крашилось на самом memcpy

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

Вообще из практики - обычно падает довольно быстро, на самом memcpy, Особливо если size достаточно большой.
Аноним 21/02/24 Срд 18:42:16 #948 №3058152 
>>3058130
>А компилятор не ругался ли?
А с чего ему, data это был void⚹, а я вместо него передал void⚹⚹ тоже указатель

> динамический аллокированный?
this
Аноним 21/02/24 Срд 20:40:57 #949 №3058318 
image.png
Что это за пиздец? Как именовать филды/типы/переменные и не обосраться?
Аноним 21/02/24 Срд 20:42:26 #950 №3058320 
image.png
Может вот так нормально?
Аноним 21/02/24 Срд 20:44:37 #951 №3058326 
image.png
Или так вообще?
Аноним 21/02/24 Срд 21:20:39 #952 №3058389 
>>3058318
Тебе инт32 ни о чем не говорит?
Аноним 21/02/24 Срд 21:28:08 #953 №3058401 
>>3058389
Это не typedef, да и выглядит убого это _t
Аноним 21/02/24 Срд 21:35:56 #954 №3058420 
>>3058320
>>3058326
И так, и так - нормально. В целом нормально.
Первое похоже на Майкрософт стайл.
Аноним 21/02/24 Срд 21:37:35 #955 №3058421 
>>3058401
Не, _t выглядит не убого.
Аноним 21/02/24 Срд 21:38:36 #956 №3058423 
>>3058026
>вместо memcpy(mapped_data, data, size);
>написал memcpy(mapped_data, &data, size);
Мне иде это полюбас бы рисовало варнинг на полэкрана за неявное приведение типов. Вы там в блокноте чтоле пишете.
Аноним 21/02/24 Срд 22:13:29 #957 №3058494 
>>3058389
О чем это должно нам говорить? Наличие этого типа вообще не гарантируется стандартом.
sage[mailto:sage] Аноним 21/02/24 Срд 22:18:08 #958 №3058503 
>>3058318
Class_character
Enum_race
Member_race;
Parameter_ebuchiy_race
Аноним 21/02/24 Срд 22:21:01 #959 №3058510 
>>3058503
Бьерн, залогинься
Аноним 21/02/24 Срд 22:28:52 #960 №3058526 
>>3058423
Clang-tidy молчит
Аноним 22/02/24 Чтв 01:32:00 #961 №3058711 
>>3058494
Чел ты конченый.
>>3058401
Нет. Это идельный способ именования типов.
Аноним 22/02/24 Чтв 01:47:52 #962 №3058714 
>>3058494
Ну тогда инт_леаст32_т.
Аноним 22/02/24 Чтв 01:57:18 #963 №3058715 
>>3058711
>Это идельный способ именования типов.
С хуя? Я без _t знаю что это тип, курсором цветом специальным выделяется, или курсор наводишь и видишь что конкретно за тип
Аноним 22/02/24 Чтв 02:21:56 #964 №3058719 
17078478870200.mp4
>>2980771 →
Начался новый семак короче у меня в универе, подскажите книжку/серию видео для тех кто базу С уже как бы могет а в С++ не рубит ваще.
Я гуглю инфу а мне рассказывают что такое интеджер.
Аноним 22/02/24 Чтв 02:33:23 #965 №3058721 
>>3058326
В большинстве проектов типы с большой буквы, переменные - с маленькой.
Аноним 22/02/24 Чтв 02:43:47 #966 №3058722 
>>3058026
Для gcc и clang -fsanitize=address компилятору и линкеру.
Аноним 22/02/24 Чтв 06:51:16 #967 №3058756 
>>3058423
Если data - указатель, то хуй бы что выдало.
>>3058722
Не факт, что асан что-то заметит в рантайме.
Аноним 22/02/24 Чтв 07:42:00 #968 №3058769 
>>3058722
Ох анончик, это именно то что я искал, как раз таки мою ошибку сразу детектит
Смог кстати даже на msvc запустить
2ch2G !!ON52CRehShRpdl6N 23/02/24 Птн 20:57:23 #969 №3061089 
сап хз куда ещё писать можете послать в более подходящее место
я компилировал программу на си и винапи
там код простой
но вот что не понял
C:\tcc32\tcc.exe main.c -luser32 -lkernel32 -lgdi32 -o main.exe
где хранятся эти >>-luser32 -lkernel32 -lgdi32
библиотеки?
в mingw они в папке lib
а в tcc их нет вообще
откуда он их берёт?
Аноним 23/02/24 Птн 23:15:25 #970 №3061295 
>>3061089
A) tcc.exe знает где они лежат
Б) Поковыряйся в path
Аноним 23/02/24 Птн 23:42:13 #971 №3061333 
>>3061089
Что за tcc? Tint C Compiler или что-то другое?
Аноним 24/02/24 Суб 00:03:19 #972 №3061362 
>>3058719
> Я гуглю инфу а мне рассказывают что такое интеджер.

Пропусти те главы где про интеджеры рассказывают, начни со следующих
Аноним 24/02/24 Суб 00:26:45 #973 №3061380 
>>3061362
>Пропусти те главы где про интеджеры рассказывают, начни со следующих

И как он узнает про такое приведение типов?

i=int(0.1);
Аноним 24/02/24 Суб 00:31:32 #974 №3061388 
>>3061380

Но пусть не скулит тогда, что ему про интеджер опять читать приходится
Аноним 24/02/24 Суб 01:09:49 #975 №3061436 
>>3061333
да эт он
Аноним 24/02/24 Суб 14:59:00 #976 №3061792 
Какая же блютуз кривожопая технология-говно. Просто отборнейшие дауны занимаются её поддержкой. Я их блять просто ненавижу
Аноним 24/02/24 Суб 15:23:20 #977 №3061808 
>>3061792
Нет. Она очень хороша. Имплементации могут быть говном, а как технология Bluetooth великолепен.
Аноним 24/02/24 Суб 16:01:11 #978 №3061830 
>>3061808
> как технология Bluetooth великолепен
Нихуя подобного. Лучше бы на основе вафли сделали LE-реализацию. БТ порой даже в метре от приёмника отъебывает при перекрытии мясом, например пользоваться лёжа БТ-калом настоящая боль, если приёмник не в прямой видимости. У меня до сих пор 5 штук приёмников лежат, когда я ебался и пытался заставить их стабильно работать в стоящем на полу ПК. Стоит только параллельно расположенной ноге оказаться между любым устройством и приёмником - идут дикие потери. Как PCI/встроенный в материнку работал как говно, так и юсбишные, 15-сантиметровые антенны не дают никакого результата. В итоге пришёл к единственному рабочему костыльному решению - приёмник поднять над головой через удлинитель юсб. Я ебал такие технологии, плюнул бы в ебало тому кто это придумал. Почему древняя вафля на тех же 2.4 ггц пробивает стены, а этот кал даже в паре метров работает как дрисня? То что БТ жрёт мало - это не оправдание, ведь мне не дают выбора, я страдаю по умолчанию.
Аноним 24/02/24 Суб 17:21:47 #979 №3061965 
>>3061830
>То что БТ жрёт мало - это не оправдание
Не оправдание, это предназначение. Какая-нибудь гарнитура или ручные часы с вайфаем бы сдохли за пол часа, а так работают месяц.

>я страдаю по умолчанию
Ты серешь. Если бы дали выбор, каждый дебил бы врубил полную МОЩЬ и его пиздюлька тут же сдохла, а потом бы орал что устройство говно. Каждый тупорылый хуесос хочет всё и сразу, чтобы не жрало и чтобы стены пробивало. Так не бывает, дебил.
Аноним 24/02/24 Суб 17:29:51 #980 №3061975 
>>3061965
> за пол часа, а так работают месяц
Фантазии приглуши свои. Легко гуглится энергопотребление обоих - у БТ всего в 2-3 раза ниже.
Аноним 24/02/24 Суб 18:35:39 #981 №3062061 
image.png
надо делать такой мощьности чтобы мозги нахуй запекало
хотя в принципе 5G идет в правильном направлении
Аноним 24/02/24 Суб 18:50:12 #982 №3062076 
>>3061975
Блютус это беспроводной провод. Никто не таскает провод через стены. Стандартный провод около метра всего. Но тупорылые свиньи конечно считают, раз физического провода нет и можно отойти, значит можно отойти и на километр и оно обязано работать. Нет, не обязано, это ты серешь тупостью. Никто не говорил, что блютус это радиостанция для вещания.
Аноним 24/02/24 Суб 18:57:01 #983 №3062081 
>>3062076
> беспроводной провод
Пиздос, по праздникам таблетки не дают?
Аноним 24/02/24 Суб 22:48:34 #984 №3062428 
>>3061808
А ты с этой технологией работал? Или тебе просто нравятся эйрподсы к фифону подключать?
Технология хорошая только разве что как задумка. Но при этом у нее куча проблем от секурности до физического уровня про который уже писал анон выше. Хотя современные подходы в сетях и помогают нивелировать эти проблемы, но говно здесь закопано действительно в имплементация и поддержке, особенно от вендоров и линукса. Люди банально топы беспроблемных свистков составляют, чего говорить про дурачков которые занимаются в своем гараже имплементацией блюеза. Занимаются, только вот остальным, что они там делают сообщить забыли. И тебе приходится лезть в исходники литературно чтобы его настроить с их наркоманскими дебасами. Не то чтобы я жаловался, ведь на чем пишем забыл что-ли. Но разработка и так состоит из постоянного копания в легаси говне, а когда тебе вставляют еще одну палку, ты просто плюешь и идешь на обед вместо работы понимая что убьешь не один день, как будто других дел нет
Аноним 24/02/24 Суб 23:14:33 #985 №3062439 
двойные решеточки.. знаки подчеркивания..
все это былоа так замечательно там магически притягательно..
25 лет назад
какой же я дурак
Аноним 25/02/24 Вск 00:12:19 #986 №3062464 
>>3062439
Да, классно было программировать на препроцессоре.
Moonlover 25/02/24 Вск 10:19:06 #987 №3062668 
Я занялся имплементацией Форта на плюсах.
Сначала интерпретатор Форта, затем компилятор.
За вчера сделал половину интерпретатора. Если повезёт, сегодня интерпретатор закончу. Думал за день спраалюсь, но дня на интерпретатор не хватило. Может и двух дней не хватит, а может и хватит. Руки чешутся сделать компилятор Форта.

Задача весьма простая. И немного интересная.

Не спрашивайте зачем - придёт время - покажу и расскажу.
Аноним 25/02/24 Вск 10:28:24 #988 №3062674 
>>3062668
👍
Аноним 26/02/24 Пнд 02:06:53 #989 №3063779 
Пацыки, а godbolt это он в ассемблер для какого компилятора выводит? FASM, MASM, NASM?
Аноним 27/02/24 Втр 22:20:55 #990 №3066459 
>>3062668
Компилятор-то зачем? В смысле, прикольно, конечно, но форт и так достаточно быстрый для встраиваемого языка. Тупо инлайн прикрутить, и уже ускорение достаточное. Интереснее именно на самом форте писать, ломать устоявшиеся парадигмы в мозгу, что глобальный стейт - это грех, что данные не могут быть кодом, и т.д.
Аноним 27/02/24 Втр 23:22:41 #991 №3066504 
>>3066459
>Компилятор-то зачем?
Расскажу после. Серьёзно. Вероятно к тому времени тему перекатят.

А покамест расскажу как заплутал - когда дошёл до теста вложенного цилка, понял что пошёл не по тому пути, а тут и выходные закончились и навалилась как всегда работа. Сейчас продумываю и буду переписывать по канонам, а не по наитию. Но в принципе - неплохой опыт. Примечательно что ошибки проектирования вылезли когда вот уже "всё почти готово".
Аноним 27/02/24 Втр 23:26:41 #992 №3066509 
Форт - хуйня без задач. На его фоне даже от хаскелля какой-то толк есть.
Аноним 27/02/24 Втр 23:44:09 #993 №3066521 
>>3066509
Форт в космос летал, в отличие от хаскеля. Да и сейчас - это самый простой способ удобно работать с железом. Без говна с тулчейнами, рекомпиляцией и заливкой билда. Написал форт и асм на том же форте, минимум обвязки - и ты король, все тебе подвластно. Но это язык для одного программиста-энтузиаста, конечно. С современным подходом к разработке далеко не уедешь.
Аноним 28/02/24 Срд 08:48:39 #994 №3066660 
>>3066521
> Без говна с тулчейнами, рекомпиляцией и заливкой билда
Объясни ньюфагу, что это значит? Какие проблемы с железом у стандартных инструментов?
Аноним 28/02/24 Срд 12:20:30 #995 №3066805 
https://www.youtube.com/watch?v=T4ZUMvALdKI


просвящайтесь
Аноним 28/02/24 Срд 12:25:03 #996 №3066807 
56815cfa7ca0ed7d0f7ce5e80143915882b3169b17d7c1bd1088b4629f75913e.jpg
Аноним 28/02/24 Срд 14:15:51 #997 №3066900 
>>3066805
вопросы религии обсуждают в /re
Аноним 28/02/24 Срд 15:46:21 #998 №3067058 
>>3066660
>Какие проблемы с железом у стандартных инструментов?
Проблем нет, есть стандартный цикл: скомпилировал, записал прошивку, запустил-отдебажил, ошибка - все по-новой. Форт позволяет это делать интерактивно, через REPL, что гораздо удобнее.
Аноним 28/02/24 Срд 16:52:57 #999 №3067145 
>>3067058
Интерпретатор что ли? Так они тормозные пиздец.
Аноним 28/02/24 Срд 17:38:11 #1000 №3067237 
>>3067145
У Форта достаточно шустрый интерпретатор. Он скорее как транслятор. И при желании программу на Форте можно в ассемблер перегнать. Для Форта кодогенерация раз эдак в 100 проще, чем для Си, а тем более для С++.
Аноним 28/02/24 Срд 19:28:19 #1001 №3067333 
>>3067145
>Интерпретатор что ли? Так они тормозные пиздец.
Минимальный ассемблер под машину пишется буквально за вечер. Вот для ARM, например, 400 строк:
https://github.com/forthy42/gforth/blob/master/arch/arm/asm.fs
Аноним 28/02/24 Срд 20:38:36 #1002 №3067410 
>>3067237
>достаточно шустрый интерпретатор
Интерпретатор - кошмарно тормозной по определению, любой. Твоя "удобная интерактивная отладка" стоит -100 ~ 1000 раз производительности. Компиляцию и сделали чтобы не тыквить компьютеры днищенскими ограничениями. Так что нихуя твоя ковырялка строчная не лучше компиляции с заливкой нативного кода, потому что области применения совершенно разные. Плюс разве что, если можно поковырять интерпретатор для отладки, а потом скомпилить и залить как следует, тогда да.
Аноним 28/02/24 Срд 23:12:29 #1003 №3067557 
>>3067333
Ну ни за вечер, но достаточно просто. Надеюь ты ссылку на свой код дал, который за вечер написал.

Что касается Форта то я тоже его за вечер написал и он даже что-то выполнять начал, от чего я сюда прибежал хвалиться. На деле пришлось перепроектировать и переписывать. За вечер пишутся программы которые как бы работают, а лезешь что-то улучшать/исправлять/дополнять и понимаешьчто спешка хороша при ловле блох, а не в программировании.

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

И насчёт проектирования тоже мысли есть. Вот его неплохо делать когда уже по граблям прошёлся. На прототипе шишек набил - самое время проектировать.
Аноним 29/02/24 Чтв 06:05:58 #1004 №3067681 
>>3067557
>самое время проектировать
Пойти на сайт и скачать этот форт не пробовал? Уже всё написано, и получше тебя.

Очень удобно проектировать то, что никому не нужно включая тебя самого. Никто не пользуется, а значит тебя ебалом в проблемы не ткнёт. Можно спокойно лепить говно и ничего тебе за это не будет, воображая себя великим архертехтаром с идеальным кодом.
Вот только программирование это не код, а программы. Программы определяются их пользователями, а не тобой с твоим говнокодом в манямирке.

Поэтому тупые ленивые говнари и не делают ничего реального, а только "переписывают" уже написанное, естественно всегда хуже оригинала, ведь это снимает всю ответственность за высираемое говно. Что может хорошего написать хуесос даже не начавший толком ничего писать, но уже сделавший всё, чтобы прикрыть свою жопу, откосить от работы, от ответственности. Заранее не собирается ничего делать, но идет имитировать дело с гордо поднятой головой. Тупые уроды.
Аноним 29/02/24 Чтв 09:32:50 #1005 №3067751 
>>3067681
Жёстко ты приложил офисных рабов.
Аноним 29/02/24 Чтв 12:39:58 #1006 №3067958 
>>3067681
Ты хто? Брысь. Срыгни отсюда.
Аноним 29/02/24 Чтв 14:17:41 #1007 №3068082 
>>3067557
>Ну ни за вечер, но достаточно просто. Надеюь ты ссылку на свой код дал, который за вечер написал.
Первый раз, с нуля - не за вечер, конечно. Потом подобное уже гораздо быстрее пишется.
Аноним 29/02/24 Чтв 20:47:27 #1008 №3068590 
>>3068082
>за вечер
А тем временем в реальности: репортишь баг, прошло 10 лет, баг так и висит.
Аноним 29/02/24 Чтв 20:53:32 #1009 №3068601 
>>3068590
- Правьте баги сами
- Кто, я?!!!
Аноним 29/02/24 Чтв 23:59:25 #1010 №3068799 
Подсобите плз. Собираю кутовую приложуху, нужно максимально оптимизировть бинарь. Нагуглил про стрип, lto, собираю в релизе и статически. Получилось неплохие 20мб. Есть еще хаки? Что почитать?
Аноним 01/03/24 Птн 00:09:14 #1011 №3068818 
>>3068799
Ещё -Os, но сильно он не ужмёт.
Аноним 01/03/24 Птн 00:18:35 #1012 №3068828 
>>3068799
>>3068818
Нормально жмёт.
a strip ключики имеет. Если заиграться, то можно вырезать чть-нибудь полезное, от чего программа не будет запускаться.

И всё же 20 Мб это как-то много. Может быть библиотеки с отладочной информацией линкуешь? Т.е. компиленное тобой поажто а кьютишные либы не пожаты. Попробуй саму Qt собрать с ключом -Os.
Аноним 01/03/24 Птн 00:24:14 #1013 №3068846 
image.png
>>3062668
Ну вот и альфа версия интерпретатора Форта заработала. Сырое-сырое, но таки заработала.

Пока в 960 строк поместилась, но не гнался за компактностью.
Аноним 01/03/24 Птн 00:33:08 #1014 №3068861 
>>3068799
https://upx.github.io/
Аноним 01/03/24 Птн 00:35:48 #1015 №3068862 
>>3068818
>>3068828
>>3068861
Благодарю, коллеги
sage[mailto:sage] Аноним 01/03/24 Птн 13:52:26 #1016 №3069279 
Есть проект под линукс и гцц.
Большая часть универсальная, поэтому портировать под винду и мсвц было не сложно.
Но встал вопрос, если вдруг захочется внезапно собрать с мингв, то какие буилтины и интринсики использовать - гццсшные или виндовые?
потому как беглый взгляд на сурсы мингв показал что некоторые мсвц буилтины реальзованы, некоторые дергаются из винапи, но так же присутствуют чисто гцц буилтины
Аноним 01/03/24 Птн 17:15:10 #1017 №3069481 
>>3069279
Чертова сажа.
Аноним 01/03/24 Птн 17:43:32 #1018 №3069530 
>>3069279
#ifdef _GOVNO_
че забыл уже как выглядит кроссплатформенность на крестах
Аноним 01/03/24 Птн 18:22:36 #1019 №3069558 
>>3069530
> читай пост
> думай
> отвечай
Мотай на ус.
Аноним 01/03/24 Птн 18:40:30 #1020 №3069568 
>>3069558
чел если ты обмазываешься интринсиками значит уже принял решение прибить прогу к одной платформе и компилеру
Аноним 01/03/24 Птн 18:52:49 #1021 №3069576 
>>3069279
Суть в следующем - ВЕСЬ развитый МИР пишет бизнес логику в Вижуал Студии. И из неё переносит на линуксы и встраиваемые системы. Вы пошли другим путём, поэтому страдаете.
Аноним 01/03/24 Птн 18:52:55 #1022 №3069577 
>>3069568
>>3069558
Аноним 01/03/24 Птн 18:55:09 #1023 №3069581 
>>3069577
Аноним 01/03/24 Птн 19:23:00 #1024 №3069603 
>>3069576
Еще один особенный. Пост прочесть не способен, но вот бреда высрать горазд.
Аноним 01/03/24 Птн 19:24:21 #1025 №3069606 
>>3069576
Поделись копиумом
Аноним 01/03/24 Птн 19:48:35 #1026 №3069628 
>>3069603
>Пост прочесть не способен,
ССЗБ.

Ещё раз - с винды все портируется влёт на любую платформу. В обратную сторону - ебись как хочешь. Что непонятного?
Аноним 01/03/24 Птн 20:11:57 #1027 №3069669 
>>3069628
В обратную сторону никому и не нужно, если бы ты читать умел то понял бы.
Аноним 01/03/24 Птн 20:15:33 #1028 №3069676 
>>3069628
> любую платформу1

1. линупс
Аноним 01/03/24 Птн 20:17:15 #1029 №3069677 
>>3069669
Первый разумист на хз сколько это же не смен правда? дебилов.
>>3069628
Даже отвечать таким не хочется уже, реально нобрэйнеры. а потом удивляются чего это говно вокруг, да потом что толпы таких неучей как ты не способны прочесть двух предложений
Аноним 01/03/24 Птн 22:28:56 #1030 №3069859 
>>3069669
> если бы ты читать умел то понял бы.
Хорошо. Я невнимательно прочитал. Вопрос бы был вот тут:

> Но встал вопрос, если вдруг захочется внезапно собрать с мингв,
Звучит как обмазаться говном.
mingw это лютая хуета и мрезость, к которой лучше не прикасаться.
Аноним 01/03/24 Птн 23:20:55 #1031 №3069942 
>>3069859
Clang/gcc > Mingw > msvc > other shit
Но Дискасс
Аноним 01/03/24 Птн 23:26:52 #1032 №3069957 
>>3069942
Нет. Правильно только так:
intel C++ > msvc > clang/gcc

А больше ничего и нет, кроме компилятора для какого-то специализированного железа, типа DSP.
Аноним 01/03/24 Птн 23:30:03 #1033 №3069960 
Меня заебало сидеть в дебаггере, меня заебали плюсы, но еще больше меня бесит весь тот пласт сишного говна который тянется как понос за собакой обтеревшей жопу об пол. У меня просто зубы скрипят, у меня под глазами мешки и я еду крышой. Помогите
Аноним 01/03/24 Птн 23:32:21 #1034 №3069970 
>>3069960
Слабый ты. А "сишное говно" - лучшее что есть в плюсах.
Аноним 01/03/24 Птн 23:32:54 #1035 №3069972 
>>3069970
Пошла нахуй дура
Аноним 01/03/24 Птн 23:34:43 #1036 №3069976 
>>3069957
дед, таблетки
Аноним 01/03/24 Птн 23:39:40 #1037 №3069987 
image.png
>>3069960
>Помогите
Покажи скриншот кода. Если ты много сидишь в дебагере, значит что-то не так с твоим кодом.

Думаешь в C# не приходится сидеть в дебагере? Четырё грёбаных дня просидел в дебагере, решая ДВЕ задачи. Но там и проект вот на картинке, который пишется более десятка лет большой и дружной толпой.
Аноним 01/03/24 Птн 23:42:41 #1038 №3069996 
>>3069976
Intel C++ для числодробилок. Оптимизирован под скорость. Давно не интересовался вопросом, но когда последний раз смотрел, он был самый быстрый. Точнее, сгенерированный им код самый быстрый.
Аноним 01/03/24 Птн 23:43:05 #1039 №3069999 
>>3069987
> Дептс оф инэритенц
> 12
Вы там совсем ебу дали?
Аноним 01/03/24 Птн 23:44:44 #1040 №3070002 
>>3069996
Быстрый под чем? Под Интел? Так серваки на амд.
А если нужно действительно быстро считать - fpga.
Да и не понятно нахуя тут вообще тогда плюсы. Си и погнал.
Аноним 01/03/24 Птн 23:47:31 #1041 №3070007 
>>3069999
>Вы там совсем ебу дали?
Не буду деанониться, но этим продуктом пол мира пользуется. Если не весь. Причём, давно.
Аноним 01/03/24 Птн 23:48:25 #1042 №3070008 
>>3070002
А плюсы не тормознее Си. Если осмысленно переехал на плюсы с Си.
Аноним 01/03/24 Птн 23:56:50 #1043 №3070018 
>>3069987
> Четырё грёбаных дня просидел в дебагере, решая ДВЕ задачи.
Да пиздец, заебали джуны, нихуя не делают и ещё денег просят. Увольнял бы вас нахуй, хуже нейросеток, наху.
Аноним 01/03/24 Птн 23:57:33 #1044 №3070021 
>>3070008
Плюсы дают тебе больше способов написать хуйню. А когнитивная сложность у плюсов ещё и выше.
Плюсы это вообще нонсенс, числодробилки помноженные на ооп и Энтерпрайз.
Аноним 01/03/24 Птн 23:58:41 #1045 №3070025 
>>3070007
Это понятно, вы крутые.
Но какие нахуй 12 наследований
Аноним 01/03/24 Птн 23:59:47 #1046 №3070026 
>>3070021
> Плюсы
> ооп
Что-то одно выбери, джавапетух.
Аноним 02/03/24 Суб 00:02:40 #1047 №3070029 
>>3070026
Дедуль, спокуху, за таблетками уже пошли
Аноним 02/03/24 Суб 00:05:29 #1048 №3070032 
>>3070025
>Но какие нахуй 12 наследований
Поверь, там это к месту.
Это писал основатель компании, который скромно занимает должность технического директора и ебашит в одно лицо столько, как половина разработчиков компании. Нормально спроектировано.

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

И если что - я не тот, основал компанию, не Chief technical officer.
Аноним 02/03/24 Суб 00:16:12 #1049 №3070039 
>>3070032
Я хз, я же плюсовик, у нас не принято более 3 уровней наследования. А за множественные вообще по рукам бьют.
Да не, код нормальный. И на ревью ебут.
Аноним 02/03/24 Суб 00:19:09 #1050 №3070040 
>>3070039
Так в Сишарпе множественного наследования нет. И это неплохо в принципе. Я и на плюсах отказался от множественного наследования. Один предок и если надо, то интерфейс. Хватает.
Аноним 02/03/24 Суб 00:20:57 #1051 №3070041 
>>3070040
А, ну тогда заебись.
У нас это средство уничтожения архитектуры осталось. Нам все опасные игрушки разрешены.
Аноним 02/03/24 Суб 00:40:49 #1052 №3070052 
>>3069960
Что ты такое делаешь хоть? Какая область? Дебаггер и си - это что-то низкоуровневое или с кучей оптимизаций вручную (скорее всего уже не нужных в 2024).
Аноним 02/03/24 Суб 00:53:48 #1053 №3070065 
>>3069576
> ВЕСЬ развитый МИР пишет бизнес логику в Вижуал Студии.
Весь развитый мир сейчас на маках сидит поголовно. Винда - это специфический мир энтерпрайза и всякого офисного говна. Плюс наследники юникса - это абсолютное большинство систем сейчас, винда - отдельный мир, где все несовместимое и особенное в плохом смысле.
Аноним 02/03/24 Суб 00:58:08 #1054 №3070068 
>>3070065
>Весь развитый мир сейчас на маках сидит поголовно.
Чушь. Разработчики не используют маки. Точнее, используют если пишут для Айфонов. Потому что выбора нет. Видишь кого с яблоком - это или девопсина, или какой-то менджер.
Ни один разработчик в здравом уме не выберет Макбук.
Аноним 02/03/24 Суб 00:59:26 #1055 №3070070 
>>3070040
>Так в Сишарпе множественного наследования нет.
Сейчас и в шарпе и в джаве добавили реализацию у интерфейсов. Это фактически множественное наследование и есть.
Аноним 02/03/24 Суб 01:03:21 #1056 №3070071 
>>3070068
>Ни один разработчик в здравом уме не выберет Макбук.
Торвальдс, например. Он сейчас больше менеджер, конечно, но с кодом работает побольше любого сеньора-помидора.
Аноним 02/03/24 Суб 01:04:56 #1057 №3070072 
>>3070070
Давай вспоминать что такое интерфейс c C++:

Интерфейсным классом называется абстрактный класс, не имеющий данных и состоящий в основном из чисто виртуальных функций. Такой класс может иметь обычные виртуальные функции (не чисто виртуальные), например деструктор. Также могут быть статические функции-члены, например функции-фабрики.
Аноним 02/03/24 Суб 01:06:50 #1058 №3070074 
>>3070071
>Торвальдс, например.

Кто бы о нём помнил сейчас, если бы IBM не решила припустить Microsoft в своё время. И отомстить за OS/2.
Аноним 02/03/24 Суб 01:10:22 #1059 №3070075 
>>3070072
Я про шарп и джаву говорил, там свой мирок. Когда реализация "интерфейса" явно требует определенный стейт от наследника (и разработчики бы стейт добавили, если бы была физическая возможность) - это уже не интерфейс, а миксин, вариант множественного наследования.
Аноним 02/03/24 Суб 01:12:49 #1060 №3070076 
>>3070074
Если бы BeOS выстрелила, мы бы тоже в другом мире жили. Но имеем, что имеем. Винда сейчас откровенно гниет под управлением индуса.
Аноним 02/03/24 Суб 03:21:41 #1061 №3070108 
>>3070065
Да, специфический мир энтерпрайза, при этом доля рынка пк под 90%.
Бля мне даже вот интересно стало, в какой такой офис плюсовых разработчиков можно зайти и увидеть хоть одного с маком? У нас вообще ни одного нет, хотя когда мне покупали ноут, я задумался не взять ли это говно, спасибо что мои школьные мозги тогда все же не настолько были оплавлены
Аноним 02/03/24 Суб 07:50:49 #1062 №3070142 
https://www.youtube.com/watch?v=Cttb8vMuq-Y

чтоб до завтра все посмотрели, буду проверять
Аноним 02/03/24 Суб 08:10:28 #1063 №3070147 
image.png
неужели хороший нейминг так сложно сделать

ну с какого хуя auto копирует значение
Аноним 02/03/24 Суб 08:25:48 #1064 №3070148 
>>3070147
> с какого хуя auto копирует значение
А что должен делать вызов конструктора копирования?
Аноним 02/03/24 Суб 09:03:20 #1065 №3070158 
>>3070148
Ты к чему это спрашиваешь? Я где то говорил что конструктор копирования что то не то делает?
Аноним 02/03/24 Суб 09:10:49 #1066 №3070164 
auto a = auto{x};
Аноним 02/03/24 Суб 09:10:57 #1067 №3070165 
>>3070158
К тому что auto(x) - это вызов конструктора копирования типа переменной х.
Аноним 02/03/24 Суб 09:11:45 #1068 №3070166 
>>3070165
Спасибо что сообщил, но я это знал
Аноним 02/03/24 Суб 09:12:21 #1069 №3070168 
>>3070166
Тогда зачем спрашиваешь?
Аноним 02/03/24 Суб 09:42:49 #1070 №3070185 
>>3070168
Спрашиваю про нейминг
Аноним 02/03/24 Суб 09:53:03 #1071 №3070197 
>>3070185
Что тебе не нравится? auto в данном случае обозначает автоматический выбор конструктора.
Аноним 02/03/24 Суб 12:58:38 #1072 №3070444 
Screenshot20240302-125623YouTube.jpg
>>3070142
Вот на этом месте захотелось его убить.
Аноним 02/03/24 Суб 13:33:37 #1073 №3070475 
>>3070444
Классно же
Аноним 02/03/24 Суб 13:38:42 #1074 №3070479 
>>3070444
Да, сразу какой-то пидоРастией запахло.
Аноним 02/03/24 Суб 13:46:11 #1075 №3070482 
>>3070444
Потрясающая хуйня. Жаль что в 23.
Что можно почитать посмотреть, если такое извращение нравится?
Аноним 02/03/24 Суб 14:14:38 #1076 №3070488 
>>3070142
Короче, из реально годного, это игнорирование пробелов между \ и переводом строки. Вот это правильно.
Аноним 02/03/24 Суб 19:38:14 #1077 №3070859 
image.png
lock в 177 строчке скрывает lock из 173-ей.
Я правильно понимаю, что сокрытие затрагивает только доступность имен, а по факту тут два разных мутекса, которые корректно делают свою работу?
Или что-то может пойти не так?

мопед не мой, пример из говнокнижки
Аноним 02/03/24 Суб 19:41:42 #1078 №3070868 
>>3070859
> а по факту тут два разных мутекса, которые корректно делают свою работу?
Все так
Аноним 02/03/24 Суб 20:19:19 #1079 №3070912 
>>3070444
А чо за println? Я знаю тока printf puts и cout ….
Аноним 02/03/24 Суб 20:32:59 #1080 №3070924 
>>3070912
Надо было видео с начала смотреть. Потихоньку воруют синтаксис у C#.
Аноним 02/03/24 Суб 20:36:36 #1081 №3070937 
>>3070924
У раста
Аноним 02/03/24 Суб 23:00:40 #1082 №3071047 
>>3070444
читает инт из стандартного ввод, умножает его на 2, выводит в стандартный вывод;
на stl с++98 это можно сделать в одну строку бля
Аноним 03/03/24 Вск 06:29:03 #1083 №3071334 
>>3071047
> умножает его на 2,
Только если что то считалось
Если не считалось то ноу интегер

дедуль, пора уже про optional почитать
Аноним 03/03/24 Вск 12:30:12 #1084 №3071502 
>>3070444
Видел в шарпе такую хрень похожую на SQL, проблевался. Теперь и в плюсы притащили. Удваиваю >>3070479
Аноним 03/03/24 Вск 12:45:14 #1085 №3071522 
>>3071502
> Видел в шарпе такую хрень похожую на SQL
Интересное виденье функциональщины
Аноним 03/03/24 Вск 14:23:30 #1086 №3071654 
>>3071334
>дедуль
Ты точно программист? А если программист, то написал хотя бы одну программу?
Аноним 03/03/24 Вск 15:14:58 #1087 №3071740 
>>3071654
Как же от тебя старостью воняет
Forth Moonlover 03/03/24 Вск 16:00:51 #1088 №3071771 
image.png
Неделя трудов в свободное от зарабатывания денег время.
Руки тянутся и сердце рвётся приступить к генерации ассемблерного кода из Форта, но пока повременю - больше тестов богу тестов.

Нафига мне понадобился Форт? А потому что есть "железка", для которой нет ни одного компилятора. Не существует в природе. Есть только ассемблер. Посему выбор Форта, как второго языка, вполне логичен.
нуб 03/03/24 Вск 16:24:45 #1089 №3071788 
https://education.yandex.ru/handbook/cpp/article/classes#menyaem-realizacziyu-sohranyaem-interfejs
Здесь правильно описан интерфейс? Мне казалось, что интерфейсом называют абстрактный класс с виртуальной функцией, не позволяющий создавать объектов.
Аноним 03/03/24 Вск 16:26:30 #1090 №3071791 
>>3071788
> js
Ты тредом ошибся.
Аноним 03/03/24 Вск 16:34:22 #1091 №3071794 
>>3071788
Выше по треду определение интерфейсного класса ->>3070072
Аноним 03/03/24 Вск 16:42:02 #1092 №3071796 
1000004512.jpg
Интерфейс это хэдер файл
Аноним 03/03/24 Вск 19:05:45 #1093 №3072064 
>>3071740
Вот когда напишешь, тогда открывай рот. А до тех пор не открывай - залетит что-нибудь.

А насчёт старости - и ты будешь старый.
И ещё пока у меню хуй стоит, но уже не на всех и не всегда.
Аноним 04/03/24 Пнд 09:59:25 #1094 №3072764 
бля круто
самое главное продолжай держать нас плотно в курсе
Аноним 04/03/24 Пнд 10:18:18 #1095 №3072784 
>>3072064
> Не на всех
А то есть ранее он на всех стоял? Ты из растотреда?
Аноним 04/03/24 Пнд 11:27:29 #1096 №3072856 
Попробовал CLion Nova основан на движке из решарпера, а не clangd, наконец-то что-то рабочее. Нормально работает с C++23, в отличии от clangd, который на working draft STL срёт несуществующими ошибками в IDE, при том что код компилируется на том же clang. Плюс сама подсветка синтаксиса пободрее. Теперь уже можно жить на актуальных крестах и не страдать как будто в блокноте пишешь. А то меня аж трясло от того что в clangd даже мапу инициализировать нельзя без ошибки "нет подходящего конструктора".
Ещё бы это портанули в VS Code, IntelliSense такое же говно как и clangd.
Аноним 04/03/24 Пнд 11:43:25 #1097 №3072864 
>>3072856
Зачем тебе свежий стандарт и что ты пишешь?
Аноним 04/03/24 Пнд 11:51:04 #1098 №3072873 
1582946770760.png
1668430484705.png
>>3072864
А зачем писать на устаревшем стандарте? С++23 уже финализирован, в свежей STL много хороших фич есть, те же ranges, например. clangd отъёбывает даже если С++20 используешь со свежей STL, пикрилейтед этого говна - на первом пике clangd, на втором нова.
Аноним 04/03/24 Пнд 12:00:51 #1099 №3072878 
>>3072873
>>3072873

Походу компилятор для тебя не инструмент, а забавная игрушка.
Аноним 04/03/24 Пнд 12:57:48 #1100 №3072930 
Хочу сделать какие-то пользовательские расширения для моего скомпилированного говна, которые работают без дополнительных вызовов внешних библиотек и прочего говна. Идея токова.

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

Такое вообще возможно? Звучит вроде как как что-то возможное...
Аноним 04/03/24 Пнд 13:51:40 #1101 №3072989 
>>3072878
Ты так и не объяснил какой профит сидеть на два стандарта ниже актуального.
>>3072930
Пиздец поток сознания. В рантайме можешь вообще любое говно смапить в память процесса куда надо, задать нужные флаги защиты странице памяти в винде вызвать VirtualProtect() с флагом PAGE_EXECUTE_READ и выполнить из него код. Разве что DEP под виндой может не дать выполнить код со стека, всё остальное можно.
Но нормальный человек бы сделал подключение внешних плагинов просто через LoadLibrary и GetProcAddress.
Аноним 04/03/24 Пнд 14:07:22 #1102 №3073006 
>>3072989
> Пиздец поток сознания.
Разговаривать пиздец разучился, два месяца ебу алгоритмы
> задать нужные флаги защиты странице памяти в винде вызвать VirtualProtect() с флагом PAGE_EXECUTE_READ и выполнить из него код. Разве что DEP под виндой может не дать выполнить код со стека, всё остальное можно.
Где про эту хуйню читать-то вообще? Там ещё глобалы есть, функции должны глобалы жрать.
> Но нормальный человек бы сделал подключение внешних плагинов просто через LoadLibrary и GetProcAddress.
Там стоимость же есть, а у меня симуляция, не хотеть чтобы плагины жрали во время выполнения даже одного лишнего вызова.
Аноним 04/03/24 Пнд 14:41:25 #1103 №3073048 
>>3073006
> Там стоимость же есть
Так ты сохрани адрес из GetProcAddress при запуске, кастани указатель к функции и вызывай его потом как обычно. У тебя в любом случае будет стоимость динамического вызова при вызове функций плагина. А стоимость чтения плагина с диска такая большая, что вообще похуй как ты его инициализируешь.
> глобалы
Вот от этого избавься. Либо плагину в параметрах передавай указатели на это дерьмо.
Аноним 04/03/24 Пнд 15:19:54 #1104 №3073096 
>>3073048
> У тебя в любом случае будет стоимость динамического вызова при вызове функций плагина.
Так я всю эту маняидею с перезаписью скомпилированного файла и затеял ради того чтобы нахуй убрать любую стоимость, типо я просто переписываю часть скомпилированного файла и он просто становится расширен каким-то пользовательским кодом, который, офк, тоже скомпенлирован.

Сейчас внезапно понял что позволять юзерам вшивать свои бинари в файл это довольно хуевая идея, кхе-кхе, даже если компилировать на сервере и все проверки на сервере будут проходить.
Аноним 04/03/24 Пнд 15:20:10 #1105 №3073097 
>>3072989
>Ты так и не объяснил какой профит сидеть на два стандарта ниже актуального.

Хорошо, я тебе объясню. Очень просто объясню. Ты, вот лично ты, со стороны не выглядишь разработчиком ПО. Ты ассоциируешься у меня с преподом колежда/универа, который в жизни не писал ничего сложнее тестовых задачек, не прикасался к реальным проектам. Что, впрочем, не удивительно для российских реалий - тут 3,5 конторы которым действительно нужен С++.

Вот эти все вопросы: "А что ты писал/написал?" Они остались без ответа. Судя по всему - ничего. Но конечно надравичать на новые стандарты это твоё.

Конечно я могу ошибаться, назвав тебя преподом, тем более что быть преподом это даже престижно как-то. Но реально я сильно сомневаюсь что твой код где-то кем-то используется.
Аноним 04/03/24 Пнд 15:49:45 #1106 №3073124 
>>3072930
Dll
Аноним 04/03/24 Пнд 15:50:59 #1107 №3073128 
>>3073097
Ты нихуя не объяснил, просто ad hominem.
мимо
Аноним 04/03/24 Пнд 15:53:27 #1108 №3073139 
>>3073096
> с перезаписью скомпилированного файла
Тебе тогда придётся патчить весь код в рантайме, а не просто подгружать бинарник и вызывать функции. Тебе в ассемблер надо погружаться, а не тут советов спрашивать.
> любую стоимость
Ты бы сначала выяснил какую такую "любую" собираешься оптимизировать. Оптимизации без бенчей и профилирования - это путь в никуда. По нормальному надо сначала написать рабочий код, а потом уже после бенчей думать и оптимизировать.
>>3073097
Чел, хватит ныть. Вон zig уже в продакшене используют, хотя это такое серые поделие, что даже working draft позавидует. Твоё фанатичное желание сидеть на протухших технологиях никого не волнует, хоть на сишке сиди. C++20 уже много где в продакшене, начиная от нвидии и их CUDA и заканчивая тем же UE5, С++23 в этом году уже в крупные проекты пойдёт понемногу.
> не прикасался к реальным проектам
Это как раз местные шизики из НИИ или студенты учащие кресты по Страуструпу тут топят за старые кресты. В реальности всё немного не так - приоритет в большинстве случаев перед стандартной либой, а не пердольным либам/самописному говну. Буст это вообще ядерный полигон, где обкатывают фичи перед тем как они попадут в стандарт. Фанатичное нежелание использовать современные кресты - это либо тонна легаси, либо утята-шизики. Во всех остальных случаях нет никаких проблем брать актуальную STL.
Аноним 04/03/24 Пнд 16:03:02 #1109 №3073163 
>>3073124
Там же потеря производительности будет каждый раз при запросе функции, не?

>>3073139
> Тебе тогда придётся патчить весь код в рантайме, а не просто подгружать бинарник и вызывать функции.
Не обязательно в рантайме, например это может быть просто какой-то перезапуск процесса или вроде того.
> Тебе в ассемблер надо погружаться, а не тут советов спрашивать.
Главное понять возможно такое или нет в принципе, прямо сейчас не собираюсь это писать. В зависимость от этого буду уже последующую архитектуру лепить.
> Ты бы сначала выяснил какую такую "любую" собираешься оптимизировать.
Стоимость запуска функций в оснвном.
> Оптимизации без бенчей и профилирования - это путь в никуда. По нормальному надо сначала написать рабочий код, а потом уже после бенчей думать и оптимизировать.
У меня симуляции, нужно оптимизировать всё прежде чем говно писать. Оно впринципе уже довольно неплохо работает, но можно и ещё лучше.
Аноним 04/03/24 Пнд 16:12:59 #1110 №3073175 
>>3073163
Ты похоже не понимаешь о какой стоимости идёт речь. Операция деления медленнее чем вызов функции.
Аноним 04/03/24 Пнд 16:21:02 #1111 №3073186 
>>3073139
>C++20 уже много где в продакшене, начиная от нвидии и их CUDA и заканчивая тем же UE5
Знаем, плавали. В паре мест, где можно было обойтись и без новых фич, воткнули модный код, остальные 99.999% кода всё такое же древнее легаси на костылях и бусте вплоть до 98 стандарта.
Аноним 04/03/24 Пнд 16:28:28 #1112 №3073203 
>>3073175
>Операция деления медленнее чем вызов функции.
????
Аноним 04/03/24 Пнд 16:32:26 #1113 №3073213 
>>3073175
Так этож с длл функция, не? Там какая-то другая таблица адресации, ещё какая-то хуйня. Мне кажется дороже чем деление, гораздо.
Аноним 04/03/24 Пнд 17:46:36 #1114 №3073296 
>>3073213
Длсцф/лоадлайбрари один раз при инициализации и потом строго похер.
Аноним 04/03/24 Пнд 18:07:01 #1115 №3073326 
>>3073213
> Там какая-то другая таблица адресации
Какая нахуй разница. У тебя вызов по указателю. Разница лишь в том что оно может быть чуть медленнее когда функция далеко и нет оптимизаций компилятора - он одиночные вызовы часто инлайнит. Ты конечно можешь сделать руками что-то типа такого, но это уже по сути JIT-компилятор с рантайм рекомпиляцией будешь писать.
Аноним 04/03/24 Пнд 18:12:28 #1116 №3073337 
>>3073186
> В паре мест
Сразу видно что ты диванный.
Аноним 04/03/24 Пнд 18:19:41 #1117 №3073348 
>>3073296
>один раз при инициализации и потом строго похер.
Оптимизирую до уровня наносекунд, так что не похер.

>>3073326
>Разница лишь в том что оно может быть чуть медленнее когда функция далеко и нет оптимизаций компилятора - он одиночные вызовы часто инлайнит. Ты конечно можешь сделать руками что-то типа такого, но это уже по сути JIT-компилятор с рантайм рекомпиляцией будешь писать.
Короче в случае чего я могу засунуть не просто функцию, а прямо инлайн бинарный код в мой говноцикл который запускает все функции, и именно так хуячить "пользовательские расширения". Прямо в скомпилированный файл. Верно понимаю?
Аноним 04/03/24 Пнд 18:25:32 #1118 №3073352 
>>3073348
> Верно понимаю?
Если напишешь рантайм рекомпиляцию кода.
Аноним 04/03/24 Пнд 18:57:05 #1119 №3073393 
>>3073352
А нахуя рекомпилировать-то, я просто какие-нибудь флаги выставлю и всё.
По сути мне просто нужно два бинаря сшить в нужном месте, если то что ты описал работает, то сработает и моя фантазия.
Аноним 04/03/24 Пнд 19:13:53 #1120 №3073403 
>>3073393
> мне просто нужно два бинаря сшить в нужном месте
Ты занимаешься глупостями.
Аноним 04/03/24 Пнд 19:28:27 #1121 №3073427 
> борется за наносекунды
> хочет засунуть рекомпиляцию
Мужик ты чё
Аноним 04/03/24 Пнд 19:31:16 #1122 №3073430 
>>3073403
Прост выдумываю разные стратегии, чтобы понять куда архитектуру двигать.

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

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

>>3073427
Так рекомпиляция будет один раз, а мне наносекунды нужны во время выполнения цикла симуляции.
Аноним 04/03/24 Пнд 20:01:26 #1123 №3073458 
>>3073337
Ты хочешь сказать что анрил переписали с нуля с концептами, корутинами и ренджами?

>CUDA
https://github.com/NVIDIA/cccl/blob/main/thrust/thrust/tuple.h#L185
Благо дебичи догадались форкнуть либс++ и траст теперь не нужен.
Аноним 04/03/24 Пнд 20:21:53 #1124 №3073468 
>>3073186
Неправда, кабаны этого не любят, но обычно инициативные разработчики пытаются бороться с легаси. Избавляются от буста и велосипедов в пользу стандарта и тп
Аноним 04/03/24 Пнд 20:30:52 #1125 №3073472 
>>3073430
>в случае необходимости можно говнокод править во время исполнения в неком псевдожите.

Сегмент кода ReadOnly. На всех современных операционках. Только полезешь писать туда, сразу словишь CoreDump или "Программа выполнила недопустимую операцию и будет закрыта."

Твои трюки могли бы прокатить во время MS-DOS.
Аноним 04/03/24 Пнд 20:31:27 #1126 №3073473 
>>3073458
> переписали
Ты траллишь тупостью или что? Речь про то на чём СЕЙЧАС пишут, а не твои попытки в демагогию. Открывай свежие коммиты и смотри что там. Представь себе, фичи С++20 активно используются. Тот же UE5 только под С++20 собирается, в свежем коде и всяких концептов много, рейнджи используют тоже.
Аноним 04/03/24 Пнд 20:53:01 #1127 №3073483 
>>3073430
почитай как делают плагины на основе динамически загружаемых модулей, хотя бы в том же самом геймдейве;
для энтерпрайза то понятно что во многом тема сдохла, потому что кресты теперь там почти не используют, во многом потому что нет механизма стандартизированной загрузки-выгрузки классов, но это уже немного другая тема
Аноним 04/03/24 Пнд 22:24:30 #1128 №3073564 
>>3073472
Чел.... Просто не пишешь код в ридонли разделы.... Единственный минус это просирается кэш инструкций, что не есть хорошо.
Лучше будет при запуске просто вносить изменения в ядро. Нашёл уже несколько прототипов программ которые нормально с этим работают и модифицируют код и даже могут читать глобалы.

>>3073483
Все эти плагины и модули имеют стоимость при каждом вызове функций. А я хочу чтобы оно прямо в основном цикле симуляции пользовательские расширения были доступны и совершенно никак не нагружали этот цикл, тупо вставка инструкций новых.
Аноним 04/03/24 Пнд 22:49:32 #1129 №3073584 
>>3073472
>>3073564
> Только полезешь писать туда, сразу словишь CoreDump
> Просто не пишешь код в ридонли разделы
Челы, вы первый раз что ли? Никогда не писали инжекторы в процессы? Защита страниц свободно меняется - делаешь read-write память, меняешь что надо, возвращаешь обратно execute-read. Вся эта защита не от того чтобы кто-то не залез туда, а чтоб кривая память случайно или специально из-за переполнения буфера какого-нибудь не полезла куда не надо.
Аноним 04/03/24 Пнд 23:10:32 #1130 №3073598 
>>3073584
> Никогда не писали инжекторы в процессы?
Ну я не писал, по этому сюда и пришёл.
> Вся эта защита не от того чтобы кто-то не залез туда, а чтоб кривая память случайно или специально из-за переполнения буфера какого-нибудь не полезла куда не надо.
Всё настолько просто? Получается тот анон сверху хуйню полную написал?

Тогда мне вообще можно во время исполнения модифицировать говнокод, инжектить туда что нужно, и не ебать мозги совершенно никак?
Аноним 04/03/24 Пнд 23:23:03 #1131 №3073606 
>>3073564
>Нашёл уже несколько прототипов программ которые нормально с этим работают и модифицируют код и даже могут читать глобалы.
Покажи.

>>3073584
>Никогда не писали инжекторы в процессы?
Не было такой необходимости.

>Защита страниц свободно меняется - делаешь read-write память, меняешь что надо, возвращаешь обратно execute-read.
Это на чём ты так делал? На какой ОС? Покажи API.

>Вся эта защита не от того чтобы кто-то не залез туда, а чтоб кривая память случайно или специально из-за переполнения буфера какого-нибудь не полезла куда не надо.
Это понятно. Ты API покажи.
Аноним 04/03/24 Пнд 23:27:44 #1132 №3073608 
>>3073598
> можно во время исполнения модифицировать говнокод
Если ты готов писать на ассемблере или написать JIT-рекомпилер. Ты явно не понимаешь что хочешь сделать.
> не ебать мозги совершенно никак?
Лол. Тебе уже сказали что ты просто не осилишь сделать это, потому что там ебли не на один десяток часов.
>>3073606
> Ты API покажи.
https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualprotect
Аноним 04/03/24 Пнд 23:54:03 #1133 №3073624 
image.png
>>3073608
>https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualprotect

Нихуяссе ты чёрт! (В хорошем смысле этого слова)
Оно действительно работает. Вот попробовал это код на картинке и записал константу в код.

А под Линуксами тоже такое есть?
Аноним 05/03/24 Втр 00:08:47 #1134 №3073638 
>>3073606
> Покажи.
За меня уже показали, суть там примерно такая же.

>>3073608
> Если ты готов писать на ассемблере
Не вижу в этом проблемы особой.
> или написать JIT-рекомпилер.
Так понимаю там там какие-то другие таблицы адресации нужно делать, чтобы это завелось нормально, и из-за этого выход из скомпенлированной зоны в зону JIT будет довольно дорогим. Нихотеть.
> Ты явно не понимаешь что хочешь сделать.
Всё что я хочу - понять можно изменять скомпилированную программу, добавляя в неё скомпилированный код.
> Лол. Тебе уже сказали что ты просто не осилишь сделать это, потому что там ебли не на один десяток часов.
Да я в курсе, и не пытаюсь в это вникнуть даже, немного погулил только. Мне важна понять можно ли это сделать или нет. Если такое можно сделать и даже можно не обосраться с кэшем команд - то мне не нужно менять архитектуру и что-то дописывать. Если возможности нет - нужно дописать код и как-то пытаться впихнуть внешние библиотеки и передавать в них глобалы, а не хочу это делать по причине проеб производительности на каждый вызов.
Аноним 05/03/24 Втр 00:17:55 #1135 №3073645 
>>3073624

int * return_next_instruction_pointer()
{
_asm {
mov eax, [ebp+4]
}
}
Аноним 05/03/24 Втр 00:19:50 #1136 №3073646 
>>3073638
Чо ты там вообще такое пишешь?
Аноним 05/03/24 Втр 00:31:04 #1137 №3073651 
>>3073646
Симуляцию всякого интересного говна про которое не расскажу с циклом на 1-10 кГц. Каждая проебанная наносекунда решает.
Аноним 05/03/24 Втр 00:40:09 #1138 №3073658 
>>3073651
Но для этого не нужно самомодифицировать код. Это порочная практика. 10 КГц ты вытянешь на современном компе просто эмуляцией.
Аноним 05/03/24 Втр 00:50:35 #1139 №3073667 
>>3073658
> Но для этого не нужно самомодифицировать код. Это порочная практика.
Так мне нужны пользовательские расширения! Понятно дело что это как-то нестандартно звучит, лучше это всё тупо рекомпиляцией всего проекта делать, но рекомпиляция не всегда будет возможна, а совсем без расширений будет тухловато.
> 10 КГц ты вытянешь на современном компе просто эмуляцией.
Там вычислений может быть дохуя, например 2к строк матана или больше. 10кГц это верхний разумный предел, но хотелось бы чтобы он был как можно выше, например 50, да и чтобы это работало на дешманских серверах и процах.
Аноним 05/03/24 Втр 01:19:40 #1140 №3073681 
>>3073667
Чего бы тогда не посмотреть в сторону ПЛИСин со встроенной плавающей запятой? Очень дорого, это да, прям неприлично дорого. Но по скорости порвут всё что только возможно и невозможно тоже. Представь как вкусно - ебически длинное выражение, которое конвейеризируется и всё сразу считается непрерывно. Ещё доступ к памяти оптимизируешь.

Ебаная капча постоянно подсовывает названия советских радиоламп. Безумие какое-то.
Аноним 05/03/24 Втр 03:18:57 #1141 №3073724 
>>3073651
>Симуляцию всякого интересного говна
Почти все современные "симуляторы всякого говна" работают через dynarec, динамическую рекомпиляцию. Полно готовых решений для JIT и кодогенераторов разной сложности.
Аноним 05/03/24 Втр 05:43:45 #1142 №3073790 
>>3073473
>в свежем коде
Я про это и писал, дебич. Формально у нас C++20. Стильно, модно, молодёжно. По факту, это лишь бесполезные фасад, всё самое главное, в глубине, лютое костыльное легаси, на которое дыхнуть боишься, не то что трогать.
Аноним 05/03/24 Втр 06:41:49 #1143 №3073805 
>>3073790
>на которое дыхнуть боишься, не то что трогать
То есть у вас попросту некомпетентные макаки вместо программистов, раз не могут разобраться в коде - в своей работе между прочим. Не можешь - вон из профессии, неграмотная хуесосина. Как такие вообще попадают на должности, непонятно. Ваша контора гадюшник некомпетентного говна, всех надо разогнать нахуй, начиная с начальства допустившего этот пиздец.
Аноним 05/03/24 Втр 06:43:58 #1144 №3073809 
>>3073805
Ебать порвался
Аноним 05/03/24 Втр 07:49:08 #1145 №3073826 
?.jpg
>>3073805
Буквально везде так. Добро пожаловать в реальный мир.
Аноним 05/03/24 Втр 09:08:10 #1146 №3073867 
>>3073681
Оно на серверах и пользовательских устройствах должно работать, в этом проблема и ещё пользователи могут пилить свои дополнения и встраивать. Если это будет плис, то у всех жопа порвётся, наверное.

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

>>3073724
Короче мою маняфантазию сделать возможно, так же как делают динореки и житы. В случае чего просто напишу авторам какой-нибудь подобной либы. А пока что обойдусь генераторами кода, например, или чем ещё подобным.
Аноним 05/03/24 Втр 13:21:41 #1147 №3074025 
>>3073826
Я так и сказал - это ты некомпетентное говно, а не "легаси-код плохой". Зачем хвастаться своей тупостью и свинством публично, вот в чем вопрос. Ты говно сидящее не на своем месте, паразит ворующий деньги и не делающий работу. Зачем ты здесь в треде программирования? Зачем ты тут рассказываешь какое ты говно, а не программист? Чтобы что?

И для неграмотных дебилов, в данном случае обращение "ты" общее ко множеству людей, а не индивидуальное.
Аноним 05/03/24 Втр 14:58:35 #1148 №3074126 
>>3074025
>>3073805
А зачем вообще с++23, если в с14 достаточно для всего? Если тебе что-то недостаточно - у тебя хуевая архитектура.
Аноним 05/03/24 Втр 15:00:06 #1149 №3074131 
>>3074126
>с14
c11 в смысле, ебаные стандарты, хуй сломаешь с ними
Аноним 05/03/24 Втр 17:20:15 #1150 №3074283 
>>3074131
С98
Ноудискасс
Аноним 05/03/24 Втр 17:40:18 #1151 №3074286 
>>3074283
Не ну там тредов нет, как бы 11 всё же получше будет. Максимум 17, думаю. 23 конечно стоит рассматривать, но ничего нового там не прибавилось.
Энивай на с++ лучше не кодить.
Аноним 05/03/24 Втр 19:08:19 #1152 №3074419 
>>3074126
>А зачем вообще с++23, если в с14 достаточно для всего?
В 17 добавили инициализацию в ифы, можно делать if ( bool ok = foo(); ok ) - очень удобно. Ну и только ради констэкспров можно дальше переползать.
Аноним 05/03/24 Втр 20:05:49 #1153 №3074475 
>>3074419
> if ( bool ok = foo(); ok )
Вот это норм, кста.
> констэкспров
А это хуй знает, сомнительно. Шаблоны можно и без этого делать, а мешать шаблонный код с обычным выглядит как не очень хорошая идея.
Аноним 05/03/24 Втр 20:15:14 #1154 №3074489 
>>3074475
>> if ( bool ok = foo(); ok )
>Вот это норм, кста.

ЧТо тут норм? Область видимости ok какая???

> констэкспров
>А это хуй знает, сомнительно.
А вот они как раз годнота. Впрочем, я не старался их понять - утащил пример один и пользую его практически во всех проектах для использования строк в switch/case. А мне для большего он и не нужен.
Аноним 05/03/24 Втр 20:35:56 #1155 №3074506 
>>3074126
Много ты понимаешь говноед
Аноним 05/03/24 Втр 20:38:54 #1156 №3074512 
Ретроградство нового уровня, да зачем нам этот новый стандарт, и так хорошо живём

>>3074489
> ЧТо тут норм? Область видимости ok какая???
Внутри блока иф очевидно

мимо
Аноним 05/03/24 Втр 20:43:30 #1157 №3074516 
>>3074506
Понимаю как не писать говнокод.
Аноним 05/03/24 Втр 20:46:09 #1158 №3074519 
>>3074512
>Внутри блока иф очевидно
Это не очевидно, если что.
Аноним 05/03/24 Втр 20:54:20 #1159 №3074527 
>>3074519
А есть ещё варианты
которые были бы не совсем глупые?
Аноним 05/03/24 Втр 21:15:43 #1160 №3074555 
>>3074475
>Шаблоны можно и без этого делать
Можно, по 200 строчек нечитаемого леса из угловых скобок вместо одного цикла с constexpr.
Аноним 05/03/24 Втр 21:36:45 #1161 №3074584 
>>3074527
Внутри круглых скобок? Не?
Аноним 05/03/24 Втр 21:38:27 #1162 №3074588 
>>3074489
>ЧТо тут норм?
Пукции понятнее становятся, очевидно.
> Область видимости ok какая???
Ебать ты. Три дня в программировании? Скобочная.
> А вот они как раз годнота.
Ни одного успешного применения

>>3074555
Звучит как говняк без макросов
Аноним 05/03/24 Втр 21:47:38 #1163 №3074597 
>>3074512
а внутри его блока елсе тоже очевидно?
Аноним 05/03/24 Втр 21:59:33 #1164 №3074614 
>>3074588
>Ни одного успешного применения
>
Ха ха ха ха.
Вот ты и спалился.
Аноним 05/03/24 Втр 23:07:39 #1165 №3074692 
>>3074519
Ты тупой просто, сори.
Вот тебе и не очевидно
Аноним 05/03/24 Втр 23:17:27 #1166 №3074699 
>>3074692
Ну да, я такой. Это безусловно.
Но ты тупее.
Аноним 05/03/24 Втр 23:30:21 #1167 №3074709 
>>3074614
Для них нужно подстраивать архитектуру, т.е. я свой код должен подговнять по какие-то констэкспы. Нахуй это нужно вообще, и без этого проблем дохуя, ещё тут этим заниматься, легче и проще макросами наговнять то же самое.
Аноним 06/03/24 Срд 00:21:30 #1168 №3074768 
>>3074709
Не. Тут фишка в другом. Ты в constexpr загоняешь хэш-функцию, и у тебя swich начинает понимать сишные строки. Код становится простой, читаемый, мегаоптимальный, по сравнению со strcmp.

Это масло и вкусная фича. Хрен кто меня заставит теперь откатиться на стандарт, который был до constexpr. Это тупо удобно. Очень удобно. Уж насколько я хейтер всей хуйни, что тянут в плюсы, но constexpr это мегарулёз.
Аноним 06/03/24 Срд 02:32:22 #1169 №3074795 
>>3073473
>Тот же UE5 только под С++20 собирается, в свежем коде и всяких концептов много
Ковырялся с UE4-5 на уровне туториалов и примерчиков. Не помню, чтобы там вообще использовали std::

>рейнджи используют тоже
В UE своя модель памяти, со сборкой мусора.
Чисто технически в UE-проекте у тебя конечно есть возможность использовать твой любимый std::vector и наслаждаться всей мощью <algorithm>. Но в контексте UE - это тоже самое, что и в C++23 гонять голые указатели по сырым массивам, а то и хуже.
Аноним 06/03/24 Срд 06:24:10 #1170 №3074847 
>>3074768
>загоняешь хэш-функцию, и у тебя swich начинает понимать сишные строки
А потом коллизии хешей и
>"ой, чото глючит, хотя код правильный, но редко и непредсказуемо, наверное компьютер протух, купите новый, или попляшите с бубном в полночь новолуния, мне помогло"
Зато свиномакаке проще высирать говнокод.
Аноним 06/03/24 Срд 07:43:55 #1171 №3074904 
>>3074795
> на уровне туториалов и примерчиков
Исходники движка открой, даунич.
Аноним 06/03/24 Срд 08:58:33 #1172 №3074944 
>>3074904
>Исходники движка
А что там в исходниках написано именно тобой?
Я тебя мордой тычу в на порядки более распространенный сценарий использования, даунич.
Аноним 06/03/24 Срд 09:33:45 #1173 №3074977 
>>3074944
Ты тупостью траллишь, да? В движке активно используют свежие фичи - это факт. То что ты туториалы пишешь в стиле си с классами - лично твои проблемы.
Про сборку мусора в UE5 вообще перл. Выпей таблетки.
Аноним 06/03/24 Срд 09:53:20 #1174 №3074985 
>>3074768
> Ты в constexpr загоняешь хэш-функцию
Звучит как шизофрения. Зачем это делать?
> и у тебя swich начинает понимать сишные строки
А это что? Как? Зачем?
> по сравнению со strcmp.
Ну хз конечно чел, но ты уверен что всё правильно и оптимально делаешь?
> Это тупо удобно. Очень удобно.
Если ты в макросы не можешь, то наверное так. Просто погугли как писать макросы.
Аноним 06/03/24 Срд 10:47:04 #1175 №3075027 
>>3074985
Ещё один неосилятор рвется.
Аноним 06/03/24 Срд 10:47:25 #1176 №3075028 
>>3074985
> Макросы
Дедуль спокуху оформляем
Аноним 06/03/24 Срд 12:23:42 #1177 №3075153 
>>3075027
>>3075028
Неосиляторы, спок.
Аноним 06/03/24 Срд 12:27:38 #1178 №3075156 
>>3075153
Да это дети простоили дибилы, постоянно тут срут тупостью своей.
Аноним 06/03/24 Срд 13:02:55 #1179 №3075190 
> констекпр
> ряяя фууу зумеры смузихлебы
> макросы
> омномном
Аноним 06/03/24 Срд 13:42:46 #1180 №3075233 
image.png
>>3074985
Ну вот кусочек моей реализации Форта. Выше ты видел скриншоты его работы.
А на скришоте тот самый switch/case со строками.

Уверен ли я что правильно делаю? Более чем уверен. Как ты понимаешь, hash на данном скриншоте это constexpr.

Если ты и это оспоришь, то я хуй знает что тебе ответить. Разве что обвинить тебя в толстом троллинге.

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

Ещё раз - я не одобряю всю ту хуету, что тянут в стандарт, но там не всё хуета. Там и годнота тоже есть. И частный пример годноты это constexpr.
Аноним 06/03/24 Срд 14:00:17 #1181 №3075247 
>>3075233
Ты имеешь в виду hash у тебя constexpr функция? Так здесь он тебе ничего не даёт. Компилятор не обязан выполнять её во время компиляции. С таким же успехом ты можешь объявить её инлайн.
Специально для таких случаев сделали consteval в 20 стандарте.
Аноним 06/03/24 Срд 14:15:20 #1182 №3075262 
>>3075247
>>3075247
> Так здесь он тебе ничего не даёт. Компилятор не обязан выполнять её во время компиляции.

в case попадёт константа.
inline функцию как параметр case? Это вряд-ли, даже проверять нет желания.
Аноним 06/03/24 Срд 14:20:05 #1183 №3075271 
>>3075262
>в case попадёт константа
Благодаря оптимизациям компилятора, а не constexpr.
Аноним 06/03/24 Срд 15:15:17 #1184 №3075331 
>>3075233
такой код и на с++98 будет работать, при чем здесь constexpr
Аноним 06/03/24 Срд 15:16:38 #1185 №3075334 
>>3075247
более того, в случае его кода, и не будет выполнен в компайл тайм
Аноним 06/03/24 Срд 15:19:25 #1186 №3075339 
>>3075331
>>3075271
>>3075247
>>3075334
вы бы хоть попробовали скомпилить свитч по функции без констэкспра прежде чем на двачах позориться
Аноним 06/03/24 Срд 15:39:29 #1187 №3075377 
>>3075331
>>3075334
извиняюсь, неправду написал
>>3075339
да уже осознал ошибку через 10 минут (после того как посрать сходил лол), зашел в тред чтобы написать об этом
Аноним 06/03/24 Срд 15:43:01 #1188 №3075387 
>>3075233
Согласен с тобой по поводу плюсов и стандартов, но вот конкретно твой пример констэскпра ниочем, можно тупо констатны твоего хэша использовать, будет то же самое.
То где констэкспр реально ощющается плюсом - иф кжнстэкспр в темплейт функциях.
Аноним 06/03/24 Срд 16:16:49 #1189 №3075437 
>>3075387
>можно тупо констатны твоего хэша использовать, будет то же самое.

Можно, кто ж спорит, но это геморрой. Считать константы придётся самому, потому руками их объявлять.
Аноним 06/03/24 Срд 17:48:48 #1190 №3075519 
>>3075156
Впринципе да, выглядят будто какие-то ньюфаги-вкатывалщики решили вкатиться в программирование.

>>3075190
Шаблоны и код должны разделяться. Нахуя их вообще объединять в одном файле? Чтобы что? Чтобы сложнее было этот бред ебаный читать?

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

Да и вообще, нахуя искать хэш строки, если компиляторы всё равно хэшируют строки? Типо. Эээ. Зачем? Реально не понимаю зачем ты всё это делал.

>>3075437
> но это геморрой
Избавлю тебя ещё от одного гемороя, анон. Компиляторы хэшируют строки. Пользуйся.
Аноним 06/03/24 Срд 18:06:13 #1191 №3075542 
>>3075519
> А если будет коллизии?

Вероятность коллизий в switch/case ничтожно мала - там не так много вариантов в case и коллизией можно пренебречь. И это не такое отвественное приложение, которое приведёт к катастрофе в случае коллизии. Если вдруг кто поймает коллизию, то он просто поменяет слово форт-исходнике и коллизия исчезнет. Возможно напишет автору, мол, смотри - у тебя там коллизия. Но к тому времени автор уже состарится и умрёт, пока сработает эта вероятность.
Аноним 06/03/24 Срд 18:36:11 #1192 №3075572 
image.png
>>3075542
> и коллизией можно пренебречь
Ты. Ты же в курсе что там не один раз это всё будет вызываться? Ты понимаешь это? Т.е. если программа на форте достаточно большая и компилируется достаточно часто - у тебя будет минимум одна коллизия с достаточно высоким шансом. И никто не будет знать почему его говняк не работает.

Современное программирование нахуй. Ебануться просто. Забористо, конечно. Надеюсь ты свой говнокод пишешь, а потом удаляешь нахуй, чтобы никто не пользовался.
Аноним 06/03/24 Срд 18:44:32 #1193 №3075587 
image.png
>>3075572
> и компилируется достаточно часто
Даже не компилироваться, а просто вызываться, так понимаю. Т.е. если программа на форте будет достаточно большой - при КАЖДОМ вызове этой хуйни будет довольно существенный шанс что всё обосрётся. А если пользователей будет достаточно много - каждый день у одного из них будет коллизия.

Это же ебануться просто. Вот это шмаль нахуй. Не представляю человека который на самом деле пишет так.
Аноним 06/03/24 Срд 18:45:33 #1194 №3075589 
image.png
>>3075572
Если ты по маленькой картинке понял как там всё работает, то пиздец ты мегамозг.

Выдыхай, бобёр!
Аноним 06/03/24 Срд 19:17:06 #1195 №3075627 
>>3075589
Ну расскажи как это всё работает. Вот я вижу коллизию которая происходит каждый раз при запуске говна на форте. Чем больше размер говно на форте - тем чаще будет коллизия.

Если же форт-кал находится прямо в cpp файле и компилируется при компиляции cpp - так тогда никакие хэши нахуй не нужны, потому что компилятор уже хэширует строки.

Либо это ебейший говнокод с коллизиями, либо незнание работы компилятора.
Аноним 06/03/24 Срд 19:36:35 #1196 №3075633 
>>3075519
> Шаблоны и код должны разделяться. Нахуя их вообще объединять в одном файле? Чтобы что? Чтобы сложнее было этот бред ебаный читать?
Каво, какие нах шаблоны
И почему шаблоны и код это какие разные сущности, и схуяли они должны быть раздельно?
Аноним 06/03/24 Срд 19:38:08 #1197 №3075635 
> коллизии хэшей
Как там в 90-е живётся?

хотя и тогда нормальные хэши уже существовали
Аноним 06/03/24 Срд 20:03:39 #1198 №3075648 
>>3075633
Чтобы не писать говнокод который никто не понимает, очевидно же.
Аноним 06/03/24 Срд 20:06:29 #1199 №3075653 
>>3075587
>>3075572
А вы не очень умные, да?
Эти все коллизии можно вообще с помощью тех же констэкспров поймать на стадии компиляции, с помощью intToType.
Я не говорю даже о том, что можно тесты написать, буквально дело 3 минут.
И такое ощущение что вы, два деда, забыли что такое хеш функция и как работают константы.
Аноним 06/03/24 Срд 20:07:10 #1200 №3075654 
>>3075648
Шиз, на первые два вопроса то ответь
Аноним 06/03/24 Срд 20:08:27 #1201 №3075655 
>>3075635
Вообще в ахуе с этих отсталых.
Наверно до сих пор указывают в резюме "знание stl"
Аноним 06/03/24 Срд 20:09:18 #1202 №3075659 
>>3075653
Орунах, тесты, intToType, и вся эта шиза нужна просто для того чтобы не писать енум на 10 строчек, а писать какое-то дерьмо с констэкпром.

Тут уже таблеточки нужно принимать.
Аноним 06/03/24 Срд 20:11:17 #1203 №3075662 
>>3075659
Дедуль, а стр ту енум кто тебе напишет?
А кто будет следить за актуальностью?
Две строковые константы это геморрой²
В целом я не удивлен твоему заявлению, ведь если вы будете писать поддерживаемый код вас сразу же с работы выпрут, ебаная мебель.
Аноним 06/03/24 Срд 20:45:30 #1204 №3075697 
>>3075627
>Ну расскажи как это всё работает
Я лучше покажу на Гитхабе, когда решу что время пришло.
На деанон мне строго похуй.

По сути интерпретатор Форта мне не нужен, мне нужен его компилятор. Интерпретатор нужен только чтобы его отладить.
Аноним 06/03/24 Срд 20:49:13 #1205 №3075706 
>>3075662
> Дедуль, а стр ту енум кто тебе напишет?
Он там вообще не нужен, кстати.

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

Сравнение всех строк свича (даже если их там 20 или 50) будет быстрее одной функции хэширования, потому что многие алгоритмы в либах, как и компиляторы, используют SIMD и MMX. Если нет доверия к компилятору/либе, то можно самому написать SIMD/MMX, с расчётом на максимальную длину строки, это будет на порядок быстрее идеального хэширования.

Хуй знает про что вы тут вообще визжите, буквально не понимаю причину всех этих визгов. Хэширование, тесты, констрэкспы, ебануться просто вкатуны.
Аноним 06/03/24 Срд 20:59:34 #1206 №3075722 
>>3075697
> По сути интерпретатор Форта мне не нужен, мне нужен его компилятор.
Тогда тем более тебе строки нужно сравнивать через SIMD, там быстродействие будет раз в 100 нахуй быстрее вот этого всего. Сравнил строки, создал промежуточный байткод, как это делают многие языки, этот промежуточный байткод уже нормально исполняешь, без всякой ебаной дряни типо хэшфункций.
Аноним 06/03/24 Срд 21:15:59 #1207 №3075767 
Дети, производительность только после бенчмарков
Все остальное мнение с дивана
Аноним 06/03/24 Срд 22:21:48 #1208 №3075863 
>>3075767
>производительность только после бенчмарков
Синтетических?
Аноним 06/03/24 Срд 22:23:42 #1209 №3075870 
>>3075863
Для начала хотя бы их
Аноним 06/03/24 Срд 23:21:52 #1210 №3075952 
>>3075697
>По сути интерпретатор Форта мне не нужен, мне нужен его компилятор.
Тогда зачем ты экономишь на спичках? В обычном форте вообще тупо посимвольное сравнение строк идет, потому что разница по скорости с хэштаблицей будет видна где-то уже на мегабайтах исходников. Олсо "компиляция" в форте - это режим работы интерпретатора после DOES>, когда ты в слово инструкции пишешь.
Аноним 06/03/24 Срд 23:51:42 #1211 №3075974 
>>3075952
> В обычном форте вообще тупо посимвольное сравнение строк идет, потому что разница по скорости с хэштаблицей будет видна где-то уже на мегабайтах исходников.
Да. Но в данном случае мне нравится простота и читаемость.

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

В моём случае "компиляция" это ключик в командной строке, который скажет что форт-программу нужно не исполнить, а сформировать ассемблерный файл из неё. Ради этого и заморочился с Фортом.
Аноним 06/03/24 Срд 23:53:29 #1212 №3075978 
>>3075722
>Сравнил строки, создал промежуточный байткод, как это делают многие языки, этот промежуточный байткод уже нормально исполняешь
В стандартном форте принцип работы другой, там интерпретация идет сразу во время чтения исходного кода. Он изначально однопроходный, поэтому между определениями функций, нельзя например, циклы или бранчи вставлять. Назад тупо некуда возвращаться, все исполняется прямо вот тут. После ":", определения функции, интерпретатор не сразу исполняет, а переходит в режим "компиляции" слова - заполняет токены в список исполнения. Все очень просто и тупо.
Аноним 07/03/24 Чтв 00:02:04 #1213 №3075983 
>>3075974
>В моём случае "компиляция" это ключик в командной строке, который скажет что форт-программу нужно не исполнить
Программа в любом случае будет исполняться, там же immediate, [ и ] есть. Тебе надо словарь создать, а потом в какой-то момент его транслировать в бинарник.
Аноним 07/03/24 Чтв 18:53:40 #1214 №3076640 
>>3075978
Короче никакой хэш там нахуй нинужон, единственное правильное ускорение - компиляция в промежуточный байткод.
Аноним 07/03/24 Чтв 19:14:33 #1215 №3076653 
>>3076640
>Короче никакой хэш там нахуй нинужон
Можно с хэшем. Просто чуть быстрее поиск по словарю будет идти. Только нюанс в том, что надо сохранять порядок слов - последнее слово из нескольких с одинаковыми именами должно находиться первым.
>единственное правильное ускорение - компиляция в промежуточный байткод
Зависит от того, что тебе нужно. Если цель - метакомпиляция под другую машину, там да, промежуточный байткод, потом код под платформу. Для простых вариантов обычно делают или indirect threading, где выполняемый код - это список токенов каждому из которых соответствует адрес слова (тормозной, но занимает меньше места и возможна интроспекция функций), или самый простой вариант - subroutine threading, где код слова - это просто машинный код вида call addr; call addr; ... ret; возможно с инлайном базовых слов (гораздо быстрее, но код чуть пожирнее выходит, по пять байт на инструкцию на x86, и нужен дизассемблер для интроспекции).
Аноним 07/03/24 Чтв 19:38:02 #1216 №3076674 
clang-tidy говорит, что у меня виртуальный деструктор не помечен overdrive.
А это надо вообще, деструкторы не оверрайдятся же? Да и функцией не являются в полном смысле слова.
Аноним 07/03/24 Чтв 19:52:31 #1217 №3076687 
>>3076653
> Можно с хэшем.
Не, это в любом случае будет медленнее чем предварительный проход и какой-то промежуточный байткод. Можешь даже сделать вариант в котором твой свич оператор будет просто брать этот байткод, например, никаких хэшей, никаких проблем.
> Зависит от того, что тебе нужно
Быстро компилировать, например, быстрее исполнять, все операции будут векторными. Хз почему ты вообще читаешь и исполняешь.
Аноним 07/03/24 Чтв 21:27:34 #1218 №3076752 
>>3076687
Я не автор кода со скрина выше. Он похоже не понимает, как форт работает, думает, что это просто стековый язык вроде постскрипта.
>Быстро компилировать
Ну так оно и так очень быстрое. Обычно файл читается с диска дольше, чем обработка идет.
>Хз почему ты вообще читаешь и исполняешь.
Потому что это в стандарте форта лол. Там на это все завязано. Без этого форт не форт. Внешний интерпретатор, который читает текст и тут же его исполняет или компилирует - неотъемлемая часть системы. Причем обычно программа там постоянно прыгает туда-сюда из режима интерпретации в режим компиляции и нет особого синтаксиса для макросов, и синтаксиса вообще - делай, что хочешь, как хочешь и когда хочешь. Предварительный проход тут в принципе невозможен. Там (, начало комментария - просто функция, которая гонит позицию в файле вперед до закрывающей скобки. Слово ." - вывод строки на печать тоже функция, которая набирает литерал строки из входного файла, пока не дойдет до закрывающей кавычки и компилирует его вывод в консоль. То есть синтаксиса вообще нет, все функции, поэтому и предварительный проход невозможен.
Аноним 08/03/24 Птн 00:10:06 #1219 №3076827 
>>3076674
1. Являются. Все это функции.
2. Не слушай тиди/клази/клангд - они часто ерунду городят.
Аноним 08/03/24 Птн 00:28:21 #1220 №3076836 
Поднял ТГ бота на с++.

>Нахуя?
Заскучал за изучением синтаксиса, решил дропнуть себе вызов сделать на сишке первое что придет в голову. Доволен как слон ещё зелёный, вылетало куча ошибок в CMake, хоть и делал абсолютно все по мануалу, попутно наебнул vcpkg неведомым образом, по итогу запускаю через студию.

Щас буду сидеть изучать доки библиотеки, чтобы пару приколов вставить и дальше возвращаться к душниловке. Пожелайте удачи.
Аноним 08/03/24 Птн 07:57:29 #1221 №3076955 
>>3076836
что бот то делать умеет?
Аноним 08/03/24 Птн 09:11:52 #1222 №3076989 
>>3076955
Ещё - абсолютно нихуя. Но я заставил его работать, и с этим уже можно что-то придумать.
Аноним 08/03/24 Птн 12:50:02 #1223 №3077399 
>>3076827
>1. Являются. Все это функции.
В полном смысле слова не являются. Это функции с ограниченным функционалом, со специальными правилами.
Впрочем, в контексте вопроса это не имеет значения.
Меня однажды приложили Стандартом. Я у Самого Страуструпа вычитал про имя деструктора, а по Стандарту, оказывается, у деструктора нет имени.

>2. Не слушай тиди/клази/клангд - они часто ерунду городят.
Спасибо.
Аноним 08/03/24 Птн 19:35:41 #1224 №3077885 
А в каком состоянии сейчас вообще популярный опенсурс как таковой в плане багов, тот же qt, g libs? Есть какие интересные статьи? Я вот прогнал свои поделия через санитайзер и валгринд основанные на этих либах, и там просто жопа, куча каких то системных варнингов, утечек и прочего говна. Падает иногда и тп, даже не знаю как это разгрести.
Попробовал запустить простые хелоуворды, ситуация хоть и лучше, но тоже говна подлили. И я вот думаю как это все работает?
Часто кстати проверяете свой продакшн код? Или работает, похуй?
Аноним 08/03/24 Птн 20:28:10 #1225 №3077908 
>>3077885
А ты уверен что доступный тебе репозиторий соответстаует коммерческому?
Аноним 08/03/24 Птн 21:23:59 #1226 №3077946 
>>3077908
Чего?..
Аноним 08/03/24 Птн 22:14:45 #1227 №3078025 
>>3077946
Я не работал с Qt. Но знаю что у многих компаний гитовский репозиторий не соответстаует внутреннему.
Аноним 08/03/24 Птн 22:16:03 #1228 №3078027 
>>3077946
Gitlab имел в виду.
Аноним 08/03/24 Птн 22:18:05 #1229 №3078033 
>>3078027
Блин, четова дизлексия. Короче, я имел в виду что на github.com и на приватном github версии не 100% соответстввют.
Аноним 08/03/24 Птн 22:55:26 #1230 №3078076 
>>3078025
>>3078027
>>3078033
Мужик, может пойдешь вздремнешь?
Аноним 09/03/24 Суб 07:16:20 #1231 №3078248 
image.png
>>3075983
>Тебе надо словарь создать, а потом в какой-то момент его транслировать в бинарник.

Спасибо за совет.

Что-то такое вот приблизительно получается.
Аноним 09/03/24 Суб 18:17:20 #1232 №3078939 
>>3077885
Достаточно просто не использовать ничего связанного в линуксом и под лицензиями GPL. Сразу легче станет жизнь.
Аноним 10/03/24 Вск 07:49:09 #1233 №3079580 
>>3078939
Ну, допустим, перехожу на проприетарщину, мне дали хидеры и скомпиленные, стрипнутые либы. Как мне удостовериться, что там нету всякой хуйни?
Аноним 10/03/24 Вск 08:02:26 #1234 №3079584 
>>3079580
Поверить на слово.
Райден 11/03/24 Пнд 07:41:00 #1235 №3081111 
Привет)
помогите сконфигурировать Clang для VS Code
не включается дебаггер lldb
g++ работает, msvc работает, a clang нет(
g++ и Clang установлены через MinGW, ос - Win 11(64)
Аноним 11/03/24 Пнд 08:27:21 #1236 №3081133 
photo2023-12-1013-38-29.jpg
>>3081111
https://marketplace.visualstudio.com/items?itemName=vadimcn.vscode-lldb
Райден 11/03/24 Пнд 08:34:50 #1237 №3081136 
Да, установлено это расширение
Аноним 11/03/24 Пнд 08:36:59 #1238 №3081138 
>>3081136
Тогда должно всё запускаться, иди мануалы читай
Ну или как-то раскрывай свою проблему более подробно, чем просто не запускается
Райден 11/03/24 Пнд 09:49:48 #1239 №3081186 
Screenshot 2024-03-11 134706.png
Screenshot 2024-03-11 134841.png
Теперь работает сборка по нажатию F5, ниже скрин launch.json
А вот кнопка Run c++ file не работает, и скрин tasks.json
Райден 11/03/24 Пнд 10:25:35 #1240 №3081206 
хз, короче, все заработало
спасибо
вот стоило сюда написать)
Аноним 11/03/24 Пнд 11:50:16 #1241 №3081303 
Есть такая ситуация.
Класс а и класс б ребенок а. В родителе есть функции 1 и 2, 2 находится внутри 1. Ребенок наследует эти функции.
Можно ли в ребенке переопределить функцию 2, вызвать родительскую функцию 1 но чтоб она выполнила переопределенную функцию ребенка?
Было бы удобно не переписывать все родительские функции если надо переписать одну.
Moonlover 11/03/24 Пнд 12:29:22 #1242 №3081348 
image.png
image.png
А вот интерпретатор Форта зашевелился. На второй картинке.

И компилятор тоже - https://pastebin.com/XFf7FjeQ <==== этот ассемблерный файл сгенерирован из кода с первой картинки.

Две недели ушло. И всё равно ещё сырое.
Аноним 11/03/24 Пнд 12:51:56 #1243 №3081376 
>>3081303
Вроде простым способом нельзя, ты какую то магию на уровне CRTP хочешь.
Аноним 11/03/24 Пнд 13:41:57 #1244 №3081457 
>>3012308 (OP)
Кто-нибудь не подскажет, в типичной реализации виртуальных таблиц используется имплицитно dynamic_cast? Я понимаю, что сначала мы переходим к массиву указателей через _vptr видимый в базовом сегменте, далее находим индекс где лежит адрес метода действительного объекта. Теперь вопрос: как именно происходит его вызов: DerivedMethod(dynamic_cast<Derived*>(this) или как-то по-другому? И откуда берется информация о типе, полагаю из typeinfo в виртуальной таблице?
Аноним 11/03/24 Пнд 14:17:17 #1245 №3081519 
>>3081457
не используется
Аноним 11/03/24 Пнд 14:40:36 #1246 №3081551 
>>3081303
Может как-то в таком духе: https://gcc.godbolt.org/z/WxhT4T1P6
Аноним 11/03/24 Пнд 15:24:37 #1247 №3081655 
>>3081457
Там не надо ничего кастовать, сигнатура методов одна и та же. Просто выбирается разный адрес по которому будет вызов, остальное всё то же самое.
> typeinfo
Никакой инфы о типе там нет, там type erasure происходит, в vtable только адреса методов. Кресты не ООП язык, в рантайме нет никаких объектов. Вот если ты захочешь в рантайме подменить один тип на другой, то тут уже RTTI будет использоваться, т.к. компилятор не знает что ты ему подсовываешь. А в случае с виртуальными методами компилятор всё знает, ему достаточно просто выбирать нужную vtable.
Аноним 11/03/24 Пнд 15:48:52 #1248 №3081717 
>>3081655
Давай возьмем простой пример:

void foo(Base *ptr)
{
ptr->Multiply();
}

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

1.При запуске программа видит сигнатуру виртуального метода, обращается к vptr, видимого из базового сегмента ptr. Окей, мы перешли в виртуальную таблицу класса D1, нашли индекс метода Multiply, который совпадает по сигнатуре с методом, вызванным через ptr

2.Дальше что? Допустим, сигнатура -- void Multiply().Получается, тут никакого каста нет и программа просто подставляет this в параметр?
Аноним 11/03/24 Пнд 16:29:14 #1249 №3081807 
>>3081717
> При запуске программа видит сигнатуру виртуального метода, обращается к vptr
В твоём примере *ptr == vptr.
> Дальше что?
call [ptr+offset]
Всё.
> Получается, тут никакого каста нет и программа просто подставляет this в параметр?
Грубо говоря да. Без виртуальных методов будет вызван метод напрямую, с ними будет вызван по индексу из vtable. Всё остальное так же.
Аноним 12/03/24 Втр 14:21:27 #1250 №3082926 
>>3013314
2 миски корма этому гусю жаль его
Аноним 12/03/24 Втр 15:48:53 #1251 №3083135 
>>3082926
Офигеть ты некромант, я это в январе постил
Аноним 12/03/24 Втр 18:16:42 #1252 №3083408 
>>3083135
Чаю?
Аноним 13/03/24 Срд 11:02:56 #1253 №3084330 
Подскажите где именно рисуются все эти сообщения в графическом интерфейсе на Qt? Нужно сделать так, чтобы в определённом случае они никак не отображались. Если сделать конструктор пустой, они всё равно есть, но как бы пустые. Если выделить сообщения между видимыми и скрытыми, то счётчик считает их тоже. Если их выше не добавлять в список, то всё вообще ломается.
https://github.com/telegramdesktop/tdesktop/blob/dev/Telegram/SourceFiles/history/history_item.cpp#L353
Аноним 13/03/24 Срд 11:06:10 #1254 №3084335 
>>3084330
Найди все вызовы конструкторов этого класса.
Найди случаи, когда это удовлетворяет твоим условиям.
Добавь проверки и НЕ вызывай конструктор.
А пытаться внутри конструктора отменить его вызов - ну фарш не прокрутить назад.
Аноним 13/03/24 Срд 20:39:20 #1255 №3085047 
Тут кто-нибудь занимался встраиванием питона в кресты? Я уже заебался, сначала ебался чтоб он запускался не из глобальной установки, а из папки - оказался pybind11 виноват. Теперь не могу разобраться с установкой пакетов. pip говорит пакеты уже установлены, но при их импорте летит эксепшен. Я их вижу в site-packages, пытался как-то через config.pythonpath_env указывать дополнительно папку site-packages - не помогает, пытался в самом питоне добавлять в path - тоже нихуя. Как отдебажить питон когда он запускается в моём бинарнике не очень понимаю - самое лучше что получаю это стектрейс.
Аноним 13/03/24 Срд 20:50:52 #1256 №3085068 
А как из сишной либы собрать модуль питоновский?
>>3085047
Знаешь?
Аноним 13/03/24 Срд 22:47:04 #1257 №3085280 
>>3085047
если тебе сверху эту задачу не спустили, а есть выбор, то можно дать совет встраивать lua а не питон
питон же удобно использовать наоборот, те на си либо крестах писать модули для питона, и потом уже в питоне их использовать
Аноним 14/03/24 Чтв 00:00:01 #1258 №3085333 
>>3085280
У меня там пара мелких нейросеток. Я сначала хотел на крестах всё сделать через onnx, но когда понял сколько придётся питоновского кода переписать забил хуй.

Всё же смог понять что за дерьмо было, пришлось в коде питона чуть ли не каждую строчку try и принтами обмазать, по какой-то причине куча импортов в дебаге сыпят ошибками, в релизе всё заебись.
yaforth Moonlover 14/03/24 Чтв 13:57:38 #1259 №3085962 
Вот и всё - "Форт, который за один вечер", опубликован в публичном репозитории на Гитлабе.

Ссылку на репозиторий дам чуть позже. Если не забуду. Надо ещё кой-какие моменты подправить.

Название такое - Yet Another Forth. Гугл по такому поиску находит YAFFA - Yet Another Forth For Arduino. Да и пофиг. Даже неплохо сейчас посидеть в тени.

>>3081348

Только один вопрос - насколько хороша эта тема и вообще двачи для анонса? Может быть лучше Хабр, LinkedIn, LOR, ixbt, LiveJournal, etc?

Хотя, думаю что интереса к Форту было бы больше в /ra разделе, нежели в /pr.
Аноним 14/03/24 Чтв 14:43:38 #1260 №3086019 
>>3085962
> гитлаб
Ты из борцунов с микрософтом что ли лол?
Аноним 14/03/24 Чтв 15:23:39 #1261 №3086068 
>>3085962
> Forth
А это вообще что?
Хабр явно не то место.
Аноним 14/03/24 Чтв 18:15:07 #1262 №3086202 
>>3086019
>>3086068

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

https://github.com/L4OS/yaforth
Аноним 14/03/24 Чтв 21:01:08 #1263 №3086419 
А это правда что плюсовики даже не знают что такое безопасность?
Аноним 14/03/24 Чтв 21:34:47 #1264 №3086466 
>>3086419
Плюсовики работают на оборонку, конечно знают! Три проходных, колючая проволока и бойцы с пулеметами!
Аноним 15/03/24 Птн 10:39:03 #1265 №3086819 
Чем фузировать?
Аноним 15/03/24 Птн 11:19:18 #1266 №3086870 
Что-то, я запутался, зачем нужны статические библиотеки как отдельный формат файлов .a, если можно просто хранить объектные файлы .o?
Аноним 15/03/24 Птн 11:47:00 #1267 №3086893 
Зачем вообще разрешили добавлять переменную в шаблон? Есть какой-либо пример преимущества перед стандартным добавлением в параметры?
Аноним 15/03/24 Птн 11:49:17 #1268 №3086897 
>>3086893
Код покажи, не понятно о чем ты.
Аноним 15/03/24 Птн 11:52:38 #1269 №3086901 
>>3086202
>CXXFLAGS := -O3
Проиграно, где WFLAGS? Ты же не пидорасте пишешь, ебобо.
Аноним 15/03/24 Птн 11:54:09 #1270 №3086902 
>>3086897
ttemplate< int size >
class IntegerArray
{
int Array[ size ];
/ ... /
};
Аноним 15/03/24 Птн 13:15:18 #1271 №3086998 
>>3086870
>зачем нужны статические библиотеки как отдельный формат файлов .a
.a - это просто архив, в котором лежат .o
Аноним 15/03/24 Птн 14:11:55 #1272 №3087035 
1621984870171.png
Как затолкать кусок памяти в STL контейнер? У меня есть структура с 4 байтиками, либа возвращает указатель на память с ними, пикрилейтед - всё заебись, вот они, один байт всегда 0. Но когда я запихиваю это в контейнер данные идут по пизде. В векторе как будто выравнивание делается другое и всё съезжает как-то, такое ощущение что он с нулём что-то делает. В span вообще какой-то мусор оказывается если его инициализировать указателем на память. Что за ебень?
Аноним 15/03/24 Птн 14:58:30 #1273 №3087061 
а потом спрашивают зачем учить С перед С++
вот чел берет указатели на содержимое контейнера и искренне удивляется что на реаллокации они отваливаются..
Аноним 15/03/24 Птн 15:04:19 #1274 №3087066 
>>3087035
Покажи как ты это делаешь
Аноним 15/03/24 Птн 15:27:25 #1275 №3087095 
>>3087061
> указатели на содержимое контейнера
> реаллокации
Ты шизоид, да? Сишник бы начал memcopy делать, вот там точно всё нахуй отъебнёт.
>>3087066
Конструктором (указатель, размер). Но похоже всё же сишная либа подсерает, я половину смог запихнуть, но вторую теперь пердолит.
Аноним 15/03/24 Птн 15:39:58 #1276 №3087126 
ты сам шизоид наху
напиши нормально че ты хочешь сделать. что возвращает либа и что ты кладешь в контейнер. и какой контейнер
Аноним 15/03/24 Птн 15:56:34 #1277 №3087151 
>>3086902
Задает тип. IntegerArray<5> и IntegerArray<3> будут разными типами, гарантирована ошибка компиляции при недопустимых операциях, в то время как IntegerArray(5) и IntegerArray(3) один и тот же тип. Мало того, что дополнительные проверки надо писать, так еще и семантически это неправильно.

Не нужно хранить дополнительную переменную, отвечающую за размер в каждом экземпляре класса, метод size() реализуешь как return size, где size уже вшит в бинарник. мелочь, а приятно.

Но самое пиздатое, это сочетаемость с шаблонными функциями, например
template <int size> sort(IntegerArray<size>& array);
Аноним 15/03/24 Птн 15:58:35 #1278 №3087154 
>>3086998
А в винде как?
Аноним 15/03/24 Птн 16:08:19 #1279 №3087161 
>>3087154
.lib
Аноним 15/03/24 Птн 16:17:47 #1280 №3087171 
>>3087095
Твои текстовые описания ничего не стоят.
Неси код.
Аноним 15/03/24 Птн 16:18:30 #1281 №3087172 
>>3087151
Если ты не знаешь зачем нужен инт ту тайп значит он тебе не нужен.
Аноним 15/03/24 Птн 16:19:18 #1282 №3087175 
>>3087172
Промазал... Это челу выше по ветке.
Аноним 16/03/24 Суб 10:07:01 #1283 №3087842 
Изучаю сейчас код Криты, вроде как большого, серьезного проекта. И что я вижу? Комментарии есть дай бог у десятой части методов и классов. Имена приватных членов классов уровня a,b,c. Куча закомментированного кода без пояснений. Документации считай что и нет вовсе. Какого хуя?
Аноним 16/03/24 Суб 11:36:07 #1284 №3087917 
>>3087842
> Какого хуя?
Опенсорс
Аноним 16/03/24 Суб 12:06:52 #1285 №3087970 
>>3087151
А что, хранить переменную дороже, чем плодить новые сущности?
>>3087172
Заткнись скот, я развиваюсь
Аноним 16/03/24 Суб 12:08:02 #1286 №3087971 
>>3087970
Если учесть, что мне потребуется столько же типов, сколько и экземпляров класса
Аноним 16/03/24 Суб 13:26:43 #1287 №3088090 
>>3087970
> плодить новые сущности
Они под капотом плодятся, не влияют на производительность. Единственное что увеличивают незначительно размер бинарника.
Аноним 16/03/24 Суб 13:27:35 #1288 №3088092 
>>3087971
> что мне потребуется столько же типов, сколько и экземпляров класса
Ты о чем? массив размера 10 это один тип, у него может быть множество экземпляров.
Аноним 16/03/24 Суб 18:25:48 #1289 №3088366 
>>3087842
>код Криты, вроде как большого, серьезного проекта
чисто пет-проджект для воскресного пердоленья, кто то ебет телок и бухает пиво, кто то сидит в mmo по выходных, а 0,00000001% ебанашек от популяции имеют такое хобби типа писать код, вот и высирают gnuшный софт
Аноним 16/03/24 Суб 18:51:14 #1290 №3088421 
>>3088366
> 0,00000001% ебанашек от популяции
То есть на всей планете Земля таких 0.8 человек?
Аноним 16/03/24 Суб 20:30:11 #1291 №3088626 
>>3088421
у тя плохо с арифметикой что ты делаешь в этом итт треде здесь вообще то сидят профессионалы у которых как минимум универсисетский курс матана есть
Аноним 16/03/24 Суб 20:59:42 #1292 №3088653 
>>3088626
Да, сразу видно этих "профессионалов", которые учились на платном.
Аноним 17/03/24 Вск 01:19:51 #1293 №3088883 
.png
Блин. Как же вы спрятались. С третьего раза надеюсь в верном треде спрошу

В общем. Я нубан.
Работаю шарпером на заводе.
Вот, недавно подпустили к проекту, на котором матерые C++'еры работали, но на шарпе.

Увидел там нечто похожее на прикриплейд.
Можете объяснить, нахуя и зачем так делать?
Аноним 17/03/24 Вск 01:45:31 #1294 №3088891 
>>3088883
Ты не в тот тред зашел.
Аноним 17/03/24 Вск 01:47:21 #1295 №3088893 
>>3088891
А в который надо?
Аноним 17/03/24 Вск 02:09:08 #1296 №3088900 
>>3088893
Вопрос по шарпам, на скрине шарпы, очевидно в щарпотред.
Аноним 17/03/24 Вск 02:25:19 #1297 №3088910 
>>3088900
Вопрос не по шарпам, а по вот такой вот странной структуре класса.

Потому что по логике остального приложения, это выглядит как описание одной сущности. Задачи, которую надо выполнить

А в коде это работает типа так:

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);
}
...
}

Но почему-то вместо обычного массива или листа - вот такая странная фигня. В коде шарпанов я такого никогда не видел.
Вот и думал, может быть С++ пояснят зачем так делать и есть ли вообще в этом смысл какой-то.
Аноним 17/03/24 Вск 02:26:46 #1298 №3088912 
>>3088910
Блин. Еще и проебался с написанием кода

В коде оно выглядит так:

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);
}
...
}
Аноним 17/03/24 Вск 02:39:07 #1299 №3088920 
.png
>>3088912
ВАКАБА ПРОГЛАТЫВАЕТ квадратные скобки с i. Вот картинкой.
Аноним 17/03/24 Вск 08:07:29 #1300 №3088963 
>>3088920
Матёрые плюсовики решили сэкономить наносекундов на обходе статусов джоб. Ход мыслей таков: идти по массиву джобов, заглядывать в каждую джобу и проверять ее статус будет медленнее, чем идти по массиву статусов и проверять статусы.

Для больших массивов и/или серьезных требований к latency так и есть, в остальных случаях - преждевременная оптимизация и ненужное усложнение кода.
Аноним 17/03/24 Вск 12:33:33 #1301 №3089124 
>>3088963
> ненужное усложнение кода
Ненужное усложнение кода - это всякие ООП паттерны, созданные чтоб джун мог мыслить шаблонными конструкциями и не запутаться с 100 строчках кода.
Аноним 17/03/24 Вск 13:25:12 #1302 №3089211 
>>3089124
В данном случае джун запутался в 30 строчках кода. Да и структура массивов - вполне себе паттерн во многих сферах.
Аноним 17/03/24 Вск 14:05:53 #1303 №3089306 
1570546053004.png
>>3088920
Чтож тогда с тобой случится, когда ты шаблоны увидишь? Пикрилейтед ещё вполне безобидный шаблон.
Аноним 17/03/24 Вск 14:31:14 #1304 №3089378 
>>3089306
Так прикриплейд таки - как раз обычный ООП код с женериками, просто как обычно у плюсов - синтаксис выбрали максимально странный. Могу даже предположить, что это сорт оф обертка создания COM-объектов. Угадал? МБ нет. С++ я все равно не знаю совсем.

А вот тот подход выше, как раз для меня, чет новое. Я ни разу такого раньше не видел.
Аноним 17/03/24 Вск 14:45:09 #1305 №3089400 
>>3089211
Погодь. Я вроде не говорил что запутался. Я просто никогда такого не видел и не понимаю, зачем так делать.
Для меня это выглядит как непонятное усложнение. Типа теперь - на разработчика переложена ответственность за тем, чтобы следить, что данные в этой вот штуке согласованы, что кто-то случайно потом не перепутает индекс и не запишет неправильно чего-то. Плюс - работа с этим кодом - усложняется, потому что теперь апи для остальной работы должно не просто объект принимать, а еще индекс той сущности с которой идет работа.
Вот мне и интересно, а зачем это делать. Есть ли от этого профиты какие-то и насколько они существенны.

Этот анон >>3088963 сказал что экономится время и что это может дать прирост по перформансу. Это валидная причина, я считаю. Но насколько она экономится и за счет чего? Надо ли мне теперь везде, где я обхожу что-то в цикле - сделать вот такую же штуку, или прирост там 0,0000000000000000000001% а работа с кодовой базой усложнится в разы?
sage[mailto:sage] Аноним 17/03/24 Вск 15:57:53 #1306 №3089477 
>>3088920
> unsafe
> var
И это по вашему плюсы?
Аноним 17/03/24 Вск 16:27:36 #1307 №3089500 
>>3089400
> Но насколько она экономится
Только бенчмарк покажет на твоих объемах.
> и за счет чего?
За счет того, что при чтении данных из оперативки они остаются в кеше не байтиками, а линиями по 64 байта. В эту линию влезет 8 значений int из твоего массива, а если переделать на структурки - то только 2 значения по 28 байт (если зделоть нормально padding). А кеш быстрее оперативы - вот за счет этого и ускорение. Если бы статус был enum: byte, было бы еще быстрее.

> Надо ли мне теперь везде, где я обхожу что-то в цикле - сделать вот такую же штуку, или прирост там 0,0000000000000000000001% а работа с кодовой базой усложнится в разы?
Нет, не надо. Такое нужно только если гонишься за низким latency или hotpath в числодробилках для обсчёта гигабайтных агрегаций/etc. Делай сначала чтоб работало правильно хоть через foreach, хоть через linq, потом оптимизируй (с бенчмарками).
Аноним 17/03/24 Вск 16:48:17 #1308 №3089516 
>>3089500
А. Ну у них там статуса - в виде байтиков. Да.

Но из-за твоего описания - мне теперь еще менее понятно, зачем так делать было.
Уже сказал. Завод. Там типа код - для сборщика данных с датчиков. Да, датчиков много, но большую же часть времени, будем не чет на процессоре обрабатывать, а ждать что там в сокет прилетит.
Надо наверное у них пойти и спросить. Но блин, так страшно, посмотрят как на дурака, я потом полгода буду в пол смотреть.
Аноним 17/03/24 Вск 16:58:18 #1309 №3089537 
>>3089516
Дурак не знает и знать не хочет. А ты интересующийся.
Тем более для прогеров алгоритмы и архитектура - такой же повод для гордости как и большой хуй.
Аноним 19/03/24 Втр 19:16:48 #1310 №3092759 
Шаблонщики, попробуйте решить головоломку - как сохранить в структуре тип функции без указания его в параметрах шаблона? Проблема в том что при его объявлении в другом классе надо прописывать все его параметры, а там может быть длинная лапша в виде int()(int&, zalupa, govno). В методах есть частичный/полный вывод типов шаблона, а для классов не завезли - указывай всё явно. При этом нужен именно компайл-тайм тип чтоб потом можно было его в концепте другого метода заюзать.
Аноним 19/03/24 Втр 19:54:53 #1311 №3092835 
>>3092759
Using func_type = govno(zalupa)(penis, her)
T::func_type
Так не выйдет?
Накидай минимальный воспроизводимый пример
Аноним 19/03/24 Втр 20:19:06 #1312 №3092871 
>>3092835
Так это надо для каждого типа писать такое. А я имею в виду, условно, передать функцию в конструктор, сохранить её тип и потом в методе обращаться к этому типу. С auto при создании инстанса шаблона такой трюк провернуть можно - тогда типы шаблона сами выведутся, но auto нельзя использовать для полей класса - там придётся писать при объявлении поля вот такое говно:
> A<govno()(zalupa, pizda)> a;
При том что этот тип по логике приватный, нахуй он нужен во внешнем интерфейсе класса, где инкапсуляция.
sage[mailto:sage] Аноним 19/03/24 Втр 20:59:01 #1313 №3092941 
>>3092759
>>3092871
Генери функции макросами
таблетки пил
Аноним 19/03/24 Втр 21:28:43 #1314 №3092980 
>>3092871
Накидай пример, я попробую.
Потому что пока мне кажется что юсинг то что нужно.
Аноним 20/03/24 Срд 08:04:22 #1315 №3093281 
>>3092759
Либо забей на типы параметров нахуй они тебе дались?
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 для него.
Аноним 20/03/24 Срд 08:13:42 #1316 №3093285 
>>3092759
>>3093281
Но, вообще, я бы не советовал делать, как во втором варианте, если ты точно не знаешь, что у тебя всегда будут именно указатели, а не вызываемые объекты, типа лямбд.
Аноним 20/03/24 Срд 14:52:29 #1317 №3093708 
>>3092759
вообще, вопрос интересный
так или иначе его решали начиная собственно с начала проектирования стандартной библиотеки шаблонов, там была парочка функций-помощьников для этого
потом предлагались различные улучшения, часть из которых была в буст добавлена
ну а потом когда пошли новые стандарты, то почти в каждом стандарте добавлялись какие-нибудь мелочи чтобы улучшить решение данной проблемы
так чтож удачи опу во всем этом разбираться, ибо это интересно и очаровательно бесполезно
Аноним 20/03/24 Срд 14:52:50 #1318 №3093709 
>>3093708
>опу
вернее, спрашивающему
Аноним 20/03/24 Срд 16:12:32 #1319 №3093801 
>>3092759
> В методах есть частичный/полный вывод типов шаблона, а для классов не завезли - указывай всё явно
>так разве CTAD не про это как раз?
Аноним 20/03/24 Срд 16:23:45 #1320 №3093818 
>>3093708
> так чтож удачи опу во всем этом разбираться, ибо это интересно
Я уже на 99% уверен что это невозможно. Т.к. шаблоны не могут хранить никакого состояния, кроме того что находится в списке параметров шаблона. Более того, после того как инстанс шаблона создан, типы в шаблоне не могут меняться, т.е. фактически мы можем только константы хранить в параметрах шаблона. Так что вариант один - прописывать каждый тип, через using или ещё как, и обращаться к этим прописанным типам. Я вчера попердолился с constexpr-функциями, возвращающими тип, но всё хуйня. На момент передачи чего-либо в конструктор все типы шаблона уже выведены и ничего невозможно сохранить. Ждём рефлексию в С++26, там уже можно будет в компайл-тайм типами жонглировать как переменными, может уже в этом году увидим в working draft.
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2996r2.html
Аноним 20/03/24 Срд 23:22:35 #1321 №3094342 
я прпльно понимаю что для иучения с++ в visual studio мне нужно иметь примерно 50 гб свод места? пиздец много весят "файлы" для него. охуеть.
жаль а) я нищий б) у ноута всего один слот ссд.
придется отлодить учебу (
так бы купил 8тб ссд м.2
Аноним 20/03/24 Срд 23:59:03 #1322 №3094367 
ну поставь турбо-С в досбоксе
в мегабайт уложишься
Аноним 21/03/24 Чтв 01:33:35 #1323 №3094427 
>>3094342
> Visual studio
> C++
Тебе ещё компилятор понадобится
ты же не собираешься мсвц использовать, ведь правда?
Аноним 21/03/24 Чтв 12:22:03 #1324 №3094680 
>>3094427
>мсвц
why not
Аноним 21/03/24 Чтв 13:18:06 #1325 №3094732 
>>3094427
Если по какой то причине чел хочет под виндой писать, то мсвц лучший выбор лол, и мингв и кланг еще хуже. А так то конечно лучше православного гцц ничего нету.
Аноним 21/03/24 Чтв 14:17:51 #1326 №3094769 
>>3094732
Но мингв это и есть порт гцц под винду.
Аноним 21/03/24 Чтв 14:45:47 #1327 №3094796 
>>3094427
В чем проблема мсвц? Он бывает на шаблонах ошибается, но в целом им собирают почти все под виндой. Не думаю, что у него будет проект сложнее UE5, что возникнут проблемы.
Аноним 21/03/24 Чтв 14:53:52 #1328 №3094804 
Кто подавался на сеньора C++ в бигтехи, что там по System design спрашивают?
Просто на плюсах обычно байтики переворачивают, а не сайты делают, неужели там попросят Twitter спроектировать
sage[mailto:sage] Аноним 21/03/24 Чтв 14:56:09 #1329 №3094808 
>>3094769
Теплое с мягким не путай.
Аноним 21/03/24 Чтв 19:47:57 #1330 №3095160 
Посоны, а на cppreference.com вот это вот что пишется в каждом стандарте, что добавлено, что удалено, депрекейтед, это же все изменения описаны какие есть на каждый стандарт плюсов, или только самые важные?
Аноним 21/03/24 Чтв 19:49:50 #1331 №3095162 
>>3095160
Все
Аноним 21/03/24 Чтв 20:27:53 #1332 №3095194 
>>3095160
Там местами инфа довольно скудная, за полной в стандарт идти надо. По новым фичам там пробелы есть, TS неактуальная по большей части.
Аноним 21/03/24 Чтв 21:42:28 #1333 №3095292 
>>3095194
> По новым фичам там пробелы есть

Ну это же крайнего только стандарта касается, правильно я понимаю?
Аноним 21/03/24 Чтв 21:50:59 #1334 №3095301 
>>3094804
На завод иди гайку крутить, где бронь дают, лошара. Может под майскую мобку не попадешь.
Ишь чего он захотел. Бигтех какой то с крестами.
Аноним 21/03/24 Чтв 22:23:27 #1335 №3095329 
Абсолютно серьезный вопрос. Переполнение знаковых чисел - ub. Как код писать? Понятно, что есть ограничения на размер входных данных, но везде высчитывать, что все укладывается в int нереально на практике. Как писать? И как это в расте, например, решено?
Аноним 21/03/24 Чтв 22:25:00 #1336 №3095334 
Абсолютно серьезный вопрос. Переполнение знаковых чисел - ub. Как код писать? Понятно, что есть ограничения на размер входных данных, но везде высчитывать, что все укладывается в int нереально на практике. Как писать? И как это в расте, например, решено?
Аноним 21/03/24 Чтв 22:49:26 #1337 №3095369 
>>3095334
Ну ты же понимаешь, какой размерности у тебя числа на входе в функцию, какой на выходе.
Если нет - то да, плюсовики складывать не умеют.
на х86-64 переполнение знакового не является УБ
Аноним 21/03/24 Чтв 22:53:31 #1338 №3095378 
>>3095334
stdckdint.h
__builtin_add_overflow
Аноним 21/03/24 Чтв 22:59:48 #1339 №3095388 
image.png
>>3095369
>на х86-64 переполнение знакового не является УБ
Является.
Аноним 21/03/24 Чтв 23:13:49 #1340 №3095408 
151537385235.png
Как это он сделал ?
Аноним 22/03/24 Птн 00:41:26 #1341 №3095445 
Beginning C++20 From Novice to Professional001.png
Анон, ты не читал этот букварь, норм он для вкатунов?
Аноним 22/03/24 Птн 00:43:41 #1342 №3095451 
>>3095445
Я не читал, но обычно такие книги, которые посвящены конкретному стандарту, рассказывают не про язык в целом, а только про конкретный стандарт. Соответственно для незнающих язык не подходят
Аноним 22/03/24 Птн 00:50:58 #1343 №3095458 
>>3095451

Чет не подумал сразу закинуть его на файлообмен

https://transfiles.ru/27tqh
sage[mailto:sage] Аноним 22/03/24 Птн 01:14:20 #1344 №3095464 
>>3095329
Так и должно быть, лалка.
Аноним 22/03/24 Птн 04:03:29 #1345 №3095500 
>>3095445
вкатунов куда? в эзотерический язык программирования?
надеюсь у тебя есть две квартиры в собсвенности, чтобы одну сдавать, а во второй жить как монах, посвящая остаток жизни искусству метапрограммирования на крестах или че там придумали в новых стандартах еще такие же шизики
Аноним 22/03/24 Птн 07:24:20 #1346 №3095536 
>>3095388
Так ты со шланга спрашивай что за параша у него происходит. Под виндой это не UB.
Аноним 22/03/24 Птн 07:35:08 #1347 №3095537 
>>3095536
А на шланге х86-64 в какую то другую архитектуру превращается?

>>3095369
> на х86-64 переполнение знакового не является УБ
Пиздеж
Аноним 22/03/24 Птн 07:53:38 #1348 №3095543 
image.jpeg
Сап, анон. Я давно программирую сервера/клиенты на boost::asio, но сейчас столкнулся с проблемой, где не хватает знаний разбираться. Клиент, подключающийся ко мне, при RESET сокете вызывает у меня эксепшн, но, сука не всегда.

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

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

Как диагностировать?
Аноним 22/03/24 Птн 07:56:31 #1349 №3095545 
>>3095537
В ассемблере х86 это абсолютно корректная операция. То что шланг зачем-то делает сегфолт при кривых оптимизациях - это вопросы не к х86 и даже не к крестам. То что стандарт разрешает сделать там UB не значит что компиляторописатели должны такое говно вытворять.
Аноним 22/03/24 Птн 09:13:10 #1350 №3095576 
>>3095545
>при кривых оптимизациях
> это вопросы не к крестам
А теперь идем и читаем что такое уб
Аноним 22/03/24 Птн 10:10:36 #1351 №3095618 
>>3095388
У тебя здесь УБ в другом месте:
while (i + 1 > i) эквивалентно while (true) при О3, кмк, а бесконечные циклы без возможности выхода - уб и без оверфлова.
Так что тут да, УБ, но не из-за оверфлова.
Оверфлоу - это UNT_MIN * -1.
Аноним 22/03/24 Птн 10:13:13 #1352 №3095624 
>>3095618
>бесконечные циклы без возможности выхода - уб
huh?
Аноним 22/03/24 Птн 10:29:56 #1353 №3095640 
>>3095624
Ну вот так, бесконечные циклы без сайд эффектов УБ. Ты конечно можешь заявить что здесь есть сайд эффекты, но кто мешает компилятору выкинуть строку 13(до нее ведь исполнение не дойдет), а в след за ней и все переменные, кроме х? А раз х нигде не используется далее, то и выкинуть весь цикл.
Я бы вообще вывел посмотреть, что там осталось после оптимизаций компилятора.
Аноним 22/03/24 Птн 10:45:03 #1354 №3095657 
>>3095640
> Ну вот так, бесконечные циклы без сайд эффектов УБ.
А, ну без сайд эффектов ещё понятно
Я только знал что пустой бесконечный цикл это уб
Аноним 22/03/24 Птн 11:29:01 #1355 №3095714 
>>3095500
> в эзотерический язык программирования?

У меня других вариантов нету, мне VST плокенчики надо реализовывать, это не я выбрал плюсы, это они выбрали меня
Аноним 22/03/24 Птн 13:36:49 #1356 №3095834 
image.png
>>3095329
> Переполнение знаковых чисел - ub. Как код писать?

0.7 секунды гугления
Аноним 22/03/24 Птн 13:59:20 #1357 №3095858 
>>3095834
> INT_MIN - lhs
Бро, так не троллят...
Аноним 22/03/24 Птн 14:11:38 #1358 №3095869 
>>3095858
Бро, я не проверял. Честно. Но уверен что ответ верен.
Аноним 22/03/24 Птн 14:21:39 #1359 №3095881 
>>3095869
Да не, там верный код. Я почему то затупил, что в этой ветви лхс всегда отрицательный и андерфлова не будет.
>>3095388
Вот чекни ассемблер, который у тебя сгенерится, сильно удивишься. Там действительно не будет ничего, кроме вывода константы в каут.
И не будет именно потому, что компилятор уверен что УБ не бывает и выкидывает цикл нахой.
Аноним 22/03/24 Птн 14:23:46 #1360 №3095885 
>>3093818
>Т.к. шаблоны не могут хранить никакого состояния
Вообще могут, хоть стандарт это и запрещает:
https://b.atch.se/posts/constexpr-meta-container/
Аноним 22/03/24 Птн 14:24:17 #1361 №3095886 
>>3095369
>на х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 переполнение знаковых, например.
Но можно компилятору указать сабсет языка, где переполнение будет опредленным поведением, с помощью инструментального флага.
Аноним 22/03/24 Птн 14:27:05 #1362 №3095888 
>>3095886
Чувак, в стандарте пишут абстрактные вещи, чтоб не зависеть от платформы.
Если ты пишешь под конкретную, и знаешь как на ней работает условный ADD, то поведение в случае оверфлоу будет очень даже ожидаемым и определенным.
Оно станет неопределенным при переносе на другую платформу.
Аноним 22/03/24 Птн 14:28:41 #1363 №3095889 
>>3095858
>Бро, так не троллят...
Хуя ты тупостью потроллил.
Бранч lhs < 0
Выражение rhs < INT_MIN - lhs эквивалентно rhc + lhs < INT_MIN
Аноним 22/03/24 Птн 14:30:05 #1364 №3095892 
>>3095889
Да согласен, читал жопой...
Аноним 22/03/24 Птн 14:30:23 #1365 №3095894 
>>3095888
>то поведение в случае оверфлоу будет очень даже ожидаемым и определенным
Да, конпелятор ожидаемо заметит УБ и сделает, как ему будет нужным, а не как ты ожидаешь лол.
Аноним 22/03/24 Птн 14:40:38 #1366 №3095909 
>>3095894
В примере выше он абузит не уб, а уверенность в том что уб там нет(ведь в коде на плюсах не должно быть уб)(что i всегда положительно).
Если кстати заменить тип i на size_t все ок.
Аноним 22/03/24 Птн 15:10:27 #1367 №3095939 
>>3095909
Именно поэтому сайзт это сайзт, внезапно. А индексировать интами нужно только во всяких сиатик ассертах.
Аноним 22/03/24 Птн 15:36:22 #1368 №3095966 
>>3095939
Я должен вообще согласиться с тобой что писать цикл как было выше нельзя, ибо действительно мы полагаемся что уб произойдет, а компилятор может его банально недопустить удалив цикл.
То есть логика такая: на УБ полагаться нельзя.
Но в целом изначальный спор не об этом, а о том как работает ADD в х86-64.
То есть если мы сложим INT_MAX и 1 мы получим гарантированное значение, но нельзя полагаться что компилятор не выкинет всю эту операцию из-за оптимизаций.
Аноним 22/03/24 Птн 16:39:12 #1369 №3096077 
Как сделать игру типа Марио или Ори или Брейд на С++ мультиплатформенную, чтобы ебически красивый виузал? Огни, искры, шлейфы, дым, порох, туман, чтобы динаимчесики двигались. Свет, цвет, физика шлейфа клейкого густого думана, турбулентности после пробега героя

Вот именно как на уровне кода реализовывать эти вещи. Чтобы игра шла в 60фпс на ipad и 120фпс на пс4/хбокс

А еще - ДОЖДЬ. Т.е. огни, искры, шлефы, дым и порох будут в В ДВУХ ФИЗИЧЕСКИХ ИПОСТАСИЯХ, при сухом и влажном воздухе, да и не дискретно, а градиентно чтобы менялась физика(ХИМИЯ?!?!?!???) их поведения, в зав-то от интенсивности дождя.
Аноним 22/03/24 Птн 16:46:31 #1370 №3096090 
>>3096077
Никак
Аноним 22/03/24 Птн 17:21:20 #1371 №3096124 
>>3096077
Да все просто
- учишь с++
- учишь компьютерную графику
- тратишь 10 лет на написание идеального движка
- ещё пять лет на создание игры
Аноним 22/03/24 Птн 17:30:57 #1372 №3096136 
>>3096077
Набираешь команду, ищешь финансирование, организуешь процесс разработки, делаешь игру.
Аноним 22/03/24 Птн 17:42:32 #1373 №3096148 
>>3095966
Не знаю о каком компиляторе речь, но нормальный гцц ничего не выуидывает,а переполнение интов базированая база используемая в логике.
не отменяет факта что сингед типы в роли индекса использовать глупо
Аноним 22/03/24 Птн 18:45:04 #1374 №3096221 
я так хочу делать ААА+ игры. и зарабатывтаь сотни миллионов долларов.
так хочу....
Аноним 22/03/24 Птн 18:46:03 #1375 №3096222 
>>3096124
>- тратишь 10 лет на написание идеального движка
вот конкретно что сложного в 2д дыме и порохзе, свете, искре и огне? буквально пара часов написания кода и пара дней полировки и калибровки. нет?
Аноним 22/03/24 Птн 18:53:18 #1376 №3096230 
>>3096148
Скомпиль пример выше гцц, он тоже выкинет цикл.
Аноним 22/03/24 Птн 18:58:02 #1377 №3096247 
>>3096230
Он выкинет бесполезный цикл, а не полезное переполнение.
Аноним 22/03/24 Птн 19:00:21 #1378 №3096254 
>>3096077
> Чтобы игра шла в 60фпс на ipad и 120фпс на пс4/хбокс

Я не знаю что внутри ipad и иксбокс,
но под Виндой это достигается прямой работой с WinAPI, а под Юниксами прямой работой поверх xlib.

Хуячу так уже несколько лет, но не игры.
Охуеваю с мифа, к созданию которого сильно приложил руку, мол X11 тормозной. Нихуя он не тормозной, а скорость его работы приблизительно равна Windows GDI.

А знаешь откуда взялся этот миф? Да потому что писатели либ, что идут поверх Х11, болваны. Не все, но многие. И потому что пверх Х11 уже несколько слоёв нагородили.
Аноним 22/03/24 Птн 19:00:56 #1379 №3096255 
>>3096148
>не отменяет факта что сингед типы в роли индекса использовать глупо
Qt, например, использует. Так арифметика с индексами гораздо логичнее выглядит. Например, for ( int i = 0; i < ar.size() - 1; ++i ) выглядит более естественно, чем for ( size_t i = 0; i + 1 < ar.size(); ++i ). Ну и вообще, у знаковых чисел i - 1 гораздо меньше вопросов вызывает, чем у беззнаковых, не надо думать над каждым вычитанием.
Аноним 22/03/24 Птн 19:03:25 #1380 №3096262 
>>3096077
>Огни, искры, шлейфы, дым, порох, туман, чтобы динаимчесики двигались.

Очевидно - спрайтами, если типа Марио. Дёргать OpenGL ради Марио равносильно забиванию гвоздей микроскопом.

Спрайты, спрайты, спрайты, спрайты - в них весь секрет и только в них.
Аноним 22/03/24 Птн 19:04:33 #1381 №3096264 
>>3096254
Сейчас весь графоний целиком на видюхе считается, и большая часть физики тоже. От WinAPI и иксов только создание окна берут. Ну и иксы реально тормозные, когда надо полупрозрачность использовать, например.
Аноним 22/03/24 Птн 19:06:50 #1382 №3096267 
>>3096262
Какие спрайты лол. Даже на консолях после PS2 уже аппаратных спрайтов давно нет. Все на видюхе рисуется треугольничками.
Аноним 22/03/24 Птн 19:11:28 #1383 №3096268 
>>3096247
Так ничего не выкидывает или бесполезные циклы все таки выкидывает, ты определись.
Идея в том, что такой цикл написан с опрой на уб, а компилятор не в курсе что там будет уб и i переполнится.
Аноним 22/03/24 Птн 19:11:52 #1384 №3096269 
>>3096264
>Сейчас весь графоний целиком на видюхе считается, и большая часть физики тоже.

Да кто ж спорит? Я это понял, когда несколько (десять?) лет назад запустил пасьянс Косынку из новой винды на каком-то старом железе. И когда это пасьянс безбожно тормозил, то тут и пришло понимание.

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

Иксы реально тормозят до невозможности их использовать когда терминал и сервер на разных компах находятся. Тогда латентность убивает весь смысл этого протокола, а локально там всё очень даже шустро работает.
Аноним 22/03/24 Птн 19:13:58 #1385 №3096271 
>>3096255
Не использовать итераторы = ССЗБ
Аноним 22/03/24 Птн 19:16:06 #1386 №3096274 
>>3096267
Да. Но он заебётся изучать OpenGL.
Ему тогда либа какая-нибудь понадобится.

В итоги он или сделает, или не сделает. Скорее не сделает.
А спрайтами мог бы и сделать. Наскришотить с других игрушек, в фотошопе добавить прозрачность и хуячить, хуячить, хуячить.
Аноним 22/03/24 Птн 19:16:43 #1387 №3096275 
>>3096269
>тормозной мне показалась.
не показалась.
фикс.
Аноним 22/03/24 Птн 19:19:32 #1388 №3096281 
>>3096269
>но Xft, которая умеет красиво рендерит TTF шрифты, тормозной мне показалась.
Потому что шрифты как раз на клиенте рисуются через XRender, а для сглаженной линии, например кругленькой обводке на кнопке, приходтися битмепы с клиента на сервер гонять постоянно.
Аноним 22/03/24 Птн 19:21:16 #1389 №3096283 
>>3096274
>Да. Но он заебётся изучать OpenGL.
Так или иначе придется под видюху кодить, если он хочет "ебически красивый визуал".
Аноним 22/03/24 Птн 19:22:38 #1390 №3096285 
>>3096271
>Не использовать итераторы = ССЗБ
С итераторами обычно код на экран не влезает, и становится абсолютно нечитаемым. Индексы тупо проще и понятнее в большинстве случаев.
Аноним 22/03/24 Птн 19:25:03 #1391 №3096290 
>>3096285
Так, дедуль, опять с завода пораньше ушел?
Аноним 22/03/24 Птн 19:32:58 #1392 №3096305 
>>3096290
Тебе за строчки кода платят как индусам? Я ИРЛ не встречал людей, которым std::distance( v.begin(), it ) проще писать, чем тупо i.
Аноним 22/03/24 Птн 19:36:04 #1393 №3096309 
>>3096222
Из головы брал цифры
> пару дней
Нууууу, побольше точно, но все от тебя кончено зависит
Аноним 22/03/24 Птн 19:37:15 #1394 №3096313 
>>3096305
Зачем тебе вообще индекс?
90% операций с контейнерами - трансформ/копи
Аноним 22/03/24 Птн 19:43:15 #1395 №3096331 
>>3096313
Потому что у меня в контейнерах не опердени лежат, а обычно геометрия: вершины, треугольники и всякие графы, деревья. Там индексы явно надо хранить обычно.
Аноним 23/03/24 Суб 14:41:44 #1396 №3096870 
image.png
image.png
>>3095388
Ну ребят, не ленитесь. Вот я вам перепиисал код даже, чтобы уб было именно в переполнении, в не в цикле без эффектов. Все равно не работает код. С O3 просто беосконечно что то выводится
Аноним 23/03/24 Суб 14:50:13 #1397 №3096874 
image.png
И вот с unsigned int
Аноним 23/03/24 Суб 16:38:34 #1398 №3097018 
>>3096870
Ассемблер неси, что мне твои закорючки до оптимизаций
Аноним 23/03/24 Суб 17:07:46 #1399 №3097046 
>>3097018
Причем тут ассемблер?
Аноним 23/03/24 Суб 17:20:09 #1400 №3097058 
1666028088925.png
>>3096870
Выкинь свой говнокомпилятор уже.
Аноним 23/03/24 Суб 17:21:21 #1401 №3097059 
>>3097058
Читай стандарт. Мой компилятор нормально все компилирует
Аноним 23/03/24 Суб 17:27:28 #1402 №3097062 
> это не уб потому что мой один компилятор нормально всё компилит в особых случаях

Самая странная дискуссия в этом треде
Шаг 1 - читаем что такое уб
Шаг 2 - узнаем кто определяет что уб, а что не уб
Шаг 3 - узнаем про взаимоотношения компиляторов и уб
Аноним 23/03/24 Суб 17:56:16 #1403 №3097110 
1555659953990.png
1646763186361.png
>>3097059
Покажи в каком месте стандарт разрешает переполнению инта крашить рантайм, лол. В стандарте написано что на поддерживаемых архитектурах переполнение должно быть обратимым, т.е. если оно случилось ты можешь задетектить его и пофиксить. Пикрилейтед дебаг билд и релиз, хоть обосрись, но он будет всегда компилить валидное для x86 поведение. Покажи тогда как твой говнокомпилятор скомпилирует код с unsigned int, это по стандарту не UB.
Аноним 23/03/24 Суб 18:05:50 #1404 №3097126 
Да принести уже скрин со стандарта
Аноним 23/03/24 Суб 18:12:32 #1405 №3097142 
>>3097126
> Читай стандарт.
> принести уже скрин со стандарта
Ору с дауна.
Начни с этого хотя бы: https://eel.is/c++draft/basic.types#basic.fundamental-note-2
Аноним 23/03/24 Суб 18:34:38 #1406 №3097179 
image.png
image.png
пик 1 - пункт что скинул анон выше
Unsigned arithmetic does not overflow. Overflow for signed arithmetic yields undefined behavior
пик 2 - пункт 7.1.4

>>3097142
Если не кидать скрин то вы еще треда два спорить будете, ну и в целом когда на стандарт ссылаешься например как тут: "В стандарте написано что на поддерживаемых архитектурах переполнение должно быть обратимым", то не помешало бы сразу прикреплять сурс
сам то читал что мне скинул, где там про обратимость сказано? без упрека, самому интересно почитать о чем ты говоришь
Аноним 23/03/24 Суб 18:42:21 #1407 №3097194 
>>3097058
Внезапно захотел проверить свой компилятор, начал копипастить и о осознал что это скриншот. Придётся пальцами колотить.
Аноним 23/03/24 Суб 18:52:47 #1408 №3097216 
>>3097058
Да не спорь с ним, очевидно что залетный долбаеб.
Аноним 23/03/24 Суб 21:26:13 #1409 №3097460 
image.png
Скажите, а существует ли онлайн компилятор, который умеет собирать в онлайне умеет собирать досовские программы с эмуляцией C:\\BORLANDC\\BGI и чтобы умел рисовать на странице при этом?
Аноним 23/03/24 Суб 22:57:28 #1410 №3097525 
>>3097460
в вузике, когда поступил на прогера, на курсе по СиПласПлас препод на полном серьёзе давал лабы с использованием этой либы для для рисования графики (2 курс 2018-2019).

ебало моё имаджинировали? Хотя тогда это казалось чем-то прикольным, но сейчас понимаю, что это архаика и не абсолютно неактуально.
Аноним 23/03/24 Суб 23:30:10 #1411 №3097549 
>>3097525
ну как бы да. но альтернатива это опенжл со своими 500 строками на треугольник. вот там ебало твоё имаджинировать посложнее будет
Аноним 24/03/24 Вск 07:41:10 #1412 №3097653 
>>3097549
Чел, есть Direct2D.
Аноним 24/03/24 Вск 07:57:42 #1413 №3097658 
>>3097549
А как же glBegin glEnd?

меня так на компьютерной графике и обучали, в 2018 лол
Аноним 24/03/24 Вск 16:59:26 #1414 №3098096 
>>3097653
Дебил, под винду писать, надо сначала разобраться со структурой приложения винапи, все эти окна, сообщения, что и как куда идет и как это надо обрабатывать, и это только базовый хеллоуворлд вообще без функционала пустышка. Твоя школота обосрется кровью и сдохнет даже не дойдя до рисования. И такое в любой современной ОС, потому что они уже давно не ДОС с эксклюзивной однозадачностью где можно тупо писать программу без обвязок-соглашений с чем-то.
Аноним 24/03/24 Вск 19:39:53 #1415 №3098285 
>>3098096
Для совсем хлебушков есть обёртка 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());
Всё.
Аноним 25/03/24 Пнд 04:43:33 #1416 №3098821 
>>3098285
Хлебушек, речь про учебу. Что толку формошлепить говно, чему ты научишься? Только формошлепить говно. От такого только тупеют, а школа предназначена учить людей понимать как устроены вещи, программирование в данном случае, делать учеников умнее. Школа не курсы где натаскивают на РАБОТУ "не думай, делай". Школа это про ДУМАТЬ, ПОНИМАТЬ. Нельзя ничему научить заставляя учеников делать то что они не понимают. А обертки говна или тем более ковыряние мышкой СКРЫВАЮТ как оно работает, ты делаешь магическую хуйню совершенно не понимая что делаешь, от такого только тупеют. А школа нужна не для выращивания дебилов.

Таким образом, учебная программа обязана быть явной, понятной ученику, чтобы он видел как это работает. А такое просто может быть только в простой системе как ДОС, а в современных системах это очень сложно. Самая базовая пустышка хеллоуворлда сложна и требует квалификации программиста, то есть уже сформированного специалиста, а школы нужны делать наоборот, учить тех у кого нет квалификации, и вовсе не делать работу, а понимать что такое программы, программирование. Школы учат не для того чтобы потом ученики это делали, так же как в школах преподают математику, физику, химию вовсе не потому что ученик потом захочет быть математиком, физиком или химиком. Так и программирование, оно и не должно учить работе, оно должно учить ПРОГРАММИРОВАНИЮ, как оно устроено по сути, чтобы ученик понимал что это такое, как оно работает, а для этого требуется ЯСНОСТЬ, ПРОЗРАЧНОСТЬ, ПОНИМАНИЕ, а вовсе не как проще запилить рисунок.

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

А в современном говне совсем не так. В современной сложной ОС рисует не программа, а система, система отвечает полностью за всю графику "магически", о чем программист даже не подозревает. Программист вообще ничего не рисует. Современное рисование практически не применяется нигде, только в очень ограниченных случаях называемых OwnerDraw. Это уже уровень высокой квалификации, отъявленных извращений. Поэтому и современные фреймворки по сути даже не дают инструментов рисования, то есть синтеза графики. Синтез в современных системах по сути выпилен нахуй. Поэтому, по такому говну невозможно учить программированию, можно только учить как на курсах тупых макак типа Офиса, учить пользоваться Вордом и Екселем, просто надрессировал собак выполнять действия, это не учеба никакая.
Аноним 25/03/24 Пнд 06:04:09 #1417 №3098828 
Ебать шизо паста
Аноним 25/03/24 Пнд 08:16:24 #1418 №3098850 
>>3098821
> чтобы он видел как это работает
Как что работает? Современная графика совсем не так рисуется. Какой смысл в том что ему покажут примитивное рисование пикселями из начала нулевых?
> очень сложно
Тогда не трожь сложные темы, вместо того чтобы заменять их на какое-то бесполезное говно. А потом получаем какой-то кал мамонта в 2024 году, как будто его писал дед после 20-летнего криосна.
Аноним 25/03/24 Пнд 10:03:19 #1419 №3098874 
>>3098850
Не 20. Шейдеры в 90 уже были.
Аноним 25/03/24 Пнд 12:19:39 #1420 №3099019 
>>3098874
>Шейдеры в 90 уже были.
В 1999 только если.
Аноним 25/03/24 Пнд 12:31:02 #1421 №3099048 
>>3096077
>ебически красивый виузал
Для этого не нужно уметь программировать, а нужно уметь в VFX и рисование. В юнити достаточно кастомизируемый рендер пайплайн, Ори его как раз активно использует. Так же юнити кроссплатформа, так что проблем с всякими айпадами быть не должно. Запомни сразу - если ты видишь, что что-то выглядит необычно, то над этим работал либо талант, либо команда профессионалов с хорошим вкусом и многолетним опытом, а сама работа заняла годы. Попробуй хотя бы кубики порисовать от руки на бумаге, думаю дальше этого дело не уйдет.
Аноним 25/03/24 Пнд 16:00:54 #1422 №3099235 
диалог.png
>>3098850
>>читать полностью, а не выдергивать отдельные слова
>>напрягать извилины отвечая интеллектуально, а если не можешь хотя бы соглашаться с мудростью
Сократа нет на жопы таких дебилов.
Аноним 25/03/24 Пнд 21:30:38 #1423 №3099581 
>>3098821
Чел, какое ещё рисование пикселей на ЦП в 2024? Immediate рендеринг уже легаси из нулевых, кроме примитивного 2D ни для чего не пригоден, графические пайплайны из Vulkan/DX12 скоро легаси станут и их заменят графами. Если хочешь изучать графику, то надо начинать с актуальных технологий.
Аноним 26/03/24 Втр 06:38:50 #1424 №3099737 
>>3099581
>с актуальных технологий
Дергать API вызовы, которые меняются каждые пять лет?
Аноним 26/03/24 Втр 12:02:32 #1425 №3100054 
1000005359.jpg
>>3099581
> графические пайплайны из Vulkan/DX12 скоро легаси станут и их заменят графами.
Как это все учить вобще
Еле еле вулкан осилил на самом деле нет, так тут ещё что то новое придумали
Аноним 26/03/24 Втр 12:44:51 #1426 №3100165 
>>3099581
>какое ещё рисование пикселей на ЦП в 2024
Если что большинство не риалтайм рендереров софтварные и работают на ЦП. Если ты на Дюну 2 ходил то можешь быть уверен, что рендерили ее или в Mantra или в Arnold-е на ферме из цпу.
Аноним 26/03/24 Втр 13:15:52 #1427 №3100217 
Мнения clang vs gcc vs msvc?
Аноним 26/03/24 Втр 13:16:38 #1428 №3100218 
>>3100165
Почему так?
Аноним 26/03/24 Втр 13:27:39 #1429 №3100240 
>>3100218
так удобнее
Аноним 26/03/24 Втр 14:10:19 #1430 №3100321 
>>3100218
У софтварных рендереров больше фич. Например Mantra это рендер движок от пакета Houdini, в нем упор сделан на процедурность, и для этого уже есть сотни инструментов. Например процедурно нагенерировать горы, снег, реки, раскидать флору по локации, это все можно сделать чисто на алгоритмах, причем так, что если ты сменишь локацию то все будет выглядить заебись. А теперь представь, что ты разработчик этого пакета и тебе нужно сделать рендер движок - если он будет на цпу то можно весь этот функционал перенести прямо в движок (например сгенерировать дисплейсмент мапы, добавить осколы/декали, сделать нижние этажы зданий более грязными опираясь на Z координаты точек геометрии, менять параметры BRDF по маскам с геометрии и т.д), или же делать рендер движок на ГПУ и весь функционал для него с нуля (и в целом ГПУ более ограниченные). Люди из кино выбрали первое, хотя сейчас пошли на компромисс и постепенно пилят и рендереры на видюхах, например Karma XPU/VRay.
Так же ЦПУ просто дешевле, а время на кадр не особо важно - у тебя задача сделать шот на 3-5 секунд (72-120 кадров), ты просто все настраиваешь, рендеришь 5 кадров, и закидываешь таску на ферму и идешь домой, а утром получаешь готовый шот. Нет особой разницы будет ли оно рендерится 3 минуты на кадр или 15, минут, все равно в пределах суток-двое все отрендерится.
Аноним 26/03/24 Втр 14:30:32 #1431 №3100359 
>>3100165
> большинство
Кроме Мантры ничего нет. И то её в кинце 146% не используют.
> Дюну 2 ходил то можешь быть уверен
Хватит срать под себя. VFX-движки - это не финальный рендеринг. В кинце скорее всего будет Redshift или Vray. В сиричах сейчас вообще UE5 используют часто, тот же Мандалорец полностью на UE5 рендерился.
> Arnold
Это GPU-рендерер.
Аноним 26/03/24 Втр 14:37:51 #1432 №3100383 
>>3100218
>Почему так?
Потому что кучу вспомогательных алгоритмов и либ там писали еще диды в 80-х на фортране. Все это портировать на GPU просто нереально.
Аноним 26/03/24 Втр 14:39:33 #1433 №3100388 
>>3100321
Неужто коллега из VFX? Я бы с тобой подискутировал, но это нерелевантно треду.
Аноним 26/03/24 Втр 14:43:22 #1434 №3100398 
>>3100359
>Это GPU-рендерер.
Когда успел стать GPU?
>>3100383
Максимум, что там на фортране, это lapack или blas, которые давно переписали, и они не используются в рендерах.
Аноним 26/03/24 Втр 14:46:32 #1435 №3100410 
>>3100359
>тот же Мандалорец полностью на UE5 рендерился.
Пиздёж.
Аноним 26/03/24 Втр 15:16:28 #1436 №3100452 
>>3100410
https://www.youtube.com/watch?v=gUnxzVOs3rk
Аноним 26/03/24 Втр 15:21:03 #1437 №3100455 
>>3100398
>Максимум, что там на фортране
Я про сам гудини. Да и в рендере, если он RenderMan поддерживает, наверняка куча непортируемого кода.
Аноним 26/03/24 Втр 16:55:08 #1438 №3100553 
>>3100217
msvc для разработки и отладки, затем портируется повсюду.

А так-то Intel C Compiler, если нужна максимальная оптимизация. Но он дорогой, а триал период короткий.
Аноним 26/03/24 Втр 17:07:56 #1439 №3100572 
>>3100553
Ицц ето уже мем. По сути сейчас там кланг со всеми вытикающими. Толку от него нету.
Для винды мсвц, для остального гцц.
Аноним 26/03/24 Втр 20:18:38 #1440 №3100872 
>>3094732
> А так то конечно лучше православного гцц ничего нету.
Схуяли?
Аноним 26/03/24 Втр 20:20:26 #1441 №3100877 
>>3094342
Если бы сидел на лине, то мог бы просто шланг или гцц скачать и в vs code (не путать с visual studio) прогать. Потребовалось бы ну очень сильно меньше памяти. Наверное можно как то их на винду затащить, но я не могу подсказать
Аноним 26/03/24 Втр 20:33:39 #1442 №3100904 
>>3094342
Можно так:
https://code.visualstudio.com/docs/cpp/config-mingw
Аноним 26/03/24 Втр 22:28:45 #1443 №3101093 
>>3100553
>msvc для разработки
Только потому что допотопное говно, которое от нормальных компиляторов отстает на пять лет - если на нем собралось, то везде соберется. Там С++17 до конца еще не реализован. Мультилайн регекспов, похоже вообще никогда не будет. Разрабатывать на нем боль, конечно: скорость компиляции там в разы меньше, чем у других, особенно на сложных темплейтах. Поэтому без pch далеко не уедешь. Линкер тоже а разы тормознее даже стандартного ld, не говоря уже про молд и голд.
Аноним 26/03/24 Втр 23:30:42 #1444 №3101179 
image.png
>>3101093
>Там С++17 до конца еще не реализован.
Аноним 26/03/24 Втр 23:33:37 #1445 №3101184 
image.png
>>3101093
Даже так.
Аноним 26/03/24 Втр 23:43:07 #1446 №3101198 
>>3101093
> которое от нормальных компиляторов отстает на пять лет
Чел, самый отсталый компилятор - это шланг, в котором даже С++20 нет до сих пор. Корутин нет, модулей нет, рейнджей нет. Какой-нибудь UE5 на шланге не собрать, лол.
> Там С++17 до конца еще не реализован.
Хватит бредить, MSVC единственный компилятор с полной поддержкой C++20, и на текущий момент он единственный с полной реализацией STL С++23.
> Мультилайн регекспов, похоже вообще никогда не будет.
Естественно, стандарт надо соблюдать.
Аноним 26/03/24 Втр 23:45:31 #1447 №3101200 
>>3101093
Пердодебил, компиляция в разработке занимает последнее место. Разработка это __написание__ кода, а вовсе не компилирование. Как твой сраный пердоговняный компилятор поможет __писать__ код?
Аноним 27/03/24 Срд 01:06:13 #1448 №3101247 
>>3101200
>Разработка это __написание__ кода, а вовсе не компилирование.
Чем дольше ты ждешь пока компиляция закончится, тем меньше кода ты напишешь.
>Как твой сраный пердоговняный компилятор поможет __писать__ код?
У clang сообщения об ошибках в разы лучше, чем у MSVC как минимум. Не говоря об тулзах clang, которые сейчас везде абсолютный стандарт для работы с кодом, в том числе в MS.
Аноним 27/03/24 Срд 01:20:25 #1449 №3101255 
>>3101179
Там на каждый пункт поддержки "The implementation is sufficient to support c++xx standart" лол. Если хоть как-то экспериментировать начинаешь с новыми фичами, то MSVC сосет вообще всегда, хотя по букве стандарт поддерживается. У них вроде до сих пор только пять кодеров компилятор делают, и то на отъебись.
Аноним 27/03/24 Срд 01:24:47 #1450 №3101257 
>>3101200
>Пердодебил
Майки уже сами на винду забили. Это фактическим мертвая ОС, убитая эффективным индусским менеждментом. Но фанаты до сих пор обмазываются несвежей спермой и вспоминают счастливую юность, как они в третьих героев на хрюше играли и смеялись в ЖЖ над красноглазиками вместе с Русланом Кармановым (кстати, где он?).
Аноним 27/03/24 Срд 03:24:23 #1451 №3101291 
>>3101257
> Это фактическим мертвая ОС

Со времен висты слышу
Аноним 27/03/24 Срд 03:26:36 #1452 №3101292 
А линукс как был не подходящим для десктопа и творчества, так и остался, кабанчики как не спешили портировать свой софт на него, так и не торопятся
Аноним 27/03/24 Срд 04:26:06 #1453 №3101298 
>>3101247
Сразу видно пердосраль, быдлоюзер компилирующий чужие исходники, сам ничего не пишет. Все кукареки про то, сколько в консольке проходит времени до высера готового продукта. И это говно зачем-то лезет в тред программирования, съеби обратно на свой линук-сру или откуда там вылез компилировать генту, там и сренькай про компиляторы.
Аноним 27/03/24 Срд 06:57:31 #1454 №3101325 
Хуя виндобляди порвались.
Аноним 27/03/24 Срд 08:01:49 #1455 №3101360 
scale1200.png
Челик с графиком. Вот тебе совет: мапь пиксели экрана на свою функцию, а не функцию на пиксели.
Аноним 27/03/24 Срд 08:38:40 #1456 №3101390 
КОЛЛЕГИ, ПЕРЕКАТИТЕ ТРЕД, ПОЖАЛУЙСТА
Аноним 27/03/24 Срд 08:48:08 #1457 №3101400 
>>3101390
Перекати.
Аноним 27/03/24 Срд 08:50:02 #1458 №3101401 
>>3101400
Я новенький, хотел поговорить про std::move. Не знаю местного лора чтоб перекатывать.
Аноним 27/03/24 Срд 09:02:58 #1459 №3101411 
Ладно. Раз никто не перекатывают сам перекачу. Потом не жалуйтесь.
Аноним 27/03/24 Срд 09:03:49 #1460 №3101413 
>>3101411
Только не проеби тег и ссылку на прошлый тред.
Аноним 27/03/24 Срд 09:04:57 #1461 №3101414 
>>3101413
Тег это "cpp" надо вписать в поле "тег"?

Ссылку уже не проебал.
Аноним 27/03/24 Срд 09:05:40 #1462 №3101415 
image.png
Вот. Заапрувьте, а то в первый раз.
Аноним 27/03/24 Срд 09:18:41 #1463 №3101420 
ПЕРЕКАТ

https://2ch.hk/pr/res/3101419.html
https://2ch.hk/pr/res/3101419.html
https://2ch.hk/pr/res/3101419.html

ПЕРЕКАТ

>>3101419 (OP)
>>3101419 (OP)
>>3101419 (OP)
Аноним 27/03/24 Срд 09:33:24 #1464 №3101445 
>>3101414
Да.
>>3101415
Короче, всё правильно.
Аноним 27/03/24 Срд 12:12:19 #1465 №3101607 
>>3100359
>В кинце скорее всего будет Redshift или Vray. В сиричах сейчас вообще UE5 используют часто, тот же Мандалорец полностью на UE5 рендерился
Бля не пытайся отвечать по темам, о которых ты слышал из какого-то видосика на ютубе, выглядит максимально комично.
Аноним 27/03/24 Срд 12:14:02 #1466 №3101610 
>>3100452
Долбаеб даже не знает что означает virtual production, но уже пытается дискутировать по теме, спешите видеть
Аноним 28/03/24 Чтв 19:17:13 #1467 №3104119 
IMG20240109023229885.jpg
а где работа?
куда податься без опыта в питере
Аноним 28/03/24 Чтв 19:53:01 #1468 №3104170 
>>3104119
Яндекс. Хуавей по знакомствам. Спектр hft.
Аноним 28/03/24 Чтв 20:49:22 #1469 №3104257 
2974560910.jpg
>>3104170
тяжело
Аноним 29/03/24 Птн 02:39:12 #1470 №3104540 
>>3104257
Да че тяжело? Спект через дорогу от вузика
Аноним 04/04/24 Чтв 21:22:41 #1471 №3112079 
изображение.png
есть массивы ip и port
хочу скопировать их в массив fullAdress через :

я чо-то вообще не могу как норм это сделать
Аноним 13/04/24 Суб 13:47:15 #1472 №3120943 
>>3104119
В скoтoублюдии работа на крестах это проектировать хуи в нии. Оно тебе надо? Ты проснуться не успеешь как очнешься нищим полулысым скуфом с грыжей и огромным биноклем на ебале
Аноним 14/04/24 Вск 21:57:18 #1473 №3122819 
Посоны, насколько быстро происходит переход с чистого C на шарп и кресты?
Аноним 15/04/24 Пнд 13:23:18 #1474 №3123368 
>>3122819
Че за переход? Гормональный?
comments powered by Disqus

Отзывы и предложения