Этого треда уже нет.
Это копия, сохраненная 13 ноября 2020 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
xn2zjnez64pzklp69iaix77njn0.jpeg533 Кб, 1495x861
2 1708690
Страуструп это который в шляпе?
sage 3 1708691
Репорт за кат до лимита
sage 4 1708695
>>08691
Два чаю еще 106 жив, а вы уже 112 сделали.
sage 5 1708698
>>08695

> Два чаю еще 98 жив, а вы уже 20 сделали.

6 1708731
>>08690
В федоре и толстовке от Яндекса
7 1708742
>>08691
Лол, ты адекват?
1568992271324.png82 Кб, 325x325
8 1708751
>>08691
Че, тоже хотел перекатить, но не успел?
9 1708775
>>08681 (OP)

>2


А если я хочу прогать на языке D, можно я не буду, как говорил какой-то анон "D сделан для тех, кто уже поел говна на С++". Хоть я и знаю язык C++ более менее и писал на нему пару небольших петпроектов, но "говна" таки не поел, зато очень хочется сдриснуть с этого говнистого языка на более красивый. Можно?
10 1708792
>>1708756 →
Верно, я что-то упростил все. Но судя по всему можно снизить число connect'ов если все внутри одного класса находится.
>>1708768 →
Я читаю, но все равно сложно пока ориентироваться. Я даже не понял, есть ли там дефолтные значения для selectionbehaviour, если самому не задавать.
>>1708772 →
Да, видимо так и есть все, я готовый класс использовал безо всяких переопределений.
11 1708801
>>08690
В шляпе Антон Полухин(вроде так) — специалист по c++ из Яндекса.
1590885618967.jpg338 Кб, 1080x1296
12 1708815
>>08801
В телеге он выглядит так
13 1708834

> The initialization order of member variables is determined by their order of declaration, not their order in the initialization list.


Это с каких пор так?
14 1708855
>>08834
Всегда так было
15 1708876
>>08834
Gotcha! Ну какой же классный язык...
16 1708886
int i = '0';
const char& b = i;
std::cout << b;
i++;
std::cout << b;

Вот тут я охуел b никак не связана c i
17 1708891
>>08886
int неявно преобразуется во временный char, b ссылается на него.
Язык-пидор, язык-гной.
18 1708919
>>08886

> не связана


> ссылка


> ссылка - Вид наказания — пребывание на поселении в отдалённом месте в качестве сосланного.

19 1708922
аноны, соре, второй раз проебался с тредом
предлагаю коллективно признать этот и предыдущий треды нелегитимными и продолжить отсиживаться в 110 ом
20 1709130
Хочу перекатиться из веб параши в кресты. Помогите советом, в рашке как я понимаю кресты -- совсем неперспективная область, и придётся становиться байтослесарем с потолком в 100к? Очень не хочу проседать в зп (на вебпараше получаю 200к+), но хочу делать что-то крутое, помимо КРУДОВ и прочего говна.

Выбор у меня между растом и крестами, хочется в каком-нибудь охуенном месте сидеть охуенные задачи решать (лол).

В рашке только в яндексе на крестах норм вакансии и нет смысла даже соваться или как?
Вообще, где есть НОРМ разработка, отличная от мобилок (фу) и веба(фуууууу)?
21 1709132
>>09130
И какие вообще перспективы у 30-ти летнего чмони (меня), сующегося в кресты в первый раз?

Осилить ГО -- пара недель, Джаву -- месяцок-другой.

Кресты -- блядь, тут судя по первому взгляду год уйдёт на синтаксис и понимания указателей, какого хуя так мало платят?
22 1709134
Таки а что случилось с std::dynarray? Он в стандарте или нет?
Как рекомендуется в модерновом С++ аллоцировать массив чтобы его не нужно было освобождать? unique_ptr/shared_ptr и туда прямо массив засовывать вместо make_unique? Для char[] я думаю проще всего string использовать
23 1709138
>>09132
Да где блять мало, джуны 1к-1.5к, миддлы от 2к, сеньоры от 3к. В хороших конторах могут и джунам по 2к платить, это не говоря о том, что когда ты станешь сеньором а то и мидлом, то работа будет искать тебя сама, там же и удалёнка подкатит. А для джунов требуют не так и много, за первые два курса универа учится спокойно
24 1709146
>>09138
Пойти что ли программистом работать.
25 1709162
А как виндузовые живут без getopt? Как они аргументы парсят? Шокирован, что getopt это не часть стандарта C++. Столько бесполезного говна туда добавили.
26 1709166
>>09162
boost::program_options
27 1709195
>>09166
Вот я и говорю, из буста даже thread в стандарт включили, почему опции не хотят?
28 1709201
>>09195
Включили урезанный, я не ебу чем стандарт занимается и почему они даже скопипастить готовый код не хотят
29 1709205
>>09195
Сокеты тоже неплохо было бы в стандарт. Да и юникод заодно.
30 1709213
>>09205
Сокеты планируют в 23-м вместе с рефлексией. Юникод не нужен хуй знает когда будет. Опять же, хотя-бы для консольных приложений, в чём проблема скопипастить boost::nowide в стандарт? Бля и пары человек для ревью хватит, а так хотя-бы консольные приложения страдать не будут
31 1709214
>>09134
Вектор лучше всего. Уже много раз слышал правило, что если нет везких причин не использовать вектор, то надо брать именно его. А специализации для массивов у шареда нет не осилили скопипастить с буста вместе с самим шаредом
32 1709221
>>09138
ну ты не охуел ли? на твоём скрине от силы 10 вакансий за 200к и для них надо блядь пахать и пахать

на джсе за пару лет платят 200к+ почему вас крестовиков так унижают??
33 1709228
>>09221

>унижают


2 моих друга из-за нужды в деньгах в 2015 тупо начали рассылать резюме во все фирмы. Оба нашли работу. Сейчас оба мидлы за зп не знаю, не бедствуют. Были почти нулячие на тот момент, в старших классах учили что-то вроде. Жсер так может? Мне казалось там на одну вакансию 5 тыс. резюме, а эйчарши могут отказать из-за непонравившегося шрифта в CV. Вакансии там кстати не особо то и требовательные, вот тебе пофоткал парочку из мск, и пара из моего города. Средняя зп у нас 10к если что, медианная 5-7к или типо того
34 1709256
// floating-point duration: no duration_cast needed
std::chrono::duration<double, std::milli> fp_ms = t2 - t1;

// integral duration: requires duration_cast
auto int_ms = std::chrono::duration_cast<std::chrono::milliseconds>(t2 - t1);

Аааа блять что это за говно. Нахуя было так все усложнять.
Все что нужно timer.Start() timer.Stop() timer.GetSeconds() or milliseconds. А в этом хроно ебучем какие-то бесконечные касты.
35 1709291
То есть между ++i и i++ нет никакой разницы, и то и другое инкрементит, если мы не присваеваем значение куда-то? Тогда i++ изъебнется и сначала присвоит значение, а уже потом заинкрементит?
36 1709303
>>09291
Да. Только не обязательно присвоит, а просто возьмёт значение и использует в выражении. Например, при вызове функции.
37 1709305
>>09228
ну что ты мне яички выкручиваешь, дружище. Я тебе о том, что сейчас мне за Ноду/Пхп платят 200к+, а знаний у меня хуй да нихуя, только всякие библиотеки да фреймворки как бибизяна выучил.
Вакансий миллион, если завтра решу поменять работу, новую найду за дня три макс.

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

Короче, хуй знает, но на мой взгляд джс-макаки, вас унижают как только могут за ваши знания
38 1709323
>>09305
Мимо-неон, а что тут удивительного, никакой связи между сложностью и рыночком. У ембедщиков такая же хуйня. Там еще и железо нужно знать и байтоебство. А не платят не хуя. А с другими индустриями сравнить - вообще пиздец. Математики там всякие, и прочие физики.
39 1709331
>>09305

> вас унижают как только могут за ваши знания


И что делать с этим будем? Нормальный крестокодер сможет себе без проблем место выбить с устраивающей его зп. Я вообще знаком с победителем ICPC, сегодня уже сеньором, там знаний блять как у профессора математики, препода по алгоритмам и 10 жс макак, работает за 3к, говорит как-то похуй на деньги, хотя не раз уже офферы и за бугор были, и местные мск на 5к. Думаешь ему не похуй, что о нём какой-то недопрограммист, который семафор от мьютекса не отличает, думает?
40 1709346
>>09305

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


Я тоже так хочу, откуда начинать?
41 1709357
>>09331

> семафор от мьютекса


чем отличается? мимо 3 года опыта
42 1709361
>>09357
семафор пропускает n потоков, мьютекс один
43 1709363
>>09346
учи жиэс, учи фреймворк, подавай на джуна, потом через год перескакивай на двойную зп и через год ещё раз так же делай
44 1709367
>>08775
Бамп
45 1709401
>>09363
Чисто по книжкам можно вкатиться или там курсы какие-нибудь нужны?
46 1709404
>>09291
Ну как бы есть разница, порядок исполнения другой

++i > 1 // это сначала сложение потом сравнение
i++ > 1 // это фактически сравнение и сложение можно запускать одновременно. Надо скомпилить вывод посмотреть, я не уверен можно ли один регистр двум командам использовать, но если что можно все равно сложение делать в другой регистр а сравнивать текущий.
47 1709504
Дарю красивое имя переменной
int chlen = 8192;

Это не то, что вы подумали. Это chunk length при записи файла по кускам.
48 1709512
>>09504
klen
olen
plen
tlen
49 1709530
>>09504
int const anus = 0;
Да, это именно то, о чём вы подумали. Это анус.
50 1709534
>>09530
penetration - хорошее название для переменной типа double.
51 1709537
int eger;
float ing;
char acter;
short penis;
52 1709540
incel : внутренняя ячейка в таблице
short incel;
53 1709591
>>08681 (OP)
Обосрался со второго пика. Больше не буду такое писать, ну его нахуй. ОП, ты жжешь.
54 1709597
>>09228
Зачем ты выбрал именно топовые вакансии на плюсах? Я сам видел, так как регулярно просматриваю хх по мск.
Как мне показалось, очень много предложений работы связано с говном - программирование под винду, mfc, c++/cli, qt. Или байтоебство какое, где предлагают 120к за 6+ лет опыта работы.
У жс и джава макак все намного лучше в среднем
55 1709600
>>09130

>Вообще, где есть НОРМ разработка


Интересные задачи встречаются как ни странно в НИИ разной степени паршивости. Правда платят мало.
А так в РФ есть самсунг и хуавей, в последнем платят прилично, в пером нет. Яндекс по уровню зп считается ниже среднего по рынку.

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

На твоём месте я бы дальше сидел в вебе на хорошей зп. Просто скорее всего окажется, что перейдя в новую отрасль, ты обнаружишь, что задачи по прежнему говно и скучно, а зп и условия работы в разы хуже.
56 1709601
>>09130
Яндекс, Мейлру, Нвидия, дойчебанк, Сбербанк, Озон думает начинать кресты пердолить, как Сашка Фокин туда уехал.

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

>>09601
смотрю у яндекса дохуя крутых вакансий, по описанию все выглядят интересно

>>09600
может быть, ты и прав. Мне сложно описать, что я понимаю под норм разработкой, скорее это что-то вроде создания алгоритмов и решения каких-то абстрактных задач, наелся я бизнес-говна сполна, не могу больше скачивать и использовать библиотеку, хочу написать свою
58 1709606
>>09604

>хочу написать свою


так напиши. если чо полезное будет - отгребешь звезд и будешь мега звездой. а если ты кукаретик мамкин, то хуй сосать будешь де скончания веков. вот тебе мое проклятье
59 1709608
>>09601
Сбер и дойчебанк это логово джавистов, что собственно неудивительно.
Яндекс и нвидия - да. В остальном плюсовики нужны в крайне малом количестве.
60 1709609
Я вот заметил, чем чаще жабатреды уплывают за 0.5k постов, тем сильнее напрягается плюсотред. Господа датасаентисты, проверьте, нет ли тут корреляции.
61 1709610
>>09597
Я всего ~5 вакансий просмотрел, выбрал адекватные, они в моём посте и прикреплены, как там в мск дела не знаю, из своего города вообще выбрал джуно-слабомидло вакансии. Хотя и у нас говно есть, одна фирма набирает стажёров со стеком Qt/Boost/WinAPI/MFC, не ебу в душе чем они там занимаются, но звучит не очень.
62 1709615
>>09604
"для интереса" делай свои домашние проекты или в опен сорс вкатись. Просто смирись, что на дворе 2020, библиотеки уже все написаны. Остался только бизнес. И дальше будет только хуже. фреймворки, облака, saas/paas. Все за тебя напишут, только деньги плати. Базы данных, алгоритмы, криптография, обработка изображений, или вон AI еще не успел развиться а уже есть всякие AI paas в облаках. Для вебсервисов весь plumbing за тебя сделают. Что еще писать? Только веб бизнес. Положил в базу, достал из базы. Больше ничего не будет. Ниш никаких не остается. Если какая-нибудь тема станет популярной, ее тут уж МС/Амазон/Гугл к рукам приберут, в облако засунут и убьют конкуренцию. Я реально не знаю, чем будут погромисты заниматься через 10-20 лет?
63 1709617
>>09610
такой маленький а уже МАМИН СИНЬЁР за технологии поясляен. таким в индустрию путь заказан
64 1709621
>>09615
вот этот знает. через 10-20 лет у вкатышей будет вариант: быть гением или сосать хуй. вкатывайтесь пока не поздно в менеджмент. дальше только пиздец и купола
65 1709623
>>09617
Для открытия hh.ru нужно проработать 15 лет? Ты чего порвался то?
66 1709632
>>09609
То есть всегда? Жабатред перекатывают после 1к.
67 1709637
>>09632

>То есть всегда?


всегда, когда жаба треда нет на доске, манявкатыши начинаю считать, что плюсы охуенное место для вката?
68 1709709
>>09256
ПОСТАВИЛ ТИП AUTO
@
СПРАВА ПИШИ КАСТ
69 1709770
>>09604
>>09615
Что подразумевается под бизнесом, круды? Если да, то почему не придумали какое-нибудь универсальное решение?
70 1709777
Анон, в лямбде std::transform или for_each при использовании auto надо писать типа const auto& v или просто auto v, компилятор сам догадается, что не надо копировать?
Проведение auto же указано в стандарте?
71 1709790
>>09777
const и & компилятор сам не вставляет, читай матчасть
72 1709793
>>09770
Бизнес - это service layer с дохуищей логики и сотнями абстракций. Круды на фоне этого - капля в море, от всего процесса разработки они берут ну процентов 5 времени от силы. Решение давно есть, называется ORM. В задачах бизнес-логики же конца-края не видно, что там

> 10-20 лет



мимоджавист
73 1709794
>>09770
круды и околокруды; придумали решения, вот мы их и "имплементируем" за сотни тысяч деревянных
74 1709825
>>09777
Просто пиши auto&& и оно там само без копирований работает
75 1709846
Привет ананасам, поясните мои хорошие, где искать проекты/стартапы, просто что бы вкатиться в совместный проггинг? Сам клепал пэт проекты, последнее что мацал, это Qt, но из-за ограничений в креативе, да и тот факт, что всем вокруг объективно похуй на то, что я клепаю, желание просто сдувается как шарик. Хочеца найти себе команду, в которой уже есть идеи, да что я рассказываю, хочу найти себе стартап что бы влиться, куда искать?
76 1709879
>>09846
github.com
77 1710112
Есть отака хуйня : p->Bitmap->SaveToFile( "screen.bmp" ); .Вкратце-записывает скрин в файл с именем screen.
1)Как сделать так,чтобы оно сейвило с именем screen1,screen2 и т.д
2)Как скриншот запихнуть в отдельную папку?
3)как это счастье сжать,ибо 5 метров/скрин это дохуя знаю,там реализация длинная
Весь код:
TPicture p=new TPicture;
HWND hwnd=GetDesktopWindow();
HDC hdc=GetWindowDC(hwnd);
TCanvas
C=new TCanvas;
C->Handle=hdc;
int w=Screen->Width;
int h=Screen->Height;
p->Bitmap->Width=w;
p->Bitmap->Height=h;
p->Bitmap->Canvas->CopyMode=cmSrcCopy;
p->Bitmap->Canvas->CopyRect(TRect(0,0,w,h),C,TRect(0,0,w,h));
ReleaseDC(hwnd,hdc);
delete C;

p->Bitmap->SaveToFile( "screen.jpg" );

delete p;
78 1710139
>>10112
Эм, а в чём проблема просто путь до папки прописать ?
79 1710148
>>10139
Ну и тип, поставить любой count, если тебе прям нужно что бы было чередование 1 2 3 и т.д. но, вообще, как по мне, лучше просто подсосать time.h и просто в строку вставлять дд.мм.гггг
По поводу сжатия, тут хызы, посмотри реализиции в своей WinAPI, более чем уверен, что там есть реализации работы с форматами и их сжатие
//А поч bmp ? Помимо того, что это дефолт винды
80 1710210
Аноны, что думаете насчет sourcetrail? Выглядит очень неплохо и удобно для вката в новую кодовую базу, но проблема что куча непотянтных ошибок, которые неясно как фиксить, на маке вообще похоже отваливается из-за кучи objcшных либ.
Есть ли еще какие-то продвинутые инструменты для визуализации?
81 1710232
>>10112

Бля, чел, ты чё, борланд C++ в 2к20 юзаешь? Ты шо, ёбнулся?

Юзай Qt если тебе надо интерфейс в попу ебать, или https://github.com/ArashPartow/bitmap если тебе только сам bitmap нужен.

> Как сделать так,чтобы оно сейвило с именем screen1,screen2 и т.д



> Ну и тип, поставить любой count



Не, тут надо проверять наличие файла, и если файл есть добавить к названию (1), или (2), или (3), и так пока цифры не кончатся. Так винда делает если ты новую папку с тем же именем не создашь. А хранить count в оперативе не поможет, так как если файл с таким именем уже есть - он его просто не создаст.

> лучше просто подсосать time.h и просто в строку вставлять дд.мм.гггг



Ну или так...

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



Путь в SaveToFile( "./folder/screen.bmp" ) передать вот так. А как создать папку сам позырь. Надо проверить есть ли она, и если нет создать.

> как это счастье сжать,ибо 5 метров/скрин это дохуя



Чел, смотри.... bmp - это формат изображения где данные хранятся БЕЗ ПОТЕРИ КАЧЕСТВА.

То есть, если у тебя изображение - чёрный квадрат 3x3 с белой точкой по центру, то это будет двумерный массив из 9 rgb точек

[[rgb(0,0,0), rgb(0,0,0), rgb(0,0,0)],
[rgb(0,0,0), rgb(0,0,0), rgb(0,0,0)],
[rgb(0,0,0), rgb(0,0,0), rgb(0,0,0)]];

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

А всякие жпеги - это алгоритмы сжатия с потерями, но они гораздо сложнее чем тот же BITMAP.

PS:

> p->Bitmap->SaveToFile( "screen.jpg" );



Это хуйня. Просто назвав файл jpg ты не сделаешь его jpg. Надо либо юзать либу для закожевания этого говна в jpg, либо реализовывать самому. Это не очень сложно, но за 5 минут не объяснить. Погугли как это делается.
81 1710232
>>10112

Бля, чел, ты чё, борланд C++ в 2к20 юзаешь? Ты шо, ёбнулся?

Юзай Qt если тебе надо интерфейс в попу ебать, или https://github.com/ArashPartow/bitmap если тебе только сам bitmap нужен.

> Как сделать так,чтобы оно сейвило с именем screen1,screen2 и т.д



> Ну и тип, поставить любой count



Не, тут надо проверять наличие файла, и если файл есть добавить к названию (1), или (2), или (3), и так пока цифры не кончатся. Так винда делает если ты новую папку с тем же именем не создашь. А хранить count в оперативе не поможет, так как если файл с таким именем уже есть - он его просто не создаст.

> лучше просто подсосать time.h и просто в строку вставлять дд.мм.гггг



Ну или так...

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



Путь в SaveToFile( "./folder/screen.bmp" ) передать вот так. А как создать папку сам позырь. Надо проверить есть ли она, и если нет создать.

> как это счастье сжать,ибо 5 метров/скрин это дохуя



Чел, смотри.... bmp - это формат изображения где данные хранятся БЕЗ ПОТЕРИ КАЧЕСТВА.

То есть, если у тебя изображение - чёрный квадрат 3x3 с белой точкой по центру, то это будет двумерный массив из 9 rgb точек

[[rgb(0,0,0), rgb(0,0,0), rgb(0,0,0)],
[rgb(0,0,0), rgb(0,0,0), rgb(0,0,0)],
[rgb(0,0,0), rgb(0,0,0), rgb(0,0,0)]];

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

А всякие жпеги - это алгоритмы сжатия с потерями, но они гораздо сложнее чем тот же BITMAP.

PS:

> p->Bitmap->SaveToFile( "screen.jpg" );



Это хуйня. Просто назвав файл jpg ты не сделаешь его jpg. Надо либо юзать либу для закожевания этого говна в jpg, либо реализовывать самому. Это не очень сложно, но за 5 минут не объяснить. Погугли как это делается.
82 1710237
>>10210

>sourcetrail



Да нету, блэт. Это прикол такой. Нормальные челы поставили себе neovim vsc и не ебут себе мозг...
83 1710251
Почему не могут просто взять и перенести буст в стандартную либу?
84 1710253
И еще вопрос, переписывают ли стл время от времени? Используя фишки из нового стандарта например, или просто потому что нашелся способ сделать лучше?
85 1710266
>>10232
Куда перекатываццо?
это радка,но сорта говна,как я понимаю
Залупа разрослась до
TPicture p=new TPicture;
HWND hwnd=GetDesktopWindow();
HDC hdc=GetWindowDC(hwnd);
TCanvas
C=new TCanvas;
C->Handle=hdc;
int w=Screen->Width;
int h=Screen->Height;
p->Bitmap->Width=w;
p->Bitmap->Height=h;
p->Bitmap->Canvas->CopyMode=cmSrcCopy;
p->Bitmap->Canvas->CopyRect(TRect(0,0,w,h),C,TRect(0,0,w,h));
ReleaseDC(hwnd,hdc);
delete C;
AnsiString path=ExtractFilePath(Application->ExeName);

p->Bitmap->SaveToFile(path+ "screen"+ IntToStr(nomer)+".bmp" );

delete p;
TJPEGImage *tJpg=new TJPEGImage;
Image1->AutoSize=true;
Image1->Picture->LoadFromFile(path + "screen"+ IntToStr(nomer)+".bmp");
tJpg->Assign(Image1->Picture->Graphic);

tJpg->CompressionQuality = 30;

tJpg->Compress();

AnsiString path1 =ExtractFilePath(Application->ExeName);

tJpg->SaveToFile(path1 + "screen"+ IntToStr(nomer)+".jpg");
DeleteFile (path+ "screen"+ IntToStr(nomer)+".bmp");
delete tJpg;
nomer++;

Единственное,что надо-засейвить жипег в отдельную папку,допустим bin
Вопрос:как?
85 1710266
>>10232
Куда перекатываццо?
это радка,но сорта говна,как я понимаю
Залупа разрослась до
TPicture p=new TPicture;
HWND hwnd=GetDesktopWindow();
HDC hdc=GetWindowDC(hwnd);
TCanvas
C=new TCanvas;
C->Handle=hdc;
int w=Screen->Width;
int h=Screen->Height;
p->Bitmap->Width=w;
p->Bitmap->Height=h;
p->Bitmap->Canvas->CopyMode=cmSrcCopy;
p->Bitmap->Canvas->CopyRect(TRect(0,0,w,h),C,TRect(0,0,w,h));
ReleaseDC(hwnd,hdc);
delete C;
AnsiString path=ExtractFilePath(Application->ExeName);

p->Bitmap->SaveToFile(path+ "screen"+ IntToStr(nomer)+".bmp" );

delete p;
TJPEGImage *tJpg=new TJPEGImage;
Image1->AutoSize=true;
Image1->Picture->LoadFromFile(path + "screen"+ IntToStr(nomer)+".bmp");
tJpg->Assign(Image1->Picture->Graphic);

tJpg->CompressionQuality = 30;

tJpg->Compress();

AnsiString path1 =ExtractFilePath(Application->ExeName);

tJpg->SaveToFile(path1 + "screen"+ IntToStr(nomer)+".jpg");
DeleteFile (path+ "screen"+ IntToStr(nomer)+".bmp");
delete tJpg;
nomer++;

Единственное,что надо-засейвить жипег в отдельную папку,допустим bin
Вопрос:как?
86 1710270
>>10266
А, path1 это я пытался захуярить путь до другой папки,но не вышло
87 1710291
>>10266

>это радка,но сорта говна,как я понимаю



Ну это переименовали. Раньше называли Borland C++, сейчас RAD Studio.

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

На pastebin или gist код кидай.

> Единственное,что надо-засейвить жипег в отдельную папку,допустим bin



Попробуй папку вручную создать и путь указать к ней. Если выйдет, то создай папку как здесь советуют

https://stackoverflow.com/questions/9235679/create-a-directory-if-it-doesnt-exist.

А ты путь кидал как? "D:\\test" или "D:/test"?
88 1710293
>>10270
path1 + "screen"

А там палка есть?
89 1710306
>>10291
Папка существует,мне нужно,чтобы был не фиксированный путь,а путь до программы+папка ней
Пока оно всё сейвит в папку с exe,ибо
AnsiString path =ExtractFilePath(Application->ExeName
90 1710317
>>10306
https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-getcurrentdirectory

Путь к текущей директории

https://docs.microsoft.com/en-us/windows/win32/api/userenv/nf-userenv-getuserprofiledirectorya

Путь к пользовательской деректории (C:\Users\<CurrentUserName>)
91 1710327
>>10317
Теперь ещё один вопрос: почему на других компах пишет "не удалось найти указанный поставщик" и как это лечить?
92 1710328
>>10327
Могу скинуть программу,если надо
93 1710427
Жил-был СТРАУСТРУП. Шел обычный, скучный день. СТРАУСТРУП занимался рутинными вещами, такими как ебля своей трехсоткиллограмовой матери в зад. Только успев кончить матери в пердак и вынуть измазанный в говне хуй, СТРАУСТРУП услышал стук в дверь. Не заметив, что его мать умерла от сердечного приступа еще 3 дня назад, он пошел открывать дверь и вышел на веранду. На веранде никого не было. СТРАУСТРУП, было, уже начал подозревать СТЕПАНОВА в очередной подъебке, но вдруг, из под крыльца что-то вылетело и понеслось на него. От перевозбуждения СТРАУСТРУП уронил скрепленнеые скотчем очки на пол и смиренно ждал, что будет дальше. ЛЯМБДА, с огромной скоростью пролетела мима СТРАУСТРУПА, квадратной скобкой отпихнула его и заползла в дом, крепко заперев дверь. ЛЯМБДА ясно дала понять, что она приняла дом в качестве аргумента, но отказывается возвращать функцию, которая принимает ПИЗДЮЛИ в качестве аргумента и возвращает дом. ЛЯМБДА заползла на стул перед компьютером и свернувшись в уютный клубок, зашла на ДВАЧ. СТРАУСТРУП знал ЛЯМБДУ. По крайней мере, это слово он точно слышал, но не знал, что оно значит. Он очень удивился, когда недавно узнал, что ЛЯМБДУ включили в НОВЫЙ СТАНДАРТ, принятый полгода назад. СТРАУСТРУП понял, что надо выгнять ЛЯМБДУ из дома, потому что желание в очередной раз залезть на мамочку было слишком велико. Будучи первоклассным инженером, СТРАУСТРУП начал искать решение проблемы. Для разминки он решил повторить таблицу умножения до 12 на 12. Он 2 часа стоял на одном месте и смотрел в никуда, потея как свинья. Пока он боролся с таблицей умножения, из за угла вышел измазанный в говне АНДРЕЙ АЛЕКСАНДРЕСКУ и осмотрелся. Рядом стояли несколько зданий, включая психбольницу для буйнопомешанных и тюрьму. АНДРЕЙ задумался и понял, что в округе нет ни одного настолько больного и гнилого человека, чтобы продать ему свою книгу. Небрежно посвистывая, АНДРЕЙ удалился. СТРАУСТРУП закончил разминку и начал думать, как прогнать ЛЯМБДУ. Вдруг его осенило. Его дом был скомпилирован последней версией GNU G++, которая поддерживает ЛЯМБДУ. Именно поэтому, ЛЯМБДА и смогла проникнуть к нему в дом. СТРАУСТРУП понял, что ему нужна более старая версия G++, которая не поддерживала ЛЯМБДУ и тогда, при попытке компиляции дома, ЛЯМБДУ выкинет вместе с СООБЩЕНИЯМИ ОБ ОШИБКАХ. Но старую версию было негде взять. СТРАУСТРУП нанял ФУНКЦИОНАЛЬЩИКА СО ШТАНГОЙ за 5 тысяч рублей. Так как компьютера у них не было, ФУНКЦИОНАЛЬЩИК вначале написал на бумажке компьютер в 1 строчку НА ХАСКЕЛЕ:
Computer = Computer
ФУНКЦИОНАЛЬЩИК сожрал бумажку и высрал работающий системный блок с ВОДЯНЫМ ОХЛАЖДЕНИЕМ и предустановленой WINDOWS 7. На компьютере уже был установлен АЛАН ВЭЙК и ХАСКЕЛЛ ПЛАТФОРМ. Корпус был красного цвета, с наклейкой ТУРБО на прозрачной боковой крышке. Затем ФУНКЦИОНАЛЬЩИК написал в 2 строчки старую версию G++:

Compiler :: [C++SourceCode] → [ExecutableFile]
Compiler source =(Link . Compile) source

СТРАУСТРУП взял исходники своего дома и запустил компиляцию. Компилятор начал дристать СООБЩЕНИЯМИ ОБ ОШИБКАХ. СТРАУСТРУП попытался разобрать первую строчку, но увидев такое, дальше лезть не решился(таблица умножения и так вымотала его):

std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::less<std::basic_string<char, std::map<std::basic_string<std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>,std::allocator<char> > const, std::basic_string<char, std::char_traits<char>,std::allocator<char> > > > >char, std::char_traits<char>, std::allocator<char> >,std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>,std::allocator<char> > const, std::basic_string<char, std::char_traits<char>,std::allocator<char> > > > >std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>,std::allocator<char> > const, std::basic_string<char, std::char_traits<char>,std::allocator<char> > > > >

Высрав 10 000 СТРОК СООБЩЕНИЙ ОБ ОШИБКАХ, компилятор скончался от ЛЕНИВЫХ ВЫЧИСЛЕНИЙ ПРЯМОЙ КИШКИ и из монитора вылетела ЛЯМБДА. Придерживая круглые скобки квадратными скобками, ЛЯМБДА в ужасе съеблась под ближайший камень. Ей еще долго не захочется принимать и возвращать значения. Довольный СТРАУСТРУП плюнул в руку, чтобы наслюнявить хуй и уже решился залезать на мамочку, но передумал и решил вначале запостить эту историю на ДВАЧ.
93 1710427
Жил-был СТРАУСТРУП. Шел обычный, скучный день. СТРАУСТРУП занимался рутинными вещами, такими как ебля своей трехсоткиллограмовой матери в зад. Только успев кончить матери в пердак и вынуть измазанный в говне хуй, СТРАУСТРУП услышал стук в дверь. Не заметив, что его мать умерла от сердечного приступа еще 3 дня назад, он пошел открывать дверь и вышел на веранду. На веранде никого не было. СТРАУСТРУП, было, уже начал подозревать СТЕПАНОВА в очередной подъебке, но вдруг, из под крыльца что-то вылетело и понеслось на него. От перевозбуждения СТРАУСТРУП уронил скрепленнеые скотчем очки на пол и смиренно ждал, что будет дальше. ЛЯМБДА, с огромной скоростью пролетела мима СТРАУСТРУПА, квадратной скобкой отпихнула его и заползла в дом, крепко заперев дверь. ЛЯМБДА ясно дала понять, что она приняла дом в качестве аргумента, но отказывается возвращать функцию, которая принимает ПИЗДЮЛИ в качестве аргумента и возвращает дом. ЛЯМБДА заползла на стул перед компьютером и свернувшись в уютный клубок, зашла на ДВАЧ. СТРАУСТРУП знал ЛЯМБДУ. По крайней мере, это слово он точно слышал, но не знал, что оно значит. Он очень удивился, когда недавно узнал, что ЛЯМБДУ включили в НОВЫЙ СТАНДАРТ, принятый полгода назад. СТРАУСТРУП понял, что надо выгнять ЛЯМБДУ из дома, потому что желание в очередной раз залезть на мамочку было слишком велико. Будучи первоклассным инженером, СТРАУСТРУП начал искать решение проблемы. Для разминки он решил повторить таблицу умножения до 12 на 12. Он 2 часа стоял на одном месте и смотрел в никуда, потея как свинья. Пока он боролся с таблицей умножения, из за угла вышел измазанный в говне АНДРЕЙ АЛЕКСАНДРЕСКУ и осмотрелся. Рядом стояли несколько зданий, включая психбольницу для буйнопомешанных и тюрьму. АНДРЕЙ задумался и понял, что в округе нет ни одного настолько больного и гнилого человека, чтобы продать ему свою книгу. Небрежно посвистывая, АНДРЕЙ удалился. СТРАУСТРУП закончил разминку и начал думать, как прогнать ЛЯМБДУ. Вдруг его осенило. Его дом был скомпилирован последней версией GNU G++, которая поддерживает ЛЯМБДУ. Именно поэтому, ЛЯМБДА и смогла проникнуть к нему в дом. СТРАУСТРУП понял, что ему нужна более старая версия G++, которая не поддерживала ЛЯМБДУ и тогда, при попытке компиляции дома, ЛЯМБДУ выкинет вместе с СООБЩЕНИЯМИ ОБ ОШИБКАХ. Но старую версию было негде взять. СТРАУСТРУП нанял ФУНКЦИОНАЛЬЩИКА СО ШТАНГОЙ за 5 тысяч рублей. Так как компьютера у них не было, ФУНКЦИОНАЛЬЩИК вначале написал на бумажке компьютер в 1 строчку НА ХАСКЕЛЕ:
Computer = Computer
ФУНКЦИОНАЛЬЩИК сожрал бумажку и высрал работающий системный блок с ВОДЯНЫМ ОХЛАЖДЕНИЕМ и предустановленой WINDOWS 7. На компьютере уже был установлен АЛАН ВЭЙК и ХАСКЕЛЛ ПЛАТФОРМ. Корпус был красного цвета, с наклейкой ТУРБО на прозрачной боковой крышке. Затем ФУНКЦИОНАЛЬЩИК написал в 2 строчки старую версию G++:

Compiler :: [C++SourceCode] → [ExecutableFile]
Compiler source =(Link . Compile) source

СТРАУСТРУП взял исходники своего дома и запустил компиляцию. Компилятор начал дристать СООБЩЕНИЯМИ ОБ ОШИБКАХ. СТРАУСТРУП попытался разобрать первую строчку, но увидев такое, дальше лезть не решился(таблица умножения и так вымотала его):

std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::less<std::basic_string<char, std::map<std::basic_string<std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>,std::allocator<char> > const, std::basic_string<char, std::char_traits<char>,std::allocator<char> > > > >char, std::char_traits<char>, std::allocator<char> >,std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>,std::allocator<char> > const, std::basic_string<char, std::char_traits<char>,std::allocator<char> > > > >std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>,std::allocator<char> > const, std::basic_string<char, std::char_traits<char>,std::allocator<char> > > > >

Высрав 10 000 СТРОК СООБЩЕНИЙ ОБ ОШИБКАХ, компилятор скончался от ЛЕНИВЫХ ВЫЧИСЛЕНИЙ ПРЯМОЙ КИШКИ и из монитора вылетела ЛЯМБДА. Придерживая круглые скобки квадратными скобками, ЛЯМБДА в ужасе съеблась под ближайший камень. Ей еще долго не захочется принимать и возвращать значения. Довольный СТРАУСТРУП плюнул в руку, чтобы наслюнявить хуй и уже решился залезать на мамочку, но передумал и решил вначале запостить эту историю на ДВАЧ.
94 1710456
>>10427

>Compiler :: [C++SourceCode] → [ExecutableFile]


>Compiler source =(Link . Compile) source



Платиновая паста, но ты можешь точно так же выполнить в bash: cmake ..

И зачем тогда ваш маняхаскель, где надо ебаться со всякой функциональной питушней и приседать на штангу?
95 1710505
>>08695
а 111 без тега был, вот и обосрались
635.jpg89 Кб, 700x646
96 1710511
Допустим, я хочу написать программу отдельно от интерфейса. Как mpd и ncmpcpp, например. Я так понимаю, для этого нужно саму программу сделать в виде сервера. Какие для этого средства в плюсах существуют? Есть какие-то либы, типа фласка или синатры, чтобы более-менее просто это было организовать?
97 1710548
>>10511
Берешь AF_UNIX сокеты, kqueue и пишешь без костылей
98 1710567
>>10511
nanomsg
99 1710626
>>09879
В какую там директорию?
100 1710794
>>10327

Ну у тебя софт не лицензирован, в нём в манияесте не прописаны ключи-хуючи, и винда по дефолту не рекомендует такое запускать, а то мало ли какие там вирусы. Ну это уже программирования не касается, можешь забить.
641.jpg427 Кб, 700x853
101 1710862
>>10548
>>10567
Моё почтение.
102 1710887
>>10511

>типа фласка или синатры



Сразу видно веб разработчика :^)
103 1710904
Как в qt фиксить исключения? У меня при нажатии кнопки поиск вылетает, я думаю это из-за sqlrelationshiptablemodel, там одно поле интовое, а я отображается string из другой таблицы по внешнему ключу.
104 1710916
Почему у меня срабатывает деструктор класса?
std::vector<class> numbers(10, class(x, y, z));
Создается вектор, на следующей строчке срабатывает деструктор.
В конструкторе выделяю память оператором new, если убрать деструктор, на протяжении вызовов методов класса все время вызывается конструктор и выделяет новую память. Вектор передаю в функцию по ссылке. Что за НЕХ?
105 1710918
>>10904
А в чём проблема скастить ?
106 1710926
>>10918
Я не уверен, что именно в этом проблема, не знаю как в qt с исключениями разбираться. Да и что тут можно скастить в моем обработчике кнопки поиск?
model->setFilter("staff.Id LIKE '%"+searchfield->text()+"%'");
Может relationmodel вообще не поддерживает подобные фильтры?
107 1710969
>>10926
Задал просто строкой и все отображает как надо. Почему текст не принимает из поля ввода?
model->setFilter("staff.Id LIKE '%1%'");
108 1710971
>>10969
Потому что типы разные?
109 1710977
>>10971
Нет, Qlineedit возвращает строку как и надо. Я лоханулся, но в другом месте, вынес этот объект в хедер, но забыл убрать инициализацию его в конструкторе:
Qlineedit ^search = new Qlineedit();
на
search = new Qlineedit();
Надо наверное выключать музыку во время написания кода, а я думал, что она наоборот помогает сконцентрироваться мне.
110 1711046
А в плюсах есть какой нибудь итератор типа

char *arr[] = { "start", ...<empty_len>..., "end", NULL };

чтоб как бы был массив а потом уже в пустые ячейки как бы пихать - нету такого?
Именно надо такой поинтеризованый псевдомассив, библиотека на си как бы принимает это говно.
111 1711058
Двач, небольшой вопрос по поводу стилистики кода, правильно ли я понимаю что else if без дальнейшего else не нужно и нужно просто писать if?
112 1711065
>>11058
Второй if будет всегда проверяться невзирая на первый. else if не будет, если первый if возвратит истину.
113 1711069
Зачем Qt добавляет ключевое слово explicit MyWidget(QWidget *parent = nullptr); перед конструктором? Когда добавляю новый класс в проект.
114 1711076
>>11046
Не понял. Что конкретно принимает библиотека?

Итератор для типа "char *arr[]", то есть статического массива си-строк сделать можно, он обычный

https://stackoverflow.com/questions/3582608/how-to-correctly-implement-custom-iterators-and-const-iterators

>>11058

Можно и так и так, зависит от принятого стиля и важно чтоб принцип повторялся глобально. Я именно так как ты написал и делаю, например.
115 1711086
>>11069
Хуй его знает, надо если ты потом конструктор в коде определяешь иначе ошибка.
>>11076
Ну ей надо const char args то есть вот эту вот хуйню {"start", ... "end", NULL}
Серединку я как бы из нормального массива строк заполняю., но крайние мне наверное лучше вписать
116 1711087
>>11086

> Ну ей надо const char args

117 1711089
>>11087
сука ебучая, там две звездочки короче, указатель на указатели.
118 1711101
>>10916
Оптимизацию убери
119 1711104
Сап анон. Допустим, есть шаблонный класс с шаблоном <int N>, N типа порог, 1-10 может быть. Как сделать автогенерацию шаблонов фиксированного диапазона, чтобы выбирать нужный экземпляр исходя из например аргументов командной строки? Спп11
120 1711108
>>11069
За тем же, зачем вообще нужны explicit конструкторы - для избежания неявных кастов.
121 1711114
>>11104
switch (x)
{
case 1: foo<1>(); break;
case 2: foo<2>(); break;
...

А хули ты хотел. Это ж шаблоны - нужно или на этапе компиляции знать значение, или не выёбываться и передать обычным параметром.
122 1711115
>>11114
Я хотел в коде. Ещё я помню какие-то приемы (писали давно итт), когда создаётся таблица синусов с какой-то точностью. Я считаю, что это ультимейт полезная фича для каких-нибудь МК без fpu
123 1711123

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


Язык пидор
124 1711151
>>11115
Религия не позволяет написать 5-строчник, который печатает эту таблицу?
125 1711171
>>10916
Если msvc, то похоже на баг. Недавно натолкнулся на похожее поведение
126 1711173
>>10916
Ну а вообще, скорее всего ты не понял, как работает копирование
127 1711176
Как удалить элемент вектора по индексу?
128 1711182
>>11176
vector::erase
129 1711186
>>11176
c.erase(c.begin()+index);
130 1711191
>>10916

>class(x, y, z)


Прототип удаляется после создания вектора.
131 1711259
Анон вовремя задал вопрос >>11176
Переписываю код с шарпа, не могу освободить память из вектора. Пробовал clear() + shrink_to_fit(), но память не освобождается. Пробовал переинициализацию вектора делать - хуй. В векторе хранятся классы, в которых нет указателей/new, по идее же оно должно при выходе из области видимости освобождаться само. Что я делаю не так?
132 1711262
>>11259

> Пробовал clear() + shrink_to_fit()


Значит у тебя что-то другое течёт. Как потребление памяти измеряешь?
133 1711264
>>11182
>>11186
Спасибо
135 1711282
>>11262

> Значит у тебя что-то другое течёт.


Бля, там нечему течь. Там внутри класса два std::byte и пустой вектор. Пробовал даже этот пустой вектор в деструкторе тереть кучей способов, но это явно не он. В методах указатели не использую, чтобы там что-то текло.

> Как потребление памяти измеряешь?


В VS в профайлер смотрю. Пробовал через диспетчер задач проверять, думал VS пиздит. Не вижу разницы с кодом очистки векторов или без.
136 1711289
>>11259
shrink_to_fit не обязан освобождать.Попробуй swap с пустым вектором.

И вообще, как ты меряешь расход памяти? У тебя может освободиться память вектора, но остаться память выделенная под кучу (она просто будет помечена как свободная).
137 1711348
>>11276
Хуйня квадратичная. Переделывай.
138 1711358
>>11191
Он побайтово переписывает прототип на объекты вектора? Тогда понятно, почему у меня все объекты выдавали одинаковые значения на динамической памяти. (Утечка кстати была не из-за вызовов конструкторов, просто я набыдлокодил).
139 1711362
>>11358
Вообще, странная логика, копировать байты, а потом удалять через деструктор, но, наверное, по другому было не сделать.
140 1711368
>>11362
Блядь. Напиши нормальный конструктор копирования, который будет делать deep copy, тогда у тебя всё станет логично работать
141 1711378
>>11368
Понял, но я просто убрал вектор, да и не было особого смысла комбинировать вектор и динамические массивы.
142 1711380
143 1711394
>>11378

> я просто убрал вектор


Охуенно ты проблему решил. Заебись.
144 1711507
>>11362
Вектор сам не вызывает деструктор, просто у твоего временного объекта class(x, y, z) закончилось время жизни, соответственно, после копирования он удаляется. Напиши отдельным оператором
class(x, y, z);
И у тебя здесь сразу вызовутся и конструктор, и деструктор.

Ну а вектор тупо скопирует значения через дефолтный конструктор копирования.
145 1711584
А ведь header-only библиотеки появились не от хорошей жизни. Достаточно просто скачать и положить в папку с инклудами вместо многочасовых поисков кривых cmake-файлов от васянов. А всё из-за того, что ни одна нормальная система сборки с поиском зависимостей не взлетела.
146 1711614
>>11584
Vcpkg
147 1711647
C++ справляется лучше C? Драйвера/сетевые приложения.
148 1711660
>>11647

>Драйвера


Можно, но не нужно. Там нужен ассемблер.

>сетевые приложения.


Да.
149 1711666
>>11660
То есть C не нужен?
150 1711676
>>11647
Мне кажется, макакера на C++ найти легче, нафигачит код он быстрее. Эффективность продукт будет под вопросом. Больше опасность, что код поломается после ежегодной смены стандарта.
151 1711698
>>11660

>Там нужен ассемблер


Чиво
152 1711741
>>11647
Офк лучше. Можно писать используя сейвовые RAII врапперы для всех ресурсов, а не каждый раз вручную писать free(zalupa) с шансом забыть это сделать и получить утечку.
153 1711755
>>11647

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

https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/nouveau/

Посмотри как выглядит код драйверов nouveau. Ту же хуйню можно и на крестах писать, даже код в классы организуя(законом не запрещено).

> Сетевые приложения.



Конкретнее плес.

>>11660

> Там нужен ассемблер.



Не нужен. Толку от него ноль.
154 1711760
>>11741

>ргифоувс эквифэн из ынисилизейсн

155 1711785
>>11760

>ргифоувс эквифэн из ынисилизейсн



Ресурсенбелигунг ист инициализирунг!!!
156 1712069
>>11755
Пиздец, ну и говно. Вместо того чтобы по человечески сделать класс и реализовать у него методы, просто пишут функцию которая принимает указатель на структуру. Вот например гипервизор написанный на плюсах https://github.com/wbenny/hvpp так вот он НАМНОГО читабельнее этой сипараши.
157 1712075
>>12069
Дык в плюсах это так и реализовано. Можешь убедиться, попробовав вызвать метод в новом поток. Первый аргумент после класснейм::методнейм - указатель на класс.
158 1712076
>>12075

>указатель на класс


на объект, конечно же
159 1712083
>>12075
Я знаю про это потому и говорю, что вместо того чтобы взять плюсы и читабельно писать они эмулируют методы класса таким ущербным способом.
160 1712101
>>11660

> ассемблер


пизданулся что ли, драйвера это модули к ядру, давай их на ассемблере хуярить в обход апи ага
>>12083
Ты толщину кода и скорость замеряй, а не красоту. Может быть на плюсах и красивее но это работает так же а скорость исполнения кода меньше и место в памяти больше требуется, плюсы помоему только в гайке/BeOS в ядре используются.
161 1712111
>>12101
Нихуя он не быстрее, вот тебе пример даже https://godbolt.org/z/-7dapo абсолютно одинаковый листинг выдает на идентичный код на си и на плюсах.
162 1712113
>>12111
Ты бы еще хеллоу ворд принес
изображение.png773 Кб, 643x820
163 1712194
сап pr, сижу сейчас над задачей создания лайтового аналога headless браузера на qt, мне нужно просто по запросу перейти в яндекс выдачу, найти там нужный сайт и именно из яндекс выдачи на него перейти, чтобы засчитался просмотр, selenium, puppeter и тд. не покатит, давно бы на них сделал, нужно именно на qt(c++), ответов в гугле особо не нашёл, из документации к QWebEngine понял что там необходимо присутствие гуи, но мне нужно эмулировать действие пользователя обычным браузером, а headless нужен потому как буду закидывать этого бота на orange pi zero, где нет выхода под монитор, и не предусмотрен gui. Если у кого то есть идеи, отпишите пожалуйста, буду очень благодарен.
164 1712301
>>12194

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


Как вот это понять?
165 1712363
>>12301
Ну что ты набросился то пацана, ебучий волк, ей богу? Очевидно, симулировать, и очевидно, что не по тупости обосрался, а случайно.
166 1712387
>>12194
WebKit используй, он приятнее будет. Страницу рендерить можно хоть прямо на бумагу, хоть в Dev null
167 1712436
>>11755

> Конкретнее плес.


Собственные протоколы, децентрализованные сети и тому подобное.
168 1712442
Что нужно изучить, чтобы понимать такие исходники?
https://chromium.googlesource.com/v8/v8.git
169 1712509
>>12069
Сишка гораздо быстрее скомпилится, как минимум. Точнее, это пиздец критично бывает. А ещё она элементарная. Не знаю, кому как, а мне очень приятно смотреть на каноничный сишный код. Приятнее, чем на каноничный плюсовый, однозначно.
170 1712533
>>11755
Ебать, какое же гавнище там в кодовой базе, как будто первокурсник из ПТУ лабу залил.
Документации ноль, из всех щелей лезут меджики, при том что это один из повсеместно используемых модулей.
Вот зачем ты этот линк вкинул, как жить-то теперь
171 1712540
>>12533

> меджики


жопаболь галерной шлюхи, которую ебут за меджики
172 1712542
>>12540
Твоя мать вкатилась в айти? Тогда и ты сможешь скорее всего, хуесос, не расстраивайся)))
173 1712553
>>12542

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


>галерный раб горит


да ты уже вкатился в айти)))
174 1712554
>>12553
Что дозволено Юпитеру, не дозволено быку.
175 1712564
>>12553
Еще раз напиши про меджикии/галеру, долбаеб
Горит тут только жопа твоей мамаши от трения моего хуя об ее дыру))
176 1712567
>>12564

>МНЕ НЕ ГОРИТ!1


ясн))
177 1712583
>>12363
Я ни на кого не набрасывался, просто я не понял что тебе надо.
Без гуйни перейти куда то надо (то есть цепочку запросов сделать как от клиента) лучше наверное пхп взять или node-js просто потому что у них работа с сетью из коробки есть, зачем тебе плюсы с qt.
Qt - это гуй
178 1712626
>>12583
я другой анон
179 1712627
>>12583
и я просто рофлю хуёво
180 1712661
>>12533
Ну а хуле. Это во-первых код драйвера, во-вторых на ленупс, в-третьих для гпу. Любого из этих пунктов было бы достаточно, чтоб код выглядел как говно.
181 1712666
>>12583
Дот нет по-твоему видимо тоже гуй.
182 1712681
>>12666
тян?
В душе не ебу как там с дотнетом, кьюте это инструмент созданный под определенную задачу - написание платформонезависимых гуев. А так - конечно, можно и микроскопом гвозди забивать.
Нет если там можно чисто отдельную библиотеку таскать с вот этими QString QObject QMap то это круто, но это просто удобная библиотека, как jquery
183 1712698
Сап, крестач. Работаю почти два года после окончания уника. Работа связана с нейронками и компьютерным зрением.
На текущий момент всё вообщем-то устраивает, но возникла мысль открыть резюме и походить по собеседованиям ради интереса, узнать свой текущий уровень и вдруг может перекатиться на мидловую позицию. До первой работы было только одно (неудачное) собеседование по плюсам.

Собственно вопросы:
Что думаете насчёт этого?
Что если HR с работы увидит моё резюме ( мы сейчас в очень активном поиске программистов)?
Что отвечать на собеседовании если спросят что не устраивает в текущей работе? Почему решили придти на собеседование/почему хотите работать у нас?
184 1712704
>>12681
Кароч ты с ним не работал, проехали.
185 1712720
>>12069
Приходилось кодить и так и так, для меня уже нет разницы си или кресты, потому что в проектах такого уровня очень редко есть серьёзное ООП. Это вам не курды круды.

На сихе это смотрится очень привычно через определенный промежуток времени.

>>12533

>Ебать, какое же гавнище там в кодовой базе, как будто первокурсник из ПТУ лабу залил.



Еееееееесть такое. Но я хочу сказать что это вообще-то норма в разработке.

>>12436
А, ну это я бы только на крестах делал.
186 1712724
>>12583
ето я задавал вопрос, суть в том, что нужно сделать продвижение сайтов, тоесть ботярой просто накручивать просмотры, по городу расставлены orange pi zero на которых стоит собственная сборка линукса с кросскомпилятором и сборкой qt, у одноплатника нету выхода под монитор, он будет просто сервером откуда мой бот должен зайти на сайт и обойти защиту яндекса, я пробовал это делать с помощью просто гет запросов, но запроса который у яндекса отсеивает ботов я не нашёл, да и мои регулярки при изменении кода выдачи яндекса слетают нахуй, поэтому решил создать headless браузер который думаю справится с этим идеально, и увидел что QWebEngine на хромиуме, так как все одноплатники берут инфу о сайте и времени когда нужно будет зайти из одного бд, нужно сделать и бота который работает на QT, на котором работает уже бот для гугла. Было бы можно на node js я бы давно скрипт заебашил, это ведь не трудно, а вот заставить вебэнжин работать без гуя сложновато, по крайней мере для меня.
187 1712725
>>12387
>>12724
я не уверен что мне нужно рендерить в если гуя нету, я думаю мб задать якобы размеры экрана в QWebEngineSettings и скриптово кликать лкмом по ссылкам нужным, если это возможно, тогда нужно чекнуть позиционку по координатам ссылок и настроить поиск нужной в выдаче.
188 1712734
>>12583

>Qt - это гуй



Не совсем. Это general purpuse framework фреймворк. Gui это что-то вроде wxwidgets
изображение.png6 Кб, 288x110
189 1712738
>>12734
ну как минимум изза этого можно сказать что кутэ не только гуи
190 1712745
>>12725
Вообще, съеби в SEO-тред.
ненавижу твою ебучую профессию, весь интернет превратили в помойку
191 1712754
>>12745
да я студент ебучий, у меня экзамен, препод сказал эту хуергу сделать, он мне блять вообще на вротпрессе предлагал сайты делать, я попробовал и проблевался нахуй, мне эту хуйню с ботом закончить и я никогда в жизни в веб ебаный не полезу.
192 1712755
>>12738

Ага. Но опять же, единственное для чего qt хоть сколько-то используется - так это gui обёртки для консольных приложений/демонов. Ну тот же VLC написан на qt, но только сам gui.

Qt это вообще в принципе хороший пример того, что бывает когда нарушается юникс вэй...
Screenshot20200604123535.png1,8 Мб, 1920x1080
193 1712759
>>12755
та я на кедах неон сижу, я с головой просто в qt можно сказать)
194 1712768
>>12755

>Qt это вообще в принципе хороший пример того, что бывает когда нарушается юникс вэй


Поясни?
195 1712789
>>12768
Ну смотри, чел, есть такая философия разработки, называется она unix way. И одна из установок - делайте маленькие, простые, прозрачные программы, которые взаимодействуют друг с другом через понятный интерфейс.

В чём же проблема этого вашего Qt. Это по сути глобальный фреймворк, в котором есть всё. Да, там есть неплохой qt widgets, но ещё там есть куча другого говна, и всё они хотят чтобы ты делал "по ихнему". И тесты у них свои, и система сборки у них своя, и сигналослоты у них свои, и там библиотека Qt Network которой вообще пользоваться не возможно.

Они, короче, решили, что они laravel или rails, хотя народу просто нужна нормальная библиотека для гуя. Поэтому на кутэ обычно пишут маленький гуй без функционала, а весь кор на чём-то другом. Возможно на C++ и boost.

Просто сейчас нет нормальной библиотеки для кроссплатформенных гуёв. Либо электрон, либа эта параша.
15821045343120.jpg77 Кб, 806x720
196 1712798
Есть поле класса std::string
В одном потоке я изменяю эту переменную и считываю. В другом потоке просто считываю. Будет ли это потокобезопасно? Могу в первом потоке сделать просто запись без проверки.
197 1712806
>>12789
Понял, спасибо.
198 1712807
>>12789
ну да, я пишу год на qt, вернулся к плюсам и понимаю что многих вещей базовых не могу быстро вспомнить, постоянно хочется сделать QString->number(a) или для чего то ещё заюзать готовые интерфейсы, отвыкаешь что всё делать нужно руками и привыкаешь что для любого действия есть велосипед.
199 1712813
>>12798
Очевидно, что не будет. Поток который изменяет может увеличить размер строки, тем самым старая память освободится. А если в это время другой поток читает эту строку, то после освобождения памяти он вылетит.
200 1712825
>>12798

Ну нет конечно, ну блин, пчелик)))))

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

>>12807

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



Причём хуёвый. Мне после работы с ASIO qt network показался такой ересью, шо ебал его маму рот.
201 1712830
>>12825
вот и мне сейчас либо через вебенжин либо через нетворк сделать до конца июня это говно дял яндекса и приступать к диплому)) хз чё делать, наверное буду симулировать монитор)
202 1712833
>>12825
Просто на стековерфлоу увидел подобный ответ, поэтому был не уверен стоит ли писать мютекс.
In MSVC, std::string is no longer reference counted shared pointer to a container. They choose to the entire contents by-value in every copy constructor and assignment operator, to avoid multithreading problems
203 1712839
>>12833

>In MSVC, std::string is no longer reference counted shared pointer to a container.



Бля, я поржу если потокобезопасность строки теперь implementation defined
204 1712843
>>12839
Так можно как-то подтвердить эти данные, может документация какая-то есть?
205 1712850
>>12843
Если бы string был потокобезопасным, то это наверное бы на cppreference указали? Да и вообще помоему в stl нет ни одного потокобезопасного контейнера изкаробки, какой шанс на то, что string вдруг станет таким?
206 1712853
Ананасы приём!

Простой пример

Есть структура

struct Koo
{
int x, y;
}

и структура
struct Size
{
int Width, Height;
}

Есть некий класс с массивом динамическим в котором перечисленны доступные типы

template Cls_Array1D < bool >;
template Cls_Array1D < int >;
template Cls_Array1D < double >;
template Cls_Array1D < unsigned char >;

Хочу так чтобы было
template Cls_Array1D < Koo >;
template Cls_Array1D < Size >;

Каким бобразом это делается?
206 1712853
Ананасы приём!

Простой пример

Есть структура

struct Koo
{
int x, y;
}

и структура
struct Size
{
int Width, Height;
}

Есть некий класс с массивом динамическим в котором перечисленны доступные типы

template Cls_Array1D < bool >;
template Cls_Array1D < int >;
template Cls_Array1D < double >;
template Cls_Array1D < unsigned char >;

Хочу так чтобы было
template Cls_Array1D < Koo >;
template Cls_Array1D < Size >;

Каким бобразом это делается?
207 1712856
>>12843
Не знаю, я пытался гуглить, там написано что VC++ strings не являются reference counted shared pointer, но там не сказано что это делает их thread safe. Просто типа COW - плохо для мультитрединга. Ну это всё
208 1712859

> to avoid multithreading problems



Это не обязательно значит что проблема была именно с тем что строки были не тредсейф, скорее с оптимизацией.
209 1712863
>>12853

По моему у тебя какой-то не правильный класс :^)
210 1712868
>>12863
Лучше бы на вопрос ответил.

Неужели на бабахать typedef ?
Front.jpg69 Кб, 350x350
211 1712987
Можно ли оптимизировать такую конструкцию? Часто вызывается функция, которая делает следующее:

// do smth
if (!rareStuffDone && rnd(0, 1000000) == 1) {
// do rare stuff
rareStuffDone = true;
}
// do other stuff

А то получается, что этот if вызывается почём зря, если работа уже сделана. Тут одна проверка bool переменной, но все же как-то нехорошо. Было бы круто вообще этот кусок кода выкинуть после выполнения. В прочем, для этого if и нужен, проще скорее всего не сделать. Но вдруг я чего-то не знаю.
212 1713012
>>12987

> rnd(0, 1000000) == 1)



Kek
213 1713020
>>12987
Можно конечно, но нахуя?
Сделай 2 функции, в одной будет этот блок с редким кодом, а в другой нет. Создай глобальный указатель на первую функцию и после выполнения ее просто измени значение указателя на вторую функцию. Вызывать соответственно всегда тоже по указателю.
https://ideone.com/fL4R0y
1591276744477.jpg41 Кб, 959x690
214 1713045
Как это работает?
215 1713078
>>13045
Ты имеешь в виду что do while врапнуто вокруг case? Ну чел бывает...
216 1713087
>>13045
if (n & 1) goto x0; else goto x1;
x0:
do{
i++;
x1:
i++;
}while(--n>0);
217 1713120
>>13045

> Как это работает?


Вопреки здравому смыслу. Сразу видно, что сишка - это в первую очередь сахарок для ассемблера, а не высокоуровневый язык.
218 1713121
>>12789

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


А когда они были?

По поводу электрона и прочих это эпичный обсер, казалось бы html/js/css не зависят от платформы но блять на каждую сборку под каждую ос собирать 200мб файл с браузером внутри это пиздец товарищи + на других архитектурах еще более не очевидно, поэтому сама идея пока нежизнеспособна, вот если бы в каждй ос стоял этот ебучий v8 как платформа для запуска таких приложений, как гарантия что он на клиенте есть, можно было бы эти приложения не собирать под каждую платформу а просто передавать как есть в чем собственно и должен быть их плюс, но сейчас этого тупо нет.
image.png216 Кб, 1841x1123
219 1713135
>>13121

> А когда они были?



В нулевых, назывался winapi. Поддерживал все платформы, на которых тогда люди сидели.

> На каждую сборку под каждую ос собирать 200мб файл с браузером внутри это пиздец товарищи



Ну поставь себе 16 гб и не еби мозг. Электрон юзают не потому что он хороший, а потому что остальное говно. Да и электрон мобилы не поддерживает, а надо бы...

Охуенно, зашёл блять на страничку а там про негров.
220 1713136
>>13121
Зато почти везде есть браузер. Единственный реальный способ сейчас сделать пооностью кроссплатформенный гуй -: сделать приложение в виде обычного сайта и всем давать на него ссылку. Ну или везде ставить локальный веб-сервер, как питоний jupyter-notebook.
А на электрон забить нахуй, в конечном итоге он ничем не лучше Qt, но намного прожорливее. Сама идея запускать по браузеру на каждую мелкоприложуху никак в 2020 не вписывается. Может, лет через 5-10.

мимо
221 1713144
>>13136

> Единственный реальный способ сейчас сделать пооностью кроссплатформенный гуй -: сделать приложение в виде обычного сайта и всем давать на него ссылку.



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

В то время как qt чуть ли не на тостере работает
222 1713157
>>13045
После case 0: нет break;, поэтому цикл без затруднений запускается и i = 4;
223 1713160
>>13157
i = 5
224 1713162
>>13160
n = 3
i = 0

n = 2
i = 1

n = 1
i = 2

n = 0
i = 4
225 1713165
Вы пользуетесь UML?
226 1713168
>>13162
Хуле ж ты споришь? i = 5. После свитча код переходит к case 1, и i инкрементируется. А дальше цикл.
227 1713174
>>13168
Тебе --n что-нибудь говорит?
228 1713177
>>13144
А что электрон? Я говорю про обычные нативные браузеры, а не про это говнище.
229 1713190
>>13177

Ну хз, тенденция идёт наоборот. Нативные браузеры в мобилках - говно. Народ всё равно в vk, facebook, instagram и даже в банковской хуйне сидит через приложения, а не через бровсер. Да и я тебе скажу сделать мобильное приложение которая api-ху дрючит не сложнее чем сделать сайт который мобайл френдли.
230 1713203
>>13190

>Народ всё равно в vk, facebook, instagram и даже в банковской хуйне сидит через приложения, а не через бровсер.


Не так давно перешел с обычного телефона на смарт и меня это как раз поразило.
231 1713207
>>13190
И в результате у юзера на телефоне вместо одного браузера стоит несколько десятков однообразных приложений доставок, магазинов, клубов, кальянных, суш, баров, кафешек занимающих дохуя места и запускаемых раз в полгода. Не знаю, что будет в будущем, но текущее положение дел явно не выглядит здоровым.
Ну, ещё есть тенденция делать "гибридные" приложения, по сути тот же подход электрона, но для мобилок.
232 1713210
>>13012
В чем рофел? Кроме того, что можно "== 1" не писать, если эта функция генерирует равномерное распределение?

>>13020
Хм, интересно, спасибо. Не подумал об этом. Но лучше оставить как есть, наверно, эта микрооптимизация не стоит дополнительного запутывания кода.
233 1713238
>>13203

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



А шо ты хотел. Там в интерфейсе никто не ограничивает, а ещё и работает быстрее так как вместо жирного запроса с тоннами гиппертекста дергается апиха.

>>13210
Рофел с самого факта использования ГСЧ
234 1713239
https://godbolt.org/z/uYapRE
Есть две структуры отснаследованные от кучи других, при этом у них есть одна общая.
Как наиболее правильно приравнять эту общую, чтобы не сломались какие-то ссылки, указатели или любые другие данные?
235 1713287
>>13238
А как ещё, если нужно именно случайное срабатывание, а не на n-й раз?
Из идей у меня только миллисекунды от текущего времени брать, но это как-то костыльно. Хотя, работать может и быстрее, наверно.
236 1713464
>>12789
Я не сильно много делал гуи, но сейчас, я думаю, наилучший путь - веб-морда и REST с mvc паттерном. Qml так-то тоже идёт путем mvc, мне это нравится, хорошо отвязывается бэкэнд от гуя со свистоперделками и анимацией, и отличная кроссплатформенность вдобавок
237 1713479
>>13165
Я както решил порисовать, но понял, что в 2к20 сильно использовать ООП (а uml как раз про это) не самый здравый подход. Сейчас мой код имеет много функциональщины и композиции с простыми, мелкими и понятными функциями, и с достаточно простыми типами, и юмл избыточен, так как архитектура проста, а вся связь описана в @brief
238 1713493
>>13287
Используй std::uniform_real_distribution, диапазон 0:1, сгенерированную вероятность сравнивай с вероятностью твоего говна (у тебя 1e-6), это будет правильный подход.
239 1713533
Залейте книги в шапку. Половина ссылок нерабочие
240 1713626
>>13493
ну, так-то да.
241 1713680
>>12987

> if вызывается почём зря


Процессор оптимизирует эту хуйню (branch prediction). Если тебя волнует оптимизация то лучше постараться уменьшить количество вызовов ГСЧ - даже если у тебя там простой линейный конгруэнтный или (в идеале) xorshift - они быстрые но все равно вносят задержки. Один из вариантов - сразу сгенерировать номер итерации на которой на которой нужно сделать редкую хуйню, а в цикле просто инкрементить счетчик. Но тут нужно осторожно так как два этих подхода не равноценны - у них разное распределение, подход с заранее вычисленной итерацией гарантирует максимум итераций через которую произойдет срабатывание тогда как твой подход таких гарантий не дает. Поэтому смотри по производительности. Если ускорять не нужно - то лучше использовать твой подход.
242 1713694
>>13680

> Процессор оптимизирует эту хуйню (branch prediction).


Только после нескольких исполнений и если бранчь обсирается то начинает профилировать заного.

>>12987
Можно вот так вот оптимизовать:

bool rareStuffDone = false;
...
rareStuffDone ^= (rnd(0, 1000000) == 1) >> rareStuffDone;

сбственно:

^= true >> false; // 1
^= false >> false; // 0
^= true >> true; // 0

то есть регистр перевернется один раз и все. Но к твоему случаю это не очень подходит, подправь алгоритм.
243 1713732
>>12987
Можно разве что добавить ХИНТ УШАМИ unlikely.

>>13020
Непрямой переход обойдется дороже, чем статическое ветвление.
244 1713774
>>13464

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

У Qt хороший гуй, я бы даже сказал самый лучший на рынке среди всех. Лучше gtk, лучше uwp, лучше электрона, лучше чего угодно на свете. Но есть одно "но", Qt это не библиотека для гуя, это general purpuse framework. Но вот кроме гуя мне отних больше нихуя не надо, а они наворотили кала и экосистемы, переписали весь stl, какой-то свой DSL на макросах нахуярили. Зачем?
245 1713779
>>13774
Потому что стл говно, аналоги от кт лучше.
image.png83 Кб, 1200x1200
246 1713788
>>13779

Только если у тебя C++03. В новых крестах stl-контейнеры в разы лучше q-контейнеров

https://stackoverflow.com/questions/1668259/stl-or-qt-containers

Да и модерн-спп они в попу ебут. Вообще, C++ такой тупой язык что там string_view только совсем недавно появился.

Если честно, кресты так плохи что я бы на этом писал...
image.png51 Кб, 1200x120
247 1713799
Но там вот эта хуйня
248 1713851
>>13788

> Только если у тебя C++03. В новых крестах stl-контейнеры в разы лучше q-контейнеров


Кулстори. В стл и половины функциональности нет. После qstring стд та еще боль
249 1713875
>>13774
Ну так отвяжи свою суперлибу от qt. Нужен гуи - используется qt, не нужен - не используется. Предположу, что консольная версия vlc плеера (я ее использую для стрима юсб камеры) вообще не использует qt
250 1713885
>>13851

> В стл и половины функциональности нет



В std лучше оптимизация по времени. Но строка там да, хуйня. Надо юзать folly. Folly - вещ.

А qt-шные поделия по скорости работы - боль и унижения.

>>13875

>Ну так отвяжи свою суперлибу от qt.


>Нужен гуи - используется qt, не нужен - не используется



А все так и делают.

> Предположу, что консольная версия vlc плеера (я ее использую для стрима юсб камеры) вообще не использует qt



Можешь не предполагать, она точно его не использует. Core написан на чистом си, а интерфейс на кутэ.

Но опять же, так делается не столько от хорошой жизни, а от того что qt пидорское говно, но другого интерфейса нет.
251 1713898
Мне вот кажется недостатком qt, что надо тащить эти тяжелые либы и небольшая программа весит 100мб.
252 1713909
>>13898

>небольшая программа весит 100мб


Если статически слинковать - меньше 20Мб. С upx - около 10. Если новые плюшки не нужны, то 4.8 около 5Мб c upx занимает.
253 1713910
>>13909
Можно гайд по этому всему?
254 1713913
>>13788

>В новых крестах stl-контейнеры в разы лучше q-контейнеров


Чем лучше? В qt все гораздо удобнее, человекоориентированнее. Например, у QMap есть метод value(key, defaultValue), который вернет дефолтное значение, если ключ не найден. У std::map только find, возвращающий итератор.
255 1713914
>>13910

>Можно гайд по этому всему?


В инете куча инфы, если гуглить "qt статическая линковка" (хотя и устарелой, большинство статей по Qt4, но принцип должен быть понятен).
UPX - утилита для сжатия exe: https://github.com/upx/upx/releases
256 1713915
>>13914
Да, UPX умеет и dll сжимать. То есть даже если динамически линкуешься, можно размер поменьше сделать.
Screenshot2020-06-05 Huawei Russian Research Institutes.png403 Кб, 1191x3545
257 1713921
Кто-нибудь пытался попасть в хуавей?
Заинтересовала обработка сигналов. Что для этого нужно знать и уметь?
258 1713936
>>13921
Дохлый номер. Там китайцы работают в основном, и белых они не любят.
259 1713944
>>13936

>Там китайцы работают в основном, и белых они не любят


В московском R&D центре в основном только китайцы работают?
Вроде как слышал, что наших студентов в хуавей приглашают работать.
260 1713953
>>13680
>>13694
>>13732
Благодарю.
261 1713985
>>13936
Пиздеж, кстати. Но без нормальной вышки туда попасть будет сложно, они на собесах трепетно к этому относятся. И английский надо знать на уровне повыше "я прочитал документацию с гуглтранслейтом" знакомый пистех на этом прогорел.
262 1714069
>>13921
В Нижнем Новгороде 90к платят стажёрам, кстати. Жаль больше не нанимают.
263 1714308
>>13239
Бамп.
264 1714354
Windows/Cmake/Qt/Winapi - Двач, можете подсказать как мне узнать что в моём коде жрёт производительность? Программа не маленькая и несколько запутанная, я никогда ничем подобным не занимался, но слышал что есть какое-то профилирование, но в Qt Creator на Windows по всей видимости оно не доступно, а в visual studio из-за cmake я Qt проект перекатить не могу. В общем можете подсказать что делать?
265 1714366
>>14354
Показывай код
266 1714376
Что происходит, когда функция не возвращает значение, хотя должна
267 1714390
>>14376
Программа не компилируется?
268 1714394
>>14376
Запости функцию.
269 1714409
>>14390
>>14394
Код не мой, но по словам человека , его писавшего, он работает
1591379719322.jpg51 Кб, 556x408
270 1714410
>>14409
Забыл пик прикрепить
271 1714418
>>14410
Там по чистой случайности будет работать, как если бы был return. foo(a-1) оставит результат в регистре и он вернется.
272 1714426
>>14418
Странно, что у него vs его собрала, а когда я пытался это в оноайн компилятор загнать меня послали нахуй
273 1714444
>>14426
Такая хуйня не должна компилиться, вангую он и не пытался сбилдить
274 1714449
>>14444
Я почему и спрашиваю. Оно работает
275 1714456
>>13985
Неужели бывают пистехи, которые не умеют в англ?
276 1714465
>>14376
Звучит как UB.
277 1714480
>>14354

> в visual studio из-за cmake я Qt проект перекатить не могу


Можешь. Студия умеет в cmake.
278 1714491
>>14449
Варнинг мсвц все-таки выдает, хотя с точки зрения самого языка это нихера не варнинг, а ошибка.

>>14465
Ну да, зачем запрещать такие выходки, лучше просто UB пометить и все, а то вдруг еще нормальный язык создадим
279 1714493
>>14449
По чистой случайности же. В дебаге скорее всего просто в регистре последнее вычисленное значение остаётся, оно и возвращается. Попробуй в конце "вернуть" что-то больше твоего инта и пиздец будет даже на дебаге. В релизе компилятор посмотрит, что ты еблан и либо вернет то же самое, что и другой return, либо вообще какую-нибудь хуйню. УБ всё-таки
280 1714495
>>14480
Только как это запустить с Qt, никому не известно.
281 1714497
Сука, какое же говно это ваше системное программирование, сука три дня изучал ебаное апи этого mpv, все через асинхронные вызовы зделал ебать, никаких устаревшихфункций или событий не использую, и что в итоге?

start
stop

start
stop

start
loading
play...

блять хочу сразу файл открою, хочу не сразу, че почему - хуй вообще знает

в итоге там че то делал уперся в какую то хуйню, тут какая то хуйня, там это ебаное метопрограмирование фокусы начало показывать (где то ссылку на переменную поставил она динамично меняется и че то не так все работает, но что и как найти тяжело в этой лапше жопу бомбит пиздец лол).
В общем ебатни много а прогресса мало.
Screenshot from 2020-06-05 21-34-57.png19 Кб, 435x274
282 1714500
>>14410
Действительно, g++ компилирует. Функция возвращает значение последней строки функции как в Ruby, если компилятор не выкинет его в процессе оптимизации .
Ну и язык, они кусок кода ахуительней другого просто.

Вывод пикрил:
5 4 3 2 1
foo returns 364
283 1714504
>>14500
Что-то я не понял, return разве не break'ает рекурсию?
284 1714509
>>14497
Так есть же флаги для того, чтобы открывалось сразу
285 1714511
>>14500
Как это вообще в компилятор дошло?
286 1714514
Что прочитать про регистры, стек и тд?
287 1714516
>>14504
return завершает текущую функцию и управление возвращается в то место, откуда она была вызвана. Если foo вызывает bar, то foo останавливается и выполняется bar. После того как bar завершилась (например, с помощью return), выполняется код, который идет в foo ниже вызова bar. Так должно быть, хотя теперь я уже ни в чём не уверен.
288 1714518
>>14514
Начало любой книжки по ассемблеру.
290 1714526
Даже если не указать return, в ассемблерном виде у функции будет ret (как если бы функция было просто void), другое дело что возвращаемое значение будет неопределенным, тк если нет return, содержимое eax/rax не будет изменено, и в качестве ответа вернется то, что будет там в этот момент
291 1714536
>>14526
В изначальном примере работало потому, что вычисления в функции никак не зависели от возвращаемого значения. С факториалом такой фокус уже не пройдет
292 1714537
>>14525
А можно сразу интеловскую доку.
293 1714542
Не нашла треда по алгоритмам, поэтому спрошу здесь. Как использовать одномерный массив в качестве двумерной матрицы? Не пойму, как найти номер элемента, используя i, j и, собственно, саму размерность.
294 1714547
>>14495
Что значит запустить? Запустить приложение? Как обычно, скопировать DLL рядом с exe.
Запустить сборку? Без задней мысли открываешь папку с cmakelists.txt и фиксишь ошибки
295 1714548
>>14542
i % N + j, например. N - количество строк или столбцов.
7.jpg5 Кб, 200x200
296 1714550
>>14542
А ты тяночка?
297 1714581
>>14548
Спасибо, не поняла. Сделала по-старинке. Сначала +1 к каждой метке, потом -1. Кляти нули.
>>14550
Брезгуешь сельдью?
298 1714585
>>14550
Извини, я с анальниками-программистами не общаюсь.
299 1714599
>>14500
Это undefined behavior. Наследие сишки, где по-умолчанию везде int был.
https://wiki.sei.cmu.edu/confluence/display/cplusplus/MSC52-CPP.+Value-returning+functions+must+return+a+value+from+all+exit+paths

Вот это рабочий сишный код:
sum( a, b ) {
return a+b;
}
https://godbolt.org/z/JwGMnk
изображение.png20 Кб, 517x410
300 1714645
Почему это работает?
301 1714650
>>14645
А что тут не так? Перегруженную операцию можно юзануть и так и так.
302 1714656
>>14650
Почему можно? Просто я когда видеоурок смотрел, долго вдуплял, почему cout << *pointer; выводит значение ptr без обращения к методу operator.
303 1714660
>>14585
Что за мемчик? Где-то уже это слышал.
304 1714662
>>14656
Просто потому, что альтернативный синтаксис для этого. Это как arr[x] и ★(arr + x)
Ну, ещё через синтаксис operatorX можно определить указатель на такой метод:
int (★A::fp)(int) = operator★;
С "сокращённым" синтаксисом так не получится.
305 1714664
>>14660
Сразу видно нормального человека, который не сидит в МВП-треде.
https://www.youtube.com/watch?v=0GIcP6xvW5Q
306 1714665
>>14664
Что за мвп-тред?
307 1714668
>>14665
Вот-вот.
308 1714671
>>14668
А, я понял, "мы вам перезвоним". Ну тут ты ошибся про нормальность, я там не сижу, потому что знаю, что никуда не возьмут.
309 1714727
>>14376
У меня всё падает с -O2, -O3 или -O1 и работает с -O0 - и всегда так было.
Твой код так же и нихуя там не остаётся в регистре. По этой причине я не выключаю -O1 никогда.
310 1714763
Если код ведёт себя по-разному на разных флагах оптимизации, то в нём дохуя UB.
311 1714766
>>14763

> в нём дохуя UB


но ведь код на плюсах - это UB по определению
312 1714770
>>14509
Какие флаги? Подскажи плз
313 1714771
>>14763
Это значит оптимизации компилятора нерабочие и ломают программы.
314 1714772
>>14771
Если функция не возвращает значение когда должна - то это ub, а не проблема в флагах - потому что компилятор никаким образом не может догадаться какое значение вместо возвращаемого подставить.

Вообще разработчикам компилятора стоило бы просто сделать так, чтобы компилятор выпадал с ошибкой при подобном вместо предупреждений на который никто не смотрит. Сразу треть ub в окно вылетит.
315 1714776
>>14772
Когда ты точку с запятой забыл поставить, компилятор высирает ошибку, хотя научить его распознавать когда они необязательны проще простого (в других же языках это как то делается), тем не менее это категорически никто не делает, потому что это нарушение стандарта языка. А тут значение забыл вернуть похуй компилируем.

Это явно где то проеб в компиляторе, а если еще оптимизации код ломают то еще и в них.
316 1714819
>>14776
C++ это религия что ли?
317 1714821
>>14819
Правила дорожного движения это религия? Или техника безопасности?

Пиздец блять и вот такие люди пишут код.
318 1714856
>>14776

>А тут значение забыл вернуть похуй компилируем.


>


>Это явно где то проеб в компиляторе, а если еще оптимизации код ломают то еще и в них.



return не обязателен, если функция не возвращает управление.
Кунпелятор не может доказать, что управление возвращается, поэтому он только выдает предупреждение:
ex.cc:2:5: warning: control reaches end of non-void function [-Wreturn-type]
foo(a-1);
~~~^~~~~
319 1714858
>>13913
Да ладно, у std operator [] вернёт default constructed
320 1714879
>>14858

>вернёт default constructed


В Qt можно задавать это значение. То есть чтобы возвращалась -1 вместо нуля для интов.
321 1714947
>>14856

> return не обязателен, если функция не возвращает управление.


А нахуя тогда вводили noreturn?
322 1714990
Для чего обычно используют weak символы?
323 1714992
>>14856

>return не обязателен, если функция не возвращает управление



Славик, ты опять не принял таблетки? А ну иди сюда быстрей, мама сейчас даст тебе за щеку сосалку
324 1715000
>>14947
За щеку тебе вводили. А функции, не возвращающие управление, существовали со времен деда Томпсона.
>>14856
Дурачок, ты тоже прочитай и подумай.
325 1715004
>>14992

>Дурачок, ты тоже прочитай и подумай.


goto >>14856
326 1715039
В случае с typedef я могу делать вот так:
typedef bool (class_name::method_name)(int arg);

А могу вот так:
typedef bool (class_name::type_example)(int arg);
Тогда pointer не будет частью typedef и нужно будет указывать это явно.

Как сделать аналогично с using?
Так работает:
using type_example = bool(class_name::
)(int arg1);

Но как сделать без указателя?
327 1715041
>>15000
Ну-ка, умник, объясни, зачем в языке нужна сущность, которая явно указывает на то, что функция не возвращает управление, но при этом по умолчанию оно так и работает, хотя это в 99.99% случаев является ошибкой.
328 1715045
>>15041
Тоже не пойму auto до c++11.
329 1715050
>>15041
Я тебе не могу этого объяснить.
Смысл твоего вопроса?
330 1715061
>>14990
ЕМНИП символ, определенный как weak линкер не обматерит при переопределении, а заменит на новый. Типа есть какая-то дефолтная реализация, и ты можешь написать свою, а можешь не писать.
Видел такое один раз, в какой-то либе для МК.
331 1715074
Я могу полностью игнорировать предупреждение "taking address of packed member .. of class or structure .. may result in an unaligned pointer value" на х86, и это сообщение только для условных arm, верно?
332 1715083
>>15074
Не обязательно.
На x86 тоже существуют alignment requirements, где required align for certain type is > 8

При этом вручную использовать всякие avx2 не обязательно, иногда достаточно попытаться собрать свой проект с -O3 и увидеть, что работать, внезапно, перестало, так как структуру ты запаковал, а компилятор всё равно охуел.
333 1715084
>>15074
Невыравненное обращение может быть медленнее выраненного даже на 86-помойках.
image.png25 Кб, 566x349
334 1715102
Че за хуйня.
335 1715105
>>15102
enum добавь
336 1715139
>>15102
Это сишка? Так только на плюсах можно, в сишке обязательно писать "struct", "enum" и "union" перед типами. Ну ли определи синонимы через typedef.
337 1715171
>>15084
Это я в курсе естественно.

>>15083
Нет, никаких simd, просто несколько структур для сохранения в файл.

>-O3


Он разве не должен сам скомпилировать без побочных эффектов с более медленной инструкцией загрузки невыровненных данных, если там стрёмный указатель и информацию про выравнивание он получить не может?
Можешь в общих чертах описать что примерно нужно сделать, чтобы корректный код работал некорректно из-за автоматических simd в O3? Хочу получить это ошибку явно, если она существует - потому что я с O3 компилю всё.

>>15102
Просто в объявлении пиши сразу typedef enum hgfsd{} hgfsd;
338 1715176
>>15000

> А функции, не возвращающие управление, существовали со времен деда Томпсона.


Перестань говорить слова смысл которых не понимаешь.
Возврата управления нет, есть передача управления и возврат. Это машинные команды и к коду на с/c++ они не имеют отношения. В функциях на си ты пишешь ретерн что бы выплюнуть тип либо выйти из функции где то в середине кода. Машина работает ровно наоборот - ей надо говорить явно куда перейти (куда передать управление), а обратно она вернется сама. И так до тех пор пока не кончится вся цепочка исполнений идущая от ядра и машина просто встанет
15537846004820.jpg198 Кб, 640x640
339 1715182
>>15176
Бля, развлечения каждый день.
В прошлом треде нас посетил O(2n)-шизик. А сейчас спешите видеть и обучаться подробностям "цепочки исполнения идущей от ядра". Но осторожней! Она закончится и машина встанет!
340 1715186
>>15182

> O(2n)


Лол, 2к20 до сих пор кто-то этого не понимает?
341 1715189
>>15182
Ну объясни свою версию как по твоему мнению процессор работает?
342 1715195
>>15189
Ну во-первых, для возврата из функции нужен собственно адрес возврата, предварительно положенный в стек.
Остальную твою хуйню мне даже читать лень.
343 1715199
>>15195

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


А что будет если не будет адреса возврата на стеке?
344 1715200
>>15171

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


Должен, но я в некоторых версиях gcc/g++ наступал на баг, когда он этого не делал
345 1715203
>>15199
Будет jmp в неизвестные в каньоны древних нопов.
346 1715206
>>15199
Пизда рулю и седлу будет.
347 1715208
>>15203

> Будет jmp


Но ведь функции без "возврата управления"..
как же так? Машина получается все равно куда то возвращается и куда все возвраты идут?
Можешь не отвечать а идти сушить одежду от своей же струи мочи пущеной против ветра.
sage 348 1715210
Посоны, я короче написал функцию
void f()
{
}

И забыл в ней написать return. И короче КОМП РАСПИДОРАСИЛО.
350 1715233
https://www.youtube.com/watch?v=N7DzmfLBolM
Вы согласны, что оба примера подпадают под композицию?
351 1715240
>>15233
Я согласен только с тем, что тупые терминологические разглагольствования ничем не лучше задрачивания всех паттернов и несколько десятков видов сортировок и деревьев. ООП-теоретики напридумывали кучу лишних терминов, когда в реальности их названия никто не вспоминает, и если кто-то написал код, попадающий под одно из определений, почти 100% он даже не вспоминал, как именно это называется.
352 1715242
>>15240
Ладно, я перефразирую вопрос. Если я создаю в конструкторе класса объект другого класса через оператор new, то вложенный объект будет уничтожен вместе с объектом первого класса, верно?
353 1715254
>>15242
Не обязательно, ты можешь потом указатель на объект второго класса передать куда угодно, и он там сохранится и будет валидным, когда объект первого класса удалится. Ну разве что сделать delete второго объекта в деструкторе.
354 1715261
>>15254
Ну в qt там родительский виджет удаляет все связанное с ним дерево, я забыл уточнить эту деталь.
355 1715262
>>15261
В Qt есть какой-то сборщик мусора. В общем случае в C++ его не будет.
356 1715278
Как сделать обновление программы? Не перекачивать же всю программу каждый раз.
357 1715295
>>15278
Почему нет? Кликаешь, скачивается установщик (сам, без уебанских ссылок на сайт, открываемых в браузере), детектит, что программа установлена, и предлагает обновить. Далее - далее - готово. Ну или делать то же в фоне без участия пользователя, прога запустит установщик сама и завершится, а установщик сделает всё автоматически.
358 1715330
Можно как-то в vscode сделать нормальную подстветку файлов, которые попадают в configure_file (.in) или не париться и просто ставить язык C++?
359 1715427
>>15208

>Но ведь функции без "возврата управления".. как же так?


Ну вот тебе самый простой случай, покормил.
f(){ f(); }
360 1715448
>>15199
Что захочешь, то и будет. Ты же у нас на ассемблере пишешь в обход call, ret и прочих предрассудков для быдла. А конпелятор сишечки всегда кладет адрес возврата в стек перед вызовом и всегда делает return перед }, если ты сам не сделал, и в случае, если функция не void, вызывающий код получит содержимое rax.
361 1715450
>>15186
хуй знает, а чем ты, но из определения вот этой хуйни O(...) следует, что никакие константные множители не меняют значения, стало быть, излишни
362 1715458
как легче всего работать с графикой в крестах?
363 1715464
>>15458
Вариантов много. Смотря что тебе нужно. Qt, opengl, sfml и тд.
364 1715467
>>15448

> конпелятор сишечки всегда кладет адрес возврата в стек


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

Вообще эти разговоры в железяче должны быть, тут им не место, тут высокоуровневый язык не имеющий отношения к железу и стекам. На эльбрусе вон вообще стеки разделенные - аргументы и возвращаемые значения отдельно в одной области памяти, адреса возврата в другой вообще, локальные данные как обычно просто друг за другом, и как то блять плюсовый код на нем компилируется запускается.
365 1715502
>>15467
Ну хорош)) Тут перетолстил уже.
Очевидно же, тот анон имел в виду, что компилятор пишет код, который кладет в стек адрес. Обычно это сводится к правильной расстановке call и ret.
366 1715546
>>15467

>Откуда ты знаешь какой адрес будет у функции пока ты ее в память не загрузил?


Адреса функций в таблице символов экзешника лежат, и они всегда одинаковые, потому что виртуальная память.
367 1715763
>>15546
Полный пиздеж. В бинаре вообще может не быть символов, абсолютные адреса могут быть разными от запуска к запуску из-за аслр
368 1715771
>>15467
Ты тоже гавно

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

Плюс если аслр отключен, то все абс адреса также не изменяются на этапе компилирования
369 1715774
>>15763
ASLR работает только для PIE. К тому же ты все равно можешь посчитать адреса функций перед запуском, если знаешь смещения в ASLR.
370 1715789
>>15774
Паем возможно сделать любую прогу, для этого есть релоки
Если базовый адрес неизвестен до запуска, вычислить его правильно у тебя получится если ты - ванга, и если так совпадет, что аслр будет грузить модули каждый раз по одним и тем же адресам, вероятность чего даже меньше чем твой писюн
371 1716192
>>15295
Нихуя не понял. Мою собственную программу как обновлять?
372 1716194
Есть файл 10 мб. Что бы вписать в середину файла данные мне придется все что после скопировать, а потрм опять записать?
373 1716237
Правильно ли я понимаю, что если я скомпилирую код в vs под x64 то он будет работать на любой винде с 64 битным процем? И как посмотреть наборы используемых инструкций?
374 1716240
>>16194
Не обязательно копировать, но да, все байты после середины придётся двигать, начинать с конца.
375 1716242
>>16237
Нет, операционка тоже нужна x64.
376 1716244
>>16242
А что касаемо инструкций, которые не каждым процем поддерживаются?
377 1716275
Как реализуются функции, генерирующие рандомные числа?
378 1716279
>>16275
Кажись беруь всякие типо рандномные параметры компа. Тмпа температуры процессора, время отклика и тд
379 1716282
>>16240
это безопасно?
380 1716286
>>16275
Способов много. Например, юзать аппаратный генератор, ну или создавать несколько тредов, измерять среднее время выполнения и брать наименее значащие цифры. А в простейшем случае - функция типа rand_value = (A*rand_value + B) % MAX, где заранее подобраны хорошие A и B.

https://ru.wikipedia.org/wiki/ГПСЧ
381 1716290
>>16282
Безопасно в плане не похерить данные? Если операция не прервётся, то вполне.
А если может прерваться (программу убили, питание отрубилось), можно заранее сохранять бекап. Ну или просто позицию, до которой успели докопировать.
382 1716305
Можно ли запустить стороннюю программу так, чтобы ее гуй не отображался?
383 1716310
>>16305
Можешь запустить ее как обычно и переключиться на другой рабочий стол

надеюсь помог
384 1716314
>>16310
Орнул
385 1716347
>>16305
Установить далёкие координаты, чтобы окно не влезло на рабочий стол. Правда, в панели задач останется, но это мелочи...
386 1716374
>>16310
Да сразу моник вырубить для верности
387 1716377
>>16305
Тебя в гугле надолго забанили?

FindWindow -> ShowWindow (SW_HIDE)
388 1716385
>>16310

>переключиться на другой рабочий стол


А как сразу запустить программу на другом рабочем столе и вообще переключить его? Я хочу что-то вроде desktops.exe (который от sysinternals), но со своими фичами.
389 1716445
Так сказать, эста буенос, ковбои. Кокособляди 2dx есть?
390 1716461
>>15771

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


Окей я понял, только я отвечал про стек, в файлах нету стека.
Во вторых ежу понятно что там или локальные/виртуальные адреса какие-то, выравненно все располагается или еще что-то, иначе б не работало нихуя.
391 1716589
Анон, у меня много static функций, простых пиздец, обычно математика. Что мне мешает к каждой приписать constexpr? И какой-нибудь msvc в релизе реально не сделает то же самое, что сделал бы constexpr?
392 1716619
>>16589
У нас gcc & clang так и делают.

мимо сишник
393 1716909
Двач, читаю память из другой программы, в ней строки с символами с номерами 200-255 (ä, ó, á, ö) хранятся побайтово. Это что, UTF-16, Unicode? Когда же сам получаю эти строки в std::string, выводятся кракозябры, помогите.
394 1716914
>>16909

> выводятся кракозябры


Что выводится зависит от используемого шрифта. Пиши конвертер из твоей хуйни в юникод, и выводи на что-то поддерживающее юникод.
395 1716950
Как вкатиться в олимпиадную прогу?
396 1716979
>>16950
Тебе в паскаль-тред.
397 1716980
В питоне есть numba, которая прямо на ходу компилирует функцию.

Есть что-то подобное для с++ (желательно без установки sdk на 10 гб и тысяч строк кода в программе), что позволяет из какого-то языка скомпилировать (это важно - интерпретируемые скрипты вообще не подходят из-за быстродействия) в машинные коды функцию в райнтайме? Нужна только работа с математикой и возможность ограничить явное выполнение произвольного кода с доступам к файлам, сети и всего такого прочего (без фанатизма - решать проблему с доступом к чужой памяти не обязательно). Что-то на уровне возможностей шейдеров glsl (си без рекурсии и ещё с некоторым ограничениями) будет достаточно, просто чтобы можно было функции и структуры использовать.

Есть идея прямо на ходу компилить dll-ку через gcc, но я не знаю как это сделать в линуксе (и какой-то там вообще аналог dll) - и не очень знаю как там организовать ограничение доступа к файлом, будет ли достаточно просто все файлы кроме math.h удалить. В общем, посоветуйте что-то, пожалуйста.
398 1716981
>>16980
Нахуя?
399 1716984
>>16980
Звучит как JIT. Типа такого? https://github.com/BitFunnel/NativeJIT
400 1716987
>>16981
Без десятикратной потери производительности добавить возможность что-то делать с вводимой (математической) функцией без перекомпилирования?

>>16984
Угу, он и есть.
Но нужны структуры и функции. Желательно с синтаксисом си, и желательны перегрузки операторов и методы - но их я на стадии препроцессора могу сделать может быть. А вот компилятор не смогу.
401 1716993
>>16987
Пишешь текст на сях в файл. Вызываешь
cc -fpic -shared -Wl,-soname,libmy.so /tmp/file.c
Подгружаешь библятеку с помощью dlopen, получаешь адрес функции. Перед вызовом функции делаешь chroot в пустую директорию.
image.png8 Кб, 579x159
402 1717004
Гроб гроб кладбище UB.
403 1717008
>>17004
Зачем ты это принес, негодник?
404 1717013
>>17008
Это к тому, что здесь тоже можно написать функцию eval(), следовательно, кресты - такая же динамическая дрисня, как js и пхп.
405 1717023
>>17013
ну ты можешь вообще влепить libclang и JIT'ить код. Да. Но нахуя?
406 1717060
>>16980
В qt встроен jit компилятор жопаскрипта, возможно тебе подойдёт. Я им в файлы настроек скрипты включаю.
407 1717199
Имею только опыт ковыряния всякого легасиговна на 98 стандарте.
Подскажите идею для петпроджекта чтобы с многопоточностью и всеми этими современными хуёвинами чтоб.
409 1717206
>>17202
Я думаю что я пересечение множеств долго считаю. Надо юзать set_intersection
410 1717217
>>16244
Смотри параметр arch и интринсинки
411 1717265
Есть какая-нибудь фигня для просмотра и редактирования настроек clang-format? В ide, мягко говоря, неудобно - нужно после каждой правки в настройки лезть.

И ещё некоторые
412 1717266
>>17265
Собака, я перенос строки нажима, а не отправить.

И ещё
413 1717268
>>17266
Оно издевается в общем - я не кликал отправить, и не выделял через таб кнопку - чтобы оно по нажатию enter отправлялось.

И ещё некоторые фичи сомнительны, можно в некоторых местах его отключить, чтобы он никак ничего не трогал - а оставил как есть?
414 1717302
>>17265
Хуйня шланг формат этот, ставь решарпер, там куда удобнее сделано и настроек больше.
415 1717303
>>17302
А ничего, что он под капотом тоже шланг дёргает?
416 1717307
>>17303
Ничего, не clang-format же. Там же сам clang можно просто для разбивки на токены использовать.

>>17302
Он с ide не стыкуется. Ещё и платная хрень от моей нелюбимой компании.
Написано только про плагины для студии. А у него есть консольный интерфейс, просто запиратить и посмотреть как оно? Меня вполне устраивает форматирование через батник пару раз в день - интеграция с ide и не нужна в общем-то.
sage 417 1717434
>>17303
Причем здесь шланг и шланг формат?
sage 418 1717436
>>17307
Так иди тогда через вим пердоль и ручками код форматируй, хули ты выебываешься? Если хочешь как у людей, то качай норм иде.
419 1717722
Сап, двач. Посмотрел код битка, там они написали свою транспортную библиотеку и свои сокеты. Посмотрел код того же торрентного протокола - та же хуйня.

Почему бы не использовать boost asio для p2p? Это же можно, или я чего-то не понимаю? Или asio для этого не подходит?
420 1717731
>>09291
Где-то во врезках было, кажись у Липмана, что разница есть: постинкремент создает временный объект; соответственно лучше его не пользовать, там, где фактически не нужен его побочный эффект.
421 1717855
Анон, в качестве ключа umap у меня матрица. Я подмешал в ::std, как должен происходить хеш для этой матрицы.
Вопрос: лучше сделать umap от ключа size_t и внешне считать хэш, или прям матрицу сувать туда как ключ? Второй вариант удобнее, но первый как-то выглядит быстрее, так как хэш явно посчитается один раз
422 1717878
>>17855
Шо, ты хочешь использовать хэш как ключ?
Если коллизия тебя не пугает, то можешь.
423 1718023
>>17878
umap внутри не моей либы кеша, глубина типа 256 элементов. С хешем в 32 тем более 64 бита быстрее метеорит меня убьет
424 1718158
>>17722
ASIO подходит для всего. Хуй знает почему они решили написать сами.
425 1718177
>>17722
Потому что ASIO настолько парашный, что лучше изобрести свой велосипед.
426 1718486
>>18158
Ну вот и я так думаю.

>>18177
А какого хуя? Шо не так?
427 1718493
>>18177
Почему в мире крестовиков что ни возьми - найдётся дохуя хейтеров этого? WinAPI параша, POSIX API параша, Boost параша, Qt параша, STL параша, COM параша, MFC параша, OpenGL параша, Vulkan параша, OpenCV параша, только C с классами норм.
428 1718496
>>18493

Ну смотри, WinAPI правда пиздец говнище говна. Qt тоже говно. Всё говно кроме гуя.

POSIX норм, но лучше юзать стандартные std или boost враперы.

COM тоже говно.
429 1718595
conan или vcpkg?
430 1718607
>>18595
wget+tar+cmake.
431 1718671
>>18595
docker+git submodules+make
432 1718716
>>18595
curl+make
изображение.png4 Кб, 101x110
433 1718749
https://c3dlabs.com/ru/

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

И как вообще на рынке дела с разработкой сапров и прочего софта для инженерного анализа?
BxLwp2ok364.jpg310 Кб, 1280x720
434 1718798
435 1718822
>>18749

>Что думаете об этой конторе?


ХЗ, видел на конференции пару челиков оттуда. Вроде норм, если угораешь по дифференциальной геометрии и прочему трешу.
>>18749

>И как вообще на рынке дела с разработкой сапров и прочего софта для инженерного анализа?


Цветет и пахнет. Не лезь дебилсукаебаный, оно тебя сожрет
436 1718825
>>18822

>оно тебя сожрет


А чому так?
Вообще работы не особо много в этой отрасли, но все равно кажется интересным.
437 1718830
>>18798

>The internal default function will write the data to the FILE * given with CURLOPT_WRITEDATA.



std::string readBuffer;
curl_easy_setopt(easyhandle, CURLOPT_WRITEDATA, &readBuffer);
438 1718834
>>12681
Qt это фактически другой std, да еще и с гуями.
Некоторые так вообще его считают лучшим по сравнению с std.
439 1718837
Пора включать кьют и буст в стандарт.
440 1718841
>>18837
Я как-то работал в конторе, в которой была написана полностью самодельная стандартная либа, все ебучие контейнеры, все кроссплатформенные обертки для потоков и всего остального, и даже UI. Ах какие они были молодцы, но наверное загнулись уже сейчас.

Представь приложение для голосовой конференц-связи, размером 600килобайт. Теперь иногда с теплотой вспоминаю, жаль что в те времена не оценил как там было круто.
441 1718851
>>18749

>как вообще на рынке дела с разработкой сапров и прочего софта для инженерного анализа



Аскон, t-flex, больше ничего относительно крупного не знаю.
И то, аскон в рязане/коломне/нижнем держит свою основную разработку, а не в москве.
Особо много вариантов для трудоустройства нет.
442 1718854
>>18830
То есть мне нужно создать объект fstream и передать на него ссылку?
443 1718856
>>18595
Vcpkg
444 1718860
>>18825

> А чому так?


Хз, анончик видимо ни разу не разрабатывал САПРы

Имхо, разработка САПРов - это лучшее, что есть в современном it
брат жив, зависимость есть
445 1718867
>>18860

>Имхо, разработка САПРов - это лучшее, что есть в современном it


>брат жив, зависимость есть



Как вкатиться? И какие возможности для карьеры в студента в Москве?
Вообще слышал, что сапры - очень консервативная отрасль, это правда?
446 1718873
>>18854
Я нихуя не понял. Оставил только 3 строчки, все остальное стер. Работает
447 1718896
>>18873
Почему оно вылетает когда пишу char* buffer = new char[10000];
curl_easy_setopt(handle, CURLOPT_WRITEDATA, buffer);
????
448 1718897
>>18867

> Как вкатиться?


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

> И какие возможности для карьеры в студента в Москве?


Что ты понимаешь под карьерой?

> Вообще слышал, что сапры - очень консервативная отрасль, это правда?


Не понял, что значит "консервативная"?
449 1718905
>>18897

>Что ты понимаешь под карьерой


Стажировки, вакансии для джунов. Хотя бы это пока что.
А то в области сапров этого я почти и не видел, по крайней мере на хх уж точно. Даже непонятно, как искать такую работу кроме как у очевидного аскона.
450 1718910
>>18896
Теперь другая проблема. Ответ сервера Bad API request
Все. Никаких пояснений
451 1718924
>>18910
Все. Починил. Оказывается пробелы в строке запроса очень важны
452 1718931
>>18905
Странно, мы периодически публикуем вакансии, однако наоборот никто почти не идёт ((
Джунов не мурыжим, обучаем

про стажировки - надеюсь ты имеешь ввиду оплачиваемые?
453 1718943
>>18931

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


Ты из c3d? Вы же в коломне, а не москве?
454 1718973
>>18931
Интересно, какие доходы у разработчиков сапр?
Я вообще из мира джавы, просто интересно, сколько платят людям за знание геометрии/вычмата/оптимизации/сопромата/etc
Кто-то говорил, что даже до средней до рыночка не дотягивает и люди годами работают за условные 100к в мск.
Это так?
455 1718987
>>18943

> Ты из c3d? Вы же в коломне, а не москве?


Не скажу, деанон травля
>>18973

> знание геометрии/вычмата/оптимизации/сопромата/etc


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

По деньгам - да, с жабой не сравнится, но медиана есть медиана
456 1718990
>>18987
А какой стек желательно знать, чтобы с большой вероятностью вкатиться?
Помимо очевидного C++, STL, алгоритмов и общих скиллов типа гита?
И как гуглить вакансии? По условным "C++ cad cam", "C++ сапр", и т. д hh выдает только пару вакансий во всей Москве. Я что-то не так делаю?
457 1718998
Если смотреть исходники любых крупных библиотек, код там напоминает магию: никакого использования API операционных систем, никаких STL или Boost. Но все работает быстро и корректно.
Сейчас пишу высокопроизводительную программу, и в интернете очень много советов типа не использовать STL, не использовать динамическую память, не использовать мьютексы. А как тогда писать сложные и крупные программы? Открываешь книги по плюсам, и там всегда Hello World, что такое указатели, что такое STL. Что почитать, чтобы научиться писать код без всего этого?
458 1719003
>>18998
Может по сишке книгу? Это мои догадки. Думай сам
459 1719007
>>19003
Как будто бы и да, но тогда возникает вопрос: а зачем тогда вообще нужны плюсы? Вот прямо сейчас смотрю книгу Солтера/Кеплера, и они пишут: плюсы круто, мы писали супер производительный код чисто на плюсах, не на си. Но советов каких-то нормальных я там пока не вижу.
460 1719009
>>18990

> А какой стек желательно знать, чтобы с большой вероятностью вкатиться?


Того, что ты перечислил хватит. Но знать нужно достаточно уверенно. Язык уж точно.

> И как гуглить вакансии?


Попробуй что-нибудь инженерное дописать или без сокращений "проектирование"

> hh выдает только пару вакансий во всей Москве


Да их в принципе немного
461 1719012
>>18998

> исходники любых крупных библиотек


Каких?
хромиум идет нахуй, это пример того, что получается, если жс-блядь добирается до конпелятора
462 1719030
>>18998
Как это не использовать API операционных систем? Без использования API ОС все, что ты можешь делать, это заранее выделенную память менять, кек.
463 1719045
>>19007
Не использовать темплейты ещё не значит не использовать C++. В плюсах есть классы, неймспейсы, более вменяемые строки, лямбды и прочее (нет).
464 1719112
>>18493
С с классами тоже параша.
465 1719113
>>18998
1) юзер желательно должен иметь возможность собрать либу с минимальным гемором, поэтому буст, как правило, отваливается.
2) если либа предполагает использование из других языков, то интерфейс всё равно будет на С. То есть, как ни крути, придется работать с указателями, буферами, кастомными функциями аллокации, т.д. Оборачивание всего этого в крестоконтейнеры только всё усложнит.
3) если либа крупная, то она, скорее всего, ещё и старая -- это означает устаревшие подходы.
Безымянный12.png32 Кб, 1058x695
466 1719209
Пацаны, вкатывайтесь в С++, ну это основы просто
467 1719212
>>19209
У тебя там зеленым подчеркнуто. and
468 1719213
>>19209
Ну и что ты этим хотел сказать?
469 1719217
>>19213
Ничего, тащемта, просто хотел сделать разными способами одно и то же. Хотя, уверен, кто-то может ещё больше извернуться.
471 1719363
>>19326
Как это дерьмо работает?
472 1719375
>>19363
Лямбда?
473 1719376
>>19363
Не шарю, но похоже на псевдокод вывода параметров в консоль.
474 1719379
>>19326
Это что то из с++20? Пиздец ебала какая.
475 1719388
>>19375
Троеточие
476 1719407
>>19326
Многоточие, которое мы заслужили.
477 1719410
>>19326
>>19379
собралось с -std=c++17
но нихуя не понял всё равно.
!SushiIKcao 478 1719437
>>19326
Эх прям как жс, хуяк и новый стандарт с лямбдами и классами, сначала противишься плюешься потом ну вот в таких случаях буду писать так шоб без фанатизма, а потом как ебанутый тыкаешь это везде, по старому пишешь только в особых случаях.
Чет начинаю уже полюбливать плюсы.
479 1719448
>>19388
Это значит что колличество аргументов может быть каким угодно. 5, 10, 1.
480 1719453
>>19448
>>19437
Так погодите, можете человеческим языком рассказать что происходит?

auto... с [] еще впереди - разворачивает список аргументов массив лямбд с пре-бинденым аргументом для каждой?

а потом хуй пойми как эти лямбды вызываются.

Вот таким примерно языком расскажите, а?
481 1719508
>>19448
Я знаю. Я в ахуе именно от троеточия внутри самой функции, где cout
482 1719511
>>19453
auto в лямбдах тоже самое что template
483 1719534
>>19453
Лямбда с auto параметрами в данном случае просто превращается в шаблонную функцию.

Ничего сложного, что-то типа
template<class... Ts>
void print(Ts args...)

Самый жыр тут в pack expansion. Как сказано в стандарте,
A pattern followed by an ellipsis, in which the name of at least one parameter pack appears at least once, is expanded into zero or more comma-separated instantiations of the pattern, where the name of the parameter pack is replaced by each of the elements from the pack, in order.

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

На цппреференс приводятся такие примеры
f(&args...); // expands to f(&E1, &E2, &E3)
f(n, ++args...); // expands to f(n, ++E1, ++E2, ++E3);
f(++args..., n); // expands to f(++E1, ++E2, ++E3, n);
f(h(args...) + args...); // expands to f(h(E1,E2,E3) + E1, h(E1,E2,E3) + E2, h(E1,E2,E3) + E3)

Код с пикрила разложится как
((cout << "Hello" << "\n"), (cout << "World" << "\n"), (cout << 123 << "\n"), (cout << 3.14159265 << "\n"));
что вполне легальное выражение, т.к. оператор запятая возвращает свое значение справа которое потом игнорируется и это тоже валидно

Вот и всё. При помощи этой фичи можно писать ещё большую шизу.
Так например можно унаследовать класс от неопределенного количества базовых и прокинуть их операторы или конструкторы.
template<class... Bases>
struct S : Bases...
{
using Bases::operator()...;
};
483 1719534
>>19453
Лямбда с auto параметрами в данном случае просто превращается в шаблонную функцию.

Ничего сложного, что-то типа
template<class... Ts>
void print(Ts args...)

Самый жыр тут в pack expansion. Как сказано в стандарте,
A pattern followed by an ellipsis, in which the name of at least one parameter pack appears at least once, is expanded into zero or more comma-separated instantiations of the pattern, where the name of the parameter pack is replaced by each of the elements from the pack, in order.

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

На цппреференс приводятся такие примеры
f(&args...); // expands to f(&E1, &E2, &E3)
f(n, ++args...); // expands to f(n, ++E1, ++E2, ++E3);
f(++args..., n); // expands to f(++E1, ++E2, ++E3, n);
f(h(args...) + args...); // expands to f(h(E1,E2,E3) + E1, h(E1,E2,E3) + E2, h(E1,E2,E3) + E3)

Код с пикрила разложится как
((cout << "Hello" << "\n"), (cout << "World" << "\n"), (cout << 123 << "\n"), (cout << 3.14159265 << "\n"));
что вполне легальное выражение, т.к. оператор запятая возвращает свое значение справа которое потом игнорируется и это тоже валидно

Вот и всё. При помощи этой фичи можно писать ещё большую шизу.
Так например можно унаследовать класс от неопределенного количества базовых и прокинуть их операторы или конструкторы.
template<class... Bases>
struct S : Bases...
{
using Bases::operator()...;
};
484 1719541
>>19534

>оператор запятая


вот! теперь дошло, не хватало как раз этого кирпичика. спасибо!
485 1719556
>>19534

> f(h(args...) + args...); // expands to f(h(E1,E2,E3) + E1, h(E1,E2,E3) + E2, h(E1,E2,E3) + E3)


Мда
486 1719558
>>19453
Выражения свёртки, есть давно во многих языках.
https://ru.m.wikipedia.org/wiki/Выражения_свёртки
487 1719565
>>19558
Тащемта в данном конкретном случае это не fold expressions, а pack expansion. Разница есть. Это ДРУГОЕ, надо понимать
488 1719570
>>19558
>>19565
Это ж наоборот анаморфизм, пацаны? Из меньшего выражения становится большее.
А фолд - катаморфизм.
489 1719652
>>19212
Не знаю почему, но без инициализации *pupaM всегда возвращает одно отрицательное число, хотя там мусор должен быть. Это специфика такая, или у меня оперативка одними числами забита?
490 1719660
>>19652

>*pupaM всегда возвращает одно отрицательное число


Ну совпало так. Перезагрузи компьютер, или погоняй его, чтобы память засралась разными данными из разных программ - и будет другое.
Он просто попадает в одну и ту же область памяти, судя по всему, и в этой области лежит одно и то же значение в этом сеансе.
491 1719678
>>19326
printf то покороче будет
492 1719685
>>19660

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


Перегрузил, забил всю оперативку, все равно одно и то же значение -842150451.
493 1719689
>>19678
printf не в курсе, какие типы хавает, а эта хрень в курсе, сама цепляет нужные перегрузки
495 1719694
>>19685
Твое -842150451 это 0xCDCDCDCD в шестнадцетиричном виде, думаешь совпадение?
В дебаге, покрайнем мере в студии, после new выделенную памаять записывается специальное значение чтобы было проще найти неинициализированные переменные.
496 1719702
>>19556
А хуле не так-то?
497 1719712
>>19326
>>19534

И после этого кто-то ещё жалуется, что в %язык_нейм% слишком много сахара.
498 1719754
Cделал программу в QT, из среды она запускается, а из папки с исполнимым файлом требует qt5core.dll, qt5gui.dll, qt5widgets.dll. Если скачиваю со сторонних сайтов эти библиотеки, появляется ошибка 0xc000007b. Как быть?
499 1719756
>>19754
Не скачивать с сторонних сайтов?
500 1719771
>>19754
Не нужно качать со сторонних сайтов. Найди в своём каталоге Qt либы, на отсутствие которых он ругается, и положи их рядом с экзешником.
501 1719780
>>19754
Запусти qtwindeploy или windeployqt, как-то так называется утилита,

1. в PATH пропиши путь к этой утилите.
2. потом в каталоге где у тебя собрался exe:
qtwindeploy yourexename.exe
и оно подтянет туда всё дерьмо, включая дллки переводы и прочее-прочее-прочее - будет готовый бандл, который уже можно хоть в инсталлер пихать и распространять.
502 1719781
>>19534
Про все есть порно. Без исключений.
503 1719794
>>19771
Та же самая ситуация
504 1719803
>>19794
Понятно. Вообще, эта ошибка гуглится: https://www.cyberforum.ru/qt/thread1968544.html

Вероятно, у проги и либ Qt разная разрядность. Ну или у компилятора.
505 1719806
>>19780
Этот вариант копирует библиотеки сам, но всё ещё появляется окно с той ошибкой.

>>19803
Получается, мне нужно собирать всё для x32?
506 1719807
>>19806
Да. Или всё x64.
507 1719854
>>19806
Он часть не копирует - те которые не кютешные. Там их несколько, смотри что выводит и бери из кютешного каталога. Всякие libstdc++-6.dll и тп
508 1719887
Я полный нуб, если что
Дано: две проги, которые делают один и тот же Х. Первая сделана по принципу: main.cpp вызывает функцию 1, та что-то делает, вызывает функцию 2, 2 делает что-то и т.п. Вторая сделана по принципу: есть класс, в котором функции 1 и 2, main.cpp вызывает функцию из класса и далее по списку. Т.е. единственное отличие, что во второй проге я запилил класс, чтоб не передавать миллион переменных из функции в функцию. Вторая прога работает на 10-15% медленней. Это нормально? Или я испортил?
509 1719889
sage 510 1735036
>>18671
Живой там не?
Тред утонул или удален.
Это копия, сохраненная 13 ноября 2020 года.

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

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