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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
1549286607132.png1 Кб, 250x250
C++ тред #110 /cpp/ 1679966 В конец треда | Веб
Вместо шапки:
https://github.com/sosachbot/cppthreadhat/wiki

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

Прошлый тред: >>1668430 (OP)
5462523.png249 Кб, 969x1038
2 1679970
>>1679942 →
Таааак уже интересней (или нет, хз).
Я уже такое получал с другой правда хуйней, на стаке пишут копию нельзя чего то блять там
https://stackoverflow.com/questions/1779438/error-with-qobject-subclass-and-copy-constructor-qobjectqobjectconst-qobj
Какую копию, чево блять, у нас же скелет класса в заголовочном файле типа и мы ему просто методы определяем уже в программе не?

Нихуя сука вообще не понимаю чего делаю.
3 1679972
Но вообще QtQuick на самом деле такое глюкалово корявое просто пиздец, я думал сделаю пиздатый интерфейс не хуже чем на этих ваших маках и вебах с цсс и в итоге уже на какие только компромиссы не пошел, позорные косяки в фичу определил и сука все равно проблемы лезут и лезут блять.
4 1679980
Тут есть так называемый нвидия кун. Можешь ли ты сказать о том, где сам учился? Выпускники каких универов там преобладают?
5 1679998
Кто нибудь игры делает на unreal engine 4? Объясните мне, язык полностью учить для этого?
6 1680001
>>679998

>полностью


Лол, нет. Походу выучишь, главное начни что-нибудь делать
7 1680004
>>679972
кьют квик кайф темка, завтра за компутером буду - посмотрю, как сам делал, и помогу
8 1680031
А в целом, что вы тут делаете? Программы создаёте или сайты?
мимо с компьютером на вы
9 1680048
>>679998
Полностью его никто и не знает.
634652454.png161 Кб, 1434x830
10 1680050
>>680004
Помоги, а то делаю плеер на говяжем анусе (всмысле на бакенде дедбиф) и сука один метод chfysq прокинуть не могу хоть посмотреть как работает кьюмл этот с плюсами.

А то ни одного плеера нет вменяемого-современного, на линуксах так вообще больше половины тупо на пистоне завязана на библиотеки всякие уродские из окружения. Есть на маке плеер свободный Cog с браузером как в клементине ну и развивается форматы все поддерживает, но там автор упрлся по харткору он сам библиотеки пишет с разбором структуры аудиофайлов на обжектив си (то есть не портируемые нихуя). Я тоже когда то брался чисто для интереса более менее инкапсуляцию Ogg и Flac освоил но не декодирование даже, а форматов хуева гора да еще у каждого там разные версии и методы сжатия и даже порядок байт бывает, поэтому лучше взять что то готовое. Говядина вроде неплохо развита в плане поддержки форматов и кроссплатформенности (ну и эквалайзер надо оттуда как то спиздить полюбому) плюс разработчик наш то есть обратная связь будет лучше.
11 1680235
Рибят, можно как-то при компилировании в wasm попросить clang++ экспортировать функции без манглинга? А то как на пике получается - функция у меня в исходниках называется testadd, а жопаскрипт видит ее как _Z7testaddii.
12 1680249
>>680235
extern "C" не помогает?
13 1680253
>>680249
Добра! Как я забыл про это, делал же так, только в очень сильно другом контексте.
14 1680335
>>679970

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



Не разыменовывай указатель, когда передаешь в конструктор базового класса
15 1680336
>>679998
Да. Сначала желательно вьехать в плюсы и в ООП.
Но ничего не мешает тебе начать с ковыряния блюпринтов.
16 1680349
Программач, я совсем зелёный. Как мне удалить строку из файла через <fstream> и стандартной библиотеки?

То есть, есть файл пикрил1, и нужно, чтобы программа делала пикрил2. Как такое можно сделать?
17 1680362
>>680349
1. залить контент файла в стринг/масив байтов/...
2. сделать string.replace или заменить в масиве вручную
3. залить исправленный контент в новый файл
18 1680415
>>680349
Хранишь обе картинки как символы в своей либе. Если на вход поступает первая - выдаешь вторую.
19 1680453
Ананасы, вопрос такой
Есть структура, они конвертится в тюпл, а затем переводятся в массив байт (с записью опкода чтобы знать что за операцию выполнить) и передаётся по сети
При получении преобразуется обратно в структуру

https://wandbox.org/permlink/pfQIL5eYzh3AvhpP

Я где-то в реализации обосрался?
20 1680508
>>680335

> Не разыменовывай указатель, когда передаешь в конструктор базового класса


Да я чет вообще не понимаю что я делаю.
Слева это как я себе представляю наследование классов, а с права я вообще нихуя не понимаю.
Через двоеточие наследование - public от публичной части наследование что ли только?
Через Q_UPRLS это оно типа как макрос всякую хуйню подставляет (пиздец тоже блять объектно ориентированное программирование), тоже кстати что подставляет интересно, может втарую приватную часть из за чего все и не собирается.
Потом конструктор по имени класса который блять наследует конструктор родителя что ли? Плюс в аргументы у него попадают указатель на родителя который мы передаем в родительский конструктор (пиздец ебануться блять)
Снизу зачем эта хуйня с тильдой? Снизу кастомные секции которые надо в хуевой кутешной документации смотреть

Вообще не к плюсам если что претензия, они (понятно дело) берегли сишную "гибкость" так что имеем что имеем.
21 1680521
>>680508

> что подставляет интересно


АХАХАХА сука, убрал Q_OBJECT и собралось. сейчас посмотрю работает ли вызов метода из qml... ии разумеется нихуя не работает объект есть, а метода пишет что нет
22 1680529
ку крестач. юзается ли c++ в связке с другими языками для разработки. если да, то может кто привести примеры.
23 1680532
>>680521
Долбоёб, прогони свой файлик с макросом через moc
24 1680540
>>680532

> Долбоёб, прогони свой файлик с макросом через moc


Как бля прогнать то, я ниче не понимаю. в документации нихуя об этом qtcreator сам все прогоняет насколько понимаю
25 1680572
>>680540

> я ниче не понимаю


Ну так и съебись отсюда и не возвращайся, пока не разберёшься, как работает система сборки твоей хуйни.
26 1680713
Как запретить Visual Studio делать пробелы по краям знаков вроде + - =? Заебался вручную их убирать.
27 1680745
>>680713
Разреверсь студию и запатчи в нужном месте
28 1680754
>>680745
Это они нам так свой жыдомасонский кодстайл пытаются навязать?
29 1680766
>>680754
Сейчас бы не отделять пробелами арифметические операции и присвоение, кек.
Там есть настройки автоформатирования кода, вроде раздел "текстовый редактор". Мб для таких извращенцев как ты они добавили возможность не ставить пробелы.
15867888343590.png234 Кб, 603x324
30 1680822
Сейчас изучаю Qt. Пользоваться дизайнером форм это труЪ или лучше все делать руками?
31 1680868
>>680822
Если учишься, то имеет смысл попробовать сделать без
32 1680869
>>680529
Вроде как всякие питоновские ML фреймворки типа tensorflow написаны на C++ и уже юзаются в питоне. Скорее всего такой хуйни много, когда нужно выжать максимум производительности в критических частях. Ну еще в игровых движках поверх самого двигла написанного на крестах юзают какой-нибудь скриптовый язык типа Lua.
33 1680874
>>680868
Учусь то я пока без. Меня интересует пользуются ли им в реальных проектах. Читаю Макса Шлее, у него в книге только одна глава дизайнеру отведена
1498044640295.png119 Кб, 1083x491
34 1680876
>>680869
Не правда

чекай:
https://www.gnu.org/software/liquidwar6/

У них все скрипты написаны на схеме. Представь себе
35 1680884
Щас тыкал ардуино Уно и esp32 (до этого особо не игрался) и как-то внезапно понял, что перед мной настоящий c++, под esp ещё и библиотека собрана, чтобы всякие vector использовать.
И это охрененно! Я всегда считал, что чистый си не очень в 2к20 подходи для микроконтроллеров, если не считать драйверный уровень. В c++ намного безопаснее благодаря ссылкам и контейнерам. Сишное говно на мк у тебя за массив уйдет и начнет память по чуть-чуть хуячить, и будешь ты сидеть с осциллографом искать ошибку и не понимать, почему твое устройство периодически сбоит.
36 1680889
>>680884

>Сишное говно на мк у тебя за массив уйдет и начнет память по чуть-чуть хуячить


Пиши так, чтобы не выходило. В чем проблема обвязку для массива написать? В крестах у тебя тоже что угодно может произойти, скобочки [] в векторе без проверки работают.
37 1680891
>>680876

>Представь себе


Ну так gnu.org же. Что у них кроме схемы может быть? Там диды заплесневелые сидят. Столлман вон, даже не знает (и не хочет знать), что в имаксе org-mode и helm теперь есть.
38 1680914
>>680889
Да долбоебизм делать самому обертки и опять велосипедить, когда уже всё 200 раз было выдумано. Есть std::array, просто прекрасно, и к нему прекрасно подходит range based цикл. Охуенно. И я уверен, что производительность будет абсолютно такая же благодаря const размеру массива, как говнокостыль на си. И таких примеров отличной применимости крестов к мк масса
изображение.png29 Кб, 786x351
39 1680935
Что здесь означают ? "" : в cout?
40 1680947
>>680935
Гугли тернарный оператор
41 1680958
>>680914
На МК обычно все это тупо не нужно. Все переменные глобальные, массивы статические. То есть у тебя в цикле izalupa < zalupa_count; ++izalupa - и за границы ничего не выходит.
42 1680989
Хуяси, на винде, оказывается, можно сделать
std::system_error(code, std::system_category()).what()
и what вернет текстовое описание для любого кода ошибки из винапи (GetLastError, HResult, WSA*, и т.п.) -- да ещё и на русском языке.
Чё только не найдёшь в стандартной библиотеке. А я раньше городил свои классы исключений для виндовых ошибок.
43 1681534
>>680989
Вернет. Но только в кодировке cp1251 (ну или подобной однобайтной). Лучше взять boost::system_category, добавить дефайн BOOST_SYSTEM_USE_UTF8 и получить вывод в кошерном UTF-8

Объект исключения инстанционировать не обязательно. Можно проще сделать:
std::error_code ec{code, boost::system_category}; // ну или std::system_category
ec.message(); // return std::string
44 1681548
>>681534

>Но только в кодировке cp1251


Ну и хорошо, все равно в виндовую недоконсольку выводить.
45 1681694
вам реально интересно в этом говнище копаться? std::system_huistem::<lambda(x)>::supet_boost_library<Interger_Extented_Debugging>?
46 1681698
>>681694

>вам реально интересно в этом говнище копаться?


В этом суть крестов - есть решения на абсолютно все вопросы, при этом с хорошим качеством кода.
47 1681738
>>681694

самый интерес это читать ошибки рантайма
48 1681740
>>681694
Ну мы же программисты, а не тупые обезьяны
49 1681775
>>681534
Угу, только utf-8 на винде -- он имхо ни в пизду, ни в красную армию. В смысле, ни в OutputDebugString/MessageBox (cp1251), ни в консольку (cp866).
50 1681780
>>680989

>Хуяси, оказывается


Ничего удивительного, наоборот, в этом вся суть пердольного говна - доков-то нет. Доки делает только майкрософт, поэтому когда программист гуглит, он получает GetLastError() и его друзей, вот всю жизнь так и пишут, ведь как ты узнаешь про другое? Никак. Только красноглазики которые свою библиотеку писали и знают, и шизоиды пердолики которые всю либу и её обновления от корки до корки зубрят.
51 1681781
>>681780
Шизик из ситреда в крестотред протек
52 1681792
>>681780
А кто по докам язык изучает? Обычно просто гуглят по ходу дела "как в язык-нейм сделать хуйня-нейм", а в доки лезут уже когда знают, чего хотят.
54 1681805
>>681792
Библиотека это не язык. Библиотеки не изучают, их используют, а чтобы использовать нужно знать о их существовании, а для этого нужна документация, качественная. Но красноглазие это же ШВАБОДКА, а писать доки совсем не интересное занятие, поэтому у пердоговна нет доков, в результате оно никому не нужно, потому что попросту никто не знает о существовании и возможностях кроме самих авторов.
55 1681806
>>681800

>As of Windows Version 1903 (May 2019 Update)


Микросос 15-рублевый закукарекал за свою дриснятку.
56 1681808
>>681800
Сложна. Какие-то версии с манифестами, я ебал.
57 1681810
Помогите с задачей. На вход подается строка, состоящая из цифр (0 и 1), круглых скобок и знаков и +. Грубо говоря логическое выражение. Нужно его вычислить. Вопрос как? Пока что реализую это рекурсией. Рекурсивная функция принимает в себя строку, возвращает булеан. В строке - выражении находит последнее математическое действие, которое в нем должно вычисляться. Делит входящую строку на 2 части (слева от или + и справа от них). Затем вызывает саму себя 2 раза, с левой частью, и с правой. И все это вызывается до тех пор, пока функция не получит простой пример на вход, типа "1*0", вычисляет его. Возвращает результат. Который используется для вычисления уже вызвавшей функции и так до последней, которую вызвали первой. Но все это реализовано криво, скорее всего неэффективно. Есть ли другие способы решения такой задачи или может вообще готовая мат. функция, решающая формулу в строке?
За воду в тексте не бейте, я не умею объяснять.
58 1681812
>>681808

> Code page conversion


> As Windows operates natively in UTF-16 (WCHAR), you might need to convert UTF-8 data to UTF-16 (or vice versa) to interoperate with Windows APIs.


> MultiByteToWideChar and WideCharToMultiByte let you convert between UTF-8 and UTF-16 (WCHAR)


Щас бы высирать говнокод с конверсией строк на каждый вызов функции. Кампуктиры мощныи - всем хватит, да? Может тогда луччше сразу на джаваскрипте писать, там без базара всё на UTF-8.
59 1681813
>>681810
Например на ввод:
(11)(1+0)
должно вывести:
1
60 1681814
>>681813
звездочку доска сожрала
61 1681815
>>681805
Не соглашусь с тобой; я считаю, библиотеки — это тоже часть языка. Мало знать синтаксис и операторы чтобы заявить, что ты знаешь язык. Нужно ещё и писать на нём так, чтобы другие люди не плевались от велосипедов. А это уже опыт нужен, километры прочитанных чужих сорцов и ответов на стековерфлоу, чтобы знать, как вообще принято, и что "вот так вообще можно было".
62 1681844
>>681810
Лабы идут нахуй.
если все выражения составленны правильно, то есть все со скобками, то можешь искать последнюю открывающую и после нее первую закрывающую. Между ними вычислять выражение и подставлять результат. Выполнять пока не останется 1 или 0, либо пока не встретишь ошибку в формуле
ww1.png11 Кб, 431x453
63 1681884
Показал я одному человеку код.
Ответ убил, так сказать.

"Не надо делать присваивание внутри проверки условия. Это путь к ошибкам, плохая практика"

А что, всм, что поменять, чтобы было хорошо?
пейст - https://pastebin.com/ePK1bzqU
64 1681891
>>681884

>while(n /= 10)


Ты совсем в глаза ебёшься?
65 1681892
>>681805
О чём ты вообще? цппреф на что тебе?
>>681792
Хз, первым делом на цппреф лезу, только потом уже в остальные места.
66 1681897
>>681884
>>681891
Та я понимаю.
Цикл работает пока истина, но как переписать это условие.
67 1681900
>>681897
Ну отдельно сделай while и отдельно n /= 10.
68 1681902
>>681897

>Цикл работает пока истина


Что значит пока истина? При каком значении n цикл прекращает работать?
69 1681913
>>681902
Так инт же.
70 1681914
>>681913
Не понял. При каком n из цикла выходим?
71 1681915
>>681914
Нулевом
72 1681917
while(n/10!=0) {
n /= 10;
if(n % 10 < min)
min = n % 10;
}
переписал вот так.
73 1681919
>>681915
Ну вот и поставь туда while не равно 0, а внутрь цикла засунь n /= 10.
74 1681920
>>681917

>n/10!=0

75 1681924
>>681698

>на все вопросы


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

>>681738
Двачую

>>681740
Если тебя манит в С++ желание несоответсовать стереотипам о макаках, то у меня для тебя плохие новости

мимо 4 года на плюсах
76 1681928
>>681919
Так в сях ничего кроме ноля и нет по сути.

>>681917
А вот тут я кстати не знаю может подвешенная операция n / 10 вещественное возвращать?

В твоем случае наверно приведение типов еще ставить придется

while ((int)(n / 10) != 0)
77 1681929
>>681928

>А вот тут я кстати не знаю может подвешенная операция n / 10 вещественное возвращать?


Какое вещественное?
while(n != 0)
{ n /= 10;}
Какое тут вещественное будет, о чём вы, я ебу собак.
78 1681937
>>681919
Ну и кстати ты видимо не вкурсе как железо работает, деление довольно тяжелая операция n /= 10 это сразу

idiv %n1, 0x0A, %n1
cmj %n1, 0x00, .L01

целочисленное деление и условный переход в начало цикла грубо говоря
В твоем же случае изменение переменной n предполагается только после проверки условия и запуска итерации цикла, то есть два деления придется делать еще в какую то переменную записывая при том что переменная n нигде не используется дальше то есть беречь ее нахуй не надо. Наверняка конечно какой нибудь хороший компилятор сам это увидит и переделает, но тебе тоже нет смысла так уродовать свой код, ты лучше ему не делаешь.
79 1681940
>>681937
Чел, это пикосекунда разницы, что такое пикосекунда перед читаемостью?
80 1681941
>>681937
К тому же любой компилятор в 2к20 всё это соптимизирует. Код пишется не для машин, а для людей. while(n /= 10) потенциальный источник ошибок, никто так не пишет.
81 1681943
>>681929
А ну ты вначале то не так же написал >>681920

Ну и вообще там собственно n то нигде ничего не присваивается (вообще в оригинальном коде), то есть цикл никогда не запустится походу.
82 1681945
>>681943

>А ну ты вначале то не так же написал


Это лишнее, зачем в вайле n\10 и потом внутри n /= 10?
83 1681946
>>681943

> n то нигде ничего не присваивается


n /= 10 присваивается
84 1681947
>>681943
n /= 10 это то же самое, что n = n/10
85 1681956
>>681940
Хуикосекунда, это несколько тактов во первых, во вторых устройств деления ну вот скажем в интеле любом современном всего два - один чисто целочисленное может считать (без остатков тупо) второй полноценный, в двух каналах которые еще и другое что то помимо этого могут считать, то есть операция деления обречена тупо стоять ждать свое конкретное окошко и ни в какие другие суперскаляр ее послать не может. Благо таких операций в коде как правило не много.
>>681941
Ну так вот именно что соптимизует так как ты бы мог написать сразу а не разводить какой то некрасивый мудазвонский код пряча запись в переменную куда то в тело цикла. Какого рода там ошибки могут быть непонятно
86 1681965
>>681956
Да плевать, всё равно очень быстро.

>писать сразу


Так хуже читается, пока n не равно 0 лучше чем пока n, которое мы ща делим на 10, не станет равно 0. Затруднение чтения порождает ошибки.
87 1682102
>>681956

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


Ты реально везде у себя в коде вместо деления на 10 пишешь (x * 3435973837) >> 35?
88 1682114
>>682102
Ну нет конечно, но это ведь выглядит и не проще, и у того анона нихрена не проще выглядит

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

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

Вот так человек борясь с какими то там гипотетическими ошибками сам запутался накосячил и сделал грубейшую ошибку.
89 1682212
Разрешение перегрузки за 500. Внимание на код:

void check(int*) {}
void check(int (&)[10]) {}

int main() {
int arr[10] = {};
check(arr);
}

Какого хуя error: call to 'check' is ambiguous. Ведь ссылка на массив лучше подходит, т.к. для указателя нужно лишнее преобразование ( разложение ( decay ) массива в указатель )
90 1682214
>>682212
Потому что нехуй писать как еблан со своими ссылками на массив, про decay знаешь, а про std::array не знаешь, про span видимо тоже не слышал
91 1682222
>>682214

>Потому что нехуй писать как еблан со своими ссылками на массив, про decay знаешь, а про std::array не знаешь, про span видимо тоже не слышал


Епта, при чем тут std::array, вопрос чисто в академических целях, а не для того, чтобы чет там пофиксить
92 1682223
>>682212

> call to 'check' is ambiguous


разве ссылку не check(&arr); надо передавать? А то ты ей тут просто аргумент пихаешь а там оно на что ссылку то должно дать на копию на оригинал, что ожидается то что у тебя в main массив при помощи функции обработается?
93 1682229
>>682223

>разве ссылку не check(&arr); надо передавать? А то ты ей тут просто аргумент пихаешь а там оно на что ссылку то должно дать на копию на оригинал, что ожидается то что у тебя в main массив при помощи функции обработается?


Не особо понял что ты вообще тут написал. Если ты про

int main() {
int arr[10] = {};
int (&refarr)[10] = arr;
check(refarr);
return 0;
}

то это тоже не работает.
94 1682231
>>682222
Ну раз в академических целях, то пиздуй читать стандарт, раздел с выбором перегрузок
15866704657030.jpg13 Кб, 351x351
95 1682291
Поясните за clang. Если это замена gcc, то почему они зависят друг от друга? Почему clang использует по умолчанию библиотеки gcc? При этом сам он их у меня не подхватывает. Окей, погуглил я, и понял, что у него есть свои исходники библиотек libc++, которые еще надо собирать. Но и тут хуй пойми что и как. Выясняется, что для сборки нужен снова gcc, чтобы потом выполнить Makefile. Окей. У меня стоит mingw-w64 (порт gcc на винду) с posix потоками (они требовались для сборки одной библиотеки). Кстати, почему вообще все так топорно сделано? Почему я должен переустанавливать целый компилятор и менять эти потоки? Так вот, теперь я хочу собрать эту libc++, у которой даже параметров, связанных c posix потоками нет в cmake и после попытки запуска make, спустя некоторое время, он начинает срать ошибками, что не может скомпилить win32 потоки из исходников библиотеки. Мне что, снова gcc переустанавливать? Пиздец. И это еще не считая того, что у меня ебучая llvm и cам clang собирались, сука, весь день. Почему это так долго? Что я мог не так сделать? Буквально по 4-5 часов у меня они собирались... Я и скомпилированные бинарники llvm ставил, но там не оказалось какого-то llvm-config для сборки libc++...
96 1682295
>>682212
Так исторически сложилось.
97 1682297
>>682291
Ну фронтенды связаны наверно, зачем двум свободным проектам средства распылять и пилить каждый свою поддержку стандартов языка, тем более такого как плюсы.
.png15 Кб, 923x584
98 1682324
Так ананасы
Есть шаблонная структура, она инстанцируется разными типами и всё это упаковывается в картеж
Как получить копию, например, Struct_t<SomeType1> в рантайме?
Или может быть есть другой способ хранить такой список разных типов?
99 1682333
>>682324
это очень странный вопрос. auto hueta = get<0>(tpl); ?
Явно не это же ты имеешь ввиду
100 1682337
>>682333
Да, так
Только индекс мне известен в рантайме
101 1682340
используются ли операторы типа | и & в настоящих программах? Где о них можно почитать?
102 1682342
>>682340
Используются для битовых масок
103 1682375
>>682337
>>682333
>>682324
Алсо, я могу, конечно, передавать в конструктор Struct_t индекс по которому он будет находится в картеже, но хотелось бы этого избежать чтобы не было путаницы в будущем
104 1682382
>>682337
Это сильно сложнее. В таком случае тебе проще сделать полиморфный класс, хранить все это говно в векторе там
105 1682388
Аноны, как вкатываться в WinAPI? До этого работал только с QT и немного OpenGL.
106 1682395
>>682388
в пиздёнке своей мамаши поищи
107 1682428
>>682382
Так и хотел делать в начале, но мне бы всё равно пришлось знать тип в который кастить
Хуй с ними, короче, не буду изъёбываться. Лишний раз лучше напишу так
108 1682443
>>682395
Поискал - там нет.
109 1682449
>>682388
Ну, читаешь МСДН. В чем вопрос то?
110 1682466
>>682291

>шинда


>гцц


>цланг


Ты серьёзно не видишь, в каком пункте проблема?
111 1682469
>>682443
поищи получше
112 1682487
>>682337
Если в рантайме есть только индекс, то типа у тебя, получается, нету? И что ты делать собрался тогда с этой хуйнёй? Вообще, можешь ёбнуть тупой свитч на каждый индекс.
113 1682488
>>682469
Кажется в твоей нашлось. Рядом с трупом бомжа лежало.
114 1682496
>>682291
Поставь MSYS2 и не еби мозг. Там для всех популярных пакетов бинарные сборки, ничего компилировать не надо.
https://www.msys2.org/
115 1682499
>>682324
Используй паттерн посетитель, правда его нет для кортежей в std, так что придется самому писать - он почти такой же как в variant, только с индексовм.
116 1682500
>>682487

> И что ты делать собрался тогда с этой хуйнёй?


idx внутри Struct_t это опкоды которые передаются по сети
param это данные соответственно, точнее там не структура, а ещё они картеж (для хранения типов)
Зная какой опкод мне пришёл в пакете я бы его считывал в param (мне бы не пришлось думать о порядке полей), а затем он преобразовывался бы структуру которой я его инстанцировал при упаковке в картеж.

Короче говоря чтобы чуть-чуть меньше ручной работы было.

Наверное, не самый хороший способ это сделать, но хотел попробовать вот такое
117 1682510
>>682212
Проверяй список боянов прежде чем писать
wg21.link/cwg1789
118 1682548
>>681928
>>681929
Вот. Может кого волнует.
Переписал вот ТАК:

min = n;
while (n) {
check = n % 10;
n /= 10;
if (check < min)
min = check;
}
119 1682559
>>682466
И что? Порт gcc на что? К тому же я планировал под разные ос потом собирать приложение, мне нужна кроссплатформенность.

>>682496
С ним я дел не особо вообще хочу иметь. Любая unix среда - костыль, который еще и работает в разы медленней. В частности медленно собирает.

Алсо, я уже нашел способ заставить работать существующие библиотеки gcc с clangом. Надо было добавить флаг -target x86_64-pc-windows-gnu Без этого флага он вообще не мог ни одной либы найти, хоть и в PATH все было прописано. И напрямую, через -I -L я указывал заголовки и библиотеки, не работало нихуя.
120 1682562
>>682559
А clang я выбрал, потому что вычитал, что его лицензия не требует выкладывать исходники приложения. Но я не проверял эту инфу да и особо пока не вникал в это. Смотрел еще сравнения clang и gcc, первый по производительности опережает немного. И да, под clang я подразумеваю clang++, а под gcc - g++.
121 1682564
>>682337
Ну так в чем проблема?
if (myIdx == 0)
....auto hueta = std::get<0>(...);
122 1682568
>>682562

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


Тащемта никакая не требует. А вот если ты у них код начнёшь пиздить...
123 1682578
>>682564
Мне без этой портянки надо.
124 1682579
>>682562
Ты уже вытекаешь из треда просто.
125 1682580
>>682324
Как два пальца
https://ideone.com/bwvuuC
126 1682583
>>682559

>И что?


Чел, ну ты реально тугой. Ты пытаешься завести POSIX софт на системе, не поддерживающей этот стандарт, и спрашиваешь почему всё настолько через жепу?

>>682562

>И да, под clang я подразумеваю clang++, а под gcc - g++.


Вот тут я орать начала, ахуеть ты реально тугой. Это линки, блядь, считай что ярлыки на рабочем столе.
127 1682598
>>682580
Где здесь получение копии по нужному индексу?
128 1682599
>>682583

>порт


>POSIX софт


Это я тугой? Винда тут даже ни при чем. На любом другом дистрибутиве linux все было бы +- тоже самое. Clang'у так же бы пришлось говорить где лежат библиотеки. И о каком, нахуй, posix речь, когда ИСХОДНИКИ, сука, той же libc++ не содержат в CMAKE параметра для управления теми самыми posix потоками, разве что на unix от них вообще пришлось бы отказываться.

>линки


Хуинки. Че ты несешь, нахуй?

>>682579
Тебе в рот.
129 1682608
>>682598
Ну поменяй const auto& tuple_value на auto tuple_value, будет тебе копия, лол
130 1682614
>>682608
Мне нужно чтобы (в данном случае match) возвращался копию этого значения из кортежа.
При этом лямбда не должна захватывать ничего по ссылке\указателю.
131 1682615
>>682614

> чтобы функция возвращала копию


Фикс
132 1682635
>>682614
Как ты себе представляешь возврат разных типов из одной функции? делай в функторе все то, что ты хотел делать с возвращенным значением
133 1682639
>>682635

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


Вот и выяснял полдня как можно было бы приблизится к этому
134 1682649
>>682639
Тебе анон правильно говорит. Не пытайся засунуть банан в жопу, лучше его съешь.
Без имени.png30 Кб, 390x615
135 1682651
Почему не компилируется?

>error: invalid operands of types ‘Int’ and ‘Int’ to binary ‘operator+’


Если убрать все из main(), то нормально компилируется.
Зачем тогда нужна именно такая форма operator+ с указателями?
136 1682652
>>682649

> Не пытайся засунуть банан в жопу


Ну и истории у вас
Пока решил отказаться от этой затеи и отложить её до других случаев
137 1682658
>>682562

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


1) Скомпилированные программы не попадают под действие GPL
2) Благодаря GCC Runtime Linking Exception ты можешь использовать glibc, не попадая под действие GPL
138 1682660
>>682639
Посмотри доклад Полухина про трюки из такси, там вроде что-то похожее в третьей части.
Алсо, можно auto поставить вместо типа возвращаемого значения
139 1682661
>>682651
Погугли, как оператор перегрузить
15750256980030.jpg24 Кб, 267x274
140 1682663
>>682651

>new еще и без delete


>перегрузил + с разными типами (Int, Int*)


>динамическая аллокация без очистки на каждый вызов +


>складывает указатели


Пизда. Ты наверно туториал по С# открыл вместо С++ да и не заметил.
141 1682667
>>682660
То, во что выводится auto, становится понятно уже в compile-time, а у него runtime. auto -- это тебе не "ну давай как в петоне))0"
142 1682676
>>682660

> Алсо, можно auto поставить вместо типа возвращаемого значения


Я так и сделаю, но в таком случае мне этот картеж вообще не нужен будет.
А так бы я по индексу делал копию param и получал нужный тип. Ну если бы это работало, конечно.
143 1682677
>>682661
>>682651
Тогда почему такой оператор вообще компилируется? Что он значит?
144 1682679
>>682663
Этот код нормально компилируется, если оставить main() пустой. За каким хуем в таком случае нужна такая форма operator+ с указателями?
145 1682681
>>682679
Ты определил Int ^ (Int, Int ^), и на это компилятор выдал тебе справедливое "пощёл нахуй", когда ты попытался сложить Int ^ и Int ^.
146 1682686
>>682681
На "определил" clang++ и g++ просто молча скомпилили. Почему?
147 1682688
>>682686
Код не использовался нигде и компилятор его выкинул?
148 1682692
>>682651
Хуя ты дурачек, дружище съебка ты из треда, тебе все равно только в макдаке останется работать с таким подходом
149 1682693
>>682688
Это само собой. Но код был валидный. Зачем нужен class ^operator (class, class^) ? Почему он компилируется?
150 1682697
>>682635
Ну вдруг у тебя реально есть надобность в функции типа A★ A::operator+(B★), зачем компилятору такое запрещать. И, да, если тебе интересно, он должен скомпилироваться если ты сделаешь Int ★c = (★a) + b
151 1682698
>>682697

>Int ★c = (★a) + b


Это уже лучше. А можно просто a + b ?
152 1682703
>>682698
Так ты определи Int ^ operator+(Int ^, Int ^), тогда будет можно.
>>682686
Потому что можно что угодно определить. Тебя смущает сложение разнородных объектов? Может, я хочу матрицу умножать на вектор типа b = A x, тогда сигнатура должна быть vec operator(mat, vec). Логично? Пиздец как логично.
153 1682705
Блять, со звёздочками можно не объебаться, только если отвечаешь на пост, в котором с ними объебались.
154 1682706
>>682703

>Так ты определи Int ^ operator+(Int ^, Int ^), тогда будет можно.


Это через friend определять? А то если в классе пытаюсь определить, то компилер ругается. Говорит, что лишний аргумент ненужон.
155 1682735
>>682706
Вне класса, просто как функцию. Чтоб в private поля лезть, нужен friend, да.
156 1682744
>>682735

>error: ‘friend’ used outside of class


>error: member functions are implicitly friends of their class


Заебали, так и скажите сразу, что перегрузка операторов это фейк. Зачем пудрите мозги нам, сишникам и скриптовикам?
image.png9 Кб, 415x105
157 1682748
>>682677

>Тогда почему такой оператор вообще компилируется? Что он значит?


https://github.com/sosachbot/cppthreadhat/wiki#Памятка-нюфагу
158 1682760
>>682744
Я что, виноват, что ты даун?
https://gcc.godbolt.org/z/4-gAgH
Annotation 2020-05-10 122428.png21 Кб, 736x232
160 1682786
Это UB или нет?

Если что, это код из одной популярной библиотечки для работы с utf-8
https://github.com/nemtrif/utfcpp/blob/master/source/utf8/core.h
161 1682832
Почему сначала не выполняется первый поток?
https://ideone.com/jmLGRr
162 1682833
>>682786
&& гарантирует выполнение слева направо
163 1682841
>>682676
This и не выёбывайся, все так делают >>682564
164 1682845
>>682832
Потому что ты не умеешь пользоваться WinAPI. Для этой задачи хватит и обычных std::mutex и std::thread
165 1682846
>>682845
Что я конкретно делаю не так. Мне надо именно на винапи сделать
166 1682952
>>682832
В каком смысле "не выполняется первый поток"?
167 1682978
Хочу сделать приложение, которое будет пользоваться интернетом. Что можно прочитать, про устройство интернета, и собственно про средства, которыми должна пользоваться такая программажелательно с примерами реализации простой программы?
168 1683064
>>680235
>>680249
ИМХО, это не тру вей. Загугли ключ, который манглинг отключает
169 1683075
>>681810
Почитай Страструпа. У него есть калькулятор в книге - прочитай, разберись и адаптируй для своей задачи.
170 1683095
>>683064
и как ты без манглинга делать перегруженные функции?
171 1683124
>>681810
Если нужна не рекурсия то формула перегоняется в какую-то из польских нотаций (например в обратную польскую с помощью алгоритма сортировочной станции). Ну а в польской нотации выражение элементарно вычисляется на простом стеке.
172 1683165
челики, скомпилировал свой драйвер kernel sys и вопрос как теперь его установить ??
173 1683172
>>683165
на .inf файл правой кнопкой мыши, и там будет "установить"
174 1683176
>>682841
Ты долбоёб? Я не хочу портянки этой хуиты писать которые ещё и будут работать только в блоке if
изображение.png107 Кб, 1920x1080
175 1683179
>>683172
но там нету его
176 1683181
>>683165
sc create -> sc start в cmd.
177 1683189
>>683181
Спасибо анон!
178 1683213
>>683176
Оберни в IIFE. Вообще, как ты себе видишь нормальное решение своей задачи? Генерировать 2^64 версий std::get? Или может создавать для каждого tuple список из лямбд и обходить его с целью поиска лямбды, которая вызовет нужный get?
И вообще, ты должен знать, какой конкретно индекс у тебя будет в конкретном месте ещё на этапе написания кода. Если ты не знаешь, то пиздуй использовать std::map
179 1683262
>>682978
Чтобы фундаментально разобраться, читай про сокеты и протоколы - TCP, UDP, HTTP, TLS, и т.д. Всё остальное работает поверх этого.
Потом либо ебош на сокетах по хардкору, либо бери готовые библиотеки и фреймворки. В одной только винде куча всяких апи под разные задачи
https://docs.microsoft.com/en-us/windows/win32/networking
180 1683302
>>683262
Спасибо за наводку. И ещё тогда вопрос, какими фреймворками и библиотеками обычно пользуются в реальности?
изображение.png65 Кб, 1461x585
181 1683318
Сап, как в конец переменной buf внести название найденного файла (GuitarPro7.exe), чтоб потом через CreateProcess запустить его?
182 1683320
>>683318
sprintf?
183 1683322
>>683302
boost.asio
изображение.png76 Кб, 1347x790
184 1683326
185 1683329
>>683326
_stprintf или swprintf
попробуй
186 1683333
>>683326
Хотя ты вообще какую-то хуйню пишешь
У тебя что вся программа это запуск гитарпро? Напиши скрипт на повершеле лучше
187 1683335
>>683326
Ещё один ебануктий, который не слышал про wchar_t, TCHAR и всю эту хуйню
188 1683338
>>683318
Как же уебищно выглядит винапи
изображение.png30 Кб, 658x567
189 1683340
>>683329

>_stprintf


Теперь он ругается на "%s".
190 1683341
>>683335
>>683338
Я учусь на первом курсе, эти типы данных сунули нам в лабу без каких-либо пояснений, вот пытаюсь в них вникнуть.
191 1683344
>>683340
Блять, ну так и подставь tchar как ты делал выше с buf
Неужели такого подобия нельзя заметить при написании?
193 1683347
>>683341
Повезло вам, нас ебучий говнинус заставляли учить вместо системы для людей.
194 1683350
>>683347
А вот и быдло вылезло
195 1683352
>>683347
Потом мне нужно будет делать процессы на линуксе без каких либо метод, а лекций сейчас нет.
196 1683353
>>683344

>Неужели такого подобия нельзя заметить при написании?


Та я тупой и не понимаю.
197 1683354
>>683345
Благодарю.
198 1683363
>>683333
Ну вот такое у меня задание, нельзя другим способом блять.
199 1683380
Плюсовики, а что у вас делается для облегчения изучения языка? Не боитесь ли через несколько лет повторения ситуации как с перлом и коболом, когда специалистов тупо не найти даже за нормальные деньги? Сейчас я смотрю, куча народу с С/С++ перепрыгнула в Go, и новые проекты уже только на нём начинает. Опасная ситуация, вам не кажется?
200 1683395
Хай гайзы.
Почему дауны из комитета до сих пор не введут стандартизированный ABI, чтобы не ебаться со всеми этими совместимостями между компилерами, линкерами и их версиями.
Есть ситуации, например пукалки с 1КБ памяти, для которых билдить желательно по-другому - ну и пусть делают себе какой-то кастомный тулсет, хуярящий фасткол во все дыры. Но в подавляющем большитнстве ситуаций наверняка возможен единый бинарный интерфейс, который позволит нормально сосуществовать всему зоопарку билд-инструментов
Ваши мысли по этому поводу, коллеги
201 1683417
>>682832
Бамп.
>>682952
В смысле сначала должен выполнится цикл в первой функции, и только потом во второй
202 1683423
>>683417
Ну и нахуя ты создаешь залоченный мьютекс и сразу же ждешь его в своем цикле? Убери из цикла WaitForSingleObject и должно заработать.
203 1683429
>>683395

> до сих пор не введут стандартизированный ABI


Всё сломается нахер за последние 20 лет написанного.
204 1683432
Что почитать, чтобы понять что вообще такое abi?
205 1683439
>>683423
Все равно не то. Оба процесса исполняются одновременно. А суть задания в том, чтобы сравнить вывод без мьютексов и с ними.
image.png13 Кб, 709x152
206 1683451
207 1683481
Давно не программировал на C++
Как мне вот это std::array<std::pair<uint8_t, intptr_t>, 6> a; перевести на вектор?
208 1683484
>>683395
Titus Winters и пытается как-то>>683417

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


Всё равно не понял. А что происходит, если не это? В любом случае почитай, как использовать мьютексы, потому что:
1) создаёшь уже залоченный мьютекс и пытаешься его потом захватить
2) захватываешь один и тот же мьютекс кучу раз в одном треде без соответствующего разлочивания
3) OpenMutexA емнип возвращает ошибку, если мьютекса не существует - проверяй коды ошибок функций

В любом случае возьми и сам пройдись дебаггером.
Безымянный10.png2 Кб, 460x61
209 1683486
Не бейте, а скажите, как инициализировать.
210 1683487
>>683484

> А что происходит, если не это?


Циклы выполняются одновременно, в итоге выводятся числа от 0 до 20, вместо 10
211 1683504
>>683481
Такой сложный вопрос я задал что-ли? Подскажите.
Почему вот так не работает std::vector<std::pair<uint8_t, intptr_t>> a(5, std::make_pair(0, 0));
212 1683540
>>683504
pair не тот. make_pair возвращает pair<int, int>
213 1683569
>>683095
Базара нуль, извини
214 1683578
>>683432
При компиляции - каждый .cpp файл превращается в .o\.obj, и потом вся эта параша линкуется линкером в один .ехе файл, и линкер разрешает всякие внешние функции.

Так вот - это всё ебаная бинарная масса, которая работает четко благодаря неким соглашениям.

Например, как и кто чистит за собой стэк (либо сама вызываемая функция, либо тот, кто ее вызывает).
Как вообще аргументы в функцию передаются (те самые calling conventions)
Как кидаются и ловятся эксепшены.
Из более забавных вещей: какой layout у каждого класса и так далее.

Здесь всё - четко на доверии. Если ты, допустим, эстет, и руками сделал бинарники разными компиляторами\версиями компиляторов - у них внезапно один и тот же std::string может быть реализован по разному (например где-то есть SSO, а где-то нет).

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

Собстно, вот это "доверие" и некий "договор", как все должно выглядеть - и есть ABI.

>>683481
std::vector v(a.begin(), a.end()); Спасибо С++17
215 1683694
>>683380

>а что у вас делается для облегчения изучения языка?


Не считая того, что весь интернет забит документацией, блогами, статьями, и выступлениями, а на стековерфлоу есть ответ на любой вопрос "как сделать х в с++"? Ну даже не знаю.
216 1683695
>>683380
Мы дает от 300к на руки + бонусы, и то ищем специалистов по году. Уже этот пиздец настал.
Annotation 2020-05-11 105651.png6 Кб, 370x274
217 1683696
>>683486
"Сырые" массивы можно создавать только с дефолтным конструктором без параметров. Вектор в этом плане удобнее, он может делать копии.

Ну или можно перечислить все объекты, но это только если их количество динамически не меняется.
218 1683697
Крестаны, в 2к20 юзать синглтон - зашквар или не? Если да, то что сейчас модно юзать вместо него?
219 1683747
>>683697
Юзай не то, что модно, а то, что удобно. А если о моде, то модно нынче в очко долбиться. Можешь попробовать.
220 1683749
>>683697
Зашквар это делать несколько одинаковых методов/классов, которые отличаются только типом данных, вместо использования обобщений. А синглтон это оюычный паттерн, цель которого экономия ресурсов системы.
221 1683795
>>683697
Зависит от ситуации. Главное чтобы у тебя в этом синглтоне не было мутабельного стейта, иначе ты ахуеешь ходить по всем возможным граблям.
222 1683798
>>682832
Короче при вызове функции Openmutex оказывается нужно было первым аргументом указать SYNCHRONISE, правда не понятно, в чем смысл не делать его по умолчанию
image.png87 Кб, 1366x768
223 1683852
Не могу собрать проект.Файл cpp сам по себе собирается, но стоит подкчить Shader.h вижу пикрил.
Shader.h https://pastebin.com/PEEGAcdf
Основной файл https://pastebin.com/bH8tG3pL
224 1683876
>>682693
Потому что именно этот код и не компилится. Ты же его не вызываешь.
225 1683978
>>683852

>#include <GL/glew.h>; // Подключаем glew для того, ...


Точку с запятой убери.
image.png87 Кб, 1366x768
226 1684005
>>683978
не помогло. Странно, что если начать вводить GLchar, то он подсказывает и подсвечивает, о пототм все также.
227 1684006
>>684005
Буду все комментировать и потихоньку добавлять, смотреть оде ошибка.
228 1684028
>>684006
Мразотная vs. Ничего не менял. Все работает
229 1684030
>>684028
VS не причем, криворученька.
230 1684057
>>679966 (OP)
Котаны, посоветуйте учебник по C/C++, где объясняется как устроена память, вызовы и так далее по списку. Внутреннее устройство таких простых вещей как определение переменной, функции, вызов функции и др. Заранее благодарю.
231 1684081
>>684057
Тебе не учебник по си нужен. Почитай например Архитектуру компьютера.
232 1684249
>>684057
Начни с транзисторов, вентилей. В конце до сишки дойдешь. Гугли "харрис цифровая схемотехника и архитектура компьютера"
233 1684278
>>684249
Начни с квантмеха, полупроводниковых материалов. В конце до транзисторов дойдешь. Гугли Нейман И. "Математические основы квантовой механики".
234 1684344
>>684278
Начни с эпистемологии и философии науки. Иначе как ты сможешь понять, что значит "знать"? Гугли Chalmers A. "What Is This Thing Called Science?".
20f9c410fbf43d208715252b00a080f8.jpg30 Кб, 500x337
235 1684345
>>681937

>idiv %n1, 0x0A, %n1


>cmj %n1, 0x00, .L01


> %,%, ,,&&&%..,. ,


> %,%, ,%,% %%.,.

236 1684349
>>683696
Спасибо большое.
237 1684350
Больше года не заходил сюда, а тут шапку поменяли:

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



Наконец-то вменяемость победила!
238 1684351
Аноны, извините, продублирую пост из С треда:

В самых ранних тредах, то-ли здесь, то-ли в крестотреде, анон рекомендовал как годно после С вкатиться в кресты.
Если ты еще здесь, напиши еще раз пожалуйста.
Спасибо.
239 1684357

>Uncle Bob


Сука, как же он меня выбешивает. Никогда не встречал настолько долбоебов К.О., которые вещают банальщину как откровение свыше.
90% того что он напиздел, уже неактуально.
240 1684387
кто использует c++ когда есть го и раст..
241 1684389
>>684344
Оч годно, видел кучу дебилов которые серьезно так считают
242 1684400
>>684057
"Deep C" презентация есть где-то в интернетах на slideshare.net. Там именно то всё.
243 1684403
>>684387
напиши мне драйвер на го или расте.

И потом попробуй поискать разрабов-растовиков, которые это поддерживать все будут на рынке труда. Они все будут либо додики, либо борщехлебы.
245 1684570
>>684519

>И потом попробуй поискать разрабов-растовиков, которые это поддерживать все будут на рынке труда

246 1684571
>>684387

> кто использует с++ когда есть кастрированные версии с++..

247 1684578
>>684570

>This library is just a proof-of-concept of the windows kernel-mode drivers, which can be written in Rust programming language.


>just a proof-of-concept


>can be written


Написал еллоуворлд - теперь ты программист, ведь программа написана, а остальные программы просто как много хеллоуворлдов, тривиально, можно даже время не тратить на банальщину.
248 1684594
>>684387
Го не системный язык, пчел. Язык со сборщиком мусора априори не может быть системным. А раст - мертворожденная хуйня для хипстеров. Даже Мозилла обосрались с растом и до последнего не хотят этого признавать.
15885901959881.png37 Кб, 378x288
249 1684669
Мне не нравятся касты в крестах, я нормален? Всё время пишу обычные скобками. Даже когда чужой код себе пизжу, заменяю в нем static_cast на Си-каст (вот такой я злодей).
250 1684799
>>684669
Они никак не чекают типы, и когда ты себе прострелишь ногу — не увидишь даже ворнинга (в типизированном коде, кекус).
251 1684862
>>684799
Проблема в том, что каст порой нужен только чтобы заткнуть варнинг. Тип в скобочках мне ещё не влом прописать, но уродовать выражение ебаниной static_cast<>-а только чтобы не было варнинга -- уже как-то возмущает.
252 1684867
>>684862
auto
utoa
toau
oaut
253 1684888
Плюсач, выручач.
Я постоянно испытываю дикую попаболь при сборке библиотек/бинариесов из исходников.
Постоянные ошибки, постоянные гуглёжки, как меня уже это достало.
Подскажите куда копать что бы овладеть мастерством компилирования исходников? Желательно бы ещё статейки накидать.

Заранее целую.
254 1684968
Играюсь с векторами, наткнулся на, казалось бы, нелогичную хуйню. Возврат ссылки на вектор из метода не работает как ожидалось, код тут -> https://pastebin.com/frmYKgFp

Укажите на ошибку плез (код компилится, остальное написал в комментах). Почему я не могу править внутриклассовый вектор таким макаром? Это же, блять, ссылка на него.
256 1684982
>>684977
Все так. В будущем останется только один язык - Раст.
257 1684986
>>684968
upd:
бля, вот я обосрался.
Я почему-то думал, что auto неявно должен забирать в тип ссылку (ибо я возвращаю ссылку на вектор из метода). Но нет, надо написать auto&, чтобы это заработало как надо.

А вообще, такая тема норм? То бишь, это не говнокод возвращаеть ссылку на вектор туда, где я хочу им МАНЯпулировать? Проблем вроде как быть не должно, ибо вектор неявным образом аллоцируется в куче, а не в стэке (ибо это динамический буфер). Но прикол в том, что с обычными функциями, не методами (метод - функция внутри класса) этот финт не работает, есть предупреждение возврата ссылки на оюъект на стэке (щито? Вектор разве не на куче аллоцируется?? На стэке сохраняется адрес вектора, который в куче, какая тогда проблема?). Почему это работает с методами, но не работает с обычными функциями?
258 1684988
>>684982

>Раст


Мертворожденный высер для мамкиных нитакихкакфсе. Его будущее - теперешнее положение D, не более. Максимум, если повезет, займет какую-то мегаузкую нишу в прикладухе, в системщине у него ноль шансов.
259 1685000
>>684988
Как же ты ошибаешься. Раст уже выбирают многие крупные корпорации. И это правильно, он действительно во всем лучше крестов, тут ничего не попишешь. А ди был обречен с самого начала, не было поддержки, был gc.
260 1685006
>>684986
Это говнокод. Либо ты работаешь с классом, либо с вектором и класс тебе не нужен.
261 1685017
>>684986

> вектор неявным образом аллоцируется в куче, а не в стэке


Нет. Он аллоцируется там где ты его аллоцировал. В твоем случае это автоматическая переменная, тоесть на стеке. Вектор может дополнительно аллоцировать необходимую память в куче - но она очистится при автоматическом удалении вектора. В твоем случае все ок, из-за того что ссылка и вектор находятся в одном скоупе, но если ты передашь ссылку за скоуп в котором создан вектор то ничего хорошего не будет.
262 1685032
>>685006
а если мне по каким-либо обстоятельствам нужен доступ к переменной/структуре данных класса извне? Или в рамках ооп это недопустимо, так как ломает принцип инкапсуляции?
263 1685036
>>685032
Значит твой дизайн полное дерьмо?
264 1685049
>>685017
вывод: вектор при любых обстоятельствах следует передавать по значению из функции? Ну, или же изначально аллоцировать его на куче и вернуть указатель из функции?
265 1685061
>>685049

>= C++17 - да всегда.


< C++17 - гугли NRVO
266 1685066
>>685000

>он действительно во всем лучше крестов


Наследование уже завезли?
267 1685076
>>685000
Сама Мозилла, родитель этого говна, начинает потихоньку отказываться от раста, потому что они осознали его полный обосралити. Раст - никому ненужная хуйня. Мертворожденная. Кресты мощнее раста раз в 50. Полная гибкость и всемогущество крестов против ебанутого компиля раста, в котором нет кучи фич, которые есть в крестах, нахуй то говно нужно вообще?
268 1685077
>>685076
Двачую.
269 1685080
>>685076

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


В чём это выражается?
270 1685081
>>685032
Можешь возвращать по ссылке из метода класса, но тогда нужно следить чтобы класс жил все время пока ты юзаешь эту ссылку.
271 1685086
>>685080
в том, что дохуя начинают на кресты переписывать
272 1685091
>>685086
Пруфы будут?
273 1685095
>>684888
Пока сам в скрипты сборки не залезешь не разберёшься. До сих пор шоке от некоторых дизайнерских решений от разработчиков Qt.
274 1685100
>>684888
vcpkg install library_name если лень пердолиться.

А вообще - то, что ты говоришь это странно. Во всех +- современных библиотеках есть cmake (ну окей, кроме буста), и там все собирается с полпинка одной командой.
275 1685117

> Кресты мощнее раста раз в 50


В чем мощнее?
276 1685177
>>684351
Я не он, но начинаешь в любом случае почти с С, ведь С++ с ним совместим и в нём многое используется тоже, что и в С.
277 1685213
>>685049

> вывод: вектор при любых обстоятельствах следует передавать по значению из функции


У тебя при этом будет создана его копия - а это не всегда то что нужно. В большинстве случаев ты можешь использовать ссылку при условии что она не будет покидать скоуп в котором получено. Возращения указателя неплохая идея, если ты подразумеваешь какой-то из умных указателей.
278 1685221
>>685095
Есть один немаленький проектик, где сборка на js. Вот тут я вообще охуел.
279 1685226
>>685117
Наследование, метапрограммирование (с фичей variadic templates к тому же), гибкость в выборе полиморфизма (статический vs динамический, а в расте вообще ООП как такового нет, его можно только убого костылировать через типажи), также в расте отсутствует нечто похожее на constexpr, нет кастомных аллокаторов и т.п. Продолжать? К тому же, в крестах есть бесчисленное количество библиотек для самых разных целей, когда раст юзает и будет юзать кучу биндингов из С и никогда не будет иметь стольких фич, сколько есть у крестов, потому что всем похуй на ржавый высер. Дебичи в очередной раз пытаются высрать некоего революционера, не понимая, что чтобы свергнуть С и С++ с трона системщины, нужно либо скинуть астероид на Землю, либо произвести технологическую революцию в мире железа, которая поменяла бы в корне современную архитектуру компьютеров. И первое, и второе произойдет с вероятностью ноль целых хуй десятых.
280 1685232
>>685095
Не всё так просто. Некоторые решения выстраданы.
281 1685241
>>685226
Зачем его вообще пытаются родить? Что не так с С++, что нужно что-то рожать нового?
282 1685249
>>685241
Зумеры не осиливают.
283 1685250
>>685232
Конкретно в Qt по умолчанию всё включено, нужно самому искать, какие модули не используются и отключать их. А их состав может от версии к версии изменяться. Не могу даже представить, зачем такое понадобилось.
284 1685253
>>685213
Тонко
285 1685255
>>685250
Универсальность же.
286 1685257
>>685255
В смысле? Где тут универсальность?
287 1685261
>>685257
Есть широкий спектр его применения, вот и охватывают все их сразу.
288 1685262
>>685249
По мне так часто не хватает объяснения в духе - зачем оно вообще нужно, а так же опыта написания программ, не сильно даже больших.
289 1685265
>>685241
Хуй знает, лично я пока отметил только одно приемущество раста перед плюсами - это возможно как C# около члена класса задать кастомные атрибуты типо #[zalupa_1] и потом можно пройтись по всем членам класса и отфильтровать по атрибутам. Статический метаданные одним словом. В плюсах единственный вариант такого это извращения с макросами.
290 1685268
>>685265
Зачем так делать вообще? Что это даёт?
291 1685274
>>685261

> Есть широкий спектр его применения, вот и охватывают все их сразу.


Анончик я тебя всё равно не понял.
На разных платформах по умолчанию соберутся разные пакеты. Не понимаю, почему нельзя было добавить флаг --all для "охватывания всех сразу"?
словами не передать, какая жопаболь, когда какой-то модуль не выбран для сборки, если не выбрана какая-то его зависимость. уведомлений при этом тоже никаких нет
292 1685276
>>685268
Допустим надо сериализовать некую структуру в json формат. Чтобы это сделать нужно для каждого поля вручную писать код сериализации т.к. ты не можешь пройтись по полям структуры динамически. Потом вдруг понадобится добавить еще одно поле в эту структуру и придется править код в разных места.
Вот пример https://ideone.com/4XOpFu
293 1685292
>>685226
Фанатик крестов со своим уёбищным ооп ничем не лучше фанатиков очередной хайпопараши.
>>685265

>#[zalupa_1]


Внезапно, это макрос.
294 1685296
>>685292

>Внезапно, это макрос.


Ну я там понял там адекватные макросы которые можно программировать как обычный код? Без черной магии как в плюсах с абузом скобок и склеиванием теста.
295 1685305
>>685276
А почему макроссы это именно извращение? И разве нет решений на С++?
296 1685307
>>685274
А если там куча перекрёстных зависимостей?
297 1685311
>>685305

>почему макроссы это именно извращение


Попробуй понять как это работает без пояснений https://gist.github.com/patrickBerry/8cf7799066aaf01d1b8fdab1622c1186

>И разве нет решений на С++


Получить имя поля строкой средствами плюсов без макросов невозможно
298 1685325
>>685311

> имя поля


Что?
299 1685328
>>685325
struct s
{
int zalupa; <- вот это
}
Как получить строку "zalupa" без макросов?
300 1685329
>>685311
Вопросов не больше не имею.
301 1685331
>>685328
Зачем тебе ее получать? И как получить с макросом?
302 1685336
>>685331

>Зачем тебе ее получать


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

>И как получить с макросом


#define STR(x) #x
в коде потом STR(zalupa) превратится в "zalupa"
303 1685458
>>685274
Как человек, который натрахался со сборкой этой сучары целый день, хочу сказать - не пиздите, там тебе для этого целый тул есть в виде бинарника, который, вроде, configure зовётся. Он расписывает от а до я, что нашёл на машине перед сборкой.
304 1685465
>>685296

>можно программировать как обычный код


Да, именно так.
423BB73.jpg68 Кб, 640x430
305 1685466
Подскажите хорошую иде для плюсов, чтобы все работало из коробки. Скачал затмение (каюсь), создал там хело ворлд, но сбилдить не могу, пишет что в пасе не найден какой-то мейк.
306 1685471
>>685328
Когда завезут рефлексию
307 1685475
>>685471
А это есть в планах хотя бы на c++30?
308 1685485
>>685466
Ставь visual studio. В будущем изучай, как происходит сборка и можешь vs code попробовать с cmake
309 1685494

>1685475307


в C++26 по плану. Очень оптимистично - МОЖЕТ БЫТЬ ++23
310 1685496
>>685466
Очевидная вижуал студия как вершина IDEстроения. Сверху еще решарпер++ накати и наслаждайся
311 1685502
Как настроить cmake в qt?
312 1685735
>>685502
Почему не qmake?
313 1685747
>>685735
Хочу научиться настраивать cmake, да и кьюти вроде собирались отходить от qmake
314 1685751
Двач, как узнать какая строка в моём коде вызывает Segmentation Fault?
Дебагер в Qt Creator открывает мне qstring.cpp
315 1685791
>>685751
В кор дамп загляни, если ты на Линуксе. А если на мастдае, то хз, говном не пользуюсь :(
316 1685799
>>685458

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


Это безусловно круто, но он не пишет того, чего не нашёл. То есть я написал, что не хочу qtdeclarative, значит отвалится ещё и qtwebengine и этот configure ни слова об этом не скажет. Вот и сиди думай, какие библиотеки нужны для каких библиотек, а главное зачем.
317 1685800
>>685496

> Очевидная вижуал студия как вершина IDEстроения.


devenv.exe x86

> вершина IDEстроения

318 1685804
>>685751
Запусти с дебаггером, дождись вылета, посмотри на call stack
319 1685823
>>685800
и? Главное как она охуенно работает, а не то, что ты тут пытаешься совсем уже обскурное найти.
320 1685870
Двач, что будет если я в функции буду выбрасывать исключение? Программа продолжит своё выполнение?
321 1685887
че за тулчейны и какой выбрать, к clion
322 1685921
>>685870
если оно нигде не поймается то будет std::abort() -> std::terminate()

>>685887
gcc в случае линукса, mingw в случае шинды (но нахуя тогда шлион).
323 1685924
>>685485

>Ставь visual studio


>можешь vs code попробовать с cmake


>>685496

>вижуал студия как вершина IDEстроения


Толсто.
Пока отобрал следующих кандидатов (на винду): кдевелоп, кодеблок, коделайт. Если кто-то пользовался этим, просьба поделится впечатлениями, особенно как у них там с тестами дела, на вики пишут что у коделайте нет ковереджа под винду.
324 1685926
>>685823

>она охуенно работает


Сурсы хромиума уже может открывать не падая?
325 1685931
>>685926
Может.

>>685924

>Пока отобрал следующих кандидатов (на винду): кдевелоп, кодеблок, коделайт


Вот это правда охуеть как толсто. Какие-то говноподелия. Если ты идейный хейтер (что уже само по себе смешно) - то в чем проблема взять тот-же qtcreator?
image.png46 Кб, 664x717
326 1685936
>>685931
Брал кткреатор, создал там хелло ворлд, запустил, и не вижу куда делася сам цпп файл и почему у меня только тхт. Пока экспириенсом не доволен.
327 1685939
Двач, есть вектор в векторе, как правильно удалить внешний вектор если какой-либо элемент внутреннего вектора не подпадают под условие?
Что-то я запутался в циклах, да и гавнокод делать не хочу. Подскажите.
328 1685944
>>685936
а, то есть ты нулевый вкатывальщик. Ну, страдай.
329 1685966
>>685944
Кдевелоп тоже не прошел отбор на хелло ворлд. Итого пока смогли в простое консольное приложение только кодеблокс и коделайт, рекомендую.
330 1685969
>>685966
А в чем проблема KDevelop?
331 1685970
>>685939
for (const auto &inner_vec : outer_vec) {
for (const auto &idx : inner_vec) {
if (idx is bad) {
//deallocate all the inner arrays + outer array & break
}
}
}

На псевдокодвчах, дальше сам додумаешь.
332 1685971
>>685970
блять, пробелы не схороняются, земля мне жопаскриптом, прости, анон. Разбирайся теперь в этом говне, надеюсь, что хоть чем-то да помог.
333 1685973
>>685969
Например, не могу открыть проект в окне слева и вообще пишет что запустить мейн.цпп не удалось. Смейк ему поставил, но не видит.
334 1685974
>>685969
Сравни например с коделайтом (к нему у меня еще есть вопросы по поводу синтаксиса проги) и кодеблоксом.
335 1685977
>>685973
Хз, походу KDevelop криво портировали на винду. Я на Линуксе (по стечению обстоятельств, юзаю KDE в кач-ве окружения, лол) и у меня зоибис работает.
336 1685986
Господа, хочу нырнуть в метапрограммирование, что посоветуете почитать? Желательно на английском, конечно же.
337 1685987
>>685986
Александреску же. Если вынырнешь - то наворачивай доклады Луи Дионне.
338 1685988
>>685977
Нет, добавил в системны патх смейк и прописал ему -г мингв бла-бла, кдевелоп все запустил.
image.png7 Кб, 378x140
339 1685990
>>685977
Что открывается если нажать на руководство?, на винде просится в микрософт сторе.
340 1685991
>>685986
Определись сначала со стандартом, потому как в c++17 всё метапрограммирование сводится к variadic template, constexpr if и чуть реже std::enable_if. Если типами хочешь жонглировать, то посмотри, как разные методы и типы реализованы в Boost::mp11.
Александреску читай только после всего, что я написал выше. Иначе могут произойти необратимые изменения в мозге.
341 1685992
>>685991
Эти необратимые изменения в мозге очень полезны, имхо. Я Александреску недоосилил в свое время, но многим пользуюсь до сих пор.

Помню, как коллега подошел попросил написать какую-то шаблонную хуету, и я там офигенно наперегружал всяких шаблонов структур (С++14 у них было).
342 1685993
>>685992
А какое есть реальное применение у метапрограммирования, кроме компайл-тайм вычислений и статического полиморфизма (ОЧЕНЬ годная штука, чисто бесплатный по рантайму полиморфизм)?
343 1685995
>>685993
А чем то, что ты перечислил, не реальное применение?
krestiki.png67 Кб, 1024x1085
344 1685997
>>685993
у нас в проде сериализатор\десериализатор самопальный для кернел мода протобафов не завезли с одинаковым интерфейсом в KM\UM.

Чето в духе (тайпдефы как раз для одинакового интерфейса):

auto packet = serialize(L"string", 1234, std::vector<std::wstring>{L"123", L"234});

auto s1 = packet.get<wstring_t>();
auto s2 = packet.get<int>();
auto s3 = packet.get<wstrvec_t();

Плюс, еще на шаблонах + X-macro сейчас переделываю конфиги для софтины.

MACRO(key, L"default value") - автоматически выведет тип (причем для литералов - будет wstring) сгенерирует сеттер\геттер\лукап для runtime-модификации и сброса. Сейчас еще напишу автоматическое выдирание из JSON'а всяких не совсем стандартных значений.

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

Пикрелейтед - пример говна, которое я нашлепал пару лет, и оно сейчас в проде. Я знаю, что write_to_tuple можно бахнуть рекурсивно, а не вот так лениво - но тогда мы еще не переехали на C++17, а мне было лень делать специализации структур.
345 1686003
почему Qt 5.12.8 весит 3.7ГБ, а 5.14 2.3ГБ, где подвох, они там какие-то библиотеки убрали?
346 1686005
>>679980
Пропустил, сорри. Ты не поверишь - я самоучка с купленным дипломом на дистанционном обучении. Я сидел и каждый вечер задрачивал С++ в течении года до первой работы крестовиком.
347 1686006
>>686005
Касательно выпускников вузов - тут сложный вопрос. У нас смотрят на то, что ты умеешь, а не на то, где ты учился, если мы говорим про позиции разработчиков с опытом.

Если мы говорим про интернов - то тут я ничего не скажу, не знаю.
348 1686008
анон-анон, а вот скажи - почему часть программистов не любит PCH(precompiled header)?

хожу по гиту, смотрю крупные проекты - многие не делают такую фичу.

Но почему? ведь это нехилый буст компиляции (ради прикола пробовал включать, компиляция была быстрее на 20-40%)
Да и на самом деле код становится чище без миллиона инклюдов
349 1686010
350 1686068
>>686003
Вангую потому что у 12 долговременная поддержка, а у 14 нет.
351 1686181
>>686068
А как посмотреть в чем разница? Смотрю на оффлайн версии, хочется понять без установки.
352 1686242
>>685974
Мне нравился кодблок. Особенно прокрутка правой кнопкой и дебаг-run-to-cursor одной кнопкой.

Но он не обновлялся с 2017. С ним идет какой-то мудацкий билд mingw со странными багами в случайных местах (например отсутствие std::to_string при том что с++11 очевидно поддерживается). В дебаггер ~10 лет не могут добавить питон и как следствие нормальное отображение содержимого stl-контейнеров. При открытии проектов больше 20kloc всё ложится.

Если собираешься решать что-нибудь кроме однофайловых лаб, подумай еще раз.
353 1686273
>>685466
Самый лучший вариант - clion
354 1686274
анон, посоветуй годный header-only фреймворк для юниттестов

Ну то есть чтобы блядь без ебанутых систем сборки от анунаков не слышавших про мейнстримные системы сборки и живущих в какой-то альтернативной вселенной. и чтобы оно не выглядело как говно на дефайнах
355 1686297
>>685466
Студия, нодискасс.
356 1686348
>>686242
Скачай ночную сборку, они вроде каждый месяц выходят.
357 1686376
>>686348

>потести вечную бету


А сколько будут платить?
358 1686452
>>686274
#define ASSERT_EQ(_x, _y) assert((_x)==(_y), #_x " != " #_y)

Фреймворк готов.
359 1686455
>>686274
doctest, catch2
360 1686463
>>686242
Лол блять. Зашел сейчас на их сайт.
А там после трехлетнего запора оказывается выкатили обновление в марте, где пофиксили и stl и мыло на fullhd экранах и to_string.
Похоже пора перекатываться обратно.
361 1686470
Котаны, насколько кресты медленнее сишки? В особенности, если брать STL контейнеры и умные указатели против сырых массивов и указателей в Си?
362 1686474
>>686470
Ни насколько, не еби мозг
363 1686476
Я из джавы, хочу в системные, вот типа думаю, учить сразу раст или начать с си и плюсов
364 1686477
>>686470
В дебаге? STL вектор медленнее, особенно MSVC. В релизе? Одинаково.
365 1686479
>>686476
Раст лучше, но на нем пока почти нет работы в россии.
366 1686517
>>686476
Чел, раст для системников это как для тебя J#, думает он...
367 1686559
>>686517
ну раст же лучше, и писать приятнее ну
368 1686577
>>686559

> писать приятнее


> нечитаемая параша из загогулин

369 1686608
>>686559
мертворожденная параша для борщехлебов же, ну.
370 1686639
>>686559

>ну раст же лучше, и писать приятнее ну


Как назвать подобных уебков? Вот есть кабанчики, им 40, а есть вот такие вот "ну че ты ну".
371 1686673
Пора смирится, что раст оставит кресты в прошлом. И это в общем то хорошо. Язык не уступающий, а порой даже опережающий кресты, но при этом полностью безопасный. Самое главное он активно развивается и не связан обратной совместимостью с кодовой базой 30 летней давности.
15535796363300.jpg164 Кб, 720x1280
372 1686687
>>686673
Тобой выбрана неправильная дверь, дружок-пирожок. Тред клешнеруких два блока вниз и там никого нет
1589374354185.png4 Кб, 467x106
373 1686692
Заглянул в растотред, глянув на первый же пик вспомнил, что в крестах нет нормального вывода в консоль. Либо неформатируемый по человечески cin/cout, либо небезопасный printf.
374 1686709
>>686692
vcpkg install fmt это, конечно, безумно сложно
375 1686712
>>686376
Судя по всему столько же, сколько ты готов заплатить разрабам
376 1686720
>>686709
Левые библиотеки...
377 1686724
>>686720
В с++20 завезли std::format, вот только компиляторы его еще не завезли.
378 1686807
>>686720
ты охуенный топитель за разработку без библиотек?
379 1686849
buffer.iter().zip(other_buffer.iter()).enumerate().for_each(|(index, (x, y))| assert_eq!(x, y, "not equal items at {} index", index));
Язык для людей
380 1686855
>>686849
А теперь давай то же на плюсах.
381 1686859
>>686807
Билбиотеки есть смысл тащить для чего-то нетривиального, а вот такая хуита на каждый пук — это жс-макакенг.
1398249928336.jpg22 Кб, 300x300
382 1686863
>>686692

>небезопасный printf

383 1686889
>>686639
Чмони, чуханы.
384 1686898
Двач, можно ли делать вот так?
if (vector.size() == 2 && vector[0] && vector[1]) {}
Т.е. продолжит ли он смотреть на другие условия и не вылетит ли в segfault после первого false (т.к. вектор пустой)?
385 1686905
>>686898
можно
не продолжит
не вылетит
386 1686921
>>686673
толсто
387 1686926
>>686898
нахуй ты обращаешься к элементам вектора через оператор [], если есть метод at, который проверяет границы и элиминирует возможность переполнения?
388 1686927
>>686926
Нахуй это делать если ты уже произвел проверку на size?
389 1686956
>>686927
Затем что кроме примера тебе нахуй больше ничего знать и не надо, тем более когда суть в другом.
390 1686962
>>686859
Ясно, профнепригодный
internet-meme-rage-comic-pol-antifa-meme.jpg74 Кб, 800x800
391 1686982
>>686962

>ряяя да нибамбит у миня я ни макакин

392 1686998
>>686982
сейчас бы ты еще хоть немного понимал, что ты несешь, а то твои боевые картиночки смотрятся комично очень.
393 1687017
>>686998

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


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


>ряяя маааам плюсы ни гавно!111

15888541462440.png1,6 Мб, 1387x1600
394 1687026
>>687017
2050
@
единый пакетный менеджер так и не стандартизировали
@
из-за жс-драйвен-макакенга с пакетами содержащими 1 функцию мир вошёл в сингулярность
@
чтобы собрать 1 утилитку надо поставить 3 компилятора и 293 пакетных манагера
@
а потом подождать пока они скачают кучу пересекающихся зависимостей на пол терабайте
395 1687050

>go get


антибагор
396 1687055
Аноны, столкнулся с такой проблемой, что виджеты Qt у меня зависают. Происходит это по всей видимости в моменты, когда нужно быстро что-то делать.
Например, захватываю я пакеты из сети и пытаюсь их выводить в QListWidget. Сую в хэндлер пакета что-нибудь типа listWidget.addItem("пакетнейм"). Причем хэндлер вызывается с бешеной частотой, пакетов в сети то много. Программа намертво зависает.
Или другой пример. Записываю пакеты в файл. Пакетов много, поэтому процесс наблюдаю с помощью QProgressBar. Ну то есть после записи очередного пакета value прогрессбара инкрементируется. Пакеты пишутся в цикле for. И тоже зависает, QProgressBar перестает шевелиться, окно программы не отвечает. Хотя сам процесс идет, если подождать, пакеты запишутся в файлы и программа отвиснет.
Тут ясно, что я что-то неправильно понимаю в построении десктопных программ. Но что именно, я не могу понять? Это как-то связано с оперативкой? Или стек вызовов забивается? Как этого избегать? Больше интересует первый пример.
397 1687065
>>687055
Браток, накачивай дату в буфер, и с определенным интервалом, например 5 раз в секунду фетчи виджет с буфера. А ты я так понимаю линейно с каждым обращением за пакетом сразу его вставляешь в виджет
398 1687070
>>687065

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


Да-да, именно так!

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


То есть критична именно частота обращений к методу виджета, так? Если часто его вызывать, комп охереет?
399 1687075
>>687070
Тяжело сказать не зная что там у тебя. Подозреваю что мейнлуп умирает пока ты пытаешься напихать в него дату, потому что тайм-аут у тебя вряд-ли выставлен. Поллинг или как там это называется, читани доку кьюти. И вообще старайся как можно меньше обращений делать
400 1687081
>>687075
А почему умирает во втором примере? Там же тупо цикл, внутри которого происходит генерация пакета и запись в файл. Пакеты при этом ничем друг от друга особо не отличаются, структура одинаковая. Виснет, когда пакетов много, например 200к.
401 1687090
>>687081
Я если честно не очень с куте знаком, и не знаю как там мейнлуп работает, представляю себе что он пытается создать в цикле представление о всех виджетах, а потом проверяет соответствует ли оно актуальному представлению в следующий момент до того как нарисовать, и т.к. пихаешь дату безостановочно, он постоянно заново рисует этот виджет. Короче не скажу тебе что там точно происходит, но опыт и интуиция подсказывают что нужно в буфер накачивать и по типам закидывать в виджет
402 1687093
Аноны, а для чего нужен #define в C++? Или его в C++ вообще не юзают, и это только в коде из C?
403 1687097
>>687090
А если в буфер закачивать, он в это время не будет пропускать пакеты? Или для этого надо параллелизм юзать?
Ну то есть я в хэндлере буду писать пакет в буфер. И одновременно мне надо раз в 200 мс еще отправлять содержимое буфера в виджет и очищать буфер. Это же без параллелизма никак не сделаешь?
404 1687111
>>687093
Глупый вопрос какой то. Для чего нужен дефайн в с? Для того же и в с++. Как уже писали выше использовать можно например для получения имени поля
#define PRINTER(x) #x
А так много для чего, средство очень мощное. Но вообще использовать макросы дурной тон.
405 1687113
>>687097
Ну у тебя по возможности вообще не должно быть ключевой логики во фронте. Пихни ее в другой тред например. Куте точно мультитрединг поддерживает, поэтому проблем не должно быть. Но у тебя я так понимаю дата вся создана где-то заранее, а не какие-то пакеты приходящие в реальном времени, поэтому тебе не нужно все пакеты за раз тоже качать. Тяжело понять в общем не зная что тебе нужно
406 1687114
>>687111
Что за имя поля?

> Но вообще использовать макросы дурной тон.


Я вообще если честно не понимаю, зачем нужен #define, если можно объявить функцию.
407 1687116
>>687113
Пакеты в реальном времени приходят.
А как пакеты захватывали и выводили в интерфейс в те времена, когда многоядерных процессоров не было? Вот Wireshark например, судя по вики, сделали в 1999 году.
408 1687132
>>687116
Поток, которым ты оперируешь -- вещь логическая. Можно к одному потоку хардверному цеплять сотни вот таких. Кроме того, ввод/вывод можно совершать неблокирующими операциями, типа если данных в буфере нет, то и хуй с ним, едем дальше.
409 1687148
>>686008
Вот скажите мне, это один растошизик в треде пытается троллить или их целая секта?
410 1687150
>>687148
Сорян, с ссылкой на пост промахнулся, ее там не должно было быть.

Бтв предкомпилированные заголовки требуют единообразного начала всех исходников, вроде как, что не всегда на получается поддерживать при несогласованной разработке.
Ну, во всяком случае, я так понял смысл этой штуки.
411 1687154
>>687114
Бамп вопросу.
412 1687157
>>687081

> А почему умирает во втором примере? Там же тупо цикл


Приведи уже код, а то непонятно, что ты там делаешь
413 1687166
>>687157
Ну вот код цикла, например.

for (int i = 0; i < totalPacketsAmount; i ++)
{
QVector<Timestamp> timestamps;
for (int i = 0; i < gsPacketSet.size(); i ++)
{
timestamps.append(gsPacketSet.getTimestamp());
}
int index = compare(timestamps);
timestamps.clear();

Packet packetForWrite = gsPacketSet[index];
QByteArray writeArray(QByteArray::fromHex(packetForWrite.getStr().toLatin1()));
file.write(writeArray);

allGSStreams[index].incCurrentPacketIndex();
gsPacketSet.replace(index, getReplaceForGS(index));

progressBar->setValue(i);
}
414 1687170
>>687055

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


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

Давай вместе почитаем доку https://wiki.qt.io/Progress_Bar
Первый же абзац:

>You could use a progressBar widget on your widget and run the operation in a different thread (using moveToThread()).


и в первом же сниппете

> QFutureWatcher<void> FutureWatcher;


> QFuture<void> future = QtConcurrent::run(&this->MyObject, &MyClass::LongFunction);



Короче, RTFM.
415 1687171
>>687170
Пощады! Я же ньюфаг, я никогда не юзал мультитрейдинг.
416 1687173
>>687154
И сколько ты напишешь функций?
Хорошо, у тебя есть шаблоны, это круто.
Но там сложные правила для вывода типов и возвращаемых значений, что нужно будет учесть.
template<typename T>
T func(T x) { return x; }
Совсем не всегда одно и то же, что и
#define func(x) #x
Которую написал анон в том посте
417 1687175
>>687173
А имя поля - это что? И зачем его получать?
418 1687184
>>687170
А что именно вешает главный поток в моем случае? progressBar->setValue(i)? Или что? Какие действия вообще могут вешать главный поток, и что делать, чтобы этого избегать?
419 1687186
>>687175
У тебя есть
struct A { int x; };
Имя единственного поля в структуре - это x.

Бтв с шаблонами надо магию уже подрубить в этой ситуации.
В случае макроса
#define func(obj, x) obj.x
И со структурой выше ты кодом
A a;
func(a, x);
получишь значение в поле a.x.
Если честно, хз за решетку, почему ее тот анон использовал, я не настолько плотно шарю в макросах.

С шаблонами лично я не знаю, как это сделать.
420 1687188
>>687186
Шаблон - это компилирующийся код, который пытается собраться комплиятором(инстанциироваться) только когда его вызывают, причем для каждого уникального набора параметров отдельно, используя значения полей, что ты туда передаешь.
А макрос - это замена текста на аргументы, согласно объявленному твоим правилом, но со своей магией.
float pi{3.14}; //будет выделена память под переменную pi со своим значением.
#define PI 3.14 //все встретившиеся PI в исходном коде(в области трансляции, если быть точным) будут заменены на 3.14 и забиты в исполняемый файл как литералы.
И иногда это больше тебе развязывает руки, чем просто функция.

более щарящий анон поправит, если я обосрался.
421 1687195
>>687186
Решетка стрингифицирует то, что ты посылаешь в макрос.
#define STR(x) #x STR(std::cout << pidor) станет строкой "std::cout << pidor", а не вызовом соответствующей функции.
422 1687201
>>687114

>, зачем нужен #define, если можно объявить функцию.


А дефайном ты можешь объявить части функций и создать внутренний дсл, позволяющий коротко и ясно заменить кучу бойлерплейта( и создать больше возможностей выстрелить в ногу). Шаблоны это решают, но не до конца.
423 1687232
>>687184

>Какие действия вообще могут вешать главный поток


Количество работы выполняемое на нём.
Ты по получении каждого пакета:
а) Парсишь пакет и что-то там сравниваешь, в зависимости от размера может выполняться долго. Алсо, ещё гоняешь очень дохуя аллокаций. Выдели вектор себе один раз до входа в первый цикл (и если знаешь размер приходящих — преаллоцируй память заранее, если не знаешь — аллоцируй при входе в первый цикл, иначе на каждый append под твой массив будет выделяться память по новой и копироваться содержимое, что как бы будет работать пизда как медленно);
б) Если у тебя SSD — запись на диск достаточно дорогая операция, чтобы просто так делать её в главном потоке. Если у тебя HDD — то это просто пиздос смерть гроб, особенно если у тебя там не 5 байт.
в) Не знаю, что именно у тебя в предпоследних 2-х строчках, но что-то похоже на копирование, если в gsPacketSet хранится не пара интов — не надо так.

>и что делать, чтобы этого избегать?


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

>progressBar->setValue(i);

424 1687239
>>687232

> Не знаю, что именно у тебя в предпоследних 2-х строчках, но что-то похоже на копирование, если в gsPacketSet хранится не пара интов — не надо так.


Это набор пакетов. Я должен выбирать пакет из набора и записывать его в файл. И реплейсить забранный пакет новым.
425 1687243
>>687232

> Стараться вообще нихуя не делать на главном потоке, и использовать его только для отрисовки UI и как точку синхронизации.


Подожди, а что вообще главный поток в коде? Я что-то вообще запутался. Вот у меня есть MainWindow, в котором все виджеты, кнопочки и прочее. При нажатии на кнопочки программа делает всякие штуки, например, генерирует и записывает пакеты в файл. Что здесь главный поток? Или что должно быть им, если делать все правильно?
426 1687245
>>687186
Не понял, а почему нельзя просто:
struct A { int x; };
и потом:
A a;
a.x = 2;
Или что ты там с х собирался делать?
427 1687248
>>687201
Что такое части функций, внутренний дсл, бойлерплейт?
428 1687260
>>687248
Забей на дефайны.
429 1687267
>>687114
У меня для тебя три слова:

КОДОГЕНЕРАЦИЯ
BOOST::PREPROCESSOR
КОД КАК ДАННЫЕ
430 1687269
>>685990
Бамп.
431 1687270
>>687239
Это никак не отвечает на мой вопрос, не копируй объекты если оне не совсем мелкие, короче.

>>687243
Это поток, с которого начинается выполнение твоей программы (т.е. поток, в котором системным сишным рантаймом была вызвана функция main()).

>Или что должно быть им, если делать все правильно?


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

По хорошему, тебе надо сделать 2 потока, в одном все вычисления в другом последовательную очередь с записью на диск, но учитывая твой уровень — просто вынеси всё, что не связано с UI в другой поток, и как я и писал не дрочи сильно память в начале цикла, а результаты лучше складывай в буффер в памяти и записывай одной транзакцией по завершению.

inb4 сразу план действий:
Создай поток, крути на нём свои вычисления, и с помощью сигналов закидывай результаты обратно в главный поток где и меняй прогресс.
432 1687272
>>687269
Учитывая, что ты явно не на KDE сидишь на шинде — нихуя.

>>687267
Ему ещё рано такие слова слышать, зачем ты так?
433 1687276
С чего начать написание простого файлового менеджера? Нуб, QT использовал, про filesystem знаю. Не знаю с чего начать. Сорри если не тот тред.
434 1687284
>>687276
с вывода в консольку папок и файлов
435 1687289
>>687245
Допустим, у тебя есть массив строк, каждая из которых - имя поля конкретного класса
И ты можешь в цикле по этому массиву использовать все его поля, а не перечислять их отдельно, если прикрутишь макросы.

Нет, я не говорю, что это обязательно нужно и используется на каждом шагу. Просто без макросов вроде как нет пока способа так сделать.
436 1687297
>>687111
https://habr.com/ru/post/475162/ - мой коллега статейку написал - почитай, будет очень полезно
image.png142 Кб, 265x190
437 1687343
>>686692

> небезопасный printf

438 1687364
Анон, вчера в голову пришла идея о бесконечных целых типах. Типа числа с тыщью, миллионами разрядов и проч. Применений масса, хеши, финансы с учётом каждой копейки и проч. Также р напридумывал, что бесконечный целый тип может быть основным целым типом в языке, а компилятор (или какие-то там политики) уже решают, какое брать аппаратное ограничение, может быть 8 бит хватит на всю систему.
Есть ли какие-нибудь придумки по этой теме? Не думаю, что я первый это придумал
1589430624491.jpg50 Кб, 884x346
439 1687365
Помогите распарралелить код, каждый тред вызывает данную функцию, но время выполнения точно такое же, что и в последовательной реализации.
440 1687374
>>687364
Если ты про то что бы можно было для каждой системы выставлять свои размеры интов, то в си и плюсах так и есть. Размер char в битах никак не ограничен - его могут выставить любым. Есть проблема с тем что подразумевается (хотя стандарт наверное этого не требует) что размер int равен макимально "удобному" для процессора размеру (тоесть обеспечивает максимальное быстродействие), что ограничивает размеры int размерами регистров процессора. Что ограничивает размеры char, так как char может быть любым, но он не может быть больше int.
442 1687421
>>687364
Многие языки используют длинную арифметику, например питон и хаскель. ЕМНИП в хаскеле используется GMP по умолчанию для типа Integer.
Безымянный.png24 Кб, 604x601
443 1687494
sizeof(head)) возвращает 56 байта вместо 54.
Функция начинает правильно работать только после сдвига указателя на 2.
Почему так?
444 1687506
>>687421
Я только сейчас понял, что у хаскелля-то реально есть применение. На нём же всякие уравнения можно писать почти как на доске, лол.
445 1687516
>>687364
было, в перле, в 91 году.
446 1687519
>>687494
#pragma pack ?
Screenshot.png90 Кб, 803x718
447 1687521
Пикрелейтед.
Почему при написании кастомного компаратора для бинарного поиска надо джва раза перегружать оператор () ?
448 1687536
>>687519
Понял, спасибо.
449 1687563
>>687494
Ох лол, только недавно была статья на хабре про это, а точнее про собес синьора который не знает про выравнивание.
450 1687581
>>681813
Гугль тебе в помощь в твоем нелегком деле. Самый первый скилл программиста - умение гуглить нужную информацию;
https://tutorials.visualstudio.com/cpp-calculator/add
https://ru.wikibooks.org/wiki/Язык_Си_в_примерах/Калькулятор_выражений_в_обратной_польской_нотации
https://github.com/yjy0625/expression-solver
451 1687584
>>687521
Наверное чтобы не ебаться с конвертированием Dummy в int. std::binary_search требует чтобы объекты по которым ведется поиск могли быть сконвертированы в типы обоих аргументов оператора(). А тут они его просто перегрузили и никакой конвертации не нужно. Незнаю наколько это правильно.
452 1687600
>>687494
Structure alignment же
453 1687602
>>687584
ну, это работает, можешь сам проверить. Просто эти 2 перегрузки немного с толку сбивают.
454 1687659
Прорамач, объясни дураку пожалуйста как создавать qm файлы и как их подрубать к проекту.
Прочитал в справочнике Qt о QTranslator и ничего не понял.
Вопрос именно с созданием qm файлов.
Спасибо.
455 1687945
Пытаюсь скомпилировать https://github.com/alxbrn/universal-graphics-hook получаю C2365, не врубаюсь как фиксить пипец я тупой.
456 1688241
>>685466
У меня хорошо заработал из коробки только xcode. Все остальные жалкие поделия либо тащат с стобой 20Гб легаси и не умеют в лигатуры (visual studio), либо не могут из коробки создавать hello world без пердолинга и кофигурирования всяких cmakeов (qtbuilder, clion, eclipse).

Текстовые редакторы для разработки я вообще не рассматриваю. Хотя всякие мастера своего пердольного дела типа Джона Блоу пердолят код в emacs и альттабаются в студию только для дебага (я так не могу)

Конечно сказывается отсутствие единого стандарта для проектов, и требование под каждую платформу пердолить свою ide
457 1688282
>>688241

>У меня хорошо заработал из коробки только xcode


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

>либо не могут из коробки создавать hello world без пердолинга и кофигурирования всяких cmakeов


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

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


Тащемта, есть CMake, который поддерживают примерно все.

>и требование под каждую платформу пердолить свою ide


Ты сейчас ахуеешь, но вообще всю инфраструктуру для этих иде (кроме парсера) надо тоже пердолить под каждую платформу свою.
458 1688285
>>688241
я наверное никогда не пойму гундёж по поводу сборки. стоит 2-3 дня уделить на освоение компиляции и симейка и проблем потом не возникает.
Безымянный.jpg165 Кб, 604x818
459 1688323
460 1688336
>>681810
Писал как-то прогу по решению примеров. Понимает приоритет операций и скобки.
Вводишь строку. Пример 2(3-1)^2. И она выводит результат. Может поможет.

#include <iostream>
#include <stack>
#include <string>
#include <cmath>
#include <cstring>
using namespace std;

#define STKDPTH 32

size_t Priority(char symbol);
void Computaion();
void Parse(char s);

char STACK_OPER[STKDPTH];
double STACK_NUMB[STKDPTH];

size_t idx = 0;
size_t idx2 = 0;

int main()
{

char expression[] = "3+2
4-(6/((6/3)+2))^((22)-1)\0";

size_t N = strlen(expression);

for(size_t i = 0; i < N; i++)
{
if(isdigit(expression))
{
size_t len = 0;

while(isdigit(expression[++i]) && i < N)
len++;

if(!len){
STACK_NUMB[idx++] = expression[--i] - '0'; continue; }

len++;
i -= len;
size_t j = 1;
double numb = 0;

while(j <= len)
numb += pow(10, len - (j++))
(expression[i++] - '0');

STACK_NUMB[idx++] = numb;
i--;
}
else
Parse(expression);
}

while(idx2 != 0)
Computaion();

cout << STACK_NUMB[0]<< endl;

return 0;
}

void Parse(char s)
{
if(s == '(' || STACK_OPER[idx2 - 1] == '(')
{
STACK_OPER[idx2++] = s;
}
else if(s == ')')
{
while(STACK_OPER[idx2 - 1] != '(' )
Computaion();
idx2--;
}
else
{
while(idx2 != 0 && ( Priority( STACK_OPER[idx2 - 1]) > Priority(s) || Priority( STACK_OPER[idx2 - 1]) == Priority(s) ) )
Computaion();
STACK_OPER[idx2++] = s;
}
}

size_t Priority(char symbol)
{
if ((symbol == '+') || (symbol == '-'))
return 1;
if ((symbol == '') || (symbol == '/'))
return 2;
if ((symbol == '^'))
return 3;
return 404;
}

void Computaion()
{
double result = 0;
double right, left;
char oper;

right = STACK_NUMB[(idx--) - 1];
left = STACK_NUMB[(idx--) - 1];
oper = STACK_OPER[(idx2--) - 1];

switch(oper)
{
case '
':
result = left * right;
break;
case '/':
result = left / right;
break;
case '+':
result = left + right;
break;
case '-':
result = left - right;
break;
case '^':
result = pow(left, right);
break;

default: break;
}
STACK_NUMB[idx++] = result;
}
460 1688336
>>681810
Писал как-то прогу по решению примеров. Понимает приоритет операций и скобки.
Вводишь строку. Пример 2(3-1)^2. И она выводит результат. Может поможет.

#include <iostream>
#include <stack>
#include <string>
#include <cmath>
#include <cstring>
using namespace std;

#define STKDPTH 32

size_t Priority(char symbol);
void Computaion();
void Parse(char s);

char STACK_OPER[STKDPTH];
double STACK_NUMB[STKDPTH];

size_t idx = 0;
size_t idx2 = 0;

int main()
{

char expression[] = "3+2
4-(6/((6/3)+2))^((22)-1)\0";

size_t N = strlen(expression);

for(size_t i = 0; i < N; i++)
{
if(isdigit(expression))
{
size_t len = 0;

while(isdigit(expression[++i]) && i < N)
len++;

if(!len){
STACK_NUMB[idx++] = expression[--i] - '0'; continue; }

len++;
i -= len;
size_t j = 1;
double numb = 0;

while(j <= len)
numb += pow(10, len - (j++))
(expression[i++] - '0');

STACK_NUMB[idx++] = numb;
i--;
}
else
Parse(expression);
}

while(idx2 != 0)
Computaion();

cout << STACK_NUMB[0]<< endl;

return 0;
}

void Parse(char s)
{
if(s == '(' || STACK_OPER[idx2 - 1] == '(')
{
STACK_OPER[idx2++] = s;
}
else if(s == ')')
{
while(STACK_OPER[idx2 - 1] != '(' )
Computaion();
idx2--;
}
else
{
while(idx2 != 0 && ( Priority( STACK_OPER[idx2 - 1]) > Priority(s) || Priority( STACK_OPER[idx2 - 1]) == Priority(s) ) )
Computaion();
STACK_OPER[idx2++] = s;
}
}

size_t Priority(char symbol)
{
if ((symbol == '+') || (symbol == '-'))
return 1;
if ((symbol == '') || (symbol == '/'))
return 2;
if ((symbol == '^'))
return 3;
return 404;
}

void Computaion()
{
double result = 0;
double right, left;
char oper;

right = STACK_NUMB[(idx--) - 1];
left = STACK_NUMB[(idx--) - 1];
oper = STACK_OPER[(idx2--) - 1];

switch(oper)
{
case '
':
result = left * right;
break;
case '/':
result = left / right;
break;
case '+':
result = left + right;
break;
case '-':
result = left - right;
break;
case '^':
result = pow(left, right);
break;

default: break;
}
STACK_NUMB[idx++] = result;
}
461 1688365
>>688241

> не умеют в лигатуры


Не ври, у меня студия с шрифтом Cascadia Code всё прекрасно показывает. Только надо студию перезагрузить после смены шрифта
462 1688409
Аноны, не могу себя контролировать и засиживаюсь до 4 утра, кодя по 14+ часов на С++ каждый день. Каждый раз говорю себе, что пора менять режим, но напрочь забываю о течении времени и "возвращаюсь в реальность" в начало пятого утра. Потом не могу заснуть ВООБЩЕ до примерно 6 утра и просыпаюсь в 11. Чувствую, что башка чуть хуже соображает, чем неделю назад, да и давление немного начало появляться (мне 26 лет и я не жирный, камон, чтоо?!). Было у кого-то такое? Как боролись с режимом и какой режим оптимален для того, чтобы случайно не подохнуть за клавиатурой? Кто-то сталкивался с печальными долгосрочными последствиями такого ебашилова?
463 1688483
>>688409
Пообещай себе, что не будешь так делать
464 1688507
>>688409

>мне 26 лет и я не жирный, камон, чтоо?!


Ты рофлишь или да? 26 лет - у тебя ПОЛОВИНА жизни уже позади и ты удивляешься что у тебя давление? Лол.
465 1688563
Сап, недавно решил попробовать С++, до этого программировал только на C#. У меня к вам такой вопрос: почему в любом коде, который я видел, никто не использует using namespace std; и т.п., а все пишут std::? Это как-то связано с желанием иметь больше букв на квадратный пиксель монитора или как? Я реально не вкуриваю.
466 1688564
>>688563
std определяет множество вещей, так что может случится конфликт имен. По этому получишь по жопе если будешь юзать std глоабльно.
467 1688565
>>688507
Пчел, но я живу в стране, где мужчины в среднем доживают до 81 года, к тому же у меня фул семья долгожителей, включая курящих дедов. Вроде как наследственностью не обременен, не курю, не ширяюсь, не жру все подряд(
468 1688570
>>688565
Тогда может тебе съебать с русскоязычной борды?
469 1688586
>>688409
Блин, а я наоборот завидую твоему энтузиазму. Надо делать задание к сессии, а я не могу ни строчки написать себя заставить.
470 1688597
>>688565
От всего, что ты описал там еще выше, хорошо помогает один очень известный бензодиазепин, но вероятно в вашей стране его даже по рецепту не продают. И вопреки некоторым мнениям под ним отлично работается.
471 1688609
>>688565
挨拶します、日本人兄弟!
1522969250450.jpg58 Кб, 812x1024
472 1688729
>>679966 (OP)
Аноны, шарпист в треде, помогайте. Помню тут были шутки про то как превратить кресты в жабаскрипт. Так вот, чем обмазываться, чтоб использовать кресты как C#? Любые классы обмазывать shared_pointer? Есть какие-то гайды как это правильно делать? Что ещё пердолить?
На кресты вкатываюсь вынуждено, на производительность похуй пока она не ниже шарпа, главное максимально снизить сложность кодинга и подводные камни.
473 1688822
https://www.opennet.ru/opennews/art.shtml?num=52948
Раст не нужен, ошибки в памяти делают только студентики
474 1688846
>>688822
Тебе сюда: >>1680461 (OP)
475 1688894
>>688409
И что же именно ты так усердно кодишь? Переписываешь код ядра линукса?
Очевидно, что написание кода - лишь часть процесса разработки. Кучу времени еще тратится на планирование архитектуры, выбора/осваивания предметной области и тд

PS В 26 лет проблем с биодвижком не должно быть, походу и правда что-то ты делаешь не так. Ну и если не сидишь на тяжелой наркоте, то я вообще не понимаю, что ты забыл в C++ треде
476 1689025
>>688894
Пишу пет-проект, связанный с инфосеком. Долгая история.
Конечно же, я не только пишу код. Планировать архитектуру куда сложнее, код только описывает ее.
477 1689031
>>689025
Хах, убийцу антивируса Попова ваяешь?

Ну тогда это не 14 часов C++, а 14 часов разработки - и это субъективно нормально, если затягивает
478 1689033
>>688409
Могу предложить 2 варианта. Первый - найти работу, второй - не находить работу.
479 1689040
>>688729
#define var auto
480 1689309
>>689031
не, антивирусы - юзлесс хуйня. Пишу нечто, что связано с бинарной эксплуатацией (там куча эвристики и лоу-лвла, долго объяснять)
481 1689418
Есть большой список компайл-тайм констант:
inline constexpr int var1 = 123;
inline constexpr int var2 = 234;
...

Хотел сделать как-нибудь покрасивее, потипу:
using const_t = inline constexpr int;
const_t var1 = 123;
const_t var2 = 234;
...

Но видимо это так не работает. А как сделать чтобы заработало?
482 1689428
backtrace под армом не хочет ничего выводить и говорит о 0 адресах и 128 фреймах без изменений.
Ключики разные пробовал вставлять, но не зашло.
Читал, что нужно пересобирать glibc и туллчейн вместе с ним. Вы что подскажете?
483 1689438
>>689418
лолмакрос
484 1689567
Пагни, я правильно понял, что struct используют тогда, когда нужен просто класс без методов?
485 1689579
>>689567
Тогда бывает нужно интерфейс какой-то навалять, тогда тоже используется
486 1689613
>>689567
struct это практически тоже самое что и class, отличие только в том что в class по умолчанию все члены private, а в struct - public. Используешь что удобно.
487 1689696
Можете порекомендовать, что то годное для изучение Boost начинающему C++ программисту быдлокодеру?

Учился через Sololearn. Насколько это правильно или стоит читать книги, продемонстрированные в шапке?
488 1689743
>>689696
https://theboostcpplibraries.com/ вот прям всё по порядку и читаешь
489 1689744
>>689696

> Можете порекомендовать, что то годное для изучение медицины начинающему проктологу?



Ну вот и что ты хочешь выучить-то бля? Весь буст от корки до корки? Ну удачи.
Если припрёт, тогда и выучишь, не трать своё время.
490 1689752
>>689696
Буст - просто коллекция библиотек. Нужны графы? Кури Boost.Graph. Парсеры? Boost.Qi. Метапрограммирования Boost.MPL/Hana. Нетворкинг? Boost.ASIO. И так далее. Не надо - не смотри, там ещё та помойка, чтобы на неё жизнь тратить.
491 1689782
>>689696
Пиши код, а не изучай то, что забудешь через неделю
492 1689792
>>689782
Вот кстати да. Забывается очень быстро, если не закреплять практикой.
Я бы спросил совета где бы опыта набраться? Например в ДС, для мальчика лет 30 имеет ли смысл стажировку поискать? Есть ли конторы где работают до полуночи?
493 1689813
>>689782
Ну хорошо, а если буду кодить и изучать, что то? Стоит всё таки учить через книги? Ну или через, что ты учил C++
494 1689816
>>689813
Да что угодно, лишь бы писать. Напиши качалку файлов, напиши чат, напиши хуевую двухмерную игру, напиши архиватор, напиши хоть что-нибудь блять. Да, это в гигатонны раз сложнее, чем читать. Но сильно полезнее.
495 1689834
>>689816
В процессе написания чего-то часто возникают вопросы. Когда с ними приходишь на /pr/ в профильный тред, ответом часто бывает "ебать ты кассир".
496 1689835
>>689816
А для хуёвой двухмерной игры сгодится sfml?
497 1689837
>>689835

>быстрофикс.


Ну или что посоветуете новичку?
498 1689852
>>689834
Потому что тут тебе никто ничего не должен. Двач это не твой репетитор. Просто фильтруй шлак.
>>689835
Да. Лично я начинал развлекаться с SDL2 (это была система видеонаблюдения, а не игра), но и проект вначале был на plain C. Если речь сразу о C++ идет, то sfml нормальный выбор.
499 1689854
>>689852
Хорошо, спасибо, Анонче. А вот теперь встал вопрос по трудности использования. Она трудна в использовании, просто слышал, что её очень трудно устанавливать, один чел даже неделю думал, как установить sfml.
500 1689855
>>689854

>Она трудна в использовании,


Билять, это должен был быть вопрос
501 1689857
>>689852
Опять я, мне уже всё равно, насколько сложная sfml, я точно напишу на ней. Ещё раз спасибо.
502 1689858
>>689854
vcpkg install sfml
503 1689859
>>689858
Так clion и cmake.
504 1689861
>>689859
и? vcpkg install sfml работает во всех трех осях с симейком.
505 1689863
>>689861
А разве vcpkg - не утилита для visual studio?
506 1689870
>>689863
https://docs.microsoft.com/ru-ru/cpp/build/vcpkg?view=vs-2019

vcpkg: a C++ package manager for Windows, Linux, and MacOS

Блядь, погугли 15 секунд
507 1689878
>>689835
Более чем
508 1689879
>>689878
Окъ, а ты уже ей пользовался?
509 1689885
>>689870
Установил, но не через эту хуергу, потому что clion всё равно ругался.
510 1689898
Когда я запустил этот код
#include <iostream>
int* main(){}
мой окна защитник матюкнулся. Почему?
511 1689900
>>689898
Любая программа не из стора с подписью - потенциальный вредонос, ведь может сделать что угодно, никакие официальные инстанции её не проверили и не выдали сертификат..
512 1689903
>>689792
Опыта можно набраться и коммитами в опенсурс, так и пиши что ищешь ментора который за ручку проведет от интерна до миддла.
513 1689904
>>689900
А теперь давай без шуток.
514 1689905
>>689904
Здравствуйте, спасибо что пользуетесь нашим программным продуктом Окна защитник, мы передали ваше обращение техническому специалисту, ожидайте ответ.
515 1689925
>>689852
ебать ты кассир
516 1689932
>>689904
>>689898

> Когда я запустил этот код


Нет, не запустил. В си нет кода, только описательный псевдотекст, его нельзя запустить, т.к. он не является программой. Ты запустил совсем другое, сеначала программу-компилятор и прочие утилиты, а потом программу ими сгенерированную.

Если еще не понятно, приведу сравнение. Вот есть, скажем, джаваскрипт, или питон, вот это код, ты пишешь код и этот код выполняется. А в си не так, твой текстовичок не выполняется. Поэтому то что ты напечатал и показал и что проверяет антивирус это разные вещи, причем даже разные категории.
517 1689954
>>689567
Когда грубо говоря тебе нужен именованный кортеж, без инвариантов, зависимостей его значений от чего-то, не паблик членов и т.п. Можно сделать и классом, но struct явно показывает твои намерения другим и тебе в будущем.
518 1689969
>>689932
Не придирайся к словам, шизоид.
519 1689988
>>689309
Уж постарайся, мы не глупые
520 1690009
Привет парни, тут ображулил такой момент, но не могу понять такое поведение ожидаемо? или зависит от конкертного компилятора;
521 1690012
>>690009

>блять случайно отравил.


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

list<string> l = {"a", "b", "c", "d"};
auto it = find(l.begin(), l.end(), "e"); // it == l.end()
++it;
cout << *it << endl; // "a"

Вс
522 1690014
>>690012
чото браузер у меня глючит извиняюсь еще раз, в общем итерация от end() всегда будет указывтаь на нулевой элемент?
523 1690040
>>690012
Инкремент end() это уже само по себе UB, а его разыменование это вообще гроб гроб кладбище пидор
524 1690062
>>690012
А что не так? У тебя итератор стал end(), который нельзя разыменовывать, так ты его еще и инкрементировал и вдвойне получил UB.
Capture.PNG10 Кб, 585x160
525 1690283
>>679966 (OP)
Пишу программу на С++, GUI WinForms.

Как сделать таблицу подобную пикрилу? Пробовал datagribview, но она какая-то пресная, а я хочу чтобы была как на пике. Скажите, пожалуйста, как такое сделать?
526 1690463
Посоветуйте книгу по stl и новому c++.
527 1690465
>>690463
Effective Modern C++ от Майерса
528 1690473
>>690465
помоги, молю >>690283
529 1690476
>>690283
Пиши на qt
530 1690477
>>690473
Тебе скорее в C# тред
531 1690480
>>690465
Спасибо
532 1690483
>>690477
я не знаю шарп. я пишу на с\с++ мне нужно написать десктоп на окна с таблицей, взял гуи winforms он с++ поддерживает.

>>690476
спасибо, посмотрю
533 1690497
>>690040
>>690062
дак это и спрашиваю, обнаружил, что при разыменовывание end()+1 получаю итератор равный begin(). Это просто неопределенное поведение компилятора, Или может где прописано в стандарте?
Положняк 534 1690569
нормальны ли реализации циклического буфера ?
535 1690606
>>690497
Ты релиз собираешь или дебаг?
536 1690653
>>690606
а есть какая-то разница в данном контексте? но работает и так и так. g++ 7.5.0
ConsoleAct-1.png3 Кб, 677x343
537 1690840
Как сделать надписи в консоле разных цветов? А то у меня меняется весь цвет консоли.
538 1690900
>>690840
Ncurses
539 1690908
>>690900
спасиб
540 1691065
>>690569

> int


size_t
541 1691316
В чем разница между ссылкой и указателем на функцию?
542 1691362
Как начать писать сетевые приложения на С++? Что посоветуете прочитать/изучить.
543 1691363
>>691316
Указатель ты можешь переназначить, а ссылку нет.
Снимок экрана от 2020-05-17 13-16-43.png267 Кб, 1599x1113
544 1691364
Короче суть оказалась проста: qmake все вот эти макросы Q_OBJECT Q_PROPERTY обрабатывает только в заголовочных файлах, но не просто в заголовочных файлах проекта которые тупо заинклюжены, а которые еще и в rонфиге проекта добавлены как заголовочные:

HEADERS += songbackend.h
SOURCES += main.cpp

И тогда все компилируется

>>679970
>>680050
>>680508
>>680521
545 1691370
>>691065
А зачем?
546 1691372
>>691316
В c++ нет такого понятия, как ссылка на функцию
547 1691393
>>691372
Есть
548 1691408
>>691362
Сокеты
549 1691527
>>691393
Мааааам, скажи жи нет в плюсах ссылок на функции
550 1691603
>>691364
А как так вышло, что в про-файле не было этого? У меня автоматически добавляется вроде как.
551 1691604
>>691364
какое же говно QT. Если еще с verdigris сьедобно хоть как-то, то вот по классике с этими говномакросами и moc'ами - ваще ад.
552 1691654
>>691603

> А как так вышло, что в про-файле не было этого?


Бабушка не положила
Ну наверно в шаблонах QtQuick этого нету по умолчанию.

>>691604
Это да, но в конечном итоге все равно главное что работает.
qml с кодом на плюсах взаимодействует (кстати типы вроде uint8_t не поддерживаются, круг использования такой типизации все меньше и меньше, по крайней мере в приложениях, в каких нибудь библиотеках на си всегда будет актуально для цветовых каналов, еще для чего то)
изображение.png22 Кб, 656x158
553 1691738
Для вката норм? или лучше Страуструпа читать?
554 1691739
>>691738
Курсы от яндекса на курсере лучше всего
555 1691758
>>691738
Лучше Липпмана почитай
556 1691762
>>691738
Лучшие бесплатные курсы. За что-то другое уже платить надо. То, что привели выше, уже платное
557 1691784
>>691739
слышал, но там за денежку.
558 1691879
>>691362
Палю гайд:
1. Учишь С++
2. Учишь сети
3. Учишь нужный инструментарий для сетевой работы: API ОС/Boost/Qt Network/"github.com/Vasyan9B/SamayaAhuennayaSetevayaLiba"
4. Говнокодишь убийцу nginx с рпс не меньше тоннажа твоей мамаши
И можешь считать что справился
559 1691883
>>691784
написано "Учавствовать бесплатно" Aspartic
560 1692041
>>691879
Есть же Asio С++, причем отдельно от буста. Годная либа, с помозью которой можно пилить сетевые приложения, которые будут выдерживать траффик фейсбука (если сервер не на твоем тщедушном камплюхтере с вай-фай соединением офк, лол)
561 1692239
Как передать массив(объявленный через new) структур в функцию по значению?
562 1692249
>>692239
используй вектор
563 1692310
Ананасы, можно ли как-нибудь создать псевдоним для функции (кроме макросов, указателей на функции и обёрток своих)?
А то иногда такие уебанские имена бывают, шо пиздец
изображение.png161 Кб, 1920x1080
564 1692348
Решил изучать winapi выдает ошибки, что это и как фиксить?
565 1692356
>>692310
Можешь ссылку взять
>>692348
У тебя в настройках скорее всего тип проекта Application, а по коду выглядит так, будто пытаешься написать библиотеку.
krestiki.png28 Кб, 754x367
566 1692366
>>692348
Переключи subsystem проекта в Windows как на пикриле.

И да, для того, чтобы изучать винапи - консольной приложеньки достаточно, зачем тебе WinMain - хз.
15822851831390.png42 Кб, 1085x974
567 1692374
Оцените код, аноны
568 1692384
>>692374
Недавно вкатился, прошел пару курсов за 1500, думаю норм получилось. Скоро на собес в майл ру пойду.
569 1692385
Делаю свой шаблонный класс-контейнер, можно ли как-нибудь для него реализовать range based for?
570 1692391
>>692374
Не знал, что в c++ есть and/or
571 1692407
>>692374
нечитаемый пиздец
572 1692410
>>692374
iostream головного мозга

>choise

krestiki.png61 Кб, 776x667
573 1692415
>>692385
Надо написать begin и end для своего класса, которые возвращают обьект с операторами *, ++ и !=.

Приложил ублюдочный пример
574 1692508
>>692415
Спасибо, анон
575 1692512
>>692391
дефайнами ты хоть аллаха можешь призвать

Просто этому клоуну помимо наговнокоженного клубка из ифов было мало видать
576 1692550
>>692374
Нормально, как джавоскрипт после минификатора.
577 1692684
>>692512
And и or - это не дефайны
578 1692725
Ананасы, как лучше писать:
void foo() по старинке
или же auto foo() -> void ?
Зачем вообще придумали второй вариант и когда/почему его надо использовать?
579 1692742
>>692725
Это какая то новомодная ебала из Rust/Swift/Go

Они там ебанулись все и договорились хуячить одинаковый синтаксис причем спорный
580 1692743
>>692684
Еще not и в наше рабочем кодстайле он за каким-то хуем предпочтительнее оператора !
581 1692744
>>692725
Для лямбды удобно использовать типо auto func = []() -> int {return 1;}; Для обычных функций хуй знает вообще зачем это нужно.
image.png48 Кб, 764x114
582 1692770
Аноны, мне нужна ваша помощь. Я никак не могу понять, что хочет преподаватель. Единственное, что понятно - написать функцию-шаблон.
Снимок экрана от 2020-05-18 15-28-39.png143 Кб, 702x1016
583 1692774
Помогите ньюфагу понять что не так.
Хочу прицепить к проекту mpv так как там есть проработанный апи который позволяет плеером управлять там хоть с луаскриптов хоть с осцилогрофа, плюс он есть собранный на компе с шаредлибой.
Но естественно я чет подзабыл а как он вообще либу то неходит? Ровно так как инклюд указывает?
584 1692778
>>692725
Это, кажется, для шаблонов вообще штука, чтобы выводился правильный тип, если аргументов шаблона два и какой-то из них предпочтительнее. Где-то у Йосуттиса было в его трактате о шаблонах об этом написано.
585 1692789
>>692725
Второй вариант устарел с выходом c++14, теперь достаточно просто auto
586 1692790
>>692725
Это математики опять говна залили со своими нотациями.
В программировании всегда так, если видишь какое-то уебанское соглашение или название, значит это кто-то зачем-то послушал математиков.
587 1692792
аноны, что можно почитать по теме С++ в задачах обработки сигналов/проектировании систем управления?
588 1692802
>>692744
И что ты сейчас высрал?
В твоей строке auto используется как тип новой переменной, а у него - в объявлении функции
589 1692804
>>692792
Отдельно читай про С++, отдельно про свои системы управления.
590 1692806
>>692770
template<typename Container> int hui(const Container& zhopa){...}

Не благодари
591 1692811
>>692804
ну там мб подходы устоявшиеся какие есть и тд
592 1692812
Какая же я тупая мразь. Учу плюсы вот по этой хуйне https://ravesli.com/glava-1-itogovyj-test/
Всё читал вдумчиво, понимал, задания все делал с первого раза. А как дошло дело до итогового теста завис на первом наипростейшем задании. Просто как будто из головы вылетело всё, что до этого изучал. Пришлось подглядывать в решение. Теперь жопа горит блять.
593 1692816
>>692811
Подходы - в алгоритмах и идеях, а не в языке реализации.
594 1692817
Добрый день, мужчины, нужен хелп, томушо информатик задал написать несколько задач по С++, но нихуя не дал конспектов или каких-либо обьяснений, есть шарящие, помогите =(

1). Написать программу, которая будет выводить на экран: «Введи 2 числа», затем считывать введенные с клавиатуры целые числа и выводить на экран «a + b = !результат!», «a - b = !результат!», «a * b = !результат!», «a / b = !результат целочисленного деления!», «a % b = !результат остатка от деления!», «float (a / b) = !результат вещественного деления!»

2). С использованием оператора if () написать программу, которая будет выводить на экран: «Введи 3 числа», затем считывать введенные с клавиатуры вещественные числа и выводить на экран «Максимальное из введенных !результат!»

3). С использованием оператора switch () написать программу, которая будет выводить на экран: «Введи количество углов», затем считывать введенное с клавиатуры целое число и выводить на экран при соответствующем введенном значении одну из фраз: «Это треугольник», «Это четырехугольник», «Это пятиугольник», «Это многоугольник» или «Нет такого многоугольника»

4). Написать программу, которая будет выводить на экран: «Введи свой возраст», затем считывать введенное с клавиатуры целое число и выводить на экран правильно законченную фразу: «Вам !число! год/года/лет», если число находиться в промежутке (1-130), обработать возможные ошибки.

5). С использованием оператора while () написать программу, которая будет выводить на экран: «Введи многозначное число», затем считывать введенное с клавиатуры целое число, считать количество цифр и выводить на экран корректную фразу: «В числе !число! !результат! цифра/цифры/цифр»

6). С использованием оператора do {} while () написать программу, которая будет выводить на экран: «Введи отрицательное число», затем считывать введенное с клавиатуры вещественное число, определять является ли число отрицательным, если да, то выводить на экран «Молодец!», если нет, то снова выводить запрос до тех пор, пока не будет введено отрицательное число.

7). С использованием оператора for () написать программу, которая будет выводить на экран: «Введи размерность», затем считывать введенное с клавиатуры целое число и выводить на экран таблицу умножения вида:

(если введено 3)

1 2 3

1 1 2 3

2 2 4 6

3 3 6 9

8). Написать программу, которая будет генерировать массив из 30 случайных чисел в промежутке от -10 до 10 и выводить его на экран.
594 1692817
Добрый день, мужчины, нужен хелп, томушо информатик задал написать несколько задач по С++, но нихуя не дал конспектов или каких-либо обьяснений, есть шарящие, помогите =(

1). Написать программу, которая будет выводить на экран: «Введи 2 числа», затем считывать введенные с клавиатуры целые числа и выводить на экран «a + b = !результат!», «a - b = !результат!», «a * b = !результат!», «a / b = !результат целочисленного деления!», «a % b = !результат остатка от деления!», «float (a / b) = !результат вещественного деления!»

2). С использованием оператора if () написать программу, которая будет выводить на экран: «Введи 3 числа», затем считывать введенные с клавиатуры вещественные числа и выводить на экран «Максимальное из введенных !результат!»

3). С использованием оператора switch () написать программу, которая будет выводить на экран: «Введи количество углов», затем считывать введенное с клавиатуры целое число и выводить на экран при соответствующем введенном значении одну из фраз: «Это треугольник», «Это четырехугольник», «Это пятиугольник», «Это многоугольник» или «Нет такого многоугольника»

4). Написать программу, которая будет выводить на экран: «Введи свой возраст», затем считывать введенное с клавиатуры целое число и выводить на экран правильно законченную фразу: «Вам !число! год/года/лет», если число находиться в промежутке (1-130), обработать возможные ошибки.

5). С использованием оператора while () написать программу, которая будет выводить на экран: «Введи многозначное число», затем считывать введенное с клавиатуры целое число, считать количество цифр и выводить на экран корректную фразу: «В числе !число! !результат! цифра/цифры/цифр»

6). С использованием оператора do {} while () написать программу, которая будет выводить на экран: «Введи отрицательное число», затем считывать введенное с клавиатуры вещественное число, определять является ли число отрицательным, если да, то выводить на экран «Молодец!», если нет, то снова выводить запрос до тех пор, пока не будет введено отрицательное число.

7). С использованием оператора for () написать программу, которая будет выводить на экран: «Введи размерность», затем считывать введенное с клавиатуры целое число и выводить на экран таблицу умножения вида:

(если введено 3)

1 2 3

1 1 2 3

2 2 4 6

3 3 6 9

8). Написать программу, которая будет генерировать массив из 30 случайных чисел в промежутке от -10 до 10 и выводить его на экран.
SAGE 595 1692829
>>692817
Пошел нахуй.
596 1692830
>>692817
Хуй будешь?
597 1692832
>>692817
Чел, я уроки по c++ вчера впервые в жизни открыл и мне этого хватило чтобы знать как сделать вообще любую из этих задач. Тут знания нужны чуть более углублённые чем для написания хеллоуворлда. Именно чуть.
598 1692844
>>692817
Нахуя это на плюсах писать. Пиши на питоне
599 1692853
>>692806
Не, это-то понятно. А дальше что? Просто считать, что мы можем обращаться по [] к элементам и получать длину через length?
600 1692856
>>692817
500 руб.
fakemailro=1#2ANUSmUzSailPUNCTUMr^fwu
601 1692858
>>692817
Сделаю за 450р
602 1692878
>>692817
Сделаю в лучшем виде за 5 руб + перепихон

Пиши сладкий:
ashotzuhrabovich19TA@54ANUSmr=+ailPUNCTUMrSE1u
603 1692899
Что это?
string const * const &
604 1692901
>>692802
То и высрал, что у меня в примере тип возврата из лямбды так же через стрелочку -> int.
605 1692902
>>692899
Ссылка на константный указатель на константную строку
606 1692928
>>692901
Лол но ты написал "удобно использовать". Только вот trailing type - единственный способ указать тип возвращаемого значения у лямбды . Нет никакого альтернативного способа как в случае с обычными функциями: написать int [](){} не получится
607 1692932
>>692928
Можно ничего не указывать и после return явно написать return (int)1.f; , и будет тип возвращаемого значения int.
608 1692933
>>692932
а теперь попробуй вернуть std::optional без указания trailing type
image.png11 Кб, 475x190
609 1692934
610 1692936
>>692934
а если std::nullopt?
image.png16 Кб, 478x290
611 1692943
612 1692946
>>692943
кайф. Каждый nullopt будешь создавать вот так вот ручками через конструктор optional, или таки воспользуешься trailing return type и будешь писать return std::nullopt ?
image.png80 Кб, 209x305
613 1692953
>>692946

>Каждый nullopt будешь создавать вот так вот ручками через конструктор optional


К чему вообще этот спор? ты мне говоришь, что так нельзя сделать, я показываю, что можно. Офк юзать можно и то и то при разных обстоятельствах.
614 1692956
>>692953
Я нигде не утверждал, что НЕЛЬЗЯ, а показал вполне юзкейс, где оно отлично заходит.
615 1692969
>>692817
Толстишь анонче, толстишь.
616 1692987
>>692812
Если ты после прочтения всех предыдущих глав не смог эту хуету решить с первого раза, то я хз как ты вообще комп включил и по клавишам попадаешь. Тебе не то что программистом, тебе грузчиком только и остаётся быть.
1589810775583.jpg195 Кб, 1080x577
617 1692990
>>692812
Представляю как ты бы охуел от книги k&r
618 1692996
>>692990
Выглядит сложно на первый взгляд. Если там не важен порядок того как эти скобки закрываются {(}) - считается невалидным то тогда под каждый тип скобок можно запилить вектор, при открывающей скобке пушить, при закрывающей попать, в конце правильность проверить тем, что каждый вектор должен быть пуст.
619 1693012
Что почитать для вката в олимпиадную прогу и нужно ли знать новые стандарты чтобы быстрее писать код?
620 1693024
>>693012

> Что почитать для вката в олимпиадную прогу


Cracking the code interview, потом дрочить leetcode

> нужно ли знать новые стандарты чтобы быстрее писать код?


Быстрее не быстрее, но знать нужно
621 1693074
Ебаный цирк с фигурными скобками и initializer_list
622 1693079
Двач, подскажите, есть ли такой контейнер что-бы можно было задать ему фиксированный размер и вставлять в него элементы с одной стороны, а с другой что-бы они смещаясь по очереди вылетали?
624 1693164
>>692996
А если важен, то один стек под все скобки, каждой скобке -- своё значение.
625 1693236
>>692817
Вика, ну я же намекал на доп занятия после уроков, глупенькая.
626 1693378
>>692774
Пчел, ну разберись ты раз и навсегда. Что такое разделяемая библиотека? Это
-include
-lib
-bin
Инклюды ты уже подключил. Теперь тебе нужно указать, с чем линковать твой скомпилированный код, т.е. указать .lib файлы библиотеки (.a в линуксе). Для этого обычно указывают отдельно пути, где искать такие файлы и отдельно сами названия файлов.
Финальный штрих - это скопировать нужные .dll в папку со своим исполняемым файлом или указать путь к .so в линуксе.
627 1693828
аноны, соре, если проебался с тредом
но, как мне кажется это наиболее релевантный из всех
что можно почитать (лучше посмотреть) по устройству linux?
628 1694413
Как работает initializer_list ? Я имею имею ввиду принцип работы, как это реализовано. И норм использовать такую инициализацию матрицы?(двойным листом)
629 1694519
>>694413
Попали, как можно нормально делать.
https://gcc.godbolt.org/z/N9ZahR
630 1694776
>>693012
Тебе хуем по лбу дадут если будешь юзать из std, что-то помимо std::list. По этому все алгоритмы и сортировки нужно знать самому.
631 1694848
>>694776
Кто даст?
321s.png16 Кб, 1042x580
632 1694979
Суп, программисты. Помогите вот с чем: имею кучу текста формата, как на пике. Как его форматнуть так, чтобы остались только номера вида "55048912", на пример? Скажу сразу - я не погромист. Когда-то давно были потуги, но так и не осилил.
Собсна, хочу попробовать написать софтину для работы.
633 1694987
>>694979
не надо это писать на С++
634 1694996
>>694987
Почему?
635 1695008
Выводится что надо qDebug() << string;
Выводится только один раз (вывожу в цикле) только часть строки std::wcout << string;
Почему так? Строка является std::wstring
636 1695054
Анон, нубас на связи, совета спросить хочу.
Открыл литкод с самой простой задачи:
https://leetcode.com/problems/reverse-integer/

В целом работает мое поделие, решил проверку диапазона вводимого числа проверить и получается все сую в if. Это не слишком вульгарно, всю программу в иф?
637 1695122
>>694848
Проверяющие люди/система.
638 1695138
>>695122
Уверен? Я ооочень сомневаюсь. Я уверен что можно использовать std
639 1695148
640 1695152
>>694979
Регулярные выражение можно использовать, если у тебя номер всегда длиннее веса в килограммах.
Типо ищешь выражение длиной в 8 символов, состоящее только из цифр.
641 1695201
>>695152
То есть будет примерно так?
list = текст из файла или копипаст в листбокс;
regex numb("^[0-9]{8,8}$");
if (regex_math(list, numb))
cout << numb;
642 1695240
Как в Visual Studio 2019 компилировать код по строкам? То есть от строки к строке проверять значение переменных, переходя к новой строке при нажатии на кнопку.
643 1695274
Есть какие- нибудь примеры с перегрузкой >> std::vector/std::array для базовых типов?
644 1695316
>>695240
Если ты про режим отладки, то просто кликаешь на полосу слева от кода, появляется красный кружок.
В этом месте программа остановиться и ты сможешь просмотреть значения переменных.
krestiki.png42 Кб, 893x725
645 1695346
>>695274
мне было скучно
646 1695358
Сап, помогите советом , решил вкатиться в плюсы начал изучать , пока крайнее, что затронул это классы.
С++ это первый язык который я изучаю, пока мне он очень нравится. Стоит ли переходить в другой язык для получения основ или уже не надо ?
647 1695363
>>695358
Если тебе нравится - обязательно изучай. Вообще - это самое главное, чтобы нравилось.
648 1695370
>>695363
Благодарю, и еще вопросик(мб банальный) , что в будущем смогу сделать с этим языком (какие программы написать ( только приложения под компьютер/игры/или функционал больше)?
649 1695374
>>695370
На плюсах возможно все написать . Вопрос в том удобно ли на нем это делать. А вообще все, на что у тебя хватит сил и времени.
650 1695376
>>695370
на С++ можно писать абсолютно все, от веб фронтенда (зачем, но это уже другой вопрос), до драйверов. Так что ответ - любые программы.
651 1695378
>>695376
Еще раз очень благодарен
image.png29 Кб, 868x428
652 1695404
Двощь, почему так?
653 1695417
>>695404
Где-то умную мысль слышал, и тебе расскажу. Звучит невероятно, но так и есть -- в документации всё написано.
https://en.cppreference.com/w/cpp/regex/regex_match
654 1695420
>>695346
Как насчет std::array
655 1695451
>>695420
сложнее, т.к. надо держать доп. индекс куда писать. Используй вектор?
656 1695461
>>695451
Вектор для трех значений оверкилл...
657 1695466
>>695417
Я так понимаю, что динамические массивы и regex нельзя подружить? По крайней мере, в интернетах не нашел ничего по этому поводу. С обычной строкой все работает на ура.
Хуй знает зачем я вообще брал динамический массив

Алсо, в последующем хочу в массив запихнуть текст из файла. Потом циклом по каждой строке можно будет пройтись regex_math?
658 1695483
>>695138
Ты дурак блять? Никто тебе не разрешит ничего, кроме вектора и листа. Все остальное ручками сам. А вообще бросай эту хуйню, олимпиадное программирование ни о чем. Эти дебилы на проде не могут быстро нагуглить нужной информации, а в яндекс за три котлеты устроится не особо и поможет.
мимо другой анон
659 1695492
>>695346
А если я захочу вектор не стрингов, а своих классов?
660 1695494
>>695492
ну, делай так же, только замени вектор на свой класс?
661 1695495
>>695494
Костыльно.
662 1695496
>>695494
Не проще шаблонном сразу реализовать? Так универсальнее.
663 1695513
>>680822
В нормальных командах UI пишут руками.
В говноедских попилочных юзают дезигнер.
664 1695540
>>695494
Мне бы с интами, но массив...
665 1695563
>>695466
Бумп
666 1695596
>>695513
Проще ведь нахуярить в дизайнере интерфейс и вручную из него говна повыкидывать
667 1695651
>>695483

> Ты дурак блять? Никто тебе не разрешит ничего, кроме вектора и листа. Все остальное ручками сам.


С чего ты взял?
668 1695656
>>695483
Не знаю про прям супердрочерскую олимпиадную парашу - но и яндекс и гугл на собесах разрешают весь STL (я собесился и туда, и туда)
669 1695662
>>695656
И как собес прошел?

> другой анон

670 1695668
>>695316
А если у меня цикл и я хочу проверять значение переменных при каждой новой итерации?
671 1695669
>>695668
Тоже самое.
672 1695697
>>695662
в гугл не взяли, но я и сильно не готовился. Яндекс прошел, но оффер от Нвидии был сильно жирнее
673 1696010
>>695697
Пруф будет? или полшел нахуй
674 1696011
>>695656
Собесы и олимпиада - разные вещи.
675 1696059
>>695466
Если честно, то не пойму, кто из нас дурак. В чём взять match для каждой строки вектора? Или это не то, что тебе нужно?
676 1696173
>>696010
Какой пруф? Что меня в гугл не взяли?
677 1696266
>>696173
Что оффер от нвидии пришел. или ты отказаться решил?
678 1696271
>>695346
Красивый язык с++, хоть и не понятный нифига на 1 взгляд.
qeq.png69 Кб, 903x835
679 1696300
>>696266
норм?
Безымянный11.png22 Кб, 695x582
680 1696526
Почему не работает загрузка из файла, ананасы? Что не так делаю?
681 1696951
Ананасы, каким образом вы оцениваете сроки работы и часто ли угадываете? Я вот за два года работы так и не научился их внятно оценивать и постоянно срываю свои оценки. Из-за чего последнее время стал зверски стрессовать хотя всем похуй, предъяв ни разу ещё не было. А из-за постоянного стресса уже с такой ненавистью думаю о работе
Короче, как вы оцениваете время, когда до конца не знаете, с чем столкнётесь?
682 1697234
>>696300
хуёрм. Для такого пруфа достаточно paint'а
683 1697736
>>697234
Пусть на тапок свой фотку экрана с открытым окошком сделает
684 1697808
Господа, поясните за паттерн Prototype. Почему прототип нужно копировать? Что мешает мне создать точно такой же объект с помощью new? Копирование быстрее, чем инициализация?
Просто вот есть у меня куча объектов-прототипов, и у каждого по несколько полей-указателей. Я не понимаю, зачем мне заново прописывать инициализации для каждого из полей в методе Clone(), когда я могу просто создать новый объект, и все точно будет работать.
685 1698270
Хранится double как uint64_t. Ну, надо так.

Какие есть варианты интерпретировать uint64_t как double без каста данных? (потому-что каст из числа 4.7 сделает 4, а не то, как хранится это число в памяти на самом деле)

Есть вариант с union
union U
{
uint64_t u64;
double d;
} tmp;
tmp.d = 2.2;
tmp.u; //вернет не 2, как в случае с кастом, а 4616977747989548237

Вот именно такое мне надо.

Есть вариант с тем, чтобы брать указатель на double от uint64_t и... Нахуй его, хуже чем с union

Есть какой-то человеческий вариант?
686 1698284
>>698270
не храни double как uint64
687 1698354
>>698284
Надо, брат
688 1698438
>>697736
Лол, такое окошко сваять пять минут. Дольше тапок искать
689 1698614
В кресты завозили события или нужно самому имплементить?
690 1698663
>>698270
std::uint64_t num = ...;
double d = reinterpret_cast<double &>(num);
Более человеческого, наверное, нет. Это тот же самый каст в указатель, по сути. Не знаю, чем он тебе не понравился.
691 1698665
Почему некоторые либы требуют установки? Например захотел воспользоваться wxwidgets, а его надо установить. Почему нельзя просто заголовочные файлы заинклюдить?
sage 692 1698824
>>698614
зовозили
sage 693 1698825
>>694776
Я когда олимпиаду делал пару лет назад, нас не то что не проверяли на использование каких-либо стандартных библиотек, нам вообще разрешалось писать на любом (!sic) языке. В итоге получается: Маша отличница, занимавшаяся с репетитором, сосёт на своём паскале у Васи троечника, который взял питухон и решил все олимпиадные задачки за 20 минут.
694 1699377
Какой есть хороший гайд по Visual Studio, чтобы наглядно объяснили где какие параметры лежат и показали как запускать ее не тысячу лет.
696 1699715
>>698665
Не выдумывай, скачай архив и распакуй его куда тебе удобно
697 1699720
Аноны, как пользоваться cmake?
Есть либа - https://github.com/msteinbeck/tinyspline
Без проблем собирается в CLion. Но как её в своём коде использовать? tinysplinecxx.h высерает сотню ошибок при включении в свой код, в том числе на синтаксис. В примерах там просто делают #include "tinysplinecxx.h". Но этот пример тоже не могу собрать. Что за сраная магия? Нельзя просто добавить хедер, а нужен какой-то пердолинг?
Пробовал в VS и CLion, пробовал подключать собранную статическую либу, пробовал стандарт C++ менять - один хуй сыпет ошибками.
698 1699750
>>699720
Собираешь библиотеку через cmake, а дальше >>693378, либо если у тебя тоже cmake ищешь её через find_package, если либа представила файлик для поиска себя, либо вручную пути указываешь
1552145670183.png529 Кб, 2775x1380
699 1699759
>>699750
А почему я не могу просто взять h/cpp файлы? Зачем именно собирать либу? Почему он срёт ошибками синтаксиса, хотя там всё ровно?
700 1699772
>>699759
Потому что это тебе не питон, сынок. Если библиотека не header only, её нужно собирать.
Если не хочешь ебать голову, возьми vcpkg
701 1699823
>>699772
Бля, да я уже столько времени ебусь, раз 10 пересобрал по разному, уже в VS без cmake линкую, один хуй ошибки синтаксиса.
1525512471221.png2 Кб, 279x139
702 1699848
>>699823
В общем нашёл решение. Как в таких случаях искать где этот пидор? IDE показывает где определение этого макроса, но я не смог найти где инклюд minwindef.h. Он где-то в кишках стандартной библиотеки сидит? Пиздец какой-то.
703 1699882
>>699848
Подключается неявно в одном из твоих инклюдов, скорее всего cmath
поскорее бы модули блядь, чтобы это говно оставалось в своих хедерах и не пролазило во все щели
704 1699883
https://pastebin.com/w8XjvT57

Как сокращать подобный код?

Алсо, я его извратил для вас, изменил названия и вообще вы ебанутые найдете еще по куску кода домой придут амбалы пизды дадут
705 1699949
>>699883

>https://pastebin.com/w8XjvT57


Ехал шаблон через шаблон. Видит шаблон в шаблоне шаблон. Сунул шабло шаблон в шаблон, Шаблон, шаблон, шаблон, шаблон.
706 1699953
>>699949
Там иначе код раз в 10 больше выходит.
707 1699998
Есть ли тут аноны, которые учились на программиста в НЕ топ-вузе?
Как сложилась дальнейшая судьба?
708 1700383
Помогите пожалуйста. Нужна реализация алгоритмов последовательного поиска, Кнута-Морриса-Прата, Боуера-Мура. Благодарю вас за любой отклик.
709 1700613
>>699883
Закидывать указатели на функции в массив, я полагаю.
710 1700622
>>699848

>В общем нашёл решение.


Очередной говнокодер, бля
https://timsong-cpp.github.io/cppwp/n4659/library#macro.names-1
711 1700649
>>700383
за тебя погуглить или что? В бусте Бойер-Мур точно есть
712 1700751
>>699848
>>700622
Эти макросы можно отключить если объявить NOMINMAX
713 1700756
>>700751
Это же MSVS-specific гумно
714 1700770
>>700756

>IDE показывает где определение этого макроса, но я не смог найти где инклюд minwindef.h


>minwindef.h


>win


>Это же MSVS-specific


Какой сюрприз!
715 1700809
Привет всем макакам итт. Решил вкатиться в кресты, глянул идешки всякие, приспичило установить визуал студио (уже работал в ней - хуйня неудобная, но лучше, чем ideone), хотел вскод поставить, но там иде нет.
Так вот, как изменить путь установки visual studio? Кнопки такой нет, эта ебола сразу в корень диска С лезет. Не нагуглил ничего
716 1700999
http://www.cpp.sh/4dtdk
Это "быстрая сортировка". Без рекурсии. Потестите этот код на своих примерах, если вам не сложно. Сообщите о ошибках, если таковые будут. Если захотите наехать на меня из-за кода — аргументируйте. За тестирование с меня как обычно.
717 1701078
блин люди. как вообще проходить собесы по С++ в серьезные компании?

Вроде пишешь себе на С++ профессионально. А на собесе задают вопрос по какому-то нюансу и сидишь и не знаешь что ответить.

слушал одно интервью где сеньор приводил пример вопроса на собесе "есть ли аллокации в std::sort"... и далее объясняет почему это важно знать конкретно у них. И все вроде правильно, но... Бля, а где я должен был узнать о таких вещах?
или почему нельзя юзать memcpy...

как? как эти вещи можно запомнить?
718 1701079
>>699759

>А почему я не могу просто взять h/cpp файлы? Зачем именно собирать либу?


можешь. инклюдить можно даже cpp файлы (но не забыть объявить дефайны). unit cpp называется.
719 1701081
>>699772

> Если библиотека не header only, её нужно собирать.


нет, не нужно. вот например есть GLFW библиотека.
а вот как ее можно включить в проект без компиляций, копирований исходников и т.д.
https://github.com/raysan5/raylib/blob/master/src/rglfw.c

просто include - это просто вставка текста файла и ничего больше. имея базовые знания о процессе компиляции можно много чего делать
720 1701082
>>700756
min и max дефайны это тоже MS - это из WIndows.h лезет. поэтому и отключать надо через NOMINMAX

(вообще реально видел идиотов которые пишут #undef min - пиздец сколько говнокодеров)
721 1701182
>>701081
Ты только что Unity Build.
Удачи в ебле с нарушениями ODR, дрочеву с namespace и т.п.
722 1701362
Делаю splash screen в приложухе для андроида в qt. Использую этот метод https://webhamster.ru/mytetrashare/index/mtb0/1534618070zxgwthqmqu
И у меня такая же проблема как и у автора.
Цитата из статьи: "Первая проблема в том, что во время загрузки приложения картинка сплеш скрина может "съехать" вниз на некоторое (небольшое) расстояние относительно позиции своего первого появления. Не так чтоб это была большая проблема, но неприятно, что такое примитивное действие как показ сплеш-скрина может глючить. Причем это может происходить только в определенных ориентациях экрана (у меня в портретной), а в другой ориентации этой проблемы может и не быть. Почему так происходит - пока не разобрался."
Сплеш скрин немного сдвигается вверх во время загрузки, то есть в момент когда тема у которой бэкграунд задан как сплэш сменяется на сплэш из манифеста. Как фиксить?
qtsplashdifference.gif3,2 Мб, 360x640
723 1701369
>>701362
Вот в этой статье есть пример этого глюка. http://zmc.space/posts/qt-android-splash-screen
Собственно этот глюк на пикриле
724 1701514
>>701078
Это делается чтобы сбить зарплатные ожидания, вряд ли кто-то будет в серьез думать, что надо всю подобную шелупонь знать.
725 1701825
>>701514
То есть они пишут зп миллиард в наносекунду в вакансиях, чтобы потом спросить какую-то бесплолезную дичь, и сказать "ну мы вас готовы взять, но на зарплату меньшую чем в вакансии".
726 1701908
>>701182

>нарушениями ODR


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

>>701182

>дрочеву с namespace и т.п.


вообще нет никакой проблемы - оно же не пересекается с твоим кодом.

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

>>701182

>Ты только что Unity Build.


на основе этой идеи да. но нет. unitycpp для ускорения компиляции. тут же сделано для того чтобы не таскать библиотеки
727 1702118
>>701078

>Бля, а где я должен был узнать о таких вещах?


>или почему нельзя юзать memcpy...


Вопросы про sort & memcpy вполне резонные. Чуваки с опытом использовали и то и другое, смотрели на производительность, смотрели как устроено. фундаметальные же вещи.
728 1702494
>>701908
a.cpp:
namespace { const int myID = 1; }
b.cpp:
namespace { const int myID = 2; }

Ты ещё скажи, что никто так не пишет
729 1702579
Есть ли что-то вроде шаблонов но применительно к операторам?

У меня просто есть 4 разные функции, которые отличаются только одним символом. Как-то не здорово.
730 1702591
>>702579
Макросы.
731 1702731
>>702118

>фундаметальные же вещи.


это понятно, но откуда такие вещи узнать неофиту?
732 1702761
>>702731

> собесы по С++ в серьезные компании


> Вроде пишешь себе на С++ профессионально


Это писал неофит?
733 1702762
>>702731
Ебаться, ебаться, ебаться...
734 1703155
>>679966 (OP)
Аноны, как понять когда можно идти собеседоваться? Я учу где-то полтора года плюсы, есть пару петов либа с CI тестами и прочей лабудой, и гуйное приложения для вуза, вроде-бы что-то да знаю. Вот знакомый недавно прошел в какую-то нормальную фирму, сказал там собеседующий охуел от того что он знал про сфинае и какие-то базовые вещи, я выпал прямо. Могу на собесе написать условный шаред или тредпул не на листике, распаковать туплю ну и там всякое. Время в принципе не поджимает, могу хоть года 3 еще учить, но как-то хуёво от ощущения что не самые умные одногрупники уже работают, а я нет. На каком курсе вы бы рекомендовали пойти работать, если будет возможность?
735 1703200
Открыл что-то про C++ в codingame и внезапно охуел
https://www.codingame.com/playgrounds/53661/c-project-oneapi
Это что там за for с двоеточием? Что за мутант такой?
736 1703210
>>703200
range-based for
737 1703212
>>703210
И зачем так всё усложнять?
738 1703215
>>703210
И надо ли оно студенту, кстати? Это же для специфических ситуаций?
739 1703391
>>703155
Блять откуда я знаю, как ты загружен в вузе?
740 1703478
>>703391
Вуз мусорный, дают свободное посещение при работе по специальности, поэтому про него особо и не писал
741 1703479
>>703215
>>703212
Всмысле усложнять? Это наоборот проще выглядит и читается, да и писанины меньше. Нужно оно точно так же как и обычный for, это просто разный синтаксис
742 1703491
>>703478
Курсе на пред-предпоследнем может смело идти в стажеры.
743 1703501
>>703212
>>703215
Пиздец. Range-based for loop это вторая самая пиздатая фича c++11 после auto
744 1703542
Интересно, кто тут кем работает и на каких языках на работе пишете, если программисты?
745 1703633
>>703501
На лямбды похуй, на темплейт паки похуй, на новую модель памяти и многопоток похуй, а вот сахар для лупов это даа, джвадцать лет ждали
746 1703636
>>703633
часто параметр паки юзаешь в проде?
747 1703639
>>703636
А ты треды и тупли не юзаешь? Тредпулов у вас нету? std::function тоже не юзаете?
748 1703641
>>703639
я то все это юзаю (ну кроме модели памяти кек), мы на С++17 уже год сидим. Мне интересны другие люди.
749 1703647
>>703633
>>703639
Лямбды - третья.

Всё остальное в кодовой базе занимает доли процента.
750 1703649
>>703647

>Всё остальное в кодовой базе занимает доли процента.


Серьёзно? Однопоточное легаси, или что?
751 1703662
>>703649
Весь многопоток вынесен в обертки.
Разве что std::function юзаем довольно часто, но это всё уже сто лет как есть в бусте
752 1703664
>>703662

> сто лет как есть в бусте


Ох как же я выпал с соурсов бустовой тупли, которую с С++03 не обновляли видимо
753 1703669
>>703664
Решает задачу и заебись
754 1703732
>>703479
И как с двоеточием будет выглядеть такой код?
for (int i = 0; i != size - 1; ++i) { cin >> arr }
755 1703737
>>703479
Или, например, вот такой?
for (int i = 1; i != size - 1; ++i) { cin >> arr }
756 1703748
>>703732

>size


for (int& i : arr)
std::cin >> arr
надеюсь size не беззнаковый
757 1703755
>>703737
А тут range-base аналогичный не напишешь до С++20, по крайней мере не стоит, легче обычный цикл или итераторы
758 1703769
>>703748
А как же отнимание единицы у size? Отдельно вычитать перед циклом или что?
759 1703774
>>703769
Проморгал чёт, если проход не по полному массиву то бери итераторы или индексы лучше итераторы
760 1703807
>>703748
Почему-то такой цикл у меня не работает с динамическими массивами.
761 1703826
>>703807
Потому-что у range-base перегрузка только со стат. массивами, потому-что их размер можно на этапе компиляции узнать через std::size если с шаблонами знаком то можешь соурсы глянуть, там кода 5 строк, у дин. массива таких приколов нет, потому-что размер рантаймовый
762 1704024
>>693378
>>699750

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



Спасибо за пояснения но мне все таки ликбез по линковке нужен был, а не по системе линукс

в общем короче оказалось все вот так

-L/(путь до папки с собраной либой)/
-l(имя либы без lib и so)

LIBS += -L/home/linuxbrew/.linuxbrew/opt/mpv/lib/ -lmpv

-L я так понимаю нужно как разделитель для нескольких библиотечек

-L/path/to/lib/ -lxyii -lpzda -L/other/lib/ -ljigurda
763 1704076
>>703732

> i != size - 1


Зачем не i < size?
764 1704080
>>704024
А это и был ликбез по линковке. Кто же виноват, что ты не понял и перепутал это с ликбезом по системе Линукс?
Разберись тогда уж с флагами компилятора... Надеюсь, ты не руками собираешь?
765 1704226
>>679966 (OP)
Сап всем, С++ это реально пиздец? Мимо выучил Python, думал в Веб-макакинг пойти, но чет душа не лежит прямо к этому, да и предложений мало с нулём опыта. Сам только Cython использовал максимум, но понял как в С компиляция работает и бутстрапинг компиляторов, виды типизации. Короче затянуло в вещи чуть поглубже if else, но вот смотрю на вот это все и как-то не верится, что ума хватит это все охватить.
766 1704266
>>704226
С++ нельзя охватить умом, это бездонная параша, которую перестраивают прямо под задницей. А еще это тормознутый компилятор и гигабайты либ и заголовков. Как же я ржу со слов precompiled header.
767 1704286
>>704226

> Сап всем, С++ это реально пиздец?


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

~ClassName() {}

Вот эта вот хуйня это деструктор, когда объект очищается это говно вызывается, чтоб там free() всякие можно было запускать (этож си)
769 1704561
Плюсаны, как вы вкатываетесь в большие проекты?
Есть какие-то подходы из личного опыта как вьехать в большую кодовую базу? Может уже придумали какой то софт для визуализации кода, чтобы его было легче воспринимать и понимать, что-то более эффективное чем прокликивание в ideшке?
Давно хочу разобраться в коде openxray и openmw, но каждый раз на каком то этапе отступаю, потому что слишком много вещей нужно держать в голове и слишком сильно разветвляется код, тупо теряюсь, забываю с чего вообще сюда полез и так по новой, пока не надоест и не забъю на какое-то время, потом жопа заживает и все по новой. А ведь есть кодовые базы на порядки сложнее и больше, и как то же в них разбираются.
770 1704747
>>704226
Да. Ты после питона скорее всего пойдешь по следующему пути:

>скачал вижуал студио, хеллоу ворд работает


>изучаешь 3-й день базу


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


>жсон парсеров нет


>инструментов для работы с сетью нет


>подумаешь да и хуй с ним, сейчас либу притащишь и пойдет дело


>смейк ущербен


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


>undefined reference to ___tvoya_zalupaInternal__


>с третьей попытки нашел собирающуюся либу


>через 5 часов осилил подключить бинари в смейке и инклюднуть директорию с хедерами


>по быстрому написал бота по примерам из доки


>решил залить свой впс


>сосешь хуй без окружения


И это просто базовые вещи. Стандартная либа очень маленькая, там буквально только базовые вещи, графики нет, нетворкинга нет, развитой многопоточки нет даже тредпула блять, при этом из всех билд систем самый популярный это как ни странно самый уебищный вариант. Благо сейчас конан развивают, гляди через пару лет нюфаги смогут без морок ставить либы как в петоне.
771 1704776
>>704747
Почему питон в отличие от плюсов оброс огромным колличеством библиотек, хотя казалось бы плюсы один из самых популярныз и старых языков?
772 1704828
>>704747
Спасибо молокософту за вцпкг
773 1704855
>>704776
какой то тупой вопрос
774 1704856
>>704855
Почему?
775 1704878
>>704776
Потому-что плюсы более консервативны, это не раст, где разработка языка производится на гитхабе, тут собралось пару сотен серьёзных дядь, и решили что они будут принимать идеи от комьюнити, оформлять их, вырезать лишнее и добавлять потихоньку в стандарт. У этих дядь естественно есть свои принципы, которые уже больше 30 лет стараются соблюдать, та же обратная совместимость например. Ну вот так вот сложилось, плюсы это не язык для написания лайтовых программ для автоматизации, это язык для высоконагруженных приложений, где зачастую критически важна надёжность и производительность, а не то, что ты можешь за 15 минут тгбота написать. А вот почему всё так хуёво с билд системами и пакетниками я не знаю, я и сам зеленый еще
776 1704936
>>704076
А зачем некоторые мужики носят юбку?
777 1704938
>>704076
Это же разные вещи, на одну итерацию цикла меньше будет
778 1705021
>>703647

>Лямбды - третья.


только почему не завезли нормальные локальные функции?
779 1705023
>>704878
меня забавляет что даже Страуструп там уже ничего не решает
780 1705029
>>705023
Один человек и не должен ничего решать. Язык служит разработчикам, а группа стандарта стандартифицирует язык так, чтобы он вписывался в общие методики и ничего не ломал. Было бы странно, если бы слово Страуструпа весило больше, чем слово какого-то сеньора с 40-летним стажем
781 1705085
>>705021
Потому что
auto const local_func = +[](){print("poshel_ty_nahooy");};
782 1705086
люблю с++

void Foo()
<%
int a<:10:> = {0};
a<:0:> = 1;
a<:1:> and_eq 2;
a<:2:> =2;
%>

(надеюсь в жизни я не увижу альтернативного синтаксиса)
image.png7 Кб, 354x211
783 1705087
>>705086
пофиксил
784 1705090
>>705085
просто на лямбдах это выглядит как говно
785 1705091
>>705029
в расте и питоне вроде решает один разраб. разраба питона за это еще и гнобили
786 1705095
>>704856
Потому что это языки из разных миров, питону питоновое, плюсам плюсовое.

Вообще мир программирования сегодня выглядит так (сразу оговорюсь что выкинул языки типа форт/хаскель/фортран/лисп так как тупо не знаю куда их приткнуть):

C/C++ TIER статические языки которые сами все делают, компилируются напрямую в машкод управляют данными и выделением памяти под эти данные.

Rust/Go/Swift/D TIER по прежнему статически типизированные компилируемые языки отказавшиеся от управления памятью, за них это делает небольшой рантайм прямо во время исполнения.

java/C# TIER статически типизированные языки отказавшиеся от компиляции в машинный код и компилирующиеся в байткод некой абстрактной виртуальной машины которая может запускаться там куда ее портировали.

Python/JavaScript/PHP/lua/Ruby TIER динамические языки компилирующиеся/интерпритирующиеся в машинный код прямо во время исполнения, переложившие проверку типов и вообще всего и вся на свой пухлый рантайм зато освободившие программиста от очень многих рутинных вещей.

каждый тир охватывает какую то свою область в которой он эффективней всего, а внутритировые языки уже обрастают своей инфраструктурой которая так же так же охватывает свои ниши.
787 1705112
>>705085

> +[](){


проорал
788 1705122
>>705112
Если ещё не привык, то да, это действительно несколько комично.
789 1705196
>>705087
Поясните дедушке что это.
Плюсы в html разметке?
изображение.png27 Кб, 860x321
790 1705289
>>705196
это вообще-то старое и помоему всегда было
sage 791 1705553
>>705289
Вот уж действительно ньюфаги не знают, олдфаги не помнят.
792 1705576
Нахуй вам диграфы в 2020? У вас клавиатура от калькулятора что ли?
793 1705625
>>705576
Чтоб = с == не путать
794 1705957
>>705553

>Вот уж действительно ньюфаги не знают, олдфаги не помнят.


Использую and/or в if-ах
795 1706119
>>705957
Больной ублюдок, ты?
796 1706339
>>705289
Воистину двач образовательный не перестает удивлять как и плюсы.
Только что попробовал скомпилить клангом с этой дрисней, работает. В первый раз вижу эти альтернативные токены.

Зачем вообще это было сделано? Где-то используетя?
797 1706395
>>706339
Наследие сишки, чтобы можно было писать на ней даже в самых ущербных кодировках. Сейчас везде юникод, можно хоть эмодзи в идентификаторах, так что не нужно.
798 1706904
>>706395

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


Т.е. еще что-то более древнее чем ASCII? Ведь там все основные символы есть.
799 1707101
Сап программач
Значит нуждаюсь в помощи. Есть задача следующего рода:

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

И есть код, который работает через ачько, но иногда работает правильно

void __fastcall TForm1::Button8Click(TObject *Sender)
{
ListBox1->CopySelection(ListBox2);
AnsiString s[100];
for (int i=0; i < ListBox2->Items->Count; i++) {
s=ListBox2->Items->Strings;
}
for (int i=0; i < ListBox2->Items->Count; i++) {
for (int j=ListBox2->Items->Count-1; j >= 0 ; j--) {
if ((j!=i)) {
if (s==s[j]) {
ListBox2->Items->Delete(j);
}}}}}

Как его стабилизировать?
800 1707579
Ебаное RAII, у меня снова сгорело.
Есть три варианта. Я очень хочу второй и не хочу дёргать указатель (и вообще писать ->) как в третьем, и я просто вертел этот синтаксис через двоеточие из первого.
Что делать и зачем эта концепция нужна?

Предположим, у меня есть переменная, я хочу её инициализировать значением не сразу (и не в конструкторе), а после выполнения некоторых действий в функции. Например, мне нужно из файла считать эти 800х600.
Можно обернуть считывание из файла в функцию и вызвать её после двоеточия - но это маразм же, почему я просто не могу выполнить нужный код и вызвать в конструкторе в удобном мне месте? (inb4 из-за наследования - да знаю я) Вопрос скорее в том, зачем так проектировать свои ебаные библиотеки?

Вот в стандартной библиотеки няшечки, там всё работает - почему нельзя им уподабливаться?
801 1707676
111 Тред у кого-нибудь открывается?
802 1707892
>>707676
Да, все давно там
804 1708352
>>707892
>>707908
У меня не открывается сука, перенаправляет на архив и 404
Открывалась до вчерашнего дня
805 1708688
Перекат

>>1708681 (OP) (OP) (OP)
>>1708681 (OP) (OP)
>>1708681 (OP)
++С++ 806 1709075
А я бампану.
807 1709127
Есть смысл вникать в глубины плюсов на винде?
Визуалстудию комп не тянет, а нормальных ide не знаю.
А сидя на линуксе вечно такое ощущение что занимаюсь какой-то херней а не программированием.
808 1709274
>>709127
Попробуй qtCreator - он у меня нормально работал даже на 2 гб памяти с ноутбучным i3.
Он маленький и на удивление неплохо справляется с подстветкой всякого для шаблоноговна (он же для qt вроде как спроектирован).
809 1710361
>>709127
Ну если работаешь с WinAPI, то норма если нет, то тоже норм
изображение.png773 Кб, 643x820
810 1711079
мб тут кто ответит, сап pr, сижу сейчас над задачей создания лайтового аналога headless браузера на qt, мне нужно просто по запросу перейти в яндекс выдачу, найти там нужный сайт и именно из яндекс выдачи на него перейти, чтобы засчитался просмотр, selenium, puppeter и тд. не покатит, давно бы на них сделал, нужно именно на qt(c++), ответов в гугле особо не нашёл, из документации к QWebEngine понял что там необходимо присутствие гуи, но мне нужно эмулировать действие пользователя обычным браузером, а headless нужен потому как буду закидывать этого бота на orange pi zero, где нет выхода под монитор, и не предусмотрен gui. Если у кого то есть идеи, отпишите пожалуйста, буду очень благодарен.
811 1711370
>>711079
это ты создавал тред?
812 1712193
>>711370
угу, мне накидали ссылок, но там было в одной pyqt, а в другой просто расплывчатые ответы не особо относящиеся к сути, сейчас решил не засирать тредами pr и написать в готовые треды, ща в 112 напишу, мб найдётся знающий человек
813 1712727
>>709127
visual code тебя спасет
814 1714285
3
815 1718813
Хочу вкатится в создание 3d игорь на c++. Порекомендуйте, что нибудь для изучения DirectX. Хочу в последствии перекатится на OpenGL, потому что кроссплатформа - лучше. А может сразу писать на OpenGl? В общем жду советов профессионалов.
816 1718965
>>718813
Vulkan
817 1719098
>>718965
А он проще?
818 1719104
>>718813

>Порекомендуйте, что нибудь для изучения DirectX.


https://docs.microsoft.com/en-us/windows/win32/direct3d

>>719098
Увы, нет.
Вулкан, DX12, Metal - это "низкоуровневые" апи, где надо вручную рулить видеопамятью и синхронизацией цп/гп.
OpenGL, DX11 - они попроще, там драйвер многое делает сам.
819 1719579
820 1719581
>>719104
Тогда не можешь ли ты порекомендовать, что либо для изучения OprnGL? Заранее спасибо.
821 1719608
>>719581
На хабре есть отличный цикл статей.
822 1719613
>>719608
Это которые перевод с learnopengl.com?
823 1719724
>>719613
Да. Кстати все сидят в 112 треде
824 1719757
>>719724
Оу, ну лан, спасибо.
Тред утонул или удален.
Это копия, сохраненная 11 сентября 2020 года.

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

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