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

Ответить в тред Ответить в тред
C++ тред #110 /cpp/ Аноним 07/05/20 Чтв 18:20:06 16799661
1549286607132.png 1Кб, 250x250
250x250
Аноним 07/05/20 Чтв 18:24:13 16799702
5462523.png 249Кб, 969x1038
969x1038
>>1679942 →
Таааак уже интересней (или нет, хз).
Я уже такое получал с другой правда хуйней, на стаке пишут копию нельзя чего то блять там
https://stackoverflow.com/questions/1779438/error-with-qobject-subclass-and-copy-constructor-qobjectqobjectconst-qobj
Какую копию, чево блять, у нас же скелет класса в заголовочном файле типа и мы ему просто методы определяем уже в программе не?

Нихуя сука вообще не понимаю чего делаю.
Аноним 07/05/20 Чтв 18:25:39 16799723
Но вообще QtQuick на самом деле такое глюкалово корявое просто пиздец, я думал сделаю пиздатый интерфейс не хуже чем на этих ваших маках и вебах с цсс и в итоге уже на какие только компромиссы не пошел, позорные косяки в фичу определил и сука все равно проблемы лезут и лезут блять.
Аноним 07/05/20 Чтв 18:33:47 16799804
Тут есть так называемый нвидия кун. Можешь ли ты сказать о том, где сам учился? Выпускники каких универов там преобладают?
Аноним 07/05/20 Чтв 18:43:57 16799985
Кто нибудь игры делает на unreal engine 4? Объясните мне, язык полностью учить для этого?
Аноним 07/05/20 Чтв 18:45:51 16800016
>>1679998
>полностью
Лол, нет. Походу выучишь, главное начни что-нибудь делать
Аноним 07/05/20 Чтв 18:47:32 16800047
>>1679972
кьют квик кайф темка, завтра за компутером буду - посмотрю, как сам делал, и помогу
Аноним 07/05/20 Чтв 19:04:43 16800318
А в целом, что вы тут делаете? Программы создаёте или сайты?
мимо с компьютером на вы
Аноним 07/05/20 Чтв 19:18:41 16800489
>>1679998
Полностью его никто и не знает.
Аноним 07/05/20 Чтв 19:19:41 168005010
634652454.png 161Кб, 1434x830
1434x830
>>1680004
Помоги, а то делаю плеер на говяжем анусе (всмысле на бакенде дедбиф) и сука один метод chfysq прокинуть не могу хоть посмотреть как работает кьюмл этот с плюсами.

А то ни одного плеера нет вменяемого-современного, на линуксах так вообще больше половины тупо на пистоне завязана на библиотеки всякие уродские из окружения. Есть на маке плеер свободный Cog с браузером как в клементине ну и развивается форматы все поддерживает, но там автор упрлся по харткору он сам библиотеки пишет с разбором структуры аудиофайлов на обжектив си (то есть не портируемые нихуя). Я тоже когда то брался чисто для интереса более менее инкапсуляцию Ogg и Flac освоил но не декодирование даже, а форматов хуева гора да еще у каждого там разные версии и методы сжатия и даже порядок байт бывает, поэтому лучше взять что то готовое. Говядина вроде неплохо развита в плане поддержки форматов и кроссплатформенности (ну и эквалайзер надо оттуда как то спиздить полюбому) плюс разработчик наш то есть обратная связь будет лучше.
Аноним 07/05/20 Чтв 21:43:07 168023511
1.png 3Кб, 266x219
266x219
2.png 9Кб, 209x154
209x154
Рибят, можно как-то при компилировании в wasm попросить clang++ экспортировать функции без манглинга? А то как на пике получается - функция у меня в исходниках называется testadd, а жопаскрипт видит ее как _Z7testaddii.
Аноним 07/05/20 Чтв 21:56:10 168024912
Аноним 07/05/20 Чтв 22:00:31 168025313
>>1680249
Добра! Как я забыл про это, делал же так, только в очень сильно другом контексте.
Аноним 07/05/20 Чтв 23:15:15 168033514
>>1679970
> скелет класса в заголовочном файле типа и мы ему просто методы определяем уже в программе не?

Не разыменовывай указатель, когда передаешь в конструктор базового класса
Аноним 07/05/20 Чтв 23:17:02 168033615
>>1679998
Да. Сначала желательно вьехать в плюсы и в ООП.
Но ничего не мешает тебе начать с ковыряния блюпринтов.
Аноним 07/05/20 Чтв 23:30:27 168034916
изображение.png 9Кб, 654x257
654x257
изображение.png 6Кб, 496x238
496x238
Программач, я совсем зелёный. Как мне удалить строку из файла через <fstream> и стандартной библиотеки?

То есть, есть файл пикрил1, и нужно, чтобы программа делала пикрил2. Как такое можно сделать?
Аноним 07/05/20 Чтв 23:47:13 168036217
>>1680349
1. залить контент файла в стринг/масив байтов/...
2. сделать string.replace или заменить в масиве вручную
3. залить исправленный контент в новый файл
Аноним 08/05/20 Птн 00:38:31 168041518
>>1680349
Хранишь обе картинки как символы в своей либе. Если на вход поступает первая - выдаешь вторую.
Аноним 08/05/20 Птн 01:57:10 168045319
Ананасы, вопрос такой
Есть структура, они конвертится в тюпл, а затем переводятся в массив байт (с записью опкода чтобы знать что за операцию выполнить) и передаётся по сети
При получении преобразуется обратно в структуру

https://wandbox.org/permlink/pfQIL5eYzh3AvhpP

Я где-то в реализации обосрался?
Аноним 08/05/20 Птн 07:18:53 168050820
23451.png 72Кб, 905x713
905x713
5864784.png 149Кб, 794x830
794x830
>>1680335
> Не разыменовывай указатель, когда передаешь в конструктор базового класса
Да я чет вообще не понимаю что я делаю.
Слева это как я себе представляю наследование классов, а с права я вообще нихуя не понимаю.
Через двоеточие наследование - public от публичной части наследование что ли только?
Через Q_UPRLS это оно типа как макрос всякую хуйню подставляет (пиздец тоже блять объектно ориентированное программирование), тоже кстати что подставляет интересно, может втарую приватную часть из за чего все и не собирается.
Потом конструктор по имени класса который блять наследует конструктор родителя что ли? Плюс в аргументы у него попадают указатель на родителя который мы передаем в родительский конструктор (пиздец ебануться блять)
Снизу зачем эта хуйня с тильдой? Снизу кастомные секции которые надо в хуевой кутешной документации смотреть

Вообще не к плюсам если что претензия, они (понятно дело) берегли сишную "гибкость" так что имеем что имеем.
Аноним 08/05/20 Птн 07:46:20 168052121
>>1680508
> что подставляет интересно
АХАХАХА сука, убрал Q_OBJECT и собралось. сейчас посмотрю работает ли вызов метода из qml... ии разумеется нихуя не работает объект есть, а метода пишет что нет
Аноним 08/05/20 Птн 08:39:23 168052922
ку крестач. юзается ли c++ в связке с другими языками для разработки. если да, то может кто привести примеры.
Аноним 08/05/20 Птн 08:54:15 168053223
>>1680521
Долбоёб, прогони свой файлик с макросом через moc
Аноним 08/05/20 Птн 09:12:37 168054024
>>1680532
> Долбоёб, прогони свой файлик с макросом через moc
Как бля прогнать то, я ниче не понимаю. в документации нихуя об этом qtcreator сам все прогоняет насколько понимаю
Аноним 08/05/20 Птн 10:40:41 168057225
>>1680540
> я ниче не понимаю
Ну так и съебись отсюда и не возвращайся, пока не разберёшься, как работает система сборки твоей хуйни.
Аноним 08/05/20 Птн 13:28:04 168071326
Как запретить Visual Studio делать пробелы по краям знаков вроде + - =? Заебался вручную их убирать.
Аноним 08/05/20 Птн 13:48:38 168074527
>>1680713
Разреверсь студию и запатчи в нужном месте
Аноним 08/05/20 Птн 13:55:08 168075428
>>1680745
Это они нам так свой жыдомасонский кодстайл пытаются навязать?
Аноним 08/05/20 Птн 13:59:24 168076629
>>1680754
Сейчас бы не отделять пробелами арифметические операции и присвоение, кек.
Там есть настройки автоформатирования кода, вроде раздел "текстовый редактор". Мб для таких извращенцев как ты они добавили возможность не ставить пробелы.
Аноним 08/05/20 Птн 14:45:59 168082230
15867888343590.png 234Кб, 603x324
603x324
Сейчас изучаю Qt. Пользоваться дизайнером форм это труЪ или лучше все делать руками?
Аноним 08/05/20 Птн 15:31:46 168086831
>>1680822
Если учишься, то имеет смысл попробовать сделать без
Аноним 08/05/20 Птн 15:31:55 168086932
>>1680529
Вроде как всякие питоновские ML фреймворки типа tensorflow написаны на C++ и уже юзаются в питоне. Скорее всего такой хуйни много, когда нужно выжать максимум производительности в критических частях. Ну еще в игровых движках поверх самого двигла написанного на крестах юзают какой-нибудь скриптовый язык типа Lua.
Аноним 08/05/20 Птн 15:39:45 168087433
>>1680868
Учусь то я пока без. Меня интересует пользуются ли им в реальных проектах. Читаю Макса Шлее, у него в книге только одна глава дизайнеру отведена
Аноним 08/05/20 Птн 15:42:42 168087634
1498044640295.png 119Кб, 1083x491
1083x491
Аноним 08/05/20 Птн 15:54:45 168088435
Щас тыкал ардуино Уно и esp32 (до этого особо не игрался) и как-то внезапно понял, что перед мной настоящий c++, под esp ещё и библиотека собрана, чтобы всякие vector использовать.
И это охрененно! Я всегда считал, что чистый си не очень в 2к20 подходи для микроконтроллеров, если не считать драйверный уровень. В c++ намного безопаснее благодаря ссылкам и контейнерам. Сишное говно на мк у тебя за массив уйдет и начнет память по чуть-чуть хуячить, и будешь ты сидеть с осциллографом искать ошибку и не понимать, почему твое устройство периодически сбоит.
Аноним 08/05/20 Птн 16:05:06 168088936
>>1680884
>Сишное говно на мк у тебя за массив уйдет и начнет память по чуть-чуть хуячить
Пиши так, чтобы не выходило. В чем проблема обвязку для массива написать? В крестах у тебя тоже что угодно может произойти, скобочки [] в векторе без проверки работают.
Аноним 08/05/20 Птн 16:07:00 168089137
>>1680876
>Представь себе
Ну так gnu.org же. Что у них кроме схемы может быть? Там диды заплесневелые сидят. Столлман вон, даже не знает (и не хочет знать), что в имаксе org-mode и helm теперь есть.
Аноним 08/05/20 Птн 16:34:48 168091438
>>1680889
Да долбоебизм делать самому обертки и опять велосипедить, когда уже всё 200 раз было выдумано. Есть std::array, просто прекрасно, и к нему прекрасно подходит range based цикл. Охуенно. И я уверен, что производительность будет абсолютно такая же благодаря const размеру массива, как говнокостыль на си. И таких примеров отличной применимости крестов к мк масса
Аноним 08/05/20 Птн 16:48:50 168093539
изображение.png 29Кб, 786x351
786x351
Что здесь означают ? "" : в cout?
Аноним 08/05/20 Птн 16:56:04 168094740
>>1680935
Гугли тернарный оператор
Аноним 08/05/20 Птн 17:00:19 168095841
>>1680914
На МК обычно все это тупо не нужно. Все переменные глобальные, массивы статические. То есть у тебя в цикле izalupa < zalupa_count; ++izalupa - и за границы ничего не выходит.
Аноним 08/05/20 Птн 17:11:23 168098942
Хуяси, на винде, оказывается, можно сделать
std::system_error(code, std::system_category()).what()
и what вернет текстовое описание для любого кода ошибки из винапи (GetLastError, HResult, WSA*, и т.п.) -- да ещё и на русском языке.
Чё только не найдёшь в стандартной библиотеке. А я раньше городил свои классы исключений для виндовых ошибок.
Аноним 08/05/20 Птн 21:32:37 168153443
>>1680989
Вернет. Но только в кодировке 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
Аноним 08/05/20 Птн 21:43:43 168154844
>>1681534
>Но только в кодировке cp1251
Ну и хорошо, все равно в виндовую недоконсольку выводить.
Аноним 09/05/20 Суб 00:10:35 168169445
вам реально интересно в этом говнище копаться? std::system_huistem::<lambda(x)>::supet_boost_library<Interger_Extented_Debugging>?
Аноним 09/05/20 Суб 00:13:37 168169846
>>1681694
>вам реально интересно в этом говнище копаться?
В этом суть крестов - есть решения на абсолютно все вопросы, при этом с хорошим качеством кода.
Аноним 09/05/20 Суб 01:17:27 168173847
>>1681694

самый интерес это читать ошибки рантайма
Аноним 09/05/20 Суб 01:38:00 168174048
>>1681694
Ну мы же программисты, а не тупые обезьяны
Аноним 09/05/20 Суб 03:05:20 168177549
>>1681534
Угу, только utf-8 на винде -- он имхо ни в пизду, ни в красную армию. В смысле, ни в OutputDebugString/MessageBox (cp1251), ни в консольку (cp866).
Аноним 09/05/20 Суб 03:59:52 168178050
>>1680989
>Хуяси, оказывается
Ничего удивительного, наоборот, в этом вся суть пердольного говна - доков-то нет. Доки делает только майкрософт, поэтому когда программист гуглит, он получает GetLastError() и его друзей, вот всю жизнь так и пишут, ведь как ты узнаешь про другое? Никак. Только красноглазики которые свою библиотеку писали и знают, и шизоиды пердолики которые всю либу и её обновления от корки до корки зубрят.
Аноним 09/05/20 Суб 04:04:02 168178151
>>1681780
Шизик из ситреда в крестотред протек
Аноним 09/05/20 Суб 05:00:21 168179252
>>1681780
А кто по докам язык изучает? Обычно просто гуглят по ходу дела "как в язык-нейм сделать хуйня-нейм", а в доки лезут уже когда знают, чего хотят.
Аноним 09/05/20 Суб 06:24:21 168180053
Аноним 09/05/20 Суб 06:43:07 168180554
>>1681792
Библиотека это не язык. Библиотеки не изучают, их используют, а чтобы использовать нужно знать о их существовании, а для этого нужна документация, качественная. Но красноглазие это же ШВАБОДКА, а писать доки совсем не интересное занятие, поэтому у пердоговна нет доков, в результате оно никому не нужно, потому что попросту никто не знает о существовании и возможностях кроме самих авторов.
Аноним 09/05/20 Суб 06:46:03 168180655
>>1681800
>As of Windows Version 1903 (May 2019 Update)
Микросос 15-рублевый закукарекал за свою дриснятку.
Аноним 09/05/20 Суб 07:32:34 168180856
>>1681800
Сложна. Какие-то версии с манифестами, я ебал.
Аноним 09/05/20 Суб 08:13:04 168181057
Помогите с задачей. На вход подается строка, состоящая из цифр (0 и 1), круглых скобок и знаков и +. Грубо говоря логическое выражение. Нужно его вычислить. Вопрос как? Пока что реализую это рекурсией. Рекурсивная функция принимает в себя строку, возвращает булеан. В строке - выражении находит последнее математическое действие, которое в нем должно вычисляться. Делит входящую строку на 2 части (слева от или + и справа от них). Затем вызывает саму себя 2 раза, с левой частью, и с правой. И все это вызывается до тех пор, пока функция не получит простой пример на вход, типа "1*0", вычисляет его. Возвращает результат. Который используется для вычисления уже вызвавшей функции и так до последней, которую вызвали первой. Но все это реализовано криво, скорее всего неэффективно. Есть ли другие способы решения такой задачи или может вообще готовая мат. функция, решающая формулу в строке?
За воду в тексте не бейте, я не умею объяснять.
Аноним 09/05/20 Суб 08:13:48 168181258
>>1681808
> 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.
Аноним 09/05/20 Суб 08:14:32 168181359
>>1681810
Например на ввод:
(11)(1+0)
должно вывести:
1
Аноним 09/05/20 Суб 08:15:02 168181460
>>1681813
звездочку доска сожрала
Аноним 09/05/20 Суб 08:18:49 168181561
>>1681805
Не соглашусь с тобой; я считаю, библиотеки — это тоже часть языка. Мало знать синтаксис и операторы чтобы заявить, что ты знаешь язык. Нужно ещё и писать на нём так, чтобы другие люди не плевались от велосипедов. А это уже опыт нужен, километры прочитанных чужих сорцов и ответов на стековерфлоу, чтобы знать, как вообще принято, и что "вот так вообще можно было".
Аноним 09/05/20 Суб 10:03:03 168184462
>>1681810
Лабы идут нахуй.
если все выражения составленны правильно, то есть все со скобками, то можешь искать последнюю открывающую и после нее первую закрывающую. Между ними вычислять выражение и подставлять результат. Выполнять пока не останется 1 или 0, либо пока не встретишь ошибку в формуле
Аноним 09/05/20 Суб 11:58:21 168188463
ww1.png 11Кб, 431x453
431x453
Показал я одному человеку код.
Ответ убил, так сказать.

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

А что, всм, что поменять, чтобы было хорошо?
пейст - https://pastebin.com/ePK1bzqU
Аноним 09/05/20 Суб 12:08:02 168189164
>>1681884
>while(n /= 10)
Ты совсем в глаза ебёшься?
Аноним 09/05/20 Суб 12:09:11 168189265
>>1681805
О чём ты вообще? цппреф на что тебе?
>>1681792
Хз, первым делом на цппреф лезу, только потом уже в остальные места.
Аноним 09/05/20 Суб 12:12:19 168189766
>>1681884
>>1681891
Та я понимаю.
Цикл работает пока истина, но как переписать это условие.
Аноним 09/05/20 Суб 12:13:10 168190067
>>1681897
Ну отдельно сделай while и отдельно n /= 10.
Аноним 09/05/20 Суб 12:13:52 168190268
>>1681897
>Цикл работает пока истина
Что значит пока истина? При каком значении n цикл прекращает работать?
Аноним 09/05/20 Суб 12:25:56 168191369
Аноним 09/05/20 Суб 12:26:51 168191470
>>1681913
Не понял. При каком n из цикла выходим?
Аноним 09/05/20 Суб 12:27:24 168191571
Аноним 09/05/20 Суб 12:27:48 168191772
while(n/10!=0) {
n /= 10;
if(n % 10 < min)
min = n % 10;
}
переписал вот так.
Аноним 09/05/20 Суб 12:28:24 168191973
>>1681915
Ну вот и поставь туда while не равно 0, а внутрь цикла засунь n /= 10.
Аноним 09/05/20 Суб 12:28:40 168192074
Аноним 09/05/20 Суб 12:37:57 168192475
>>1681698
>на все вопросы
Правильно. Похуй, что 95% этих решений никогда в жизни не пригодятся, ведь достаточно одного факта их наличия, чтобы преисполниться священным экстазом. Ради этого можно даже разрешить себя насиловать огромным легаси дилдаком с занозами и гвоздями наружу.

>>1681738
Двачую

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

мимо 4 года на плюсах
Аноним 09/05/20 Суб 12:44:47 168192876
>>1681919
Так в сях ничего кроме ноля и нет по сути.

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

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

while ((int)(n / 10) != 0)
Аноним 09/05/20 Суб 12:47:32 168192977
>>1681928
>А вот тут я кстати не знаю может подвешенная операция n / 10 вещественное возвращать?
Какое вещественное?
while(n != 0)
{ n /= 10;}
Какое тут вещественное будет, о чём вы, я ебу собак.
Аноним 09/05/20 Суб 12:59:13 168193778
>>1681919
Ну и кстати ты видимо не вкурсе как железо работает, деление довольно тяжелая операция n /= 10 это сразу

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

целочисленное деление и условный переход в начало цикла грубо говоря
В твоем же случае изменение переменной n предполагается только после проверки условия и запуска итерации цикла, то есть два деления придется делать еще в какую то переменную записывая при том что переменная n нигде не используется дальше то есть беречь ее нахуй не надо. Наверняка конечно какой нибудь хороший компилятор сам это увидит и переделает, но тебе тоже нет смысла так уродовать свой код, ты лучше ему не делаешь.
Аноним 09/05/20 Суб 13:01:30 168194079
>>1681937
Чел, это пикосекунда разницы, что такое пикосекунда перед читаемостью?
Аноним 09/05/20 Суб 13:02:23 168194180
>>1681937
К тому же любой компилятор в 2к20 всё это соптимизирует. Код пишется не для машин, а для людей. while(n /= 10) потенциальный источник ошибок, никто так не пишет.
Аноним 09/05/20 Суб 13:05:04 168194381
>>1681929
А ну ты вначале то не так же написал >>1681920

Ну и вообще там собственно n то нигде ничего не присваивается (вообще в оригинальном коде), то есть цикл никогда не запустится походу.
Аноним 09/05/20 Суб 13:06:47 168194582
>>1681943
>А ну ты вначале то не так же написал
Это лишнее, зачем в вайле n\10 и потом внутри n /= 10?
Аноним 09/05/20 Суб 13:07:40 168194683
>>1681943
> n то нигде ничего не присваивается
n /= 10 присваивается
Аноним 09/05/20 Суб 13:08:22 168194784
>>1681943
n /= 10 это то же самое, что n = n/10
Аноним 09/05/20 Суб 13:17:02 168195685
>>1681940
Хуикосекунда, это несколько тактов во первых, во вторых устройств деления ну вот скажем в интеле любом современном всего два - один чисто целочисленное может считать (без остатков тупо) второй полноценный, в двух каналах которые еще и другое что то помимо этого могут считать, то есть операция деления обречена тупо стоять ждать свое конкретное окошко и ни в какие другие суперскаляр ее послать не может. Благо таких операций в коде как правило не много.
>>1681941
Ну так вот именно что соптимизует так как ты бы мог написать сразу а не разводить какой то некрасивый мудазвонский код пряча запись в переменную куда то в тело цикла. Какого рода там ошибки могут быть непонятно
Аноним 09/05/20 Суб 13:27:05 168196586
>>1681956
Да плевать, всё равно очень быстро.
>писать сразу
Так хуже читается, пока n не равно 0 лучше чем пока n, которое мы ща делим на 10, не станет равно 0. Затруднение чтения порождает ошибки.
Аноним 09/05/20 Суб 14:46:23 168210287
>>1681956
>Ну так вот именно что соптимизует так как ты бы мог написать сразу а не разводить какой то некрасивый мудазвонский код
Ты реально везде у себя в коде вместо деления на 10 пишешь (x * 3435973837) >> 35?
Аноним 09/05/20 Суб 15:05:02 168211488
>>1682102
Ну нет конечно, но это ведь выглядит и не проще, и у того анона нихрена не проще выглядит

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

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

Вот так человек борясь с какими то там гипотетическими ошибками сам запутался накосячил и сделал грубейшую ошибку.
Аноним 09/05/20 Суб 16:53:58 168221289
Разрешение перегрузки за 500. Внимание на код:

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

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

Какого хуя error: call to 'check' is ambiguous. Ведь ссылка на массив лучше подходит, т.к. для указателя нужно лишнее преобразование ( разложение ( decay ) массива в указатель )
Аноним 09/05/20 Суб 16:58:44 168221490
>>1682212
Потому что нехуй писать как еблан со своими ссылками на массив, про decay знаешь, а про std::array не знаешь, про span видимо тоже не слышал
Аноним 09/05/20 Суб 17:10:47 168222291
>>1682214
>Потому что нехуй писать как еблан со своими ссылками на массив, про decay знаешь, а про std::array не знаешь, про span видимо тоже не слышал
Епта, при чем тут std::array, вопрос чисто в академических целях, а не для того, чтобы чет там пофиксить
Аноним 09/05/20 Суб 17:11:16 168222392
>>1682212
> call to 'check' is ambiguous
разве ссылку не check(&arr); надо передавать? А то ты ей тут просто аргумент пихаешь а там оно на что ссылку то должно дать на копию на оригинал, что ожидается то что у тебя в main массив при помощи функции обработается?
Аноним 09/05/20 Суб 17:19:19 168222993
>>1682223
>разве ссылку не check(&arr); надо передавать? А то ты ей тут просто аргумент пихаешь а там оно на что ссылку то должно дать на копию на оригинал, что ожидается то что у тебя в main массив при помощи функции обработается?
Не особо понял что ты вообще тут написал. Если ты про

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

то это тоже не работает.
Аноним 09/05/20 Суб 17:21:29 168223194
>>1682222
Ну раз в академических целях, то пиздуй читать стандарт, раздел с выбором перегрузок
Аноним 09/05/20 Суб 18:44:37 168229195
15866704657030.jpg 13Кб, 351x351
351x351
Поясните за 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++...
Аноним 09/05/20 Суб 18:47:42 168229596
>>1682212
Так исторически сложилось.
Аноним 09/05/20 Суб 18:53:07 168229797
>>1682291
Ну фронтенды связаны наверно, зачем двум свободным проектам средства распылять и пилить каждый свою поддержку стандартов языка, тем более такого как плюсы.
Аноним 09/05/20 Суб 19:32:45 168232498
.png 15Кб, 923x584
923x584
Так ананасы
Есть шаблонная структура, она инстанцируется разными типами и всё это упаковывается в картеж
Как получить копию, например, Struct_t<SomeType1> в рантайме?
Или может быть есть другой способ хранить такой список разных типов?
Аноним 09/05/20 Суб 19:38:36 168233399
>>1682324
это очень странный вопрос. auto hueta = get<0>(tpl); ?
Явно не это же ты имеешь ввиду
Аноним 09/05/20 Суб 19:43:54 1682337100
>>1682333
Да, так
Только индекс мне известен в рантайме
Аноним 09/05/20 Суб 19:45:30 1682340101
используются ли операторы типа | и & в настоящих программах? Где о них можно почитать?
Аноним 09/05/20 Суб 19:47:21 1682342102
>>1682340
Используются для битовых масок
Аноним 09/05/20 Суб 19:58:01 1682375103
>>1682337
>>1682333
>>1682324
Алсо, я могу, конечно, передавать в конструктор Struct_t индекс по которому он будет находится в картеже, но хотелось бы этого избежать чтобы не было путаницы в будущем
Аноним 09/05/20 Суб 20:01:19 1682382104
>>1682337
Это сильно сложнее. В таком случае тебе проще сделать полиморфный класс, хранить все это говно в векторе там
Аноним 09/05/20 Суб 20:04:15 1682388105
Аноны, как вкатываться в WinAPI? До этого работал только с QT и немного OpenGL.
Аноним 09/05/20 Суб 20:09:31 1682395106
>>1682388
в пиздёнке своей мамаши поищи
Аноним 09/05/20 Суб 20:42:41 1682428107
>>1682382
Так и хотел делать в начале, но мне бы всё равно пришлось знать тип в который кастить
Хуй с ними, короче, не буду изъёбываться. Лишний раз лучше напишу так
Аноним 09/05/20 Суб 20:54:54 1682443108
Аноним 09/05/20 Суб 20:59:43 1682449109
>>1682388
Ну, читаешь МСДН. В чем вопрос то?
Аноним 09/05/20 Суб 21:08:50 1682466110
>>1682291
>шинда
>гцц
>цланг
Ты серьёзно не видишь, в каком пункте проблема?
Аноним 09/05/20 Суб 21:09:26 1682469111
Аноним 09/05/20 Суб 21:17:51 1682487112
>>1682337
Если в рантайме есть только индекс, то типа у тебя, получается, нету? И что ты делать собрался тогда с этой хуйнёй? Вообще, можешь ёбнуть тупой свитч на каждый индекс.
Аноним 09/05/20 Суб 21:18:11 1682488113
>>1682469
Кажется в твоей нашлось. Рядом с трупом бомжа лежало.
Аноним 09/05/20 Суб 21:25:43 1682496114
>>1682291
Поставь MSYS2 и не еби мозг. Там для всех популярных пакетов бинарные сборки, ничего компилировать не надо.
https://www.msys2.org/
Аноним 09/05/20 Суб 21:27:06 1682499115
>>1682324
Используй паттерн посетитель, правда его нет для кортежей в std, так что придется самому писать - он почти такой же как в variant, только с индексовм.
Аноним 09/05/20 Суб 21:27:09 1682500116
>>1682487
> И что ты делать собрался тогда с этой хуйнёй?
idx внутри Struct_t это опкоды которые передаются по сети
param это данные соответственно, точнее там не структура, а ещё они картеж (для хранения типов)
Зная какой опкод мне пришёл в пакете я бы его считывал в param (мне бы не пришлось думать о порядке полей), а затем он преобразовывался бы структуру которой я его инстанцировал при упаковке в картеж.

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

Наверное, не самый хороший способ это сделать, но хотел попробовать вот такое

Аноним 09/05/20 Суб 21:31:52 1682510117
>>1682212
Проверяй список боянов прежде чем писать
wg21.link/cwg1789
Аноним 09/05/20 Суб 22:05:56 1682548118
>>1681928
>>1681929
Вот. Может кого волнует.
Переписал вот ТАК:

min = n;
while (n) {
check = n % 10;
n /= 10;
if (check < min)
min = check;
}
Аноним 09/05/20 Суб 22:16:34 1682559119
>>1682466
И что? Порт gcc на что? К тому же я планировал под разные ос потом собирать приложение, мне нужна кроссплатформенность.

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

Алсо, я уже нашел способ заставить работать существующие библиотеки gcc с clangом. Надо было добавить флаг -target x86_64-pc-windows-gnu Без этого флага он вообще не мог ни одной либы найти, хоть и в PATH все было прописано. И напрямую, через -I -L я указывал заголовки и библиотеки, не работало нихуя.
Аноним 09/05/20 Суб 22:20:43 1682562120
>>1682559
А clang я выбрал, потому что вычитал, что его лицензия не требует выкладывать исходники приложения. Но я не проверял эту инфу да и особо пока не вникал в это. Смотрел еще сравнения clang и gcc, первый по производительности опережает немного. И да, под clang я подразумеваю clang++, а под gcc - g++.
Аноним 09/05/20 Суб 22:21:46 1682564121
>>1682337
Ну так в чем проблема?
if (myIdx == 0)
....auto hueta = std::get<0>(...);
Аноним 09/05/20 Суб 22:26:24 1682568122
>>1682562
> лицензия не требует выкладывать исходники приложения
Тащемта никакая не требует. А вот если ты у них код начнёшь пиздить...
Аноним 09/05/20 Суб 22:40:54 1682578123
>>1682564
Мне без этой портянки надо.
Аноним 09/05/20 Суб 22:40:56 1682579124
>>1682562
Ты уже вытекаешь из треда просто.
Аноним 09/05/20 Суб 22:41:05 1682580125
Аноним 09/05/20 Суб 22:47:09 1682583126
>>1682559
>И что?
Чел, ну ты реально тугой. Ты пытаешься завести POSIX софт на системе, не поддерживающей этот стандарт, и спрашиваешь почему всё настолько через жепу?

>>1682562
>И да, под clang я подразумеваю clang++, а под gcc - g++.
Вот тут я орать начала, ахуеть ты реально тугой. Это линки, блядь, считай что ярлыки на рабочем столе.
Аноним 09/05/20 Суб 22:56:15 1682598127
>>1682580
Где здесь получение копии по нужному индексу?
Аноним 09/05/20 Суб 22:56:33 1682599128
>>1682583
>порт
>POSIX софт
Это я тугой? Винда тут даже ни при чем. На любом другом дистрибутиве linux все было бы +- тоже самое. Clang'у так же бы пришлось говорить где лежат библиотеки. И о каком, нахуй, posix речь, когда ИСХОДНИКИ, сука, той же libc++ не содержат в CMAKE параметра для управления теми самыми posix потоками, разве что на unix от них вообще пришлось бы отказываться.

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

>>1682579
Тебе в рот.
Аноним 09/05/20 Суб 23:02:34 1682608129
>>1682598
Ну поменяй const auto& tuple_value на auto tuple_value, будет тебе копия, лол
Аноним 09/05/20 Суб 23:08:05 1682614130
>>1682608
Мне нужно чтобы (в данном случае match) возвращался копию этого значения из кортежа.
При этом лямбда не должна захватывать ничего по ссылке\указателю.
Аноним 09/05/20 Суб 23:09:06 1682615131
>>1682614
> чтобы функция возвращала копию
Фикс
Аноним 09/05/20 Суб 23:21:10 1682635132
>>1682614
Как ты себе представляешь возврат разных типов из одной функции? делай в функторе все то, что ты хотел делать с возвращенным значением
Аноним 09/05/20 Суб 23:23:04 1682639133
>>1682635
> Как ты себе представляешь возврат разных типов из одной функции?
Вот и выяснял полдня как можно было бы приблизится к этому
Аноним 09/05/20 Суб 23:37:47 1682649134
>>1682639
Тебе анон правильно говорит. Не пытайся засунуть банан в жопу, лучше его съешь.
Аноним 09/05/20 Суб 23:39:46 1682651135
Без имени.png 30Кб, 390x615
390x615
Почему не компилируется?
>error: invalid operands of types ‘Int’ and ‘Int’ to binary ‘operator+’
Если убрать все из main(), то нормально компилируется.
Зачем тогда нужна именно такая форма operator+ с указателями?
Аноним 09/05/20 Суб 23:41:07 1682652136
>>1682649
> Не пытайся засунуть банан в жопу
Ну и истории у вас
Пока решил отказаться от этой затеи и отложить её до других случаев
Аноним 09/05/20 Суб 23:52:02 1682658137
>>1682562
>А clang я выбрал, потому что вычитал, что его лицензия не требует выкладывать исходники приложения
1) Скомпилированные программы не попадают под действие GPL
2) Благодаря GCC Runtime Linking Exception ты можешь использовать glibc, не попадая под действие GPL
Аноним 09/05/20 Суб 23:53:08 1682660138
>>1682639
Посмотри доклад Полухина про трюки из такси, там вроде что-то похожее в третьей части.
Алсо, можно auto поставить вместо типа возвращаемого значения
Аноним 09/05/20 Суб 23:54:21 1682661139
>>1682651
Погугли, как оператор перегрузить
Аноним 09/05/20 Суб 23:55:59 1682663140
15750256980030.jpg 24Кб, 267x274
267x274
>>1682651
>new еще и без delete
>перегрузил + с разными типами (Int, Int*)
>динамическая аллокация без очистки на каждый вызов +
>складывает указатели
Пизда. Ты наверно туториал по С# открыл вместо С++ да и не заметил.
Аноним 10/05/20 Вск 00:00:33 1682667141
>>1682660
То, во что выводится auto, становится понятно уже в compile-time, а у него runtime. auto -- это тебе не "ну давай как в петоне))0"
Аноним 10/05/20 Вск 00:17:38 1682676142
>>1682660
> Алсо, можно auto поставить вместо типа возвращаемого значения
Я так и сделаю, но в таком случае мне этот картеж вообще не нужен будет.
А так бы я по индексу делал копию param и получал нужный тип. Ну если бы это работало, конечно.
Аноним 10/05/20 Вск 00:17:57 1682677143
>>1682661
>>1682651
Тогда почему такой оператор вообще компилируется? Что он значит?
Аноним 10/05/20 Вск 00:20:18 1682679144
>>1682663
Этот код нормально компилируется, если оставить main() пустой. За каким хуем в таком случае нужна такая форма operator+ с указателями?
Аноним 10/05/20 Вск 00:26:46 1682681145
>>1682679
Ты определил Int ^ (Int, Int ^), и на это компилятор выдал тебе справедливое "пощёл нахуй", когда ты попытался сложить Int ^ и Int ^.
Аноним 10/05/20 Вск 00:32:41 1682686146
>>1682681
На "определил" clang++ и g++ просто молча скомпилили. Почему?
Аноним 10/05/20 Вск 00:33:34 1682688147
>>1682686
Код не использовался нигде и компилятор его выкинул?
Аноним 10/05/20 Вск 00:37:11 1682692148
>>1682651
Хуя ты дурачек, дружище съебка ты из треда, тебе все равно только в макдаке останется работать с таким подходом
Аноним 10/05/20 Вск 00:37:23 1682693149
>>1682688
Это само собой. Но код был валидный. Зачем нужен class ^operator (class, class^) ? Почему он компилируется?
Аноним 10/05/20 Вск 00:44:11 1682697150
>>1682635
Ну вдруг у тебя реально есть надобность в функции типа A★ A::operator+(B★), зачем компилятору такое запрещать. И, да, если тебе интересно, он должен скомпилироваться если ты сделаешь Int ★c = (★a) + b
Аноним 10/05/20 Вск 00:46:19 1682698151
>>1682697
>Int ★c = (★a) + b
Это уже лучше. А можно просто a + b ?
Аноним 10/05/20 Вск 00:51:54 1682703152
>>1682698
Так ты определи Int ^ operator+(Int ^, Int ^), тогда будет можно.
>>1682686
Потому что можно что угодно определить. Тебя смущает сложение разнородных объектов? Может, я хочу матрицу умножать на вектор типа b = A x, тогда сигнатура должна быть vec operator(mat, vec). Логично? Пиздец как логично.
Аноним 10/05/20 Вск 00:53:07 1682705153
Блять, со звёздочками можно не объебаться, только если отвечаешь на пост, в котором с ними объебались.
Аноним 10/05/20 Вск 00:55:34 1682706154
>>1682703
>Так ты определи Int ^ operator+(Int ^, Int ^), тогда будет можно.
Это через friend определять? А то если в классе пытаюсь определить, то компилер ругается. Говорит, что лишний аргумент ненужон.
Аноним 10/05/20 Вск 01:42:43 1682735155
>>1682706
Вне класса, просто как функцию. Чтоб в private поля лезть, нужен friend, да.
Аноним 10/05/20 Вск 01:57:56 1682744156
>>1682735
>error: ‘friend’ used outside of class
>error: member functions are implicitly friends of their class
Заебали, так и скажите сразу, что перегрузка операторов это фейк. Зачем пудрите мозги нам, сишникам и скриптовикам?
Аноним 10/05/20 Вск 02:09:28 1682748157
image.png 9Кб, 415x105
415x105
Аноним 10/05/20 Вск 02:53:40 1682760158
Аноним 10/05/20 Вск 03:56:56 1682777159
Аноним 10/05/20 Вск 05:43:34 1682786160
Annotation 2020[...].png 21Кб, 736x232
736x232
Аноним 10/05/20 Вск 09:06:42 1682832161
Аноним 10/05/20 Вск 09:07:31 1682833162
>>1682786
&& гарантирует выполнение слева направо
Аноним 10/05/20 Вск 09:19:52 1682841163
Аноним 10/05/20 Вск 09:26:41 1682845164
>>1682832
Потому что ты не умеешь пользоваться WinAPI. Для этой задачи хватит и обычных std::mutex и std::thread
Аноним 10/05/20 Вск 09:28:49 1682846165
>>1682845
Что я конкретно делаю не так. Мне надо именно на винапи сделать
Аноним 10/05/20 Вск 11:59:52 1682952166
>>1682832
В каком смысле "не выполняется первый поток"?
Аноним 10/05/20 Вск 12:14:17 1682978167
Хочу сделать приложение, которое будет пользоваться интернетом. Что можно прочитать, про устройство интернета, и собственно про средства, которыми должна пользоваться такая программажелательно с примерами реализации простой программы?
Аноним 10/05/20 Вск 13:39:22 1683064168
>>1680235
>>1680249
ИМХО, это не тру вей. Загугли ключ, который манглинг отключает
Аноним 10/05/20 Вск 13:47:42 1683075169
>>1681810
Почитай Страструпа. У него есть калькулятор в книге - прочитай, разберись и адаптируй для своей задачи.
Аноним 10/05/20 Вск 14:05:20 1683095170
>>1683064
и как ты без манглинга делать перегруженные функции?
Аноним 10/05/20 Вск 14:26:56 1683124171
>>1681810
Если нужна не рекурсия то формула перегоняется в какую-то из польских нотаций (например в обратную польскую с помощью алгоритма сортировочной станции). Ну а в польской нотации выражение элементарно вычисляется на простом стеке.
Аноним 10/05/20 Вск 14:51:10 1683165172
челики, скомпилировал свой драйвер kernel sys и вопрос как теперь его установить ??
Аноним 10/05/20 Вск 14:55:20 1683172173
>>1683165
на .inf файл правой кнопкой мыши, и там будет "установить"
Аноним 10/05/20 Вск 14:58:13 1683176174
>>1682841
Ты долбоёб? Я не хочу портянки этой хуиты писать которые ещё и будут работать только в блоке if
Аноним 10/05/20 Вск 14:59:01 1683179175
изображение.png 107Кб, 1920x1080
1920x1080
Аноним 10/05/20 Вск 14:59:37 1683181176
Аноним 10/05/20 Вск 15:06:48 1683189177
Аноним 10/05/20 Вск 15:20:12 1683213178
>>1683176
Оберни в IIFE. Вообще, как ты себе видишь нормальное решение своей задачи? Генерировать 2^64 версий std::get? Или может создавать для каждого tuple список из лямбд и обходить его с целью поиска лямбды, которая вызовет нужный get?
И вообще, ты должен знать, какой конкретно индекс у тебя будет в конкретном месте ещё на этапе написания кода. Если ты не знаешь, то пиздуй использовать std::map
Аноним 10/05/20 Вск 16:31:15 1683262179
>>1682978
Чтобы фундаментально разобраться, читай про сокеты и протоколы - TCP, UDP, HTTP, TLS, и т.д. Всё остальное работает поверх этого.
Потом либо ебош на сокетах по хардкору, либо бери готовые библиотеки и фреймворки. В одной только винде куча всяких апи под разные задачи
https://docs.microsoft.com/en-us/windows/win32/networking
Аноним 10/05/20 Вск 17:15:21 1683302180
>>1683262
Спасибо за наводку. И ещё тогда вопрос, какими фреймворками и библиотеками обычно пользуются в реальности?
Аноним 10/05/20 Вск 17:38:50 1683318181
изображение.png 65Кб, 1461x585
1461x585
Сап, как в конец переменной buf внести название найденного файла (GuitarPro7.exe), чтоб потом через CreateProcess запустить его?
Аноним 10/05/20 Вск 17:42:58 1683320182
Аноним 10/05/20 Вск 17:43:21 1683322183
Аноним 10/05/20 Вск 17:48:30 1683326184
изображение.png 76Кб, 1347x790
1347x790
Аноним 10/05/20 Вск 17:50:38 1683329185
>>1683326
_stprintf или swprintf
попробуй
Аноним 10/05/20 Вск 17:51:50 1683333186
>>1683326
Хотя ты вообще какую-то хуйню пишешь
У тебя что вся программа это запуск гитарпро? Напиши скрипт на повершеле лучше
Аноним 10/05/20 Вск 17:51:53 1683335187
>>1683326
Ещё один ебануктий, который не слышал про wchar_t, TCHAR и всю эту хуйню
Аноним 10/05/20 Вск 17:53:08 1683338188
>>1683318
Как же уебищно выглядит винапи
Аноним 10/05/20 Вск 17:55:07 1683340189
изображение.png 30Кб, 658x567
658x567
>>1683329
>_stprintf
Теперь он ругается на "%s".
Аноним 10/05/20 Вск 17:56:04 1683341190
>>1683335
>>1683338
Я учусь на первом курсе, эти типы данных сунули нам в лабу без каких-либо пояснений, вот пытаюсь в них вникнуть.
Аноним 10/05/20 Вск 17:57:49 1683344191
>>1683340
Блять, ну так и подставь tchar как ты делал выше с buf
Неужели такого подобия нельзя заметить при написании?
Аноним 10/05/20 Вск 17:57:52 1683345192
Аноним 10/05/20 Вск 17:59:44 1683347193
>>1683341
Повезло вам, нас ебучий говнинус заставляли учить вместо системы для людей.
Аноним 10/05/20 Вск 18:00:31 1683350194
>>1683347
А вот и быдло вылезло
Аноним 10/05/20 Вск 18:01:43 1683352195
>>1683347
Потом мне нужно будет делать процессы на линуксе без каких либо метод, а лекций сейчас нет.
Аноним 10/05/20 Вск 18:02:38 1683353196
>>1683344
>Неужели такого подобия нельзя заметить при написании?
Та я тупой и не понимаю.
Аноним 10/05/20 Вск 18:02:57 1683354197
Аноним 10/05/20 Вск 18:09:08 1683363198
>>1683333
Ну вот такое у меня задание, нельзя другим способом блять.
Аноним 10/05/20 Вск 18:19:27 1683380199
Плюсовики, а что у вас делается для облегчения изучения языка? Не боитесь ли через несколько лет повторения ситуации как с перлом и коболом, когда специалистов тупо не найти даже за нормальные деньги? Сейчас я смотрю, куча народу с С/С++ перепрыгнула в Go, и новые проекты уже только на нём начинает. Опасная ситуация, вам не кажется?
Аноним 10/05/20 Вск 18:32:29 1683395200
Хай гайзы.
Почему дауны из комитета до сих пор не введут стандартизированный ABI, чтобы не ебаться со всеми этими совместимостями между компилерами, линкерами и их версиями.
Есть ситуации, например пукалки с 1КБ памяти, для которых билдить желательно по-другому - ну и пусть делают себе какой-то кастомный тулсет, хуярящий фасткол во все дыры. Но в подавляющем большитнстве ситуаций наверняка возможен единый бинарный интерфейс, который позволит нормально сосуществовать всему зоопарку билд-инструментов
Ваши мысли по этому поводу, коллеги
Аноним 10/05/20 Вск 18:55:02 1683417201
>>1682832
Бамп.
>>1682952
В смысле сначала должен выполнится цикл в первой функции, и только потом во второй
Аноним 10/05/20 Вск 19:01:16 1683423202
>>1683417
Ну и нахуя ты создаешь залоченный мьютекс и сразу же ждешь его в своем цикле? Убери из цикла WaitForSingleObject и должно заработать.
Аноним 10/05/20 Вск 19:08:18 1683429203
>>1683395
> до сих пор не введут стандартизированный ABI
Всё сломается нахер за последние 20 лет написанного.
Аноним 10/05/20 Вск 19:10:42 1683432204
Что почитать, чтобы понять что вообще такое abi?
Аноним 10/05/20 Вск 19:14:54 1683439205
>>1683423
Все равно не то. Оба процесса исполняются одновременно. А суть задания в том, чтобы сравнить вывод без мьютексов и с ними.
Аноним 10/05/20 Вск 19:27:51 1683451206
image.png 13Кб, 709x152
709x152
Аноним 10/05/20 Вск 19:53:04 1683481207
Давно не программировал на C++
Как мне вот это std::array<std::pair<uint8_t, intptr_t>, 6> a; перевести на вектор?
Аноним 10/05/20 Вск 19:55:03 1683484208
>>1683395
Titus Winters и пытается как-то>>1683417
>В смысле сначала должен выполнится цикл в первой функции, и только потом во второй
Всё равно не понял. А что происходит, если не это? В любом случае почитай, как использовать мьютексы, потому что:
1) создаёшь уже залоченный мьютекс и пытаешься его потом захватить
2) захватываешь один и тот же мьютекс кучу раз в одном треде без соответствующего разлочивания
3) OpenMutexA емнип возвращает ошибку, если мьютекса не существует - проверяй коды ошибок функций

В любом случае возьми и сам пройдись дебаггером.
Аноним 10/05/20 Вск 19:57:01 1683486209
Безымянный10.png 2Кб, 460x61
460x61
Не бейте, а скажите, как инициализировать.
Аноним 10/05/20 Вск 19:57:11 1683487210
>>1683484
> А что происходит, если не это?
Циклы выполняются одновременно, в итоге выводятся числа от 0 до 20, вместо 10
Аноним 10/05/20 Вск 20:12:43 1683504211
>>1683481
Такой сложный вопрос я задал что-ли? Подскажите.
Почему вот так не работает std::vector<std::pair<uint8_t, intptr_t>> a(5, std::make_pair(0, 0));
Аноним 10/05/20 Вск 20:57:09 1683540212
>>1683504
pair не тот. make_pair возвращает pair<int, int>
Аноним 10/05/20 Вск 21:34:54 1683569213
>>1683095
Базара нуль, извини
Аноним 10/05/20 Вск 21:45:13 1683578214
>>1683432
При компиляции - каждый .cpp файл превращается в .o\.obj, и потом вся эта параша линкуется линкером в один .ехе файл, и линкер разрешает всякие внешние функции.

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

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

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

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

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

>>1683481
std::vector v(a.begin(), a.end()); Спасибо С++17
Аноним 11/05/20 Пнд 03:34:49 1683694215
>>1683380
>а что у вас делается для облегчения изучения языка?
Не считая того, что весь интернет забит документацией, блогами, статьями, и выступлениями, а на стековерфлоу есть ответ на любой вопрос "как сделать х в с++"? Ну даже не знаю.
Аноним 11/05/20 Пнд 03:55:22 1683695216
>>1683380
Мы дает от 300к на руки + бонусы, и то ищем специалистов по году. Уже этот пиздец настал.
Аноним 11/05/20 Пнд 04:03:01 1683696217
Annotation 2020[...].png 6Кб, 370x274
370x274
>>1683486
"Сырые" массивы можно создавать только с дефолтным конструктором без параметров. Вектор в этом плане удобнее, он может делать копии.

Ну или можно перечислить все объекты, но это только если их количество динамически не меняется.
Аноним 11/05/20 Пнд 04:12:51 1683697218
Крестаны, в 2к20 юзать синглтон - зашквар или не? Если да, то что сейчас модно юзать вместо него?
Аноним 11/05/20 Пнд 09:22:54 1683747219
>>1683697
Юзай не то, что модно, а то, что удобно. А если о моде, то модно нынче в очко долбиться. Можешь попробовать.
Аноним 11/05/20 Пнд 09:31:02 1683749220
>>1683697
Зашквар это делать несколько одинаковых методов/классов, которые отличаются только типом данных, вместо использования обобщений. А синглтон это оюычный паттерн, цель которого экономия ресурсов системы.
Аноним 11/05/20 Пнд 10:55:26 1683795221
>>1683697
Зависит от ситуации. Главное чтобы у тебя в этом синглтоне не было мутабельного стейта, иначе ты ахуеешь ходить по всем возможным граблям.
Аноним 11/05/20 Пнд 10:59:13 1683798222
>>1682832
Короче при вызове функции Openmutex оказывается нужно было первым аргументом указать SYNCHRONISE, правда не понятно, в чем смысл не делать его по умолчанию
Аноним 11/05/20 Пнд 12:51:26 1683852223
image.png 87Кб, 1366x768
1366x768
Аноним 11/05/20 Пнд 13:32:44 1683876224
>>1682693
Потому что именно этот код и не компилится. Ты же его не вызываешь.
Аноним 11/05/20 Пнд 14:35:14 1683978225
>>1683852
>#include <GL/glew.h>; // Подключаем glew для того, ...
Точку с запятой убери.
Аноним 11/05/20 Пнд 15:02:37 1684005226
image.png 87Кб, 1366x768
1366x768
>>1683978
не помогло. Странно, что если начать вводить GLchar, то он подсказывает и подсвечивает, о пототм все также.
Аноним 11/05/20 Пнд 15:05:40 1684006227
>>1684005
Буду все комментировать и потихоньку добавлять, смотреть оде ошибка.
Аноним 11/05/20 Пнд 15:47:10 1684028228
>>1684006
Мразотная vs. Ничего не менял. Все работает
Аноним 11/05/20 Пнд 15:48:23 1684030229
>>1684028
VS не причем, криворученька.
Аноним 11/05/20 Пнд 16:24:00 1684057230
>>1679966 (OP)
Котаны, посоветуйте учебник по C/C++, где объясняется как устроена память, вызовы и так далее по списку. Внутреннее устройство таких простых вещей как определение переменной, функции, вызов функции и др. Заранее благодарю.
Аноним 11/05/20 Пнд 16:44:06 1684081231
>>1684057
Тебе не учебник по си нужен. Почитай например Архитектуру компьютера.
Аноним 11/05/20 Пнд 18:29:19 1684249232
>>1684057
Начни с транзисторов, вентилей. В конце до сишки дойдешь. Гугли "харрис цифровая схемотехника и архитектура компьютера"
Аноним 11/05/20 Пнд 19:17:40 1684278233
>>1684249
Начни с квантмеха, полупроводниковых материалов. В конце до транзисторов дойдешь. Гугли Нейман И. "Математические основы квантовой механики".
Аноним 11/05/20 Пнд 20:31:19 1684344234
>>1684278
Начни с эпистемологии и философии науки. Иначе как ты сможешь понять, что значит "знать"? Гугли Chalmers A. "What Is This Thing Called Science?".
Аноним 11/05/20 Пнд 20:34:34 1684345235
20f9c410fbf43d2[...].jpg 30Кб, 500x337
500x337
>>1681937
>idiv %n1, 0x0A, %n1
>cmj %n1, 0x00, .L01
> %,%, ,,&&&%..,. ,
> %,%, ,%,% %%.,.

Аноним 11/05/20 Пнд 20:43:04 1684349236
Аноним 11/05/20 Пнд 20:45:25 1684350237
Больше года не заходил сюда, а тут шапку поменяли:
> Более того, крайне нежелательно пытаться изучить его первым, если ты раньше вообще не программировал. С большой вероятностью это приведет к разочарованию и потере времени. Гораздо лучше будет начать с другого языка и базовых вещей алгоритмы, архитектура пека, операционные системы, а уже потом вернуться к крестам.

Наконец-то вменяемость победила!
Аноним 11/05/20 Пнд 20:46:27 1684351238
Аноны, извините, продублирую пост из С треда:

В самых ранних тредах, то-ли здесь, то-ли в крестотреде, анон рекомендовал как годно после С вкатиться в кресты.
Если ты еще здесь, напиши еще раз пожалуйста.
Спасибо.
Аноним 11/05/20 Пнд 20:53:34 1684357239
>Uncle Bob
Сука, как же он меня выбешивает. Никогда не встречал настолько долбоебов К.О., которые вещают банальщину как откровение свыше.
90% того что он напиздел, уже неактуально.
Аноним 11/05/20 Пнд 21:45:27 1684387240
кто использует c++ когда есть го и раст..
Аноним 11/05/20 Пнд 21:46:46 1684389241
>>1684344
Оч годно, видел кучу дебилов которые серьезно так считают
Аноним 11/05/20 Пнд 22:02:24 1684400242
>>1684057
"Deep C" презентация есть где-то в интернетах на slideshare.net. Там именно то всё.
Аноним 11/05/20 Пнд 22:03:24 1684403243
>>1684387
напиши мне драйвер на го или расте.

И потом попробуй поискать разрабов-растовиков, которые это поддерживать все будут на рынке труда. Они все будут либо додики, либо борщехлебы.
Аноним 12/05/20 Втр 00:16:41 1684519244
Аноним 12/05/20 Втр 01:51:39 1684570245
>>1684519
>И потом попробуй поискать разрабов-растовиков, которые это поддерживать все будут на рынке труда
Аноним 12/05/20 Втр 01:53:28 1684571246
>>1684387
> кто использует с++ когда есть кастрированные версии с++..
Аноним 12/05/20 Втр 02:21:23 1684578247
>>1684570
>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
Написал еллоуворлд - теперь ты программист, ведь программа написана, а остальные программы просто как много хеллоуворлдов, тривиально, можно даже время не тратить на банальщину.
Аноним 12/05/20 Втр 03:26:55 1684594248
>>1684387
Го не системный язык, пчел. Язык со сборщиком мусора априори не может быть системным. А раст - мертворожденная хуйня для хипстеров. Даже Мозилла обосрались с растом и до последнего не хотят этого признавать.
Аноним 12/05/20 Втр 06:46:26 1684669249
15885901959881.png 37Кб, 378x288
378x288
Мне не нравятся касты в крестах, я нормален? Всё время пишу обычные скобками. Даже когда чужой код себе пизжу, заменяю в нем static_cast на Си-каст (вот такой я злодей).
Аноним 12/05/20 Втр 11:02:21 1684799250
>>1684669
Они никак не чекают типы, и когда ты себе прострелишь ногу — не увидишь даже ворнинга (в типизированном коде, кекус).
Аноним 12/05/20 Втр 12:18:53 1684862251
>>1684799
Проблема в том, что каст порой нужен только чтобы заткнуть варнинг. Тип в скобочках мне ещё не влом прописать, но уродовать выражение ебаниной static_cast<>-а только чтобы не было варнинга -- уже как-то возмущает.
Аноним 12/05/20 Втр 12:22:23 1684867252
Аноним 12/05/20 Втр 12:40:00 1684888253
Плюсач, выручач.
Я постоянно испытываю дикую попаболь при сборке библиотек/бинариесов из исходников.
Постоянные ошибки, постоянные гуглёжки, как меня уже это достало.
Подскажите куда копать что бы овладеть мастерством компилирования исходников? Желательно бы ещё статейки накидать.

Заранее целую.
Аноним 12/05/20 Втр 13:59:44 1684968254
Играюсь с векторами, наткнулся на, казалось бы, нелогичную хуйню. Возврат ссылки на вектор из метода не работает как ожидалось, код тут -> https://pastebin.com/frmYKgFp

Укажите на ошибку плез (код компилится, остальное написал в комментах). Почему я не могу править внутриклассовый вектор таким макаром? Это же, блять, ссылка на него.
Аноним 12/05/20 Втр 14:10:14 1684977255
1498349065536.jpg 25Кб, 221x111
221x111
1546687121254.jpg 18Кб, 220x111
220x111
1434844227913.jpg 10Кб, 220x111
220x111
1441692794091.jpg 6Кб, 217x111
217x111
Аноним 12/05/20 Втр 14:11:50 1684982256
>>1684977
Все так. В будущем останется только один язык - Раст.
Аноним 12/05/20 Втр 14:14:04 1684986257
>>1684968
upd:
бля, вот я обосрался.
Я почему-то думал, что auto неявно должен забирать в тип ссылку (ибо я возвращаю ссылку на вектор из метода). Но нет, надо написать auto&, чтобы это заработало как надо.

А вообще, такая тема норм? То бишь, это не говнокод возвращаеть ссылку на вектор туда, где я хочу им МАНЯпулировать? Проблем вроде как быть не должно, ибо вектор неявным образом аллоцируется в куче, а не в стэке (ибо это динамический буфер). Но прикол в том, что с обычными функциями, не методами (метод - функция внутри класса) этот финт не работает, есть предупреждение возврата ссылки на оюъект на стэке (щито? Вектор разве не на куче аллоцируется?? На стэке сохраняется адрес вектора, который в куче, какая тогда проблема?). Почему это работает с методами, но не работает с обычными функциями?
Аноним 12/05/20 Втр 14:15:27 1684988258
>>1684982
>Раст
Мертворожденный высер для мамкиных нитакихкакфсе. Его будущее - теперешнее положение D, не более. Максимум, если повезет, займет какую-то мегаузкую нишу в прикладухе, в системщине у него ноль шансов.
Аноним 12/05/20 Втр 14:24:42 1685000259
>>1684988
Как же ты ошибаешься. Раст уже выбирают многие крупные корпорации. И это правильно, он действительно во всем лучше крестов, тут ничего не попишешь. А ди был обречен с самого начала, не было поддержки, был gc.
Аноним 12/05/20 Втр 14:26:56 1685006260
>>1684986
Это говнокод. Либо ты работаешь с классом, либо с вектором и класс тебе не нужен.
Аноним 12/05/20 Втр 14:32:06 1685017261
>>1684986
> вектор неявным образом аллоцируется в куче, а не в стэке
Нет. Он аллоцируется там где ты его аллоцировал. В твоем случае это автоматическая переменная, тоесть на стеке. Вектор может дополнительно аллоцировать необходимую память в куче - но она очистится при автоматическом удалении вектора. В твоем случае все ок, из-за того что ссылка и вектор находятся в одном скоупе, но если ты передашь ссылку за скоуп в котором создан вектор то ничего хорошего не будет.
Аноним 12/05/20 Втр 14:38:09 1685032262
>>1685006
а если мне по каким-либо обстоятельствам нужен доступ к переменной/структуре данных класса извне? Или в рамках ооп это недопустимо, так как ломает принцип инкапсуляции?
Аноним 12/05/20 Втр 14:40:15 1685036263
>>1685032
Значит твой дизайн полное дерьмо?
Аноним 12/05/20 Втр 14:46:22 1685049264
>>1685017
вывод: вектор при любых обстоятельствах следует передавать по значению из функции? Ну, или же изначально аллоцировать его на куче и вернуть указатель из функции?
Аноним 12/05/20 Втр 14:52:06 1685061265
>>1685049
>= C++17 - да всегда.
< C++17 - гугли NRVO
Аноним 12/05/20 Втр 14:54:42 1685066266
>>1685000
>он действительно во всем лучше крестов
Наследование уже завезли?
Аноним 12/05/20 Втр 15:01:31 1685076267
>>1685000
Сама Мозилла, родитель этого говна, начинает потихоньку отказываться от раста, потому что они осознали его полный обосралити. Раст - никому ненужная хуйня. Мертворожденная. Кресты мощнее раста раз в 50. Полная гибкость и всемогущество крестов против ебанутого компиля раста, в котором нет кучи фич, которые есть в крестах, нахуй то говно нужно вообще?
Аноним 12/05/20 Втр 15:02:11 1685077268
Аноним 12/05/20 Втр 15:07:22 1685080269
>>1685076
>начинает потихоньку отказываться
В чём это выражается?
Аноним 12/05/20 Втр 15:07:30 1685081270
>>1685032
Можешь возвращать по ссылке из метода класса, но тогда нужно следить чтобы класс жил все время пока ты юзаешь эту ссылку.
Аноним 12/05/20 Втр 15:12:50 1685086271
>>1685080
в том, что дохуя начинают на кресты переписывать
Аноним 12/05/20 Втр 15:16:09 1685091272
Аноним 12/05/20 Втр 15:17:37 1685095273
>>1684888
Пока сам в скрипты сборки не залезешь не разберёшься. До сих пор шоке от некоторых дизайнерских решений от разработчиков Qt.
Аноним 12/05/20 Втр 15:20:05 1685100274
>>1684888
vcpkg install library_name если лень пердолиться.

А вообще - то, что ты говоришь это странно. Во всех +- современных библиотеках есть cmake (ну окей, кроме буста), и там все собирается с полпинка одной командой.
Аноним 12/05/20 Втр 15:33:37 1685117275
> Кресты мощнее раста раз в 50
В чем мощнее?
Аноним 12/05/20 Втр 15:56:12 1685177276
>>1684351
Я не он, но начинаешь в любом случае почти с С, ведь С++ с ним совместим и в нём многое используется тоже, что и в С.
Аноним 12/05/20 Втр 16:14:10 1685213277
>>1685049
> вывод: вектор при любых обстоятельствах следует передавать по значению из функции
У тебя при этом будет создана его копия - а это не всегда то что нужно. В большинстве случаев ты можешь использовать ссылку при условии что она не будет покидать скоуп в котором получено. Возращения указателя неплохая идея, если ты подразумеваешь какой-то из умных указателей.
Аноним 12/05/20 Втр 16:20:17 1685221278
>>1685095
Есть один немаленький проектик, где сборка на js. Вот тут я вообще охуел.
Аноним 12/05/20 Втр 16:24:46 1685226279
>>1685117
Наследование, метапрограммирование (с фичей variadic templates к тому же), гибкость в выборе полиморфизма (статический vs динамический, а в расте вообще ООП как такового нет, его можно только убого костылировать через типажи), также в расте отсутствует нечто похожее на constexpr, нет кастомных аллокаторов и т.п. Продолжать? К тому же, в крестах есть бесчисленное количество библиотек для самых разных целей, когда раст юзает и будет юзать кучу биндингов из С и никогда не будет иметь стольких фич, сколько есть у крестов, потому что всем похуй на ржавый высер. Дебичи в очередной раз пытаются высрать некоего революционера, не понимая, что чтобы свергнуть С и С++ с трона системщины, нужно либо скинуть астероид на Землю, либо произвести технологическую революцию в мире железа, которая поменяла бы в корне современную архитектуру компьютеров. И первое, и второе произойдет с вероятностью ноль целых хуй десятых.
Аноним 12/05/20 Втр 16:27:20 1685232280
>>1685095
Не всё так просто. Некоторые решения выстраданы.
Аноним 12/05/20 Втр 16:29:44 1685241281
>>1685226
Зачем его вообще пытаются родить? Что не так с С++, что нужно что-то рожать нового?
Аноним 12/05/20 Втр 16:33:02 1685249282
>>1685241
Зумеры не осиливают.
Аноним 12/05/20 Втр 16:33:09 1685250283
>>1685232
Конкретно в Qt по умолчанию всё включено, нужно самому искать, какие модули не используются и отключать их. А их состав может от версии к версии изменяться. Не могу даже представить, зачем такое понадобилось.
Аноним 12/05/20 Втр 16:34:31 1685253284
Аноним 12/05/20 Втр 16:34:46 1685255285
>>1685250
Универсальность же.
Аноним 12/05/20 Втр 16:35:33 1685257286
>>1685255
В смысле? Где тут универсальность?
Аноним 12/05/20 Втр 16:37:44 1685261287
>>1685257
Есть широкий спектр его применения, вот и охватывают все их сразу.
Аноним 12/05/20 Втр 16:38:31 1685262288
>>1685249
По мне так часто не хватает объяснения в духе - зачем оно вообще нужно, а так же опыта написания программ, не сильно даже больших.
Аноним 12/05/20 Втр 16:40:18 1685265289
>>1685241
Хуй знает, лично я пока отметил только одно приемущество раста перед плюсами - это возможно как C# около члена класса задать кастомные атрибуты типо #[zalupa_1] и потом можно пройтись по всем членам класса и отфильтровать по атрибутам. Статический метаданные одним словом. В плюсах единственный вариант такого это извращения с макросами.
Аноним 12/05/20 Втр 16:41:26 1685268290
>>1685265
Зачем так делать вообще? Что это даёт?
Аноним 12/05/20 Втр 16:44:28 1685274291
>>1685261
> Есть широкий спектр его применения, вот и охватывают все их сразу.
Анончик я тебя всё равно не понял.
На разных платформах по умолчанию соберутся разные пакеты. Не понимаю, почему нельзя было добавить флаг --all для "охватывания всех сразу"?
словами не передать, какая жопаболь, когда какой-то модуль не выбран для сборки, если не выбрана какая-то его зависимость. уведомлений при этом тоже никаких нет
Аноним 12/05/20 Втр 16:48:04 1685276292
>>1685268
Допустим надо сериализовать некую структуру в json формат. Чтобы это сделать нужно для каждого поля вручную писать код сериализации т.к. ты не можешь пройтись по полям структуры динамически. Потом вдруг понадобится добавить еще одно поле в эту структуру и придется править код в разных места.
Вот пример https://ideone.com/4XOpFu
Аноним 12/05/20 Втр 16:57:50 1685292293
>>1685226
Фанатик крестов со своим уёбищным ооп ничем не лучше фанатиков очередной хайпопараши.
>>1685265
>#[zalupa_1]
Внезапно, это макрос.
Аноним 12/05/20 Втр 17:00:16 1685296294
>>1685292
>Внезапно, это макрос.
Ну я там понял там адекватные макросы которые можно программировать как обычный код? Без черной магии как в плюсах с абузом скобок и склеиванием теста.
Аноним 12/05/20 Втр 17:06:22 1685305295
>>1685276
А почему макроссы это именно извращение? И разве нет решений на С++?
Аноним 12/05/20 Втр 17:06:53 1685307296
>>1685274
А если там куча перекрёстных зависимостей?
Аноним 12/05/20 Втр 17:11:18 1685311297
>>1685305
>почему макроссы это именно извращение
Попробуй понять как это работает без пояснений https://gist.github.com/patrickBerry/8cf7799066aaf01d1b8fdab1622c1186
>И разве нет решений на С++
Получить имя поля строкой средствами плюсов без макросов невозможно
Аноним 12/05/20 Втр 17:22:29 1685325298
Аноним 12/05/20 Втр 17:24:14 1685328299
>>1685325
struct s
{
int zalupa; <- вот это
}
Как получить строку "zalupa" без макросов?
Аноним 12/05/20 Втр 17:25:47 1685329300
>>1685311
Вопросов не больше не имею.
Аноним 12/05/20 Втр 17:26:29 1685331301
>>1685328
Зачем тебе ее получать? И как получить с макросом?
Аноним 12/05/20 Втр 17:29:34 1685336302
>>1685331
>Зачем тебе ее получать
Я же кидал уже реальный пример с сериализацией где это необходимо >>1685276
>И как получить с макросом
#define STR(x) #x
в коде потом STR(zalupa) превратится в "zalupa"
Аноним 12/05/20 Втр 18:23:42 1685458303
>>1685274
Как человек, который натрахался со сборкой этой сучары целый день, хочу сказать - не пиздите, там тебе для этого целый тул есть в виде бинарника, который, вроде, configure зовётся. Он расписывает от а до я, что нашёл на машине перед сборкой.
Аноним 12/05/20 Втр 18:26:46 1685465304
>>1685296
>можно программировать как обычный код
Да, именно так.
Аноним 12/05/20 Втр 18:27:02 1685466305
423BB73.jpg 68Кб, 640x430
640x430
Подскажите хорошую иде для плюсов, чтобы все работало из коробки. Скачал затмение (каюсь), создал там хело ворлд, но сбилдить не могу, пишет что в пасе не найден какой-то мейк.
Аноним 12/05/20 Втр 18:29:36 1685471306
>>1685328
Когда завезут рефлексию
Аноним 12/05/20 Втр 18:30:59 1685475307
>>1685471
А это есть в планах хотя бы на c++30?
Аноним 12/05/20 Втр 18:37:05 1685485308
>>1685466
Ставь visual studio. В будущем изучай, как происходит сборка и можешь vs code попробовать с cmake
Аноним 12/05/20 Втр 18:42:41 1685494309
>1685475307
в C++26 по плану. Очень оптимистично - МОЖЕТ БЫТЬ ++23
Аноним 12/05/20 Втр 18:43:22 1685496310
>>1685466
Очевидная вижуал студия как вершина IDEстроения. Сверху еще решарпер++ накати и наслаждайся
Аноним 12/05/20 Втр 18:47:36 1685502311
Как настроить cmake в qt?
Аноним 12/05/20 Втр 20:29:50 1685735312
Аноним 12/05/20 Втр 20:38:17 1685747313
>>1685735
Хочу научиться настраивать cmake, да и кьюти вроде собирались отходить от qmake
Аноним 12/05/20 Втр 20:43:31 1685751314
Двач, как узнать какая строка в моём коде вызывает Segmentation Fault?
Дебагер в Qt Creator открывает мне qstring.cpp
Аноним 12/05/20 Втр 21:11:15 1685791315
>>1685751
В кор дамп загляни, если ты на Линуксе. А если на мастдае, то хз, говном не пользуюсь :(
Аноним 12/05/20 Втр 21:18:33 1685799316
>>1685458
> там тебе для этого целый тул есть в виде бинарника, который, вроде, configure зовётся. Он расписывает от а до я, что нашёл на машине перед сборкой.
Это безусловно круто, но он не пишет того, чего не нашёл. То есть я написал, что не хочу qtdeclarative, значит отвалится ещё и qtwebengine и этот configure ни слова об этом не скажет. Вот и сиди думай, какие библиотеки нужны для каких библиотек, а главное зачем.
Аноним 12/05/20 Втр 21:19:56 1685800317
>>1685496
> Очевидная вижуал студия как вершина IDEстроения.
devenv.exe x86
> вершина IDEстроения
Аноним 12/05/20 Втр 21:21:05 1685804318
>>1685751
Запусти с дебаггером, дождись вылета, посмотри на call stack
Аноним 12/05/20 Втр 21:35:58 1685823319
>>1685800
и? Главное как она охуенно работает, а не то, что ты тут пытаешься совсем уже обскурное найти.
Аноним 12/05/20 Втр 22:07:50 1685870320
Двач, что будет если я в функции буду выбрасывать исключение? Программа продолжит своё выполнение?
Аноним 12/05/20 Втр 22:26:41 1685887321
че за тулчейны и какой выбрать, к clion
Аноним 12/05/20 Втр 23:03:34 1685921322
>>1685870
если оно нигде не поймается то будет std::abort() -> std::terminate()

>>1685887
gcc в случае линукса, mingw в случае шинды (но нахуя тогда шлион).
Аноним 12/05/20 Втр 23:07:34 1685924323
>>1685485
>Ставь visual studio
>можешь vs code попробовать с cmake
>>1685496
>вижуал студия как вершина IDEстроения
Толсто.
Пока отобрал следующих кандидатов (на винду): кдевелоп, кодеблок, коделайт. Если кто-то пользовался этим, просьба поделится впечатлениями, особенно как у них там с тестами дела, на вики пишут что у коделайте нет ковереджа под винду.
Аноним 12/05/20 Втр 23:08:43 1685926324
>>1685823
>она охуенно работает
Сурсы хромиума уже может открывать не падая?
Аноним 12/05/20 Втр 23:14:48 1685931325
>>1685926
Может.

>>1685924
>Пока отобрал следующих кандидатов (на винду): кдевелоп, кодеблок, коделайт
Вот это правда охуеть как толсто. Какие-то говноподелия. Если ты идейный хейтер (что уже само по себе смешно) - то в чем проблема взять тот-же qtcreator?
Аноним 12/05/20 Втр 23:23:03 1685936326
image.png 46Кб, 664x717
664x717
>>1685931
Брал кткреатор, создал там хелло ворлд, запустил, и не вижу куда делася сам цпп файл и почему у меня только тхт. Пока экспириенсом не доволен.
Аноним 12/05/20 Втр 23:25:13 1685939327
Двач, есть вектор в векторе, как правильно удалить внешний вектор если какой-либо элемент внутреннего вектора не подпадают под условие?
Что-то я запутался в циклах, да и гавнокод делать не хочу. Подскажите.
Аноним 12/05/20 Втр 23:33:30 1685944328
>>1685936
а, то есть ты нулевый вкатывальщик. Ну, страдай.
Аноним 13/05/20 Срд 00:42:18 1685966329
>>1685944
Кдевелоп тоже не прошел отбор на хелло ворлд. Итого пока смогли в простое консольное приложение только кодеблокс и коделайт, рекомендую.
Аноним 13/05/20 Срд 01:01:09 1685969330
>>1685966
А в чем проблема KDevelop?
Аноним 13/05/20 Срд 01:07:20 1685970331
>>1685939
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
}
}
}

На псевдокодвчах, дальше сам додумаешь.
Аноним 13/05/20 Срд 01:08:15 1685971332
>>1685970
блять, пробелы не схороняются, земля мне жопаскриптом, прости, анон. Разбирайся теперь в этом говне, надеюсь, что хоть чем-то да помог.
Аноним 13/05/20 Срд 01:13:44 1685973333
image.png 28Кб, 746x344
746x344
image.png 36Кб, 612x517
612x517
>>1685969
Например, не могу открыть проект в окне слева и вообще пишет что запустить мейн.цпп не удалось. Смейк ему поставил, но не видит.
Аноним 13/05/20 Срд 01:18:21 1685974334
image.png 22Кб, 610x254
610x254
image.png 35Кб, 636x318
636x318
>>1685969
Сравни например с коделайтом (к нему у меня еще есть вопросы по поводу синтаксиса проги) и кодеблоксом.
Аноним 13/05/20 Срд 01:22:07 1685977335
>>1685973
Хз, походу KDevelop криво портировали на винду. Я на Линуксе (по стечению обстоятельств, юзаю KDE в кач-ве окружения, лол) и у меня зоибис работает.
Аноним 13/05/20 Срд 01:49:33 1685986336
Господа, хочу нырнуть в метапрограммирование, что посоветуете почитать? Желательно на английском, конечно же.
Аноним 13/05/20 Срд 01:52:07 1685987337
>>1685986
Александреску же. Если вынырнешь - то наворачивай доклады Луи Дионне.
Аноним 13/05/20 Срд 02:02:54 1685988338
>>1685977
Нет, добавил в системны патх смейк и прописал ему -г мингв бла-бла, кдевелоп все запустил.
Аноним 13/05/20 Срд 02:05:02 1685990339
image.png 7Кб, 378x140
378x140
>>1685977
Что открывается если нажать на руководство?, на винде просится в микрософт сторе.
Аноним 13/05/20 Срд 02:05:45 1685991340
>>1685986
Определись сначала со стандартом, потому как в c++17 всё метапрограммирование сводится к variadic template, constexpr if и чуть реже std::enable_if. Если типами хочешь жонглировать, то посмотри, как разные методы и типы реализованы в Boost::mp11.
Александреску читай только после всего, что я написал выше. Иначе могут произойти необратимые изменения в мозге.
Аноним 13/05/20 Срд 02:07:20 1685992341
>>1685991
Эти необратимые изменения в мозге очень полезны, имхо. Я Александреску недоосилил в свое время, но многим пользуюсь до сих пор.

Помню, как коллега подошел попросил написать какую-то шаблонную хуету, и я там офигенно наперегружал всяких шаблонов структур (С++14 у них было).
Аноним 13/05/20 Срд 02:13:59 1685993342
>>1685992
А какое есть реальное применение у метапрограммирования, кроме компайл-тайм вычислений и статического полиморфизма (ОЧЕНЬ годная штука, чисто бесплатный по рантайму полиморфизм)?
Аноним 13/05/20 Срд 02:17:42 1685995343
>>1685993
А чем то, что ты перечислил, не реальное применение?
Аноним 13/05/20 Срд 02:24:41 1685997344
krestiki.png 67Кб, 1024x1085
1024x1085
>>1685993
у нас в проде сериализатор\десериализатор самопальный для кернел мода протобафов не завезли с одинаковым интерфейсом в 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, а мне было лень делать специализации структур.
Аноним 13/05/20 Срд 03:08:12 1686003345
почему Qt 5.12.8 весит 3.7ГБ, а 5.14 2.3ГБ, где подвох, они там какие-то библиотеки убрали?
Аноним 13/05/20 Срд 03:21:20 1686005346
>>1679980
Пропустил, сорри. Ты не поверишь - я самоучка с купленным дипломом на дистанционном обучении. Я сидел и каждый вечер задрачивал С++ в течении года до первой работы крестовиком.
Аноним 13/05/20 Срд 03:22:21 1686006347
>>1686005
Касательно выпускников вузов - тут сложный вопрос. У нас смотрят на то, что ты умеешь, а не на то, где ты учился, если мы говорим про позиции разработчиков с опытом.

Если мы говорим про интернов - то тут я ничего не скажу, не знаю.
Аноним 13/05/20 Срд 03:36:41 1686008348
анон-анон, а вот скажи - почему часть программистов не любит PCH(precompiled header)?

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

Но почему? ведь это нехилый буст компиляции (ради прикола пробовал включать, компиляция была быстрее на 20-40%)
Да и на самом деле код становится чище без миллиона инклюдов
Аноним 13/05/20 Срд 04:07:02 1686010349
0
Аноним 13/05/20 Срд 07:27:23 1686068350
>>1686003
Вангую потому что у 12 долговременная поддержка, а у 14 нет.
Аноним 13/05/20 Срд 10:34:09 1686181351
>>1686068
А как посмотреть в чем разница? Смотрю на оффлайн версии, хочется понять без установки.
Аноним 13/05/20 Срд 11:11:20 1686242352
>>1685974
Мне нравился кодблок. Особенно прокрутка правой кнопкой и дебаг-run-to-cursor одной кнопкой.

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

Если собираешься решать что-нибудь кроме однофайловых лаб, подумай еще раз.
Аноним 13/05/20 Срд 11:26:34 1686273353
>>1685466
Самый лучший вариант - clion
Аноним 13/05/20 Срд 11:27:15 1686274354
анон, посоветуй годный header-only фреймворк для юниттестов

Ну то есть чтобы блядь без ебанутых систем сборки от анунаков не слышавших про мейнстримные системы сборки и живущих в какой-то альтернативной вселенной. и чтобы оно не выглядело как говно на дефайнах
Аноним 13/05/20 Срд 11:39:52 1686297355
Аноним 13/05/20 Срд 12:12:25 1686348356
>>1686242
Скачай ночную сборку, они вроде каждый месяц выходят.
Аноним 13/05/20 Срд 12:22:28 1686376357
>>1686348
>потести вечную бету
А сколько будут платить?
Аноним 13/05/20 Срд 13:11:26 1686452358
>>1686274
#define ASSERT_EQ(_x, _y) assert((_x)==(_y), #_x " != " #_y)

Фреймворк готов.
Аноним 13/05/20 Срд 13:14:07 1686455359
Аноним 13/05/20 Срд 13:24:42 1686463360
>>1686242
Лол блять. Зашел сейчас на их сайт.
А там после трехлетнего запора оказывается выкатили обновление в марте, где пофиксили и stl и мыло на fullhd экранах и to_string.
Похоже пора перекатываться обратно.
Аноним 13/05/20 Срд 13:38:42 1686470361
Котаны, насколько кресты медленнее сишки? В особенности, если брать STL контейнеры и умные указатели против сырых массивов и указателей в Си?
Аноним 13/05/20 Срд 13:46:56 1686474362
>>1686470
Ни насколько, не еби мозг
Аноним 13/05/20 Срд 13:47:43 1686476363
Я из джавы, хочу в системные, вот типа думаю, учить сразу раст или начать с си и плюсов
Аноним 13/05/20 Срд 13:48:33 1686477364
>>1686470
В дебаге? STL вектор медленнее, особенно MSVC. В релизе? Одинаково.
Аноним 13/05/20 Срд 13:51:03 1686479365

>>1686476
Раст лучше, но на нем пока почти нет работы в россии.
Аноним 13/05/20 Срд 14:30:07 1686517366
>>1686476
Чел, раст для системников это как для тебя J#, думает он...
Аноним 13/05/20 Срд 14:56:54 1686559367
>>1686517
ну раст же лучше, и писать приятнее ну
Аноним 13/05/20 Срд 15:01:42 1686577368
>>1686559
> писать приятнее
> нечитаемая параша из загогулин
Аноним 13/05/20 Срд 15:13:41 1686608369
>>1686559
мертворожденная параша для борщехлебов же, ну.
Аноним 13/05/20 Срд 15:31:50 1686639370
>>1686559
>ну раст же лучше, и писать приятнее ну
Как назвать подобных уебков? Вот есть кабанчики, им 40, а есть вот такие вот "ну че ты ну".
Аноним 13/05/20 Срд 15:42:46 1686673371
Пора смирится, что раст оставит кресты в прошлом. И это в общем то хорошо. Язык не уступающий, а порой даже опережающий кресты, но при этом полностью безопасный. Самое главное он активно развивается и не связан обратной совместимостью с кодовой базой 30 летней давности.
Аноним 13/05/20 Срд 15:47:44 1686687372
15535796363300.jpg 164Кб, 720x1280
720x1280
>>1686673
Тобой выбрана неправильная дверь, дружок-пирожок. Тред клешнеруких два блока вниз и там никого нет
Аноним 13/05/20 Срд 15:52:38 1686692373
1589374354185.png 4Кб, 467x106
467x106
Заглянул в растотред, глянув на первый же пик вспомнил, что в крестах нет нормального вывода в консоль. Либо неформатируемый по человечески cin/cout, либо небезопасный printf.
Аноним 13/05/20 Срд 15:59:56 1686709374
>>1686692
vcpkg install fmt это, конечно, безумно сложно
Аноним 13/05/20 Срд 16:00:24 1686712375
>>1686376
Судя по всему столько же, сколько ты готов заплатить разрабам
Аноним 13/05/20 Срд 16:03:47 1686720376
>>1686709
Левые библиотеки...
Аноним 13/05/20 Срд 16:04:32 1686724377
>>1686720
В с++20 завезли std::format, вот только компиляторы его еще не завезли.
Аноним 13/05/20 Срд 16:39:41 1686807378
>>1686720
ты охуенный топитель за разработку без библиотек?
Аноним 13/05/20 Срд 17:08:28 1686849379
buffer.iter().zip(other_buffer.iter()).enumerate().for_each(|(index, (x, y))| assert_eq!(x, y, "not equal items at {} index", index));
Язык для людей
Аноним 13/05/20 Срд 17:12:46 1686855380
>>1686849
А теперь давай то же на плюсах.
Аноним 13/05/20 Срд 17:15:01 1686859381
>>1686807
Билбиотеки есть смысл тащить для чего-то нетривиального, а вот такая хуита на каждый пук — это жс-макакенг.
Аноним 13/05/20 Срд 17:15:51 1686863382
1398249928336.jpg 22Кб, 300x300
300x300
Аноним 13/05/20 Срд 17:31:52 1686889383
Аноним 13/05/20 Срд 17:38:39 1686898384
Двач, можно ли делать вот так?
if (vector.size() == 2 && vector[0] && vector[1]) {}
Т.е. продолжит ли он смотреть на другие условия и не вылетит ли в segfault после первого false (т.к. вектор пустой)?
Аноним 13/05/20 Срд 17:48:13 1686905385
>>1686898
можно
не продолжит
не вылетит
Аноним 13/05/20 Срд 18:01:23 1686921386
Аноним 13/05/20 Срд 18:02:58 1686926387
>>1686898
нахуй ты обращаешься к элементам вектора через оператор [], если есть метод at, который проверяет границы и элиминирует возможность переполнения?
Аноним 13/05/20 Срд 18:04:29 1686927388
>>1686926
Нахуй это делать если ты уже произвел проверку на size?
Аноним 13/05/20 Срд 18:21:06 1686956389
>>1686927
Затем что кроме примера тебе нахуй больше ничего знать и не надо, тем более когда суть в другом.
Аноним 13/05/20 Срд 18:24:25 1686962390
>>1686859
Ясно, профнепригодный
Аноним 13/05/20 Срд 18:48:59 1686982391
internet-meme-r[...].jpg 74Кб, 800x800
800x800
>>1686962
>ряяя да нибамбит у миня я ни макакин
Аноним 13/05/20 Срд 19:09:28 1686998392
>>1686982
сейчас бы ты еще хоть немного понимал, что ты несешь, а то твои боевые картиночки смотрятся комично очень.
Аноним 13/05/20 Срд 19:20:55 1687017393
>>1686998
>даже ради околочеловеческого принта надо тащить сторонние либы
>при том, что нет даже единого пакетного менеджера и при таком подходе для 3 либ модет понадобиться 3 манагера пакетов
>ряяя маааам плюсы ни гавно!111
Аноним 13/05/20 Срд 19:23:09 1687026394
15888541462440.png 1593Кб, 1387x1600
1387x1600
>>1687017
2050
@
единый пакетный менеджер так и не стандартизировали
@
из-за жс-драйвен-макакенга с пакетами содержащими 1 функцию мир вошёл в сингулярность
@
чтобы собрать 1 утилитку надо поставить 3 компилятора и 293 пакетных манагера
@
а потом подождать пока они скачают кучу пересекающихся зависимостей на пол терабайте
Аноним 13/05/20 Срд 19:32:38 1687050395
>go get
антибагор
Аноним 13/05/20 Срд 19:34:05 1687055396
Аноны, столкнулся с такой проблемой, что виджеты Qt у меня зависают. Происходит это по всей видимости в моменты, когда нужно быстро что-то делать.
Например, захватываю я пакеты из сети и пытаюсь их выводить в QListWidget. Сую в хэндлер пакета что-нибудь типа listWidget.addItem("пакетнейм"). Причем хэндлер вызывается с бешеной частотой, пакетов в сети то много. Программа намертво зависает.
Или другой пример. Записываю пакеты в файл. Пакетов много, поэтому процесс наблюдаю с помощью QProgressBar. Ну то есть после записи очередного пакета value прогрессбара инкрементируется. Пакеты пишутся в цикле for. И тоже зависает, QProgressBar перестает шевелиться, окно программы не отвечает. Хотя сам процесс идет, если подождать, пакеты запишутся в файлы и программа отвиснет.
Тут ясно, что я что-то неправильно понимаю в построении десктопных программ. Но что именно, я не могу понять? Это как-то связано с оперативкой? Или стек вызовов забивается? Как этого избегать? Больше интересует первый пример.
Аноним 13/05/20 Срд 19:43:29 1687065397
>>1687055
Браток, накачивай дату в буфер, и с определенным интервалом, например 5 раз в секунду фетчи виджет с буфера. А ты я так понимаю линейно с каждым обращением за пакетом сразу его вставляешь в виджет
Аноним 13/05/20 Срд 19:46:18 1687070398
>>1687065
> А ты я так понимаю линейно с каждым обращением за пакетом сразу его вставляешь в виджет
Да-да, именно так!
> Браток, накачивай дату в буфер, и с определенным интервалом, например 5 раз в секунду фетчи виджет с буфера.
То есть критична именно частота обращений к методу виджета, так? Если часто его вызывать, комп охереет?
Аноним 13/05/20 Срд 19:50:56 1687075399
>>1687070
Тяжело сказать не зная что там у тебя. Подозреваю что мейнлуп умирает пока ты пытаешься напихать в него дату, потому что тайм-аут у тебя вряд-ли выставлен. Поллинг или как там это называется, читани доку кьюти. И вообще старайся как можно меньше обращений делать
Аноним 13/05/20 Срд 19:53:41 1687081400
>>1687075
А почему умирает во втором примере? Там же тупо цикл, внутри которого происходит генерация пакета и запись в файл. Пакеты при этом ничем друг от друга особо не отличаются, структура одинаковая. Виснет, когда пакетов много, например 200к.
Аноним 13/05/20 Срд 20:00:42 1687090401
>>1687081
Я если честно не очень с куте знаком, и не знаю как там мейнлуп работает, представляю себе что он пытается создать в цикле представление о всех виджетах, а потом проверяет соответствует ли оно актуальному представлению в следующий момент до того как нарисовать, и т.к. пихаешь дату безостановочно, он постоянно заново рисует этот виджет. Короче не скажу тебе что там точно происходит, но опыт и интуиция подсказывают что нужно в буфер накачивать и по типам закидывать в виджет
Аноним 13/05/20 Срд 20:01:52 1687093402
Аноны, а для чего нужен #define в C++? Или его в C++ вообще не юзают, и это только в коде из C?
Аноним 13/05/20 Срд 20:04:43 1687097403
>>1687090
А если в буфер закачивать, он в это время не будет пропускать пакеты? Или для этого надо параллелизм юзать?
Ну то есть я в хэндлере буду писать пакет в буфер. И одновременно мне надо раз в 200 мс еще отправлять содержимое буфера в виджет и очищать буфер. Это же без параллелизма никак не сделаешь?
Аноним 13/05/20 Срд 20:11:17 1687111404
>>1687093
Глупый вопрос какой то. Для чего нужен дефайн в с? Для того же и в с++. Как уже писали выше использовать можно например для получения имени поля
#define PRINTER(x) #x
А так много для чего, средство очень мощное. Но вообще использовать макросы дурной тон.
Аноним 13/05/20 Срд 20:13:37 1687113405
>>1687097
Ну у тебя по возможности вообще не должно быть ключевой логики во фронте. Пихни ее в другой тред например. Куте точно мультитрединг поддерживает, поэтому проблем не должно быть. Но у тебя я так понимаю дата вся создана где-то заранее, а не какие-то пакеты приходящие в реальном времени, поэтому тебе не нужно все пакеты за раз тоже качать. Тяжело понять в общем не зная что тебе нужно
Аноним 13/05/20 Срд 20:13:47 1687114406
>>1687111
Что за имя поля?
> Но вообще использовать макросы дурной тон.
Я вообще если честно не понимаю, зачем нужен #define, если можно объявить функцию.
Аноним 13/05/20 Срд 20:16:06 1687116407
>>1687113
Пакеты в реальном времени приходят.
А как пакеты захватывали и выводили в интерфейс в те времена, когда многоядерных процессоров не было? Вот Wireshark например, судя по вики, сделали в 1999 году.
Аноним 13/05/20 Срд 20:40:49 1687132408
>>1687116
Поток, которым ты оперируешь -- вещь логическая. Можно к одному потоку хардверному цеплять сотни вот таких. Кроме того, ввод/вывод можно совершать неблокирующими операциями, типа если данных в буфере нет, то и хуй с ним, едем дальше.
Аноним 13/05/20 Срд 21:02:14 1687148409
>>1686008
Вот скажите мне, это один растошизик в треде пытается троллить или их целая секта?
Аноним 13/05/20 Срд 21:04:54 1687150410
>>1687148
Сорян, с ссылкой на пост промахнулся, ее там не должно было быть.

Бтв предкомпилированные заголовки требуют единообразного начала всех исходников, вроде как, что не всегда на получается поддерживать при несогласованной разработке.
Ну, во всяком случае, я так понял смысл этой штуки.
Аноним 13/05/20 Срд 21:14:45 1687154411
Аноним 13/05/20 Срд 21:17:22 1687157412
>>1687081
> А почему умирает во втором примере? Там же тупо цикл
Приведи уже код, а то непонятно, что ты там делаешь
Аноним 13/05/20 Срд 21:31:15 1687166413
>>1687157
Ну вот код цикла, например.

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);
}
Аноним 13/05/20 Срд 21:36:38 1687170414
>>1687055
>Тут ясно, что я что-то неправильно понимаю в построении десктопных программ. Но что именно, я не могу понять?
Чел, ты главный поток вешаешь намертво, ясен хуй у тебя ничего рисоваться не будет.

Давай вместе почитаем доку 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.
Аноним 13/05/20 Срд 21:38:03 1687171415
>>1687170
Пощады! Я же ньюфаг, я никогда не юзал мультитрейдинг.
Аноним 13/05/20 Срд 21:40:24 1687173416
>>1687154
И сколько ты напишешь функций?
Хорошо, у тебя есть шаблоны, это круто.
Но там сложные правила для вывода типов и возвращаемых значений, что нужно будет учесть.
template<typename T>
T func(T x) { return x; }
Совсем не всегда одно и то же, что и
#define func(x) #x
Которую написал анон в том посте
Аноним 13/05/20 Срд 21:41:21 1687175417
>>1687173
А имя поля - это что? И зачем его получать?
Аноним 13/05/20 Срд 21:47:28 1687184418
>>1687170
А что именно вешает главный поток в моем случае? progressBar->setValue(i)? Или что? Какие действия вообще могут вешать главный поток, и что делать, чтобы этого избегать?
Аноним 13/05/20 Срд 21:48:06 1687186419
>>1687175
У тебя есть
struct A { int x; };
Имя единственного поля в структуре - это x.

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

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

более щарящий анон поправит, если я обосрался.
Аноним 13/05/20 Срд 21:57:10 1687195421
>>1687186
Решетка стрингифицирует то, что ты посылаешь в макрос.
#define STR(x) #x STR(std::cout << pidor) станет строкой "std::cout << pidor", а не вызовом соответствующей функции.
Аноним 13/05/20 Срд 22:02:10 1687201422
>>1687114
>, зачем нужен #define, если можно объявить функцию.
А дефайном ты можешь объявить части функций и создать внутренний дсл, позволяющий коротко и ясно заменить кучу бойлерплейта( и создать больше возможностей выстрелить в ногу). Шаблоны это решают, но не до конца.
Аноним 13/05/20 Срд 22:36:17 1687232423
>>1687184
>Какие действия вообще могут вешать главный поток
Количество работы выполняемое на нём.
Ты по получении каждого пакета:
а) Парсишь пакет и что-то там сравниваешь, в зависимости от размера может выполняться долго. Алсо, ещё гоняешь очень дохуя аллокаций. Выдели вектор себе один раз до входа в первый цикл (и если знаешь размер приходящих — преаллоцируй память заранее, если не знаешь — аллоцируй при входе в первый цикл, иначе на каждый append под твой массив будет выделяться память по новой и копироваться содержимое, что как бы будет работать пизда как медленно);
б) Если у тебя SSD — запись на диск достаточно дорогая операция, чтобы просто так делать её в главном потоке. Если у тебя HDD — то это просто пиздос смерть гроб, особенно если у тебя там не 5 байт.
в) Не знаю, что именно у тебя в предпоследних 2-х строчках, но что-то похоже на копирование, если в gsPacketSet хранится не пара интов — не надо так.

>и что делать, чтобы этого избегать?
Стараться вообще нихуя не делать на главном потоке, и использовать его только для отрисовки UI и как точку синхронизации. В твоём случае, единственная строчка кода, которая должна работать на главном потоке выглядит так:
>progressBar->setValue(i);
Аноним 13/05/20 Срд 22:40:44 1687239424
>>1687232
> Не знаю, что именно у тебя в предпоследних 2-х строчках, но что-то похоже на копирование, если в gsPacketSet хранится не пара интов — не надо так.
Это набор пакетов. Я должен выбирать пакет из набора и записывать его в файл. И реплейсить забранный пакет новым.
Аноним 13/05/20 Срд 22:44:19 1687243425
>>1687232
> Стараться вообще нихуя не делать на главном потоке, и использовать его только для отрисовки UI и как точку синхронизации.
Подожди, а что вообще главный поток в коде? Я что-то вообще запутался. Вот у меня есть MainWindow, в котором все виджеты, кнопочки и прочее. При нажатии на кнопочки программа делает всякие штуки, например, генерирует и записывает пакеты в файл. Что здесь главный поток? Или что должно быть им, если делать все правильно?
Аноним 13/05/20 Срд 22:48:10 1687245426
>>1687186
Не понял, а почему нельзя просто:
struct A { int x; };
и потом:
A a;
a.x = 2;
Или что ты там с х собирался делать?
Аноним 13/05/20 Срд 22:50:00 1687248427
>>1687201
Что такое части функций, внутренний дсл, бойлерплейт?
Аноним 13/05/20 Срд 23:10:08 1687260428
Аноним 13/05/20 Срд 23:25:12 1687267429
>>1687114
У меня для тебя три слова:

КОДОГЕНЕРАЦИЯ
BOOST::PREPROCESSOR
КОД КАК ДАННЫЕ
Аноним 13/05/20 Срд 23:28:52 1687269430
Аноним 13/05/20 Срд 23:32:02 1687270431
>>1687239
Это никак не отвечает на мой вопрос, не копируй объекты если оне не совсем мелкие, короче.

>>1687243
Это поток, с которого начинается выполнение твоей программы (т.е. поток, в котором системным сишным рантаймом была вызвана функция main()).
>Или что должно быть им, если делать все правильно?
То же, что и было, лол. Твой код уже запущен в нём, тебе остальные задачи надо раскидать по другим.

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

inb4 сразу план действий:
Создай поток, крути на нём свои вычисления, и с помощью сигналов закидывай результаты обратно в главный поток где и меняй прогресс.
Аноним 13/05/20 Срд 23:35:08 1687272432
>>1687269
Учитывая, что ты явно не на KDE сидишь на шинде — нихуя.

>>1687267
Ему ещё рано такие слова слышать, зачем ты так?
Аноним 13/05/20 Срд 23:47:02 1687276433
С чего начать написание простого файлового менеджера? Нуб, QT использовал, про filesystem знаю. Не знаю с чего начать. Сорри если не тот тред.
Аноним 14/05/20 Чтв 00:03:19 1687284434
>>1687276
с вывода в консольку папок и файлов
Аноним 14/05/20 Чтв 00:28:24 1687289435
>>1687245
Допустим, у тебя есть массив строк, каждая из которых - имя поля конкретного класса
И ты можешь в цикле по этому массиву использовать все его поля, а не перечислять их отдельно, если прикрутишь макросы.

Нет, я не говорю, что это обязательно нужно и используется на каждом шагу. Просто без макросов вроде как нет пока способа так сделать.
Аноним 14/05/20 Чтв 01:27:33 1687297436
Аноним 14/05/20 Чтв 04:41:00 1687343437
image.png 142Кб, 265x190
265x190
Аноним 14/05/20 Чтв 07:27:02 1687364438
Анон, вчера в голову пришла идея о бесконечных целых типах. Типа числа с тыщью, миллионами разрядов и проч. Применений масса, хеши, финансы с учётом каждой копейки и проч. Также р напридумывал, что бесконечный целый тип может быть основным целым типом в языке, а компилятор (или какие-то там политики) уже решают, какое брать аппаратное ограничение, может быть 8 бит хватит на всю систему.
Есть ли какие-нибудь придумки по этой теме? Не думаю, что я первый это придумал
Аноним 14/05/20 Чтв 07:29:58 1687365439
1589430624491.jpg 50Кб, 884x346
884x346
Помогите распарралелить код, каждый тред вызывает данную функцию, но время выполнения точно такое же, что и в последовательной реализации.
Аноним 14/05/20 Чтв 08:43:53 1687374440
>>1687364
Если ты про то что бы можно было для каждой системы выставлять свои размеры интов, то в си и плюсах так и есть. Размер char в битах никак не ограничен - его могут выставить любым. Есть проблема с тем что подразумевается (хотя стандарт наверное этого не требует) что размер int равен макимально "удобному" для процессора размеру (тоесть обеспечивает максимальное быстродействие), что ограничивает размеры int размерами регистров процессора. Что ограничивает размеры char, так как char может быть любым, но он не может быть больше int.
Аноним 14/05/20 Чтв 08:56:44 1687377441
Аноним 14/05/20 Чтв 10:17:39 1687421442
>>1687364
Многие языки используют длинную арифметику, например питон и хаскель. ЕМНИП в хаскеле используется GMP по умолчанию для типа Integer.
Аноним 14/05/20 Чтв 11:40:41 1687494443
Безымянный.png 24Кб, 604x601
604x601
sizeof(head)) возвращает 56 байта вместо 54.
Функция начинает правильно работать только после сдвига указателя на 2.
Почему так?
Аноним 14/05/20 Чтв 11:50:18 1687506444
>>1687421
Я только сейчас понял, что у хаскелля-то реально есть применение. На нём же всякие уравнения можно писать почти как на доске, лол.
Аноним 14/05/20 Чтв 11:55:12 1687516445
>>1687364
было, в перле, в 91 году.
Аноним 14/05/20 Чтв 11:59:04 1687519446
Аноним 14/05/20 Чтв 12:01:14 1687521447
Screenshot.png 90Кб, 803x718
803x718
Пикрелейтед.
Почему при написании кастомного компаратора для бинарного поиска надо джва раза перегружать оператор () ?
Аноним 14/05/20 Чтв 12:16:17 1687536448
Аноним 14/05/20 Чтв 12:40:08 1687563449
>>1687494
Ох лол, только недавно была статья на хабре про это, а точнее про собес синьора который не знает про выравнивание.
Аноним 14/05/20 Чтв 12:55:13 1687581450
Аноним 14/05/20 Чтв 12:55:53 1687584451
>>1687521
Наверное чтобы не ебаться с конвертированием Dummy в int. std::binary_search требует чтобы объекты по которым ведется поиск могли быть сконвертированы в типы обоих аргументов оператора(). А тут они его просто перегрузили и никакой конвертации не нужно. Незнаю наколько это правильно.
Аноним 14/05/20 Чтв 13:02:30 1687600452
Аноним 14/05/20 Чтв 13:03:28 1687602453
>>1687584
ну, это работает, можешь сам проверить. Просто эти 2 перегрузки немного с толку сбивают.
Аноним 14/05/20 Чтв 13:34:53 1687659454
Прорамач, объясни дураку пожалуйста как создавать qm файлы и как их подрубать к проекту.
Прочитал в справочнике Qt о QTranslator и ничего не понял.
Вопрос именно с созданием qm файлов.
Спасибо.
Аноним 14/05/20 Чтв 16:49:01 1687945455
Аноним 14/05/20 Чтв 19:33:58 1688241456
>>1685466
У меня хорошо заработал из коробки только xcode. Все остальные жалкие поделия либо тащат с стобой 20Гб легаси и не умеют в лигатуры (visual studio), либо не могут из коробки создавать hello world без пердолинга и кофигурирования всяких cmakeов (qtbuilder, clion, eclipse).

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

Конечно сказывается отсутствие единого стандарта для проектов, и требование под каждую платформу пердолить свою ide
Аноним 14/05/20 Чтв 19:56:42 1688282457
>>1688241
>У меня хорошо заработал из коробки только xcode
У которого постоянно отваливается автокомплит проектах больше мелкого и такой же по стабильности дебаггер.
Ну, если тебе важен внешний вид, то икскод действительно самый лучший (да и шрифты на макоси рендерятся красиво, да).
>либо не могут из коробки создавать hello world без пердолинга и кофигурирования всяких cmakeов
Зато вот для взрослой разработки это минус, лол. Я ебал эти проекты икскода и их ебаный XML, конфликты в котором надо мерджить при каждом слиянии веток.
>Конечно сказывается отсутствие единого стандарта для проектов
Тащемта, есть CMake, который поддерживают примерно все.
>и требование под каждую платформу пердолить свою ide
Ты сейчас ахуеешь, но вообще всю инфраструктуру для этих иде (кроме парсера) надо тоже пердолить под каждую платформу свою.
Аноним 14/05/20 Чтв 19:57:26 1688285458
>>1688241
я наверное никогда не пойму гундёж по поводу сборки. стоит 2-3 дня уделить на освоение компиляции и симейка и проблем потом не возникает.
Аноним 14/05/20 Чтв 20:30:04 1688323459
Безымянный.jpg 165Кб, 604x818
604x818
Аноним 14/05/20 Чтв 20:46:28 1688336460
>>1681810
Писал как-то прогу по решению примеров. Понимает приоритет операций и скобки.
Вводишь строку. Пример 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;
}
Аноним 14/05/20 Чтв 21:11:22 1688365461
>>1688241
> не умеют в лигатуры
Не ври, у меня студия с шрифтом Cascadia Code всё прекрасно показывает. Только надо студию перезагрузить после смены шрифта
Аноним 14/05/20 Чтв 21:56:44 1688409462
Аноны, не могу себя контролировать и засиживаюсь до 4 утра, кодя по 14+ часов на С++ каждый день. Каждый раз говорю себе, что пора менять режим, но напрочь забываю о течении времени и "возвращаюсь в реальность" в начало пятого утра. Потом не могу заснуть ВООБЩЕ до примерно 6 утра и просыпаюсь в 11. Чувствую, что башка чуть хуже соображает, чем неделю назад, да и давление немного начало появляться (мне 26 лет и я не жирный, камон, чтоо?!). Было у кого-то такое? Как боролись с режимом и какой режим оптимален для того, чтобы случайно не подохнуть за клавиатурой? Кто-то сталкивался с печальными долгосрочными последствиями такого ебашилова?
Аноним 14/05/20 Чтв 22:51:23 1688483463
>>1688409
Пообещай себе, что не будешь так делать
Аноним 14/05/20 Чтв 23:15:00 1688507464
>>1688409
>мне 26 лет и я не жирный, камон, чтоо?!
Ты рофлишь или да? 26 лет - у тебя ПОЛОВИНА жизни уже позади и ты удивляешься что у тебя давление? Лол.
Аноним 15/05/20 Птн 00:07:46 1688563465
Сап, недавно решил попробовать С++, до этого программировал только на C#. У меня к вам такой вопрос: почему в любом коде, который я видел, никто не использует using namespace std; и т.п., а все пишут std::? Это как-то связано с желанием иметь больше букв на квадратный пиксель монитора или как? Я реально не вкуриваю.
Аноним 15/05/20 Птн 00:09:31 1688564466
>>1688563
std определяет множество вещей, так что может случится конфликт имен. По этому получишь по жопе если будешь юзать std глоабльно.
Аноним 15/05/20 Птн 00:12:10 1688565467
>>1688507
Пчел, но я живу в стране, где мужчины в среднем доживают до 81 года, к тому же у меня фул семья долгожителей, включая курящих дедов. Вроде как наследственностью не обременен, не курю, не ширяюсь, не жру все подряд(
Аноним 15/05/20 Птн 00:27:17 1688570468
>>1688565
Тогда может тебе съебать с русскоязычной борды?
Аноним 15/05/20 Птн 00:50:08 1688586469
>>1688409
Блин, а я наоборот завидую твоему энтузиазму. Надо делать задание к сессии, а я не могу ни строчки написать себя заставить.
Аноним 15/05/20 Птн 01:07:01 1688597470
>>1688565
От всего, что ты описал там еще выше, хорошо помогает один очень известный бензодиазепин, но вероятно в вашей стране его даже по рецепту не продают. И вопреки некоторым мнениям под ним отлично работается.
Аноним 15/05/20 Птн 02:10:49 1688609471
>>1688565
挨拶します、日本人兄弟!
Аноним 15/05/20 Птн 08:54:41 1688729472
1522969250450.jpg 58Кб, 812x1024
812x1024
>>1679966 (OP)
Аноны, шарпист в треде, помогайте. Помню тут были шутки про то как превратить кресты в жабаскрипт. Так вот, чем обмазываться, чтоб использовать кресты как C#? Любые классы обмазывать shared_pointer? Есть какие-то гайды как это правильно делать? Что ещё пердолить?
На кресты вкатываюсь вынуждено, на производительность похуй пока она не ниже шарпа, главное максимально снизить сложность кодинга и подводные камни.
Аноним 15/05/20 Птн 11:16:01 1688822473
Аноним 15/05/20 Птн 12:03:26 1688846474
Аноним 15/05/20 Птн 13:31:51 1688894475
>>1688409
И что же именно ты так усердно кодишь? Переписываешь код ядра линукса?
Очевидно, что написание кода - лишь часть процесса разработки. Кучу времени еще тратится на планирование архитектуры, выбора/осваивания предметной области и тд

PS В 26 лет проблем с биодвижком не должно быть, походу и правда что-то ты делаешь не так. Ну и если не сидишь на тяжелой наркоте, то я вообще не понимаю, что ты забыл в C++ треде
Аноним 15/05/20 Птн 14:57:27 1689025476
>>1688894
Пишу пет-проект, связанный с инфосеком. Долгая история.
Конечно же, я не только пишу код. Планировать архитектуру куда сложнее, код только описывает ее.
Аноним 15/05/20 Птн 15:03:07 1689031477
>>1689025
Хах, убийцу антивируса Попова ваяешь?

Ну тогда это не 14 часов C++, а 14 часов разработки - и это субъективно нормально, если затягивает
Аноним 15/05/20 Птн 15:03:50 1689033478
>>1688409
Могу предложить 2 варианта. Первый - найти работу, второй - не находить работу.
Аноним 15/05/20 Птн 15:10:15 1689040479
Аноним 15/05/20 Птн 18:00:45 1689309480
>>1689031
не, антивирусы - юзлесс хуйня. Пишу нечто, что связано с бинарной эксплуатацией (там куча эвристики и лоу-лвла, долго объяснять)
Аноним 15/05/20 Птн 19:21:46 1689418481
Есть большой список компайл-тайм констант:
inline constexpr int var1 = 123;
inline constexpr int var2 = 234;
...

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

Но видимо это так не работает. А как сделать чтобы заработало?
Аноним 15/05/20 Птн 19:32:31 1689428482
backtrace под армом не хочет ничего выводить и говорит о 0 адресах и 128 фреймах без изменений.
Ключики разные пробовал вставлять, но не зашло.
Читал, что нужно пересобирать glibc и туллчейн вместе с ним. Вы что подскажете?
Аноним 15/05/20 Птн 19:41:36 1689438483
Аноним 15/05/20 Птн 21:36:43 1689567484
Пагни, я правильно понял, что struct используют тогда, когда нужен просто класс без методов?
Аноним 15/05/20 Птн 21:44:39 1689579485
>>1689567
Тогда бывает нужно интерфейс какой-то навалять, тогда тоже используется
Аноним 15/05/20 Птн 22:11:55 1689613486
>>1689567
struct это практически тоже самое что и class, отличие только в том что в class по умолчанию все члены private, а в struct - public. Используешь что удобно.
Аноним 15/05/20 Птн 23:02:12 1689696487
Можете порекомендовать, что то годное для изучение Boost начинающему C++ программисту быдлокодеру?

Учился через Sololearn. Насколько это правильно или стоит читать книги, продемонстрированные в шапке?
Аноним 15/05/20 Птн 23:42:28 1689743488
Аноним 15/05/20 Птн 23:43:35 1689744489
>>1689696
> Можете порекомендовать, что то годное для изучение медицины начинающему проктологу?

Ну вот и что ты хочешь выучить-то бля? Весь буст от корки до корки? Ну удачи.
Если припрёт, тогда и выучишь, не трать своё время.
Аноним 15/05/20 Птн 23:49:09 1689752490
>>1689696
Буст - просто коллекция библиотек. Нужны графы? Кури Boost.Graph. Парсеры? Boost.Qi. Метапрограммирования Boost.MPL/Hana. Нетворкинг? Boost.ASIO. И так далее. Не надо - не смотри, там ещё та помойка, чтобы на неё жизнь тратить.
Аноним 16/05/20 Суб 00:10:11 1689782491
>>1689696
Пиши код, а не изучай то, что забудешь через неделю
Аноним 16/05/20 Суб 00:21:10 1689792492
>>1689782
Вот кстати да. Забывается очень быстро, если не закреплять практикой.
Я бы спросил совета где бы опыта набраться? Например в ДС, для мальчика лет 30 имеет ли смысл стажировку поискать? Есть ли конторы где работают до полуночи?
Аноним 16/05/20 Суб 00:40:50 1689813493
>>1689782
Ну хорошо, а если буду кодить и изучать, что то? Стоит всё таки учить через книги? Ну или через, что ты учил C++
Аноним 16/05/20 Суб 00:43:04 1689816494
>>1689813
Да что угодно, лишь бы писать. Напиши качалку файлов, напиши чат, напиши хуевую двухмерную игру, напиши архиватор, напиши хоть что-нибудь блять. Да, это в гигатонны раз сложнее, чем читать. Но сильно полезнее.
Аноним 16/05/20 Суб 01:02:14 1689834495
>>1689816
В процессе написания чего-то часто возникают вопросы. Когда с ними приходишь на /pr/ в профильный тред, ответом часто бывает "ебать ты кассир".
Аноним 16/05/20 Суб 01:04:50 1689835496
>>1689816
А для хуёвой двухмерной игры сгодится sfml?
Аноним 16/05/20 Суб 01:05:41 1689837497
>>1689835
>быстрофикс.
Ну или что посоветуете новичку?
Аноним 16/05/20 Суб 01:21:18 1689852498
>>1689834
Потому что тут тебе никто ничего не должен. Двач это не твой репетитор. Просто фильтруй шлак.
>>1689835
Да. Лично я начинал развлекаться с SDL2 (это была система видеонаблюдения, а не игра), но и проект вначале был на plain C. Если речь сразу о C++ идет, то sfml нормальный выбор.
Аноним 16/05/20 Суб 01:24:16 1689854499
>>1689852
Хорошо, спасибо, Анонче. А вот теперь встал вопрос по трудности использования. Она трудна в использовании, просто слышал, что её очень трудно устанавливать, один чел даже неделю думал, как установить sfml.
Аноним 16/05/20 Суб 01:24:52 1689855500
>>1689854
>Она трудна в использовании,
Билять, это должен был быть вопрос
Аноним 16/05/20 Суб 01:30:18 1689857501
>>1689852
Опять я, мне уже всё равно, насколько сложная sfml, я точно напишу на ней. Ещё раз спасибо.
Аноним 16/05/20 Суб 01:34:52 1689858502
Аноним 16/05/20 Суб 01:35:51 1689859503
Аноним 16/05/20 Суб 01:42:35 1689861504
>>1689859
и? vcpkg install sfml работает во всех трех осях с симейком.
Аноним 16/05/20 Суб 01:43:31 1689863505
>>1689861
А разве vcpkg - не утилита для visual studio?
Аноним 16/05/20 Суб 01:49:44 1689870506
Аноним 16/05/20 Суб 02:11:00 1689878507
Аноним 16/05/20 Суб 02:12:13 1689879508
>>1689878
Окъ, а ты уже ей пользовался?
Аноним 16/05/20 Суб 02:57:16 1689885509
>>1689870
Установил, но не через эту хуергу, потому что clion всё равно ругался.
Аноним 16/05/20 Суб 04:34:55 1689898510
Когда я запустил этот код
#include <iostream>
int* main(){}
мой окна защитник матюкнулся. Почему?
Аноним 16/05/20 Суб 05:21:37 1689900511
>>1689898
Любая программа не из стора с подписью - потенциальный вредонос, ведь может сделать что угодно, никакие официальные инстанции её не проверили и не выдали сертификат..
Аноним 16/05/20 Суб 05:40:42 1689903512
>>1689792
Опыта можно набраться и коммитами в опенсурс, так и пиши что ищешь ментора который за ручку проведет от интерна до миддла.
Аноним 16/05/20 Суб 05:41:01 1689904513
>>1689900
А теперь давай без шуток.
Аноним 16/05/20 Суб 05:44:07 1689905514
>>1689904
Здравствуйте, спасибо что пользуетесь нашим программным продуктом Окна защитник, мы передали ваше обращение техническому специалисту, ожидайте ответ.
Аноним 16/05/20 Суб 06:53:48 1689925515
Аноним 16/05/20 Суб 07:08:36 1689932516
>>1689904
>>1689898
> Когда я запустил этот код
Нет, не запустил. В си нет кода, только описательный псевдотекст, его нельзя запустить, т.к. он не является программой. Ты запустил совсем другое, сеначала программу-компилятор и прочие утилиты, а потом программу ими сгенерированную.

Если еще не понятно, приведу сравнение. Вот есть, скажем, джаваскрипт, или питон, вот это код, ты пишешь код и этот код выполняется. А в си не так, твой текстовичок не выполняется. Поэтому то что ты напечатал и показал и что проверяет антивирус это разные вещи, причем даже разные категории.
Аноним 16/05/20 Суб 08:38:35 1689954517
>>1689567
Когда грубо говоря тебе нужен именованный кортеж, без инвариантов, зависимостей его значений от чего-то, не паблик членов и т.п. Можно сделать и классом, но struct явно показывает твои намерения другим и тебе в будущем.
Аноним 16/05/20 Суб 09:24:09 1689969518
>>1689932
Не придирайся к словам, шизоид.
Аноним 16/05/20 Суб 11:08:59 1689988519
>>1689309
Уж постарайся, мы не глупые
Аноним 16/05/20 Суб 11:54:21 1690009520
Привет парни, тут ображулил такой момент, но не могу понять такое поведение ожидаемо? или зависит от конкертного компилятора;
Аноним 16/05/20 Суб 11:58:02 1690012521
>>1690009
>блять случайно отравил.
Привет парни, тут ображулил такой момент, но не могу понять такое поведение ожидаемо? или зависит от конкертного компилятора;

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

Вс
Аноним 16/05/20 Суб 11:59:28 1690014522
>>1690012
чото браузер у меня глючит извиняюсь еще раз, в общем итерация от end() всегда будет указывтаь на нулевой элемент?
Аноним 16/05/20 Суб 12:55:52 1690040523
>>1690012
Инкремент end() это уже само по себе UB, а его разыменование это вообще гроб гроб кладбище пидор
Аноним 16/05/20 Суб 13:33:19 1690062524
>>1690012
А что не так? У тебя итератор стал end(), который нельзя разыменовывать, так ты его еще и инкрементировал и вдвойне получил UB.
Аноним 16/05/20 Суб 15:48:41 1690283525
Capture.PNG 10Кб, 585x160
585x160
>>1679966 (OP)
Пишу программу на С++, GUI WinForms.

Как сделать таблицу подобную пикрилу? Пробовал datagribview, но она какая-то пресная, а я хочу чтобы была как на пике. Скажите, пожалуйста, как такое сделать?
Аноним 16/05/20 Суб 17:59:15 1690463526
Посоветуйте книгу по stl и новому c++.
Аноним 16/05/20 Суб 18:00:13 1690465527
>>1690463
Effective Modern C++ от Майерса
Аноним 16/05/20 Суб 18:03:18 1690473528
Аноним 16/05/20 Суб 18:04:07 1690476529
Аноним 16/05/20 Суб 18:04:09 1690477530
>>1690473
Тебе скорее в C# тред
Аноним 16/05/20 Суб 18:04:55 1690480531
Аноним 16/05/20 Суб 18:05:30 1690483532
>>1690477
я не знаю шарп. я пишу на с\с++ мне нужно написать десктоп на окна с таблицей, взял гуи winforms он с++ поддерживает.

>>1690476
спасибо, посмотрю
Аноним 16/05/20 Суб 18:10:25 1690497533
>>1690040
>>1690062
дак это и спрашиваю, обнаружил, что при разыменовывание end()+1 получаю итератор равный begin(). Это просто неопределенное поведение компилятора, Или может где прописано в стандарте?
Положняк Аноним 16/05/20 Суб 18:42:23 1690569534
ЦиклБУфер.PNG 23Кб, 443x899
443x899
ке.PNG 21Кб, 373x923
373x923
нормальны ли реализации циклического буфера ?
Аноним 16/05/20 Суб 18:53:22 1690606535
>>1690497
Ты релиз собираешь или дебаг?
Аноним 16/05/20 Суб 19:15:36 1690653536
>>1690606
а есть какая-то разница в данном контексте? но работает и так и так. g++ 7.5.0
Аноним 16/05/20 Суб 20:26:52 1690840537
ConsoleAct-1.png 3Кб, 677x343
677x343
Как сделать надписи в консоле разных цветов? А то у меня меняется весь цвет консоли.
Аноним 16/05/20 Суб 20:43:42 1690900538
Аноним 16/05/20 Суб 20:47:08 1690908539
Аноним 16/05/20 Суб 22:28:57 1691065540
Аноним 17/05/20 Вск 09:10:57 1691316541
В чем разница между ссылкой и указателем на функцию?
Аноним 17/05/20 Вск 11:16:17 1691362542
Как начать писать сетевые приложения на С++? Что посоветуете прочитать/изучить.
Аноним 17/05/20 Вск 11:16:59 1691363543
>>1691316
Указатель ты можешь переназначить, а ссылку нет.
Аноним 17/05/20 Вск 11:19:27 1691364544
Снимок экрана о[...].png 267Кб, 1599x1113
1599x1113
Короче суть оказалась проста: qmake все вот эти макросы Q_OBJECT Q_PROPERTY обрабатывает только в заголовочных файлах, но не просто в заголовочных файлах проекта которые тупо заинклюжены, а которые еще и в rонфиге проекта добавлены как заголовочные:

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

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


>>1679970
>>1680050
>>1680508
>>1680521
Аноним 17/05/20 Вск 11:37:46 1691370545
Аноним 17/05/20 Вск 11:38:17 1691372546
>>1691316
В c++ нет такого понятия, как ссылка на функцию
Аноним 17/05/20 Вск 12:03:23 1691393547
Аноним 17/05/20 Вск 12:24:20 1691408548
Аноним 17/05/20 Вск 13:21:25 1691527549
>>1691393
Мааааам, скажи жи нет в плюсах ссылок на функции
Аноним 17/05/20 Вск 14:25:27 1691603550
>>1691364
А как так вышло, что в про-файле не было этого? У меня автоматически добавляется вроде как.
Аноним 17/05/20 Вск 14:25:49 1691604551
>>1691364
какое же говно QT. Если еще с verdigris сьедобно хоть как-то, то вот по классике с этими говномакросами и moc'ами - ваще ад.

Аноним 17/05/20 Вск 14:57:12 1691654552
>>1691603
> А как так вышло, что в про-файле не было этого?
Бабушка не положила
Ну наверно в шаблонах QtQuick этого нету по умолчанию.

>>1691604
Это да, но в конечном итоге все равно главное что работает.
qml с кодом на плюсах взаимодействует (кстати типы вроде uint8_t не поддерживаются, круг использования такой типизации все меньше и меньше, по крайней мере в приложениях, в каких нибудь библиотеках на си всегда будет актуально для цветовых каналов, еще для чего то)
Аноним 17/05/20 Вск 16:02:51 1691738553
изображение.png 22Кб, 656x158
656x158
Для вката норм? или лучше Страуструпа читать?
Аноним 17/05/20 Вск 16:03:13 1691739554
>>1691738
Курсы от яндекса на курсере лучше всего
Аноним 17/05/20 Вск 16:14:06 1691758555
>>1691738
Лучше Липпмана почитай
Аноним 17/05/20 Вск 16:17:38 1691762556
>>1691738
Лучшие бесплатные курсы. За что-то другое уже платить надо. То, что привели выше, уже платное
Аноним 17/05/20 Вск 16:32:27 1691784557
>>1691739
слышал, но там за денежку.
Аноним 17/05/20 Вск 17:41:04 1691879558
>>1691362
Палю гайд:
1. Учишь С++
2. Учишь сети
3. Учишь нужный инструментарий для сетевой работы: API ОС/Boost/Qt Network/"github.com/Vasyan9B/SamayaAhuennayaSetevayaLiba"
4. Говнокодишь убийцу nginx с рпс не меньше тоннажа твоей мамаши
И можешь считать что справился
Аноним 17/05/20 Вск 17:42:04 1691883559
>>1691784
написано "Учавствовать бесплатно" Aspartic
Аноним 17/05/20 Вск 19:10:29 1692041560
>>1691879
Есть же Asio С++, причем отдельно от буста. Годная либа, с помозью которой можно пилить сетевые приложения, которые будут выдерживать траффик фейсбука (если сервер не на твоем тщедушном камплюхтере с вай-фай соединением офк, лол)
Аноним 17/05/20 Вск 21:11:08 1692239561
Как передать массив(объявленный через new) структур в функцию по значению?
Аноним 17/05/20 Вск 21:18:17 1692249562
Аноним 17/05/20 Вск 22:22:35 1692310563
Ананасы, можно ли как-нибудь создать псевдоним для функции (кроме макросов, указателей на функции и обёрток своих)?
А то иногда такие уебанские имена бывают, шо пиздец
Аноним 17/05/20 Вск 22:48:09 1692348564
изображение.png 161Кб, 1920x1080
1920x1080
Решил изучать winapi выдает ошибки, что это и как фиксить?
Аноним 17/05/20 Вск 23:03:52 1692356565
>>1692310
Можешь ссылку взять
>>1692348
У тебя в настройках скорее всего тип проекта Application, а по коду выглядит так, будто пытаешься написать библиотеку.
Аноним 17/05/20 Вск 23:12:56 1692366566
krestiki.png 28Кб, 754x367
754x367
>>1692348
Переключи subsystem проекта в Windows как на пикриле.

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

Аноним 17/05/20 Вск 23:21:15 1692374567
15822851831390.png 42Кб, 1085x974
1085x974
Оцените код, аноны
Аноним 17/05/20 Вск 23:32:20 1692384568
>>1692374
Недавно вкатился, прошел пару курсов за 1500, думаю норм получилось. Скоро на собес в майл ру пойду.
Аноним 17/05/20 Вск 23:33:42 1692385569
Делаю свой шаблонный класс-контейнер, можно ли как-нибудь для него реализовать range based for?
Аноним 17/05/20 Вск 23:36:07 1692391570
>>1692374
Не знал, что в c++ есть and/or
Аноним 18/05/20 Пнд 00:02:58 1692407571
Аноним 18/05/20 Пнд 00:06:27 1692410572
>>1692374
iostream головного мозга
>choise
Аноним 18/05/20 Пнд 00:12:20 1692415573
krestiki.png 61Кб, 776x667
776x667
>>1692385
Надо написать begin и end для своего класса, которые возвращают обьект с операторами *, ++ и !=.

Приложил ублюдочный пример
Аноним 18/05/20 Пнд 03:25:45 1692508574
Аноним 18/05/20 Пнд 04:04:42 1692512575
>>1692391
дефайнами ты хоть аллаха можешь призвать

Просто этому клоуну помимо наговнокоженного клубка из ифов было мало видать
Аноним 18/05/20 Пнд 07:00:43 1692550576
>>1692374
Нормально, как джавоскрипт после минификатора.
Аноним 18/05/20 Пнд 11:20:06 1692684577
>>1692512
And и or - это не дефайны
Аноним 18/05/20 Пнд 12:35:11 1692725578
Ананасы, как лучше писать:
void foo() по старинке
или же auto foo() -> void ?
Зачем вообще придумали второй вариант и когда/почему его надо использовать?
Аноним 18/05/20 Пнд 13:09:10 1692742579
.png 56Кб, 1444x212
1444x212
.png 59Кб, 945x336
945x336
>>1692725
Это какая то новомодная ебала из Rust/Swift/Go

Они там ебанулись все и договорились хуячить одинаковый синтаксис причем спорный
Аноним 18/05/20 Пнд 13:11:44 1692743580
>>1692684
Еще not и в наше рабочем кодстайле он за каким-то хуем предпочтительнее оператора !
Аноним 18/05/20 Пнд 13:11:58 1692744581
>>1692725
Для лямбды удобно использовать типо auto func = []() -> int {return 1;}; Для обычных функций хуй знает вообще зачем это нужно.
Аноним 18/05/20 Пнд 13:42:20 1692770582
image.png 48Кб, 764x114
764x114
Аноны, мне нужна ваша помощь. Я никак не могу понять, что хочет преподаватель. Единственное, что понятно - написать функцию-шаблон.
Аноним 18/05/20 Пнд 13:47:38 1692774583
Снимок экрана о[...].png 143Кб, 702x1016
702x1016
Помогите ньюфагу понять что не так.
Хочу прицепить к проекту mpv так как там есть проработанный апи который позволяет плеером управлять там хоть с луаскриптов хоть с осцилогрофа, плюс он есть собранный на компе с шаредлибой.
Но естественно я чет подзабыл а как он вообще либу то неходит? Ровно так как инклюд указывает?
Аноним 18/05/20 Пнд 13:50:51 1692778584
>>1692725
Это, кажется, для шаблонов вообще штука, чтобы выводился правильный тип, если аргументов шаблона два и какой-то из них предпочтительнее. Где-то у Йосуттиса было в его трактате о шаблонах об этом написано.
Аноним 18/05/20 Пнд 14:05:02 1692789585
>>1692725
Второй вариант устарел с выходом c++14, теперь достаточно просто auto
Аноним 18/05/20 Пнд 14:06:21 1692790586
>>1692725
Это математики опять говна залили со своими нотациями.
В программировании всегда так, если видишь какое-то уебанское соглашение или название, значит это кто-то зачем-то послушал математиков.
Аноним 18/05/20 Пнд 14:07:24 1692792587
аноны, что можно почитать по теме С++ в задачах обработки сигналов/проектировании систем управления?
Аноним 18/05/20 Пнд 14:14:22 1692802588
>>1692744
И что ты сейчас высрал?
В твоей строке auto используется как тип новой переменной, а у него - в объявлении функции
Аноним 18/05/20 Пнд 14:17:31 1692804589
>>1692792
Отдельно читай про С++, отдельно про свои системы управления.
Аноним 18/05/20 Пнд 14:18:59 1692806590
>>1692770
template<typename Container> int hui(const Container& zhopa){...}

Не благодари
Аноним 18/05/20 Пнд 14:24:31 1692811591
>>1692804
ну там мб подходы устоявшиеся какие есть и тд
Аноним 18/05/20 Пнд 14:28:00 1692812592
Какая же я тупая мразь. Учу плюсы вот по этой хуйне https://ravesli.com/glava-1-itogovyj-test/
Всё читал вдумчиво, понимал, задания все делал с первого раза. А как дошло дело до итогового теста завис на первом наипростейшем задании. Просто как будто из головы вылетело всё, что до этого изучал. Пришлось подглядывать в решение. Теперь жопа горит блять.
Аноним 18/05/20 Пнд 14:29:35 1692816593
>>1692811
Подходы - в алгоритмах и идеях, а не в языке реализации.
Аноним 18/05/20 Пнд 14:29:46 1692817594
Добрый день, мужчины, нужен хелп, томушо информатик задал написать несколько задач по С++, но нихуя не дал конспектов или каких-либо обьяснений, есть шарящие, помогите =(

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 и выводить его на экран.
18/05/20 Пнд 14:35:19 1692829595
Аноним 18/05/20 Пнд 14:35:36 1692830596
Аноним 18/05/20 Пнд 14:38:47 1692832597
>>1692817
Чел, я уроки по c++ вчера впервые в жизни открыл и мне этого хватило чтобы знать как сделать вообще любую из этих задач. Тут знания нужны чуть более углублённые чем для написания хеллоуворлда. Именно чуть.
Аноним 18/05/20 Пнд 14:52:53 1692844598
>>1692817
Нахуя это на плюсах писать. Пиши на питоне
Аноним 18/05/20 Пнд 15:01:20 1692853599
>>1692806
Не, это-то понятно. А дальше что? Просто считать, что мы можем обращаться по [] к элементам и получать длину через length?
Аноним 18/05/20 Пнд 15:02:01 1692856600
Аноним 18/05/20 Пнд 15:03:51 1692858601
Аноним 18/05/20 Пнд 15:15:43 1692878602
>>1692817
Сделаю в лучшем виде за 5 руб + перепихон

Пиши сладкий:
ashotzuhrabovich1954@mail.ru
Аноним 18/05/20 Пнд 15:32:01 1692899603
Что это?
string const * const &
Аноним 18/05/20 Пнд 15:33:24 1692901604
>>1692802
То и высрал, что у меня в примере тип возврата из лямбды так же через стрелочку -> int.
Аноним 18/05/20 Пнд 15:33:34 1692902605
>>1692899
Ссылка на константный указатель на константную строку
Аноним 18/05/20 Пнд 15:53:05 1692928606
>>1692901
Лол но ты написал "удобно использовать". Только вот trailing type - единственный способ указать тип возвращаемого значения у лямбды . Нет никакого альтернативного способа как в случае с обычными функциями: написать int [](){} не получится
Аноним 18/05/20 Пнд 15:56:18 1692932607
>>1692928
Можно ничего не указывать и после return явно написать return (int)1.f; , и будет тип возвращаемого значения int.
Аноним 18/05/20 Пнд 15:56:44 1692933608
>>1692932
а теперь попробуй вернуть std::optional без указания trailing type
Аноним 18/05/20 Пнд 15:58:48 1692934609
image.png 11Кб, 475x190
475x190
Аноним 18/05/20 Пнд 16:00:08 1692936610
Аноним 18/05/20 Пнд 16:03:35 1692943611
image.png 16Кб, 478x290
478x290
Аноним 18/05/20 Пнд 16:05:19 1692946612
>>1692943
кайф. Каждый nullopt будешь создавать вот так вот ручками через конструктор optional, или таки воспользуешься trailing return type и будешь писать return std::nullopt ?
Аноним 18/05/20 Пнд 16:09:56 1692953613
image.png 80Кб, 209x305
209x305
>>1692946
>Каждый nullopt будешь создавать вот так вот ручками через конструктор optional
К чему вообще этот спор? ты мне говоришь, что так нельзя сделать, я показываю, что можно. Офк юзать можно и то и то при разных обстоятельствах.
Аноним 18/05/20 Пнд 16:12:02 1692956614
>>1692953
Я нигде не утверждал, что НЕЛЬЗЯ, а показал вполне юзкейс, где оно отлично заходит.
Аноним 18/05/20 Пнд 16:35:24 1692969615
>>1692817
Толстишь анонче, толстишь.
Аноним 18/05/20 Пнд 17:00:27 1692987616
>>1692812
Если ты после прочтения всех предыдущих глав не смог эту хуету решить с первого раза, то я хз как ты вообще комп включил и по клавишам попадаешь. Тебе не то что программистом, тебе грузчиком только и остаётся быть.
Аноним 18/05/20 Пнд 17:06:19 1692990617
1589810775583.jpg 195Кб, 1080x577
1080x577
>>1692812
Представляю как ты бы охуел от книги k&r
Аноним 18/05/20 Пнд 17:12:46 1692996618
>>1692990
Выглядит сложно на первый взгляд. Если там не важен порядок того как эти скобки закрываются {(}) - считается невалидным то тогда под каждый тип скобок можно запилить вектор, при открывающей скобке пушить, при закрывающей попать, в конце правильность проверить тем, что каждый вектор должен быть пуст.
Аноним 18/05/20 Пнд 17:33:16 1693012619
Что почитать для вката в олимпиадную прогу и нужно ли знать новые стандарты чтобы быстрее писать код?
Аноним 18/05/20 Пнд 17:41:07 1693024620
>>1693012
> Что почитать для вката в олимпиадную прогу
Cracking the code interview, потом дрочить leetcode

> нужно ли знать новые стандарты чтобы быстрее писать код?
Быстрее не быстрее, но знать нужно
Аноним 18/05/20 Пнд 18:23:04 1693074621
Ебаный цирк с фигурными скобками и initializer_list
Аноним 18/05/20 Пнд 18:24:24 1693079622
Двач, подскажите, есть ли такой контейнер что-бы можно было задать ему фиксированный размер и вставлять в него элементы с одной стороны, а с другой что-бы они смещаясь по очереди вылетали?
Аноним 18/05/20 Пнд 18:25:13 1693082623
Аноним 18/05/20 Пнд 19:49:46 1693164624
>>1692996
А если важен, то один стек под все скобки, каждой скобке -- своё значение.
Аноним 18/05/20 Пнд 20:58:25 1693236625
>>1692817
Вика, ну я же намекал на доп занятия после уроков, глупенькая.
Аноним 18/05/20 Пнд 23:52:52 1693378626
>>1692774
Пчел, ну разберись ты раз и навсегда. Что такое разделяемая библиотека? Это
-include
-lib
-bin
Инклюды ты уже подключил. Теперь тебе нужно указать, с чем линковать твой скомпилированный код, т.е. указать .lib файлы библиотеки (.a в линуксе). Для этого обычно указывают отдельно пути, где искать такие файлы и отдельно сами названия файлов.
Финальный штрих - это скопировать нужные .dll в папку со своим исполняемым файлом или указать путь к .so в линуксе.
Аноним 19/05/20 Втр 15:40:46 1693828627
аноны, соре, если проебался с тредом
но, как мне кажется это наиболее релевантный из всех
что можно почитать (лучше посмотреть) по устройству linux?
Аноним 20/05/20 Срд 01:01:25 1694413628
log.PNG 23Кб, 586x763
586x763
log2.PNG 4Кб, 366x254
366x254
Как работает initializer_list ? Я имею имею ввиду принцип работы, как это реализовано. И норм использовать такую инициализацию матрицы?(двойным листом)
Аноним 20/05/20 Срд 06:36:22 1694519629
Аноним 20/05/20 Срд 11:06:25 1694776630
>>1693012
Тебе хуем по лбу дадут если будешь юзать из std, что-то помимо std::list. По этому все алгоритмы и сортировки нужно знать самому.
Аноним 20/05/20 Срд 11:48:17 1694848631
Аноним 20/05/20 Срд 13:02:00 1694979632
321s.png 16Кб, 1042x580
1042x580
Суп, программисты. Помогите вот с чем: имею кучу текста формата, как на пике. Как его форматнуть так, чтобы остались только номера вида "55048912", на пример? Скажу сразу - я не погромист. Когда-то давно были потуги, но так и не осилил.
Собсна, хочу попробовать написать софтину для работы.
Аноним 20/05/20 Срд 13:04:54 1694987633
>>1694979
не надо это писать на С++
Аноним 20/05/20 Срд 13:10:10 1694996634
Аноним 20/05/20 Срд 13:18:48 1695008635
Выводится что надо qDebug() << string;
Выводится только один раз (вывожу в цикле) только часть строки std::wcout << string;
Почему так? Строка является std::wstring
Аноним 20/05/20 Срд 14:06:15 1695054636
Анон, нубас на связи, совета спросить хочу.
Открыл литкод с самой простой задачи:
https://leetcode.com/problems/reverse-integer/

В целом работает мое поделие, решил проверку диапазона вводимого числа проверить и получается все сую в if. Это не слишком вульгарно, всю программу в иф?
Аноним 20/05/20 Срд 14:54:23 1695122637
>>1694848
Проверяющие люди/система.
Аноним 20/05/20 Срд 15:08:45 1695138638
>>1695122
Уверен? Я ооочень сомневаюсь. Я уверен что можно использовать std
Аноним 20/05/20 Срд 15:14:53 1695148639
Аноним 20/05/20 Срд 15:18:23 1695152640
>>1694979
Регулярные выражение можно использовать, если у тебя номер всегда длиннее веса в килограммах.
Типо ищешь выражение длиной в 8 символов, состоящее только из цифр.
Аноним 20/05/20 Срд 16:02:48 1695201641
>>1695152
То есть будет примерно так?
list = текст из файла или копипаст в листбокс;
regex numb("^[0-9]{8,8}$");
if (regex_math(list, numb))
cout << numb;
Аноним 20/05/20 Срд 16:30:29 1695240642
Как в Visual Studio 2019 компилировать код по строкам? То есть от строки к строке проверять значение переменных, переходя к новой строке при нажатии на кнопку.
Аноним 20/05/20 Срд 17:16:16 1695274643
Есть какие- нибудь примеры с перегрузкой >> std::vector/std::array для базовых типов?
Аноним 20/05/20 Срд 17:45:56 1695316644
>>1695240
Если ты про режим отладки, то просто кликаешь на полосу слева от кода, появляется красный кружок.
В этом месте программа остановиться и ты сможешь просмотреть значения переменных.
Аноним 20/05/20 Срд 18:08:20 1695346645
krestiki.png 42Кб, 893x725
893x725
Аноним 20/05/20 Срд 18:15:10 1695358646
Сап, помогите советом , решил вкатиться в плюсы начал изучать , пока крайнее, что затронул это классы.
С++ это первый язык который я изучаю, пока мне он очень нравится. Стоит ли переходить в другой язык для получения основ или уже не надо ?
Аноним 20/05/20 Срд 18:16:28 1695363647
>>1695358
Если тебе нравится - обязательно изучай. Вообще - это самое главное, чтобы нравилось.
Аноним 20/05/20 Срд 18:20:06 1695370648
>>1695363
Благодарю, и еще вопросик(мб банальный) , что в будущем смогу сделать с этим языком (какие программы написать ( только приложения под компьютер/игры/или функционал больше)?
Аноним 20/05/20 Срд 18:22:30 1695374649
>>1695370
На плюсах возможно все написать . Вопрос в том удобно ли на нем это делать. А вообще все, на что у тебя хватит сил и времени.
Аноним 20/05/20 Срд 18:23:12 1695376650
>>1695370
на С++ можно писать абсолютно все, от веб фронтенда (зачем, но это уже другой вопрос), до драйверов. Так что ответ - любые программы.
Аноним 20/05/20 Срд 18:24:04 1695378651
>>1695376
Еще раз очень благодарен
Аноним 20/05/20 Срд 18:39:32 1695404652
image.png 29Кб, 868x428
868x428
Двощь, почему так?
Аноним 20/05/20 Срд 18:52:52 1695417653
Аноним 20/05/20 Срд 18:54:49 1695420654
Аноним 20/05/20 Срд 19:22:20 1695451655
>>1695420
сложнее, т.к. надо держать доп. индекс куда писать. Используй вектор?
Аноним 20/05/20 Срд 19:33:38 1695461656
>>1695451
Вектор для трех значений оверкилл...
Аноним 20/05/20 Срд 19:42:24 1695466657
>>1695417
Я так понимаю, что динамические массивы и regex нельзя подружить? По крайней мере, в интернетах не нашел ничего по этому поводу. С обычной строкой все работает на ура.
Хуй знает зачем я вообще брал динамический массив

Алсо, в последующем хочу в массив запихнуть текст из файла. Потом циклом по каждой строке можно будет пройтись regex_math?
Аноним 20/05/20 Срд 20:15:15 1695483658
>>1695138
Ты дурак блять? Никто тебе не разрешит ничего, кроме вектора и листа. Все остальное ручками сам. А вообще бросай эту хуйню, олимпиадное программирование ни о чем. Эти дебилы на проде не могут быстро нагуглить нужной информации, а в яндекс за три котлеты устроится не особо и поможет.
мимо другой анон
Аноним 20/05/20 Срд 20:23:56 1695492659
>>1695346
А если я захочу вектор не стрингов, а своих классов?
Аноним 20/05/20 Срд 20:24:35 1695494660
>>1695492
ну, делай так же, только замени вектор на свой класс?
Аноним 20/05/20 Срд 20:25:15 1695495661
Аноним 20/05/20 Срд 20:25:49 1695496662
>>1695494
Не проще шаблонном сразу реализовать? Так универсальнее.
Аноним 20/05/20 Срд 20:51:23 1695513663
>>1680822
В нормальных командах UI пишут руками.
В говноедских попилочных юзают дезигнер.
Аноним 20/05/20 Срд 21:21:26 1695540664
>>1695494
Мне бы с интами, но массив...
Аноним 20/05/20 Срд 21:40:08 1695563665
Аноним 20/05/20 Срд 22:09:30 1695596666
>>1695513
Проще ведь нахуярить в дизайнере интерфейс и вручную из него говна повыкидывать
Аноним 20/05/20 Срд 22:47:39 1695651667
>>1695483
> Ты дурак блять? Никто тебе не разрешит ничего, кроме вектора и листа. Все остальное ручками сам.
С чего ты взял?
Аноним 20/05/20 Срд 22:51:37 1695656668
>>1695483
Не знаю про прям супердрочерскую олимпиадную парашу - но и яндекс и гугл на собесах разрешают весь STL (я собесился и туда, и туда)
Аноним 20/05/20 Срд 22:54:38 1695662669
>>1695656
И как собес прошел?
> другой анон
Аноним 20/05/20 Срд 22:59:50 1695668670
>>1695316
А если у меня цикл и я хочу проверять значение переменных при каждой новой итерации?
Аноним 20/05/20 Срд 23:00:16 1695669671
Аноним 20/05/20 Срд 23:20:37 1695697672
>>1695662
в гугл не взяли, но я и сильно не готовился. Яндекс прошел, но оффер от Нвидии был сильно жирнее
Аноним 21/05/20 Чтв 09:53:50 1696010673
>>1695697
Пруф будет? или полшел нахуй
Аноним 21/05/20 Чтв 09:55:00 1696011674
>>1695656
Собесы и олимпиада - разные вещи.
Аноним 21/05/20 Чтв 11:18:43 1696059675
>>1695466
Если честно, то не пойму, кто из нас дурак. В чём взять match для каждой строки вектора? Или это не то, что тебе нужно?
Аноним 21/05/20 Чтв 13:24:11 1696173676
>>1696010
Какой пруф? Что меня в гугл не взяли?
Аноним 21/05/20 Чтв 14:43:54 1696266677
>>1696173
Что оффер от нвидии пришел. или ты отказаться решил?
Аноним 21/05/20 Чтв 14:49:02 1696271678
>>1695346
Красивый язык с++, хоть и не понятный нифига на 1 взгляд.
Аноним 21/05/20 Чтв 15:15:38 1696300679
qeq.png 69Кб, 903x835
903x835
Аноним 21/05/20 Чтв 17:51:40 1696526680
Безымянный11.png 22Кб, 695x582
695x582
Почему не работает загрузка из файла, ананасы? Что не так делаю?
Аноним 21/05/20 Чтв 23:17:48 1696951681
Ананасы, каким образом вы оцениваете сроки работы и часто ли угадываете? Я вот за два года работы так и не научился их внятно оценивать и постоянно срываю свои оценки. Из-за чего последнее время стал зверски стрессовать хотя всем похуй, предъяв ни разу ещё не было. А из-за постоянного стресса уже с такой ненавистью думаю о работе
Короче, как вы оцениваете время, когда до конца не знаете, с чем столкнётесь?
Аноним 22/05/20 Птн 07:53:05 1697234682
>>1696300
хуёрм. Для такого пруфа достаточно paint'а
Аноним 22/05/20 Птн 15:55:15 1697736683
>>1697234
Пусть на тапок свой фотку экрана с открытым окошком сделает
Аноним 22/05/20 Птн 17:35:49 1697808684
Господа, поясните за паттерн Prototype. Почему прототип нужно копировать? Что мешает мне создать точно такой же объект с помощью new? Копирование быстрее, чем инициализация?
Просто вот есть у меня куча объектов-прототипов, и у каждого по несколько полей-указателей. Я не понимаю, зачем мне заново прописывать инициализации для каждого из полей в методе Clone(), когда я могу просто создать новый объект, и все точно будет работать.
Аноним 22/05/20 Птн 22:14:13 1698270685
Хранится 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

Есть какой-то человеческий вариант?
Аноним 22/05/20 Птн 22:23:33 1698284686
>>1698270
не храни double как uint64
Аноним 22/05/20 Птн 22:58:54 1698354687
Аноним 23/05/20 Суб 00:12:49 1698438688
>>1697736
Лол, такое окошко сваять пять минут. Дольше тапок искать
Аноним 23/05/20 Суб 04:00:50 1698614689
В кресты завозили события или нужно самому имплементить?
Аноним 23/05/20 Суб 08:41:30 1698663690
>>1698270
std::uint64_t num = ...;
double d = reinterpret_cast<double &>(num);
Более человеческого, наверное, нет. Это тот же самый каст в указатель, по сути. Не знаю, чем он тебе не понравился.
Аноним 23/05/20 Суб 08:53:24 1698665691
Почему некоторые либы требуют установки? Например захотел воспользоваться wxwidgets, а его надо установить. Почему нельзя просто заголовочные файлы заинклюдить?
23/05/20 Суб 14:01:59 1698824692
23/05/20 Суб 14:07:02 1698825693
>>1694776
Я когда олимпиаду делал пару лет назад, нас не то что не проверяли на использование каких-либо стандартных библиотек, нам вообще разрешалось писать на любом (!sic) языке. В итоге получается: Маша отличница, занимавшаяся с репетитором, сосёт на своём паскале у Васи троечника, который взял питухон и решил все олимпиадные задачки за 20 минут.
Аноним 23/05/20 Суб 21:27:12 1699377694
Какой есть хороший гайд по Visual Studio, чтобы наглядно объяснили где какие параметры лежат и показали как запускать ее не тысячу лет.
Аноним 24/05/20 Вск 00:44:48 1699594695
Аноним 24/05/20 Вск 10:45:40 1699715696
>>1698665
Не выдумывай, скачай архив и распакуй его куда тебе удобно
Аноним 24/05/20 Вск 10:57:08 1699720697
Аноны, как пользоваться cmake?
Есть либа - https://github.com/msteinbeck/tinyspline
Без проблем собирается в CLion. Но как её в своём коде использовать? tinysplinecxx.h высерает сотню ошибок при включении в свой код, в том числе на синтаксис. В примерах там просто делают #include "tinysplinecxx.h". Но этот пример тоже не могу собрать. Что за сраная магия? Нельзя просто добавить хедер, а нужен какой-то пердолинг?
Пробовал в VS и CLion, пробовал подключать собранную статическую либу, пробовал стандарт C++ менять - один хуй сыпет ошибками.
Аноним 24/05/20 Вск 11:43:26 1699750698
>>1699720
Собираешь библиотеку через cmake, а дальше >>1693378, либо если у тебя тоже cmake ищешь её через find_package, если либа представила файлик для поиска себя, либо вручную пути указываешь
Аноним 24/05/20 Вск 11:57:45 1699759699
1552145670183.png 529Кб, 2775x1380
2775x1380
>>1699750
А почему я не могу просто взять h/cpp файлы? Зачем именно собирать либу? Почему он срёт ошибками синтаксиса, хотя там всё ровно?
Аноним 24/05/20 Вск 12:13:19 1699772700
>>1699759
Потому что это тебе не питон, сынок. Если библиотека не header only, её нужно собирать.
Если не хочешь ебать голову, возьми vcpkg
Аноним 24/05/20 Вск 13:04:22 1699823701
>>1699772
Бля, да я уже столько времени ебусь, раз 10 пересобрал по разному, уже в VS без cmake линкую, один хуй ошибки синтаксиса.
Аноним 24/05/20 Вск 13:33:47 1699848702
1525512471221.png 2Кб, 279x139
279x139
>>1699823
В общем нашёл решение. Как в таких случаях искать где этот пидор? IDE показывает где определение этого макроса, но я не смог найти где инклюд minwindef.h. Он где-то в кишках стандартной библиотеки сидит? Пиздец какой-то.
Аноним 24/05/20 Вск 13:57:35 1699882703
>>1699848
Подключается неявно в одном из твоих инклюдов, скорее всего cmath
поскорее бы модули блядь, чтобы это говно оставалось в своих хедерах и не пролазило во все щели
Аноним 24/05/20 Вск 13:57:46 1699883704
https://pastebin.com/w8XjvT57

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

Алсо, я его извратил для вас, изменил названия и вообще вы ебанутые найдете еще по куску кода домой придут амбалы пизды дадут
Аноним 24/05/20 Вск 14:26:35 1699949705
>>1699883
>https://pastebin.com/w8XjvT57
Ехал шаблон через шаблон. Видит шаблон в шаблоне шаблон. Сунул шабло шаблон в шаблон, Шаблон, шаблон, шаблон, шаблон.
Аноним 24/05/20 Вск 14:29:32 1699953706
>>1699949
Там иначе код раз в 10 больше выходит.
Аноним 24/05/20 Вск 15:19:11 1699998707
Есть ли тут аноны, которые учились на программиста в НЕ топ-вузе?
Как сложилась дальнейшая судьба?
Аноним 24/05/20 Вск 19:04:12 1700383708
Помогите пожалуйста. Нужна реализация алгоритмов последовательного поиска, Кнута-Морриса-Прата, Боуера-Мура. Благодарю вас за любой отклик.
Аноним 24/05/20 Вск 22:16:13 1700613709
>>1699883
Закидывать указатели на функции в массив, я полагаю.
Аноним 24/05/20 Вск 22:25:06 1700622710
Аноним 24/05/20 Вск 22:43:12 1700649711
>>1700383
за тебя погуглить или что? В бусте Бойер-Мур точно есть
Аноним 24/05/20 Вск 23:24:18 1700751712
>>1699848
>>1700622
Эти макросы можно отключить если объявить NOMINMAX
Аноним 24/05/20 Вск 23:26:29 1700756713
>>1700751
Это же MSVS-specific гумно
Аноним 24/05/20 Вск 23:31:31 1700770714
>>1700756
>IDE показывает где определение этого макроса, но я не смог найти где инклюд minwindef.h
>minwindef.h
>win
>Это же MSVS-specific
Какой сюрприз!
Аноним 24/05/20 Вск 23:46:26 1700809715
Привет всем макакам итт. Решил вкатиться в кресты, глянул идешки всякие, приспичило установить визуал студио (уже работал в ней - хуйня неудобная, но лучше, чем ideone), хотел вскод поставить, но там иде нет.
Так вот, как изменить путь установки visual studio? Кнопки такой нет, эта ебола сразу в корень диска С лезет. Не нагуглил ничего
Аноним 25/05/20 Пнд 02:21:08 1700999716
http://www.cpp.sh/4dtdk
Это "быстрая сортировка". Без рекурсии. Потестите этот код на своих примерах, если вам не сложно. Сообщите о ошибках, если таковые будут. Если захотите наехать на меня из-за кода — аргументируйте. За тестирование с меня как обычно.
Аноним 25/05/20 Пнд 05:38:34 1701078717
блин люди. как вообще проходить собесы по С++ в серьезные компании?

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

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

как? как эти вещи можно запомнить?
Аноним 25/05/20 Пнд 05:40:28 1701079718
>>1699759
>А почему я не могу просто взять h/cpp файлы? Зачем именно собирать либу?
можешь. инклюдить можно даже cpp файлы (но не забыть объявить дефайны). unit cpp называется.
Аноним 25/05/20 Пнд 05:44:16 1701081719
>>1699772
> Если библиотека не header only, её нужно собирать.
нет, не нужно. вот например есть GLFW библиотека.
а вот как ее можно включить в проект без компиляций, копирований исходников и т.д.
https://github.com/raysan5/raylib/blob/master/src/rglfw.c

просто include - это просто вставка текста файла и ничего больше. имея базовые знания о процессе компиляции можно много чего делать
Аноним 25/05/20 Пнд 05:47:11 1701082720
>>1700756
min и max дефайны это тоже MS - это из WIndows.h лезет. поэтому и отключать надо через NOMINMAX

(вообще реально видел идиотов которые пишут #undef min - пиздец сколько говнокодеров)
Аноним 25/05/20 Пнд 09:41:50 1701182721
>>1701081
Ты только что Unity Build.
Удачи в ебле с нарушениями ODR, дрочеву с namespace и т.п.
Аноним 25/05/20 Пнд 11:43:49 1701362722
Делаю splash screen в приложухе для андроида в qt. Использую этот метод https://webhamster.ru/mytetrashare/index/mtb0/1534618070zxgwthqmqu
И у меня такая же проблема как и у автора.
Цитата из статьи: "Первая проблема в том, что во время загрузки приложения картинка сплеш скрина может "съехать" вниз на некоторое (небольшое) расстояние относительно позиции своего первого появления. Не так чтоб это была большая проблема, но неприятно, что такое примитивное действие как показ сплеш-скрина может глючить. Причем это может происходить только в определенных ориентациях экрана (у меня в портретной), а в другой ориентации этой проблемы может и не быть. Почему так происходит - пока не разобрался."
Сплеш скрин немного сдвигается вверх во время загрузки, то есть в момент когда тема у которой бэкграунд задан как сплэш сменяется на сплэш из манифеста. Как фиксить?
Аноним 25/05/20 Пнд 11:46:39 1701369723
qtsplashdiffere[...].gif 3327Кб, 360x640
360x640
Аноним 25/05/20 Пнд 13:05:21 1701514724
>>1701078
Это делается чтобы сбить зарплатные ожидания, вряд ли кто-то будет в серьез думать, что надо всю подобную шелупонь знать.
Аноним 25/05/20 Пнд 15:40:45 1701825725
>>1701514
То есть они пишут зп миллиард в наносекунду в вакансиях, чтобы потом спросить какую-то бесплолезную дичь, и сказать "ну мы вас готовы взять, но на зарплату меньшую чем в вакансии".
Аноним 25/05/20 Пнд 16:27:53 1701908726
>>1701182
>нарушениями ODR
у нормальных либ таких проблем нет (я уже давно юзаю эту технику).
у говнокодеров не знающих про скрытие глобальных переменных (и вообще их юзающих в 2020 году) решается добавлением еще пары заголовков

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

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


>>1701182
>Ты только что Unity Build.
на основе этой идеи да. но нет. unitycpp для ускорения компиляции. тут же сделано для того чтобы не таскать библиотеки
Аноним 25/05/20 Пнд 18:04:03 1702118727
>>1701078
>Бля, а где я должен был узнать о таких вещах?
>или почему нельзя юзать memcpy...
Вопросы про sort & memcpy вполне резонные. Чуваки с опытом использовали и то и другое, смотрели на производительность, смотрели как устроено. фундаметальные же вещи.
Аноним 25/05/20 Пнд 22:33:04 1702494728
>>1701908
a.cpp:
namespace { const int myID = 1; }
b.cpp:
namespace { const int myID = 2; }

Ты ещё скажи, что никто так не пишет
Аноним 25/05/20 Пнд 23:42:31 1702579729
Есть ли что-то вроде шаблонов но применительно к операторам?

У меня просто есть 4 разные функции, которые отличаются только одним символом. Как-то не здорово.
Аноним 25/05/20 Пнд 23:50:40 1702591730
Аноним 26/05/20 Втр 07:07:48 1702731731
>>1702118
>фундаметальные же вещи.
это понятно, но откуда такие вещи узнать неофиту?
Аноним 26/05/20 Втр 09:00:01 1702761732
>>1702731
> собесы по С++ в серьезные компании
> Вроде пишешь себе на С++ профессионально
Это писал неофит?
Аноним 26/05/20 Втр 09:00:07 1702762733
>>1702731
Ебаться, ебаться, ебаться...
Аноним 26/05/20 Втр 15:22:16 1703155734
>>1679966 (OP)
Аноны, как понять когда можно идти собеседоваться? Я учу где-то полтора года плюсы, есть пару петов либа с CI тестами и прочей лабудой, и гуйное приложения для вуза, вроде-бы что-то да знаю. Вот знакомый недавно прошел в какую-то нормальную фирму, сказал там собеседующий охуел от того что он знал про сфинае и какие-то базовые вещи, я выпал прямо. Могу на собесе написать условный шаред или тредпул не на листике, распаковать туплю ну и там всякое. Время в принципе не поджимает, могу хоть года 3 еще учить, но как-то хуёво от ощущения что не самые умные одногрупники уже работают, а я нет. На каком курсе вы бы рекомендовали пойти работать, если будет возможность?
Аноним 26/05/20 Втр 15:51:02 1703200735
Аноним 26/05/20 Втр 15:58:12 1703210736
Аноним 26/05/20 Втр 16:00:12 1703212737
>>1703210
И зачем так всё усложнять?
Аноним 26/05/20 Втр 16:03:12 1703215738
>>1703210
И надо ли оно студенту, кстати? Это же для специфических ситуаций?
Аноним 26/05/20 Втр 17:38:35 1703391739
>>1703155
Блять откуда я знаю, как ты загружен в вузе?
Аноним 26/05/20 Втр 18:33:52 1703478740
>>1703391
Вуз мусорный, дают свободное посещение при работе по специальности, поэтому про него особо и не писал
Аноним 26/05/20 Втр 18:34:36 1703479741
>>1703215
>>1703212
Всмысле усложнять? Это наоборот проще выглядит и читается, да и писанины меньше. Нужно оно точно так же как и обычный for, это просто разный синтаксис
Аноним 26/05/20 Втр 18:48:55 1703491742
>>1703478
Курсе на пред-предпоследнем может смело идти в стажеры.
Аноним 26/05/20 Втр 19:06:01 1703501743
>>1703212
>>1703215
Пиздец. Range-based for loop это вторая самая пиздатая фича c++11 после auto
Аноним 26/05/20 Втр 20:00:46 1703542744
Интересно, кто тут кем работает и на каких языках на работе пишете, если программисты?
Аноним 26/05/20 Втр 21:08:37 1703633745
>>1703501
На лямбды похуй, на темплейт паки похуй, на новую модель памяти и многопоток похуй, а вот сахар для лупов это даа, джвадцать лет ждали
Аноним 26/05/20 Втр 21:10:02 1703636746
>>1703633
часто параметр паки юзаешь в проде?
Аноним 26/05/20 Втр 21:10:53 1703639747
>>1703636
А ты треды и тупли не юзаешь? Тредпулов у вас нету? std::function тоже не юзаете?
Аноним 26/05/20 Втр 21:12:28 1703641748
>>1703639
я то все это юзаю (ну кроме модели памяти кек), мы на С++17 уже год сидим. Мне интересны другие люди.
Аноним 26/05/20 Втр 21:18:21 1703647749
>>1703633
>>1703639
Лямбды - третья.

Всё остальное в кодовой базе занимает доли процента.
Аноним 26/05/20 Втр 21:20:24 1703649750
>>1703647
>Всё остальное в кодовой базе занимает доли процента.
Серьёзно? Однопоточное легаси, или что?
Аноним 26/05/20 Втр 21:30:21 1703662751
>>1703649
Весь многопоток вынесен в обертки.
Разве что std::function юзаем довольно часто, но это всё уже сто лет как есть в бусте
Аноним 26/05/20 Втр 21:31:49 1703664752
>>1703662
> сто лет как есть в бусте
Ох как же я выпал с соурсов бустовой тупли, которую с С++03 не обновляли видимо
Аноним 26/05/20 Втр 21:35:36 1703669753
>>1703664
Решает задачу и заебись
Аноним 26/05/20 Втр 22:26:34 1703732754
>>1703479
И как с двоеточием будет выглядеть такой код?
for (int i = 0; i != size - 1; ++i) { cin >> arr }
Аноним 26/05/20 Втр 22:36:01 1703737755
>>1703479
Или, например, вот такой?
for (int i = 1; i != size - 1; ++i) { cin >> arr }
Аноним 26/05/20 Втр 22:42:33 1703748756
>>1703732
>size
for (int& i : arr)
std::cin >> arr
надеюсь size не беззнаковый
Аноним 26/05/20 Втр 22:45:00 1703755757
>>1703737
А тут range-base аналогичный не напишешь до С++20, по крайней мере не стоит, легче обычный цикл или итераторы
Аноним 26/05/20 Втр 22:52:04 1703769758
>>1703748
А как же отнимание единицы у size? Отдельно вычитать перед циклом или что?
Аноним 26/05/20 Втр 22:55:18 1703774759
>>1703769
Проморгал чёт, если проход не по полному массиву то бери итераторы или индексы лучше итераторы
Аноним 26/05/20 Втр 23:14:38 1703807760
>>1703748
Почему-то такой цикл у меня не работает с динамическими массивами.
Аноним 26/05/20 Втр 23:24:15 1703826761
>>1703807
Потому-что у range-base перегрузка только со стат. массивами, потому-что их размер можно на этапе компиляции узнать через std::size если с шаблонами знаком то можешь соурсы глянуть, там кода 5 строк, у дин. массива таких приколов нет, потому-что размер рантаймовый
Аноним 27/05/20 Срд 05:55:05 1704024762
>>1693378
>>1699750
> Пчел, ну разберись ты раз и навсегда. Что такое разделяемая библиотека? Это

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

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

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

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

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

-L/path/to/lib/ -lxyii -lpzda -L/other/lib/ -ljigurda
Аноним 27/05/20 Срд 09:48:17 1704076763
>>1703732
> i != size - 1
Зачем не i < size?
Аноним 27/05/20 Срд 09:54:30 1704080764
>>1704024
А это и был ликбез по линковке. Кто же виноват, что ты не понял и перепутал это с ликбезом по системе Линукс?
Разберись тогда уж с флагами компилятора... Надеюсь, ты не руками собираешь?
Аноним 27/05/20 Срд 13:15:48 1704226765
>>1679966 (OP)
Сап всем, С++ это реально пиздец? Мимо выучил Python, думал в Веб-макакинг пойти, но чет душа не лежит прямо к этому, да и предложений мало с нулём опыта. Сам только Cython использовал максимум, но понял как в С компиляция работает и бутстрапинг компиляторов, виды типизации. Короче затянуло в вещи чуть поглубже if else, но вот смотрю на вот это все и как-то не верится, что ума хватит это все охватить.
Аноним 27/05/20 Срд 14:08:30 1704266766
>>1704226
С++ нельзя охватить умом, это бездонная параша, которую перестраивают прямо под задницей. А еще это тормознутый компилятор и гигабайты либ и заголовков. Как же я ржу со слов precompiled header.
Аноним 27/05/20 Срд 14:23:15 1704286767
>>1704226
> Сап всем, С++ это реально пиздец?
Та же хуйня что и джаваскрипт, идут похожими дорогами - пялят поверх старой идеи новый синтаксис с сохранением совместимости, обрастают какими то фреймворками и либами. И кстати джаваскрипт в основе то имел всегда машину на плюсах и там все такие стандартные методы так или иначе в плюсах тупо реализованы в старых исходниках фаирфокса можно убедится. Так что два брата уродца - один в бакенде реализует все говно с проверками типов другой во фронтенде, хотя сейчас уже хуй пойми.
Аноним 27/05/20 Срд 16:51:31 1704441768
А, блять

~ClassName() {}

Вот эта вот хуйня это деструктор, когда объект очищается это говно вызывается, чтоб там free() всякие можно было запускать (этож си)
Аноним 27/05/20 Срд 18:31:39 1704561769
Плюсаны, как вы вкатываетесь в большие проекты?
Есть какие-то подходы из личного опыта как вьехать в большую кодовую базу? Может уже придумали какой то софт для визуализации кода, чтобы его было легче воспринимать и понимать, что-то более эффективное чем прокликивание в ideшке?
Давно хочу разобраться в коде openxray и openmw, но каждый раз на каком то этапе отступаю, потому что слишком много вещей нужно держать в голове и слишком сильно разветвляется код, тупо теряюсь, забываю с чего вообще сюда полез и так по новой, пока не надоест и не забъю на какое-то время, потом жопа заживает и все по новой. А ведь есть кодовые базы на порядки сложнее и больше, и как то же в них разбираются.
Аноним 27/05/20 Срд 21:13:14 1704747770
>>1704226
Да. Ты после питона скорее всего пойдешь по следующему пути:
>скачал вижуал студио, хеллоу ворд работает
>изучаешь 3-й день базу
>захотел как в петоне написать тгбота по быстрому
>жсон парсеров нет
>инструментов для работы с сетью нет
>подумаешь да и хуй с ним, сейчас либу притащишь и пойдет дело
>смейк ущербен
>пытаешься собрать одну из либ с жидхаба
>undefined reference to ___tvoya_zalupaInternal__
>с третьей попытки нашел собирающуюся либу
>через 5 часов осилил подключить бинари в смейке и инклюднуть директорию с хедерами
>по быстрому написал бота по примерам из доки
>решил залить свой впс
>сосешь хуй без окружения
И это просто базовые вещи. Стандартная либа очень маленькая, там буквально только базовые вещи, графики нет, нетворкинга нет, развитой многопоточки нет даже тредпула блять, при этом из всех билд систем самый популярный это как ни странно самый уебищный вариант. Благо сейчас конан развивают, гляди через пару лет нюфаги смогут без морок ставить либы как в петоне.
Аноним 27/05/20 Срд 21:51:45 1704776771
>>1704747
Почему питон в отличие от плюсов оброс огромным колличеством библиотек, хотя казалось бы плюсы один из самых популярныз и старых языков?
Аноним 27/05/20 Срд 22:18:40 1704828772
>>1704747
Спасибо молокософту за вцпкг
Аноним 27/05/20 Срд 22:36:00 1704855773
>>1704776
какой то тупой вопрос
Аноним 27/05/20 Срд 22:36:56 1704856774
Аноним 27/05/20 Срд 22:53:44 1704878775
>>1704776
Потому-что плюсы более консервативны, это не раст, где разработка языка производится на гитхабе, тут собралось пару сотен серьёзных дядь, и решили что они будут принимать идеи от комьюнити, оформлять их, вырезать лишнее и добавлять потихоньку в стандарт. У этих дядь естественно есть свои принципы, которые уже больше 30 лет стараются соблюдать, та же обратная совместимость например. Ну вот так вот сложилось, плюсы это не язык для написания лайтовых программ для автоматизации, это язык для высоконагруженных приложений, где зачастую критически важна надёжность и производительность, а не то, что ты можешь за 15 минут тгбота написать. А вот почему всё так хуёво с билд системами и пакетниками я не знаю, я и сам зеленый еще
Аноним 27/05/20 Срд 23:55:39 1704936776
>>1704076
А зачем некоторые мужики носят юбку?
Аноним 27/05/20 Срд 23:58:43 1704938777
>>1704076
Это же разные вещи, на одну итерацию цикла меньше будет
Аноним 28/05/20 Чтв 02:59:09 1705021778
>>1703647
>Лямбды - третья.
только почему не завезли нормальные локальные функции?
Аноним 28/05/20 Чтв 03:01:34 1705023779
>>1704878
меня забавляет что даже Страуструп там уже ничего не решает
Аноним 28/05/20 Чтв 03:50:10 1705029780
>>1705023
Один человек и не должен ничего решать. Язык служит разработчикам, а группа стандарта стандартифицирует язык так, чтобы он вписывался в общие методики и ничего не ломал. Было бы странно, если бы слово Страуструпа весило больше, чем слово какого-то сеньора с 40-летним стажем
Аноним 28/05/20 Чтв 07:29:34 1705085781
>>1705021
Потому что
auto const local_func = +[](){print("poshel_ty_nahooy");};
Аноним 28/05/20 Чтв 07:33:52 1705086782
люблю с++

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

(надеюсь в жизни я не увижу альтернативного синтаксиса)
Аноним 28/05/20 Чтв 07:35:27 1705087783
image.png 7Кб, 354x211
354x211
Аноним 28/05/20 Чтв 07:36:53 1705090784
>>1705085
просто на лямбдах это выглядит как говно
Аноним 28/05/20 Чтв 07:37:34 1705091785
>>1705029
в расте и питоне вроде решает один разраб. разраба питона за это еще и гнобили
Аноним 28/05/20 Чтв 07:52:14 1705095786
>>1704856
Потому что это языки из разных миров, питону питоновое, плюсам плюсовое.

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

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

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

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

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

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

Аноним 28/05/20 Чтв 08:50:19 1705112787
Аноним 28/05/20 Чтв 09:13:56 1705122788
>>1705112
Если ещё не привык, то да, это действительно несколько комично.
Аноним 28/05/20 Чтв 10:48:09 1705196789
>>1705087
Поясните дедушке что это.
Плюсы в html разметке?
Аноним 28/05/20 Чтв 11:39:39 1705289790
изображение.png 27Кб, 860x321
860x321
>>1705196
это вообще-то старое и помоему всегда было
28/05/20 Чтв 13:46:15 1705553791
>>1705289
Вот уж действительно ньюфаги не знают, олдфаги не помнят.
Аноним 28/05/20 Чтв 13:57:00 1705576792
Нахуй вам диграфы в 2020? У вас клавиатура от калькулятора что ли?
Аноним 28/05/20 Чтв 14:49:10 1705625793
>>1705576
Чтоб = с == не путать
Аноним 28/05/20 Чтв 18:15:10 1705957794
>>1705553
>Вот уж действительно ньюфаги не знают, олдфаги не помнят.
Использую and/or в if-ах
Аноним 28/05/20 Чтв 21:06:48 1706119795
>>1705957
Больной ублюдок, ты?
Аноним 29/05/20 Птн 01:23:45 1706339796
>>1705289
Воистину двач образовательный не перестает удивлять как и плюсы.
Только что попробовал скомпилить клангом с этой дрисней, работает. В первый раз вижу эти альтернативные токены.

Зачем вообще это было сделано? Где-то используетя?
Аноним 29/05/20 Птн 04:33:29 1706395797
>>1706339
Наследие сишки, чтобы можно было писать на ней даже в самых ущербных кодировках. Сейчас везде юникод, можно хоть эмодзи в идентификаторах, так что не нужно.
Аноним 29/05/20 Птн 15:43:05 1706904798
>>1706395
>чтобы можно было писать на ней даже в самых ущербных кодировках
Т.е. еще что-то более древнее чем ASCII? Ведь там все основные символы есть.
Аноним 29/05/20 Птн 18:16:03 1707101799
Сап программач
Значит нуждаюсь в помощи. Есть задача следующего рода:

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

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

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

Как его стабилизировать?
Аноним 30/05/20 Суб 00:24:05 1707579800
изображение.png 32Кб, 960x833
960x833
изображение.png 2Кб, 268x83
268x83
Ебаное RAII, у меня снова сгорело.
Есть три варианта. Я очень хочу второй и не хочу дёргать указатель (и вообще писать ->) как в третьем, и я просто вертел этот синтаксис через двоеточие из первого.
Что делать и зачем эта концепция нужна?

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

Вот в стандартной библиотеки няшечки, там всё работает - почему нельзя им уподабливаться?
Аноним 30/05/20 Суб 04:49:00 1707676801
111 Тред у кого-нибудь открывается?
Аноним 30/05/20 Суб 13:18:53 1707892802
Аноним 30/05/20 Суб 13:48:21 1707908803
Аноним 30/05/20 Суб 19:33:21 1708352804
>>1707892
>>1707908
У меня не открывается сука, перенаправляет на архив и 404
Открывалась до вчерашнего дня
Аноним 30/05/20 Суб 23:15:13 1708688805
++С++ Аноним 31/05/20 Вск 15:33:34 1709075806
А я бампану.
Аноним 31/05/20 Вск 16:18:14 1709127807
Есть смысл вникать в глубины плюсов на винде?
Визуалстудию комп не тянет, а нормальных ide не знаю.
А сидя на линуксе вечно такое ощущение что занимаюсь какой-то херней а не программированием.
Аноним 31/05/20 Вск 18:15:42 1709274808
>>1709127
Попробуй qtCreator - он у меня нормально работал даже на 2 гб памяти с ноутбучным i3.
Он маленький и на удивление неплохо справляется с подстветкой всякого для шаблоноговна (он же для qt вроде как спроектирован).
Аноним 01/06/20 Пнд 19:38:23 1710361809
>>1709127
Ну если работаешь с WinAPI, то норма если нет, то тоже норм
Аноним 02/06/20 Втр 17:52:42 1711079810
изображение.png 773Кб, 643x820
643x820
мб тут кто ответит, сап pr, сижу сейчас над задачей создания лайтового аналога headless браузера на qt, мне нужно просто по запросу перейти в яндекс выдачу, найти там нужный сайт и именно из яндекс выдачи на него перейти, чтобы засчитался просмотр, selenium, puppeter и тд. не покатит, давно бы на них сделал, нужно именно на qt(c++), ответов в гугле особо не нашёл, из документации к QWebEngine понял что там необходимо присутствие гуи, но мне нужно эмулировать действие пользователя обычным браузером, а headless нужен потому как буду закидывать этого бота на orange pi zero, где нет выхода под монитор, и не предусмотрен gui. Если у кого то есть идеи, отпишите пожалуйста, буду очень благодарен.
Аноним 02/06/20 Втр 21:49:04 1711370811
>>1711079
это ты создавал тред?
Аноним 03/06/20 Срд 19:37:54 1712193812
>>1711370
угу, мне накидали ссылок, но там было в одной pyqt, а в другой просто расплывчатые ответы не особо относящиеся к сути, сейчас решил не засирать тредами pr и написать в готовые треды, ща в 112 напишу, мб найдётся знающий человек
Аноним 04/06/20 Чтв 12:08:33 1712727813
Аноним 05/06/20 Птн 19:08:36 1714285814
3
Аноним 10/06/20 Срд 17:24:31 1718813815
Хочу вкатится в создание 3d игорь на c++. Порекомендуйте, что нибудь для изучения DirectX. Хочу в последствии перекатится на OpenGL, потому что кроссплатформа - лучше. А может сразу писать на OpenGl? В общем жду советов профессионалов.
Аноним 10/06/20 Срд 22:12:00 1718965816
Аноним 11/06/20 Чтв 04:19:04 1719098817
Аноним 11/06/20 Чтв 05:06:34 1719104818
>>1718813
>Порекомендуйте, что нибудь для изучения DirectX.
https://docs.microsoft.com/en-us/windows/win32/direct3d

>>1719098
Увы, нет.
Вулкан, DX12, Metal - это "низкоуровневые" апи, где надо вручную рулить видеопамятью и синхронизацией цп/гп.
OpenGL, DX11 - они попроще, там драйвер многое делает сам.
Аноним 11/06/20 Чтв 16:18:59 1719579819
Аноним 11/06/20 Чтв 16:21:32 1719581820
>>1719104
Тогда не можешь ли ты порекомендовать, что либо для изучения OprnGL? Заранее спасибо.
Аноним 11/06/20 Чтв 16:52:01 1719608821
>>1719581
На хабре есть отличный цикл статей.
Аноним 11/06/20 Чтв 16:55:36 1719613822
>>1719608
Это которые перевод с learnopengl.com?
Аноним 11/06/20 Чтв 18:44:38 1719724823
>>1719613
Да. Кстати все сидят в 112 треде
Аноним 11/06/20 Чтв 19:11:31 1719757824
>>1719724
Оу, ну лан, спасибо.
Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов