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

Ответить в тред Ответить в тред
C++ тред #112 /cpp/ Аноним 30/05/20 Суб 23:09:24 17086811
1438902703927.png 10Кб, 1024x1024
1024x1024
1576370470557.jpg 487Кб, 583x826
583x826
Аноним 30/05/20 Суб 23:20:48 17086902
xn2zjnez64pzklp[...].jpeg 533Кб, 1495x861
1495x861
Страуструп это который в шляпе?
30/05/20 Суб 23:21:06 17086913
Репорт за кат до лимита
30/05/20 Суб 23:24:27 17086954
>>1708691
Два чаю еще 106 жив, а вы уже 112 сделали.
30/05/20 Суб 23:27:01 17086985
>>1708695
> Два чаю еще 98 жив, а вы уже 20 сделали.
Аноним 31/05/20 Вск 00:05:58 17087316
>>1708690
В федоре и толстовке от Яндекса
Аноним 31/05/20 Вск 00:18:17 17087427
Аноним 31/05/20 Вск 00:22:52 17087518
1568992271324.png 82Кб, 325x325
325x325
>>1708691
Че, тоже хотел перекатить, но не успел?
Аноним 31/05/20 Вск 00:40:48 17087759
>>1708681 (OP)
>2
А если я хочу прогать на языке D, можно я не буду, как говорил какой-то анон "D сделан для тех, кто уже поел говна на С++". Хоть я и знаю язык C++ более менее и писал на нему пару небольших петпроектов, но "говна" таки не поел, зато очень хочется сдриснуть с этого говнистого языка на более красивый. Можно?
Аноним 31/05/20 Вск 01:06:57 170879210
>>1708756 →
Верно, я что-то упростил все. Но судя по всему можно снизить число connect'ов если все внутри одного класса находится.
>>1708768 →
Я читаю, но все равно сложно пока ориентироваться. Я даже не понял, есть ли там дефолтные значения для selectionbehaviour, если самому не задавать.
>>1708772 →
Да, видимо так и есть все, я готовый класс использовал безо всяких переопределений.
Аноним 31/05/20 Вск 01:55:27 170880111
>>1708690
В шляпе Антон Полухин(вроде так) — специалист по c++ из Яндекса.
Аноним 31/05/20 Вск 03:40:20 170881512
1590885618967.jpg 338Кб, 1080x1296
1080x1296
>>1708801
В телеге он выглядит так
Аноним 31/05/20 Вск 05:19:28 170883413
> The initialization order of member variables is determined by their order of declaration, not their order in the initialization list.
Это с каких пор так?
Аноним 31/05/20 Вск 07:49:35 170885514
Аноним 31/05/20 Вск 09:56:34 170887615
>>1708834
Gotcha! Ну какой же классный язык...
Аноним 31/05/20 Вск 10:57:14 170888616
int i = '0';
const char& b = i;
std::cout << b;
i++;
std::cout << b;

Вот тут я охуел b никак не связана c i
Аноним 31/05/20 Вск 11:11:29 170889117
>>1708886
int неявно преобразуется во временный char, b ссылается на него.
Язык-пидор, язык-гной.
Аноним 31/05/20 Вск 11:56:45 170891918
>>1708886
> не связана
> ссылка
> ссылка - Вид наказания — пребывание на поселении в отдалённом месте в качестве сосланного.
Аноним 31/05/20 Вск 11:59:37 170892219
аноны, соре, второй раз проебался с тредом
предлагаю коллективно признать этот и предыдущий треды нелегитимными и продолжить отсиживаться в 110 ом
Аноним 31/05/20 Вск 16:20:49 170913020
Хочу перекатиться из веб параши в кресты. Помогите советом, в рашке как я понимаю кресты -- совсем неперспективная область, и придётся становиться байтослесарем с потолком в 100к? Очень не хочу проседать в зп (на вебпараше получаю 200к+), но хочу делать что-то крутое, помимо КРУДОВ и прочего говна.

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

В рашке только в яндексе на крестах норм вакансии и нет смысла даже соваться или как?
Вообще, где есть НОРМ разработка, отличная от мобилок (фу) и веба(фуууууу)?
Аноним 31/05/20 Вск 16:23:06 170913221
>>1709130
И какие вообще перспективы у 30-ти летнего чмони (меня), сующегося в кресты в первый раз?

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

Кресты -- блядь, тут судя по первому взгляду год уйдёт на синтаксис и понимания указателей, какого хуя так мало платят?
Аноним 31/05/20 Вск 16:24:18 170913422
Таки а что случилось с std::dynarray? Он в стандарте или нет?
Как рекомендуется в модерновом С++ аллоцировать массив чтобы его не нужно было освобождать? unique_ptr/shared_ptr и туда прямо массив засовывать вместо make_unique? Для char[] я думаю проще всего string использовать
Аноним 31/05/20 Вск 16:26:18 170913823
image.png 37Кб, 380x664
380x664
image.png 25Кб, 296x651
296x651
>>1709132
Да где блять мало, джуны 1к-1.5к, миддлы от 2к, сеньоры от 3к. В хороших конторах могут и джунам по 2к платить, это не говоря о том, что когда ты станешь сеньором а то и мидлом, то работа будет искать тебя сама, там же и удалёнка подкатит. А для джунов требуют не так и много, за первые два курса универа учится спокойно
Аноним 31/05/20 Вск 16:30:04 170914624
>>1709138
Пойти что ли программистом работать.
Аноним 31/05/20 Вск 16:40:46 170916225
А как виндузовые живут без getopt? Как они аргументы парсят? Шокирован, что getopt это не часть стандарта C++. Столько бесполезного говна туда добавили.
Аноним 31/05/20 Вск 16:41:58 170916626
Аноним 31/05/20 Вск 16:53:20 170919527
>>1709166
Вот я и говорю, из буста даже thread в стандарт включили, почему опции не хотят?
Аноним 31/05/20 Вск 16:56:14 170920128
>>1709195
Включили урезанный, я не ебу чем стандарт занимается и почему они даже скопипастить готовый код не хотят
Аноним 31/05/20 Вск 16:59:52 170920529
>>1709195
Сокеты тоже неплохо было бы в стандарт. Да и юникод заодно.
Аноним 31/05/20 Вск 17:14:33 170921330
>>1709205
Сокеты планируют в 23-м вместе с рефлексией. Юникод не нужен хуй знает когда будет. Опять же, хотя-бы для консольных приложений, в чём проблема скопипастить boost::nowide в стандарт? Бля и пары человек для ревью хватит, а так хотя-бы консольные приложения страдать не будут
Аноним 31/05/20 Вск 17:16:17 170921431
>>1709134
Вектор лучше всего. Уже много раз слышал правило, что если нет везких причин не использовать вектор, то надо брать именно его. А специализации для массивов у шареда нет не осилили скопипастить с буста вместе с самим шаредом
Аноним 31/05/20 Вск 17:27:30 170922132
>>1709138
ну ты не охуел ли? на твоём скрине от силы 10 вакансий за 200к и для них надо блядь пахать и пахать

на джсе за пару лет платят 200к+ почему вас крестовиков так унижают??
Аноним 31/05/20 Вск 17:34:18 170922833
image.png 115Кб, 933x821
933x821
image.png 139Кб, 838x885
838x885
image.png 110Кб, 747x765
747x765
image.png 83Кб, 376x690
376x690
>>1709221
>унижают
2 моих друга из-за нужды в деньгах в 2015 тупо начали рассылать резюме во все фирмы. Оба нашли работу. Сейчас оба мидлы за зп не знаю, не бедствуют. Были почти нулячие на тот момент, в старших классах учили что-то вроде. Жсер так может? Мне казалось там на одну вакансию 5 тыс. резюме, а эйчарши могут отказать из-за непонравившегося шрифта в CV. Вакансии там кстати не особо то и требовательные, вот тебе пофоткал парочку из мск, и пара из моего города. Средняя зп у нас 10к если что, медианная 5-7к или типо того
Аноним 31/05/20 Вск 18:03:55 170925634
// 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. А в этом хроно ебучем какие-то бесконечные касты.
Аноним 31/05/20 Вск 18:33:24 170929135
То есть между ++i и i++ нет никакой разницы, и то и другое инкрементит, если мы не присваеваем значение куда-то? Тогда i++ изъебнется и сначала присвоит значение, а уже потом заинкрементит?
Аноним 31/05/20 Вск 18:44:46 170930336
>>1709291
Да. Только не обязательно присвоит, а просто возьмёт значение и использует в выражении. Например, при вызове функции.
Аноним 31/05/20 Вск 18:45:10 170930537
>>1709228
ну что ты мне яички выкручиваешь, дружище. Я тебе о том, что сейчас мне за Ноду/Пхп платят 200к+, а знаний у меня хуй да нихуя, только всякие библиотеки да фреймворки как бибизяна выучил.
Вакансий миллион, если завтра решу поменять работу, новую найду за дня три макс.

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

Короче, хуй знает, но на мой взгляд джс-макаки, вас унижают как только могут за ваши знания

Аноним 31/05/20 Вск 19:08:15 170932338
>>1709305
Мимо-неон, а что тут удивительного, никакой связи между сложностью и рыночком. У ембедщиков такая же хуйня. Там еще и железо нужно знать и байтоебство. А не платят не хуя. А с другими индустриями сравнить - вообще пиздец. Математики там всякие, и прочие физики.
Аноним 31/05/20 Вск 19:16:02 170933139
>>1709305
> вас унижают как только могут за ваши знания
И что делать с этим будем? Нормальный крестокодер сможет себе без проблем место выбить с устраивающей его зп. Я вообще знаком с победителем ICPC, сегодня уже сеньором, там знаний блять как у профессора математики, препода по алгоритмам и 10 жс макак, работает за 3к, говорит как-то похуй на деньги, хотя не раз уже офферы и за бугор были, и местные мск на 5к. Думаешь ему не похуй, что о нём какой-то недопрограммист, который семафор от мьютекса не отличает, думает?
Аноним 31/05/20 Вск 19:30:55 170934640
>>1709305
>сейчас мне за Ноду/Пхп платят 200к+, а знаний у меня хуй да нихуя, только всякие библиотеки да фреймворки как бибизяна выучил
Я тоже так хочу, откуда начинать?
Аноним 31/05/20 Вск 19:40:02 170935741
>>1709331
> семафор от мьютекса
чем отличается? мимо 3 года опыта
Аноним 31/05/20 Вск 19:43:15 170936142
>>1709357
семафор пропускает n потоков, мьютекс один
Аноним 31/05/20 Вск 19:43:55 170936343
>>1709346
учи жиэс, учи фреймворк, подавай на джуна, потом через год перескакивай на двойную зп и через год ещё раз так же делай
Аноним 31/05/20 Вск 19:46:47 170936744
Аноним 31/05/20 Вск 20:25:59 170940145
>>1709363
Чисто по книжкам можно вкатиться или там курсы какие-нибудь нужны?
Аноним 31/05/20 Вск 20:29:27 170940446
>>1709291
Ну как бы есть разница, порядок исполнения другой

++i > 1 // это сначала сложение потом сравнение
i++ > 1 // это фактически сравнение и сложение можно запускать одновременно. Надо скомпилить вывод посмотреть, я не уверен можно ли один регистр двум командам использовать, но если что можно все равно сложение делать в другой регистр а сравнивать текущий.
Аноним 31/05/20 Вск 22:27:11 170950447
Дарю красивое имя переменной
int chlen = 8192;

Это не то, что вы подумали. Это chunk length при записи файла по кускам.
Аноним 31/05/20 Вск 22:49:05 170951248
Аноним 31/05/20 Вск 23:23:18 170953049
>>1709504
int const anus = 0;
Да, это именно то, о чём вы подумали. Это анус.
Аноним 31/05/20 Вск 23:33:31 170953450
>>1709530
penetration - хорошее название для переменной типа double.
Аноним 31/05/20 Вск 23:36:09 170953751
int eger;
float ing;
char acter;
short penis;
Аноним 31/05/20 Вск 23:39:50 170954052
incel : внутренняя ячейка в таблице
short incel;
Аноним 01/06/20 Пнд 01:39:06 170959153
>>1708681 (OP)
Обосрался со второго пика. Больше не буду такое писать, ну его нахуй. ОП, ты жжешь.
Аноним 01/06/20 Пнд 02:07:21 170959754
>>1709228
Зачем ты выбрал именно топовые вакансии на плюсах? Я сам видел, так как регулярно просматриваю хх по мск.
Как мне показалось, очень много предложений работы связано с говном - программирование под винду, mfc, c++/cli, qt. Или байтоебство какое, где предлагают 120к за 6+ лет опыта работы.
У жс и джава макак все намного лучше в среднем
Аноним 01/06/20 Пнд 02:15:06 170960055
>>1709130
>Вообще, где есть НОРМ разработка
Интересные задачи встречаются как ни странно в НИИ разной степени паршивости. Правда платят мало.
А так в РФ есть самсунг и хуавей, в последнем платят прилично, в пером нет. Яндекс по уровню зп считается ниже среднего по рынку.

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

На твоём месте я бы дальше сидел в вебе на хорошей зп. Просто скорее всего окажется, что перейдя в новую отрасль, ты обнаружишь, что задачи по прежнему говно и скучно, а зп и условия работы в разы хуже.
Аноним 01/06/20 Пнд 02:18:39 170960156
>>1709130
Яндекс, Мейлру, Нвидия, дойчебанк, Сбербанк, Озон думает начинать кресты пердолить, как Сашка Фокин туда уехал.

Дохуя чо есть.
Аноним 01/06/20 Пнд 02:25:12 170960457
>>1709401
курсы -- говно, по книжкам и можно и нужно. Ну или на юдеми какой курс купи разве только, но вообще немного книжки, много практики и много гугления за глаза хватит

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

>>1709600
может быть, ты и прав. Мне сложно описать, что я понимаю под норм разработкой, скорее это что-то вроде создания алгоритмов и решения каких-то абстрактных задач, наелся я бизнес-говна сполна, не могу больше скачивать и использовать библиотеку, хочу написать свою
Аноним 01/06/20 Пнд 02:35:00 170960658
>>1709604
>хочу написать свою
так напиши. если чо полезное будет - отгребешь звезд и будешь мега звездой. а если ты кукаретик мамкин, то хуй сосать будешь де скончания веков. вот тебе мое проклятье
Аноним 01/06/20 Пнд 02:38:58 170960859
>>1709601
Сбер и дойчебанк это логово джавистов, что собственно неудивительно.
Яндекс и нвидия - да. В остальном плюсовики нужны в крайне малом количестве.
Аноним 01/06/20 Пнд 02:42:54 170960960
Я вот заметил, чем чаще жабатреды уплывают за 0.5k постов, тем сильнее напрягается плюсотред. Господа датасаентисты, проверьте, нет ли тут корреляции.
Аноним 01/06/20 Пнд 02:46:22 170961061
>>1709597
Я всего ~5 вакансий просмотрел, выбрал адекватные, они в моём посте и прикреплены, как там в мск дела не знаю, из своего города вообще выбрал джуно-слабомидло вакансии. Хотя и у нас говно есть, одна фирма набирает стажёров со стеком Qt/Boost/WinAPI/MFC, не ебу в душе чем они там занимаются, но звучит не очень.
Аноним 01/06/20 Пнд 03:17:08 170961562
>>1709604
"для интереса" делай свои домашние проекты или в опен сорс вкатись. Просто смирись, что на дворе 2020, библиотеки уже все написаны. Остался только бизнес. И дальше будет только хуже. фреймворки, облака, saas/paas. Все за тебя напишут, только деньги плати. Базы данных, алгоритмы, криптография, обработка изображений, или вон AI еще не успел развиться а уже есть всякие AI paas в облаках. Для вебсервисов весь plumbing за тебя сделают. Что еще писать? Только веб бизнес. Положил в базу, достал из базы. Больше ничего не будет. Ниш никаких не остается. Если какая-нибудь тема станет популярной, ее тут уж МС/Амазон/Гугл к рукам приберут, в облако засунут и убьют конкуренцию. Я реально не знаю, чем будут погромисты заниматься через 10-20 лет?
Аноним 01/06/20 Пнд 03:24:30 170961763
>>1709610
такой маленький а уже МАМИН СИНЬЁР за технологии поясляен. таким в индустрию путь заказан
Аноним 01/06/20 Пнд 03:29:33 170962164
>>1709615
вот этот знает. через 10-20 лет у вкатышей будет вариант: быть гением или сосать хуй. вкатывайтесь пока не поздно в менеджмент. дальше только пиздец и купола
Аноним 01/06/20 Пнд 03:36:23 170962365
>>1709617
Для открытия hh.ru нужно проработать 15 лет? Ты чего порвался то?
Аноним 01/06/20 Пнд 03:47:50 170963266
>>1709609
То есть всегда? Жабатред перекатывают после 1к.
Аноним 01/06/20 Пнд 04:11:01 170963767
>>1709632
>То есть всегда?
всегда, когда жаба треда нет на доске, манявкатыши начинаю считать, что плюсы охуенное место для вката?
Аноним 01/06/20 Пнд 08:34:04 170970968
>>1709256
ПОСТАВИЛ ТИП AUTO
@
СПРАВА ПИШИ КАСТ
Аноним 01/06/20 Пнд 11:20:29 170977069
>>1709604
>>1709615
Что подразумевается под бизнесом, круды? Если да, то почему не придумали какое-нибудь универсальное решение?
Аноним 01/06/20 Пнд 11:31:51 170977770
Анон, в лямбде std::transform или for_each при использовании auto надо писать типа const auto& v или просто auto v, компилятор сам догадается, что не надо копировать?
Проведение auto же указано в стандарте?
Аноним 01/06/20 Пнд 12:02:10 170979071
>>1709777
const и & компилятор сам не вставляет, читай матчасть
Аноним 01/06/20 Пнд 12:06:39 170979372
>>1709770
Бизнес - это service layer с дохуищей логики и сотнями абстракций. Круды на фоне этого - капля в море, от всего процесса разработки они берут ну процентов 5 времени от силы. Решение давно есть, называется ORM. В задачах бизнес-логики же конца-края не видно, что там
> 10-20 лет

мимоджавист
Аноним 01/06/20 Пнд 12:06:56 170979473
>>1709770
круды и околокруды; придумали решения, вот мы их и "имплементируем" за сотни тысяч деревянных
Аноним 01/06/20 Пнд 12:25:19 170982574
>>1709777
Просто пиши auto&& и оно там само без копирований работает
Аноним 01/06/20 Пнд 12:58:05 170984675
Привет ананасам, поясните мои хорошие, где искать проекты/стартапы, просто что бы вкатиться в совместный проггинг? Сам клепал пэт проекты, последнее что мацал, это Qt, но из-за ограничений в креативе, да и тот факт, что всем вокруг объективно похуй на то, что я клепаю, желание просто сдувается как шарик. Хочеца найти себе команду, в которой уже есть идеи, да что я рассказываю, хочу найти себе стартап что бы влиться, куда искать?
Аноним 01/06/20 Пнд 13:48:31 170987976
Аноним 01/06/20 Пнд 16:41:58 171011277
Есть отака хуйня : 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;
Аноним 01/06/20 Пнд 16:53:51 171013978
>>1710112
Эм, а в чём проблема просто путь до папки прописать ?
Аноним 01/06/20 Пнд 16:58:39 171014879
>>1710139
Ну и тип, поставить любой count, если тебе прям нужно что бы было чередование 1 2 3 и т.д. но, вообще, как по мне, лучше просто подсосать time.h и просто в строку вставлять дд.мм.гггг
По поводу сжатия, тут хызы, посмотри реализиции в своей WinAPI, более чем уверен, что там есть реализации работы с форматами и их сжатие
//А поч bmp ? Помимо того, что это дефолт винды
Аноним 01/06/20 Пнд 17:25:32 171021080
Аноны, что думаете насчет sourcetrail? Выглядит очень неплохо и удобно для вката в новую кодовую базу, но проблема что куча непотянтных ошибок, которые неясно как фиксить, на маке вообще похоже отваливается из-за кучи objcшных либ.
Есть ли еще какие-то продвинутые инструменты для визуализации?
Аноним 01/06/20 Пнд 17:35:52 171023281
>>1710112

Бля, чел, ты чё, борланд 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 минут не объяснить. Погугли как это делается.

Аноним 01/06/20 Пнд 17:37:36 171023782
>>1710210
>sourcetrail

Да нету, блэт. Это прикол такой. Нормальные челы поставили себе neovim vsc и не ебут себе мозг...
Аноним 01/06/20 Пнд 17:42:58 171025183
Почему не могут просто взять и перенести буст в стандартную либу?
Аноним 01/06/20 Пнд 17:44:08 171025384
И еще вопрос, переписывают ли стл время от времени? Используя фишки из нового стандарта например, или просто потому что нашелся способ сделать лучше?
Аноним 01/06/20 Пнд 17:58:23 171026685
>>1710232
Куда перекатываццо?
это радка,но сорта говна,как я понимаю
Залупа разрослась до
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
Вопрос:как?
Аноним 01/06/20 Пнд 17:59:14 171027086
>>1710266
А, path1 это я пытался захуярить путь до другой папки,но не вышло
Аноним 01/06/20 Пнд 18:21:19 171029187
>>1710266

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

Ну это переименовали. Раньше называли 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"?

Аноним 01/06/20 Пнд 18:22:05 171029388
>>1710270
path1 + "screen"

А там палка есть?
Аноним 01/06/20 Пнд 18:30:12 171030689
>>1710291
Папка существует,мне нужно,чтобы был не фиксированный путь,а путь до программы+папка ней
Пока оно всё сейвит в папку с exe,ибо
AnsiString path =ExtractFilePath(Application->ExeName
Аноним 01/06/20 Пнд 18:36:46 171031790
Аноним 01/06/20 Пнд 18:49:35 171032791
>>1710317
Теперь ещё один вопрос: почему на других компах пишет "не удалось найти указанный поставщик" и как это лечить?
Аноним 01/06/20 Пнд 18:50:13 171032892
>>1710327
Могу скинуть программу,если надо
Аноним 01/06/20 Пнд 21:20:42 171042793
Жил-был СТРАУСТРУП. Шел обычный, скучный день. СТРАУСТРУП занимался рутинными вещами, такими как ебля своей трехсоткиллограмовой матери в зад. Только успев кончить матери в пердак и вынуть измазанный в говне хуй, СТРАУСТРУП услышал стук в дверь. Не заметив, что его мать умерла от сердечного приступа еще 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 СТРОК СООБЩЕНИЙ ОБ ОШИБКАХ, компилятор скончался от ЛЕНИВЫХ ВЫЧИСЛЕНИЙ ПРЯМОЙ КИШКИ и из монитора вылетела ЛЯМБДА. Придерживая круглые скобки квадратными скобками, ЛЯМБДА в ужасе съеблась под ближайший камень. Ей еще долго не захочется принимать и возвращать значения. Довольный СТРАУСТРУП плюнул в руку, чтобы наслюнявить хуй и уже решился залезать на мамочку, но передумал и решил вначале запостить эту историю на ДВАЧ.
Аноним 01/06/20 Пнд 21:44:57 171045694
>>1710427
>Compiler :: [C++SourceCode] → [ExecutableFile]
>Compiler source =(Link . Compile) source

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

И зачем тогда ваш маняхаскель, где надо ебаться со всякой функциональной питушней и приседать на штангу?
Аноним 01/06/20 Пнд 22:36:13 171050595
>>1708695
а 111 без тега был, вот и обосрались
Аноним 01/06/20 Пнд 22:44:56 171051196
635.jpg 89Кб, 700x646
700x646
Допустим, я хочу написать программу отдельно от интерфейса. Как mpd и ncmpcpp, например. Я так понимаю, для этого нужно саму программу сделать в виде сервера. Какие для этого средства в плюсах существуют? Есть какие-то либы, типа фласка или синатры, чтобы более-менее просто это было организовать?
Аноним 01/06/20 Пнд 23:44:16 171054897
>>1710511
Берешь AF_UNIX сокеты, kqueue и пишешь без костылей
Аноним 02/06/20 Втр 00:16:51 171056798
Аноним 02/06/20 Втр 03:02:00 171062699
>>1709879
В какую там директорию?
Аноним 02/06/20 Втр 12:45:05 1710794100
>>1710327

Ну у тебя софт не лицензирован, в нём в манияесте не прописаны ключи-хуючи, и винда по дефолту не рекомендует такое запускать, а то мало ли какие там вирусы. Ну это уже программирования не касается, можешь забить.
Аноним 02/06/20 Втр 14:32:24 1710862101
641.jpg 427Кб, 700x853
700x853
Аноним 02/06/20 Втр 15:13:22 1710887102
>>1710511
>типа фласка или синатры

Сразу видно веб разработчика :^)
Аноним 02/06/20 Втр 15:36:28 1710904103
Как в qt фиксить исключения? У меня при нажатии кнопки поиск вылетает, я думаю это из-за sqlrelationshiptablemodel, там одно поле интовое, а я отображается string из другой таблицы по внешнему ключу.
Аноним 02/06/20 Втр 15:54:54 1710916104
Почему у меня срабатывает деструктор класса?
std::vector<class> numbers(10, class(x, y, z));
Создается вектор, на следующей строчке срабатывает деструктор.
В конструкторе выделяю память оператором new, если убрать деструктор, на протяжении вызовов методов класса все время вызывается конструктор и выделяет новую память. Вектор передаю в функцию по ссылке. Что за НЕХ?
Аноним 02/06/20 Втр 15:57:48 1710918105
>>1710904
А в чём проблема скастить ?
Аноним 02/06/20 Втр 16:03:46 1710926106
>>1710918
Я не уверен, что именно в этом проблема, не знаю как в qt с исключениями разбираться. Да и что тут можно скастить в моем обработчике кнопки поиск?
model->setFilter("staff.Id LIKE '%"+searchfield->text()+"%'");
Может relationmodel вообще не поддерживает подобные фильтры?
Аноним 02/06/20 Втр 16:33:46 1710969107
>>1710926
Задал просто строкой и все отображает как надо. Почему текст не принимает из поля ввода?
model->setFilter("staff.Id LIKE '%1%'");
Аноним 02/06/20 Втр 16:34:49 1710971108
>>1710969
Потому что типы разные?
Аноним 02/06/20 Втр 16:39:29 1710977109
>>1710971
Нет, Qlineedit возвращает строку как и надо. Я лоханулся, но в другом месте, вынес этот объект в хедер, но забыл убрать инициализацию его в конструкторе:
Qlineedit ^search = new Qlineedit();
на
search = new Qlineedit();
Надо наверное выключать музыку во время написания кода, а я думал, что она наоборот помогает сконцентрироваться мне.
Аноним 02/06/20 Втр 17:33:06 1711046110
А в плюсах есть какой нибудь итератор типа

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

чтоб как бы был массив а потом уже в пустые ячейки как бы пихать - нету такого?
Именно надо такой поинтеризованый псевдомассив, библиотека на си как бы принимает это говно.
Аноним 02/06/20 Втр 17:42:04 1711058111
Двач, небольшой вопрос по поводу стилистики кода, правильно ли я понимаю что else if без дальнейшего else не нужно и нужно просто писать if?
Аноним 02/06/20 Втр 17:45:39 1711065112
>>1711058
Второй if будет всегда проверяться невзирая на первый. else if не будет, если первый if возвратит истину.
Аноним 02/06/20 Втр 17:48:22 1711069113
Зачем Qt добавляет ключевое слово explicit MyWidget(QWidget *parent = nullptr); перед конструктором? Когда добавляю новый класс в проект.
Аноним 02/06/20 Втр 17:51:34 1711076114
>>1711046
Не понял. Что конкретно принимает библиотека?

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

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

>>1711058

Можно и так и так, зависит от принятого стиля и важно чтоб принцип повторялся глобально. Я именно так как ты написал и делаю, например.
Аноним 02/06/20 Втр 17:57:44 1711086115
>>1711069
Хуй его знает, надо если ты потом конструктор в коде определяешь иначе ошибка.
>>1711076
Ну ей надо const char args то есть вот эту вот хуйню {"start", ... "end", NULL}
Серединку я как бы из нормального массива строк заполняю., но крайние мне наверное лучше вписать
Аноним 02/06/20 Втр 17:58:50 1711087116
>>1711086
> Ну ей надо const char args
Аноним 02/06/20 Втр 17:59:23 1711089117
>>1711087
сука ебучая, там две звездочки короче, указатель на указатели.
Аноним 02/06/20 Втр 18:13:57 1711101118
Аноним 02/06/20 Втр 18:16:32 1711104119
Сап анон. Допустим, есть шаблонный класс с шаблоном <int N>, N типа порог, 1-10 может быть. Как сделать автогенерацию шаблонов фиксированного диапазона, чтобы выбирать нужный экземпляр исходя из например аргументов командной строки? Спп11
Аноним 02/06/20 Втр 18:19:22 1711108120
>>1711069
За тем же, зачем вообще нужны explicit конструкторы - для избежания неявных кастов.
Аноним 02/06/20 Втр 18:29:38 1711114121
>>1711104
switch (x)
{
case 1: foo<1>(); break;
case 2: foo<2>(); break;
...

А хули ты хотел. Это ж шаблоны - нужно или на этапе компиляции знать значение, или не выёбываться и передать обычным параметром.
Аноним 02/06/20 Втр 18:31:58 1711115122
>>1711114
Я хотел в коде. Ещё я помню какие-то приемы (писали давно итт), когда создаётся таблица синусов с какой-то точностью. Я считаю, что это ультимейт полезная фича для каких-нибудь МК без fpu
Аноним 02/06/20 Втр 18:44:50 1711123123
> Я могу вызвать приватные функции класса, если в родительском классе эти функции виртуальные и публичные
Язык пидор
Аноним 02/06/20 Втр 19:10:57 1711151124
>>1711115
Религия не позволяет написать 5-строчник, который печатает эту таблицу?
Аноним 02/06/20 Втр 19:23:40 1711171125
>>1710916
Если msvc, то похоже на баг. Недавно натолкнулся на похожее поведение
Аноним 02/06/20 Втр 19:24:19 1711173126
>>1710916
Ну а вообще, скорее всего ты не понял, как работает копирование
Аноним 02/06/20 Втр 19:29:14 1711176127
Как удалить элемент вектора по индексу?
Аноним 02/06/20 Втр 19:35:35 1711182128
Аноним 02/06/20 Втр 19:38:39 1711186129
Аноним 02/06/20 Втр 19:41:53 1711191130
>>1710916
>class(x, y, z)
Прототип удаляется после создания вектора.
Аноним 02/06/20 Втр 20:28:26 1711259131
Анон вовремя задал вопрос >>1711176
Переписываю код с шарпа, не могу освободить память из вектора. Пробовал clear() + shrink_to_fit(), но память не освобождается. Пробовал переинициализацию вектора делать - хуй. В векторе хранятся классы, в которых нет указателей/new, по идее же оно должно при выходе из области видимости освобождаться само. Что я делаю не так?
Аноним 02/06/20 Втр 20:32:24 1711262132
>>1711259
> Пробовал clear() + shrink_to_fit()
Значит у тебя что-то другое течёт. Как потребление памяти измеряешь?
Аноним 02/06/20 Втр 20:32:40 1711264133
Аноним 02/06/20 Втр 20:43:54 1711276134
Аноним 02/06/20 Втр 20:47:43 1711282135
>>1711262
> Значит у тебя что-то другое течёт.
Бля, там нечему течь. Там внутри класса два std::byte и пустой вектор. Пробовал даже этот пустой вектор в деструкторе тереть кучей способов, но это явно не он. В методах указатели не использую, чтобы там что-то текло.
> Как потребление памяти измеряешь?
В VS в профайлер смотрю. Пробовал через диспетчер задач проверять, думал VS пиздит. Не вижу разницы с кодом очистки векторов или без.
Аноним 02/06/20 Втр 20:51:44 1711289136
>>1711259
shrink_to_fit не обязан освобождать.Попробуй swap с пустым вектором.

И вообще, как ты меряешь расход памяти? У тебя может освободиться память вектора, но остаться память выделенная под кучу (она просто будет помечена как свободная).
Аноним 02/06/20 Втр 21:30:25 1711348137
>>1711276
Хуйня квадратичная. Переделывай.
Аноним 02/06/20 Втр 21:41:48 1711358138
>>1711191
Он побайтово переписывает прототип на объекты вектора? Тогда понятно, почему у меня все объекты выдавали одинаковые значения на динамической памяти. (Утечка кстати была не из-за вызовов конструкторов, просто я набыдлокодил).
Аноним 02/06/20 Втр 21:44:15 1711362139
>>1711358
Вообще, странная логика, копировать байты, а потом удалять через деструктор, но, наверное, по другому было не сделать.
Аноним 02/06/20 Втр 21:45:44 1711368140
>>1711362
Блядь. Напиши нормальный конструктор копирования, который будет делать deep copy, тогда у тебя всё станет логично работать
Аноним 02/06/20 Втр 21:57:29 1711378141
>>1711368
Понял, но я просто убрал вектор, да и не было особого смысла комбинировать вектор и динамические массивы.
Аноним 02/06/20 Втр 22:00:21 1711380142
Аноним 02/06/20 Втр 22:32:11 1711394143
>>1711378
> я просто убрал вектор
Охуенно ты проблему решил. Заебись.
Аноним 03/06/20 Срд 00:27:06 1711507144
>>1711362
Вектор сам не вызывает деструктор, просто у твоего временного объекта class(x, y, z) закончилось время жизни, соответственно, после копирования он удаляется. Напиши отдельным оператором
class(x, y, z);
И у тебя здесь сразу вызовутся и конструктор, и деструктор.

Ну а вектор тупо скопирует значения через дефолтный конструктор копирования.
Аноним 03/06/20 Срд 04:00:14 1711584145
А ведь header-only библиотеки появились не от хорошей жизни. Достаточно просто скачать и положить в папку с инклудами вместо многочасовых поисков кривых cmake-файлов от васянов. А всё из-за того, что ни одна нормальная система сборки с поиском зависимостей не взлетела.
Аноним 03/06/20 Срд 08:17:24 1711614146
Аноним 03/06/20 Срд 10:32:48 1711647147
C++ справляется лучше C? Драйвера/сетевые приложения.
Аноним 03/06/20 Срд 10:54:43 1711660148
>>1711647
>Драйвера
Можно, но не нужно. Там нужен ассемблер.

>сетевые приложения.
Да.
Аноним 03/06/20 Срд 10:58:30 1711666149
Аноним 03/06/20 Срд 11:19:36 1711676150
>>1711647
Мне кажется, макакера на C++ найти легче, нафигачит код он быстрее. Эффективность продукт будет под вопросом. Больше опасность, что код поломается после ежегодной смены стандарта.
Аноним 03/06/20 Срд 11:43:00 1711698151
>>1711660
>Там нужен ассемблер
Чиво
Аноним 03/06/20 Срд 12:27:22 1711741152
>>1711647
Офк лучше. Можно писать используя сейвовые RAII врапперы для всех ресурсов, а не каждый раз вручную писать free(zalupa) с шансом забыть это сделать и получить утечку.
Аноним 03/06/20 Срд 12:43:53 1711755153
>>1711647

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

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

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

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

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

>>1711660

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

Не нужен. Толку от него ноль.
Аноним 03/06/20 Срд 12:49:36 1711760154
>>1711741
>ргифоувс эквифэн из ынисилизейсн
Аноним 03/06/20 Срд 13:06:26 1711785155
>>1711760
>ргифоувс эквифэн из ынисилизейсн

Ресурсенбелигунг ист инициализирунг!!!
Аноним 03/06/20 Срд 17:03:01 1712069156
>>1711755
Пиздец, ну и говно. Вместо того чтобы по человечески сделать класс и реализовать у него методы, просто пишут функцию которая принимает указатель на структуру. Вот например гипервизор написанный на плюсах https://github.com/wbenny/hvpp так вот он НАМНОГО читабельнее этой сипараши.
Аноним 03/06/20 Срд 17:14:57 1712075157
>>1712069
Дык в плюсах это так и реализовано. Можешь убедиться, попробовав вызвать метод в новом поток. Первый аргумент после класснейм::методнейм - указатель на класс.
Аноним 03/06/20 Срд 17:15:41 1712076158
>>1712075
>указатель на класс
на объект, конечно же
Аноним 03/06/20 Срд 17:22:56 1712083159
>>1712075
Я знаю про это потому и говорю, что вместо того чтобы взять плюсы и читабельно писать они эмулируют методы класса таким ущербным способом.
Аноним 03/06/20 Срд 17:49:49 1712101160
>>1711660
> ассемблер
пизданулся что ли, драйвера это модули к ядру, давай их на ассемблере хуярить в обход апи ага
>>1712083
Ты толщину кода и скорость замеряй, а не красоту. Может быть на плюсах и красивее но это работает так же а скорость исполнения кода меньше и место в памяти больше требуется, плюсы помоему только в гайке/BeOS в ядре используются.
Аноним 03/06/20 Срд 18:01:38 1712111161
>>1712101
Нихуя он не быстрее, вот тебе пример даже https://godbolt.org/z/-7dapo абсолютно одинаковый листинг выдает на идентичный код на си и на плюсах.
Аноним 03/06/20 Срд 18:05:46 1712113162
>>1712111
Ты бы еще хеллоу ворд принес
Аноним 03/06/20 Срд 19:38:21 1712194163
изображение.png 773Кб, 643x820
643x820
сап pr, сижу сейчас над задачей создания лайтового аналога headless браузера на qt, мне нужно просто по запросу перейти в яндекс выдачу, найти там нужный сайт и именно из яндекс выдачи на него перейти, чтобы засчитался просмотр, selenium, puppeter и тд. не покатит, давно бы на них сделал, нужно именно на qt(c++), ответов в гугле особо не нашёл, из документации к QWebEngine понял что там необходимо присутствие гуи, но мне нужно эмулировать действие пользователя обычным браузером, а headless нужен потому как буду закидывать этого бота на orange pi zero, где нет выхода под монитор, и не предусмотрен gui. Если у кого то есть идеи, отпишите пожалуйста, буду очень благодарен.
Аноним 03/06/20 Срд 20:40:04 1712301164
>>1712194
> мне нужно эмулировать действие пользователя обычным браузером
Как вот это понять?
Аноним 03/06/20 Срд 21:37:51 1712363165
>>1712301
Ну что ты набросился то пацана, ебучий волк, ей богу? Очевидно, симулировать, и очевидно, что не по тупости обосрался, а случайно.
Аноним 03/06/20 Срд 21:56:48 1712387166
>>1712194
WebKit используй, он приятнее будет. Страницу рендерить можно хоть прямо на бумагу, хоть в Dev null
Аноним 03/06/20 Срд 23:03:57 1712436167
>>1711755
> Конкретнее плес.
Собственные протоколы, децентрализованные сети и тому подобное.
Аноним 03/06/20 Срд 23:17:19 1712442168
Аноним 04/06/20 Чтв 01:05:02 1712509169
>>1712069
Сишка гораздо быстрее скомпилится, как минимум. Точнее, это пиздец критично бывает. А ещё она элементарная. Не знаю, кому как, а мне очень приятно смотреть на каноничный сишный код. Приятнее, чем на каноничный плюсовый, однозначно.
Аноним 04/06/20 Чтв 01:53:40 1712533170
>>1711755
Ебать, какое же гавнище там в кодовой базе, как будто первокурсник из ПТУ лабу залил.
Документации ноль, из всех щелей лезут меджики, при том что это один из повсеместно используемых модулей.
Вот зачем ты этот линк вкинул, как жить-то теперь
Аноним 04/06/20 Чтв 02:05:32 1712540171
>>1712533
> меджики
жопаболь галерной шлюхи, которую ебут за меджики
Аноним 04/06/20 Чтв 02:10:42 1712542172
>>1712540
Твоя мать вкатилась в айти? Тогда и ты сможешь скорее всего, хуесос, не расстраивайся)))
Аноним 04/06/20 Чтв 02:55:58 1712553173
>>1712542
>популярный модуль вовсю юзает меджики
>галерный раб горит
да ты уже вкатился в айти)))
Аноним 04/06/20 Чтв 02:57:02 1712554174
>>1712553
Что дозволено Юпитеру, не дозволено быку.
Аноним 04/06/20 Чтв 03:48:46 1712564175
>>1712553
Еще раз напиши про меджикии/галеру, долбаеб
Горит тут только жопа твоей мамаши от трения моего хуя об ее дыру))
Аноним 04/06/20 Чтв 03:54:38 1712567176
>>1712564
>МНЕ НЕ ГОРИТ!1
ясн))
Аноним 04/06/20 Чтв 05:12:46 1712583177
>>1712363
Я ни на кого не набрасывался, просто я не понял что тебе надо.
Без гуйни перейти куда то надо (то есть цепочку запросов сделать как от клиента) лучше наверное пхп взять или node-js просто потому что у них работа с сетью из коробки есть, зачем тебе плюсы с qt.
Qt - это гуй
Аноним 04/06/20 Чтв 08:40:13 1712626178
Аноним 04/06/20 Чтв 08:40:35 1712627179
>>1712583
и я просто рофлю хуёво
Аноним 04/06/20 Чтв 10:21:16 1712661180
>>1712533
Ну а хуле. Это во-первых код драйвера, во-вторых на ленупс, в-третьих для гпу. Любого из этих пунктов было бы достаточно, чтоб код выглядел как говно.
Аноним 04/06/20 Чтв 10:36:21 1712666181
>>1712583
Дот нет по-твоему видимо тоже гуй.
Аноним 04/06/20 Чтв 11:07:32 1712681182
>>1712666
тян?
В душе не ебу как там с дотнетом, кьюте это инструмент созданный под определенную задачу - написание платформонезависимых гуев. А так - конечно, можно и микроскопом гвозди забивать.
Нет если там можно чисто отдельную библиотеку таскать с вот этими QString QObject QMap то это круто, но это просто удобная библиотека, как jquery
Аноним 04/06/20 Чтв 11:30:09 1712698183
Сап, крестач. Работаю почти два года после окончания уника. Работа связана с нейронками и компьютерным зрением.
На текущий момент всё вообщем-то устраивает, но возникла мысль открыть резюме и походить по собеседованиям ради интереса, узнать свой текущий уровень и вдруг может перекатиться на мидловую позицию. До первой работы было только одно (неудачное) собеседование по плюсам.

Собственно вопросы:
Что думаете насчёт этого?
Что если HR с работы увидит моё резюме ( мы сейчас в очень активном поиске программистов)?
Что отвечать на собеседовании если спросят что не устраивает в текущей работе? Почему решили придти на собеседование/почему хотите работать у нас?
Аноним 04/06/20 Чтв 11:35:39 1712704184
>>1712681
Кароч ты с ним не работал, проехали.
Аноним 04/06/20 Чтв 12:00:14 1712720185
>>1712069
Приходилось кодить и так и так, для меня уже нет разницы си или кресты, потому что в проектах такого уровня очень редко есть серьёзное ООП. Это вам не курды круды.

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

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

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

>>1712436
А, ну это я бы только на крестах делал.

Аноним 04/06/20 Чтв 12:04:59 1712724186
>>1712583
ето я задавал вопрос, суть в том, что нужно сделать продвижение сайтов, тоесть ботярой просто накручивать просмотры, по городу расставлены orange pi zero на которых стоит собственная сборка линукса с кросскомпилятором и сборкой qt, у одноплатника нету выхода под монитор, он будет просто сервером откуда мой бот должен зайти на сайт и обойти защиту яндекса, я пробовал это делать с помощью просто гет запросов, но запроса который у яндекса отсеивает ботов я не нашёл, да и мои регулярки при изменении кода выдачи яндекса слетают нахуй, поэтому решил создать headless браузер который думаю справится с этим идеально, и увидел что QWebEngine на хромиуме, так как все одноплатники берут инфу о сайте и времени когда нужно будет зайти из одного бд, нужно сделать и бота который работает на QT, на котором работает уже бот для гугла. Было бы можно на node js я бы давно скрипт заебашил, это ведь не трудно, а вот заставить вебэнжин работать без гуя сложновато, по крайней мере для меня.
Аноним 04/06/20 Чтв 12:07:07 1712725187
>>1712387
>>1712724
я не уверен что мне нужно рендерить в если гуя нету, я думаю мб задать якобы размеры экрана в QWebEngineSettings и скриптово кликать лкмом по ссылкам нужным, если это возможно, тогда нужно чекнуть позиционку по координатам ссылок и настроить поиск нужной в выдаче.
Аноним 04/06/20 Чтв 12:14:11 1712734188
>>1712583
>Qt - это гуй

Не совсем. Это general purpuse framework фреймворк. Gui это что-то вроде wxwidgets
Аноним 04/06/20 Чтв 12:18:21 1712738189
изображение.png 6Кб, 288x110
288x110
>>1712734
ну как минимум изза этого можно сказать что кутэ не только гуи
Аноним 04/06/20 Чтв 12:25:53 1712745190
>>1712725
Вообще, съеби в SEO-тред.
ненавижу твою ебучую профессию, весь интернет превратили в помойку
Аноним 04/06/20 Чтв 12:32:08 1712754191
>>1712745
да я студент ебучий, у меня экзамен, препод сказал эту хуергу сделать, он мне блять вообще на вротпрессе предлагал сайты делать, я попробовал и проблевался нахуй, мне эту хуйню с ботом закончить и я никогда в жизни в веб ебаный не полезу.
Аноним 04/06/20 Чтв 12:33:25 1712755192
>>1712738

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

Qt это вообще в принципе хороший пример того, что бывает когда нарушается юникс вэй...
Аноним 04/06/20 Чтв 12:36:20 1712759193
Screenshot20200[...].png 1868Кб, 1920x1080
1920x1080
>>1712755
та я на кедах неон сижу, я с головой просто в qt можно сказать)
Аноним 04/06/20 Чтв 12:42:41 1712768194
>>1712755
>Qt это вообще в принципе хороший пример того, что бывает когда нарушается юникс вэй
Поясни?
Аноним 04/06/20 Чтв 13:05:45 1712789195
>>1712768
Ну смотри, чел, есть такая философия разработки, называется она unix way. И одна из установок - делайте маленькие, простые, прозрачные программы, которые взаимодействуют друг с другом через понятный интерфейс.

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

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

Просто сейчас нет нормальной библиотеки для кроссплатформенных гуёв. Либо электрон, либа эта параша.
Аноним 04/06/20 Чтв 13:10:13 1712798196
15821045343120.jpg 77Кб, 806x720
806x720
Есть поле класса std::string
В одном потоке я изменяю эту переменную и считываю. В другом потоке просто считываю. Будет ли это потокобезопасно? Могу в первом потоке сделать просто запись без проверки.
Аноним 04/06/20 Чтв 13:12:12 1712806197
Аноним 04/06/20 Чтв 13:12:14 1712807198
>>1712789
ну да, я пишу год на qt, вернулся к плюсам и понимаю что многих вещей базовых не могу быстро вспомнить, постоянно хочется сделать QString->number(a) или для чего то ещё заюзать готовые интерфейсы, отвыкаешь что всё делать нужно руками и привыкаешь что для любого действия есть велосипед.
Аноним 04/06/20 Чтв 13:15:58 1712813199
>>1712798
Очевидно, что не будет. Поток который изменяет может увеличить размер строки, тем самым старая память освободится. А если в это время другой поток читает эту строку, то после освобождения памяти он вылетит.
Аноним 04/06/20 Чтв 13:19:43 1712825200
>>1712798

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

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


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

Причём хуёвый. Мне после работы с ASIO qt network показался такой ересью, шо ебал его маму рот.
Аноним 04/06/20 Чтв 13:21:38 1712830201
>>1712825
вот и мне сейчас либо через вебенжин либо через нетворк сделать до конца июня это говно дял яндекса и приступать к диплому)) хз чё делать, наверное буду симулировать монитор)
Аноним 04/06/20 Чтв 13:22:22 1712833202
>>1712825
Просто на стековерфлоу увидел подобный ответ, поэтому был не уверен стоит ли писать мютекс.
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
Аноним 04/06/20 Чтв 13:25:56 1712839203
>>1712833
>In MSVC, std::string is no longer reference counted shared pointer to a container.

Бля, я поржу если потокобезопасность строки теперь implementation defined
Аноним 04/06/20 Чтв 13:27:46 1712843204
>>1712839
Так можно как-то подтвердить эти данные, может документация какая-то есть?
Аноним 04/06/20 Чтв 13:31:34 1712850205
>>1712843
Если бы string был потокобезопасным, то это наверное бы на cppreference указали? Да и вообще помоему в stl нет ни одного потокобезопасного контейнера изкаробки, какой шанс на то, что string вдруг станет таким?
Аноним 04/06/20 Чтв 13:32:47 1712853206
Ананасы приём!

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

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

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 >;

Каким бобразом это делается?
Аноним 04/06/20 Чтв 13:33:37 1712856207
>>1712843
Не знаю, я пытался гуглить, там написано что VC++ strings не являются reference counted shared pointer, но там не сказано что это делает их thread safe. Просто типа COW - плохо для мультитрединга. Ну это всё
Аноним 04/06/20 Чтв 13:36:50 1712859208
> to avoid multithreading problems

Это не обязательно значит что проблема была именно с тем что строки были не тредсейф, скорее с оптимизацией.
Аноним 04/06/20 Чтв 13:40:14 1712863209
>>1712853

По моему у тебя какой-то не правильный класс :^)
Аноним 04/06/20 Чтв 13:47:25 1712868210
>>1712863
Лучше бы на вопрос ответил.

Неужели на бабахать typedef ?
Аноним 04/06/20 Чтв 15:26:10 1712987211
Front.jpg 69Кб, 350x350
350x350
Можно ли оптимизировать такую конструкцию? Часто вызывается функция, которая делает следующее:

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

А то получается, что этот if вызывается почём зря, если работа уже сделана. Тут одна проверка bool переменной, но все же как-то нехорошо. Было бы круто вообще этот кусок кода выкинуть после выполнения. В прочем, для этого if и нужен, проще скорее всего не сделать. Но вдруг я чего-то не знаю.
Аноним 04/06/20 Чтв 15:49:09 1713012212
Аноним 04/06/20 Чтв 15:54:07 1713020213
>>1712987
Можно конечно, но нахуя?
Сделай 2 функции, в одной будет этот блок с редким кодом, а в другой нет. Создай глобальный указатель на первую функцию и после выполнения ее просто измени значение указателя на вторую функцию. Вызывать соответственно всегда тоже по указателю.
https://ideone.com/fL4R0y
Аноним 04/06/20 Чтв 16:19:04 1713045214
1591276744477.jpg 41Кб, 959x690
959x690
Как это работает?
Аноним 04/06/20 Чтв 16:38:19 1713078215
>>1713045
Ты имеешь в виду что do while врапнуто вокруг case? Ну чел бывает...
Аноним 04/06/20 Чтв 16:40:53 1713087216
>>1713045
if (n & 1) goto x0; else goto x1;
x0:
do{
i++;
x1:
i++;
}while(--n>0);
Аноним 04/06/20 Чтв 17:11:25 1713120217
>>1713045
> Как это работает?
Вопреки здравому смыслу. Сразу видно, что сишка - это в первую очередь сахарок для ассемблера, а не высокоуровневый язык.
Аноним 04/06/20 Чтв 17:11:38 1713121218
>>1712789
> Просто сейчас нет нормальной библиотеки для кроссплатформенных гуёв. Либо электрон, либа эта параша.
А когда они были?

По поводу электрона и прочих это эпичный обсер, казалось бы html/js/css не зависят от платформы но блять на каждую сборку под каждую ос собирать 200мб файл с браузером внутри это пиздец товарищи + на других архитектурах еще более не очевидно, поэтому сама идея пока нежизнеспособна, вот если бы в каждй ос стоял этот ебучий v8 как платформа для запуска таких приложений, как гарантия что он на клиенте есть, можно было бы эти приложения не собирать под каждую платформу а просто передавать как есть в чем собственно и должен быть их плюс, но сейчас этого тупо нет.
Аноним 04/06/20 Чтв 17:26:28 1713135219
image.png 216Кб, 1841x1123
1841x1123
>>1713121

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

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

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

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


Охуенно, зашёл блять на страничку а там про негров.
Аноним 04/06/20 Чтв 17:26:43 1713136220
>>1713121
Зато почти везде есть браузер. Единственный реальный способ сейчас сделать пооностью кроссплатформенный гуй -: сделать приложение в виде обычного сайта и всем давать на него ссылку. Ну или везде ставить локальный веб-сервер, как питоний jupyter-notebook.
А на электрон забить нахуй, в конечном итоге он ничем не лучше Qt, но намного прожорливее. Сама идея запускать по браузеру на каждую мелкоприложуху никак в 2020 не вписывается. Может, лет через 5-10.

мимо
Аноним 04/06/20 Чтв 17:32:01 1713144221
>>1713136

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

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

В то время как qt чуть ли не на тостере работает
Аноним 04/06/20 Чтв 17:43:42 1713157222
>>1713045
После case 0: нет break;, поэтому цикл без затруднений запускается и i = 4;
Аноним 04/06/20 Чтв 17:49:12 1713160223
Аноним 04/06/20 Чтв 17:53:03 1713162224
>>1713160
n = 3
i = 0

n = 2
i = 1

n = 1
i = 2

n = 0
i = 4
Аноним 04/06/20 Чтв 17:57:27 1713165225
Вы пользуетесь UML?
Аноним 04/06/20 Чтв 18:02:08 1713168226
>>1713162
Хуле ж ты споришь? i = 5. После свитча код переходит к case 1, и i инкрементируется. А дальше цикл.
Аноним 04/06/20 Чтв 18:07:16 1713174227
>>1713168
Тебе --n что-нибудь говорит?
Аноним 04/06/20 Чтв 18:10:58 1713177228
>>1713144
А что электрон? Я говорю про обычные нативные браузеры, а не про это говнище.
Аноним 04/06/20 Чтв 18:24:17 1713190229
>>1713177

Ну хз, тенденция идёт наоборот. Нативные браузеры в мобилках - говно. Народ всё равно в vk, facebook, instagram и даже в банковской хуйне сидит через приложения, а не через бровсер. Да и я тебе скажу сделать мобильное приложение которая api-ху дрючит не сложнее чем сделать сайт который мобайл френдли.
Аноним 04/06/20 Чтв 18:34:29 1713203230
>>1713190
>Народ всё равно в vk, facebook, instagram и даже в банковской хуйне сидит через приложения, а не через бровсер.
Не так давно перешел с обычного телефона на смарт и меня это как раз поразило.
Аноним 04/06/20 Чтв 18:37:24 1713207231
>>1713190
И в результате у юзера на телефоне вместо одного браузера стоит несколько десятков однообразных приложений доставок, магазинов, клубов, кальянных, суш, баров, кафешек занимающих дохуя места и запускаемых раз в полгода. Не знаю, что будет в будущем, но текущее положение дел явно не выглядит здоровым.
Ну, ещё есть тенденция делать "гибридные" приложения, по сути тот же подход электрона, но для мобилок.
Аноним 04/06/20 Чтв 18:39:22 1713210232
>>1713012
В чем рофел? Кроме того, что можно "== 1" не писать, если эта функция генерирует равномерное распределение?

>>1713020
Хм, интересно, спасибо. Не подумал об этом. Но лучше оставить как есть, наверно, эта микрооптимизация не стоит дополнительного запутывания кода.
Аноним 04/06/20 Чтв 19:15:27 1713238233
>>1713203

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

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

>>1713210
Рофел с самого факта использования ГСЧ
Аноним 04/06/20 Чтв 19:18:28 1713239234
https://godbolt.org/z/uYapRE
Есть две структуры отснаследованные от кучи других, при этом у них есть одна общая.
Как наиболее правильно приравнять эту общую, чтобы не сломались какие-то ссылки, указатели или любые другие данные?
Аноним 04/06/20 Чтв 20:09:46 1713287235
>>1713238
А как ещё, если нужно именно случайное срабатывание, а не на n-й раз?
Из идей у меня только миллисекунды от текущего времени брать, но это как-то костыльно. Хотя, работать может и быстрее, наверно.
Аноним 04/06/20 Чтв 23:03:58 1713464236
>>1712789
Я не сильно много делал гуи, но сейчас, я думаю, наилучший путь - веб-морда и REST с mvc паттерном. Qml так-то тоже идёт путем mvc, мне это нравится, хорошо отвязывается бэкэнд от гуя со свистоперделками и анимацией, и отличная кроссплатформенность вдобавок
Аноним 04/06/20 Чтв 23:13:00 1713479237
>>1713165
Я както решил порисовать, но понял, что в 2к20 сильно использовать ООП (а uml как раз про это) не самый здравый подход. Сейчас мой код имеет много функциональщины и композиции с простыми, мелкими и понятными функциями, и с достаточно простыми типами, и юмл избыточен, так как архитектура проста, а вся связь описана в @brief
Аноним 04/06/20 Чтв 23:22:14 1713493238
>>1713287
Используй std::uniform_real_distribution, диапазон 0:1, сгенерированную вероятность сравнивай с вероятностью твоего говна (у тебя 1e-6), это будет правильный подход.


Аноним 05/06/20 Птн 00:08:54 1713533239
Залейте книги в шапку. Половина ссылок нерабочие
Аноним 05/06/20 Птн 01:57:22 1713626240
Аноним 05/06/20 Птн 07:23:36 1713680241
>>1712987
> if вызывается почём зря
Процессор оптимизирует эту хуйню (branch prediction). Если тебя волнует оптимизация то лучше постараться уменьшить количество вызовов ГСЧ - даже если у тебя там простой линейный конгруэнтный или (в идеале) xorshift - они быстрые но все равно вносят задержки. Один из вариантов - сразу сгенерировать номер итерации на которой на которой нужно сделать редкую хуйню, а в цикле просто инкрементить счетчик. Но тут нужно осторожно так как два этих подхода не равноценны - у них разное распределение, подход с заранее вычисленной итерацией гарантирует максимум итераций через которую произойдет срабатывание тогда как твой подход таких гарантий не дает. Поэтому смотри по производительности. Если ускорять не нужно - то лучше использовать твой подход.
Аноним 05/06/20 Птн 08:22:12 1713694242
>>1713680
> Процессор оптимизирует эту хуйню (branch prediction).
Только после нескольких исполнений и если бранчь обсирается то начинает профилировать заного.

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

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

сбственно:

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

то есть регистр перевернется один раз и все. Но к твоему случаю это не очень подходит, подправь алгоритм.
Аноним 05/06/20 Птн 10:15:50 1713732243
>>1712987
Можно разве что добавить ХИНТ УШАМИ unlikely.

>>1713020
Непрямой переход обойдется дороже, чем статическое ветвление.
Аноним 05/06/20 Птн 11:38:13 1713774244
>>1713464

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

У Qt хороший гуй, я бы даже сказал самый лучший на рынке среди всех. Лучше gtk, лучше uwp, лучше электрона, лучше чего угодно на свете. Но есть одно "но", Qt это не библиотека для гуя, это general purpuse framework. Но вот кроме гуя мне отних больше нихуя не надо, а они наворотили кала и экосистемы, переписали весь stl, какой-то свой DSL на макросах нахуярили. Зачем?
Аноним 05/06/20 Птн 11:42:25 1713779245
>>1713774
Потому что стл говно, аналоги от кт лучше.
Аноним 05/06/20 Птн 11:49:23 1713788246
image.png 83Кб, 1200x1200
1200x1200
>>1713779

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


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

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

Если честно, кресты так плохи что я бы на этом писал...
Аноним 05/06/20 Птн 11:55:33 1713799247
image.png 51Кб, 1200x120
1200x120
Но там вот эта хуйня
Аноним 05/06/20 Птн 12:46:26 1713851248
>>1713788
> Только если у тебя C++03. В новых крестах stl-контейнеры в разы лучше q-контейнеров
Кулстори. В стл и половины функциональности нет. После qstring стд та еще боль
Аноним 05/06/20 Птн 13:10:20 1713875249
>>1713774
Ну так отвяжи свою суперлибу от qt. Нужен гуи - используется qt, не нужен - не используется. Предположу, что консольная версия vlc плеера (я ее использую для стрима юсб камеры) вообще не использует qt
Аноним 05/06/20 Птн 13:25:11 1713885250
>>1713851

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

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

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

>>1713875
>Ну так отвяжи свою суперлибу от qt.
>Нужен гуи - используется qt, не нужен - не используется

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

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

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

Но опять же, так делается не столько от хорошой жизни, а от того что qt пидорское говно, но другого интерфейса нет.




Аноним 05/06/20 Птн 14:00:24 1713898251
Мне вот кажется недостатком qt, что надо тащить эти тяжелые либы и небольшая программа весит 100мб.
Аноним 05/06/20 Птн 14:34:23 1713909252
>>1713898
>небольшая программа весит 100мб
Если статически слинковать - меньше 20Мб. С upx - около 10. Если новые плюшки не нужны, то 4.8 около 5Мб c upx занимает.
Аноним 05/06/20 Птн 14:34:58 1713910253
>>1713909
Можно гайд по этому всему?
Аноним 05/06/20 Птн 14:42:47 1713913254
>>1713788
>В новых крестах stl-контейнеры в разы лучше q-контейнеров
Чем лучше? В qt все гораздо удобнее, человекоориентированнее. Например, у QMap есть метод value(key, defaultValue), который вернет дефолтное значение, если ключ не найден. У std::map только find, возвращающий итератор.
Аноним 05/06/20 Птн 14:47:06 1713914255
>>1713910
>Можно гайд по этому всему?
В инете куча инфы, если гуглить "qt статическая линковка" (хотя и устарелой, большинство статей по Qt4, но принцип должен быть понятен).
UPX - утилита для сжатия exe: https://github.com/upx/upx/releases
Аноним 05/06/20 Птн 14:48:00 1713915256
>>1713914
Да, UPX умеет и dll сжимать. То есть даже если динамически линкуешься, можно размер поменьше сделать.
Аноним 05/06/20 Птн 15:02:50 1713921257
Screenshot2020-[...].png 403Кб, 1191x3545
1191x3545
Кто-нибудь пытался попасть в хуавей?
Заинтересовала обработка сигналов. Что для этого нужно знать и уметь?
Аноним 05/06/20 Птн 15:16:32 1713936258
>>1713921
Дохлый номер. Там китайцы работают в основном, и белых они не любят.
Аноним 05/06/20 Птн 15:20:39 1713944259
>>1713936
>Там китайцы работают в основном, и белых они не любят
В московском R&D центре в основном только китайцы работают?
Вроде как слышал, что наших студентов в хуавей приглашают работать.
Аноним 05/06/20 Птн 15:25:57 1713953260
Аноним 05/06/20 Птн 15:53:22 1713985261
>>1713936
Пиздеж, кстати. Но без нормальной вышки туда попасть будет сложно, они на собесах трепетно к этому относятся. И английский надо знать на уровне повыше "я прочитал документацию с гуглтранслейтом" знакомый пистех на этом прогорел.
Аноним 05/06/20 Птн 16:38:21 1714069262
>>1713921
В Нижнем Новгороде 90к платят стажёрам, кстати. Жаль больше не нанимают.
Аноним 05/06/20 Птн 19:25:46 1714308263
Аноним 05/06/20 Птн 20:10:32 1714354264
Windows/Cmake/Qt/Winapi - Двач, можете подсказать как мне узнать что в моём коде жрёт производительность? Программа не маленькая и несколько запутанная, я никогда ничем подобным не занимался, но слышал что есть какое-то профилирование, но в Qt Creator на Windows по всей видимости оно не доступно, а в visual studio из-за cmake я Qt проект перекатить не могу. В общем можете подсказать что делать?
Аноним 05/06/20 Птн 20:20:44 1714366265
Аноним 05/06/20 Птн 20:27:38 1714376266
Что происходит, когда функция не возвращает значение, хотя должна
Аноним 05/06/20 Птн 20:39:18 1714390267
>>1714376
Программа не компилируется?
Аноним 05/06/20 Птн 20:40:57 1714394268
Аноним 05/06/20 Птн 20:54:53 1714409269
>>1714390
>>1714394
Код не мой, но по словам человека , его писавшего, он работает
Аноним 05/06/20 Птн 20:55:21 1714410270
1591379719322.jpg 51Кб, 556x408
556x408
>>1714409
Забыл пик прикрепить
Аноним 05/06/20 Птн 20:59:11 1714418271
>>1714410
Там по чистой случайности будет работать, как если бы был return. foo(a-1) оставит результат в регистре и он вернется.
Аноним 05/06/20 Птн 21:01:39 1714426272
>>1714418
Странно, что у него vs его собрала, а когда я пытался это в оноайн компилятор загнать меня послали нахуй
Аноним 05/06/20 Птн 21:11:15 1714444273
>>1714426
Такая хуйня не должна компилиться, вангую он и не пытался сбилдить
Аноним 05/06/20 Птн 21:13:56 1714449274
>>1714444
Я почему и спрашиваю. Оно работает
Аноним 05/06/20 Птн 21:17:54 1714456275
>>1713985
Неужели бывают пистехи, которые не умеют в англ?
Аноним 05/06/20 Птн 21:21:22 1714465276
Аноним 05/06/20 Птн 21:26:52 1714480277
>>1714354
> в visual studio из-за cmake я Qt проект перекатить не могу
Можешь. Студия умеет в cmake.
Аноним 05/06/20 Птн 21:29:32 1714491278
>>1714449
Варнинг мсвц все-таки выдает, хотя с точки зрения самого языка это нихера не варнинг, а ошибка.

>>1714465
Ну да, зачем запрещать такие выходки, лучше просто UB пометить и все, а то вдруг еще нормальный язык создадим
Аноним 05/06/20 Птн 21:31:26 1714493279
>>1714449
По чистой случайности же. В дебаге скорее всего просто в регистре последнее вычисленное значение остаётся, оно и возвращается. Попробуй в конце "вернуть" что-то больше твоего инта и пиздец будет даже на дебаге. В релизе компилятор посмотрит, что ты еблан и либо вернет то же самое, что и другой return, либо вообще какую-нибудь хуйню. УБ всё-таки
Аноним 05/06/20 Птн 21:33:39 1714495280
>>1714480
Только как это запустить с Qt, никому не известно.
Аноним 05/06/20 Птн 21:35:22 1714497281
Сука, какое же говно это ваше системное программирование, сука три дня изучал ебаное апи этого mpv, все через асинхронные вызовы зделал ебать, никаких устаревшихфункций или событий не использую, и что в итоге?

start
stop

start
stop

start
loading
play...

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

в итоге там че то делал уперся в какую то хуйню, тут какая то хуйня, там это ебаное метопрограмирование фокусы начало показывать (где то ссылку на переменную поставил она динамично меняется и че то не так все работает, но что и как найти тяжело в этой лапше жопу бомбит пиздец лол).
В общем ебатни много а прогресса мало.
Аноним 05/06/20 Птн 21:36:23 1714500282
Screenshot from[...].png 19Кб, 435x274
435x274
>>1714410
Действительно, g++ компилирует. Функция возвращает значение последней строки функции как в Ruby, если компилятор не выкинет его в процессе оптимизации .
Ну и язык, они кусок кода ахуительней другого просто.

Вывод пикрил:
5 4 3 2 1
foo returns 364
Аноним 05/06/20 Птн 21:38:35 1714504283
>>1714500
Что-то я не понял, return разве не break'ает рекурсию?
Аноним 05/06/20 Птн 21:40:41 1714509284
>>1714497
Так есть же флаги для того, чтобы открывалось сразу
Аноним 05/06/20 Птн 21:40:55 1714511285
>>1714500
Как это вообще в компилятор дошло?
Аноним 05/06/20 Птн 21:41:51 1714514286
Что прочитать про регистры, стек и тд?
Аноним 05/06/20 Птн 21:44:50 1714516287
>>1714504
return завершает текущую функцию и управление возвращается в то место, откуда она была вызвана. Если foo вызывает bar, то foo останавливается и выполняется bar. После того как bar завершилась (например, с помощью return), выполняется код, который идет в foo ниже вызова bar. Так должно быть, хотя теперь я уже ни в чём не уверен.
Аноним 05/06/20 Птн 21:45:36 1714518288
>>1714514
Начало любой книжки по ассемблеру.
Аноним 05/06/20 Птн 21:49:01 1714525289
Аноним 05/06/20 Птн 21:49:02 1714526290
Даже если не указать return, в ассемблерном виде у функции будет ret (как если бы функция было просто void), другое дело что возвращаемое значение будет неопределенным, тк если нет return, содержимое eax/rax не будет изменено, и в качестве ответа вернется то, что будет там в этот момент
Аноним 05/06/20 Птн 21:52:26 1714536291
>>1714526
В изначальном примере работало потому, что вычисления в функции никак не зависели от возвращаемого значения. С факториалом такой фокус уже не пройдет
Аноним 05/06/20 Птн 21:53:16 1714537292
>>1714525
А можно сразу интеловскую доку.
Аноним 05/06/20 Птн 21:55:41 1714542293
Не нашла треда по алгоритмам, поэтому спрошу здесь. Как использовать одномерный массив в качестве двумерной матрицы? Не пойму, как найти номер элемента, используя i, j и, собственно, саму размерность.
Аноним 05/06/20 Птн 21:59:36 1714547294
>>1714495
Что значит запустить? Запустить приложение? Как обычно, скопировать DLL рядом с exe.
Запустить сборку? Без задней мысли открываешь папку с cmakelists.txt и фиксишь ошибки
Аноним 05/06/20 Птн 22:00:11 1714548295
>>1714542
i % N + j, например. N - количество строк или столбцов.
Аноним 05/06/20 Птн 22:00:45 1714550296
7.jpg 5Кб, 200x200
200x200
Аноним 05/06/20 Птн 22:13:48 1714581297
>>1714548
Спасибо, не поняла. Сделала по-старинке. Сначала +1 к каждой метке, потом -1. Кляти нули.
>>1714550
Брезгуешь сельдью?
Аноним 05/06/20 Птн 22:15:44 1714585298
>>1714550
Извини, я с анальниками-программистами не общаюсь.
Аноним 05/06/20 Птн 22:28:21 1714599299
Аноним 05/06/20 Птн 23:14:00 1714645300
изображение.png 20Кб, 517x410
517x410
Почему это работает?
Аноним 05/06/20 Птн 23:18:55 1714650301
>>1714645
А что тут не так? Перегруженную операцию можно юзануть и так и так.
Аноним 05/06/20 Птн 23:24:28 1714656302
>>1714650
Почему можно? Просто я когда видеоурок смотрел, долго вдуплял, почему cout << *pointer; выводит значение ptr без обращения к методу operator.
Аноним 05/06/20 Птн 23:29:08 1714660303
>>1714585
Что за мемчик? Где-то уже это слышал.
Аноним 05/06/20 Птн 23:33:12 1714662304
>>1714656
Просто потому, что альтернативный синтаксис для этого. Это как arr[x] и ★(arr + x)
Ну, ещё через синтаксис operatorX можно определить указатель на такой метод:
int (★A::fp)(int) = operator★;
С "сокращённым" синтаксисом так не получится.
Аноним 05/06/20 Птн 23:34:51 1714664305
Аноним 05/06/20 Птн 23:36:31 1714665306
Аноним 05/06/20 Птн 23:37:46 1714668307
Аноним 05/06/20 Птн 23:40:48 1714671308
>>1714668
А, я понял, "мы вам перезвоним". Ну тут ты ошибся про нормальность, я там не сижу, потому что знаю, что никуда не возьмут.
Аноним 06/06/20 Суб 01:19:48 1714727309
>>1714376
У меня всё падает с -O2, -O3 или -O1 и работает с -O0 - и всегда так было.
Твой код так же и нихуя там не остаётся в регистре. По этой причине я не выключаю -O1 никогда.
Аноним 06/06/20 Суб 03:41:05 1714763310
Если код ведёт себя по-разному на разных флагах оптимизации, то в нём дохуя UB.
Аноним 06/06/20 Суб 03:56:21 1714766311
>>1714763
> в нём дохуя UB
но ведь код на плюсах - это UB по определению
Аноним 06/06/20 Суб 04:55:29 1714770312
>>1714509
Какие флаги? Подскажи плз
Аноним 06/06/20 Суб 04:58:44 1714771313
>>1714763
Это значит оптимизации компилятора нерабочие и ломают программы.
Аноним 06/06/20 Суб 05:23:48 1714772314
>>1714771
Если функция не возвращает значение когда должна - то это ub, а не проблема в флагах - потому что компилятор никаким образом не может догадаться какое значение вместо возвращаемого подставить.

Вообще разработчикам компилятора стоило бы просто сделать так, чтобы компилятор выпадал с ошибкой при подобном вместо предупреждений на который никто не смотрит. Сразу треть ub в окно вылетит.
Аноним 06/06/20 Суб 06:08:00 1714776315
>>1714772
Когда ты точку с запятой забыл поставить, компилятор высирает ошибку, хотя научить его распознавать когда они необязательны проще простого (в других же языках это как то делается), тем не менее это категорически никто не делает, потому что это нарушение стандарта языка. А тут значение забыл вернуть похуй компилируем.

Это явно где то проеб в компиляторе, а если еще оптимизации код ломают то еще и в них.
Аноним 06/06/20 Суб 10:46:06 1714819316
>>1714776
C++ это религия что ли?
Аноним 06/06/20 Суб 10:50:41 1714821317
>>1714819
Правила дорожного движения это религия? Или техника безопасности?

Пиздец блять и вот такие люди пишут код.
Аноним 06/06/20 Суб 12:24:51 1714856318
>>1714776
>А тут значение забыл вернуть похуй компилируем.
>
>Это явно где то проеб в компиляторе, а если еще оптимизации код ломают то еще и в них.

return не обязателен, если функция не возвращает управление.
Кунпелятор не может доказать, что управление возвращается, поэтому он только выдает предупреждение:
ex.cc:2:5: warning: control reaches end of non-void function [-Wreturn-type]
foo(a-1);
~~~^~~~~
Аноним 06/06/20 Суб 12:27:42 1714858319
>>1713913
Да ладно, у std operator [] вернёт default constructed
Аноним 06/06/20 Суб 12:56:11 1714879320
>>1714858
>вернёт default constructed
В Qt можно задавать это значение. То есть чтобы возвращалась -1 вместо нуля для интов.
Аноним 06/06/20 Суб 15:23:19 1714947321
>>1714856
> return не обязателен, если функция не возвращает управление.
А нахуя тогда вводили noreturn?
Аноним 06/06/20 Суб 16:19:54 1714990322
Для чего обычно используют weak символы?
Аноним 06/06/20 Суб 16:36:24 1714992323
>>1714856
>return не обязателен, если функция не возвращает управление

Славик, ты опять не принял таблетки? А ну иди сюда быстрей, мама сейчас даст тебе за щеку сосалку
Аноним 06/06/20 Суб 16:46:32 1715000324
>>1714947
За щеку тебе вводили. А функции, не возвращающие управление, существовали со времен деда Томпсона.
>>1714856
Дурачок, ты тоже прочитай и подумай.
Аноним 06/06/20 Суб 16:53:36 1715004325
>>1714992
>Дурачок, ты тоже прочитай и подумай.
goto >>1714856
Аноним 06/06/20 Суб 18:01:59 1715039326
В случае с 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);

Но как сделать без указателя?
Аноним 06/06/20 Суб 18:02:33 1715041327
>>1715000
Ну-ка, умник, объясни, зачем в языке нужна сущность, которая явно указывает на то, что функция не возвращает управление, но при этом по умолчанию оно так и работает, хотя это в 99.99% случаев является ошибкой.
Аноним 06/06/20 Суб 18:07:39 1715045328
>>1715041
Тоже не пойму auto до c++11.
Аноним 06/06/20 Суб 18:16:06 1715050329
>>1715041
Я тебе не могу этого объяснить.
Смысл твоего вопроса?
Аноним 06/06/20 Суб 18:55:29 1715061330
>>1714990
ЕМНИП символ, определенный как weak линкер не обматерит при переопределении, а заменит на новый. Типа есть какая-то дефолтная реализация, и ты можешь написать свою, а можешь не писать.
Видел такое один раз, в какой-то либе для МК.
Аноним 06/06/20 Суб 19:09:22 1715074331
Я могу полностью игнорировать предупреждение "taking address of packed member .. of class or structure .. may result in an unaligned pointer value" на х86, и это сообщение только для условных arm, верно?
Аноним 06/06/20 Суб 19:14:18 1715083332
>>1715074
Не обязательно.
На x86 тоже существуют alignment requirements, где required align for certain type is > 8

При этом вручную использовать всякие avx2 не обязательно, иногда достаточно попытаться собрать свой проект с -O3 и увидеть, что работать, внезапно, перестало, так как структуру ты запаковал, а компилятор всё равно охуел.
Аноним 06/06/20 Суб 19:14:19 1715084333
>>1715074
Невыравненное обращение может быть медленнее выраненного даже на 86-помойках.
Аноним 06/06/20 Суб 19:31:18 1715102334
image.png 25Кб, 566x349
566x349
Че за хуйня.
Аноним 06/06/20 Суб 19:35:14 1715105335
Аноним 06/06/20 Суб 20:15:13 1715139336
>>1715102
Это сишка? Так только на плюсах можно, в сишке обязательно писать "struct", "enum" и "union" перед типами. Ну ли определи синонимы через typedef.
Аноним 06/06/20 Суб 20:51:02 1715171337
>>1715084
Это я в курсе естественно.

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

>>1715102
Просто в объявлении пиши сразу typedef enum hgfsd{} hgfsd;
Аноним 06/06/20 Суб 21:02:20 1715176338
>>1715000
> А функции, не возвращающие управление, существовали со времен деда Томпсона.
Перестань говорить слова смысл которых не понимаешь.
Возврата управления нет, есть передача управления и возврат. Это машинные команды и к коду на с/c++ они не имеют отношения. В функциях на си ты пишешь ретерн что бы выплюнуть тип либо выйти из функции где то в середине кода. Машина работает ровно наоборот - ей надо говорить явно куда перейти (куда передать управление), а обратно она вернется сама. И так до тех пор пока не кончится вся цепочка исполнений идущая от ядра и машина просто встанет
Аноним 06/06/20 Суб 21:10:40 1715182339
15537846004820.jpg 198Кб, 640x640
640x640
>>1715176
Бля, развлечения каждый день.
В прошлом треде нас посетил O(2n)-шизик. А сейчас спешите видеть и обучаться подробностям "цепочки исполнения идущей от ядра". Но осторожней! Она закончится и машина встанет!
Аноним 06/06/20 Суб 21:15:24 1715186340
>>1715182
> O(2n)
Лол, 2к20 до сих пор кто-то этого не понимает?
Аноним 06/06/20 Суб 21:19:07 1715189341
>>1715182
Ну объясни свою версию как по твоему мнению процессор работает?
Аноним 06/06/20 Суб 21:26:23 1715195342
>>1715189
Ну во-первых, для возврата из функции нужен собственно адрес возврата, предварительно положенный в стек.
Остальную твою хуйню мне даже читать лень.
Аноним 06/06/20 Суб 21:33:18 1715199343
>>1715195
> мнум...пук..ну вот как бы ну вот там стек и там адрес возврата как бэ есть а там все дальше понятно.
А что будет если не будет адреса возврата на стеке?
Аноним 06/06/20 Суб 21:33:44 1715200344
>>1715171
>Он разве не должен сам скомпилировать без побочных эффектов с более медленной инструкцией загрузки невыровненных данных
Должен, но я в некоторых версиях gcc/g++ наступал на баг, когда он этого не делал
Аноним 06/06/20 Суб 21:34:31 1715203345
>>1715199
Будет jmp в неизвестные в каньоны древних нопов.
Аноним 06/06/20 Суб 21:39:29 1715206346
>>1715199
Пизда рулю и седлу будет.
Аноним 06/06/20 Суб 21:40:35 1715208347
>>1715203
> Будет jmp
Но ведь функции без "возврата управления"..
как же так? Машина получается все равно куда то возвращается и куда все возвраты идут?
Можешь не отвечать а идти сушить одежду от своей же струи мочи пущеной против ветра.
06/06/20 Суб 21:42:29 1715210348
Посоны, я короче написал функцию
void f()
{
}

И забыл в ней написать return. И короче КОМП РАСПИДОРАСИЛО.
Аноним 06/06/20 Суб 21:46:23 1715214349
15592113336280.jpg 12Кб, 355x309
355x309
15598175448610.jpg 24Кб, 640x559
640x559
Аноним 06/06/20 Суб 22:18:56 1715233350
Аноним 06/06/20 Суб 22:34:02 1715240351
>>1715233
Я согласен только с тем, что тупые терминологические разглагольствования ничем не лучше задрачивания всех паттернов и несколько десятков видов сортировок и деревьев. ООП-теоретики напридумывали кучу лишних терминов, когда в реальности их названия никто не вспоминает, и если кто-то написал код, попадающий под одно из определений, почти 100% он даже не вспоминал, как именно это называется.
Аноним 06/06/20 Суб 22:38:00 1715242352
>>1715240
Ладно, я перефразирую вопрос. Если я создаю в конструкторе класса объект другого класса через оператор new, то вложенный объект будет уничтожен вместе с объектом первого класса, верно?
Аноним 06/06/20 Суб 22:45:33 1715254353
>>1715242
Не обязательно, ты можешь потом указатель на объект второго класса передать куда угодно, и он там сохранится и будет валидным, когда объект первого класса удалится. Ну разве что сделать delete второго объекта в деструкторе.
Аноним 06/06/20 Суб 22:48:21 1715261354
>>1715254
Ну в qt там родительский виджет удаляет все связанное с ним дерево, я забыл уточнить эту деталь.
Аноним 06/06/20 Суб 22:49:38 1715262355
>>1715261
В Qt есть какой-то сборщик мусора. В общем случае в C++ его не будет.
Аноним 06/06/20 Суб 23:02:29 1715278356
Как сделать обновление программы? Не перекачивать же всю программу каждый раз.
Аноним 06/06/20 Суб 23:21:28 1715295357
>>1715278
Почему нет? Кликаешь, скачивается установщик (сам, без уебанских ссылок на сайт, открываемых в браузере), детектит, что программа установлена, и предлагает обновить. Далее - далее - готово. Ну или делать то же в фоне без участия пользователя, прога запустит установщик сама и завершится, а установщик сделает всё автоматически.
Аноним 07/06/20 Вск 00:06:15 1715330358
Можно как-то в vscode сделать нормальную подстветку файлов, которые попадают в configure_file (.in) или не париться и просто ставить язык C++?
Аноним 07/06/20 Вск 08:28:41 1715427359
>>1715208
>Но ведь функции без "возврата управления".. как же так?
Ну вот тебе самый простой случай, покормил.
f(){ f(); }
Аноним 07/06/20 Вск 10:17:36 1715448360
>>1715199
Что захочешь, то и будет. Ты же у нас на ассемблере пишешь в обход call, ret и прочих предрассудков для быдла. А конпелятор сишечки всегда кладет адрес возврата в стек перед вызовом и всегда делает return перед }, если ты сам не сделал, и в случае, если функция не void, вызывающий код получит содержимое rax.
Аноним 07/06/20 Вск 10:21:11 1715450361
>>1715186
хуй знает, а чем ты, но из определения вот этой хуйни O(...) следует, что никакие константные множители не меняют значения, стало быть, излишни
Аноним 07/06/20 Вск 10:47:30 1715458362
как легче всего работать с графикой в крестах?
Аноним 07/06/20 Вск 11:07:57 1715464363
>>1715458
Вариантов много. Смотря что тебе нужно. Qt, opengl, sfml и тд.
Аноним 07/06/20 Вск 11:17:45 1715467364
>>1715448
> конпелятор сишечки всегда кладет адрес возврата в стек
В рот он тебе залупу кладет, компилятор в файлы компилирует, а стек он в памяти находится, это тупо формат данных котором машина понимает где что находится (агрументы/адреса локальные данные) и до каких пределов.
Как ты вообще себе представляешь адреса куда-то записывать? Откуда ты знаешь какой адрес будет у функции пока ты ее в память не загрузил? Ни ты ни компилятор ни машина не знают этого, а только только знают под каким ковриком он должен лежать си под каким ковриком будут свой держать.

Вообще эти разговоры в железяче должны быть, тут им не место, тут высокоуровневый язык не имеющий отношения к железу и стекам. На эльбрусе вон вообще стеки разделенные - аргументы и возвращаемые значения отдельно в одной области памяти, адреса возврата в другой вообще, локальные данные как обычно просто друг за другом, и как то блять плюсовый код на нем компилируется запускается.
Аноним 07/06/20 Вск 12:40:13 1715502365
>>1715467
Ну хорош)) Тут перетолстил уже.
Очевидно же, тот анон имел в виду, что компилятор пишет код, который кладет в стек адрес. Обычно это сводится к правильной расстановке call и ret.
Аноним 07/06/20 Вск 13:32:48 1715546366
>>1715467
>Откуда ты знаешь какой адрес будет у функции пока ты ее в память не загрузил?
Адреса функций в таблице символов экзешника лежат, и они всегда одинаковые, потому что виртуальная память.
Аноним 07/06/20 Вск 16:24:35 1715763367
>>1715546
Полный пиздеж. В бинаре вообще может не быть символов, абсолютные адреса могут быть разными от запуска к запуску из-за аслр
Аноним 07/06/20 Вск 16:29:53 1715771368
>>1715467
Ты тоже гавно

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

Плюс если аслр отключен, то все абс адреса также не изменяются на этапе компилирования
Аноним 07/06/20 Вск 16:32:19 1715774369
>>1715763
ASLR работает только для PIE. К тому же ты все равно можешь посчитать адреса функций перед запуском, если знаешь смещения в ASLR.
Аноним 07/06/20 Вск 16:39:26 1715789370
>>1715774
Паем возможно сделать любую прогу, для этого есть релоки
Если базовый адрес неизвестен до запуска, вычислить его правильно у тебя получится если ты - ванга, и если так совпадет, что аслр будет грузить модули каждый раз по одним и тем же адресам, вероятность чего даже меньше чем твой писюн
Аноним 07/06/20 Вск 22:59:18 1716192371
>>1715295
Нихуя не понял. Мою собственную программу как обновлять?
Аноним 07/06/20 Вск 23:00:49 1716194372
Есть файл 10 мб. Что бы вписать в середину файла данные мне придется все что после скопировать, а потрм опять записать?
Аноним 07/06/20 Вск 23:37:30 1716237373
Правильно ли я понимаю, что если я скомпилирую код в vs под x64 то он будет работать на любой винде с 64 битным процем? И как посмотреть наборы используемых инструкций?
Аноним 07/06/20 Вск 23:38:30 1716240374
>>1716194
Не обязательно копировать, но да, все байты после середины придётся двигать, начинать с конца.
Аноним 07/06/20 Вск 23:45:51 1716242375
>>1716237
Нет, операционка тоже нужна x64.
Аноним 07/06/20 Вск 23:47:01 1716244376
>>1716242
А что касаемо инструкций, которые не каждым процем поддерживаются?
Аноним 08/06/20 Пнд 00:09:10 1716275377
Как реализуются функции, генерирующие рандомные числа?
Аноним 08/06/20 Пнд 00:11:23 1716279378
>>1716275
Кажись беруь всякие типо рандномные параметры компа. Тмпа температуры процессора, время отклика и тд
Аноним 08/06/20 Пнд 00:14:49 1716282379
Аноним 08/06/20 Пнд 00:17:32 1716286380
>>1716275
Способов много. Например, юзать аппаратный генератор, ну или создавать несколько тредов, измерять среднее время выполнения и брать наименее значащие цифры. А в простейшем случае - функция типа rand_value = (A*rand_value + B) % MAX, где заранее подобраны хорошие A и B.

https://ru.wikipedia.org/wiki/ГПСЧ
Аноним 08/06/20 Пнд 00:20:50 1716290381
>>1716282
Безопасно в плане не похерить данные? Если операция не прервётся, то вполне.
А если может прерваться (программу убили, питание отрубилось), можно заранее сохранять бекап. Ну или просто позицию, до которой успели докопировать.
Аноним 08/06/20 Пнд 00:42:50 1716305382
Можно ли запустить стороннюю программу так, чтобы ее гуй не отображался?
Аноним 08/06/20 Пнд 00:50:43 1716310383
>>1716305
Можешь запустить ее как обычно и переключиться на другой рабочий стол

надеюсь помог
Аноним 08/06/20 Пнд 01:00:21 1716314384
Аноним 08/06/20 Пнд 01:58:07 1716347385
>>1716305
Установить далёкие координаты, чтобы окно не влезло на рабочий стол. Правда, в панели задач останется, но это мелочи...
Аноним 08/06/20 Пнд 03:03:19 1716374386
>>1716310
Да сразу моник вырубить для верности
Аноним 08/06/20 Пнд 03:08:04 1716377387
>>1716305
Тебя в гугле надолго забанили?

FindWindow -> ShowWindow (SW_HIDE)

Аноним 08/06/20 Пнд 04:08:01 1716385388
>>1716310
>переключиться на другой рабочий стол
А как сразу запустить программу на другом рабочем столе и вообще переключить его? Я хочу что-то вроде desktops.exe (который от sysinternals), но со своими фичами.
Аноним 08/06/20 Пнд 06:46:48 1716445389
Так сказать, эста буенос, ковбои. Кокособляди 2dx есть?
Аноним 08/06/20 Пнд 08:18:02 1716461390
>>1715771
> Абсолютные адреса неизвестны в момент исполнения, да, это правда, но нужно учитывать что у каждого процессора интел есть приусадебное хозяйство относительные переходы.
Окей я понял, только я отвечал про стек, в файлах нету стека.
Во вторых ежу понятно что там или локальные/виртуальные адреса какие-то, выравненно все располагается или еще что-то, иначе б не работало нихуя.
Аноним 08/06/20 Пнд 11:29:00 1716589391
Анон, у меня много static функций, простых пиздец, обычно математика. Что мне мешает к каждой приписать constexpr? И какой-нибудь msvc в релизе реально не сделает то же самое, что сделал бы constexpr?
Аноним 08/06/20 Пнд 11:47:42 1716619392
>>1716589
У нас gcc & clang так и делают.

мимо сишник
Аноним 08/06/20 Пнд 17:16:48 1716909393
Двач, читаю память из другой программы, в ней строки с символами с номерами 200-255 (ä, ó, á, ö) хранятся побайтово. Это что, UTF-16, Unicode? Когда же сам получаю эти строки в std::string, выводятся кракозябры, помогите.
Аноним 08/06/20 Пнд 17:22:08 1716914394
>>1716909
> выводятся кракозябры
Что выводится зависит от используемого шрифта. Пиши конвертер из твоей хуйни в юникод, и выводи на что-то поддерживающее юникод.
Аноним 08/06/20 Пнд 18:14:58 1716950395
Как вкатиться в олимпиадную прогу?
Аноним 08/06/20 Пнд 18:40:15 1716979396
>>1716950
Тебе в паскаль-тред.
Аноним 08/06/20 Пнд 18:42:23 1716980397
В питоне есть numba, которая прямо на ходу компилирует функцию.

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

Есть идея прямо на ходу компилить dll-ку через gcc, но я не знаю как это сделать в линуксе (и какой-то там вообще аналог dll) - и не очень знаю как там организовать ограничение доступа к файлом, будет ли достаточно просто все файлы кроме math.h удалить. В общем, посоветуйте что-то, пожалуйста.
Аноним 08/06/20 Пнд 18:43:40 1716981398
Аноним 08/06/20 Пнд 18:48:05 1716984399
Аноним 08/06/20 Пнд 18:55:17 1716987400
>>1716981
Без десятикратной потери производительности добавить возможность что-то делать с вводимой (математической) функцией без перекомпилирования?

>>1716984
Угу, он и есть.
Но нужны структуры и функции. Желательно с синтаксисом си, и желательны перегрузки операторов и методы - но их я на стадии препроцессора могу сделать может быть. А вот компилятор не смогу.
Аноним 08/06/20 Пнд 19:03:12 1716993401
>>1716987
Пишешь текст на сях в файл. Вызываешь
cc -fpic -shared -Wl,-soname,libmy.so /tmp/file.c
Подгружаешь библятеку с помощью dlopen, получаешь адрес функции. Перед вызовом функции делаешь chroot в пустую директорию.
Аноним 08/06/20 Пнд 19:20:31 1717004402
image.png 8Кб, 579x159
579x159
Гроб гроб кладбище UB.
Аноним 08/06/20 Пнд 19:22:08 1717008403
>>1717004
Зачем ты это принес, негодник?
Аноним 08/06/20 Пнд 19:25:57 1717013404
>>1717008
Это к тому, что здесь тоже можно написать функцию eval(), следовательно, кресты - такая же динамическая дрисня, как js и пхп.
Аноним 08/06/20 Пнд 19:38:40 1717023405
>>1717013
ну ты можешь вообще влепить libclang и JIT'ить код. Да. Но нахуя?
Аноним 08/06/20 Пнд 20:25:05 1717060406
>>1716980
В qt встроен jit компилятор жопаскрипта, возможно тебе подойдёт. Я им в файлы настроек скрипты включаю.
Аноним 09/06/20 Втр 00:08:37 1717199407
Имею только опыт ковыряния всякого легасиговна на 98 стандарте.
Подскажите идею для петпроджекта чтобы с многопоточностью и всеми этими современными хуёвинами чтоб.
Аноним 09/06/20 Втр 00:10:37 1717202408
Аноним 09/06/20 Втр 00:24:16 1717206409
>>1717202
Я думаю что я пересечение множеств долго считаю. Надо юзать set_intersection
Аноним 09/06/20 Втр 00:52:34 1717217410
>>1716244
Смотри параметр arch и интринсинки
Аноним 09/06/20 Втр 04:50:34 1717265411
Есть какая-нибудь фигня для просмотра и редактирования настроек clang-format? В ide, мягко говоря, неудобно - нужно после каждой правки в настройки лезть.

И ещё некоторые
Аноним 09/06/20 Втр 04:51:01 1717266412
>>1717265
Собака, я перенос строки нажима, а не отправить.

И ещё
Аноним 09/06/20 Втр 04:52:34 1717268413
>>1717266
Оно издевается в общем - я не кликал отправить, и не выделял через таб кнопку - чтобы оно по нажатию enter отправлялось.

И ещё некоторые фичи сомнительны, можно в некоторых местах его отключить, чтобы он никак ничего не трогал - а оставил как есть?
Аноним 09/06/20 Втр 08:06:57 1717302414
>>1717265
Хуйня шланг формат этот, ставь решарпер, там куда удобнее сделано и настроек больше.
Аноним 09/06/20 Втр 08:14:06 1717303415
>>1717302
А ничего, что он под капотом тоже шланг дёргает?
Аноним 09/06/20 Втр 08:22:55 1717307416
>>1717303
Ничего, не clang-format же. Там же сам clang можно просто для разбивки на токены использовать.

>>1717302
Он с ide не стыкуется. Ещё и платная хрень от моей нелюбимой компании.
Написано только про плагины для студии. А у него есть консольный интерфейс, просто запиратить и посмотреть как оно? Меня вполне устраивает форматирование через батник пару раз в день - интеграция с ide и не нужна в общем-то.
09/06/20 Втр 12:13:45 1717434417
>>1717303
Причем здесь шланг и шланг формат?
09/06/20 Втр 12:15:30 1717436418
>>1717307
Так иди тогда через вим пердоль и ручками код форматируй, хули ты выебываешься? Если хочешь как у людей, то качай норм иде.
Аноним 09/06/20 Втр 16:43:17 1717722419
Сап, двач. Посмотрел код битка, там они написали свою транспортную библиотеку и свои сокеты. Посмотрел код того же торрентного протокола - та же хуйня.

Почему бы не использовать boost asio для p2p? Это же можно, или я чего-то не понимаю? Или asio для этого не подходит?
Аноним 09/06/20 Втр 16:53:28 1717731420
>>1709291
Где-то во врезках было, кажись у Липмана, что разница есть: постинкремент создает временный объект; соответственно лучше его не пользовать, там, где фактически не нужен его побочный эффект.
Аноним 09/06/20 Втр 18:52:03 1717855421
Анон, в качестве ключа umap у меня матрица. Я подмешал в ::std, как должен происходить хеш для этой матрицы.
Вопрос: лучше сделать umap от ключа size_t и внешне считать хэш, или прям матрицу сувать туда как ключ? Второй вариант удобнее, но первый как-то выглядит быстрее, так как хэш явно посчитается один раз
Аноним 09/06/20 Втр 19:06:04 1717878422
>>1717855
Шо, ты хочешь использовать хэш как ключ?
Если коллизия тебя не пугает, то можешь.
Аноним 09/06/20 Втр 20:53:34 1718023423
>>1717878
umap внутри не моей либы кеша, глубина типа 256 элементов. С хешем в 32 тем более 64 бита быстрее метеорит меня убьет
Аноним 09/06/20 Втр 23:29:51 1718158424
>>1717722
ASIO подходит для всего. Хуй знает почему они решили написать сами.
Аноним 10/06/20 Срд 00:07:45 1718177425
>>1717722
Потому что ASIO настолько парашный, что лучше изобрести свой велосипед.
Аноним 10/06/20 Срд 11:42:59 1718486426
>>1718158
Ну вот и я так думаю.

>>1718177
А какого хуя? Шо не так?
Аноним 10/06/20 Срд 11:52:49 1718493427
>>1718177
Почему в мире крестовиков что ни возьми - найдётся дохуя хейтеров этого? WinAPI параша, POSIX API параша, Boost параша, Qt параша, STL параша, COM параша, MFC параша, OpenGL параша, Vulkan параша, OpenCV параша, только C с классами норм.
Аноним 10/06/20 Срд 11:56:35 1718496428
>>1718493

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

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

COM тоже говно.
Аноним 10/06/20 Срд 13:05:50 1718595429
conan или vcpkg?
Аноним 10/06/20 Срд 13:16:32 1718607430
Аноним 10/06/20 Срд 14:49:44 1718671431
Аноним 10/06/20 Срд 15:24:46 1718716432
Аноним 10/06/20 Срд 15:47:27 1718749433
изображение.png 4Кб, 101x110
101x110
https://c3dlabs.com/ru/

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

И как вообще на рынке дела с разработкой сапров и прочего софта для инженерного анализа?
Аноним 10/06/20 Срд 16:57:00 1718798434
BxLwp2ok364.jpg 310Кб, 1280x720
1280x720
Аноним 10/06/20 Срд 18:24:18 1718822435
>>1718749
>Что думаете об этой конторе?
ХЗ, видел на конференции пару челиков оттуда. Вроде норм, если угораешь по дифференциальной геометрии и прочему трешу.
>>1718749
>И как вообще на рынке дела с разработкой сапров и прочего софта для инженерного анализа?
Цветет и пахнет. Не лезь дебилсукаебаный, оно тебя сожрет
Аноним 10/06/20 Срд 18:29:44 1718825436
>>1718822
>оно тебя сожрет
А чому так?
Вообще работы не особо много в этой отрасли, но все равно кажется интересным.
Аноним 10/06/20 Срд 18:45:53 1718830437
>>1718798
>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);
Аноним 10/06/20 Срд 18:55:33 1718834438
>>1712681
Qt это фактически другой std, да еще и с гуями.
Некоторые так вообще его считают лучшим по сравнению с std.
Аноним 10/06/20 Срд 19:00:36 1718837439
Пора включать кьют и буст в стандарт.
Аноним 10/06/20 Срд 19:07:14 1718841440
>>1718837
Я как-то работал в конторе, в которой была написана полностью самодельная стандартная либа, все ебучие контейнеры, все кроссплатформенные обертки для потоков и всего остального, и даже UI. Ах какие они были молодцы, но наверное загнулись уже сейчас.

Представь приложение для голосовой конференц-связи, размером 600килобайт. Теперь иногда с теплотой вспоминаю, жаль что в те времена не оценил как там было круто.
Аноним 10/06/20 Срд 19:20:17 1718851441
>>1718749
>как вообще на рынке дела с разработкой сапров и прочего софта для инженерного анализа

Аскон, t-flex, больше ничего относительно крупного не знаю.
И то, аскон в рязане/коломне/нижнем держит свою основную разработку, а не в москве.
Особо много вариантов для трудоустройства нет.
Аноним 10/06/20 Срд 19:22:09 1718854442
>>1718830
То есть мне нужно создать объект fstream и передать на него ссылку?
Аноним 10/06/20 Срд 19:24:44 1718856443
Аноним 10/06/20 Срд 19:27:07 1718860444
>>1718825
> А чому так?
Хз, анончик видимо ни разу не разрабатывал САПРы

Имхо, разработка САПРов - это лучшее, что есть в современном it
брат жив, зависимость есть
Аноним 10/06/20 Срд 19:35:11 1718867445
>>1718860
>Имхо, разработка САПРов - это лучшее, что есть в современном it
>брат жив, зависимость есть


Как вкатиться? И какие возможности для карьеры в студента в Москве?
Вообще слышал, что сапры - очень консервативная отрасль, это правда?
Аноним 10/06/20 Срд 19:41:37 1718873446
>>1718854
Я нихуя не понял. Оставил только 3 строчки, все остальное стер. Работает
Аноним 10/06/20 Срд 20:28:14 1718896447
>>1718873
Почему оно вылетает когда пишу char* buffer = new char[10000];
curl_easy_setopt(handle, CURLOPT_WRITEDATA, buffer);
????
Аноним 10/06/20 Срд 20:29:28 1718897448
>>1718867
> Как вкатиться?
Как и в другие конторы: оставляешь резюме, получаешь тестовое задание, идёшь на очное собеседование.
> И какие возможности для карьеры в студента в Москве?
Что ты понимаешь под карьерой?
> Вообще слышал, что сапры - очень консервативная отрасль, это правда?
Не понял, что значит "консервативная"?
Аноним 10/06/20 Срд 20:45:23 1718905449
>>1718897
>Что ты понимаешь под карьерой
Стажировки, вакансии для джунов. Хотя бы это пока что.
А то в области сапров этого я почти и не видел, по крайней мере на хх уж точно. Даже непонятно, как искать такую работу кроме как у очевидного аскона.
Аноним 10/06/20 Срд 20:50:53 1718910450
>>1718896
Теперь другая проблема. Ответ сервера Bad API request
Все. Никаких пояснений
Аноним 10/06/20 Срд 21:21:54 1718924451
>>1718910
Все. Починил. Оказывается пробелы в строке запроса очень важны
Аноним 10/06/20 Срд 21:26:49 1718931452
>>1718905
Странно, мы периодически публикуем вакансии, однако наоборот никто почти не идёт ((
Джунов не мурыжим, обучаем

про стажировки - надеюсь ты имеешь ввиду оплачиваемые?
Аноним 10/06/20 Срд 21:41:47 1718943453
>>1718931
>Странно, мы периодически публикуем вакансии
Ты из c3d? Вы же в коломне, а не москве?
Аноним 10/06/20 Срд 22:24:00 1718973454
>>1718931
Интересно, какие доходы у разработчиков сапр?
Я вообще из мира джавы, просто интересно, сколько платят людям за знание геометрии/вычмата/оптимизации/сопромата/etc
Кто-то говорил, что даже до средней до рыночка не дотягивает и люди годами работают за условные 100к в мск.
Это так?
Аноним 10/06/20 Срд 22:41:40 1718987455
>>1718943
> Ты из c3d? Вы же в коломне, а не москве?
Не скажу, деанон травля
>>1718973
> знание геометрии/вычмата/оптимизации/сопромата/etc
Это только джависты думают, что это всё надо. Джуном можно идти с одной только геометрией уровня "знаю как загуглить уравнение прямой на плоскости". Всё, что ты перечислил, знают специально обученные люди, которые в случае чего тебе всё объяснят и проверят.
если тебя в конторе заставляют это всё учить, значит твой босс этим летом поедет в охуенный отпуск за твой счёт

По деньгам - да, с жабой не сравнится, но медиана есть медиана
Аноним 10/06/20 Срд 22:45:26 1718990456
>>1718987
А какой стек желательно знать, чтобы с большой вероятностью вкатиться?
Помимо очевидного C++, STL, алгоритмов и общих скиллов типа гита?
И как гуглить вакансии? По условным "C++ cad cam", "C++ сапр", и т. д hh выдает только пару вакансий во всей Москве. Я что-то не так делаю?
Аноним 10/06/20 Срд 23:09:07 1718998457
Если смотреть исходники любых крупных библиотек, код там напоминает магию: никакого использования API операционных систем, никаких STL или Boost. Но все работает быстро и корректно.
Сейчас пишу высокопроизводительную программу, и в интернете очень много советов типа не использовать STL, не использовать динамическую память, не использовать мьютексы. А как тогда писать сложные и крупные программы? Открываешь книги по плюсам, и там всегда Hello World, что такое указатели, что такое STL. Что почитать, чтобы научиться писать код без всего этого?
Аноним 10/06/20 Срд 23:17:35 1719003458
>>1718998
Может по сишке книгу? Это мои догадки. Думай сам
Аноним 10/06/20 Срд 23:20:01 1719007459
>>1719003
Как будто бы и да, но тогда возникает вопрос: а зачем тогда вообще нужны плюсы? Вот прямо сейчас смотрю книгу Солтера/Кеплера, и они пишут: плюсы круто, мы писали супер производительный код чисто на плюсах, не на си. Но советов каких-то нормальных я там пока не вижу.
Аноним 10/06/20 Срд 23:22:16 1719009460
>>1718990
> А какой стек желательно знать, чтобы с большой вероятностью вкатиться?
Того, что ты перечислил хватит. Но знать нужно достаточно уверенно. Язык уж точно.
> И как гуглить вакансии?
Попробуй что-нибудь инженерное дописать или без сокращений "проектирование"
> hh выдает только пару вакансий во всей Москве
Да их в принципе немного
Аноним 10/06/20 Срд 23:24:05 1719012461
>>1718998
> исходники любых крупных библиотек
Каких?
хромиум идет нахуй, это пример того, что получается, если жс-блядь добирается до конпелятора
Аноним 10/06/20 Срд 23:52:44 1719030462
>>1718998
Как это не использовать API операционных систем? Без использования API ОС все, что ты можешь делать, это заранее выделенную память менять, кек.
Аноним 11/06/20 Чтв 00:16:15 1719045463
>>1719007
Не использовать темплейты ещё не значит не использовать C++. В плюсах есть классы, неймспейсы, более вменяемые строки, лямбды и прочее (нет).
Аноним 11/06/20 Чтв 06:47:05 1719112464
>>1718493
С с классами тоже параша.
Аноним 11/06/20 Чтв 06:59:53 1719113465
>>1718998
1) юзер желательно должен иметь возможность собрать либу с минимальным гемором, поэтому буст, как правило, отваливается.
2) если либа предполагает использование из других языков, то интерфейс всё равно будет на С. То есть, как ни крути, придется работать с указателями, буферами, кастомными функциями аллокации, т.д. Оборачивание всего этого в крестоконтейнеры только всё усложнит.
3) если либа крупная, то она, скорее всего, ещё и старая -- это означает устаревшие подходы.
Аноним 11/06/20 Чтв 11:50:41 1719209466
Безымянный12.png 32Кб, 1058x695
1058x695
Пацаны, вкатывайтесь в С++, ну это основы просто
Аноним 11/06/20 Чтв 11:54:54 1719212467
>>1719209
У тебя там зеленым подчеркнуто. and
Аноним 11/06/20 Чтв 11:55:26 1719213468
>>1719209
Ну и что ты этим хотел сказать?
Аноним 11/06/20 Чтв 12:04:44 1719217469
>>1719213
Ничего, тащемта, просто хотел сделать разными способами одно и то же. Хотя, уверен, кто-то может ещё больше извернуться.
Аноним 11/06/20 Чтв 14:18:46 1719326470
15588730144580.jpg 103Кб, 600x600
600x600
image.png 11Кб, 438x264
438x264
Аноним 11/06/20 Чтв 14:44:54 1719363471
>>1719326
Как это дерьмо работает?
Аноним 11/06/20 Чтв 14:51:25 1719375472
Аноним 11/06/20 Чтв 14:51:42 1719376473
>>1719363
Не шарю, но похоже на псевдокод вывода параметров в консоль.
Аноним 11/06/20 Чтв 14:52:55 1719379474
>>1719326
Это что то из с++20? Пиздец ебала какая.
Аноним 11/06/20 Чтв 14:57:49 1719388475
Аноним 11/06/20 Чтв 15:03:22 1719407476
>>1719326
Многоточие, которое мы заслужили.
Аноним 11/06/20 Чтв 15:04:45 1719410477
>>1719326
>>1719379
собралось с -std=c++17
но нихуя не понял всё равно.
Аноним !SushiIKcao 11/06/20 Чтв 15:15:51 1719437478
>>1719326
Эх прям как жс, хуяк и новый стандарт с лямбдами и классами, сначала противишься плюешься потом ну вот в таких случаях буду писать так шоб без фанатизма, а потом как ебанутый тыкаешь это везде, по старому пишешь только в особых случаях.
Чет начинаю уже полюбливать плюсы.
Аноним 11/06/20 Чтв 15:19:31 1719448479
>>1719388
Это значит что колличество аргументов может быть каким угодно. 5, 10, 1.
Аноним 11/06/20 Чтв 15:22:03 1719453480
>>1719448
>>1719437
Так погодите, можете человеческим языком рассказать что происходит?

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

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

Вот таким примерно языком расскажите, а?
Аноним 11/06/20 Чтв 15:43:10 1719508481
>>1719448
Я знаю. Я в ахуе именно от троеточия внутри самой функции, где cout
Аноним 11/06/20 Чтв 15:43:56 1719511482
>>1719453
auto в лямбдах тоже самое что template
Аноним 11/06/20 Чтв 15:52:35 1719534483
>>1719453
Лямбда с 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()...;
};
Аноним 11/06/20 Чтв 15:57:00 1719541484
>>1719534
>оператор запятая
вот! теперь дошло, не хватало как раз этого кирпичика. спасибо!
Аноним 11/06/20 Чтв 16:05:16 1719556485
>>1719534
> f(h(args...) + args...); // expands to f(h(E1,E2,E3) + E1, h(E1,E2,E3) + E2, h(E1,E2,E3) + E3)
Мда
Аноним 11/06/20 Чтв 16:06:29 1719558486
Аноним 11/06/20 Чтв 16:09:45 1719565487
>>1719558
Тащемта в данном конкретном случае это не fold expressions, а pack expansion. Разница есть. Это ДРУГОЕ, надо понимать
Аноним 11/06/20 Чтв 16:11:32 1719570488
>>1719558
>>1719565
Это ж наоборот анаморфизм, пацаны? Из меньшего выражения становится большее.
А фолд - катаморфизм.
Аноним 11/06/20 Чтв 17:28:43 1719652489
>>1719212
Не знаю почему, но без инициализации *pupaM всегда возвращает одно отрицательное число, хотя там мусор должен быть. Это специфика такая, или у меня оперативка одними числами забита?
Аноним 11/06/20 Чтв 17:34:07 1719660490
>>1719652
>*pupaM всегда возвращает одно отрицательное число
Ну совпало так. Перезагрузи компьютер, или погоняй его, чтобы память засралась разными данными из разных программ - и будет другое.
Он просто попадает в одну и ту же область памяти, судя по всему, и в этой области лежит одно и то же значение в этом сеансе.
Аноним 11/06/20 Чтв 17:49:15 1719678491
>>1719326
printf то покороче будет
Аноним 11/06/20 Чтв 17:57:20 1719685492
>>1719660
>Перезагрузи компьютер, или погоняй его, чтобы память засралась разными данными из разных программ
Перегрузил, забил всю оперативку, все равно одно и то же значение -842150451.
Аноним 11/06/20 Чтв 18:01:15 1719689493
>>1719678
printf не в курсе, какие типы хавает, а эта хрень в курсе, сама цепляет нужные перегрузки
Аноним 11/06/20 Чтв 18:09:12 1719692494
Аноним 11/06/20 Чтв 18:10:55 1719694495
>>1719685
Твое -842150451 это 0xCDCDCDCD в шестнадцетиричном виде, думаешь совпадение?
В дебаге, покрайнем мере в студии, после new выделенную памаять записывается специальное значение чтобы было проще найти неинициализированные переменные.
Аноним 11/06/20 Чтв 18:21:30 1719702496
Аноним 11/06/20 Чтв 18:31:57 1719712497
>>1719326
>>1719534

И после этого кто-то ещё жалуется, что в %язык_нейм% слишком много сахара.
Аноним 11/06/20 Чтв 19:09:47 1719754498
Cделал программу в QT, из среды она запускается, а из папки с исполнимым файлом требует qt5core.dll, qt5gui.dll, qt5widgets.dll. Если скачиваю со сторонних сайтов эти библиотеки, появляется ошибка 0xc000007b. Как быть?
Аноним 11/06/20 Чтв 19:10:55 1719756499
>>1719754
Не скачивать с сторонних сайтов?
Аноним 11/06/20 Чтв 19:20:24 1719771500
>>1719754
Не нужно качать со сторонних сайтов. Найди в своём каталоге Qt либы, на отсутствие которых он ругается, и положи их рядом с экзешником.
Аноним 11/06/20 Чтв 19:30:28 1719780501
>>1719754
Запусти qtwindeploy или windeployqt, как-то так называется утилита,

1. в PATH пропиши путь к этой утилите.
2. потом в каталоге где у тебя собрался exe:
qtwindeploy yourexename.exe
и оно подтянет туда всё дерьмо, включая дллки переводы и прочее-прочее-прочее - будет готовый бандл, который уже можно хоть в инсталлер пихать и распространять.
Аноним 11/06/20 Чтв 19:32:34 1719781502
>>1719534
Про все есть порно. Без исключений.
Аноним 11/06/20 Чтв 19:46:23 1719794503
>>1719771
Та же самая ситуация
Аноним 11/06/20 Чтв 19:51:49 1719803504
Аноним 11/06/20 Чтв 19:55:21 1719806505
>>1719780
Этот вариант копирует библиотеки сам, но всё ещё появляется окно с той ошибкой.

>>1719803
Получается, мне нужно собирать всё для x32?
Аноним 11/06/20 Чтв 19:57:32 1719807506
Аноним 11/06/20 Чтв 20:45:17 1719854507
>>1719806
Он часть не копирует - те которые не кютешные. Там их несколько, смотри что выводит и бери из кютешного каталога. Всякие libstdc++-6.dll и тп
Аноним 11/06/20 Чтв 21:22:34 1719887508
Я полный нуб, если что
Дано: две проги, которые делают один и тот же Х. Первая сделана по принципу: main.cpp вызывает функцию 1, та что-то делает, вызывает функцию 2, 2 делает что-то и т.п. Вторая сделана по принципу: есть класс, в котором функции 1 и 2, main.cpp вызывает функцию из класса и далее по списку. Т.е. единственное отличие, что во второй проге я запилил класс, чтоб не передавать миллион переменных из функции в функцию. Вторая прога работает на 10-15% медленней. Это нормально? Или я испортил?
Аноним 11/06/20 Чтв 21:24:42 1719889509
27/06/20 Суб 07:39:45 1735036510
Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов