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

Ответить в тред Ответить в тред
C++ тред #114 /cpp/ Аноним # OP 19/06/20 Птн 19:11:01 17283151
TimelineCpp20Bi[...].png 43Кб, 1113x384
1113x384
cpp.png 213Кб, 1200x780
1200x780
ithare.png 44Кб, 512x341
512x341
Аноним 19/06/20 Птн 19:16:36 17283232
Аноним 19/06/20 Птн 19:20:19 17283263
Зачем нужны ranges? Пока выглядит как попытка писать на буквально 2 строки меньше
Аноним 19/06/20 Птн 19:24:06 17283294
>>1728326
Чтобы через пару десятков лет любой язык был подмножеством C++.
Аноним 19/06/20 Птн 19:32:13 17283375
>>1728326
Пайплайны, ленивые вычисления, генераторы, вот это всё.
int sum = accumulate(views::ints(1) | views::transform([](int i){return i*i;}) | views::take(10), 0);
Аноним 19/06/20 Птн 19:40:10 17283396
>>1728315 (OP)
Я правильно понимаю, что все кроме модулей добавляется просто созданием новой библиотеки, а сам язык фактически не изменяется?
Аноним 19/06/20 Птн 19:44:38 17283437
>>1728315 (OP)
А что, если появление модулей решит проблему с подключением либ/управлением зависимостями, и легаси cmake наконец-то сдохнет?
Аноним 19/06/20 Птн 19:52:38 17283458
>>1728315 (OP)
>C++20
Нахуя так усложнять язык? ещё stl нормально использовать не научился, а они уже пару новых парадигм успели придумать. Нахуя блять это всё делается, на каком-то тырпрайзе реально не хватало этих ranges и constexpr контейнеров, чтоб всё работало?
Аноним 19/06/20 Птн 20:30:47 17283599
>>1728343
cmake - это не пакетный менеджер. В cmake ты говоришь, как и что нужно для сборки твоего проекта.
Аноним 19/06/20 Птн 20:58:26 172837310
Аноним 19/06/20 Птн 21:00:03 172837511
>>1728345
А мне нравится. Язык становится ближе к нормальным Хаскелям-SMLям.
Аноним 19/06/20 Птн 21:14:13 172839112
>>1728375
Так и используй хаскель свой, нахуй это сюда пихать
Аноним 19/06/20 Птн 21:21:08 172839513
>>1728391
Не могу, он тормозит и не стыкуется с легаси говном.
А вот новые кресты позволят макакировать быстрее и проще. Но это не точно.
Аноним 19/06/20 Птн 21:46:23 172842214
>>1728395
Лучше бы разбили С++ на несколько подязыков, отдельный для каждой "парадигмы", и для каждого описали свой стандард, из которого были бы выброшены все элементы, не соответствущие этой "парадигме" конкретного подязыка. Логично, что многие подходы ranges так или иначе являются переосмыслением тех же stl итераторов. В проекте, в котором повсеместно используюется один подход, другой бы не применялся. Итого можно было бы получить подязыки С++STL, C++Functional, C++Ranges и т. д. И все они были бы совместимы друг с другом на уровне отдельных библиотек.
Аноним 19/06/20 Птн 21:47:44 172842315
>>1728337
Это блять дрочка вприсядку.
Всё что сложнее бесконечной последовательности факториалов суммы чисел в массиве в такой записи вырождается в непредставимый пиздец, который сосет у for(int i...) по скорости написания и читаемости.
Аноним 19/06/20 Птн 21:50:46 172842616
>>1728422
То есть ты утверждаешь, что программист обязан писать весь код исключительно в одной парадигме?
Аноним 19/06/20 Птн 21:51:32 172842817
>>1728422
Тут от обеспечения совместимости с прошлым-то стандартом жопы скрипят, а ты хочешь еще и диалектов наплодить.
Аноним 19/06/20 Птн 21:52:23 172843118
>>1728426
В рамках одного проекта - да. Так же как и должен придерживаться единого кодинг стайла
Аноним 19/06/20 Птн 21:53:47 172843419
>>1728431
*можно даже сказать не проекта, а модуля
Аноним 19/06/20 Птн 22:02:56 172845220
>>1728337
Все это делается на итераторах, ranges это буквально сахарок. Я не понимаю какие идиоты пропустили этот оверинжинирд бред в стандарт.
Аноним 19/06/20 Птн 22:03:56 172845621
>>1728431
В хоть сколько-нибудь больших проектх это не работает, как бы красиво и идеалистично это ни звучало. К тому же, кодинг стайл ещё не значит конкретная парадигма.
Аноним 19/06/20 Птн 22:04:02 172845722
>>1728434
⚹⚹можно даже сказать не модуля а функции

⚹⚹⚹можно даже сказать не придерживаться
Аноним 19/06/20 Птн 22:05:39 172846223
>>1728452
А итераторы делаются на указателях, так что итераторы - это тоже сахарок и нинужна. Да и вообще, нахуй кресты, ведь сишка тоже тьюринг-полная.
Аноним 19/06/20 Птн 22:06:46 172846324
Аноним 19/06/20 Птн 22:09:34 172846625
>>1728457
нельзя даже сказать
Аноним 19/06/20 Птн 22:10:55 172846826
>>1728466
⚹⚹⚹⚹
забыл надеть модные астериксы
Аноним 19/06/20 Птн 22:11:42 172847027
>>1728345
Ты парадигмами называешь ranges и constexpr-контейнеры? Ты ебанутый?
Аноним 19/06/20 Птн 22:13:08 172847128
Аноним 19/06/20 Птн 22:25:06 172848429
Короче вместо учебника по информатике чтобы стать ближе к байтоёбству, я собрался читать книгу Код Петцольда.
Я сделал правильный выбор?
Аноним 19/06/20 Птн 22:25:16 172848530
>>1728470
Да, и готов с этим поспорить.
Аноним 19/06/20 Птн 23:01:09 172851531
Анончики, как писать свой аллокатор, сам пишу учусь на QT, но с написанием подобного не сталкивался. На степике не очень хорошо объяснено я тупой просто. Что почитать чтобы реализовать Buddy и SLAB аллокаторы.
Аноним 19/06/20 Птн 23:57:25 172857732
Аноним 20/06/20 Суб 00:17:27 172858733
>>1728515
> Что почитать чтобы реализовать Buddy и SLAB аллокаторы.
Совет номер один от гуру цпп да и в принципе адекватных людей - использовать кастомные аллокаторы только по результатам профилирования и только если это bottleneck
Аноним 20/06/20 Суб 05:24:48 172868234
>>1728337
Это что-то типа Linq из шарпа что ли?
Аноним 20/06/20 Суб 06:50:07 172868735
>>1728252 →
>Есть какие-нибудь проблемы именно по части содержания?

Именно эту книгу я не читал, а читал его учебник "введение в профессию". По части содержания - всё очень-очень неплохо. Проблема только с тем как он хуево пишет. Натравить бы на эти книги хорошего редактора с писательским опытом - цены бы им не было.
Аноним 20/06/20 Суб 09:22:54 172870236
Двач, как несколько std::array разных размеров передавать в функцию?
Аноним 20/06/20 Суб 10:17:01 172872437
Допустим, у меня есть класс foo, в котором есть константный метод bar. У него есть ограничение только на изменение объекта, на который указывает this, или на что-то ещё?
Аноним 20/06/20 Суб 10:23:57 172873038
>>1728724
Всё неконстантное, не связанное с объектом + mutable члены класса
Аноним 20/06/20 Суб 10:26:11 172873239
>>1728702
Тащемта берешь и без задней мысли передаёшь. Или пишешь шаблон

template<class T, size_t n>
void foo(std::array<T, n> const &arr){}
Аноним 20/06/20 Суб 12:34:40 172880740
>>1728682
По скорости не уступает линку, да.
Аноним 20/06/20 Суб 12:42:14 172881241
>>1728682
>>1728337
Есть же уже либа с более адекватным синтаксисом https://github.com/mrange/cpplinq (правда ее уже никто не обновляет). Почему они решили сделать какую-то нечитабельную херню вместо этого?
Аноним 20/06/20 Суб 13:06:27 172882742
Как уточнить шаблон функции? Инет перерыл, нихера не нашёл.
Аноним 20/06/20 Суб 13:16:21 172884143
Аноним 20/06/20 Суб 13:33:44 172885244
>>1728812
>решили сделать какую-то нечитабельную херню
c++ way
Аноним 20/06/20 Суб 14:54:53 172893645
>>1728515
В большинстве случаев проще свой контейнер написать под конкретную задачу, чем прикручивать кастомный аллокатор к библиотечному контейнеру.
Аноним 20/06/20 Суб 15:07:14 172894346
image.png 22Кб, 407x457
407x457
Почему в первом варианте с шаблонной функцией компилятор не может автоматом использовать оператор преобразования в TestView, а во втором спокойно использует?
Аноним 20/06/20 Суб 16:00:30 172899147
>>1728943
Указывай шаблонные параметры при вызовах функций. Должно работать.
Аноним 20/06/20 Суб 16:17:12 172900848
>>1728991
Работать то оно будет, но каждый раз писать аргументы шаблона заебывает. Вопрос почему второй вариант работает если это просто частный случай первого?
Аноним 20/06/20 Суб 16:38:22 172902749
>>1729008
>просто частный случай первого
Нет, это отдельный шаблон со своим выводом типов.
Аноним 20/06/20 Суб 17:24:51 172906050
Аноним 20/06/20 Суб 17:25:38 172906251
Объясните мне на пальцах, что такое линковка, и почему при смене abi все пойдет по пизде
Аноним 20/06/20 Суб 18:18:41 172909952
>>1729062
> что такое линковка
Склеивание скомпилированных единиц трансляции (cpp файлов) в единый бинарник
> почему при смене abi все пойдет по пизде
Потому какой-нибудь бинарник рассчитывает, что в твоём классе будет два поля, но после поломки ABI там осталось одно. Повезёт, если не соберётся. Если не повезёт, то оно соберётся и отстрелит тебе хвост по самое ебало
Аноним 20/06/20 Суб 18:21:08 172910053
>>1729099
Разве abi это не про системные вызовы?
Аноним 20/06/20 Суб 18:25:07 172910554
>>1729100
ABI это как раз про линковку. Системные вызовы все на сях, и там ABI слава аллаху неизменен.
Аноним 20/06/20 Суб 21:29:32 172924555
>>1728687
А мне нравятся все его шутеечки охуенные.
Аноним 20/06/20 Суб 21:46:00 172925156
>>1728587
Мне чтобы сертификатик получить надо его бахнуть. Да и вроде на собесах просят реализовать, в качестве тестового задания.
Аноним 20/06/20 Суб 22:18:11 172927157
>>1729251
> Мне чтобы сертификатик получить надо его бахнуть.
Про туалетную бумагу слышал, не? Никому твои всратые сертификаты не нужны, повезёт, если прогеры твоё резюме прочитают за пять минут до собеса.
>Да и вроде на собесах просят реализовать, в качестве тестового задания.
Я так понимаю, эту страшилку тебе на тех же говнокурсах рассказали?
Аноним 21/06/20 Вск 00:41:41 172935958
>>1729271
Не на киберфоруме с чуваками общался. На кст и собес был на мидла-байтоёба.
Аноним 21/06/20 Вск 13:17:17 172952359
>>1729271
>Про туалетную бумагу слышал
Слышал, я ей жопу вытираю

>Никому твои всратые сертификаты не нужны
Ты скозал? Если бы они не были нужны, то их бы и не было, а они есть.
Как минимум, сертификат показывает, что ты действительно пытался чего-то достичь, а не просто балобол.

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

>страшилку тебе на тех же говнокурсах рассказали?
Ну хоть тут ты не обосрался, хотя опять же - что будет в качетсве тестового даже сам Аллах не знает. Всё, что требуется от кандитата так это соответствовать собственному резюме.
Аноним 21/06/20 Вск 15:18:31 172963060
>>1729523
>Я тебя может удивлю, но в нормальной конторе делается несколько печатных копий твоего резюме для каждого собеседующего.
Всем плевать на твое резюме, у собеседующих есть набор стандартных вопросов и задач которые они задают, после собеседования они отправляют фидбэк и забывают о тебе.
Аноним 21/06/20 Вск 17:04:53 172969261
Двач, с каждым запуском программы генерируются одни и те-же числа, подскажите как исправить.

std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<> distrib(1, 6);
Аноним 22/06/20 Пнд 06:32:57 173026662
Аноним 22/06/20 Пнд 07:31:21 173028963
Аноним 22/06/20 Пнд 07:58:58 173029264
>>1729692
Посмотри что rd() возвращает. Если там одное и тоже то ищи друкгой компилятор. Ну или придумай что-то свое - может система может сгенерировать достаточно слуыайное число, или там инициализируй хешом от текущего времени.
Аноним 22/06/20 Пнд 08:02:43 173029465
>>1729692
> Двач, с каждым запуском программы генерируются одни и те-же числа, подскажите как исправить.
Блять, так там и должны генерироваться одни и те же числа. Ты хоть почитай про это.
Аноним 22/06/20 Пнд 11:59:01 173041866
>>1730289
А как ncurses работает?
Аноним 22/06/20 Пнд 12:30:54 173045267
>>1730289
>>1730418
Однажды я за пару часов написал затычки для некоторых функций этой либы через winapi, чтобы собрать код с ncurses на шиндовс. И оно даже работало почти так же.
Аноним 22/06/20 Пнд 13:06:14 173049968
изображение.png 58Кб, 800x881
800x881
>>1730418



Быстро-быстро срет в консоль

Аноним 22/06/20 Пнд 13:15:24 173050969
>>1730499
эх, сонсолька...

попердолить бы тебя....
Аноним 22/06/20 Пнд 19:31:25 173078270
232412.png 65Кб, 649x634
649x634
После выполнения блока else (зеленым выделил), происходит не понятная хуйня. Программа не выходит из этого блока и не передает управление оператору вывода после него. Вместо этого она словно подвисает на пару секунд и завершается без сообщений ошибок.

Суть функции: передаю корневой каталог в котором надо найти все файлы (включая файлы в под-директориях), извлечь из них информацию и засунуть в структуру, а структуру в вектор запушить (который на скрине пока не используется).
Аноним 22/06/20 Пнд 19:33:57 173078571
>>1730782
И да, если убрать этот блок else, то программа корректно выведет все файлы и директории (если выполнить cout << fullPath). При этом сам блок else, как я уже сказал, работает правильно.
Аноним 22/06/20 Пнд 19:39:01 173079272
Аноним 22/06/20 Пнд 19:57:23 173080373
>>1730782
Пройдись дебаггером да посмотри, что прога делает и где падает. Алсо, для дебажного вывода лучше делать флаш потока, иначе перед крашем может просто случайно не вывести какую-нибудь строку. Например, можно вместо "\n" делать std::endl.
Аноним 22/06/20 Пнд 19:59:34 173080974
>>1730782
Ну так запусти под отладчиком и посмотри где зависает и почему падает
Аноним 22/06/20 Пнд 20:13:09 173082175
>>1730782
Ты осознаешь почему ругаются на си с классами?
for(auto& p: std::filesystem::recursive_directory_iterator(dirname))
std::cout << p.path() << ' ' << p.file_size() << '\n';
Аноним 22/06/20 Пнд 20:24:23 173082676
>>1730821
У меня нет c++17 в gcc 8.1.0.

>>1730792
Я пробовал сигналами ловить его (SIGSEGV). Не ловит, значит это не он.

>>1730809
>>1730803
Если бы этот дебаггер еще работал сам нормально... Например, я сейчас смотрю как заполняются поля структур и вижу, что половина почему-то вообще не отображается после записи, хотя, если сделать cout этого поля, то все нормально. Хз, проблема ли это плагина для vscode, либо самого отладчика gdb.
Аноним 22/06/20 Пнд 20:28:19 173083277
>>1730826
>У меня нет c++17 в gcc 8.1.0.
Значит есть библиотеки со всем тем же искаропки.
Аноним 22/06/20 Пнд 20:42:19 173083878
>>1730782
Попробуй проект пересобрать заново. Такое бывает, когда какой-то объектный файл не обновился и срет в память. Если не поможет - смотри отладчиком или valgrind/drMemory.
Аноним 22/06/20 Пнд 21:55:48 173088879
014752.png 8Кб, 389x146
389x146
Короче, нашел я проблему. Надо было заменить одно на другое (пик). Не думал, что std::string нужно выделять память вручную для такого. А главное - никто не жаловался, строки корректно заполнялись...
Аноним 22/06/20 Пнд 22:12:55 173090380
>>1730888
Ну ты даешь, перец.
Причем тут string, если ты в read передаешь char*?
Аноним 22/06/20 Пнд 22:22:28 173090581
>>1730903
При том, что я и просто приведение типа делал на [0], без выделения памяти все равно не работало.
>перец
Чем на пикабу/хабре не сиделось, залетный?
Аноним 22/06/20 Пнд 22:28:55 173090782
>>1730903
А что туда передавать, если не char*?
Аноним 22/06/20 Пнд 22:36:22 173091083
>>1730905
>>1730907
Нет ты залетный.

char* туда и передавать, только надо понимать, что в этом случае ты работаешь с си-массивом, а не плюсовым string. А то потом начинаются претензии, что string работает как-то не так.
Аноним 22/06/20 Пнд 22:47:40 173091984
>>1730910
Это отменяет факт того, что под строку надо выделять память? Нет. Вот и все. Какие еще притензии к строкам? Из контекста не выдирай.
Аноним 22/06/20 Пнд 23:49:26 173094885
Что происходит, когда функция возвращает ссылку? Что возвращается то? Адрес переменной? Её значение? Если с указателями всё более-менее понятно, то с ссылками какая-то хуйня.
Как вообще происходит возвращение переменной в конце выполнения функции, если этой переменной если она автоматическая уже не должно существовать?
Аноним 23/06/20 Втр 00:00:31 173095986
>>1730919
Какой же ты тугой.
Функция принимает на вход си-строку, там по дефолту нужно выделять память.
То, что методы string и методы, которые принимают ее на вход, сами это делают тут не при чем.
И нехуй потом жаловаться, что при использовании string в методе, который принимает char*, ты обсираешься на выделении памяти.
Аноним 23/06/20 Втр 00:07:07 173096687
Аноним 23/06/20 Втр 00:16:25 173097788
>>1730948
Посмотри дизассемблер. В зависимости от соглашения о вызовах переменная может быть на на стеке вызванной функции, который зачистит уже вызывающая после возврата (предварительно переложив результат вызванной в какую-то свою переменную), а может передаваться через регистр и тогда стирание фрейма вызванной её не затронет
Аноним 23/06/20 Втр 00:18:43 173098089
>>1730948
А ссылка это тот же указатель внутрях, только с ограничениями на уровне языка - нельзя разыменовывать, не может быть нулл
Аноним 23/06/20 Втр 00:19:44 173098290
>>1730959
Тупой ты, потому что не знаешь о перегрузках явного преобразования типов. А теперь съеби уже на свою голубятню на хабр, залетыш.
Аноним 23/06/20 Втр 02:02:13 173108691
>>1730982
Какой же ты дурень.
Когда ты передаешь куда-то внутренности string, они не обязаны делать выделять необходимую память под операцию.
Ты пытаешься воткнуть квадрат в круглое отверстие и пиздишь, будто квадрат виноват, а не ты тупой.
Аноним 23/06/20 Втр 02:31:02 173109292
>>1731086
>Какой же ты
>Какой же ты
Какой же ты жалкий. Нахуй ты свою пасть разеваешь вообще, уебище? Если до тебя десятый раз суть мысли не доходит, иди пробздись что ли, я хз. Ты как долбаеб одно и тоже повторяешь, сука. Съеби, реально. Тут для тебя места точно нет. Такие, как ты должны сидеть в своем углу и дрочить друг-другу на своих законных местах. Квадраты у него в отверстия пихают, долбаеб, блядь. Хррртьфу в ебало тебе, чмо пикабушное.
Аноним 23/06/20 Втр 08:01:53 173118293
>>1730977

Соглашение о вызовах существует в рамках интерфейсов библиотек. Внутри компилятор не обязан его соблюдать и имеет право срать лапшу как хочет.
Аноним 23/06/20 Втр 09:02:15 173119694
изображение.png 9Кб, 893x206
893x206
Почему когда я разыменовываю возвращенный итератор и меняю значение оно не меняется?
Аноним 23/06/20 Втр 09:08:13 173119995
>>1731196
Уже понял, я забыл ссылку
Аноним 23/06/20 Втр 10:33:14 173122896
>>1731196
Bicycle.
auto mmin (std::vector<std::pair<int, bool>> &a) {
return std::min_element(a.begin(), a.end(), [](auto i, auto s){return i < s && i.second == true; });
}
Аноним 23/06/20 Втр 10:52:42 173123797
>>1731092
Ебать тебя порвало-то.
Аноним 23/06/20 Втр 10:53:03 173123898
Двач, напомните мне как в C++ (особенно на windows в qtcreator с cmake) подключить библиотеку? Какие файлы качать, куда ложить, что прописывать, я всё забыл.
Аноним 23/06/20 Втр 11:12:08 173124999
Аноним 23/06/20 Втр 11:15:42 1731253100
>>1731238
Иди на сайт библиотеки. Там должно быть написано
Аноним 23/06/20 Втр 11:17:04 1731256101
>>1731253
Ничего не написано.
Аноним 23/06/20 Втр 11:53:25 1731295102
photo2019-02-25[...].jpg 73Кб, 453x604
453x604
>>1731256
Так что за библиотека?
Это именно внешняя C/++-либа, никак не связанная с Qt?
>>1731249
У Qt и так есть модуль для работы с SQL-базами, в т.ч. SQLite.
https://doc.qt.io/qt-5/qsqldatabase.html
Просто нагугли примеры. https://habr.com/ru/post/128836/

мимокрок, последний раз писал на Qt/С++ много лет назад в шараге
Аноним 23/06/20 Втр 13:19:12 1731385103
>>1731295
>У Qt и так есть модуль для работы с SQL-базами, в т.ч. SQLite.
Мне похуй что там есть или нет у Qt, обычную библиотеку как подключить
Аноним 24/06/20 Срд 07:13:22 1732363104
Мне надо реализовать многопоточное приложение на winapi. Есть один поток, и в этом потоке цикл. При нажатии кнопки цикл должен завершать итерацию и останавливаться, при повторном нажатии вновь запускаться. Как это реализовать?
Аноним 24/06/20 Срд 08:23:39 1732369105
>>1732363
В общем тебе надо создать поток, а в нем сделать цикл. При нажатии кнопки цикл будешь завершать итерацию и останавливать его, а при повторном нажатии вновь запускать.
Удачи братан
Аноним 24/06/20 Срд 08:47:40 1732371106
Аноним 24/06/20 Срд 10:48:42 1732387107
>>1732363
Прям в цикле нельзя проверить, нажата кнопка или нет?
Аноним 24/06/20 Срд 18:18:19 1732790108
Анон, в последнее время часто применяю функциональный подход, вместо оопного. Нравится пиздец, супер удобные юнит-тесты, прекрасная переносимость кода и потенциально отличная распараллеливаемость со всякими фьючерсами и асинками (с которыми я пока не знаком). И мне кажется, что фп - единственно правильный способ программирования. Почему же тогда хаскель не захватил мир?
Аноним 24/06/20 Срд 18:18:32 1732792109
std::filesystem под виндой, если полез во всякое говно, типа $RECYCLE.BIN кидает исключение после того под капотом winapi выдал acess denied. У меня обработка исключений отключена. Есть ли какой-то платформонезависимый способ предварительно прочекать директорию прежде чем лезть в нее? directory_entry.status().permissions() для всех директорий выдает 511
Аноним 24/06/20 Срд 18:19:12 1732793110
Аноним 24/06/20 Срд 18:56:35 1732826111
>>1732790
Потому-что ни один вменямый человек не будет рисковать писать проекты на хаскелле
Аноним 24/06/20 Срд 19:34:40 1732871112
>>1732790
>функциональный подход

На счёт этого согласен, очень удобно
Аноним 24/06/20 Срд 19:42:04 1732880113
изображение.png 17Кб, 343x929
343x929
Напишите функцию, которая обрезает пробелы в конце переданной ей строки. Функция должна быть написана в расчёте на работу с очень длинными строками с очень большим количеством пробелов, оптимизирована по количеству обращений к памяти. Сигнатура: void TrimRight( char *s );

Ананасы, выполнил такое задание, но оно неверно выполнено. Что не так, кроме того, что я немного поменял оглавление функции?
Аноним 24/06/20 Срд 20:26:53 1732940114
>>1732880
Она не оптимизирована по количеству обращений к памяти, например.
Ты сначала идёшь по всей строке до конца, а потом идёшь обратно по пробелам. Это O(n+m), где m - количество пробелов. Если вся огромная входная строка состоит из пробелов, то ты дважды пройдёшься по огромной строке.
Можно идти по строке и при встрече с пробелом сохранять его адрес и обнулять его, если встретил непробельный символ. Это O(n). Потом скопировать в новую строку всё от начала до полученного указателя, если он не нулевой. Ну и не забыть про налл терминейшн.

Конкретно ошибок в коде не искал.
Аноним 24/06/20 Срд 20:33:08 1732947115
>>1732792
> обработка исключений отключена
Включи
Аноним 24/06/20 Срд 20:34:40 1732948116
>>1732940
Понял. Или запоминать адрес непробельного символа, если после него пробел и не менять его до тех пор, пока не найдётся следующий непробельный и всё заново.
Аноним 24/06/20 Срд 21:03:27 1732965117
>>1732948
Есть разница записать 1000 раз или записать один? Хотя от данных зависит
Аноним 24/06/20 Срд 21:26:02 1732976118
>>1732940
Функция возвращает void, поэтому думаю, что по заданию нужно просто занулить символ, следующий за последним не-пробелом.
Аноним 24/06/20 Срд 21:27:30 1732977119
>>1732792
Если там по аналогии с бустом, то должны быть небросающие перегрузки, принимающие error_code.
Аноним 24/06/20 Срд 21:41:34 1732991120
>>1732965
У меня идея, что в процессе смещения адреса в цикле записываем адрес непробельного символа и так до конца, если он так и не попался, то строка пустая.
>>1732976
А в чём прикол такой херни? Понятно, что считывать будет до него, но это же херня. Или я что-то не понимаю?
Аноним 24/06/20 Срд 21:45:48 1732995121
>>1732991
Посмотри на сигнатуру, тебе char ★ приходит, а не char const ★
Аноним 24/06/20 Срд 21:52:29 1732998122
>>1732995
Что? Строка ещё и меняется в процессе что ли?
Аноним 24/06/20 Срд 21:58:21 1733008123
>>1732998
Блядь. Шли нахуй людей с такими заданиями. Если они не могут четко сформулировать задачу, значит они идут нахуй.
Аноним 24/06/20 Срд 22:02:08 1733013124
>>1733008
Лол, меня уже сегодня послали с таким решения, сюда пришёл узнать что не так с кодом, нуууу, теперь узнал, хотя тоже недоумевал с постановки задачи.
Аноним 25/06/20 Чтв 10:55:21 1733362125
sss.png 5Кб, 1216x84
1216x84
Как можно сделать эту хуйню менее всратой?
Аноним 25/06/20 Чтв 11:02:00 1733367126
>>1733008
>>1733013
Лол. Эта задача по си, а не плюсам, но классические макакодебилы плюсовые как всегда тупят как дебилы, совершенно не разбирающиеся даже в сишных строках. Ну хуле, в крестах де объекты, лолкек, как в любой жабаскрипто/питоно дрисне, вот и интеллект того же уровня.
Аноним 25/06/20 Чтв 11:21:59 1733381127
Аноним 25/06/20 Чтв 11:39:22 1733404128
>>1733367
Это очевидно.

>совершенно не разбирающиеся даже в сишных строках

Чем отличается сишная строка от строки в С++?
Аноним 25/06/20 Чтв 12:26:09 1733478129
Читал про RB и AVL деревья, потому что мне больше нравятся вторые, а тот же map построен на первом, мне захотелось понять почему. Так вот, во многих туториалах, и на википедии, пишут, что преимущество (одно из, про количество поворотов при вставке/удалении говорить не буду) RB в том, что нужно дополнительно хранить всего лишь один бит информации о цвете ноды, по сравнению с unsigned char для высоты или balance factor АВЛ!

Как авторы этих туториалов собираются выигрывать это место? Каждый раз делать свои ноды и паковать там битики, потому что семь лишних бит это важно? Unsigned char, да даже просто char, для высоты АВЛ хватит с головой, потому что высота дерева это logN, и для высоты 30 должно быть миллиард нод.

GCC цвет далеко-далеко не в одном бите хранит. (строка 00090)
https://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.1/stl__tree_8h-source.html
Аноним 25/06/20 Чтв 12:35:38 1733484130
Аноним 25/06/20 Чтв 12:36:50 1733485131
code.png 4Кб, 650x57
650x57
Аноним 25/06/20 Чтв 12:40:51 1733491132
>>1733484
Что "скорость"? Я разобрался, в чём преимущество. Да, в RB будет меньше вращений -> должно местами быстрее работать.

Я про том, что в туториалах и на википедии отдельным пунктом упоминают, что RB дерево будет занимать меньше места, чем АВЛ, но по факту так не делают, а если так делать, то это скорее всего убьёт всё преимущество по скорости.
Аноним 25/06/20 Чтв 12:43:30 1733492133
>>1733484

Скорость в наше время зависит от ублажения кеша, а не от битового кулхацкинга (им-то как раз наоборот можно перфоманс заткнуть, забив пайплайны и пролюбившись с кешем.)
Аноним 25/06/20 Чтв 12:43:53 1733494134
>>1733485
Если str способна принять rvalue, то можно же "суммирование" внутрь str засунуть, нет?
Аноним 25/06/20 Чтв 13:00:01 1733509135
Аноним 25/06/20 Чтв 13:01:33 1733510136
>>1733491
Инфа же всё равно в каком нибудь char хранится, который побитно обрабатываеся, всё равно надо по байту выделять, наверное.

>>1733492
И это хорошо, пердолинг никогда и ни к чему хорошему не приводит. Вчера поинтересовался хаскелем и понял, что лучше пожертвовать памятью с одинаковыми данными для каждого потока в программе, чем выгибаться от ментального напряжения в попытке сэкономить пару мегов инфы. Но хаскель по моему слишком куда-то далеко пошёл в своей идее функций.
Аноним 25/06/20 Чтв 13:23:07 1733525137
>>1733404
>Чем отличается сишная строка от строки в С++?
short string optimisation, крестовые строки не всегда выделяют память из кучи
кро
Аноним 25/06/20 Чтв 13:25:41 1733526138
>>1733525
>short string optimisation

Когда это бывает нужно? В нынешнее время экономить на памяти плохой тон, исключение разумеется всякие мелкие йобы.
Аноним 25/06/20 Чтв 13:29:28 1733529139
>>1733526
Это стандартная библиотечная фича, которая не знает, на чем ты там собрался запускать свою программу.
Плюс при этом меньше indirection, значит выше скорость.
Аноним 25/06/20 Чтв 13:41:46 1733537140
>>1733526
Особенно когда у тебя может быть несколько тысяч этих строк только с локализациями, ага, вообще плохой тон. Что ты несёшь, мартышка?
Аноним 25/06/20 Чтв 13:48:21 1733544141
>>1733526
>>1733529
>>1733537
Это экономия не на памяти, а на аллокации памяти. Нет смысла лезть в кучу за пятью байтами для строки "fuck", особенно учитывая хуевость стандартных аллокаторов.
Аноним 25/06/20 Чтв 13:56:59 1733555142
>>1733544
Thank you, captain, here, take this rock.
Аноним 25/06/20 Чтв 14:00:29 1733560143
>>1733555
Ты такой умный! Покажи свои работы!
Аноним 25/06/20 Чтв 14:24:49 1733580144
>>1733555
Если ты, анон, написал "экономить на памяти плохой тон", а указание на то, что это экономия на обращениях в кучу, называешь капитанством, то ты ультрадушный хуй.
Аноним 25/06/20 Чтв 14:25:30 1733581145
Аноним 25/06/20 Чтв 14:34:06 1733585146
>>1733510
>всё равно надо по байту выделять
Или просто протеггировать указатель. Не тратить же зря нижние биты.
Аноним 25/06/20 Чтв 14:54:28 1733596147
>>1733580
Это написал какой-то залетный питухонщик, душный кэп.
Аноним 25/06/20 Чтв 18:11:50 1733775148
Двач, использую заголовки github.com/p-ranav/tabulate
Как мне их закинуть в директорию и от туда подключать (к примеру #include "3rd_party/tabulate/table.hpp")? Использую cmake.
Просто эти заголовки друг друга подключают по пути #include <tabulate/*.hpp>
Подскажите
Аноним 25/06/20 Чтв 18:37:18 1733818149
>>1733775
CXXFLAGS=-I/путь/перед/tabulate?
Аноним 25/06/20 Чтв 18:38:25 1733822150
>>1733775
или include_directories(/папка/перед/tabulate)
Аноним 25/06/20 Чтв 19:38:41 1733878151
Когда в язык завезут хотя бы столько же сахарка, сколько в c#?
Аноним 25/06/20 Чтв 19:44:07 1733882152
Аноним 25/06/20 Чтв 19:59:22 1733899153
>>1733878
В C++50 можно будет
# include <c_sharp>
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
Аноним 25/06/20 Чтв 20:04:48 1733908154
>>1733878
Зачем? Писать приходится на обоих, и я чот не понимаю зачем в крестах больше сахара по-твоему.
Аноним 25/06/20 Чтв 21:56:21 1734001155
Аноним 26/06/20 Птн 01:30:14 1734118156
Где можно найти текст текущего стандарта? А то на сайте крестов за него предлагают платить. Чисто в ознакомительных целях хочу почитать
Аноним 26/06/20 Птн 02:22:21 1734134157
Аноним 26/06/20 Птн 11:27:15 1734353158
oa3EQ.png 99Кб, 713x295
713x295
Двач, как мне проитерироваться в контейнере от элемента до этого-же элемента через конец вектора? Есть решения какие? Не хочу большие велосипеды писать.
Аноним 26/06/20 Птн 12:07:32 1734377159
>>1734353
Чем тебя пара циклов не устраивает?
Аноним 26/06/20 Птн 12:08:58 1734379160
Аноним 26/06/20 Птн 12:35:46 1734394161
>>1734377
>>1734379
>>1734353
Цикл по модулю длины вектора с break если дошел до нужного элемента
Аноним 26/06/20 Птн 12:36:52 1734396162
>>1734394
> модулю длины вектора
Что это?
Аноним 26/06/20 Птн 13:03:54 1734415163
>>1734396
int i = x+1; (x индекс твоего крестика )
int size = vec.size();
while(i!=x){
//обрабатывай элементы
i+=1;
i=i%size;
}

Типо такого я думаю. Че надо сам подправишь
Аноним 26/06/20 Птн 13:07:03 1734416164
>>1734415
Хотя мне кажется брать каждый раз остаток слишком дорого. Лучше действительно 2 цикла.
Аноним 26/06/20 Птн 13:13:59 1734420165
image.png 22Кб, 612x352
612x352
Аноним 26/06/20 Птн 13:26:05 1734425166
Сап, двуч. А поястите, есть ли на C++ хуйня типа maven или npm? Ну типа чтоб зависимости тырить из гитхаба или ещё откуда и компилить?

Или этого можно добиться только написав делающий это вручную makefile?

Так же вопрос насчёт web framework'ов? Можно ли на C++ нормальный CRUD написать как на джувке?

Если всё хуйня, то как бы поясните чё вы сами-то кроме лаб на крестах пишите? Вы не подумайте, я не стебусь, я просто жабист и вот вкатываюсь.
Аноним 26/06/20 Птн 13:35:44 1734434167
1.png 13Кб, 524x158
524x158
2.png 8Кб, 177x431
177x431
Так, бля, епты бля. Почему так, нахуй, обэма?? Почему при первом же логическом сложении 0 с 1, я получаю 49??? (C++)
Аноним 26/06/20 Птн 13:44:44 1734437168
>>1734425
> есть ли на C++ хуйня типа maven или npm?
Vcpkg, conan.

> Или этого можно добиться только написав делающий это вручную makefile?
Вопреки здравому смыслу, здесь принято делать так. Или через cmake.

> Так же вопрос насчёт web framework'ов? Можно ли на C++ нормальный CRUD написать как на джувке?
Нормальный - нет . Хоть какой-то - да. Есть несколько либ, их никто не использует, и со спрингом в плане крудошлёпства они не сравнятся.

> Если всё хуйня, то как бы поясните чё вы сами-то кроме лаб на крестах пишите?
Открой hh, вбей кресты и почитай, что пишут, чем придётся заниматься. Что угодно, кроме веба.
Аноним 26/06/20 Птн 13:48:07 1734439169
Аноним 26/06/20 Птн 14:00:37 1734455170
>>1734437

> Vcpkg, conan.

А это кто-то юзает, или сделано для галочки?

> Вопреки здравому смыслу, здесь принято делать так. Или через cmake.

Божественный cmake

> Открой hh, вбей кресты и почитай

https://hh.ru/vacancy/37314205

Вот увидел. Как они пишут бэк на крестиках? Или на C++ только МИКРОСЕРВИСЫ и КОРЫ делают, а запросы резолвят чем-то ещё?

> в плане крудошлёпства они не сравнятся.

А почему? Язык бы мог джаву порвать...
Аноним 26/06/20 Птн 14:14:40 1734472171
code.png 7Кб, 432x110
432x110
>>1734420
Но зачем, если двумя циклами гораздо понятнее.
Аноним 26/06/20 Птн 14:19:00 1734474172
>>1734455
> или сделано для галочки?
Да, но кто-то использует.

> https://hh.ru/vacancy/37314205
Там, похоже, не классический бекенд, отдающий html, а очереди и вебсокеты. Этим заниматься на плюсах не так больно.

> А почему? Язык бы мог джаву порвать...
Небезопасный и сложноват. Конкретно джаве конкуренты, наверное, только шарп и пщ. Бизнесу нужна проверенная временем и устойчивая к ошибкам кодера технология, которую может изучить куча разрабов, чтобы брать количеством.
Аноним 26/06/20 Птн 14:19:58 1734477173
>>1734353
юзай индексирование по модулю
в плюсах не сильно шарю, но чёт подобное

int el_idx = arr.index(your_element);
for(int i = 0; i < len(arr); i++) {
arr[(i + el_idx) % len(arr)] ...
}
Аноним 26/06/20 Птн 14:24:42 1734480174
Аноним 26/06/20 Птн 14:25:30 1734482175
>>1734472
Да, это пожалуй лучше будет т.к. это в отличии от >>1734420 не уходит в бесконечный цикл если i = v.begin() + 0;
Поэтому ещё большее спасибо!
Аноним 26/06/20 Птн 14:27:16 1734484176
>>1734480
uint8_t, но я пробовал приводить вручную к size_t, не помогло
Аноним 26/06/20 Птн 14:28:14 1734487177
>>1734474
>Там, похоже, не классический бекенд, отдающий html, а очереди и вебсокеты. Этим заниматься на плюсах не так больно.

А насколько рилтайм аппликации на вебносках лучше делать на C++, чем на каком-нибудь node или той же java?
Буст к производительности будет?

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

Ну хуй знает, завезли же smart-ptr. Или не безопасный это больше про еблю с потоками? Ну это да, есть немного. Сложнее будет. А так язык как язык. Не знаю чем прям он такой сложный. По-моему весь спринговысер разбирать не легче.
Аноним 26/06/20 Птн 14:28:41 1734488178
>>1734482
Вот бы только ещё в лямбду индекс передавать.
Аноним 26/06/20 Птн 14:42:21 1734499179
>>1734487
> А насколько рилтайм аппликации на вебносках лучше делать на C++, чем на каком-нибудь node или той же java? Буст к производительности будет?
Имеет смысл, только если будут интенсивные расчёты/вычисления. Судя по словам "реалтайм" и "крутая математика", там так оно и есть. В остальном толку мало, в обычном круде самое долгое - ждать ответ на запрос к базе, и стльного буста не было бы, что джава, что ассемблер.

> smart-ptr
Не универсальны, потому что куча либ и старого кода работает с сырыми указателями. Да и без этого хватает способов выстрелить себе в ногу, тот же move.

> весь спринговысер разбирать не легче
В спринге ты хоть разбираешь только то, что нужно. Учишь десяток аннотаций, ставишь их в правильных местах - и вот тебе готовое приложение. В плюсах тебе одни только шаблоны будут сниться в кошмарах, что уж UB.
Аноним 26/06/20 Птн 14:42:53 1734501180
Аноним 26/06/20 Птн 14:46:17 1734507181
>>1734501
Бля, я даун, я понял. Из-за того, что uint8_t это по сути unsigned char, то оператор вывода выводит data, как символ, а там как раз '1', а это 49 в ascii. Короче, попал в свою же ловушку жокира.
Аноним 26/06/20 Птн 14:48:08 1734510182
>>1734499
>крутая математика

А я этого не говорил :^)

> реалтайм

Под риалтаймом я как раз имел в виду не крудец.

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

Так они же сами должны уже мемори менеджить? Или я чего-то не ппонимаю.

> В плюсах тебе одни только шаблоны будут сниться в кошмарах

Ну темплейты это слишком сильное колдунство иногда, это да.
Аноним 26/06/20 Птн 14:53:49 1734513183
>>1734510
> не говорил
Там в вакансии упоминается, имею в виду.

> Так они же сами должны уже мемори менеджить?
Менеджат, да. Но в местах вызова можно проебаться. Это всё равно нужно постоянно держать в голове вместо джавовского "я создал объект, передал куда-то ссылки, а дальше пусть GC разбирается".
Аноним 26/06/20 Птн 15:01:05 1734515184
>>1734507
Вот поэтому лучше юзать printf
Аноним 26/06/20 Птн 15:04:37 1734519185
>>1734515
Тогда лучше заставить сделать отдельные *int8_t, а не алиас на char.
Аноним 26/06/20 Птн 17:37:06 1734658186
>>1734507
И как с этим бороться?
Аноним 26/06/20 Птн 17:40:15 1734660187
Создал enum, можно ли несколько значений из enum присвоить переменной? Подскажите.
Аноним 26/06/20 Птн 17:44:16 1734661188
>>1734658
Быть внимательным. Я же смотрел на вывод, видел там 1 и не понимал нихуя, а по факту это был символ '1' со значением 49.
Аноним 26/06/20 Птн 17:51:11 1734666189
>>1734660
Одновременно? Нет. Храни список значений в каком-нибудь векторе.
Аноним 26/06/20 Птн 18:02:55 1734675190
>>1734660
Флаги, как деды завещали.

enum {
  A = 1,
  B = 2,
  C = 4,
  D = 8,
};
...
int v = A | C | D;
...
if (v & A) { ... }
if (v & D) { ... }
Аноним 26/06/20 Птн 18:18:02 1734685191
Аноним 26/06/20 Птн 18:36:52 1734704192
Аноним 26/06/20 Птн 19:34:23 1734746193
>>1734661
Не, а если я хочу вывести восьмибитовый инт как число? Кастовать к инту? А это не затратно?
Аноним 26/06/20 Птн 19:48:14 1734752194
Аноним 26/06/20 Птн 20:04:57 1734764195
>>1734474
> Да, но кто-то использует.
А ты как собираешь зависимости? Неужели проще вручную пердолить, а не vcpkg install mylib?
Аноним 26/06/20 Птн 20:16:57 1734779196
Как в крестах правильно форматировать строки?
stringstream выглядит как говно, особенно если формат строки сложный. Склеивать строки c std::to_string ещё более неудобно. Нет какого-то стандартного sprintf, чтобы вывод был сразу в std::string без ёбли с буферами?
Аноним 26/06/20 Птн 20:25:39 1734783197
Аноним 26/06/20 Птн 20:41:53 1734793198
>>1734779
Напиши свой враппер вокруг sprintf который возвращает std::string и используй атрибуты компилятора для валидации строки формата.
Аноним 26/06/20 Птн 20:46:48 1734797199
Сап господам программистам. Вопрос: зачем нужен указатель this->, какие функции он выполняет? И да, я совсем долбоеб нуб и только начал изучать ооп
Аноним 26/06/20 Птн 21:55:51 1734839200
>>1734764
На линуксе обычно хватает make-файлов или вообще build.sh, там системный менеджер пакетов сам тащит то, что нужно.
На винде cmake, архивы с либами качаю вручную. Неудобно, но это делается один раз.
Аноним 26/06/20 Птн 22:20:39 1734857201
>>1734839
>На линуксе обычно хватает make-файлов или вообще build.sh, там системный менеджер пакетов сам тащит то, что нужно.
Детектор говноеда красноглазого
Аноним 26/06/20 Птн 22:46:49 1734873202
>>1734857
> Красноглазого
Линукс у меня только в виде WSL и докера. Но говноед я не поэтому.
Аноним 26/06/20 Птн 22:55:18 1734875203
>>1734134
Я знаю об этом. Это же draft
Аноним 26/06/20 Птн 23:19:48 1734895204
>>1734797
В явном виде пишется только в dependent коде из-за ебанутых правил инстанцирования шаблонов. А так - указатель как указатель
Аноним 27/06/20 Суб 00:33:07 1734949205
>>1734783
>https://github.com/fmtlib/fmt
Похоже это лучший вариант, спасибо.

>>1734793
>Напиши свой враппер вокруг sprintf
Ну я так и делал через snprintf с локальным буфером, просто надоело ощущение велосипеда.
Аноним 27/06/20 Суб 00:38:43 1734952206
>>1734474
>от 210 000 до 260 000

И тут я понял, что по меркам ДС это не так много, ибо квартира будет стоить рядом все 15 000 000, и даже если ужаться и отдавать по 200 000, то потребуется шесть лет и три месяца, а гарантии такой ЗП как и существования конторы нет.
Аноним 27/06/20 Суб 00:52:22 1734960207
Аноны, а есть у кого-нибудь итт опыт создания приложений реального времени? Когда например какая-нибудь операция должна выполниться за время T, не дольше? Есть ли какие-нибудь либы, или паттерны проектирования?
Аноним 27/06/20 Суб 02:51:02 1734997208
>>1734952
Можно начать с малого, устроиться на подобную работу, через несколько лет питания исключительно гречкой купить за 5 лямов где-нибудь за МКАДом, чтобы добираться до работы за 2 часа. Затем поднакопить ещё сколько-то, взять новую и т.д, пока внезапно не обнаружишь, что тебе уже 50 лет, здоровье посажено, тяночки нет и никогда не было.
Аноним 27/06/20 Суб 03:09:58 1735003209
Тут есть, кто пишет и дебажит в vscode? Вас устраивает, как работает дебаг? Какой дебаг используете? Вас не смущает то, что stl коллекции нельзя просматривать полностью в удобном виде, а только добавлять каждый интересующий элемент? А это дрочево бесконечное по всяким библиотечным аллокаторам, когда хочешь просто зайти в свою функцию? Или это у меня что-то не так настроено/работает?
Аноним 27/06/20 Суб 03:17:26 1735006210
>>1735003
Алсо, что скажете о clion? Думаю, может туда перейти... Но мне нравились все эти редакторы простенькие типа sublime text, vscode, только постоянно в них проблемы какие-то с удобством использования gui дебага у меня. VS studio вообще не нравится, тяжелая, открывается годами. Если clion окажется таким же тяжеловесом медленным, то скорее всего продолжу жрать кактус.

Вообще не понимаю людей, топящих за vim/emacs. Неужели там действительно все так удобно, включая дебаг? А автодополнение там есть вообще?
Аноним 27/06/20 Суб 05:14:22 1735012211
Если я читаю из файла 4 байта сразу в float, то я получаю правильно число. Но если я читаю 4 байта в unsigned char, а потом сдвигаю биты в порядке LE (моя архитектура именно так и считывает), собирая в int, то после приведения (float)int число не верное. Как вручную из 4 charов собрать float правильно?

Т.е.
Содержимое файла: 01 02 03 04
1 вариант:
file.read((char*)&floatVar, sizeof(floatVar)); -> floatVar = 1.53999e-36 (ПРАВИЛЬНО)

2 вариант:
file.read((char)&charArr[0], 4);
intVar = ((((((((0x00 << 8) | charArr[3]) << 8) | charArr[2]) << 8) | charArr[1]) << 8) | charArr[0]);
floatVar = (float)intVar; -> floatVar = 1.69091e+07 (ХУЙНЯ)
Аноним 27/06/20 Суб 05:52:35 1735017212
Как в 17 стандарте работает placement new? У меня есть класс с конструктором по умолчанию, new работает, а placement new не хочет. Более того, он даже для int не работает, хотя я точно помню что использовал его без каких-либо проблем, правда в 14 стандарте.

https://en.cppreference.com/w/cpp/memory/new/operator_new
Там ниже идёт operator new(std::size_t sz, bool b) - что это за bool, откуда он берётся? Там написано что placement-версия должна иметь 2 или более параметров, но если я меняю на int - то оно не компилируется. С bool всё работает, но не хотелось бы писать однотипный ctrl+c/ctrl+v оператор во всех классах.
27/06/20 Суб 07:45:52 1735038213
>>1728337
Как по мне только усложняет код. Буквально на днях написал похожий интерфейс для аналогичный фичи на сях. Зачем мне в С++ такое? Даунгрейд ас ис.
27/06/20 Суб 07:53:40 1735041214
Аноним 27/06/20 Суб 08:01:53 1735043215
>>1735041
А для ++14 есть что-нибудь?
Аноним 27/06/20 Суб 08:10:19 1735046216
>>1735043
std::memcpy(blah, blah, sizeof(float))
Аноним 27/06/20 Суб 08:20:07 1735048217
Аноним 27/06/20 Суб 08:22:56 1735049218
>>1735048
Еще можно вот так auto floatVal = ⛧(float⛧)(&charArr[0]);
Аноним 27/06/20 Суб 08:49:54 1735051219
>>1735017
> что это за bool, откуда он берётся
Это и есть тот самый user defined параметр.
Аноним 27/06/20 Суб 09:33:32 1735055220
>>1734960
Формально, игоры это такой софт реалтайм. что не мешает писать их на джаве
Нужен как минимум аллокатор с гарантированым временем худшего случая. Либо по возможности обходиться без динамической памяти.
Аноним 27/06/20 Суб 10:24:00 1735069221
>>1735055
Игоры это не реалтайм. Если комп не успевает выдавать много фпс, то он просто выдаёт меньше, вот и всё.
Аноним 27/06/20 Суб 10:26:01 1735070222
>>1735069
А что тогда есть реалтайм?
Аноним 27/06/20 Суб 10:28:06 1735071223
чё почитать если я ВООБЩЕ ничего не знаю и не слышал про С++ и программирование?
Аноним 27/06/20 Суб 10:30:08 1735072224
>>1735071
накопал
учебник П.А.Орленко, Евдокимов П.В. - C++ на примерах. Практика, практика и только практика [2019]
нормально епта?
Аноним 27/06/20 Суб 10:42:22 1735074225
>>1735072
>>1735071
Cори, не увидел шапку, не отвечайте мне, забудьте обо мне.
Аноним 27/06/20 Суб 10:59:16 1735079226
>>1735070
Может всякие медицинские приборы, аэс.
Аноним 27/06/20 Суб 11:06:40 1735085227
>>1735069
Эээ, ну и что из этого следует? Риалтайм — это про константное время выполнения, а не про твои маняфантазии. Если на одной железке фпс в одной сцене одинаковый — то это уже риалтайм.

>>1735079
Если этот софт запустить на приборах 15+ летней давности — он перестанет быть риалтаймом из-за возросшего времени выполнения?

Пример отсутствия риалтайма — это разработчики компиляторов и иде, уже середина 2020, а модулей как не было так и нет.
Аноним 27/06/20 Суб 12:18:38 1735113228
>>1735070
1) это когда ОС (если она есть) даёт гарантию, что ты точно получишь сколько-то процессорного времени (и других ресурсов). Если есть многозадачность, то в правилах переключения между задачами нет никакого рандома и эвристики, всё документировано.
2) и ещё это когда ты сам используешь алгоритмы, которые занимают предсказуемое время, и не имеют никаких "скрытых" просадок. Под такими просадками я имею ввиду всякие аллокаторы и прочие разновидности функций типа ДайЧтоНибудь(), которые могут дать быстро, а могут не найти чего-то и начать грузить, искать где-то ещё, и т.д.
Аноним 27/06/20 Суб 12:28:45 1735117229
изображение.png 23Кб, 1002x425
1002x425
>>1735051
>user defined параметр
Какой у него смысл? Я нигде его после же не указываю, верно?
Если это просто сигнатура для компилятора как с префиксным и постфиксным ++, то по идее там бы явно было написано про bool. Причём при наличии обоих вариантов оно выбирает в пользу void✱ (его я случайно подобрал).
Аноним 27/06/20 Суб 12:57:06 1735131230
Аноним 27/06/20 Суб 13:09:43 1735137231
Аноним 27/06/20 Суб 13:11:41 1735139232
>>1735070
Есть софт риалтайм и хард риалтам.
Хард риалтайм - это когда точно известно, что операции выполняются за столько-то времени и не больше(меньше), и кушают столько то ресурсов и не больше(меньше). Какая-то погрешность может быть заложена, но она обычно весьма мала и тоже точно определена. Обычно хард риалтайм на заводском оборудовании, в военке, авиации, мед оборудовании и так далее.

Софт риалтайм это когда тоже что-то выполняется в реальном времени, но нет требований к высокой точности, например, внезапный проход GC не приведёт к аварии/смерти/прочим фейлам, а просто юзер увидит лаг, или даже не увидит.
Аноним 27/06/20 Суб 13:11:57 1735140233
>>1735117
> Какой у него смысл? Я нигде его после же не указываю, верно?
У него смысл быть user defined параметром. Ты эти параметры явно указываешь в скобках: new(myparam)
> Причём при наличии обоих вариантов оно выбирает в пользу void✱ (его я случайно подобрал).
Ты в свой placement new передаёшь указатель, ясное дело, что void ★ лучшая альтернатива bool. В третьем случае у тебя не собирается, потому что указатель к инту так просто не приведёшь.
Аноним 27/06/20 Суб 13:25:35 1735147234
Аноним 27/06/20 Суб 18:36:42 1735345235
>>1735131
Можешь объяснить почему ub без просмотра видео на час?
Фигня с выравниванием, потому что компилятор пытыется считать число как выровненное, но никаких гарантий этого у него нет?
У меня не получается сломать: https://ideone.com/ika5RK

>>1735012
Можешь более полный код показать? Я создал файл с одним флоатом, и у меня всё корректно считывает даже по байтам. И если в начале дописать какие-то байты, то тоже нормально работает.
Аноним 27/06/20 Суб 18:44:44 1735352236
>>1735345
Самый страшный undefined behavior - это тот, который работает так, как ты думаешь.
Аноним 27/06/20 Суб 22:32:50 1735532237
>>1735352
Если этот "UB" работает везде как и написано, то получается, что это и не UB вовсе...
Аноним 27/06/20 Суб 22:41:25 1735540238
>>1735532
Бля будешь, что раз в этом тривиальном случае так совпало, что работает, то никогда в более сложном кейсе не выстрелит?
Аноним 27/06/20 Суб 23:05:02 1735552239
>>1735532
UB это когда в стандарте не прописано,не?
Все компиляторы могут сделать его результат одинаковым, но можно написать компилятор у которого результат будет другой и компилятор будет прав а погромист не прав, не? мимо проходил
Аноним 27/06/20 Суб 23:08:11 1735555240
>>1735552
Да. Более того, существующие компиляторы могут изменить своё поведение в будущем, и те, кто думал, что можно хоть иногда полагаться на UB, пососут больших жилистых хуйцов.
Аноним 27/06/20 Суб 23:55:33 1735575241
>>1728462
итераторы абстрагируют от реализации контейнера, а что твои ranges?
Аноним 28/06/20 Вск 00:13:41 1735581242
>>1735575
А они не абстрагируют от реализации контейнера. Как и исключения, модули, темплейты, смартпоинтеры, ссылки, поддержка ООП, небо, аллах. Кто тебе сказал, что задача ranges в том, чтобы полностью вытеснить итераторы?
Аноним 28/06/20 Вск 04:51:14 1735673243
>>1735345
> Можешь объяснить почему ub без просмотра видео на час?
Потому что области в памяти перекрываются. Например кто то запишет float в байты с 0 по 3й, а другой считает с байтов 2 по 5й. И кое что может пойти по пизде, из за предустановки что второй флоат никем не мог поменяться.
Аноним 28/06/20 Вск 04:58:03 1735675244
>>1728423
Только потом в этих форах ошибки off by 1 и переполнения буферов годами отлавливать.
Аноним 28/06/20 Вск 06:10:37 1735685245
>>1735673
Непонятное объяснение. Один записал в одно место, а другой считал это из другого, и закономерно получил херню. Вполне себе defined бехавиор.
Аноним 28/06/20 Вск 06:17:03 1735688246
>>1735685
Компилятор может выкинуть чтение, если считает что в то место никто не писал. Думаю так.
float f=blabla[0..3];
blabla[2..5] = 3.1415;
f=blabla[0..3] //выкинуто, компилер считает что в f уже считано
Аноним 28/06/20 Вск 06:41:24 1735690247
>>1735345
Я заметил что ты используешь слово выравнивание. Возможно у тебя произошла путаница с aligning? Aliasing это скорее "псевдониминг". Если совсем просто, то он означает, что в каждом участке памяти находится только одна переменная. Можно сказать, что этому участку памяти дан псевдоним с именем этой переменной. Если компилятор видит что области двух переменных перекрываются, он может решить да ну нахер такого не может быть это UB ) И вернуть просто 1. Можешь нагуглить это реальный пример.
Аноним 28/06/20 Вск 06:45:10 1735691248
1593315908849.png 226Кб, 1080x1920
1080x1920
>>1735690
Сорри не понял что за слово в спамлисте, вторая половина ответа !картинкой
Аноним 28/06/20 Вск 10:38:55 1735734249
>>1735690
Нет, я именно про выравнивание. Предположил, что на каких-то архитектурах чтение невыровненного флоата сильно медленнее, и потому компилятор использует предположение, что указатели выровненные (что верное в 99% случаев), чтобы программы не работали в два раза медленнее.
Первый раз за десять лет самообучения слышу что есть какая-то проблема с тем, что в одной и той же памяти две переменные.

>>1735691
Так union вроде как сам язык определяет - для чего он тогда нужен, если он ub? Я понимаю если там указатели отдельные - тогда он мог бы предположить, но union это же явное указание неадекватности переменных?
Ну и ладно, всегда можно пометить как volatile - тогда оно вроде как раз должно отключать подобные оптимизации и предположения.

Единственная известная мне "ошибка" (я не знаю на сколько это ub - случайно нашёл когда пытался понять для чего нужен const_cast) стабильно возникает с const - то что компилятор излишне сильно предполагает что const сохраняет значения. Вот эта: https://ideone.com/pFSkKv
Аноним 28/06/20 Вск 10:46:10 1735735250
>>1735734
>на каких-то архитектурах чтение невыровненного флоата сильно медленнее
Мужик в видео >>1735147 сказал что на ARM крашится.
Аноним 28/06/20 Вск 11:12:07 1735743251
>>1735688
язык для байтоебства
@
нельзя ебать байты
Аноним 28/06/20 Вск 11:21:47 1735745252
>>1735743
собственно, даже в видео тот чел сказал, что одно из UB там высосано из пальца, и надо поменять стандарт, чтобы это не было UB
Аноним 28/06/20 Вск 11:23:03 1735746253
Использую Qt Creator, как мне один проект открыть в разных гит ветках что-бы сравниваясь со старой веткой переносить изменения в новую?
Аноним 28/06/20 Вск 12:23:57 1735777254
>>1735746
Можно открыть проект в гитлабе и туда подглядывать. Состояние репа на любой коммит.
Аноним 28/06/20 Вск 12:32:35 1735785255
>>1735777
Грузить в онлайн я ничего не буду.
Аноним 28/06/20 Вск 13:09:32 1735820256
изображение.png 55Кб, 1741x373
1741x373
>>1735746
Прям открыть скорее всего никак (только если скопировать проект и открыть сразу две), но при смене ветки если ты настроил gui-утилиту для merge, то ты можешь просматривать и вручную сливать изменения.

Ещё можно вот так, переходишь на нужно ветку, правой клавишей кликаешь по другой и нажимаешь сравнить - и потом можно райткликом применять отдельные строки - но я не пробовал, не знаю насколько это будет удобно.
Аноним 28/06/20 Вск 13:10:03 1735821257
>>1735012
Тут кто-то вроде писал, что плоские использовать нет смысла, что они типа из двойных преобразуются в итоге.
Аноним 28/06/20 Вск 13:11:54 1735824258
>>1735820
>Ещё можно вот так, переходишь на нужно ветку, правой клавишей кликаешь по другой и нажимаешь сравнить - и потом можно райткликом применять отдельные строки - но я не пробовал, не знаю насколько это будет удобно.
Неудобно
>только если скопировать проект и открыть сразу две
Походу единственный приемлимый вариант
Аноним 28/06/20 Вск 13:22:14 1735833259
Простите, но я не могу молчать, сегодня впервые я осилил сложную задачу на лит коде, это было не просто, но я смог, теперь я хакер! ДА!
Аноним 28/06/20 Вск 13:49:56 1735862260
nyfaas41f4x41.png 933Кб, 3200x1800
3200x1800
Аноним 28/06/20 Вск 13:50:13 1735863261
изображение.png 10Кб, 537x250
537x250
Радость была не долгой.

Почему так объявлять шаблон неверно, хотя в VS 2010 всё без бэ работает?
Аноним 28/06/20 Вск 14:06:05 1735877262
>>1735863
struct кто за тебя ставить будет?
Аноним 28/06/20 Вск 14:07:31 1735880263
>>1735877
Благодарю, а про специализацию в инете хрен найдёшь чего, или как там это называется, эх.
Аноним 28/06/20 Вск 14:09:06 1735881264
>>1735734
union для экономии памяти, когда ты точно знаешь, что у тебя или int, или float. Записал int полчитал int - ок. Записал float прочитал float - тоже ок. Записал float прочитал int - UB.
> Первый раз за десять лет самообучения слышу что есть какая-то проблема с тем, что в одной и той же памяти две переменные.
Ну, теперь знаешь.
Аноним 28/06/20 Вск 16:45:35 1736011265
Подождите, то есть это тоже UB?
union
{
struct { int ★ a; int ★ b; } s;
int v[2];
};
Аноним 28/06/20 Вск 16:45:58 1736013266
>>1736011
Массив указателей разумеется
Аноним 28/06/20 Вск 16:58:55 1736018267
изображение.png 14Кб, 878x305
878x305
Что это такое? Зачем это и почему это?
Аноним 28/06/20 Вск 17:23:25 1736029268
Почти любые попытки обойти типизацию и получить доступ к напрямую к битам нецелочисленных типов - это UB.
Аноним 28/06/20 Вск 17:35:25 1736043269
image.png 2Кб, 642x20
642x20
image.png 2Кб, 649x19
649x19
Пытаюсь получить указатель на метод класса, код из методички дает эту ошибку. Что за хуйня как фиксить?
Аноним 28/06/20 Вск 17:37:21 1736044270
>>1736018
Address Sanitizer, написано же. Чтобы искать выход за границы массива и всякие преколы в коде от любителей высрать вот такое >>1736011
На самом деле если не понимаешь что это и зачам — лучше даже не смотри в эту сторону, рано ещё.

>>1736029
Да не почти, все попытки наебать систему типов это UB, просто потому что это обход вообще всего чего можно.
Аноним 28/06/20 Вск 17:38:18 1736045271
>>1736043
Просит передать адрес некоторого значения вроде
Аноним 28/06/20 Вск 17:39:25 1736048272
Почему в qt для передачи типа сигналом, этот тип сначала надо зарегистрировать? Например DWORD
Аноним 28/06/20 Вск 17:39:45 1736049273
>>1736044
Понятно, а то я думал, что там выделяет только определённый объём памяти и я малость перестарался. Интересно, что VS на такое жалуется только тогда, когда ты лезешь в память чужого процесса, иначе молча принимает происходящее.
Аноним 28/06/20 Вск 17:44:55 1736055274
>>1736049
Ну так ты действительно перестарался, засунув свои ручонки в чужое адресное пространство, но это лишб один из кейсов.

VS тут вообще не при чём, просто видимо они используют вот эту либу в дебажных билдах https://github.com/google/sanitizers/wiki/AddressSanitizer — там же есть и полный список приколов которые она ловит с примерами.
Аноним 28/06/20 Вск 17:47:52 1736059275
Аноним 28/06/20 Вск 18:48:26 1736101276
>>1736011
Это может быть и не ub, не помню. Вот если бы там были разные типы, int[] и short, тогда было бы. Но в случае union только при доступе по другому типу, не тому который ты в него поместил.
Аноним 28/06/20 Вск 18:50:19 1736104277
>>1736043
Ты точно тредом не ошибся? void*, #define, больше на Си похоже.
Аноним 28/06/20 Вск 18:53:29 1736106278
>>1736104
> void*
Будто в крестах придумали что-то другое.
Аноним 28/06/20 Вск 19:00:43 1736111279
Аноним 28/06/20 Вск 19:43:06 1736135280
У меня вопрос по pure c
Как сделать так чтобы моя порога выводила LF вместо CRLF?
Аноним 28/06/20 Вск 19:48:01 1736139281
>>1736135
Выводить \n вместо \r\n. Если не работает, ты что-то делаешь не так, и сишка тут не при чём.
Аноним 28/06/20 Вск 19:55:38 1736146282
>>1736139
Мне надо чтобы оно и на винде работало, а там оно автоматически переводит.
Аноним 28/06/20 Вск 20:02:48 1736153283
Читаю книгу "Программирование: принципы и практика с использованием C++" И там первый же пример с hello world не совсем рабочий, стоит ли вообще изучать эту книгу? Или есть что-то более стоящее?
Аноним 28/06/20 Вск 20:06:46 1736158284
Аноним 28/06/20 Вск 20:10:50 1736161285
>>1736146
Куда пишешь, в файл? Если да, открывай как бинарный - "wb".
Аноним 28/06/20 Вск 20:13:48 1736162286
>>1736158
Считаешь ли ты данную книгу хорошим путеводителем?
Аноним 28/06/20 Вск 20:17:17 1736167287
>>1736153
Там все рабочее, просто автор решил "упростить" вынеся в файл std_lib_facilities.h всякий бойлерплейт.
Аноним 28/06/20 Вск 20:19:21 1736171288
>>1736162
Некоторые примеры использую. Но думаю, что верный путь такой - Керниган Ритчи, Страуструп, и что-то дальше.
Аноним 28/06/20 Вск 20:22:29 1736173289
>>1736162
Я другой, у Шилдта чистал только про чистый си, и это больше на справочник было похоже - подходит если ты с другого не слишком высокоуровневого языка перекатываешься, но как справочник оно было очень хорошо - прям за час или два можно всё прочитать и вкатится. Не думаю что в книге по си++ что-то поменялось, но не читал.
По с++ мне Прата понравился, прям на порядок лучше страуса на полторы тысячи страниц, где дыры в информации и нет ответов на закономерные вопросы.
Аноним 28/06/20 Вск 20:33:12 1736186290
>>1736167
> упростить
М-да. С таким подходом ему лучше книжки по питону и JS писать.
Аноним 28/06/20 Вск 20:41:19 1736205291
>>1736186
Дело в том, что он автор языка. Запутался наверное, сам то себе костылей уже написал и привык к ним.
Аноним 28/06/20 Вск 20:49:22 1736224292
>>1736205
Много раз уже говорилось, что этот автор языка умеет писать книги так себе.
Аноним 28/06/20 Вск 20:52:04 1736227293
>>1736224
Да и с языками не очень зашло
Аноним 28/06/20 Вск 22:00:21 1736321294
>>1736029
Да и целочисленных тоже
Аноним 28/06/20 Вск 22:03:04 1736327295
>>1735345
>Можешь объяснить почему ub без просмотра видео на час?
Берёшь стандарт и читаешь релевантные параграфы. Там всё просто в том смысле, что про UB сказано явно.
Аноним 28/06/20 Вск 22:04:32 1736331296
>>1735147
>Да, memcpy не уб
И memcpy — UB.
Аноним 28/06/20 Вск 22:05:50 1736333297
>>1735345
>Можешь объяснить почему ub без просмотра видео на час?
Видео вообще не при чём. Доступ к элементам массива char через glvalue с типом float это нарушение strict aliasing. А в видео про более тонкие вещи.
Аноним 28/06/20 Вск 22:22:15 1736350298
>>1736331
Неудивительно. В С/С++ даже умножение интов UB.
Аноним 28/06/20 Вск 22:34:49 1736369299
>>1736350
Это везде вроде так.
Аноним 28/06/20 Вск 22:51:05 1736403300
>>1735552
Не совсем.
То, о чем ты говоришь - это unspecified behaviour, т.е. зависящее от разработчиков компилятора, но всегда одинаково.
А undefined behaviour - это когда на одном и том же компиляторе сегодня так, а завтра по-другому.
Аноним 28/06/20 Вск 22:53:30 1736407301
>>1736333
Ну там есть интересный пример того насколько бывают компиляторы пидоры. https://godbolt.org/z/cpFd-T msvc и clang выдают адекватный и ожидаемый вывод строки Test1 (объект t1 был инициализирован конструктором Test1, который в свою очередь задал виртуальную таблицу класса Test1). И только gсс, компилятор пидор, начинает выебыватся и кричать "РЯЯЯЯЯ UB" не выдавая вообще нихуя.
Аноним 28/06/20 Вск 22:56:20 1736410302
Аноним 28/06/20 Вск 22:59:15 1736413303
Аноним 28/06/20 Вск 23:00:00 1736414304
Анончики, вкатываюсь в WinAPI. На кой хуй нужно регистрировать класс? Зачем нужно делать это?
WNDCLASS wc = { };

wc.lpfnWndProc = WindowProc;
wc.hInstance = hInstance;
wc.lpszClassName = CLASS_NAME;


И что в таком случае это:

HWND hwnd = CreateWindowEx(
0, // Optional window styles.
CLASS_NAME, // Window class
L"Learn to Program Windows", // Window text
WS_OVERLAPPEDWINDOW, // Window style

// Size and position
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,

NULL, // Parent window
NULL, // Menu
hInstance, // Instance handle
NULL // Additional application data
);



Аноним 28/06/20 Вск 23:07:25 1736417305
>>1736413
Ты перепутал C++ и "ассемблер с классами"
Аноним 28/06/20 Вск 23:09:59 1736419306
>>1736414
это все параша чтобы беспонтовое окошко появилось. Руками окошки через винапи нынче рисуют только пенсионеры и дебилы
Аноним 28/06/20 Вск 23:10:26 1736420307
>>1736161
Мне проще через трубы.
Аноним 28/06/20 Вск 23:11:36 1736423308
>>1736419
А как иначе нужно делать?
Аноним 28/06/20 Вск 23:12:50 1736424309
>>1736414
Ну, класс в смысле категория. Есть класс окон-кнопок, окон-чекбоксов, окон-полей-ввода и так далее. Винда не знает что будет делать окно твоей программы, поэтому тебе надо зарегистрироваться в системе.
Аноним 28/06/20 Вск 23:13:10 1736425310
Аноним 28/06/20 Вск 23:16:04 1736427311
>>1736425
Я хочу работать с виндой и придти на работу и такой ебать, WinAPI знаю.
Аноним 28/06/20 Вск 23:18:25 1736429312
>>1736403
В чем указанное различие?
Зависящее от компилятора == не прописано в стандарте, а значит может измениться в новой версии компилятора, так что ждать там одно и то же поведение на разных версиях глупо. UB в одном и том же компиляторе скорее асего ведет себя одинаково, так в чем отоичие unspecified от undefinef?
Если ты про реализацию каких то стандартных алгоритмов или про тот же vtable(его нет в стандарте), то не понимпюч при чем тут это.
Аноним 28/06/20 Вск 23:27:12 1736436313
>>1736423
qt, WinRT, Сишарп и прочее.

Окошечки - это лишь небольшая часть винапи.
Аноним 28/06/20 Вск 23:29:05 1736439314
>>1736436
Я понимаю. Вот я и хочу овладеть WinAPI целоиком как API, а не как штуковиной для рисования окошечек.
Аноним 28/06/20 Вск 23:29:31 1736441315
>>1736439
целиком
>быстрофикс
Аноним 29/06/20 Пнд 00:30:33 1736500316
>>1736331
А вот и нет, memcpy как раз не ub. И bit_cast это обертка над memcpy. Видео выше я уже скинул, там ответ почему и как.
Аноним 29/06/20 Пнд 00:48:55 1736506317
Как добавить в программу параметры командной строки?
Многие gnu программы принимают их по одному и тому же принципу -f par --foobar par. Это всё пишется вручную или есть какая-то либа, которая всё это облегчает?
Аноним 29/06/20 Пнд 00:56:35 1736509318
>>1736500
memcpy тоже может быть ub в каких то случаях
Аноним 29/06/20 Пнд 00:57:43 1736511319
Аноним 29/06/20 Пнд 01:00:30 1736513320
>>1736506
В сишке getopt стандартный парсер командной строки. В крестах куча сторонних библиотек, boost::program_options, cxxopts итп
Аноним 29/06/20 Пнд 01:25:24 1736528321
>>1736500
>А вот и нет, memcpy как раз не ub
Ну тащи определение поведения что будет если я поверх объекта какого-то типа скопирую байтики, которые я взял с потолка с какого-то левого файла
Аноним 29/06/20 Пнд 01:27:03 1736530322
>>1736407
>И только gсс, компилятор пидор, начинает выебыватся и кричать "РЯЯЯЯЯ UB" не выдавая вообще нихуя.
Действительно пидор. Нет бы файлы в хомяке тебе затереть рандомом, он всего лишь нихуя не делает.
Аноним 29/06/20 Пнд 02:08:06 1736544323
Просто игнорируйте конченных долбоёбов, не согласных с тем, что допускание UB - абсолютное зло. И они сами уйдут.
Аноним 29/06/20 Пнд 02:11:05 1736546324
Аноним 29/06/20 Пнд 06:13:35 1736577325
>>1736544
union
{
struct
{
float x, y, z;
};
float values[3];
}

UB, но работает и будет работать во всех компиляторах.
Аноним 29/06/20 Пнд 08:16:18 1736604326
>>1736577
Так почему уб? Я пару постов назад спрашивал - никто не ответил
Аноним 29/06/20 Пнд 09:29:29 1736624327
>>1736544
У тебя двусмысленно получилось. Долбоебы - те кто пишут код с UB, или долбоебы, кто допустили само существование UB в стандарте.
Аноним 29/06/20 Пнд 09:35:58 1736628328
>>1736624
Те, кто пишет кол с UB, причём зная об этом.
Аноним 29/06/20 Пнд 09:41:09 1736629329
>>1736628
А, такое согласен. Мудаки какие-то.
Аноним 29/06/20 Пнд 10:59:30 1736650330
>>1736624
UB было необходимостью для Си, а точнее UNIX - без него она не была бы переносимой.
Аноним 29/06/20 Пнд 13:20:46 1736749331
>>1736577
ОБОСНУЙ. Я вижу 100% корректное определение.
Аноним 29/06/20 Пнд 13:42:49 1736770332
>>1736429
Да я вроде понятно написал, давай ещё подробнее.
Unspecified behaviour действительно ведёт себя одинаково, реализация зависит от разработчика. Как, например, некоторые стандартные алгоритмы, где порядок обработки не всегда регламентируется стандартом.

Undefined behaviour никогда не ведёт себя одинаково, а зависит от положения звезд, планет, Аллаха, оперативной памяти, секса соседа с женой и непредсказуем.
То, что ты скомпилил и оно ведёт себя так, как ты ожидаешь - не значит, что при следующем запуске программы или после следующей компиляции будет вести себя так же.
Самый простой пример:
int* a = new int[2];
std::cout << a[100500];
что не отменяет того, что ты можешь десять лет подряд тестить UB код и получать одно и то же.
Аноним 29/06/20 Пнд 13:56:08 1736781333
Есть ли работа вообще в области написании нативных C++ модулей для node.js. Меня что-то очень заинтересовала тема. Насколько это вообще живая хуйня. Делает ли кто?
Аноним 29/06/20 Пнд 14:39:21 1736823334
>>1736419
Тоже это всегда выбешивало
Аноним 29/06/20 Пнд 14:41:58 1736829335
>>1736781
Ну всякие нетфликсы юзающие ноду в проде под хуйлоадом точно делают, на равне с хуйлоад-питонистами и всеми остальными.
Аноним 29/06/20 Пнд 14:57:24 1736856336
>>1736829

Я просто сижу пишу на C++ приложение под Windows для отечественной компании и хочу в web highload. Какие подводные вообще? Как делать?
Аноним 29/06/20 Пнд 14:58:22 1736860337
>>1736856
Идти в яндекс, и писать хуйлоад на крестах
Аноним 29/06/20 Пнд 15:00:15 1736862338
>>1736860

В ШАД не хочу идти. Не примут боюсь
Аноним 29/06/20 Пнд 15:03:42 1736868339
>>1736862
А зачем тебе а шад? Ты же байтойобом идёшь работать, а не датасатанистом. Хотя алгоритмы для собеса выдрочить придётся. У нас хуйлоада на плюсах кроме хуяндекса я лично не помню (видел вакансии от авито и баду, но то такое).
Аноним 29/06/20 Пнд 15:09:39 1736874340
>>1736868
>алгоритмы для собеса выдрочить придётся
Но их же дохуище просто. Невозможно знать их все и помнить. Я только поэтому и не хочу идти ни на какие собесы, боюсь забыть где надо инкрементировать j, а где декрементировать k, епта... Вообще, кто придумывает эти собесы ебанутые? На практике всегда есть возможность найти нужный алгоритм и по гайду написать. Имхо, если на помидора идешь и от тебя требуют опыт, достаточно только знать примерное название алгоритма, который подошел бы для решения задачи.
мимо
Аноним 29/06/20 Пнд 15:11:19 1736881341
>>1736868

> Ты же байтойобом идёшь работать, а не датасатанистом

Да это шутка. Но типа алгоговно учить запарно, могут дать пососать.

> нас хуйлоада на плюсах кроме хуяндекса я лично не помню

А чё ты пишешь?
Аноним 29/06/20 Пнд 15:13:11 1736884342
bool operator==(const MyStructure& other) const {return "Двач, как по быстрому сравнить все переменные this со всеми переменными other?"}
Аноним 29/06/20 Пнд 15:16:25 1736891343
>>1736868
Кстати да, весь хуйлоад нынче на ГОвне.
Аноним 29/06/20 Пнд 15:17:30 1736893344
image.png 1Кб, 165x137
165x137
Аноним 29/06/20 Пнд 15:17:57 1736894345
Аноним 29/06/20 Пнд 15:19:16 1736897346
Аноним 29/06/20 Пнд 15:22:02 1736900347
>>1736874
Ну, там обычно смотрят на параметры как ты это решаешь, иногда не дают тебе всех данных чтобы посмотреть насколько ты хикка и ссышь открыть рот и тд. Если не знаешь тему — так и говори, и прямо говори с чем хорошо знаком, это же не егэ, результат энивэй будет зависеть от общего впечатления а не от баллов. Я сам в таком говне с обоих сторон участвовал, хз что в яндексе, но всякого бреда уровня верчения деревьев на досках лично я не видал.

>>1736881
>Да это шутка. Но типа алгоговно учить запарно, могут дать пососать.
Ну тут уж либо ты не ссышь и ходишь по собесам, либо тебе рано или поздно дадут пососать по з/п.
>А чё ты пишешь?
А я вообще выкатился из плюсов в мобилки после пары месяцев практики кое где на плюсах, и с тех пор вижу их только браузя вакансии. Сюда обычно забегаю спросить как там модули поживают.

>>1736891
На го по ощущениям пишут скорее там, где пыха/нода/итд жирные, а жаву лень разворачивать, а не в прям ХУЙЛОАДЕ.
Аноним 29/06/20 Пнд 16:01:44 1736937348
На чем пишут текстовые редакторы? Используют ли для этого графические апи типа opengl или directx? Если нет, то что используют? Хочу написать свой hex редактор, ибо нигде, блядь, вообще нигде, не смог найти нормальный, разве что hxd больше всех понравился, но и там не все идеально для меня. Так же, наверное, не хочу использовать никакие готовые формы типа TextBox и т.п. Как ни странно, инфы я найти на эту тему не смог особо... Ну и сама архитектура редактора интересует велосипедить особо не хочется. В качестве хранимого буфера могу представить какой-нибудь стек. Ну, а для поиска по файлу - обычный поиск подстрок.
Аноним 29/06/20 Пнд 16:07:07 1736943349
Перекатывать будем?
Аноним 29/06/20 Пнд 16:10:09 1736947350
>>1736937
>к же, наверное, не хочу использовать никакие готовые формы типа TextBox и т.п. Как ни странно, инфы я найти на эту тему не смог особо... Ну и сама архитектура редактора интересует велосипедить особо не хочется. В качестве хранимого буфера могу представить какой-нибудь стек. Ну, а для поиска по файлу - обычный поиск подстрок.
На как раз Direct2D или там OpenGL, Рисуют внутри консоли, без виндового API

>>1736943
ноп
Аноним 29/06/20 Пнд 16:13:51 1736956351
>>1736937
>На чем пишут текстовые редакторы?
На чём удобнее конкретной команде/программисту.
>Используют ли для этого графические апи типа opengl или directx?
Ты ебанёшься на шейдерах рисовать гуи, это оверкил.
>Если нет, то что используют?
Гуи фреймворки или пилят свой (если писали игру и дописывают что-то к ней — то на своём слою абстракций или берут какую нибудь готовую либу вроде саблайма на skia).
>Так же, наверное, не хочу использовать никакие готовые формы типа TextBox и т.п. Как ни странно, инфы я найти на эту тему не смог особо... Ну и сама архитектура редактора интересует
5 минут гугла и вот такой вот рещультат
https://chromium.googlesource.com/skia/+/e73aa7573279cda200b80c1a858ae00762a5516b/experimental/editor
Аноним 29/06/20 Пнд 16:17:58 1736960352
>>1736956
>Ты ебанёшься на шейдерах рисовать гуи, это оверкил.

Но ведь уже есть WPF
Аноним 29/06/20 Пнд 16:18:27 1736961353
>>1736937
Со стороны геймдева я бы взял что-то типа freetype для вывода букв, и sdl для обертки над окошками. А может, даже взял бы что-то вроде litehtml для рендера, собственно, html. А то, что ты ищешь, называется text rendering component, и одна из самых распространенных, это Scintilla
Аноним 29/06/20 Пнд 16:20:21 1736963354
>>1736960
Ну есть и есть, сказать-то ты что хотел? Свой гуй фреймворк строить с самого низкого уровня чтобы показывать массив битиков — это оверкил.
Аноним 29/06/20 Пнд 18:17:27 1737067355
>>1736960
Отстой, qml гораздо удобнее. Пользоваться приходится обоими.
Аноним 29/06/20 Пнд 18:28:07 1737077356

Насколько часто ща требуется Qt?

Что вообще ща для интерфейсов в моде?
Аноним 29/06/20 Пнд 18:30:33 1737078357
>>1737077
>Что вообще ща для интерфейсов в моде?
Джаваскрипт.
Аноним 29/06/20 Пнд 18:31:37 1737080358
>>1737078
То есть даже для какого-нибудь потошопа тоже?
Аноним 29/06/20 Пнд 18:44:02 1737089359
>>1735006
Clion по-моему медленнее VS
Аноним 29/06/20 Пнд 18:51:02 1737099360
>>1736436
А builder'ом сейчас пользуются? Там ведь не чистый винапи вроде
Аноним 29/06/20 Пнд 19:04:41 1737110361
Двач, перегружаю operator<< для вывода класса в консоль, но что если мой класс содержит std::wstring? Как этот тип строк выводить в std::ostream?
Аноним 29/06/20 Пнд 19:16:16 1737129362
>>1737110
А, всё, существует std::wostream.
Аноним 29/06/20 Пнд 19:25:07 1737133363
>>1737099
сейчас гуйню на С++ впринципе делают только немцы, дрочащие на кутя, и эстеты. Очень рекомендую освоить шарпы всем крестобогам, отличное дополнение к крестам
Аноним 29/06/20 Пнд 19:25:11 1737134364
Screenshot2020-[...].jpg 435Кб, 1080x2340
1080x2340
>>1737080
Ну смотри что на qt, что какой нибудь пикрелейтед, кишки на крестах, интерфейс на жс.
Аноним 29/06/20 Пнд 19:29:30 1737138365
>>1737133
Шарп довольно удобный, но ксамл говно сраное.
Аноним 29/06/20 Пнд 19:30:20 1737139366
>>1737134
Пользуясь случаем спрошу.

Как всё это скрещивается?

Типа пишется некий графический интерфейс, по задействованию элементов которого запускаются некие функции, написанные на С++?
Аноним 29/06/20 Пнд 19:30:48 1737140367
>>1737133
И мне оч понравился т4, встроенное ПО для генерации кода это супер.
Аноним 29/06/20 Пнд 19:39:02 1737148368
>>1737139
Там qml, ты пишешь очень простой код с вставками на жс, оно дёргает функции на крестах, которые ты специально объявил на подъязыке кюта. Звучит странно но это реально удобно.
И все это можно рисовать мышкой, и добавлять скрипты чтобы автоматом переводить из формата тз в прогу, я очень апнул скорость программирования как допер.
Аноним 29/06/20 Пнд 19:44:43 1737157369
>>1737148
Про объявление я кажется понял, ибо недавно видел пример на хабре.

Поглядел по диагонали и теперь вопросы.
Я создаю игру со стадиями
Интро
Меню
Уровень
Настройки

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

Далее, есть стадия настроек, в которой я могу поменять
Разрешение экрана
Режим экрана
Сложность
Количество кадров

Всё это дело пишется в некий файл конфиг

Возможно ли такое забабахать на qml?
Аноним 29/06/20 Пнд 19:52:12 1737161370
>>1737157
Не, qml это просто gui в твоём случае, почти. Разрешение экрана будет автоматом, а вот остальное... Конфиг наверное будет искаропки, даже от ОС не зависит, может быть в файле, может в реестре, и тебе не важно где.
Аноним 29/06/20 Пнд 19:54:01 1737162371
>>1737157
Хотя в qml есть state machine, я хз насколько тебе подойдёт.
Аноним 29/06/20 Пнд 19:56:12 1737164372
>>1737162
Я про это и говорю. Значит вполне сойдёт.

Я сам осилил сделать интерфейс с кнопками и текстом, но это малость напрягает, ибо больше по механике хочется напрячься.
Аноним 29/06/20 Пнд 22:12:22 1737301373
>>1736528
>>1736509
Долбаебы, кейс то выше смотрите. В этом случае memcpy подтвержденный стандартом метод решения данной проблемы.
Аноним 29/06/20 Пнд 22:53:56 1737341374
>>1737080
У меня при открытии лайтрума вызывается нвидия оверлей, будто драйвер чекает, что это типа игры
Аноним 29/06/20 Пнд 22:54:48 1737342375
>>1737133
А как же рест и жаваскрипт?
Аноним 29/06/20 Пнд 23:07:12 1737350376
>>1737133
This. И C++/CLI есть, если извращенец, и P/Invoke, если не в падлу все интерфейсы два раза переписывать.
Аноним 30/06/20 Втр 00:00:13 1737382377
Аноним 30/06/20 Втр 00:16:00 1737388378
>>1737382
Безопасный язык без GC, ебущий кресты по бенчмаркам, вершина компьютерных технологий и будущее системного программирования - говно? Ох лол.
Аноним 30/06/20 Втр 00:21:17 1737391379
>>1737301
>В этом случае memcpy подтвержденный стандартом метод решения данной проблемы.
Так значит тебе не составит труда притащить определение поведения
Аноним 30/06/20 Втр 00:28:54 1737397380
>>1737350
>C++/CLI
Как на нем сейчас пишут, руками от и до? Убрали ведь шаблон windows forms из VS для c++ после 2010 версии что ли.
Аноним 30/06/20 Втр 01:04:29 1737422381
>>1737388
О, растошизик в тред вернулся, с возвращением.
Аноним 30/06/20 Втр 01:05:38 1737423382
>>1737422
Аргументы будут или от бессилия нечего сказать?
Аноним 30/06/20 Втр 01:12:04 1737425383
>>1737388
Будет подмножеством C++30
Аноним 30/06/20 Втр 01:38:20 1737438384
>>1736604
>>1736749
Это все из-за strict aliasing rule. Если упрощенно, то если указатель видит два указателя несовместимых типов, то он считает что они указывают на разные объекты. Соответственно когда код пишет в первый указатель, компилятор может посчитать что второй не поменялся и соптимизировать чтение из него нафиг.

Вот тут про такие вещи расказано, даже есть пример кода на котором это проявляется (в онлайн компиляторе с дизассемблером, но такое случается только при включении дополните).
https://gist.github.com/shafik/848ae25ee209f698763cffee272a58f8
Аноним 30/06/20 Втр 01:41:13 1737439385
>>1737438
>но такое случается только при включении дополните
но такое случается только при включении дополнительных флагов, насколько я знаю даже gcc по умолчанию позволяет делать type punning с enum.

Вот еще неплохая лекция на эту тему: https://www.youtube.com/watch?v=_qzMpk-22cc
Аноним 30/06/20 Втр 02:01:39 1737446386
>>1737423
Да мне-то зачем.
Я ведь ~свою жену~ плюсы сам пользую и другим не навязываю, а вот ты ходишь по другим тредам и ноешь, что твой раст всем нужен, но все тупые и не используют его.
Аноним 30/06/20 Втр 02:09:24 1737449387
>>1737438
Там совместимые типы.
Аноним 30/06/20 Втр 02:18:15 1737454388
>>1737449
float[3] и struct { float x,y,z; } не совместимые типы
Аноним 30/06/20 Втр 02:29:33 1737461389
>>1737454
Это pod без виртуальной таблицы.
Аноним 30/06/20 Втр 02:53:25 1737469390
>>1737461
Это неважно, в контексте type aliasing понятие "совместимые типы" имеет четкое определение.

https://en.cppreference.com/w/cpp/language/reinterpret_cast

>Informally, two types are similar if, ignoring top-level cv-qualification:
> they are the same type; or
> they are both pointers, and the pointed-to types are similar; or
> they are both pointers to member of the same class, and the types of the pointed-to members are similar; or
> they are both arrays of the same size or both arrays of unknown bound, and the array element types are similar.
> they are both arrays of the same size or at least one of them is array of unknown bound, and the array element types are similar.


Аноним 30/06/20 Втр 03:08:31 1737470391
>>1737342
Мне по работе надо было написать REST сервис - я нашлепал на ASPNet core. Кресты таки для другого. Хотя, в последнее время, меня мучает мысль о том, что 90% нашего софта можно переписать на шарпе а еще есть кернелдрайвер который переписать нельзя. Но остальное то можно.
Аноним 30/06/20 Втр 03:21:08 1737473392
>>1737391
Смотри видео выше, шизан.
Аноним 30/06/20 Втр 03:22:49 1737475393
>>1737469
Двачую, единственный адекват в треде, шизики уже 3 день мусолят и доказывают, что не уб, хотя все пруфы уже 3 раза запощены итт.
Аноним 30/06/20 Втр 03:33:41 1737476394
>>1737469
Это явно не все, потому что тогда любой указатель, любая рефка была бы ub.
int i;
int* r = &i;
А в твоей цитате рассматриваются только пары типов или пары указателей.
Аноним 30/06/20 Втр 03:38:30 1737478395
>>1737476
Посмотри/почитай что я выше запостил.
Аноним 30/06/20 Втр 03:49:57 1737480396
Аноним 30/06/20 Втр 03:52:54 1737483397
Аноним 30/06/20 Втр 03:56:44 1737485398
>>1737483
Кейс не про указатели, а про унион структуры и массива.
Аноним 30/06/20 Втр 04:05:18 1737489399
>>1737483
Дополню что
struct POD { float f;} pod;
float pf = &(pod.f)
Точно не UB.
Сложнее если полей в поде больше, потому что может быть паддинг.
sruct POD2 {
float f1
char[4] possible_padding;
float f2 }
float
pf2 = (&(pod.f))[1]

Но тут вопрос именно в том UB это вполне defined.
Аноним 30/06/20 Втр 04:21:53 1737493400
>>1737489
>>1737485
Изучай матчасть. Я раньше тоже думал, что это норм, но как оказалось нет если точнее то в С норм, а в С++ нет
Аноним 30/06/20 Втр 04:33:59 1737496401
>>1737493
Влпрос не в том норм это или не норм, а в том определенное или неопределенное поведение.
Аноним 30/06/20 Втр 04:38:48 1737497402
>>1737496
ну так может быть тебе стоит изучить плюсы вместо того чтобы фантазировать? Материалы тебе дали.
Аноним 30/06/20 Втр 04:44:00 1737498403
>>1737497
Ну так может ты просто укажешь конкретный пруф на то что это UB, а не будешь просто пердеть в треде?
Аноним 30/06/20 Втр 04:49:28 1737500404
>>1737498
Ох уж эти зумеры с 10ти секундным пределом внимания.
Аноним 30/06/20 Втр 04:52:28 1737501405
>>1737500
Ты там с зеркалом разговариваешь? Может ты не понял, но я тебе уже указал что пруфы "для двух указателей на разные типы" никак не доказывают ub в унионе с под структурой.
Аноним 30/06/20 Втр 05:36:00 1737506406
>>1737501
Еще раз, я не буду тебе объяснять то, что уже много раз разжевано другими людьми, просто потому что тебе лень прочитать текст по ссылке
Аноним 30/06/20 Втр 06:19:30 1737518407
Аноним 30/06/20 Втр 06:57:33 1737526408
Для чего предназначен класс вектор?
Аноним 30/06/20 Втр 08:31:44 1737540409
>>1737526
Для векторов в N-мерном пространстве.
Векторы завезли, а матрицы — нет. В этом весь C++
Аноним 30/06/20 Втр 08:39:42 1737541410
Аноним 30/06/20 Втр 09:30:20 1737569411
>>1737541
>Нет.
Чё ты скучный такой))0
Чай не ньюфаг-тред чтобы на такие вопросы отвечать правильно.
Аноним 30/06/20 Втр 10:19:33 1737605412
>>1737388
Раст это такая современная Ада. В лучшем случае будут на нем забивать координаты в ядреные ракеты, в худшем - отправится вслед за прологом.
Аноним 30/06/20 Втр 10:46:18 1737624413
image.png 309Кб, 450x300
450x300
>>1737423
Дак там это тамщета фаерфокс хуя пососала с растом в прочем как и любой кто его действительно использовал. А вообще язык хуйня неимоверная, какую еще поискать надо, что это блять за убийца C++, который безопасно работает с памятью? Ты там ебу дал?
Аноним 30/06/20 Втр 11:08:20 1737641414
Аноним 30/06/20 Втр 11:25:23 1737657415
image.png 11Кб, 507x237
507x237
image.png 11Кб, 494x232
494x232
Аноним 30/06/20 Втр 11:27:54 1737661416
Аноним 30/06/20 Втр 11:35:48 1737670417
>>1737624
>Дак там это тамщета фаерфокс хуя пососала с растом
соус?
Аноним 30/06/20 Втр 11:57:02 1737691418
>>1737670
Он уже давно эту хуйню несет, пруфов так и нет. Хуево быть сектантом.
Аноним 30/06/20 Втр 12:04:34 1737694419
1.png 36Кб, 1614x354
1614x354
2.png 42Кб, 1614x354
1614x354
>>1737657
Так что это получается, плюсы тоже нинужны?
Аноним 30/06/20 Втр 12:15:37 1737698420
Аноним 30/06/20 Втр 12:27:01 1737715421
>>1737694
Так а че это ты привел две совершенно разные категории? Продавец вроде бы не заявлялся как "будещее системного программирования".
Аноним 30/06/20 Втр 12:35:51 1737729422
>>1737624
И где фф пососала хуй с растом? В чем это, блять, выражается?
>безопасно работает с памятью
тащемта да
Аноним 30/06/20 Втр 13:15:09 1737770423
>>1737506
> у меня нет пруфа, я просто верю что там ub
Ладно.
Аноним 30/06/20 Втр 13:29:00 1737782424
>>1737388
Язык с unsafe - не безопасный по определению.
Аноним 30/06/20 Втр 13:44:44 1737790425
>>1737782
Любой современный язык небезопасен, так как компилятор содержит ошибки (статистически должен из-за сложности) и может сгенерировать некорректный код.
Аноним 30/06/20 Втр 14:03:01 1737810426
>>1737782
Что тебе мешает не абузить ансейф?
Что тебе мешает тестить точечно ансейф код, повышая шанс отлова опасного бага? Ведь в С/С++ весь код - UB, а в расте хотя бы знаешь где может быть заложена свинья.
Есть проекты и без ансейф кода вообще, он не везде нужен.
Аноним 30/06/20 Втр 14:05:40 1737813427
>>1737790
Удачи тебе найти переполнение буфера в джаве или сисярпе, лол (они уже могут компилиться в нативные бинари). Не, в самой инстраструктуре могут быть такие дыры, ибо она написана на С/С++, но есть языки, которые неуязвимы к ошибками памяти (тащемта любой managed язык)
Аноним 30/06/20 Втр 14:14:04 1737819428
>>1737133
Ой, да конечно блет. C# это кал который нормально работает только под вундоуз. Зачем, когда есть wxWidgets, или накрайняк КУТЭ?

А вообще, зачем писать гуи в принципе... всё в веб уползает.
Владимир Владимирович Путин 30/06/20 Втр 14:51:28 1737845429
Реально ли фрилансить на c++?
Аноним 30/06/20 Втр 15:06:55 1737864430
Аноним 30/06/20 Втр 15:08:35 1737868431
>>1737845
Было пару раз в 2018 брал заказы, на QT быстренько нашлепать приложение, однако потом это перерастало в обычную работу. Но это большая редкость.
Аноним 30/06/20 Втр 15:10:03 1737872432
>>1737810
Ансейф будет в либе, которую юзает другая либа, а проявляться будет в твоем коде который это вызывает. Ну и в расте тоже есть ub.
Аноним 30/06/20 Втр 15:13:27 1737876433
>>1737819
Дедуль, неткор привет передает
Аноним 30/06/20 Втр 15:28:15 1737896434
>>1737872
Ну будет и будет, это не ответ на вопрос почему тебе надо на это ложить хуй.
Аноним 30/06/20 Втр 15:31:01 1737900435
>>1737896
Так ты и в крестах не клади.
Аноним 30/06/20 Втр 15:33:33 1737902436
>>1737900
Ну использование крестов это уже по умолчанию ложение хуя.
Аноним 30/06/20 Втр 16:11:26 1737955437
>>1737872
Интересная теория.
А какой в расте есть UB? Можно примеры?
Аноним 30/06/20 Втр 16:14:08 1737958438
Аноним 30/06/20 Втр 16:20:25 1737969439
>>1737876
>неткор

Кто-то это говно вообще юзает помимо виндузятников? Понятно что у майкрософта кучу gachi-технологий которые никому не упали
Аноним 30/06/20 Втр 16:21:50 1737971440
>>1737955
Это не теория, с actix именно так и произошло.
Аноним 30/06/20 Втр 16:30:29 1737984441
Чет не могу вкатиться в С++ или C#

Скачал курсы по обоим, а там просто трата времени бессмысленное. Какие-то дроби, числа огромные. И самое главное, что там нихуя не объясняется что они делают. Просто блять пишут всякие дроби, а потом говорят - это дроби. Ну ахуеть! Я понял, что бывают разные переменные, но причем тут всякие дроби? Вы что программируете дробями? Пиздец нахуй. Нечто подобное помню было когда изучал HTML. Там тоже какую-то хуйню втирали, которую нигде не используют. А верстать на нем я научился когда делал себе одностраничный сайт. Вот только с С# и C++ так не получается. Помогите с чего начать, как научиться использовать эти языки, чтобы потом дополнять нехватку знаний дробями из курсов?
Аноним 30/06/20 Втр 16:33:02 1737993442
Аноним 30/06/20 Втр 16:34:46 1737997443
>>1737958
ну, UB только в ансейф блоках
Вне ансейфа UB нет
Аноним 30/06/20 Втр 16:43:07 1738013444
Аноним 30/06/20 Втр 16:48:34 1738025445
>>1737997
Протекающие абстракции.
Аноним 30/06/20 Втр 17:07:41 1738080446
Аноним 30/06/20 Втр 17:13:30 1738102447
>>1737969
дохуя кто, отличная штука.
Аноним 30/06/20 Втр 17:39:49 1738152448
>>1735038
>Даунгрейд
Читабельность когда, с форлупами и итераторами где много конструкций заебешься отслеживать что и где, а тут такие красивые пайпы
Аноним 30/06/20 Втр 18:30:40 1738197449
>>1738152
Главное не написать blabla | 0 вместо blabla, 0, зато красиво.
Аноним 30/06/20 Втр 18:48:03 1738215450
Двач, как вообще сжатие работает? Планирую засовывать в SQLite текст по 50кб, можно ли перед отправкой его как-нибудь сжимать?
Аноним 30/06/20 Втр 18:57:10 1738233451
Аноним 30/06/20 Втр 18:58:29 1738235452
>>1738215
Читни про алгоритм Хаффмана и информационную энтропию.
Аноним 30/06/20 Втр 19:01:20 1738238453
>>1738215
Грубо говоря, в языке всего 32 буквы, а в байте 256. Значит уже на букву надо около 5 битов, а не 8. Дальше, буквы встерчаются с разной частотой. Гласные ОЕАИ занимают 33% текстов, а цщф - меньше процента. Значит, можно частые буквы кодировать 2-3 битами, а редкие более длинными последовательностями.
zlib, сейчас вроде еще brotli
Аноним 30/06/20 Втр 20:18:06 1738324454
Безымянный22.png 64Кб, 1197x900
1197x900
Почему так?
C++20 уже вышел?
Аноним 30/06/20 Втр 20:43:27 1738360455
>>1738324
Не обязательно ждать окончательного утверждения нового стандарта, чтобы уже начинать писать компилятор, реализуая сначала устоявшиеся фишечки, которые редизайнить потом не будут.
Аноним 30/06/20 Втр 20:44:20 1738362456
Двач, как из stringstream удалить последний символ std::endl без перевод stringstream в текст?
Аноним 30/06/20 Втр 20:51:07 1738371457
>>1738362
Гугл говорит, что никак.
Аноним 30/06/20 Втр 20:53:25 1738374458
>>1738362
Это же поток, там должна быть перемотка, не?
Аноним 30/06/20 Втр 20:58:14 1738380459
>>1738371
Как тогда сделать что-бы строка из stringstream переместилась в мою строку без копирования? std::string&& string = stringstream.str(); сработает копирование или перемещение? Я немного не в теме всех этих перемещений.
https://en.cppreference.com/w/cpp/io/basic_stringstream/str
Аноним 30/06/20 Втр 21:12:49 1738399460
Аноним 30/06/20 Втр 21:16:30 1738404461
Аноним 30/06/20 Втр 22:34:41 1738470462
Правда что для оптимистик локов больше подходит спинлок вместо мьютекса?
Аноним 01/07/20 Срд 00:13:14 1738521463
>>1738470
Я бы посоветовал вообще не юзать спинлок если ты не уверен на 100% что делаешь. Понять нужен ли он тебе можно по следующим пунктам:
— У тебя мало потоков (желательно <4, иначе накладных расходов из-за дрочащих циклы потоков будет явно больше чем от переключения контекста каким нибудь мутексом), т.е. использовать с какими нибудь корутинами шедулящимися по потокам точно хуёвая идея;
— Изменение быстрое (по крайней мере не особо жирное, если будешь переиндексировать всю базу эти спинлоки отправят тебе процессор нахуй в троттлинг).

Насколько я понимаю понятие оптимистик лока — да, но если хочешь спать спокойно лучше выбери что нибудь более предсказуемое.
Аноним 01/07/20 Срд 02:35:25 1738578464
Аноним 01/07/20 Срд 03:28:42 1738595465
Аноним 01/07/20 Срд 03:43:53 1738600466
>>1738521
>в троттлинг
Есть инструкция pause для этого, специально для спинлоков чтобы такого не было
Аноним 01/07/20 Срд 11:22:06 1738730467
>>1738595
Комитет его утвердил в Праге в феврале. Де-факто стандарт 20 готов.
Аноним 01/07/20 Срд 12:33:28 1738803468
Можно задать sizeof для указателя, как это автоматически делается для статического массива?
Аноним 01/07/20 Срд 12:36:43 1738810469
Аноним 01/07/20 Срд 13:15:35 1738857470
Двач, можете пояснить в двух словах где надо ставить const, а где нет.
Нужен ли const параметрах функций для фундаментальных типов и нужен ли он для переменных в телах функций?
Аноним 01/07/20 Срд 13:37:51 1738876471
>>1738857
1. литеральные строки автоматически const
2. желательно ставить const перед таблицами констант
3. все указатели на сущности, которые ты не собираешься менять, объявлешь как "const foo ⛧"
4. опционально
const int pi = 4; // здесь const запрещает pi++
Аноним 01/07/20 Срд 14:10:33 1738904472
>>1738857

Вообще, везде где только можно
Аноним 01/07/20 Срд 14:34:24 1738927473
>>1738521
while (m_locked.test_and_set(std::memory_order_acquire)) std::this_thread::yield();
Аноним 01/07/20 Срд 14:37:29 1738930474
>>1738857
const нужен там, где ты внезапно не собираешься менять содержимое.
Например: если у тебя функция возвращает длину строки, не меняя ее, то size() const. А если ты делаешь функцию set_value(int x) которая меняет состояние объекта, то не она не const.
Параметры функций примитивных значений не надо - они передаются копией по значению. То что ты поменяешь параметр внутри функции, внутри функции и останется. Если же ты передаешь объект внутрь функции, то опять же, если ты гарантируешь что не будешь его менять, а только считаешь из него данные - то const. Если же ты именно меняешь полученный объект - то не const.
Зачем он переменным - загадка. Зачем заводить константную переменную внутри функции? Константы надо хранить где-то в другом месте. Завести отдельный класс или неймспейс.
Аноним 01/07/20 Срд 14:43:47 1738934475
>>1738930
Спасибо за обширный ответ.
Аноним 01/07/20 Срд 14:52:48 1738941476
Аноним 01/07/20 Срд 15:07:35 1738959477
Константность влияет на производительность?
Аноним 01/07/20 Срд 15:09:35 1738962478
>>1738959
Ну, наверное компилятор сможет оптимизировать больше, если он видит что это константа. С другой стороны, есть const_cast.
Аноним 01/07/20 Срд 15:10:30 1738964479
>>1738959

Да, но при компиляции с -O2 конпилятор чаще всего расставит за тебя const там где ты не поставил, поэтому ставишь больше для себя
Аноним 01/07/20 Срд 15:36:02 1739001480
>>1738959
Обычно почти не влияет. Она влияет на корректность.
Аноним 01/07/20 Срд 17:10:16 1739145481
>>1738962
const_cast нужен, чтобы приводить неконстантные вещи к константным в стиле "современных плюсов". Снятие константности таким образом ведет к UB, что и написано в стандарте.
Компилятор как раз может конст каст соптимизировать и положить значение в read only память.
Аноним 01/07/20 Срд 19:09:53 1739292482
>>1739145
>приводить неконстантные вещи к константным
А смысл? Если они внутри либы остаются неконстантными. А значит это все равно UB когда их поменяют.
Аноним 01/07/20 Срд 19:21:45 1739309483
Аноним 01/07/20 Срд 21:51:48 1739452484
>>1738876
> const int pi = 4; // здесь const запрещает pi++
Дедуля, все уже давно constexpr пишут, обновляйся
Аноним 01/07/20 Срд 22:07:28 1739469485
>>1738930
> Зачем он переменным - загадка. Зачем заводить константную переменную внутри функции?
Что значит зачем? Затем же, зачем и параметры передавать по константной ссылке.
auto const values = GetValues();

Единственный случай, когда не нужно - это в RVO
Аноним 01/07/20 Срд 22:09:47 1739471486
>>1738964
vector<int> a;
a.push_back(1);
...дальше a не меняется...

Удачи в оптимизации, лол
Аноним 02/07/20 Чтв 00:24:11 1739541487
15515601615950.jpg 60Кб, 640x425
640x425
Блджад, я не понимаю. Подскажите как организовать проект, чтобы можно было его одной кнопкой собирать, генерировать документацию, устанавливать зависимости и т.п. Хотя бы последнее.

Хочу сделать это с помощью cmake. Желательно версии 3.10, но если очень надо, можно и свежую скомпилировать.
Сейчас есть следующие директории (может это надо как-то реорганизовать, я не знаю):
build
doc
test
lib ­— сюда хочу запихивать сторонние библиотеки
src — собственно, исходники проекта. Вероятно тут будет лежать только main.cpp, а остольное распихано по директориям типа src/core/, src/server/ и т.п.
Сейчас это собирается баш скриптом, который выглядит так
cd build
cmake ..
cmake --build .
cd ..
doxygen Doxfile # генерирует документацию для всего, что в src/*

CMakeLists.txt в корневой директории выглядит так https://pastebin.com/VBWVG2ZY .

Есть одна либа с гитхаба, которую я хочу использовать. Если сделать git clone, то создастся следующая структура
YetAnotherLib/
YetAnotherLib/doc/
YetAnotherLib/cmake/
YetAnotherLib/CMakeFile.txt
...
YetAnotherLib/YetAnotherLib/ — собственно, сами исходники.

Сейчас я в main.cpp могу написать
#include "core/MyObj.h"
Но не могу написать
#include "YetAnotherLib/YetAnotherObj.h"
А хотелось бы.
Не "YetAnotherLib/YetAnotherLib/YetAnotherObj.h" и не "lib/YetAnotherLib/YetAnotherLib/YetAnotherObj.h". Тем более, что в той либе есть инклюды типа "YetAnotherLib/subdirectory/SomeOtherObj.h", так что даже если тупо скопиастить директорию с исходниками или всю директорию с гита в src/, собираться не будет.

Джва часа проковырялся с этим, но так и не понял.
Аноним 02/07/20 Чтв 00:52:06 1739561488
>>1739541
> устанавливать зависимости
ахахах
АХАХАХ
АХАХАХАХАХАХ

Я как раз решил сегодня обмазаться conan'ом и vcpkg'ом, уже часа 3 копаюсь. Первый работает так, будто я взял альфа-версию, второй - будто бету.
Аноним 02/07/20 Чтв 01:47:57 1739600489
>>1739561
Ладно, vcpkg в ебанной вижуалке работает нормально, с cmake+mingw же полный пиздец.
Аноним 02/07/20 Чтв 02:28:23 1739605490
>>1739469
Почему параметры это как раз понятно. Функция в другом файле, написана другим человеком.
А тут то зачем? Если только склероз и ты забыл зачем получал переменную.
const int a = get2()
const int b = a * a
Аноним 02/07/20 Чтв 02:38:37 1739608491
>>1739561
Тоже конаном недавно пользовался, все завелось под виндой. Чего то не было в бинарном виде в дебажном виде, собрал из сорцов. Добавлял cpr и openssl чтобы качать сайты и какую то либу чтобы обрабатывать изобоажения.
Аноним 02/07/20 Чтв 07:06:29 1739633492
>>1739605
> Почему параметры это как раз понятно. Функция в другом файле, написана другим человеком.
То есть в своих функциях ты не по константой ссылке данные передаёшь?
> А тут то зачем?
Очевидно, чтобы подчеркнуть тот факт, что ты эти данные собираешься только читать
Аноним 02/07/20 Чтв 08:44:55 1739650493
image.png 213Кб, 651x620
651x620
Только начал изучать списки в C++ но понять не могу что за что отвечает, можете помочь сделать список для примера?
Аноним 02/07/20 Чтв 11:11:52 1739703494
>>1739650
О, на наши лабы в универе похоже, только у нас пунктов в 1.5 - 2 раза больше.
Аноним 02/07/20 Чтв 11:14:40 1739706495
>>1739650
Пиши структуру, которая будет содержать эту структуру и две ссылки на саму себя. Создаешь новую структуру оператором new и задаешь для нее предыдущую, для предыдущей следующую.
Аноним 02/07/20 Чтв 11:32:22 1739722496
>>1739650

Да ну, чел, попытайся сам сделать. Отучивайся быть пидором. Сделай отдельно структуру и эти алгоритмы добавления удаления хуения и скинь код сюда если где-то ошибка есть или чет конкретное непонятно.
Аноним 02/07/20 Чтв 11:41:06 1739735497
>>1739722
так это действительно сложно, я пытался найти что то в тырнетах там инфы 0
Аноним 02/07/20 Чтв 11:46:13 1739741498
>>1739735
Не умеешь искать. У меня однокурсники целиком классы списка находили. Но если совсем не можешь, используй STL, скажи, что по постановке задачи все верно.
Аноним 02/07/20 Чтв 12:02:18 1739752499
>>1739735

Да не нужна тебе инфа никакая. Для этого. Просто создай структуру, и сделай 4 функции.

1. Создать первый элемент списка. Принимает параметры(все кроме указателй), инициализирует, сохраняет. Возвращает указатель на структуру
2. Добавить элемент. Принимает первый(но это не точно) элемент списка, идёт по указателям до конца(пока не nullptr) и когда доходит до конца добавляет.
(Первые 2 можно объединить)
3. Вывод всего списка.
4. Удаление всего списка из памяти. Либо сначала, либо с конца, как хочешь.

А после того как готово будет можно дальше идти.
Аноним 02/07/20 Чтв 12:03:01 1739753500
>>1739561
>>1739541
Не хочу использовать нормальную вижуал студию, хочу жрать дерьмо и пердолькаться
Аноним 02/07/20 Чтв 12:10:53 1739765501
>>1739650
Что значит "что за что отвечает"? Там же подписано - за наименование лекарства отвечает char* name
Аноним 02/07/20 Чтв 12:45:08 1739782502
>>1739753
Ну да, вместо того, чтобы вручную качать каждую либу, вручную искать её зависимости и собирать, а затем в вижуалке все эти либы вручную прописывать, люди используют vcpkg, который всё это делает сам. Ух, пердолинг так пердолинг.
Аноним 02/07/20 Чтв 13:01:17 1739800503
>>1739782
ну у парней проблемы с vcpkg за пределами вижуалстудии (что странно).
Аноним 02/07/20 Чтв 13:03:45 1739805504
Двач, как сделать параметр функции для std контейнеров? Т.е. что-бы мог принимать любые контейнеры std.
Аноним 02/07/20 Чтв 13:06:21 1739808505
>>1739805
А ещё лучше контейнеры с типом std::string, хотя хотелось бы посмотреть на оба варианта.
Аноним 02/07/20 Чтв 13:08:48 1739812506
Аноним 02/07/20 Чтв 13:12:18 1739815507
>>1739753
Сейчас бы завязываться на непереносимый формат проекта работающий в одной ОС..
Аноним 02/07/20 Чтв 13:14:12 1739816508
>>1739815
Сейчас бы не знать про Cmake.
Аноним 02/07/20 Чтв 13:17:35 1739821509
>>1739816
Ну и нахуя тогда студия?
Аноним 02/07/20 Чтв 13:18:53 1739822510
>>1739821
Ну можешь в блокноте программировать, мне без разницы.
Аноним 02/07/20 Чтв 13:20:46 1739826511
>>1739815
Щас бы дрочить на эфемерную кроссплатформенность для своего проекта, которая нахуй не нужна почти нигде.
Аноним 02/07/20 Чтв 13:22:52 1739827512
>>1739826
Сейчас бы не знать что почти всё кросплатформенное и нужно следовать стандартам если твой проект не нахуй никому не нужен.
Аноним 02/07/20 Чтв 13:23:32 1739829513
>>1739827
>Сейчас бы не знать что почти всё кросплатформенное
Сейчас бы не знать что сейчас почти всё кросплатформенное
Аноним 02/07/20 Чтв 13:24:07 1739830514
>>1739826
А зачем брать c++ если не пользоваться кроссплатформенностью???
Аноним 02/07/20 Чтв 13:25:50 1739834515
>>1739830
Сейчас я хуй знает, 2 додика каких-то, один сейчас не знает про cmake, другому сейчас кросплатформенность не нужна.
Аноним 02/07/20 Чтв 13:30:24 1739838516
>>1739827
Библиотеки - да, коммерческие проекты - уже сильно сильно реже.

>>1739830
Скорость\легаси
Аноним 02/07/20 Чтв 13:38:05 1739846517
>>1739650
Делай все по частям, по шагам. В этом и есть смысл программирования. Что такое указатели знаешь? Что такое new/delete? Ну вот у тебя есть структура, там кроме данных есть указатель на следующую запись списка и на предыдущюю. Включай логику, рисуй схемы. Каким может быть указатель? Правильным на другую запись, или нулевым, например в последней записи. Как пользоваться списком? Надо где-то завести указатель на первую запись, остальные ты сможешь получить переходя по указателю на следующую. Как удалить список в памяти? Надо удалить каждую запись, начиная с первой. Как вставить элемент в конец списка? Дойти до последнего элемента, там следующий будет nullptr, вписать туда указатель на новый элемент. Как удалить элемент из середины списка? Надо чтобы список остался в согласованном состоянии, значит надо изменить указатели так, чтобы указатель предыдущего начал указывать на следующий (и наоборот), а на этот теперь никто не ссылается и его можно удалить delete. Как сохранять в файл? Ну видимо открыть файл и записать каждую запись списка по порядку, каждое поле по порядку. И т.д.
Аноним 02/07/20 Чтв 13:44:11 1739849518
>>1739805
В stl нет абстрактных классов, ни как скорее всего.
Аноним 02/07/20 Чтв 13:44:56 1739850519
>>1739826
> эфемерную
Сейчас бы не мочь задеплоить свой проект на сервер с линуксом, потому что не дрочил на кроссплатформенность и делал всё для винды.
Аноним 02/07/20 Чтв 13:46:50 1739852520
>>1739850
Когда в требованиях нет поддержки линукса - это никогда не наступит.
Аноним 02/07/20 Чтв 13:49:07 1739855521
>>1739805
Можно сделать, чтобы принимались любые контейнеры с нужными методами. Утиная типизация в C++, лол.

template <typename T>
void f(T t)
{
t.push_back('x');
}

std::vector<char> vc;
std::string s;
f(s);
f(vc);
Аноним 02/07/20 Чтв 13:52:29 1739859522
>>1739852
> требованиях
А, так ты из этих. Ещё скажи, что деньги не пахнут.
Аноним 02/07/20 Чтв 13:52:48 1739860523
>>1739859
> деньги не пахнут
wut?
Аноним 02/07/20 Чтв 14:03:02 1739866524
02/07/20 Чтв 14:03:11 1739867525
unnamed.gif 6Кб, 437x429
437x429
>>1739852
Выжигал бы вас напалмом.
Аноним 02/07/20 Чтв 14:05:10 1739869526
>>1739852
Очень противно качать какую то либу с гитхаба, а там расширения компилятора или уникальные типы. На малиночку-ардуиночку не засунуть. Нормально делай нормально будет.
Аноним 02/07/20 Чтв 14:07:07 1739871527
>>1739869
я писал выше про проекты, а не про либы. Либы должны быть кроссплатформенными по возможности. А вот коммерческий проект пилить под то, где оно нахуй никогда не потребуется - смысла нет.
Аноним 02/07/20 Чтв 14:07:26 1739872528
>>1739867
пока ты сжег только свой анус
Аноним 02/07/20 Чтв 14:17:10 1739879529
>>1739872
Слезы win-блядей потушили его.
Аноним 02/07/20 Чтв 14:26:48 1739887530
>>1739866
Неплохо, а я уже такую хуйню нашел/написал.
template<typename T, typename Enable = void>
class X;

template<class T>
class X<T, typename std::enable_if<
std::is_same<T, std::vector<std::string>>::value ||
std::is_same<T, std::list<std::string>>::value>::type>
{
T t;

public:
X(T t) {
this->t = t;
}

void push_back(std::string value) {
t.push_back(value);
}
};
Аноним 02/07/20 Чтв 14:31:50 1739889531
>>1739866
Только как получить доступ к параметру, который мы передали?
Аноним 02/07/20 Чтв 14:33:01 1739890532
>>1739879
красноглазый даун не человек, а так, лишь пердоля
Аноним 02/07/20 Чтв 14:42:28 1739899533
>>1739889
VS не видел имя параметра, добавил к нему &, сразу увидел. Потом убрал &, продолжил видеть.
Аноним 02/07/20 Чтв 15:49:29 1739941534
evening-paintin[...].jpg 176Кб, 1000x825
1000x825
>>1739541
Бамп. Как мне сделать, чтобы проект собирался хотя бы.
Аноним 02/07/20 Чтв 16:06:21 1739957535
>>1739941
Перестать быть макакой для начала.
Аноним 02/07/20 Чтв 16:29:09 1739974536
>>1732244
Сереженька, кушать иди)
Аноним 02/07/20 Чтв 20:12:22 1740104537
>>1739805
ИТЕРАТОРЫ
Т
Е
Р
А
Т
О
Р
Ы
Аноним 02/07/20 Чтв 22:35:57 1740234538
>>1740104
Что за outdated советы такие? В 2к20 все юзают ranges.
Аноним 03/07/20 Птн 01:10:22 1740372539
>>1740234
Ещё не юзают. Скинь сниппет, как это сделать рэнжами
Аноним 03/07/20 Птн 01:34:46 1740383540
>>1740234
Зачем мне ranges, если хватает итератора?
Аноним 03/07/20 Птн 09:43:23 1740467541
>>1740104
а я чот не понял, можешь пример написать?
Аноним 03/07/20 Птн 10:03:07 1740473542
>>1740467
Посмотри на шаблоны из stl.

template<typename It>
void for_each(It beg, It end) {}

template<typename It>
void add_result(It to) {}
Аноним 03/07/20 Птн 10:46:33 1740487543
>>1739650
Можно хоть обчитаться, но все равно обучение сводится к методу проб и ошибок.
Алсо я читал, что когда еще мышечная память задействована наряду с мозгом, запоминание гораздо эффективнее, т.е. надо вручную все вводить, а не копировать куски.
Аноним 03/07/20 Птн 13:58:03 1740612544
>>1739805
В std у всех контуйнеров похожий api, реализуешь через темплейты. Можешь делать тайп дедакшин ещё.
Аноним 03/07/20 Птн 17:52:01 1740934545
image.png 107Кб, 946x183
946x183
Стоит смотреть или лучше книги читать?
Аноним 03/07/20 Птн 18:42:18 1740976546
>>1740934
> лучше книги читать
Аноним 03/07/20 Птн 19:43:52 1741039547
>>1740934
Если какая-то вещь не понятна, то можно глянуть. А весь плейлист это ебнешься, подача информации очень медленная по сравнению с книгой.
Аноним 03/07/20 Птн 22:25:51 1741194548
.png 31Кб, 894x716
894x716
Раз в год запускаю студию чтобы что-то собрать и в очередной раз кампания с капитализацией триллион долларов не смогла сделать авторизацию.
Аноним 03/07/20 Птн 22:40:03 1741205549
>>1741194
Федя, зачем тебе авторизация в IDE? Пиздец, что эти ёбаные отсоциальные сети делают с людьми
Аноним 03/07/20 Птн 22:40:11 1741206550
>>1741194
Им не до этого. Нужно пилить ИИ, совместное редактирование и делать интеллисенс ещё медленнее.
Аноним 03/07/20 Птн 23:02:13 1741222551
>>1741205
Без регистрации нельзя пользоваться.
Аноним 03/07/20 Птн 23:13:39 1741227552
>>1741194
У меня как-то заблочили учётку и попросили телефон для разблокировки, даже удалить учётку без указания номера нельзя. И с тех пор я регаюсь там на 10-минутное мыло, и каждый раз, когда учётку блочат, регаюсь заново.
Аноним 03/07/20 Птн 23:28:29 1741237553
>>1741194
Там надо ie11 и какие то обновы. Так что не они не смогли, а ты.
Аноним 03/07/20 Птн 23:47:33 1741244554
>>1741222
В смысле блядь?
слышал, похожая хуйня есть в установщике десятки, но там можно кабель выдернуть и появится кнопка пропустить
Аноним 03/07/20 Птн 23:51:03 1741246555
>>1741237
Нет, оказалось что учётка по какой-то причине забанена.
Пока через браузер не зайдёшь - не узнаешь.
Аноним 04/07/20 Суб 01:04:18 1741266556
>>1739600
>с cmake+mingw же полный пиздец.
Поставь MSYS2, там все искаропки, пакман как в арчике, вообще пердольства нет. Куча пакетов под небо и аллаха, даже для Qt статически собранный пакет есть.
Аноним 04/07/20 Суб 01:07:49 1741267557
>>1739852
>Когда в требованиях нет поддержки линукса
В РФ везде сейчас поддержку астралинукс для софта требуют.
Аноним 04/07/20 Суб 02:53:47 1741283558
>>1741266
Поставил, понравилось, спасибо. Раньше только cygwin пробовал, в котором пакеты ставятся очень странно, ну и в git-bash нет менеджера пакетов.
Аноним 04/07/20 Суб 13:13:48 1741488559
>>1741267
> работать на внутренний рынок
Аноним 04/07/20 Суб 15:10:14 1741681560
Двач, как сделать шаблонную функцию что-бы она могла принимать только однобайтовые типы?
Аноним 04/07/20 Суб 15:35:16 1741716561
>>1741681
static_assert с проверкой sizeof.
Аноним 04/07/20 Суб 15:55:05 1741727562
>>1741716
Это такое извращенное чувство юмора?
Аноним 04/07/20 Суб 16:00:07 1741732563
>>1741727
Что не так? Норм же совет
мимо
Аноним 04/07/20 Суб 16:10:20 1741746564
>>1741732
Наверное, это намёк на type traits, но в изначальном посте сказано ясно - однобайтовые типы. Пусть это хоть какой-нибудь float8_t.
Аноним 04/07/20 Суб 16:33:50 1741786565
Напомните тип, позволяющий принимать функции и вектор и массив
Аноним 04/07/20 Суб 16:38:17 1741800566
Аноним 04/07/20 Суб 16:39:26 1741803567
Аноним 04/07/20 Суб 16:40:18 1741807568
Давч, напомните мне, как два однобайтовых значения в памяти [10] [27] (в hex это [16] [39]) формируют число 10000?
Аноним 04/07/20 Суб 16:42:30 1741814569
Аноним 04/07/20 Суб 16:43:34 1741820570
>>1741814
А на калькуляторе это можно как-то считать?
Аноним 04/07/20 Суб 16:46:11 1741825571
>>1741820
Смотря какой калькулятор.
39*256 + 16
Аноним 04/07/20 Суб 17:08:31 1741861572
>>1741803
Си тред два блока вниз.
Аноним 04/07/20 Суб 17:09:26 1741863573
Аноним 04/07/20 Суб 17:13:07 1741864574
>>1741863
Endianess бывает только одна - little.
Аноним 04/07/20 Суб 17:22:18 1741878575
Аноним 04/07/20 Суб 17:55:00 1741923576
>>1739471
Потому что std::array<int, 1> a
Аноним 04/07/20 Суб 18:13:15 1741943577
>>1741194
В очередной раз кодер 300ккк/нс не смог отличить авторизацию от аутентификации
Аноним 04/07/20 Суб 18:52:33 1741969578
Аноним 04/07/20 Суб 19:10:26 1741979579
>>1741923
vector<int> a = GetValuesFromOtherLib();
a.push_back(1);

Молодец, доебался хотя бы
Аноним 04/07/20 Суб 19:12:39 1741980580
изображение.png 8Кб, 583x240
583x240
Нет времени сейчас читать книги, потому только в них есть. Подскажите как верно интсанцировать функции, в том числе, которые возвращают некоторое значение. Всё, что нашёл, это хабр, но этого недостаточно.
Аноним 04/07/20 Суб 19:36:01 1741994581
Аноним 04/07/20 Суб 19:39:00 1741995582
>>1741994
Путаю, а она невозможна что ли для функций возвращающих значение?

Для пустого типа то я умею делать
Аноним 04/07/20 Суб 19:42:26 1741996583
qeq.png 29Кб, 681x434
681x434
Аноним 04/07/20 Суб 19:45:04 1742000584
>>1741996
Да, это. Но почему низя прост ниже объявить список типов для специализации, как я хотел выше или как предлагают для функций не возвращающих чего-то?
Аноним 04/07/20 Суб 19:47:40 1742001585
>>1742000
ты либо делаешь специализацию, как это сделал я, либо обьявляешь нужную тебе функцию без какого-либо отношения к тимплиту, т.к. при overload resolution выберется именно функция, а не тимплит по приоритетам. Третьего не дано.

Я не совсем понимаю, что такое список типов для специализации. Нужна специализация - пиши, нужна generic специализация для нескольких типов? Ебашь SFINAE, или концепты.
Аноним 04/07/20 Суб 19:56:08 1742003586
>>1742001
Понял, для меня и концепты и SFINAE не нужны, следовательно обойдусь целым случайным числом.

С ужасом подозреваю манускрипты, которые пишут таким образом, но не просто так прогеры деньги большие получает.
Аноним 04/07/20 Суб 20:02:13 1742009587
>>1742003
это всё не так сложно, как кажется. Правда в реальной жизни редко пригождается.
Аноним 04/07/20 Суб 20:05:48 1742011588
>>1742009
По мере надобности, я не настолько йоба прогер, чтобы использовать такое. Уже не первый раз натыкаюсь, даже читал у Страуструпа, на невозможность перегрузки по возвращаемому типу, что странно и вроде бы даже понятно.
Аноним 04/07/20 Суб 20:07:57 1742012589
qeq.png 30Кб, 688x430
688x430
>>1742011
а, блядь, я наконец-то понял о чем ты. Специализировать можно, а вот перегружать - низя, т.к. overload resolution не поймет, что конкретно ты хочешь.
Аноним 04/07/20 Суб 21:25:27 1742072590
Котаны, короче пожилые ммодрочеры решили вкатиться в С++, так как мы уже хуеву туч лет играем в ММО совместно, решили и совместно ворваться в С++. Мы не знаем никаких языков программирования, стоит ли начинать именно с С++?

Книжка из шапки подойдет для коллективного вката?
Аноним 04/07/20 Суб 21:58:22 1742085591
>>1742072
Зачем вам этот вкат? Если вы хотите сменить карьеру - то С++ это один из худших возможных вариантов, в связи с отсутствием джуновских позиций.

Если чисто для себя порофлить - тогда ок, и с С++ начинать тоже вполне ок. Книги в шапке говно, но я вообще не видел ни одной нормальной книги по С++ для новичков.
Аноним 04/07/20 Суб 21:58:35 1742086592
>>1742072
C++ - ебануться какой сложный язык, и многие, кто начинает с него, потом забивают на программирование. Но если достаточно усидчивые - дерзайте.
Аноним 04/07/20 Суб 22:54:16 1742122593
>>1742086
Что конкретно в нем сложного?
Аноним 04/07/20 Суб 23:28:35 1742137594
>>1742122
Фишечек всяких намного больше, чем в других языках. Изучать эти фишечки намного дольше. И потом при чтении кода приходится дольше вспоминать, как они работают.

Конкретно? Темплейты; сложно победить UB. а ещё сложнее из-за тех долбоёбов сверху, которые РЯЯЯ UB НО РАБОТАЕТ; прямая работа с памятью; при юзании сырых указателей легко обосраться; нет универсальных способов для сборки проектов и разрешение зависимостей, даже для подключения сторонних библиотек нет универсального способа, собирать эти библиотеки из исходников зачастую самому; постоянно надо думать, как не проебать хоть 0.000001% перфоманса, вебня на крестах; компиляция может длиться часами; километровые и непонятные ошибки компиляции.

Но зато потом любой другой язык будет казаться псевдокодом.
Аноним 04/07/20 Суб 23:38:53 1742142595
>>1742137
Мне наоборот было проще осваивать С++. В нём абсолютно нет магии, которая есть в скриптовых\VM-based языках. Любая высокоуровневая сложная конструкция без проблем разбирается на простые манипуляции байтиками, в отличии от питонов\шарпов на которых я писал и нихуя не понимал, что там под капотом.
Аноним 04/07/20 Суб 23:59:35 1742150596
>>1742142
Я другие языки учил уже после плюсов и хз, каково их учить с нуля. Но почти все пишут, что легче.
На скриптовых зато легче решается класс задач, когда нужно тяп-ляп - и готово, хоть и не до конца понимаешь, как это работает. Но в них этого и не требуется, там подход - верить в магию и надеяться, что не выстрелит.
Аноним 05/07/20 Вск 00:12:10 1742154597
>>1742072
>стоит ли начинать именно с С++?
Нет, все крестовики начинали с обычной сишки.

>>1742122
19 способов инициализации переменных, например.
Аноним 05/07/20 Вск 02:24:53 1742201598
>>1742154
А ещё lvalue, rvalue, xvalue, gvalue, pvalue, nenovalue, allahvalue.
Аноним 05/07/20 Вск 03:01:37 1742214599
>>1742154
Да сейчас uniform initialization можно везде хуярить и будет работать. Т.е скобочки { } без знака равенства =.
Аноним 05/07/20 Вск 03:18:32 1742218600
Решил установить Qt, скачал новый онлайн-инсталлер, и увидел, что нельзя пропустить авторизацию, как раньше. Начиная что-то подозревать, полез гуглить. И нашёл это (да, я слоупок): https://www.qt.io/blog/qt-offering-changes-2020

> Installation of Qt binaries will require a Qt Account
> Long-term-supported (LTS) releases and the offline installer will become available to commercial licensees only
> everyone, including open-source Qt users, will require valid Qt accounts to download Qt binary packages. We changed this because we think that a Qt account lets you make the best use of our services and contribute to Qt as an open-source user.
> We want open-source users to help improve Qt in one form or another, be that through bug reports, forums, code reviews, or similar. These are currently only accessible from a Qt account, which is why having one will become mandatory.

М-да. Так похоже на Oracle с жабой: либо плати, либо будь бета-тестером. Понятно, что хочется заработать денежек, но такое пидорское отношение к пользователям опенсорса нищебродам вызывает очень много вопросов.
Аноним 05/07/20 Вск 03:43:37 1742223601
>>1742142
Это, скорей, относится к Си или "си с классами". Во что разворачивается какая то конструкция с++ угадать очень трудно, особенно новичку. А главное, малейшее изменение, причем не тобой, может кардинально все изменить. Ну например, в глобальное пространство имен кто то добавит функцию, из за этого выводы темплейтов станут другими, и твоя функция, которую ты считал константной времени компиляции, станет рантаймовой с оверхедами.
Аноним 05/07/20 Вск 03:46:02 1742224602
>>1742218
Где-то у них есть файлопомойка с сурцами, пошарься. Сам еле нашёл в своё время.
Аноним 05/07/20 Вск 04:12:32 1742229603
>>1742224
Сорцы-то есть, они любезно написали в своём посте, что по-прежнему можно собрать самому, не регистрируясь. Понятно, что большинство этого делать не будет и смирится с новыми условиями.
Аноним 05/07/20 Вск 07:45:08 1742251604
>>1742142
Вот кстати поддвачну, на шарпе вроде приятно писать, библиотека заебись, сахарок, всё такое, но вот если надо понять, какие конструкции приводят к аллокации из кучи, а какие нет, то начинается ебучая магия. В С++ с этим гораздо проще.
Аноним 05/07/20 Вск 08:22:40 1742255605
>>1742137
> нет универсальных способов для сборки проектов и разрешение зависимостей, даже для подключения сторонних библиотек нет универсального способа, собирать эти библиотеки из исходников зачастую самому
Вот это пожалуй единственное, с чем может столкнуться новичок и с чем ему придётся серьёзно разбираться. Хотя в последнее время в 99% случаев написать vcpkg install my_liba.
Всё остальное - это сложности, которые возникают уже у людей с опытом.
Аноним 05/07/20 Вск 08:25:29 1742256606
>>1742142
Поддвачну. В нормально отформатированном коде на c++ понятна каждая строчка.
Аноним 05/07/20 Вск 08:32:57 1742257607
Аноним 05/07/20 Вск 08:47:28 1742258608
>>1742142
Слцшал мнение, что это около-синдром утенка, связанный с типизацией. Тем, кто начал со статической, тружно с динамической, и наоборот.
Аноним 05/07/20 Вск 08:52:49 1742261609
>>1742154
Страуструп уже лично просит не начинать изучение плюсов с Си, это ведет к тому, что люди пишут на Си с классами. Если нужен Си - учите Си, если нужны плюсы - учите плюсы.
"Но си это фундамент!!1" - ASM тем более, но лучше начинать учить что то прикладное, а потом идти вглубь, не нужно школьникам про p-n переходы в транзисторах рассказывать, как только они захотели поучиться проге.
Аноним 05/07/20 Вск 08:54:33 1742262610
>>1742072
Купите вскладчину Белый пояс Яндекса и кайфуйте. Если вы учитесь в каком нибудь вузе, то можно и бесплатно получить.
Аноним 05/07/20 Вск 11:45:42 1742352611
>>1742214
>uniform initialization можно везде хуярить
Кроме реализации хитровыебанных шаблонов, потому что одному сотоне известно какие конструкторы будут у типа, и во что твои скобочки перегрузятся.

>>1742261
>люди пишут на Си с классами
Как что-то плохое.
Аноним 05/07/20 Вск 12:46:14 1742397612
>>1742258
Типизация это другое - шарпы тоже статические, однако магия присутствует.

Но да, я не понимаю как можно писать на языке с динамической типизацией что-то большее, чем 200 строчек.
Аноним 05/07/20 Вск 12:52:31 1742401613
Аноны, есть ли ситуации, когда приходится юзать исключительно сырые указатели?
Аноним 05/07/20 Вск 13:09:37 1742414614
>>1742401
сырые указатели используются тогда, когда они не владеют памятью
Аноним 05/07/20 Вск 14:18:26 1742481615
Двач, при запуске программы выбрасывается исключение, во время дебага всё нормально как бы я не пытался отыскать проблему. Как мне найти в какой строке происходит ошибка если код большой и много заголовков?
Аноним 05/07/20 Вск 14:28:02 1742489616
>>1742481
Посмотри, какое исключение и примерно где выбрасывается, подключись дебаггером и жди
Аноним 05/07/20 Вск 14:31:56 1742492617
>>1742489
>Посмотри, какое исключение и примерно где выбрасывается, подключись дебаггером и жди
>Двач, при запуске программы выбрасывается исключение, во время дебага всё нормально как бы я не пытался отыскать проблему. Как мне найти в какой строке происходит ошибка если код большой и много заголовков?
Аноним 05/07/20 Вск 14:37:15 1742501618
>>1742492
Тебя не учили подключаться дебаггером к релизной версии?

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

Пиздец, оберни в таком случае всё в try-catch и потихоньку выноси оттуда код, вот ты и узнаешь, где ты обосрался
Аноним 05/07/20 Вск 14:55:34 1742512619
>>1742501
>Тебя не учили подключаться дебаггером к релизной версии?
Не учили
>Ну блядь если ты не знаешь, какая часть кода у тебя за что отвечает
Выбрасывается std::out_of_range what(): std::substr. Мои std::substr ничего не выбрасывают
>то может и не стоит этим заниматься?
Хуй будешь?
>Пиздец, оберни в таком случае всё в try-catch и потихоньку выноси оттуда код, вот ты и узнаешь, где ты обосрался
У меня много много кода, я заебусь всё оборачивать и код работает с Qt что не позволяет оборачиваться в try-catch.
Аноним 05/07/20 Вск 14:57:35 1742513620
Аноним 05/07/20 Вск 15:07:18 1742522621
>>1742512
Троллишь тупостью? Пиздец.
Аноним 05/07/20 Вск 15:08:54 1742524622
>>1742522
>сказала чмоха с подобными высерами:
>Посмотри, какое исключение и примерно где выбрасывается, подключись дебаггером и жди
>Двач, при запуске программы выбрасывается исключение, во время дебага всё нормально как бы я не пытался отыскать проблему. Как мне найти в какой строке происходит ошибка если код большой и много заголовков?
Аноним 05/07/20 Вск 17:38:19 1742696623
>>1735074
Я ответил тебе, теперь ты умрёшь.
Аноним 05/07/20 Вск 18:05:14 1742714624
>>1742512
в чем проблема проверить substr?
Аноним 06/07/20 Пнд 00:22:48 1742985625
>>1742481
> Двач, при запуске программы выбрасывается исключение
> Как мне найти в какой строке происходит ошибка если код большой и много заголовков?

> при запуске программы
> как найти где происходит ошибка

> при запуске программы
в конструкторе смотри.

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

Аноним 06/07/20 Пнд 11:36:48 1743076626
>>1742481
Что, даже если к релизному экзешнику через windbg подключиться ничего не даёт?
Аноним 06/07/20 Пнд 11:47:01 1743080627
Пишу в Visual Studio под винду. Консоли нет.
Как лучше всего искать узкие места в коде? Есть ли какой-то уже готовый инструмент, чтобы не писать руками вывод в файл? Код обрабатывает большой поток данных в цикле, и как-то бы автоматически рассчитывать среднее время, которое на это все уходит, чтобы сразу наглядно видеть, где программа тратит реально много времени.
Аноним 06/07/20 Пнд 12:21:52 1743091628
>>1743080
в студии встроенный профайлер есть. Если он тебе не нравится - есть Windows ADK с Windows Performance Recorder'ом
Аноним 06/07/20 Пнд 12:36:25 1743104629
Какого хера даже 2019 VS не принимает такой вариант иницализации? Хотя в нете такие примеры постоянно вижу.

>std::vector< int > Array = { 5,6,7,-1,6,10, 32,-5, 0, 4 };

Хули ему не нравится?
Аноним 06/07/20 Пнд 12:46:58 1743109630
qeq.png 17Кб, 675x179
675x179
Аноним 06/07/20 Пнд 12:47:15 1743110631
>>1743109
все идеально работает
Аноним 06/07/20 Пнд 12:50:05 1743112632
изображение.png 8Кб, 1033x111
1033x111
изображение.png 29Кб, 757x576
757x576
>>1743110
Я не сомневаюсь, но что-то у меня не так.

Вроде бы даже 2010 это умеет, поэтому я перекатился на 2019, но чот не робит.
Аноним 06/07/20 Пнд 12:54:43 1743117633
>>1743112
#include <vector>
#include <initializer_list>

попробуй?
Аноним 06/07/20 Пнд 13:01:26 1743126634
изображение.png 24Кб, 757x549
757x549
>>1743117
Не помогло, зато помог быстрый поиск и замена компилятора, ух, но всё равно благодарю.
Аноним 06/07/20 Пнд 14:33:33 1743161635
>>1743104
Стандарт языка какой в проекте выставлен?
Аноним 06/07/20 Пнд 14:37:44 1743164636
>>1743161
По умолчанию, что интересно, та версия VS 2019, которая у меня есть максимум С++ 17 поддерживает.
Аноним 06/07/20 Пнд 16:14:30 1743224637
Мне нужен сервер с возможеостью писать программы на c++ для него, чтобы был выход в интернет. Такое вообще существет? И сколько стоит?
Аноним 06/07/20 Пнд 16:34:43 1743233638
>>1743224
Ксеон из раздела /hw за 20 000 с 16 - 24 потоками
Федора или бабанта с КВМ/КСЕН
Ну и далее устанавливаешь систему нужную на вирутальную машину
Аноним 06/07/20 Пнд 17:02:26 1743248639
>>1743233
Не. У меня нет возможности держать 24/7 включенным компьютер. Интересует именно аренда
Аноним 06/07/20 Пнд 17:16:48 1743262640
Аноним 06/07/20 Пнд 17:47:54 1743285641
Я эт уже спрашивал, но повторюсь.

Какие фрамеворки желательно знать сейчас С++ прогеру?

Вот хочу ща опробовать Qуtэ, а что ещё есть?
Аноним 06/07/20 Пнд 17:48:36 1743287642
>>1743224
Купить любой VPS, на него поставить nginx или апач (если его там ещё нет), к нему подрубить свою прогу на крестах через CGI/SCGI/FastCGI
Аноним 06/07/20 Пнд 17:53:37 1743293643
>>1743285
Надо хотя-бы С++ хорошо знать. Дальше уже всему научат на работе обычно.
Аноним 06/07/20 Пнд 17:56:07 1743297644
Аноним 06/07/20 Пнд 18:23:55 1743311645
>>1743285
Открываешь hh, смотрешь что в вакансиях.
По хорошему надо знать сами плюсы, включая STL.

Дальше можно посмотреть Boost, почти всё там - кандидаты на попадание в стандарт. Еще можно посмотреть репу awesome-cpp, там тоже куча всчких фреймворков, среди которых можно найти интересные лично тебе.
Аноним 06/07/20 Пнд 18:58:32 1743336646
>>1742261
А как начинать то блядь тогда? С++ создавался на основе С, причём когда-то давно был С с классами, а потом добавили шаблоны, наследование и прочее.

Я не понял тебя, это звучит убер странно.
Аноним 06/07/20 Пнд 19:00:24 1743337647
Аноним 06/07/20 Пнд 19:02:55 1743339648
>>1743336
С чего нибудь типа cppcoreguidelines, с unique_ptr и shared_ptr, с векторов и стрингов, думаю так имеется в виду.
Аноним 06/07/20 Пнд 19:04:57 1743340649
Аноним 06/07/20 Пнд 19:41:42 1743364650
Аноним 06/07/20 Пнд 19:48:42 1743373651
Нужно написать сервер для браузерной игры. Тк за хостинг я плачу из своего кармана, то есть желание сэкономить. Имеет ли смысл писать на плюсах место пыхи? Сильно ли php уступает c++. Даст ли это возможность сэкономить на аренде менее мощного оборудования? Но еще я ни ращу такой хуйней ге занимался. На пхп наверное всякие проблемы безопастности исправлены, а на плюсах нужно будет самому писать все, а я нихуя не знаю какие угрозы могут быть
Аноним 06/07/20 Пнд 19:54:35 1743380652
>>1743373
Тебе проще заказать игру
Аноним 06/07/20 Пнд 19:55:16 1743381653
>>1743373
Пиши на том, на чём умеешь. Переписать логику на другой язык будет сильно проще потом.
Аноним 06/07/20 Пнд 19:57:03 1743384654
>>1743380
Нет. Больше половины клиентской части я сделал.
Аноним 06/07/20 Пнд 20:00:51 1743385655
>>1743381
Правильно я понимаб, что если взять curl то можно легко написать взаимодействие с сетью и потом об этом не парится, а просто заниматься дальнейшей обработкой?
Аноним 06/07/20 Пнд 20:02:57 1743387656
>>1743385
сервера пишутся на буст асио обычно, и это совсем другой уровень сложности чем всё пхп вместе взятое
Аноним 06/07/20 Пнд 20:07:39 1743390657
>>1743387
В чем премущество перед curl? На curl был небольшой опыт раьоты с api сайта. Буст разве не огромный дохуя? нет желания тянуть столько
Аноним 06/07/20 Пнд 20:13:49 1743397658
>>1743390
курл - это клиент. Сервер это сервер
Аноним 06/07/20 Пнд 20:35:36 1743408659
>>1743397
Точно............
А есть че по проще буста. Я могу загуглить, но может есть пооверенные варианты. Но правильно я понял, что если я использую библиотеки, то не должен думать о сетевой безопасности?
Аноним 06/07/20 Пнд 21:14:25 1743419660
>>1743408
Безопасность бывает разная. Думать о ней тебе все равно придется - что если читер расковыряет твою игру и пропишет урон в 10 раз больше?
Аноним 06/07/20 Пнд 21:17:29 1743422661
image.png 10Кб, 664x195
664x195
первая фриланс работа
Аноним 06/07/20 Пнд 21:27:05 1743427662
Аноним 06/07/20 Пнд 21:30:01 1743428663
>>1743427
да хз сделал страуступу какому-то вроде доволен
Аноним 06/07/20 Пнд 22:28:21 1743454664
>>1743422
давай, 300кк\нс не за горами
Аноним 06/07/20 Пнд 23:32:36 1743475665
Аноним 06/07/20 Пнд 23:34:32 1743478666
>>1743336
tl;dr Чел прилумал язык и недоволен, что перед его изучением заяем то учат ДРУГОЙ язык
https://youtu.be/fX2W3nNjJIo
Аноним 06/07/20 Пнд 23:45:32 1743480667
Аноним 07/07/20 Втр 03:04:49 1743538668
>>1743408
Думать о безопасности надо всегда, когда пишешь что-то сетевое. От этого тебя никакая либа и никакой язык не спасёт.
Аноним 07/07/20 Втр 04:25:42 1743555669
>>1743373
С++ конечно быстрее в разы, и по памяти тоже можно выжать сильную экономию. Грамотно написанный сервер можно хоть на одноплатнике держать, у которого мощности как у паршивого смартфона. Тут главное чтобы программа не уперлась в I/O, потому что если она будет делать по десять запросов к базе на каждый пук, то С++ ей ничем не поможет. То есть, сразу надо думать, куда и как часто будут ходить данные, и это не просто "взять и переписать на другой язык".
Правда, сложность разработки веб херовин на С++ довольно высокая, особенно если брать в расчет безопасность. Если браться за такое, то либо для себя по фану чтобы научиться, либо если уже хорошо знаешь, что делаешь. А если под заказ и без опыта в таком деле, то на крестах писать не самый удачный вариант — наогребаться можно просто лютейше.
Аноним 07/07/20 Втр 09:39:26 1743597670
>>1743538
>>1743555
Может книга есть какая с описанием угроз?
Аноним 07/07/20 Втр 10:41:29 1743625671
>>1743422
Проверку на дурака забыл.
Аноним 07/07/20 Втр 11:01:40 1743646672
>>1743408
>Но правильно я понял, что если я использую библиотеки, то не должен думать о сетевой безопасности?
Если используешь библиотеки, безопасность не под твоим контролем.
Аноним 07/07/20 Втр 12:06:40 1743716673
есть какое-нибудь кроссплатформенное решение для позиционирования курсора в консоли и подобной дрочи?
Аноним 07/07/20 Втр 12:11:17 1743722674
Аноним 07/07/20 Втр 12:12:08 1743723675
в конструкторе выделяется память под квадратную матрицу указанной размерности
какой возвращаемого значения у new T[x][x] чтобы дать его члену класса?
Аноним 07/07/20 Втр 12:13:04 1743725676
Аноним 07/07/20 Втр 12:32:04 1743730677
>>1743723
T(✡)[x]

T (⛧m_var)[x] = new T[x][x];
Аноним 07/07/20 Втр 12:33:32 1743734678
>>1743730
где x это компайл тайм константа?
Аноним 07/07/20 Втр 12:33:33 1743735679
>>1743723
decltype
Блядь да ну нахуй какое [][] в 2к20
Аноним 07/07/20 Втр 12:39:00 1743742680
>>1743734
А иначе хуй ты память с [][] выделишь. Или пакуй в одномерный массив/вектор/вектор-с-векторами.
Аноним 07/07/20 Втр 12:40:51 1743744681
>>1743742
не хотел делать на стл но видимо придется
ясно спасибо
Аноним 07/07/20 Втр 12:44:22 1743752682
>>1743742
в с++20 вроде можно в constexpr память выделять
Аноним 07/07/20 Втр 12:46:07 1743754683
>>1743752
осталось только найти компилятор это поддерживающий
Аноним 07/07/20 Втр 12:47:16 1743758684
>>1743742
> Или пакуй в одномерный массив
А [] пусть возвращает прокси объект с доступом по ссылке.
Аноним 07/07/20 Втр 12:55:13 1743769685
Как устроены кроссплатформенные библиотеки? В любом случае же нужно api ос использовать. Там просто ifdef и код под каждую платформу?
Аноним 07/07/20 Втр 13:02:01 1743779686
>>1743769
Можно разнести по разным файлам и подключать их уже системой сборки.
Аноним 07/07/20 Втр 13:04:26 1743784687
>>1743769
Без ифдефов трудно обойтись, но начинать стоит с создания отдельных файлов с обертками (my::createFile гыгы) под каждую платформу.
Аноним 07/07/20 Втр 13:07:41 1743793688
>>1743769
> Там просто ifdef и код под каждую платформу?
Верно
Аноним 07/07/20 Втр 13:16:28 1743810689
1594116984266.jpg 279Кб, 720x1280
720x1280
Какой блин boost asio мне советовали? Мне еще и писать http парсер. Найду че по проще. Уже приметил парочку библиотек, правда для http 1.1. Может для http 2 что нибудь найду.
Аноним 07/07/20 Втр 13:34:43 1743839690
Аноним 07/07/20 Втр 13:54:46 1743877691
>>1743810
Ты зачем в плюсы лезешь вообще?
Аноним 07/07/20 Втр 13:56:50 1743883692
15808260757990.jpg 31Кб, 612x612
612x612
Как посоветуете вкатиться в C++ в 2020 на русском?
Что по стандарту?
Аноним 07/07/20 Втр 13:59:45 1743887693
Аноним 07/07/20 Втр 14:08:15 1743897694
>>1743883
английский учи бля никакого на русском
ну и как обычно посмотри пару видосов по азам потом возьмись за небольшие проекты и сверяйся с SO + cppreference
Аноним 07/07/20 Втр 14:11:32 1743902695
>>1743897
>SO + cppreference
Что?

Если про Питон и ЖС литературы до жопы, то на плюсах тоже.
И на Питоне все стандартно читают несколько основных хороших книг для вката, все на русском.

Неужели с плюсами ситуация не аналогичная?
Аноним 07/07/20 Втр 14:12:16 1743905696
>>1743810
> писать http парсер
Почему, ну почему крестовики никогда не используют готовые http-либы и каждый раз их пишут с нуля чуть ли не через winapi? Бог дал им Poco, cpp-netlib и ещё сотню других, но нет, надо снова и снова изобретать велосипед.
HTTP/2 не нужен.
Аноним 07/07/20 Втр 14:19:09 1743922697
>>1743902
> Что?
stackoverflow.com и ru.cppreference.com
> основных хороших книг
Бьерн Страуструп.
"Язык программирования С++ "

все остальное от лукавого
Аноним 07/07/20 Втр 14:22:25 1743926698
>>1743905
> Почему, ну почему крестовики никогда не используют готовые http-либы и каждый раз их пишут с нуля чуть ли не через winapi? Бог дал им Poco, cpp-netlib и ещё сотню других, но нет, надо снова и снова изобретать велосипед.
Так я пишу, что не собираюсь этого делать и ищу либу где сделано за меня.
> HTTP/2 не нужен.
Почему? HTTP 1.1 старый же очень
Аноним 07/07/20 Втр 14:34:12 1743939699
>>1743926
> ищу либу где сделано за меня
Полно всяких, см. Communication: https://en.cppreference.com/w/cpp/links/libs
Про парсинг http забудь. Даже если взять готовый парсер, придётся руками прикручивать SSL/сжатие/менеджмент потоков/хелперы даже для банального роутинга.

> Почему? HTTP 1.1 старый же очень
Но используется повсеместно. 2.0 даже не поддерживается толком нигде.
Аноним 07/07/20 Втр 14:39:52 1743946700
Аноним 07/07/20 Втр 14:58:08 1743957701
Аноним 07/07/20 Втр 15:04:01 1743962702
>>1743939
И почему он не поддерживается? 5 лет прошло уже
Аноним 07/07/20 Втр 15:04:30 1743963703
>>1743957
Мне сервер нужен, а curl как я понял клиент.
Аноним 07/07/20 Втр 15:27:43 1743975704
>>1743597
Вряд ли, это как просить книгу с описанием багов.

Разбирайся внимательно во всяких галочках и настройках в стороннем софте и либах, которые используешь. Многие появились не от хорошей жизни, и содержат в доках описание, как делать так, чтобы не поимели.
Аноним 07/07/20 Втр 15:37:45 1743983705
>>1743922
А по opengl что можно на русском?
Аноним 07/07/20 Втр 15:38:19 1743984706
Аноним 07/07/20 Втр 15:39:04 1743988707
>>1743983
Сейчас тебе скажут, что опенгл устарел, и теперь всё только вулкан.
Аноним 07/07/20 Втр 15:40:12 1743989708
>>1743988
А что опенжл сильно отличается от вулкан?
И разве в новых картах не будет опенжл?

Кроме того опенжл универсальней.
Аноним 07/07/20 Втр 15:48:06 1743999709
>>1743989
OpenGL будет везде, вулкан никаких профитов не имеет для домашнего хикки-программиста, а вот гемора с ним в разы больше
Аноним 07/07/20 Втр 15:50:43 1744000710
>>1743922
>Бьерн Страуструп.
>"Язык программирования С++ "


А специальное издание не лучше?
Аноним 07/07/20 Втр 16:09:47 1744010711
В каких редакторах в конторах пишут код С++ в линухе?

Знаю
Sublime, ну и всякое безумие типа простых редакторов.

Так же вопрос по настройке отладчика и компиляции, ибо последний раз после того как поставил Sublime и установил gcc всё равно ругался на отсутствие gcc.
Аноним 07/07/20 Втр 16:17:51 1744016712
Аноним 07/07/20 Втр 16:26:22 1744018713
>>1744010
Как ты себе представляешь работу в конторе? Типа написал код нажал кнопку и оно запустилось?
Все равно никуда не денешься от билд систем.
Аноним 07/07/20 Втр 16:26:50 1744020714
>>1743983
На хабре перевод хороший есть
Аноним 07/07/20 Втр 16:27:58 1744022715
>>1744018
По обрывкам - есть лид, который знает или свою ветку или вообще весь проест, есть те, кто задачи от лида выполняют.
Аноним 07/07/20 Втр 16:28:54 1744024716
>>1743983
Нельзя. Можно только учебник Борескова, и RedBook по OpenGL 4.5. На ангельском литературы не особо много, но она весьма годная.
Мимо пишу компутерную графику уже три года.[spoiler ]Задавайте ответы если интересно.[/spoiler]
Аноним 07/07/20 Втр 16:30:39 1744027717
>>1744024
Лучше игры делать сразу, иначе потонешь, или программки какие-то.

Занимался подобной хернёй
Аноним 07/07/20 Втр 16:40:25 1744031718
>>1744020
Перевод чего? Учебник нужен норм.
Аноним 07/07/20 Втр 16:41:10 1744032719
>>1743999
Как гемора больше, она же должен был облегчить жизнь программистам, разве нет?
Аноним 07/07/20 Втр 16:43:03 1744034720
>>1744032
Он позволяет прогоаммистам управлять железом (память, вычисления на видяхе, вот это все) а не вызывать функции черного ящика, которых может и не быть.ж
Аноним 07/07/20 Втр 16:45:06 1744038721
Аноним 07/07/20 Втр 16:46:48 1744040722
>>1744032
Идея вулкана и ДХ12 - это суперпуперлоулевельное АПИ, которое должно помочь выжать больше ФПС на том же железе. Программировать его ощутимо сложнее
Аноним 07/07/20 Втр 17:01:35 1744058723
>>1744027
Дэк ведь я в конторе работаю и пишу не игоры.
Аноним 07/07/20 Втр 17:02:59 1744061724
Аноним 07/07/20 Втр 17:16:55 1744071725
Аноним 07/07/20 Втр 17:19:17 1744073726
Аноним 07/07/20 Втр 17:20:06 1744077727
>>1744040
Лол, на DX12 во всех играх FPS снижается в сравнении с DX11, больше лагов итд.
Аноним 07/07/20 Втр 17:21:53 1744082728
>>1744077
На радеонах ДХ12 лучше ДХ11. На нвидии наоборот.
Аноним 07/07/20 Втр 17:28:20 1744089729
>>1744073
с OpenCL никак, а с OpenGL очень даже.
Аноним 07/07/20 Втр 17:57:21 1744112730
Мне бы на плюсиках ИИ написать. Что можно для этого сделать?
Аноним 07/07/20 Втр 18:16:43 1744122731
Аноним 07/07/20 Втр 18:35:48 1744131732
>>1744112
Потому что Питон у скорость сосёт?
Аноним 07/07/20 Втр 18:36:22 1744132733
Vulkan типа С или типа ASMа?
Аноним 07/07/20 Втр 18:38:11 1744135734
>>1744132
Типа C в сравнении с питоном. 1000 строчек, чтобы нарисовать треугольник.
Аноним 07/07/20 Втр 19:01:19 1744150735
>>1744135
Сегодня и графику и игры делают в специальных программах и на игровых движках.

На Питоне вообще нечего рисовать, это уж точно.
Аноним 07/07/20 Втр 19:21:08 1744174736
>>1744150
Успокойся аут, это была аналогия.
Аноним 07/07/20 Втр 19:24:36 1744181737
>>1744131
да нет впадлу мне питоны всякие учить
Аноним 07/07/20 Втр 19:31:05 1744191738
>>1743962
Вейленду уже больше десяти лет, а всё никак не прикрутят нормально хотя его по SSH нормально не передашь и не прорендеришь удалённо
IPv6 уже почти 25, а все сидим на четвёрке.

Некоторые стандарты очень долго переходят от бумаги к реальному пользователю.
Аноним 07/07/20 Втр 20:01:16 1744242739
>>1744135
Его можно просто в узких местах использовать, а в остальных будет OpenGL.
Аноним 07/07/20 Втр 20:04:46 1744247740
>>1743922
Существует ли новое издание за бесплатно на русском?
Аноним 07/07/20 Втр 20:13:01 1744258741
>>1744247
Не слушай этого долбаёба, в шапке есть прекрасные книги, которые можно прочитать. Именно КНИГИ, а не справочники. Справочники нет смысла читать в 2020, для вката достаточно книг,из шапки разумеется интернета и практики, а если справочная информация понадобится, то cppreference + другие источники - более чем достаточно.
Аноним 07/07/20 Втр 20:28:26 1744277742
>>1743810
Тебе же прям на пике советуют boost beast использовать
Аноним 07/07/20 Втр 20:35:43 1744290743
>>1743962
Потому что не заставили. И так работает, никто не почешется.
Аноним 07/07/20 Втр 20:40:59 1744297744
>>1743902
>Неужели с плюсами ситуация не аналогичная?
Плюсы новый язык. Каждый год новый.
Осознайте это.
Аноним 07/07/20 Втр 20:48:28 1744313745
>>1744277
Наверное это неважно, но я спрошу. Там вроде http 1. Есть ли какая нибудь для меня разница между http 1 /1.1/2?
Аноним 07/07/20 Втр 21:28:51 1744351746
hellotriangle.png 1977Кб, 3300x20723
3300x20723
Аноним 07/07/20 Втр 21:33:20 1744359747
Двач, пробую отдебажить свою программу Cmake/Qt в Visual Studio, при запуске пишет "Запуск программы невозможен, так как на компьютере отсутствует Qt5Widgetsd.dll", в чём проблема?
Аноним 07/07/20 Втр 21:46:59 1744376748

>>1744313
Я вообще не понимаю, на кой тебе сдался этот http, если есть вебсокеты
Аноним 07/07/20 Втр 21:51:20 1744381749
>>1744376
Кто такие ваши сокеты? Я хочу просто либу для сервера плюсового и все.
Аноним 07/07/20 Втр 21:55:27 1744384750
>>1744381
Ну тогда бери boost.beast и не выёбывайся
Аноним 07/07/20 Втр 22:04:18 1744390751
Аноним 07/07/20 Втр 22:28:03 1744411752
>>1744297
JS тоже, но там это не ощущается из-за сравнительной простоты.
Аноним 07/07/20 Втр 22:30:14 1744415753
>>1744359
Положи Qt5Widgetsd.dll рядом с бинарником, это отладочная версия Qt5Widgets.dll
Аноним 08/07/20 Срд 00:36:50 1744499754
>>1743922
>ru.cppreference.com
Параша уровня ответы@mail.ru
Аноним 08/07/20 Срд 00:50:25 1744507755
>>1744499
Просто ты долбаёб, что в документации и ангельский не может.
Аноним 08/07/20 Срд 11:46:31 1744835756
image.png 18Кб, 378x446
378x446
image.png 3Кб, 683x59
683x59
Сап двач, есть один код пик1
Он должен считать, через сколько слов повторяется слово.
Но эта залупа в любом случае выводит максимум - 2!!!! пик 2
Я подозреваю, что дело в том, что ++number_of_words срабатывает лишь один раз - почему?
Аноним 08/07/20 Срд 11:48:27 1744838757
image.png 2Кб, 297x58
297x58
Аноним 08/07/20 Срд 11:52:11 1744842758
>>1744835
Потому что
if (previous == current);
это весь блок.
Все что дальше - не в ифе.
Аноним 08/07/20 Срд 11:53:39 1744846759
>>1744838
Лишние точки с запятой после while, после if. Поэтому, тело цикла выполняется один раз. Соблюдай кодстайл, и не будет такого говна.
Аноним 08/07/20 Срд 12:01:31 1744859760
image.png 29Кб, 1001x267
1001x267
Аноним 08/07/20 Срд 12:04:28 1744864761
>>1744859
Чел, методом тыка рандомно добавляя и убирая знаки препинания на с++ ничего не выйдет.
Аноним 08/07/20 Срд 12:07:26 1744868762
>>1744859
Потому что у тебя cin не кончается. Если можешь, въеби в консоль после своих слов символ конца файла, не знаю, какой он там на винде. Или лучше из файла читай, у него точно есть конец. Ещё можно getline, потом собрать istringstream. В общем, ебись, удачи.
Аноним 08/07/20 Срд 12:09:07 1744870763
>>1744868
Я бы порекомендовал сначала написать прогу, которая выводит слова, которые читает. Чтобы убедиться, что читаешь правильно.
Аноним 08/07/20 Срд 12:23:50 1744884764
>>1744859
while(cin...) делает не то, что ты думаешь.
Оно читает весь поток до конца файла, а не одну строчку. Как этот анон написал >>1744868
Аноним 08/07/20 Срд 12:29:06 1744889765
Аноним 08/07/20 Срд 13:01:18 1744904766
Аноним 08/07/20 Срд 15:42:41 1745095767
Сделал всё как в инструкции - https://github.com/YOU-i-Labs/easy_profiler
Но видимо не может слинковаться, пишет error: undefined reference to `__imp__ZN8profiler5BlockC1EPKNS_19BaseBlockDescriptorEPKcb'
Как исправить проблему?
Аноним 08/07/20 Срд 15:48:38 1745105768
Аноним 08/07/20 Срд 15:53:16 1745108769
>>1745095
Или подскажите как в cmake в ручную библиотеки подключать, я уже забыл.
Аноним 08/07/20 Срд 21:37:52 1745366770
Есть ли смысл вкатываться в C++ на сегодняшний день? Или время ушло и больше котируется Python/Java/C#/JS?
Аноним 08/07/20 Срд 22:29:42 1745404771
>>1745366
Не в деньгах счастье.
Аноним 08/07/20 Срд 22:33:36 1745413772
>>1745366
Вкатись хоть куда-нибудь
Аноним 08/07/20 Срд 23:28:03 1745474773
>>1745404
>>1745413
Я бы хотел вкатиться в десктоп и парсинг различных сайтов. Ну и прикольно было бы всяких ботов делать, чтобы видео с ютуба качал. Я пробовал конечно в Java вкатиться, аж целых два года (но с работой в кол центре после рабочего дня ничего не хотелось, был выжат как лимон), но как-то не пошло, да и не мог с целью определиться. PHP - попробовав, сразу решил, что это не моё. Python - вроде норм, но я никак не могу привыкнуть к динамической типизации и вакансий нет в моем городе. Вот я думаю, все же в C++ идти или в C#. С одной стороны все в моих руках и без ограничений в креста, а с си шарпом...ну я хз, не могу привыкнуть к её философии, да и тоже самое, что Java, только с привязкой к майкам. Ну а кресты живее всех живых и вроде не надо городить огород при написании программ. Ну и мне всегда хотелось с указателями подробнее познакомиться и работать с ними.
Аноним 09/07/20 Чтв 01:01:07 1745544774
1545425000204.png 64Кб, 1272x985
1272x985
1439053698413.png 44Кб, 794x840
794x840
>>1745474
В 2020 не стоит знакомиться и работать с указателями.
Что же касается парсинга, на шарпе ты напишешь его раз в 5 быстрее.
Но написать не проблема. вот собрать openssl - это другая история
Аноним 09/07/20 Чтв 01:11:30 1745550775
>>1745474
Десктоп это электрон или шарп. Парсинг различных сайтов - питон.

В С++ вкатываться нет смысла, если ты не хочешь хардкорного системного пердолькинга.
Аноним 09/07/20 Чтв 09:11:01 1745635776
c++ ил раст?
Аноним 09/07/20 Чтв 09:20:24 1745639777
>>1745635
Чет смотрел раст, столько дифирамбов, а по факту не очень радует - почитай раст тред свежий.
Аноним 09/07/20 Чтв 10:45:02 1745698778
>>1745635
>c++ ил раст?
Я за раст.

сищник
Аноним 09/07/20 Чтв 10:50:55 1745704779
Анекдот:
Приходит сисярпист в хаскель-тред и говорит: "А джава-то лучше"!
Аноним 09/07/20 Чтв 10:58:11 1745708780
Ну хоть один раз мы не перекатываем тред как только 500 постов наберется. А то катаетесь быстро пиздец, что по плюсам 7 тредов живы. Предлагаю сделать перекат как умрет 12 тред.
Аноним 09/07/20 Чтв 12:38:53 1745771781
>>1745635
Борщи хлебать - раст
Код писать - С++
Аноним 09/07/20 Чтв 13:33:29 1745826782
>>1745771
С++ тоже для борщехлебов. Ну или для некрофилов, которые копаются в легаси. Новые проекты, тем более крупные, тем более требовательные к безопасности, не пишут на С++, и уж тем более не пишут на С. Эти языки держатся на плаву исключительно из-за УЖЕ написаннного кода, который просто везде.
Аноним 09/07/20 Чтв 13:46:05 1745837783
В чём разница \n и std::cout?
Аноним 09/07/20 Чтв 13:46:22 1745839784
Аноним 09/07/20 Чтв 13:50:41 1745842785
>>1745826
А на чем пишут? Как же всякие высоконагруженные проги?
Аноним 09/07/20 Чтв 13:51:30 1745845786
>>1745837
Inserts a newline character into the output sequence os and flushes it as if by calling os.put(os.widen('\n')) followed by os.flush(). (from en.cppreference.com)
То есть после \n ещё вызывается flush, как я понял.
Аноним 09/07/20 Чтв 14:02:07 1745857787
>>1745842
Прямо АДОВЫЙ хуйлоуд - это редкость. Для 98% компаний тот же Го с удобными корутинами вполне себе быстрый, несмотря на наличие сборщика мусора.
Аноним 09/07/20 Чтв 14:19:32 1745879788
>>1745826
Угу, весь фаанг и крупняк на крестах
Аноним 09/07/20 Чтв 14:43:56 1745906789
>>1745879
FANG - 4 компании. У Фейсбука посещаемость - половина челевеческой популяции в месяц, про гугл вообще молчу.
Сколько таких компаний есть в мире? Можно пересчитать по пальцам одной руки. 98% других компаний предпочтут менее хардкорные и более безопасные языки, которые будут достаточно быстры для их потребностей. То бишь для компаний помельче те же Го/Раст гораздо лучше, чем С/С++, и экономически выгоднее.
Аноним 09/07/20 Чтв 14:45:50 1745910790
>>1745906
так зачем ровняться на говно, когда надо на топ ровняться?
Аноним 09/07/20 Чтв 15:13:56 1745958791
>>1745906
Раст сложнее крестов. Значит он не выгоднее.
Аноним 09/07/20 Чтв 15:36:54 1745983792
>>1745910
Да пускай, я-то что? Я сам с/с++ червь, лол, и пишу почти всегда на них.
Просто объективно рассуждая, С/С++ очень слабо подходят на роль выбора языка для новых проектов, если у тебя не хуйлоуд уровня гугла. Более современные и безопасные инструменты подходят лучше в подавляющем большинстве случаев.
Аноним 09/07/20 Чтв 15:38:04 1745985793
>>1745958
То, что Раст сложнее крестов - утверждение довольно-таки спорное.
Аноним 09/07/20 Чтв 15:39:35 1745989794
>>1745108
Я вообще не шарю в cmake, но делаю так и у меня вроде работает:
add_subdirectory(path/to/myLib)
target_link_libraries(myProj mylib)

Аноним 09/07/20 Чтв 15:45:34 1745995795
>>1745983
с этим согласен, но точно не обскурную парашу уровня раста выбирать. Тот же неткор - отличный, например.
Аноним 09/07/20 Чтв 15:48:17 1746002796
может кто-нибудь накидать адекватных тривиальных примеров использования корутин из нового стандарта

текст с цпреференс не осилил
Аноним 09/07/20 Чтв 17:14:04 1746111797
>>1746002
Короче, есть синие и красные функции, синие функции можно вызывать откуда угодно, а красные - только из красных.
Аноним 09/07/20 Чтв 18:23:10 1746185798
>>1745906
FAANG же уже, 2к2о

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

Видеоаналитикой занимаются на Си/крестах. То есть питонисты сидят и дрочат свои нейронки на питоне, да, нопотом это все должно гонять видеопоток в риалтайме, и легче всего (!) это делать на крестах.

Моделирование всякой научной личи - прототипчики на питоне/матлабе, потом кресты.

Опа, оказывается не двум процентам нужны кресты.
Я верю, что когда то кресты все таки должны будут уехать в дом престарелых, но Go явно пошел в другую сторону, а Rust пока стремный кузен какой то.
Аноним 09/07/20 Чтв 18:31:42 1746193799
>>1746185
> Я верю, что когда то кресты все таки должны будут уехать в дом престарелых, но Go явно пошел в другую сторону, а Rust пока стремный кузен какой то.
Почему? В чем смысл отказываться от крестов? Ну было бы конечно неплохо если бы просто было бы какое то ответвление без кучи ебанутых поддержек совместимости с прошлыми версиями и построенное чуть более логично с учетом текущих разработок, а так че плохого в языке?
Аноним 09/07/20 Чтв 18:39:50 1746199800
>>1746193
У тебя что, нет ощущения, что кресты это язык прошлого века? В том то вся и проблема, что нормально замены (пока) нет, но замена реально нужна.

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

Язык создавался почти сорок лет назад - все уже стали умнее, можно напрячь извилины и все таки шагнуть вперед.
Аноним 09/07/20 Чтв 18:41:37 1746202801
>>1746199
Ну я об этом и говорю, сделать кресты более современным языком, с учетом текущих недостатков, отказавшись от совместимости.
Аноним 09/07/20 Чтв 18:43:36 1746205802
>>1746202
Ещё бы с метапрограммированием а-ля Circle
Аноним 09/07/20 Чтв 18:47:54 1746215803
Нужно взять раст, стандартизовать, сделать нормальные систему сборки и менеджер пакетов и запилить в него овер 9000 фич. Тогда наконец-то появится убийца C++.
Аноним 09/07/20 Чтв 18:50:06 1746221804
>>1746202
Хотя сейчас подумал над сказанным. Буст кажется на 11 версии плюсов, а уже 20 на подходе. Че с такими либами делать, если они используются часто? Паралельно содержать 2 версии языка с поддержкой совместимости и без? Звучит не очень
Аноним 09/07/20 Чтв 19:01:55 1746237805
>>1746221
Ломать обратную совместимость - худшее, что можно сделать ВООБЩЕ.
Аноним 09/07/20 Чтв 19:03:00 1746239806
>>1746215
только вот печаль, что никто не будет над этим заморачиваться, всем похуй( Эхх, а так хотелось бы, чтобы Раст стал новым глотком воздуха в мире этого старья из 70-80ых, но походу не судьба(
Аноним 09/07/20 Чтв 19:05:41 1746242807
>>1746239
Мне сначала таким показался Go, но присмотревшись, понял, что нет и никогда им не будет.
Аноним 09/07/20 Чтв 19:16:57 1746255808
>>1746202
То есть сделать новый язык, да?
Потому что дело не в паре ключевых слов.
Аноним 09/07/20 Чтв 19:18:19 1746256809
>>1746242
Go не замена ни плюсам, ни тем более Си. Сложно назвать язык со сборщиком мусора системным (невозможно, это не системный яп, точка)
Аноним 09/07/20 Чтв 19:24:44 1746261810
Аноним 09/07/20 Чтв 19:26:48 1746263811
>>1746255
Ну........ скорее да. Новый язык на основе старого
Аноним 09/07/20 Чтв 19:36:02 1746274812
image.png 22Кб, 440x516
440x516
Сап двощ, решаю задачку, а тут непонятная хуйня, почему в строке бред, когда там должна быть 123 456?
Аноним 09/07/20 Чтв 19:40:28 1746278813
>>1746274
Потому что ты приводишь char к int
Аноним 09/07/20 Чтв 19:56:29 1746291814
>>1746274
В строке, где кастишь, вычти из символа '0'
Аноним 09/07/20 Чтв 21:02:06 1746337815
Аноним 09/07/20 Чтв 21:02:57 1746338816
>>1746274
std::stoi, ты приводишь тип char к типу int и получается число (код символа), не равное цифре из строки
Аноним 09/07/20 Чтв 21:50:52 1746369817
>++i
этот культ преинкремента даже у нубов
Аноним 09/07/20 Чтв 21:53:14 1746373818
>>1746369
Компилятор лучше оптимизирует.
Постинкремент это {auto tmp=var; ++var; return tmp} что в нетривиальных случаях может быть очень грустно
Аноним 09/07/20 Чтв 21:54:08 1746377819
>>1746373
Там uint, разницы никакой.
Аноним 09/07/20 Чтв 22:13:09 1746390820
>>1746377
А завтра там класс с копированием, вот никто и не хочет раскладывать себе мины.
Аноним 09/07/20 Чтв 22:28:39 1746406821
>>1746369
Нубы берут это из книжек и о культе не подозревают.

>>1746373
Ой, что это, ручная оптимизация инкремента в 2020?
Аноним 09/07/20 Чтв 22:35:23 1746415822
говнокод.png 47Кб, 626x788
626x788
https://ideone.com/zne3Ww

Помогите, мне нужна таблица, которая хранит какие-то элементы, например пиксели struct {unsigned char red, green, blue}, чтобы к ним можно было обращаться по координатам table[x][y]. Я хуйни нагородил? Поймет ли крестовый компилятор, что мне по факту нужно просто data[ x + (y << p2) ] ? Сможет ли опустить все промежуточное? Может, где-то надо еще инлайны и ссылки добавить?
Аноним 09/07/20 Чтв 22:48:37 1746424823
>>1746415
Закинь в godbolt и посмотри на ассемблер. Сравни с тем, что ты бы написал вместо этих двух операторов.
про флаги компилятора не забудь
Аноним 09/07/20 Чтв 23:00:00 1746437824
>>1746424
>godbolt
У меня только objdump есть, братишь. Скомпилил с -O3, в main куча call и ни одного сдвига. Надо что-то инлайнить? Но что?
Аноним 09/07/20 Чтв 23:00:40 1746438825
дизасм-говнокода.png 90Кб, 967x636
967x636
Аноним 09/07/20 Чтв 23:24:08 1746447826
>>1746438
Выкинь оттуда всё, что связано с iostream, оставь только свой код и попробуй ещё раз
Аноним 09/07/20 Чтв 23:25:41 1746449827
>>1746437
Ну и на godbolt можно посмотреть, какой кусок чему соответствует
Аноним 09/07/20 Чтв 23:31:25 1746456828
Аноним 09/07/20 Чтв 23:44:11 1746461829
>>1746447
Убрал все, как ты советовал. Сделал задаваемые с терминала координаты точки, которой присвоить значение, и опа, появился shl в main и с правильным значением, на двух вариантах ширины таблицы попробовал. ОНО РАБОТАЕТ! Может еще что по коду там выше скажешь? Заприватить конструктор Column, и сделать ему Table friend'ом?
Аноним 10/07/20 Птн 00:33:59 1746495830
>>1746461
Я могу тебе посоветовать только посмотреть похожие реализации, например из boost::gil или какого-нибудь eigen. Сам я таким байтоебством почти не занимаюсь.
Аноним 10/07/20 Птн 03:28:50 1746540831
>>1746369
Объясни, чем это тебе не нравится и почему стоит использовать i++
Аноним 10/07/20 Птн 06:48:39 1746568832
>>1746369
Но ведь при постинкременте создается дополнительная временная переменная
Аноним 10/07/20 Птн 08:09:45 1746573833
Аноним 10/07/20 Птн 08:57:40 1746583834
вот еслиб страуструпе новый язык сделал все бы охуели и пошли на него, а этот раст в помойку((
Аноним 10/07/20 Птн 09:41:33 1746614835
>>1728315 (OP)
Можно к этой картинке раст вставить, где прямая, ровная и безопасная дорога
Аноним 10/07/20 Птн 09:55:56 1746619836
>>1746614
> прямая, ровная, безопасная дорога
> не работает асинк
Хех
Аноним 10/07/20 Птн 10:01:35 1746621837
Какие либы есть для годного сервера с вебсокетами, хттп и удп, построенные на бустасио? Чтобы самому ебаться не нужно было, просто взял и пользуешься.
У меня жопа горит с того что придется на бустасио с нуля писать, даже хочется go использовать
Аноним 10/07/20 Птн 10:02:38 1746624838
>>1746621
Не обязательно кста на бустасио, да.
Аноним 10/07/20 Птн 10:19:26 1746646839
>>1746540
Потому, что c=c+1 --> c+=1 --> c++, а не ++с
Или идиоматическое (✭q++ = ✭p++)
Даже дед Стауструп в книжке предпочитал for ( ... i++)
>>1746568
Там uint, инкремент кодируется в одну команду.
В случае, где что-то создается (сложный объект + тупой компилятор), лучше писать ++с. И эта запись сигнализирует, что объект сложный, а оператор ++ не является командой инкремента. Когда запись передает способна передавать дополнительную семантическиую информацию, это хорошо. А повсеместное использование ++с отбрасывает такую информацию.
Аноним 10/07/20 Птн 10:25:10 1746649840
>>1746619
че-нибудь еще можешь сказать петушок?
Аноним 10/07/20 Птн 10:32:27 1746655841
>>1746649
> ко-ко-ко-кудах, сраст
Прости, я по-синхронному не понимаю.
Аноним 10/07/20 Птн 10:35:19 1746658842
>>1746646
Если для интов нет разницы, как писать, ++i или i++, а для итераторов есть (как минимум, реализацию префиксного инкремента быстрее писать), не проще и удобнее ли всегда писать одинаково? На самом деле, все эти "временные объекты" хуйня, всё это прекрасно инлайнится и оптимизируется с вертухи. Я лично всегда выбираю префиксный инкремент как более элементарный и простой, и другим советую.
Аноним 10/07/20 Птн 11:09:02 1746673843
>>1728315 (OP)
Вкатываться ли в программирование? Если мне 29, и я два раза ушел с универов, когда учился на программировании (не было интересно и не было понимания зачем это. но это было давно)
Аноним 10/07/20 Птн 11:15:19 1746677844
>>1746673
Во-первых, ты не в том треде.
Во-вторых
>не интересно
>нет понимания
Нахуя вкатываться то тогда? В твоём случае лучше пойти к врачу.
Аноним 10/07/20 Птн 11:17:55 1746681845
>>1746673
То, что ты за каким-то хуем решил поступить второй раз в универ уже многое говорит
Аноним 10/07/20 Птн 11:54:46 1746707846
>>1746646
> Или идиоматическое (✭q++ = ✭p++)
Дебс, это имеет совсем другой смысл.
Если ты тут напишешь преинремент, то копирование начнется со второго элема.
Аноним 10/07/20 Птн 15:45:20 1747034847
А вот если я возьму некий адрес с потолка (с точки зрения компилятора), присвою его указателю, разыменую, и этот адрес ВНЕЗАПНО совпадёт с адресом некой переменной (не обязательно из этого же скоупа), при условии, что тип правильный, это будет UB, или нет? Например, сохраню адрес в файл, а потом его где-нибудь прочитаю.
Аноним 10/07/20 Птн 16:04:18 1747063848
>>1747034
> сохраню адрес в файл, а потом его где-нибудь прочитаю.
> это будет UB
да
Аноним 10/07/20 Птн 16:23:42 1747090849
Аноним 10/07/20 Птн 18:43:51 1747204850
>>1747034
Преобразуем указатель в intptr_t, пишем число в файл, читаем в том же процессе, преобразуем в указатель того же типа. Никакого UB, если объект не освобождался.
Аноним 10/07/20 Птн 18:49:39 1747209851
>>1747204
Как много нюансов. Спс.
Аноним 10/07/20 Птн 19:05:57 1747224852
>>1747204
UB это свойство языка, а не реализации, не?
Аноним 10/07/20 Птн 19:13:10 1747230853
Аноним 10/07/20 Птн 19:46:17 1747253854
Какой Style Guide является общепризнанным?
Аноним 10/07/20 Птн 19:57:49 1747261855
>>1747253
Таких нет. Погугли clang-format, там разные варианты есть. Я гугловский с некоторыми изменениями использую.
Аноним 10/07/20 Птн 19:58:20 1747262856
>>1747261
То есть такого, одного.
Аноним 10/07/20 Птн 21:40:03 1747370857
output-xy.jpg 953Кб, 1024x681
1024x681
>>1746573
>блять чо ты делаешь блять
А мне нужно, чтобы было именно [x][y], а не [y][x]. Сейчас вот потестил на фильтре, который как на пике делает, со своим вариантом [y][x] типа твоего, который у меня уже был этого. Оказалось, скорость одинаковая.
Аноним 10/07/20 Птн 21:44:02 1747377858
Аноним 10/07/20 Птн 21:46:40 1747383859
У меня почему-то пригорает от мысли, что OpenGL, возможно, всё. Чисто по субъективным причинам не хочу, чтобы его выкидывали. Тешу себя мыслью, что если выйдет OpenGL 5, о его смерти будет говорить ещё рано.
Аноним 10/07/20 Птн 21:49:23 1747387860
>>1747383
А с чего ты взял, что он всё?
Аноним 10/07/20 Птн 21:54:15 1747391861
>>1747387
Я сам так не считаю, но довольно много тех, кто говорит про полную замену вулканом.
Аноним 10/07/20 Птн 22:00:09 1747397862
>>1747391
А они что-нибудь сложное на нём писали? Просто гл удобен и прост, а вулкан не очень.
Аноним 10/07/20 Птн 22:02:01 1747400863
Аноним 10/07/20 Птн 22:05:14 1747409864
>>1747397
Не знаю, у них аргумент, что это API предполагается использовать не напрямую, а с помощью движков, которые сами всё разрулят. Звучит убедительно, но ведь далеко не всем нужна трёхмерная графика исключительно для создания AAA-игор. Есть ведь куча научного и подобного софта, где те движки были бы слишком жирными, а использование вулкана слишком трудозатратно. Опенгл тут идеально подошёл бы в качестве апишки среднего уровня, ещё не движок, но уже не системщина.
Аноним 10/07/20 Птн 22:07:19 1747415865
>>1747409
>>1747400

Я посмотрел картинку, после неё вопросы отпали, совсем. Тот кто умеет использовать вулкан сверхчеловек.

Аноним 10/07/20 Птн 22:39:43 1747454866
>>1747415
Скорее всего всё не так плохо и это плотно нужно написать всего один раз и забыть про него.
Хотя программирование видеокарты - это говно уровня embedded
Аноним 10/07/20 Птн 22:57:33 1747475867
>>1747383
Что есть всё? Да, развиваться оно скорее всего не будет вообще. Но юзать ты его сможешь юзать сколько хочешь, оно же никуда не ходит. До тех пор, пока тебе не нужны хуанговские лучи и прочие нововведения - используй OpenGL и не парься.
Аноним 10/07/20 Птн 23:28:58 1747503868
>>1747475
Не будет развиваться, по-моему, и есть всё. Ну, не знаю. Время покажет.
Аноним 11/07/20 Суб 00:03:37 1747542869
>>1747034
Что-то похожее уже задевали в прошлых тредах.
И, если я не ошибаюсь, пришли к такому: прога использует что-то вроде косвенной адресации - то есть те адреса, которые ты можешь вывести на экран, это не прямой адрес в оперативе, а в какой-то виртуальный лист памяти, грубо говоря.
И сегодня у тебя нулевой адрес находится в одной части оперативы, а завтра в другой. Допустим, ты подсосался к памяти другой программы, сохранил в файл адрес переменной - в этом случае не получится уже читать с перезапуском из одного и того же места.
Но это все могут быть мои заблуждения из-за того, что я когда-то не понял дискуссию об этом.
Аноним 11/07/20 Суб 00:35:15 1747588870
>>1747542
Операционка теоретически не дает попасть в физические адреса чужого процесса, и тому процессу тоже не дает. Правда есть всякие хитровыебанные уязвимости типа spectre.
Аноним 11/07/20 Суб 00:45:42 1747606871
>>1747034
Доступ к любой памяти, которую ты специально не выделил - UB. А уж попал ты или не попал - без разницы. В адресное пространство другого процесса ты без ReadProcessMemory все равно не достучишься.
Аноним 11/07/20 Суб 04:41:10 1747710872
>>1747034
Ну работать будет, а UB или не UB по бумажкам -- хер его знает.
Аноним 11/07/20 Суб 04:42:05 1747711873
>>1747475
>оно же никуда не ходит
эпол уже задепрекейтила.
Аноним 11/07/20 Суб 11:07:54 1747793874
>>1728315 (OP)
Кто-то ещё пишет на этом некроязыке???
Аноним # OP 11/07/20 Суб 11:27:05 1747817875
6d030877a2e2bf7[...].jpg 39Кб, 680x393
680x393
Аноним 11/07/20 Суб 11:34:25 1747819876
Аноним 11/07/20 Суб 11:56:44 1747842877
Сап аноны. Вкатываюсь к вам. Хочу узнать через какое время изучения языка смогу вкатиться на работу хотя бы на 30к вечно деревянных если в день буду ебашить 4-6 часов с упором в практику. До этого год писал на piтоне.
Аноним 11/07/20 Суб 12:37:27 1747887878
Аноним 11/07/20 Суб 12:40:22 1747891879
Аноним 11/07/20 Суб 14:10:43 1748009880
>>1747370
Зачем тебе, чтобы было [x][y]? Никаких преимуществ перед [y][x] абсолютно, только путает насчёт порядка доступа по индексам: соблазняет цикл внешний сделать по х, внутренний по у (привет кэшмиссы).
Скорость скоростью, но то, что я скинул, в первую очередь, читабельно и просто. Ну и точно быстрее, если тебе это важно. То, что ты там назамерял, ещё ни о чём не говорит.
Аноним 11/07/20 Суб 14:40:58 1748036881
>>1747793
Только тупорылые компании, тебе в таких будет не интересно, так что забей на некроязык и дай анонам поиграться с трупом.
Аноним 11/07/20 Суб 14:45:01 1748038882
>>1747842
На что ты надеешься? Тебе на рiтоне мало платят?
Можно же пойти на hh и посмотреть, что просят от того, кто хочет 30к. Учишь это - собеседуешься. В случае провала снова учишься, потом снова собеседуешься, и так пока не поймешь, что это не твое.
Аноним 11/07/20 Суб 14:53:59 1748044883
>>1748038
На piтоне я делал всякую хуебту на фрилансе для дрочащих мозг васянов с малым бизнесом, а теперь хочу вкатиться в тру язык и быть универсальным и востребованным.
>это не твое
С чего это?
Аноним 11/07/20 Суб 15:01:36 1748051884
>>1748044
>c++
>быть универсальным
Да, тогда действительнотлет 10-20.
>С чего это?
Твой заход начинается с вопроса "что нужно знать, чтобы зарабатывать 30к", и ты просто так почему то решил, что кресты это труЪ, универсально и востребованно.
Аноним 11/07/20 Суб 15:04:16 1748055885
>>1748051
А разве не так? На каком ещё языке можно завести и лоулевел чепуху и игровые движки с ядрами ос? А деньги так-то всем нужны, пиздец экономики грядёт.
Аноним 11/07/20 Суб 15:08:01 1748059886
>>1748055
Чел, просто грустно читать, честно. Движки и ОС как раз и дрочат "лоулевел чепуху".
Аноним 11/07/20 Суб 15:13:19 1748067887
>>1748059
От тебя было больше пользы если бы ты не грустил, а объяснил в чём я не прав и что с крестами не так для достижения моей цели.
Аноним 11/07/20 Суб 15:24:46 1748078888
>>1748067
>чём я не прав
>можно завести и лоулевел чепуху и игровые движки с ядрами ос? А деньги так-то всем нужны, пиздец экономики грядёт.
Вот тут ты и не прав, я вроде это уже написал.
>для достижения моей цели
Какая у тебя цель?
Зарабатывать 30к? Столько можно и в Пятёрочке. 150к? Столько и питонистом можно зарабатывать. Причём тут плюсы?
Быть востребованным? Востребованны 10x инжиры, а быдлокодеры нахуй никому не нужны, от них спасения нет. Язык при этом абсолютно не важен.
Так зачем ты пришёл в плюсовый тред, где парни угорают по ренжам и UB?
Аноним 11/07/20 Суб 15:29:32 1748082889
А чего так долго без переката в этот раз?
Аноним 11/07/20 Суб 15:32:05 1748084890
Есть книги для аутистов? Максимально понятные?
Аноним 11/07/20 Суб 15:36:30 1748090891
>>1748084
Попробуй Базовый курс Липпмана. Книга современная и внятная, но насколько подходит людям с проблемами в развитии не знаю.
Аноним 11/07/20 Суб 15:39:13 1748094892
>>1747710
Вот не обязательно. Оптимизатор выпиливает переменные, которые ты явно не использовал, и в результате, если и сработает, похерится что-нибудь другое. Но может с volatile и сработает.
Другой вопрос - если переменная используется явно, или объект вообще в куче...
Аноним 11/07/20 Суб 15:42:36 1748099893
>>1748009
> Зачем тебе, чтобы было [x][y]?
Потому что x всегда идет первым.
Аноним 11/07/20 Суб 15:48:15 1748110894
>>1748099
Ну ты вспомнил. Срач о порядке индексов старше всех здесь присутствующих. Если бы на доске был фортран-тред..

Впрочем, никто не может запретить тебе индексировать хоть змейкой, хоть с единицы.
Аноним 11/07/20 Суб 16:07:42 1748152895
>>1748110
Что вспомнил? Ты математику в школе проходил? Тогда должен понимать.
Аноним 11/07/20 Суб 16:10:08 1748157896
>>1748099
х у школьников там всегда первый, а дальше детские привычки отходят на второй план, и делать начинаешь как надо, а не как учили.
Аноним 11/07/20 Суб 16:10:45 1748158897
Аноним 11/07/20 Суб 16:12:44 1748161898
>>1748157
Х первый у всех, кто занимался математикой.
Аноним 11/07/20 Суб 16:12:56 1748162899
>>1748009
Помню, как я делал в универе лабу на C++ Builder и жидко обосрался, когда пытался в виджет-таблицу записать матрицу, потому что у них, блеать, [x][y].
Аноним 11/07/20 Суб 16:14:00 1748167900
>>1748161
Я сам занимаюсь математикой, и могу вполне авторитетно сказать тебе пойти нахер с такими заявлениями.
Аноним 11/07/20 Суб 16:15:50 1748171901
>>1748167
Решать домашку однокласснице это не "заниматься математикой"
Аноним 11/07/20 Суб 16:17:13 1748172902
Аноним 11/07/20 Суб 16:21:54 1748184903
>>1748171
Ну ты-то точно знаешь, что такое "заниматься математикой", икс-то у тебя всегда первый! Ты осознаёшь, фантазёр, что относиться к своим выдумкам как к реальности и хуярить на плюсах -- вещи немного несовместимые? Икс у него блять и игрек не в том порядке, да пошёл ты нахуй.
Аноним 11/07/20 Суб 16:50:39 1748242904
Если когда-нибудь кто-нибудь ебался с матрицами, которые тензоры второго ранга, в координатном представлении, то он помнит, что элементы матрицы A индексируются номером строки i и номером столбца j как A_i_j. Проводя нехитрую аналогию, i работает как y-координата элемента, j -- как x-координата. Короче, получается A[y][x]. Ещё одно очко в пользу этой записи.
Аноним 11/07/20 Суб 17:03:58 1748254905
>>1748184
Как при умножении 100 на 0 получается не 100, а 0? А? Ученые, в говне моченые? Если я переложу 100 яблок из бочек А в пустую Бочку Б у меня не пропадут блядь яблоки все разом нахуй.
Аноним 11/07/20 Суб 17:07:23 1748259906
15933880479321.png 340Кб, 900x900
900x900
>>1748242
>Если когда-нибудь кто-нибудь ебался с матрицами
Ебался с матрицами в direct3d и в opengl, и сгорел нахуй от этих сраных математиков с их ебучими row-major и column-major, которые всё только запутали.
Мне похуй, как оно у них там в воображении делится на строки и колонки, мне надо только знать, какой элемент по счету в памяти куда попадёт.
Аноним 11/07/20 Суб 17:08:37 1748263907
>>1748254
Да, мы в говне мочёные, всё так.
Если серьёзно отвечать на мини-пасту про яблоки, то тут происходит подмена понятий с умножения как чисто математической хуйни на больную фантазию яблочного маньяка.
Аноним 11/07/20 Суб 17:10:09 1748266908
>>1748259
Жиза пиздец. Как я понял, row-major юзают, если базис левый, и наоборот. Вздумал же кто-то глубину глубиной назвать, и понеслось. Все нормальные люди правые тройки используют, а эти нитакие.
Аноним 11/07/20 Суб 17:13:10 1748272909
Аноним 11/07/20 Суб 17:17:53 1748278910
Надо сериализовать/десериализовать кучу разных объектов в один файл. Понятно, что для каждого класса можно прописать руками, как конкретно его сериализовать.
А вот как потом обратно по данным из файла создать объект? Еще раз, классы разные. Т.е. допустим первое слово в каждой строке - это название класса. Как зная название класса в string создать его инстанс в рантайме?
Аноним 11/07/20 Суб 17:18:48 1748280911
>>1748254
Если ты переложил яблоки из бочки А в бочку Б, то произошло вычитание, при чём тут умножение на 0?

Если тебе привезли пять бочек по 100 яблок в каждой, то у тебя 5х100 = 500 яблок.
Ты отдал 2 бочки Абу, 2 бочки Страуструпу и 1 бочку Степанову.
У Абу 200 яблок, у Страуструпа 200, у Степанова 100, а у тебя 100х0 = 0 яблок. Ты понял, куда их дел? Если нет, то не пользуйся умножением и не парься.
11/07/20 Суб 17:35:43 1748303912
>>1748242
Если кто ебался с curses, там порядок (y, x)
Аноним 11/07/20 Суб 18:12:36 1748352913
>>1748278
Пока что кроме как if (str == "classname")... никак.
Но по идее ты должен знать заранее, что и как ты загружаешь.
Аноним 11/07/20 Суб 18:13:07 1748355914
>>1728315 (OP)
Я не понял, уже середина 2020, а cmake всё ещё не поддерживает модули?
Аноним 11/07/20 Суб 18:17:01 1748364915
627EC00F-A9CB-4[...].png 94Кб, 800x1200
800x1200
437D0B41-FCDB-4[...].jpeg 90Кб, 807x646
807x646
>>1747817
>>1748036

Дебильные, ну вы чо тригернулись так, кек?
Аноним 11/07/20 Суб 18:26:52 1748378916
>>1748278
>Как зная название класса в string создать его инстанс в рантайме?
Погугли реализации фабрик в с++.
В целом всё, конечно, сводится к if (name == "..."), но можно при желании нагородить систему, в которой классы будут регистрировать себя, а макросами и шаблонами сделать так, чтобы это было одной строчкой в объявлении класса.
Аноним 11/07/20 Суб 18:26:54 1748379917
Аноним 11/07/20 Суб 18:28:58 1748380918
Хочу создать класс, в котором есть строка, хранящая имя экземпляра класса. Как это сделать?
Аноним 11/07/20 Суб 18:29:39 1748381919
>>1748378
Плюсую. Нужна фабрика, а if можно убрать только сделав имя шаблонным параметром, но, насколько я понимаю, тогда их все нужно проинстанциировать заранее.
Аноним 11/07/20 Суб 19:04:31 1748404920
>>1748380
MyClass my_object;
my_object.object_name = "my_object";
Аноним 11/07/20 Суб 21:04:31 1748520921
>>1748009
>>1748157
>делать как надо
Так ему и надо чтобы x был первым. Вообще то язык это просто инструмент. Это как если бы ты подошел к менеджеру и сказал что у тебя в ценнике сначала будут копейки, а потом рубли, потому что ты по другому запрограммировать не умеешь.
Аноним 11/07/20 Суб 21:05:25 1748521922
>>1748254
Умножение на 0 означает что у тебя спиздили бочку, вместе со всеми яблоками.
Аноним 11/07/20 Суб 22:01:10 1748567923
>>1748520
Ему хочется, чтобы х был первый, у него нет в этом необходимости.
С копейками и рублями немного неточное сравнение. Оно будет более точным, если ценник, в котором поменяли порядок, будет понятнее обычного в десять раз, и покупатель будет тупить на кассе в два раза меньше. Да, кому-то копейки вперёд рублей видеть непривычно, но если это со стороны реализации более естественно, какая тебе разница? Неужели это оправдывает вставку непонятных костылей и уродование кода?
Аноним 11/07/20 Суб 22:03:10 1748572924
>>1748009
>>1748520
Я дальше стал экспериментировать. Сделал 4 класса таблицы у котороых [x][y], [y][x], умножение и замена умножения сдвигом (длина строки - степень двойки и дополняется пустыми). Компилил с -O3 на g++ и clang++. Из замеров вмерени исключены всякие резервирования памяти. Тут-то оказалось, что умножение быстрее сдвига! Смотрю в таблицу операций по таймингу
https://www.agner.org/optimize/instruction_tables.pdf
и быть так не должно!
Тогда я решил проверить на несколько отличном от пеки девайсе - Raspberry Pi B+. Одно и то же - умножение быстрее! С поправкой на частоту процессора, конечно. Теперь для окончательного решения сдвиго/умножительного вопроса придется писать на асемблере, благо там алгоритм не сложный.
Аноним 11/07/20 Суб 22:04:07 1748573925
Аноним 11/07/20 Суб 22:07:26 1748577926
>>1748567
Ты ебанутый что ли?
Представь себе какое нибудь использование в реале
get_mouse_pos(&x, &y);
get_pixel(x, y);
c = do_vasyan_calc[y][x];
set_pixel(x, y, c);
Удачи ловить баги, просто потому что у тебя АПИ ебанутое потому что ты не представляешь как записать по другому.
Аноним 11/07/20 Суб 22:22:39 1748597927
Аноним 11/07/20 Суб 22:35:54 1748614928
>>1748572
Замеры производительности -- довольно тяжёлое занятие. Сам я ориентируюсь на собственные ощущения того, что сколько стоит. В твоей ситуации, я полагаю, всё упирается не в количество тактов на инструкцию, а банально в скорость доступа к памяти, причём разница по скорости между исполнением инструкций и хождению по памяти -- полтора-два порядка. На самом деле не важно, что там у тебя, [x][y] или [y][x], это вопрос простоты реализации и договорённостей между программистами. Важно, чтобы данные обходились в порядке, в котором они лежат в памяти, чтобы процессору удобно было заливать данные из RAM в кэш. Если добавляешь дыры промеж строк, кэширование отрабатывает хуже. Можешь попробовать сделать бенчмарк со случайным характером доступа к памяти, там производительность просядет огого как.
Аноним 11/07/20 Суб 22:43:40 1748620929
>>1748577
Отлично высосано из пальца, молодец, спасибо.
Аноним 11/07/20 Суб 22:49:53 1748627930
>>1748614
>Замеры производительности -- довольно тяжёлое занятие.
Я беру самый железобетонный способ. Вот - обсчитать массив пикселей, и не просто последовательно, а там беготня в хаотических направлениях по пикселям. Замеряю все время обсчета.
>В твоей ситуации, я полагаю, всё упирается не в количество тактов на инструкцию
Не знаю уж чего там наоптимизировал компилер, но в нужном месте кода на крестах всего лишь разница - умножение или сдвиг. И разница на всей обработке процентов 75 и на x64, и на arm. Буду делать на асме без хаков, чтобы посмотреть.

>>1748009
>Зачем тебе, чтобы было [x][y]? Никаких преимуществ перед [y][x] абсолютно, только путает

>>1748157
>х у школьников там всегда первый

>>1748158
>>Потому что x всегда идет первым.
>нет

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

Собственно, почему захотел X вперед Y. Пример, функция рисования прямоугольника на WINAPI (и куча подобных функций других API):

BOOL Rectangle(
HDC hdc,
int left,
int top,
int right,
int bottom
);

Сперва X, потом Y.

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

drawScaled(src_table, dst_table, src_x0, src_y0, src_x1, src_y1, dst_x0, dst_y0, dst_x1, dst_y1);

У меня лично глаза на лоб полезут, если иксы с игреками местами поменять.
Аноним 11/07/20 Суб 22:52:58 1748632931
>>1748627
> Сперва X, потом Y.
Вот и правильно. Абсолютно все библиотеки так делают, анону тоже так нужно делать. А если где-то всё-таки не так, то лучше написать обёртку.
Аноним 11/07/20 Суб 23:02:56 1748640932
>>1748627
Разница ведь не только в умножении и сдвигах, но и в устройстве памяти. Я думаю, разница из-за добавления пустых мест. Вполне может не влезть всё в кэш. Ты на разных размерах массива тестил? На малых, на больших? Чтобы всё в кэш влезло, чтобы ничего не влезло, что-то среднее, и так далее.
>>1748632
Да делайте обёрток сколько хотите. Но в итоге, в первую очередь доступ идёт по строке, по у-координате. Если хотите забыть, что там под слоями абстракций -- пожалуйста, но производительность так проебать проще простого. Дизайн кода не должен забывать об особенностях реализации, и, по-хорошему, должен о них напоминать.
Аноним 11/07/20 Суб 23:04:07 1748641933
>>1748614
> разница по скорости между исполнением инструкций и хождению по памяти -- полтора-два порядка
Из памяти нормальные задержки - 20 тактов. При том что современные процы за такт 2-4 инструкции могут выполнить. Но это всё хуйня, если юзается SIMD и правильное кеширование с нормальным выравниванием памяти. Там уже из стека будет сосать вполне со скоростью выполнения кода, особенно если переходы/арифметика. Алсо компилятор не волшебник, если говнокодить, то он не сможет ничего сделать с говнокодом.
>>1748632
> Вот и правильно.
Это надо смотреть как обход по пикселям идёт. Чтоб не шагать поперёк линий.
Аноним 11/07/20 Суб 23:14:24 1748653934
>>1748641
20 тактов -- это доступ в L2? Это ещё надо префетчер ублажить, чтоб так всё приятно оказалось. В любом случае, там абсолютно не важно, умножает он или сдвигает для индексации, в его ситуации это вообще на производительность не влияет.
Аноним 11/07/20 Суб 23:18:23 1748660935
foto28.jpg 92Кб, 1024x681
1024x681
>>1748640
>Разница ведь не только в умножении и сдвигах, но и в устройстве памяти.
Так и предполагаю, в принципе, что при использовании сдвига вместо умножения в кэш грузятся бесполезные данные. Скорее всего ,в этом дело. Тестил на одной картинке пикрелейтед.
Аноним 11/07/20 Суб 23:19:55 1748662936
>>1748660
Да, всё примерно так и происходит. Потести на картинках разных размеров, станет понятнее.
Аноним 11/07/20 Суб 23:20:30 1748664937
>>1748660
Ойбля, а у нее ширина 1024, степерь двойки, паддинга мусором в строках пикселей вообще нет. Короче, как заассемблю это все, отпишусь.
Аноним 11/07/20 Суб 23:26:44 1748671938
>>1748664
Бля, действительно. Могу тебе с этой хуйнёй только посочувствовать. Удачи.
Аноним 11/07/20 Суб 23:31:57 1748681939
>>1748653
> это доступ в L2?
Напрямую в ОЗУ. Если память выровнена по блокам кеша, то проц весь блок кеширует в L1 при обращении в начало блока, при последовательном чтении сильно быстрее будет. Опять же, можно в AVX-регистры тянуть данные, будет быстрее чем по 64 бита в RAX и ждать задержку. Компиляторы обычно такое не делают, у них максимальная совместимость с некроамудой.
Аноним 11/07/20 Суб 23:47:58 1748695940
>>1748681
А я думал, что напрямую в хорошую современную RAM сходить стоит 50нс. Я правильно понимаю, что при частоте 4ГГц, время такта равно 0.25нс? Тогда поход в некэшированную память -- 200 тактов. Но это при произвольном доступе будет, с данными, не помещающимися в кэш, а не при последовательном. Кстати, блок -- это сколько? Зависит от проца? Так-то довольно логично получается, заебись, спасибо.
Аноним 12/07/20 Вск 01:04:45 1748739941
>>1748620
Сразу понятно, что ты сложнее laba2.cpp ничего не писал
Аноним 12/07/20 Вск 01:05:17 1748740942
Народ, работал 2 года байтойобом на МК, год писал на C# на юните, сейчас хочу вкатиться в с++. Что нужно уметь чтобы устроиться мидлом или джуном в мск? Мб проекты на примете есть, чтобы прокачаться ? Спасибо
Аноним 12/07/20 Вск 01:11:17 1748745943
>>1748740
С++/STL можешь еще QT добавить.
Аноним 12/07/20 Вск 02:37:35 1748764944
>>1747793
мы в Нвидии за 600кк\нс пишем
Аноним 12/07/20 Вск 03:35:58 1748781945
>>1748355
А они где-нибудь уже норм поддерживаются?
Аноним 12/07/20 Вск 03:42:01 1748783946
>>1748567
>Неужели это оправдывает вставку непонятных костылей и уродование кода?
Юзабилити всегда важнее красоты кода.
Аноним 12/07/20 Вск 07:43:15 1748822947
>>1748695
> блок -- это сколько?
64 байта. Под данные обычно 64 блока. Остальное под код.
Аноним 12/07/20 Вск 09:47:00 1748866948
>>1748740
Нужно уметь пользоваться сайтами с вакансиями, где пишут требования к кандидатам.
Аноним 12/07/20 Вск 12:15:31 1748922949
а чего, ананасы, сколько получаете вообще? интернет говорит что по мск средняя 70к. Я так понимаю, что тут смешали и ждунов и сеньеров, потому что низковато в принципе для москвы, не то что уж для айти
Аноним 12/07/20 Вск 12:19:45 1748926950
>>1748922
> интернет говорит что по мск средняя 70к
Я бы за такие деньги не пошёл даже джуном пинать хуи. Мало того что кодинг сам по себе рабская работа, так ещё и платят меньше чем админам без опыта.
Аноним 12/07/20 Вск 12:30:18 1748935951
>>1748926
да это хуйня полная, думаю. Поэтому и хочу узнать у КОМЮНИТИ
Аноним 12/07/20 Вск 14:21:26 1749106952
Аноним 12/07/20 Вск 14:32:53 1749130953
Аноним 12/07/20 Вск 14:34:11 1749132954
Аноним 12/07/20 Вск 14:39:50 1749141955
>>1749132
Язык за которым будущее системного программирования.
Аноним 12/07/20 Вск 14:40:27 1749143956
>>1749141
Чем кресты не такой язык? И раст ведь сложнее.
Аноним 12/07/20 Вск 14:44:18 1749151957
>>1749143
Раст не сложнее. У крестов будущего нет. Раст безопаснее их и не тащит груз обратной совместимости длиной в 30 лет.
Аноним 12/07/20 Вск 14:51:01 1749172958
>>1749151
>будущего нет
Поэтому на них пишется 90% софта и игр?
Аноним 12/07/20 Вск 14:55:44 1749180959
>>1749151
Раст не безопаснее.
Аноним 12/07/20 Вск 14:56:06 1749182960
>>1749172
Новый софт не пишут.
Аноним 12/07/20 Вск 14:56:32 1749183961
>>1749180
Безопаснее. Там ты никогда не сделаешь ошибок с памятью.
Аноним 12/07/20 Вск 14:59:25 1749186962
Аноним 12/07/20 Вск 15:05:01 1749188963
>>1749182
>>1749183
Мне похуй короче. С какой книги лучше всего начинать изучение крестов?
Аноним 12/07/20 Вск 15:05:22 1749190964
>>1749182
тебя послушай, так он вообще нахуй не нужен
везде, где есть железо и взаимодейсвтие с ним нужен с++ - те же ебучие беспилотники яндекса. Давай, ебани на расте пойди обработку данных с лидара
Аноним 12/07/20 Вск 15:06:50 1749193965
Какие отличия ссылок от указателей?
Аноним 12/07/20 Вск 15:10:53 1749201966
>>1749193
Ссылка прибивается гвоздями один раз - ее нельзя не проинициализировать, нельзя поменять на другой объект, нельзя присвоить nullptr, нельзя сделать ссылку на ссылку, нельзя складывать ссылку с ссылкой.
Аноним 12/07/20 Вск 15:23:17 1749229967
>>1749188
Бамп годному вопросу.
Аноним 12/07/20 Вск 15:25:37 1749240968
Аноним 12/07/20 Вск 15:25:59 1749241969
Аноним 12/07/20 Вск 15:27:24 1749247970
>>1749241
Какую лучше читать из шапки? Что масса признаёт больше?
Аноним 12/07/20 Вск 15:30:33 1749251971
Аноним 12/07/20 Вск 15:31:13 1749252972
Аноним 12/07/20 Вск 15:32:47 1749256973
>>1749201
Так теперь еще вопрос. Где это используется? И как часто?
Аноним 12/07/20 Вск 15:35:37 1749261974
>>1749256
в сигнатуре 99% функций
Аноним 12/07/20 Вск 16:16:17 1749321975
qqqqqqqqqqqqqqa[...].png 74Кб, 1534x195
1534x195
Аноним 12/07/20 Вск 17:17:22 1749402976
>>1749256
Лично мне удобно очень использовать их в параметрах функций, когда нужно передать объект, а не копию, но не хочется использовать синтаксис указателей.
Аноним 12/07/20 Вск 17:34:18 1749433977
>>1749402
До параметров функций я еще не дошел
Аноним 12/07/20 Вск 17:36:38 1749435978
>>1748783
До тех пор, пока тебе не понадобилось обеспечить корректность его исполнения, или, что ещё хуже, поправить там чего-нибудь. Хороший код выглядит просто и читается просто, а такое месиво, как у того анона, это невозможно ни прочитать, ни поддерживать. А юзабилити эту твою я смогу обёрточкой накинуть всегда, если меня будут просить такие вот, как ты.
>>1748822
А, это ты cacheline так хитро назвал. Тогда я нихуя нового не узнал, а ты не объяснил, почему при последовательном доступе всё работает гораздо быстрее, чем при случайном. Как я понимаю, за счёт вот этого механизма происходит вся магия: https://en.wikipedia.org/wiki/Cache_prefetching
Аноним 12/07/20 Вск 17:45:25 1749446979
>>1749435
> почему при последовательном доступе всё работает гораздо быстрее, чем при случайном
Потому что при обращении в начало выровненного блока кешируется весь блок и последующие данные берутся из кеша. Сколько раз тебе надо это повторить? У тебя только каждые 64 байта идёт прямой запрос данных из памяти. А если ты читаешь случайные данные, то ничего не кешируется в принципе, каждый раз ждешь задержку.
Ещё почитай про throughput и как правильно разбивать цепочки инструкций для одновременного выполнения некоторых инструкций, что может помочь в чтении случайных данных.
Аноним 12/07/20 Вск 18:24:03 1749495980
1594567442185.jpeg 119Кб, 600x450
600x450
1594567442261.jpeg 1242Кб, 2016x1134
2016x1134
>>1748926
Антош, ну не расстраивай меня пожалуйста
Аноним 12/07/20 Вск 18:34:46 1749509981
>>1749507
Сегодня в 21:00 по МСК
Аноним 12/07/20 Вск 19:11:47 1749541982
>>1749509
Не перекатишь - отсосёшь.
Аноним 12/07/20 Вск 19:18:05 1749551983
>>1748922
Средняя 100к вроде. 60-100к обычно вилка джуна/стажера.
Аноним 12/07/20 Вск 19:35:59 1749562984
>>1749551
И сколько времени нужно с 0 чтобы выучиться до уровня джуна/стажера?
Аноним 12/07/20 Вск 19:42:46 1749571985
>>1749562
1 год 4 месяца 24 дня 11 часов 13 минут 63 секунды
чел, что ты ожидал услышать, всё от тебя зависит: куда вкатываться собираешься, сколько времени будешь тратить, как качественно ты учишься и тды

Аноним 12/07/20 Вск 19:43:41 1749573986
>>1749446
По твоей логике, если я работаю с выровненными данными размером 64 байта, я не увижу разницы между последовательным и произвольным доступом? Ведь тогда каждый доступ по памяти влечёт хождение в RAM.
Аноним 12/07/20 Вск 19:48:14 1749580987
>>1749562
от полугода до бесконечности
Аноним 12/07/20 Вск 20:14:09 1749611988
>>1749573
У меня такое ощущение, что ты под солями. Готовишься к завтрашнему дню?
Аноним 12/07/20 Вск 20:25:37 1749625989
>>1749611
Скорее ты, он же все правильно написал.
Аноним 12/07/20 Вск 20:49:33 1749645990
>>1749573
> если я работаю с выровненными данными размером 64 байта
> я не увижу разницы между последовательным и произвольным доступом
Давай ещё раз. Для тупых.
Когда у тебя выровнена память по 64 байта и ты читаешь последовательно - у тебя после первого чтения остальные данные из блока в 64 байта берутся из кеша.
Когда у тебя произвольное чтение - каждое следующее обращение промахивается мимо кешированного блока и равно отсутствию какого-либо кеша.
Аноним 12/07/20 Вск 20:59:05 1749648991
>>1749645
>Давай ещё раз. Для тупых.
Давай.
>данными размером 64 байта
Какие
>остальные данные из блока в 64 байта берутся из кеша.
Если он уже все 64 байта прочитал?
Аноним 12/07/20 Вск 21:12:41 1749657992
>>1749645
Я тогда тебе охуенный вопрос задам: а как проц определяет, какое чтение произвольное, а какое нет? Ты, наверное, удивишься, но никак. Поэтому прочитанное из RAM подымается наверх до L1 вне зависимости от того, какой у чтения характер, произвольный или последовательный. А вот хардверный префетчер (и софтверный, если есть) как раз следит за характером чтения, и если оно становится похоже на последовательное, то он начинает заливать данные из памяти в кэш ещё до того, как память понадобится. Именно за счёт этого получается быстро, а не из-за простого факта существования кэш-линии.
Аноним 12/07/20 Вск 21:13:34 1749658993
>>1749657
>память понадобится
Данные, конечно, не память, пардон.
Аноним 12/07/20 Вск 21:20:02 1749663994
>>1749645
А, я ещё пару раз перечитал твой пост и понял, что ты не понял. Я о случае, когда меня интересует вся кэш-линия, полностью. В таком случае, какой прок от твоего кэширования?
Аноним 12/07/20 Вск 21:26:24 1749668995
1528314748780.png 67Кб, 687x461
687x461
>>1749648
> Если он уже все 64 байта прочитал?
Как он тебе их прочитает за раз? У тебя 8 операций чтения будет, либо если SIMD используется, то инструкции SSE/AVX довольно медленные. Пока читаются эти 64 байта, в другом порте идет обращение к следующему блоку и его кеширование. Ты же не просто перемещаешь данные, а что-то с ними делаешь. Это с копированием ты в любом случае упираешься в ОЗУ.
>>1749657
> как раз следит за характером чтения, и если оно становится похоже на последовательное
Для таких случаев есть документация по архитектуре от вендоров, где тебе пишут как надо обращаться в память чтоб было быстро. Это тебе надо следить чтоб оно было последовательным, а не процу ванговать что в следующей инструкции ты соизволишь читать.
Аноним 12/07/20 Вск 21:40:51 1749684996
>>1749668
Так, подожди, не путай. Я говорю не об одновременном чтении. Я говорю о том, что мне нужна вся кэш-линия, ровно 64 байта. Ты заострял внимание на эффекте, порождаемом бесполезностью части кэш-линии при случайном чтении, если она мне нужна вся, я привёл пример, когда этот эффект обнуляется.
Ты писал, что "блок" улетает в кэш ровно при обращении в его начало, а теперь пишешь, что где-то там до обращения к следующему "блоку", тот кэшируется вместе с ним. Я не могу понять, ты виляешь жопой, или просто не можешь чётко выразить мысль?
Аноним 12/07/20 Вск 21:41:30 1749685997
Аноним 12/07/20 Вск 22:05:58 1749707998
1537661809047.png 131Кб, 1000x736
1000x736
>>1749684
> при случайном чтении
У тебя случайное чтение в пределах 64 байт?
> "блок" улетает в кэш ровно при обращении в его начало, а теперь пишешь, что где-то там до обращения к следующему "блоку"
Алло, блять. Инструкции не обязаны и не должны строго по порядку исполняться. Обращение в начало следующего блока может и должно быть до того как кончится текущий, за этим должны следить кодеры компилятор.
Мне теперь тебе всю работу процессора объяснять, чтоб каждый пост ты не находил что-то новое и не начинал удивляться как же это так?
> не можешь чётко выразить мысль?
Это у тебя какие-то проблемы с пониманием как работает кеш.
> в другом порте идет обращение к следующему блоку и его кеширование
Что тебе тут не понятно? Почему следующий блок кешируется до того как в нём появляется необходимость или что?
Аноним 12/07/20 Вск 22:16:14 1749718999
>>1749707
Ладно, я понял, что твою толстую бронь не пробить. Я сдаюсь.
Аноним 12/07/20 Вск 22:22:15 17497261000
>>1749718
> Я сдаюсь.
Молодец. Зачем вообще тогда пытался разобраться, если даже не стараешься?
Хотя если вместо чтения документации ты фантазируешь в треде, то наверное тебе и не сильно надо было.
Аноним 12/07/20 Вск 22:30:27 17497301001
>>1749718
Не обращай на него внимания, какой то трал или шизик.
Аноним 12/07/20 Вск 23:59:39 17497911002
>>1749201
>Ссылка прибивается гвоздями один раз - ее нельзя не проинициализировать, нельзя поменять на другой объект

int i = 0;
int& ri = i;

::new(&i) int{}; // ri ссылается теперь на другой объект
Аноним 13/07/20 Пнд 00:10:39 17497961003
>>1749791
Не. Значение объекта можно менять. А объект то тот же.
Аноним 13/07/20 Пнд 00:20:38 17498011004
Перекат будет?
Аноним 13/07/20 Пнд 00:29:29 17498091005
Screenshot20200[...].jpg 174Кб, 720x1280
720x1280
Screenshot20200[...].jpg 180Кб, 720x1280
720x1280
Крестаны, почемы вы до сих пор не написали код быстрее rust? Ммм? В чем дело?
Аноним 13/07/20 Пнд 00:40:23 17498131006
>>1749809
Почитай на хабре про эти ебанутые тесты
Аноним 13/07/20 Пнд 00:41:43 17498141007
Аноним 13/07/20 Пнд 00:43:55 17498181008
>>1749814
https://habr.com/ru/post/480608/

Там в комментах срач хороший. tldr - SIMD инструкции можно дергать хоть из питона через Numpy, результат будет очень близок
Аноним 13/07/20 Пнд 00:44:28 17498191009
Аноним 13/07/20 Пнд 00:49:07 17498261010
>>1749562
Ну в клепание формочек на QT за полгода-год вкатиться еще можно. Если что-то более серьезное, то больше года.
Аноним 13/07/20 Пнд 01:06:08 17498361011
>>1749826
формочки на куте это нихуя не просто
Аноним 13/07/20 Пнд 01:10:24 17498401012
>>1749818
>SIMD инструкции можно дергать хоть из питона через Numpy, результат будет очень близок
А, сорян вот, дернуть-то я и письку могу. Их можно дергать из pitona, чтобы нечто типа fftw3 получилось?
Аноним 13/07/20 Пнд 01:12:29 17498441013
>>1749840
Напрямую из питона нет. Но из питона через сишную прослойку (в нашем случае как раз Numpy, как пример) - да
Аноним 13/07/20 Пнд 01:18:54 17498481014
>>1749844
Numpy компилирует в нативный процессорный код?
Аноним 13/07/20 Пнд 01:20:56 17498491015
>>1749848
Внутри numpy есть проверки на cpuid и использование SIMD для ускорения различных операций, если оно поддерживается.
Аноним 13/07/20 Пнд 01:24:35 17498531016
>>1749849
А если я прям захочу сделать movavg, то это, вероятно, и не нужно вовсе?
Аноним 13/07/20 Пнд 01:30:11 17498581017
>>1749853
Сделай, кто тебе мешает. Вопрос использовать ли SIMD под капотом ты решаешь для себя сам.
Аноним 13/07/20 Пнд 01:38:37 17498631018
>>1749858
То есть Python в данном случае лишь клей. Только в таком смысле и имеет смысл его обсуждать, хорошой ли он клей для блоков более быстрых алгоритмов. Как зашить питоний проект в одну экзешку? Да никак, только распаковать скрипты в %temp%, других вариантов не существует.
Аноним 13/07/20 Пнд 01:45:59 17498651019
>>1749796
>А объект то тот же.
new создаёт новый объект.
Аноним 13/07/20 Пнд 01:46:37 17498661020
Аноним 13/07/20 Пнд 01:58:25 17498691021
>>1749866
В данном случае типа int, верно.
Аноним 13/07/20 Пнд 01:59:35 17498711022
Аноним 13/07/20 Пнд 02:00:55 17498721023
Аноним 13/07/20 Пнд 09:56:45 17499841024
изображение.png 27Кб, 1003x377
1003x377
Каким образом можно реализации шаблонных функций написать в другой единице трансляции?
По идее ему нужно явно в second.cpp написать что-то вроде using A<float>, чтобы он знал что используется float и скомпилировал функции с флоатом - но что-то я не могу нагуглить каким образом это можно указать.
Аноним 13/07/20 Пнд 10:56:10 17500121025
>>1749984
Тебе нужно ещё явно инстанцировать шаблон для тех типов, с которыми работать будешь.
Аноним 13/07/20 Пнд 12:43:49 17500861026
Аноним 13/07/20 Пнд 13:13:46 17501141027
Аноним 13/07/20 Пнд 13:33:18 17501321028
Аноним 13/07/20 Пнд 13:46:37 17501431029
>>1750114
Потому-что надо знать С++, неправильный С++ (например то, как QT манажит память), и еще сам Qt сверху.
Аноним 13/07/20 Пнд 15:18:33 17502231030
Как сделать string to int?
Аноним 13/07/20 Пнд 15:23:07 17502271031
Аноним 13/07/20 Пнд 15:25:51 17502341032
>>1750227
Что лучше, то что ты скинул или stoi?
Аноним 13/07/20 Пнд 15:43:09 17502661033
1527562339483.png 88Кб, 1884x743
1884x743
>>1750234
Я слышал что from_chars люто оптимизировали на скорость. Но это, наверное, больше к флоатам относится.
Аноним 13/07/20 Пнд 15:44:36 17502691034
>>1750266
А он всеми компиляторами поддерживается?
Аноним 13/07/20 Пнд 15:50:48 17502801035
Мда, попытка посчитать сумму цифр превращается в ад.
Аноним 13/07/20 Пнд 16:11:25 17503091036
1591186131091.png 18Кб, 594x359
594x359
>>1750280
Прикалываешься что ли?
(Пытался на ренжах написать, но чет пока запутался)
Аноним 13/07/20 Пнд 16:51:07 17503571037
>>1750309
Я пытался почитать сумму цифр в string, что сути не меняет. Сделал потом как на пикриле, но по началу не очень принимал эту идею. Это будет во всех кодировках норм работать? Есть ли кодировки где цифры не подряд идут?
Аноним 13/07/20 Пнд 17:04:20 17503801038
>>1750269
Это часть 17 стандарта, так что должно всеми
Аноним 13/07/20 Пнд 17:17:36 17503951039
>>1750380
по-моему в гцц все еще нету
Аноним 13/07/20 Пнд 17:24:18 17504011040
Аноним 13/07/20 Пнд 18:07:05 17504431041
>>1750357
Нет, разделители и точки не учитываются.
Аноним 13/07/20 Пнд 19:17:25 17505351042
Почему QLabel не хочет менять картинку в цикле?
Я пишу for в котором меняю картинку, затем thread::sleep_for(2s), поток спит, но изменение картинки, вызванное ранее, не срабатывает
Компилятор как-то пытается оптимизировать мой код и решает один раз поменять картинку вместо n?
Аноним 13/07/20 Пнд 20:05:25 17505981043
>>1750535
Для такой хуйни придумали QTimer
Аноним 13/07/20 Пнд 20:15:22 17506041044
>>1750223
Это пиздец, я ебался с лямбдами и stoi, когда можно было просто boost::lexical_cast заюзать. Будем верить что в 20 стандарте завезут.
Аноним 13/07/20 Пнд 20:19:15 17506081045
Аноним 13/07/20 Пнд 21:41:26 17506671046
Аноним 13/07/20 Пнд 21:49:11 17506821047
>>1750677
И что? Это одинаково в обоих случаях.
Перепиши как надо, кто против то?
Аноним 13/07/20 Пнд 21:53:31 17506881048
Аноним 13/07/20 Пнд 22:02:00 17506951049
>>1750687
Я думаю, бенчмарк о том, что from_chars явно сколько-нибудь быстрее, чем stoi. Непонятно, насколько, но быстрее, и именно это и хотелось показать. Правда, непонятно, лежит ли эта разница в пределах "погрешности измерения".
Аноним 13/07/20 Пнд 22:02:02 17506961050
>>1750694
Мне похуй что интересует "вас", при изменении Q один из них как будет быстрее, так и останется.
Аноним 13/07/20 Пнд 22:30:48 17507141051
У меня почему-то 115-й тред не отображается, у вас тоже так?
Аноним 13/07/20 Пнд 23:05:26 17507301052
char*
Аноним 13/07/20 Пнд 23:06:58 17507311053
говнокод.png 39Кб, 718x670
718x670
>>1748641
>Это надо смотреть как обход по пикселям идёт. Чтоб не шагать поперёк линий.

https://ideone.com/0A4SZZ

Какой все же вредный этот ваш кэш. А если мне надо побегать вокруг пикселя относительно хаотически в некотором радиусе? Ну, допустим, побью я картинку на квадратные тайлы, при первом обращении буду запрашивать [0][0] пиксель тайла, чтобы весь квадрат зэкэшился. Конкретный размер квадрата надо смотреть из параметров конкретного процессора? А как?
Аноним 13/07/20 Пнд 23:13:00 17507391054
Аноним 14/07/20 Втр 03:00:17 17508881055
Двач, где читать про то, как работает QT и про его подводные.В интернете есть только как работать с QT, а не его принципы и технологии работы. Шлее читал, годно.
Аноним 14/07/20 Втр 04:16:09 17508981056
>>1750888
QT это гигантская обоссаная абстракция, внутрь лазить - ну спорно.

А вообще статьи на kdab.com и https://www.bogotobogo.com
Аноним 14/07/20 Втр 08:42:26 17509561057
>>1750731
У практически всех процессоров, на которых твой код может запуститься, длина cache line -- 64 байта. Кстати, необязательно запрашивать [0][0] пиксель тайла, тот анон просто шиз. У тебя при доступе к любой памяти в кэш улетает 64 байта, в которых она содержится.
Хорошая статейка про наблюдаемые эффекты кэширования: http://igoro.com/archive/gallery-of-processor-cache-effects/
Аноним 14/07/20 Втр 09:30:24 17509721058
>>1750888
> Шлее читал, годно.
Ну ты и годноед. Шлее - это копипаст официальных доков qt
Аноним 15/07/20 Срд 02:45:05 17516571059
перекат 15/07/20 Срд 17:25:34 17521471060
Аноним 16/07/20 Чтв 00:45:03 17524611061
>>1741681
Элементарное свинае делаешь и всё
template <class OneByte>
std::enable_if_t<(sizeof(OneByte) == 1),void> foo() {
}
Аноним 17/07/20 Птн 15:00:31 17538991062
>>1748184
Это он ещё не сталкивался с формулой перемножения матриц.
Как у него крышу сорвет-то.
Аноним 24/07/20 Птн 18:05:50 17593601063
пытаюсь написать обёртку для окон из винапи

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

в своем классе-обертке мне надо бы туда скормить лямбду которая захватила this

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

есть ли способ это как-нибудь обойти может передать указатель на оператор () у лямбды или типа того?
Аноним 25/07/20 Суб 03:00:25 17596571064
>>1759360
Сделай структуру, в которой будет лежать std::function, и на эту структуру передавай указатель.
Аноним 05/08/20 Срд 13:43:50 17689371065
>>1728732
Можно просто f(T(&a)[n]).
Аноним 09/08/20 Вск 16:42:28 17726631066
>>1741244
В прямом, на то она и Community-версия (Она же на пике?). Насчёт платных не в курсе.
Аноним 19/08/20 Срд 01:10:11 17810641067
image.png 3Кб, 280x87
280x87
Аноним 19/08/20 Срд 02:19:22 17811031068
>>1781064
Тупая скриптомакака подтвердила свою тупость. Привет из 118 треда.
Аноним 31/10/20 Суб 21:44:01 18451531069
Ребят, что думаете насчёт обучения за счёт реализации разных классов/функций из STL самостоятельно?
Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов