Этого треда уже нет.
Это копия, сохраненная 28 апреля 2021 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
2 1871189
раст лучше чем с++
4 1871192
>>871189
javascript лучше чем c++
.png1,6 Мб, 1794x1406
5 1871193
>>871191
>>871192
Именно так
38225a.jpg67 Кб, 500x651
6 1871203
Вкотировался
image.png2,3 Мб, 1500x1000
010101011 7 1871231
01010101011010010101001010101011010101000101001011101001001010111010100101010101010101001010101010101010100010101010101010101110010100101
8 1871232
>>871203
Zig лучше чем С
9 1871235
С лучше чем ++С (инкремент не нужен).
10 1871252
UB одновременно лучше и хуже, чем UB.
11 1871276
Знаете, анончики, я вот тут подумал: насколько же ущербны не знающие плюсы люди... Мне их даже жаль. Это как родиться без ног не знаю...
12 1871298
>>871276
А те кто знают себе ноши отстрелили
13 1871324
>>871298
Не всем дано совладать с силой
14 1871354
>>871276
Единственный нормальный язык.
Когда-то думал, что все начинают изучать кодинг с C/C++, а затем открыл для себя двач.хк/пр и увидел вопросы "а почему функция print() в питоне такая сложная, помогите(((".
15 1871393
Какую фишку c++20 больше всего ждёт, кроме модулей, ренжей, корутин и концептов? Я вот std::ssize_t
16 1871394
Крестовики, никак не могу решить стоит ли активно юзать исключения для эррор хэндлинга. В каких ситуациях, кроме ебейшего хуйлоуда и эмбедщины, эксепшены лучше не юзать, а дрочить ошибочки как в чистой Сишке?
17 1871396
>>871393
родные форматные строки без надобности юзать сишный printf.

>std::ssize_t


Дык есть же, нет?
18 1871399
>>871396

> Дык есть же, нет?


В posix. Я больше имел ввиду std::ssize(vec)
19 1871404
>>871354

> что все начинают изучать кодинг с C/C++


У меня в школе паскаль была, но в унике сразу с плюсов начали.
image.png300 Кб, 971x488
20 1871463
Куда подевался ребёнок, который тут весь прошлый тред рвался против goto?
21 1871493
>>871463
Почему бы просто не написать delete _p?
22 1871499
>>871393
std::span, заебался таскать велосипед
designated initializers наконец-то в стандарте
template parameter list для лямбд вместо ебли с using T = std::decay_t<decltype(zalupa)>
23 1871503
>>871463
Кнут писал с пруфами, что в некоторых задачах goto является оптимальным. Александреску не авторитет тащемта.
24 1871506
>>871499

>std::span, заебался таскать велосипед


Удваиваю. Тоже таскаю с собой шаблонный велосипед а-ля array_view.
25 1871544
>>871393
std::format офк. Как блять в здравом уме вообще могла придти идея использования стримов которые мало того, что писать не удобно так еще и по производительности проигрывают сишным printf.
26 1871550

> ssize


> Историческое заикание

27 1871551
>>871550
Мое любимое это strstr()
28 1871638
>>871544
В плюсах почти все проигрывает Сишке по производительности. Без углубления в дебри, Сишный компиль банально генерит меньше машинного кода, ибо сам язык гораздо проще и примитивнее плюсов.
29 1871648
30 1871651
>>871394
бамп вопросу
31 1871664
>>871394
>>871651
Заебали уже. Эксепшены очень медленные и их можно использовать только в дебаге. В релизе никогда не должно быть этого говна.
32 1871665
>>871394
>>871651
Пчеликс, это очень сложный вопрос.

Под эксепшены должна быть заточена вся архитектура модуля\софтины. В последнее время я вот стараюсь их использовать и рекомендую всем использовать в учебных\самопальных проектах.

Но если у тебя в проде уже есть положняк уровня "никаких эксепшенов", как, допустим, в том же гугле - то увы.
33 1871666
>>871664
так не надо пихать эксепшены в hot лупы. А во всем остальном их можно использовать.
34 1871669
>>871666

> А во всем остальном их можно использовать.


А потом код работает медленнее джавы. Пиши сразу на питоне, хули.
35 1871671
>>871669
да кто тебе это сказал? Щас во всех компиляторах почти Zero Cost эксепшены, когда они не кидаются. Причем этот оверхед отсуствует только если у тебя эксепшены полностью отключены, либо каждая функция помечена как на ноэксепт.

Сам процесс КИДАНИЯ\ЛОВЛИ конечно медленнее, но другое дело, что исключение - это именно исключение, и кидаться должны очень редко. Это серьезных холиварный вопрос про архитектуру приложения, а вот срач за перф тут - правда хуйня.
36 1871680
>>871671
Звучит как оправдание говнокода, который подпирают эксепшенами как костылями чтоб игнорить ошибки.

> кидаться должны очень редко


Никому они не должны ничего. И в любой либе ты можешь получить тонну этого говна за воротник.
37 1871682
>>871394
Примерно всегда. Во-первых, они пиздецки усложняют флоу кода, во-вторых, чаще всего просто весь кидающий эксепшены код заворачивают в трай-кетч, и ложат хуй пока работает (а потом кто-то, возможно и ты, будешь ебстись, разгребая стектрейсы и логи, чтобы узнать что кто-то просто хуй клал), в-третьих — они тормозят.

Короче, ошибки-значения лучше во всём, но в плюсы ADT не завезли, поэтому чтобы таким заниматься придётся писать кучу бройлерплейта, так что увы и ах.
38 1871687
>>871680

>Звучит как оправдание говнокода


Пчел, то есть, когда все вокруг
— сидят на всякой нагенеренной мышкой xml-like залупе для проектов/интерфейса/итд которую невозможно не замерджить ни поправить без ебли;
— юзают жирные форматы для передачи данных когда есть куча готовых бинарных форматов (которые зачастую даже удобнее если платформы больше 1-й);
— юзают говно мамонта когда уже есть сотня альтернатив, причём половина проверена в бою;
— согласны с политической ситуацией кекус;
— итд.
тебя такие костыли не смущают, а эксепшены — прям пиздец? Это типичная хуйня для сокрытия проблемы, поэтому и используется.
39 1871688
>>871687

>Это типичная хуйня для сокрытия проблемы


здесь и сейчас*
40 1871689
>>871682

>они тормозят


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

Гугл запрещает своим плюсокодерам юзать эксепшены, но в гугле плюсы только в адовом хуйлоуде (и в хроме), поэтому там это оправдано. Но везде ли надо высасывать максмум производительности, кладя хуй на читаемость и поддеживаемость кода?
41 1871691
>>871680
Гугл запрещает использовать эксепшены, потому-что у них говноеды, которые не умеют в RAII во всем адовом легаси.

Как я уже упоминал, в hot loop'ах само собой это все не используется.
42 1871694
>>871671
Вот этого поддвачну. Стоит просто отделить код, который должен работать быстро, и код, в котором могут возникать исключительные ситуации. Первый проектировать как работающий всегда корректно и полностью обмазать noexcept-ом и ассертами упало? давай корректные данные или иди нахуй, из второго аккуратно подливать/забирать данные для первого, всякую валидацию делать тут же.
43 1871707
>>871394
Если тебя потом попросят портировать твою либу на микроконтроллеры то будет неприятно переделывать.
44 1871708
>>871687
Все говнокодят и я тоже буду писать так? Заебись логика.
45 1871727
>>871707
а если софт чисто юзерспейсный и не предполагается портирование на слабые железки?
46 1871833
>>871689

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


>>871682

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


ТРЕД НЕ ЧИТАЙ @ СРАЗУ ОТВЕЧАЙ
47 1871834
>>871708
Ну ты-то можешь не писать, я просто объяснил, что это такая же конъюнктура как и в других областях как программирования так и жизни в целом — такое говно существует и ты будешь его есть потому что диды ели.
48 1871835
>>871727
Ну тогда можешь начать писать бройлерплейт из обвязок ко всему остальному миру, не юзающему исключения (и в большинстве случае плюсы вообще, лол), а потом такие же только уже для связи твоего софта с внешним миром (и прокидывать коды из эксепшенов, кекс).
49 1871845
>>871394

>а дрочить ошибочки как в чистой Сишке?


Нигде.
expected / optional / result

exceptions are for exceptional situations
(or self contained situations)
(or intentional multilayer error propagation)
50 1871900
Я бы побоялся использовать исключения в языке без GC.
51 1871905
>>871900
Ну бойся
52 1871908
>>871900
Исключения можно юзать только с повсеместным юзанием смартпоинтеров/деструкторов.
53 1871914
>>871908
Будто кто-то пишет на плюсах без RAII
54 1871915
>>871914
Ты не представляешь, какое дерьмо шлепает средний говноед из НИИ и\или вчерашний студентик
55 1871918
>>871914
Как тебя RAII спасёт при краше потока, например?
56 1871922
>>871918
от краша потока меня спасет catch?
57 1871925
>>871922
Нормальная обработка ошибок спасёт от утечки памяти при краше. А с эксепшенами только два раза один код напишешь.
58 1871931
>>871925
Это только если оборачивать 100500 строк в один try.
59 1871943
>>871922
Что такое "краш потока"? Если в потоке выброшено исключение, то все деструкторы вызовутся, если в потоке будет сегфолт или повреждение памяти, то все, приехали, тут уже ничего не поможет.
60 1871955
а чё функции в main не делаются? И вы это терпите?
61 1871957
>>871955
А что, должны? Может, тебе ещё и динамическую типизацию в кресты?
Лямбды
62 1871960
>>871957

> должны?


Да.

> динамическую типизацию в кресты?


Рефлексия не помешала бы.
63 1871961
>>871957
Динамическая типизация код делает некрасивым
64 1871993
>>871960
Рефлексия зло. Понаклепали сисярповых либ на рефлексии, а потом их на любую платформу с ahead-of-time компиляцией не заюзать (например на айфоны)
65 1872000
>>871993
Так нужна статическая рефлексия. Что мешает компилятору сгенерировать таблицу полей класса с их названиями и смещениями?
66 1872006
>>872000
Так вроде и так можно. В конце концов можно кодогенератором по типу protobuff
67 1872023
растет растет моя latex glove in ass ARHHHHHHHHAAAAAAAA
image.png17 Кб, 439x398
68 1872034
>>872006
Можно только через макросы, но там пиздец костыли приходится юзать. Вот сейчас я использую самописную хуйню через макросы. Для моих структур она работает, но если нужно сериализовать структуру из библиотеки какой-нибудь, то все соси хуй. Нужна поддержка именно на уровне языка.
69 1872036
>>872034
А я делал конвертацию из тюпла в структуру и обратно
70 1872047
Очень борщем пахнет.
71 1872052
>>871957

>динамическую типизацию


void*
72 1872054
>>871993
Как там в 2018? Про .NET Native что-нибудь слышно? Вроде в 2019 должны придумать.
73 1872076
>>872052
Вот бы ещё decltype и typeid могли дать реальный тип...
74 1872267
>>872000
Жди C++23/26
75 1872270
>>872000

>Что мешает компилятору сгенерировать таблицу полей класса с их названиями и смещениями?


Слоупоки из комитета
76 1872299
>>872267
Бля, вот это жизнь будет.
Что, даже енумы сможем печать без xmacro?
77 1872301
>>871394
без исключений в языке не обойтись
тк конструкторы и перегруженые операторы не имеют другого способа вернуть ошибку
об этом рассказывал страуструп в "дизайне и эволюции" еще 30 лет назад
по похожей причине, кстати, и появилась перегрузка - так как требовалось конструировать объекты классов разными способами, значит нужно несколько конструкторов, значит нужна перегрузка, значит нужен общий механизм перегрузки, а значит нужно запиливать перегрузку и функций-членов и свободных функций
когда страуструп делал первоначальный дизайн языка он исходил из логики что для решения частной проблемы нужен общий механизм, иначе это будет "костыль"
78 1872325
>>872301

> иначе это будет "костыль"


Так это и есть костыль. Если у тебя в конструкторе кидается исключение, то деструктор не вызывается и ты сосёшь немытый хуй. Сами конструкторы говнище. А у нормальных пацанов ошибки через Optional работают.
79 1872333
>>872054
Не знаю, не слышал. Полистал, там есть ограничения, что логично.
80 1872342
>>872325

>Если у тебя в конструкторе кидается исключение, то деструктор не вызывается и ты сосёшь немытый хуй



Вызовутся деструкторы для всех инициализированных на момент выброса членов класса.
81 1872346
>>872301

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


Это главная ошибка в софтверной разработке чего либо. Убивал бы нахуй. Если null был ошибкой на миллиард долларов, то вот эта ебучая овердженерализация всего на свете - это ошибка на все деньги ёбаного мирового банка.
82 1872359
>>872346
Имхо в данном конкретном случае это не плохо, иначе ты бы охуел от количества фич, которые существуют только чтобы использоваться в единственном месте.
В чем вообще доёбка? Типа надо было сделать что перегрузка есть - но только для конструкторов, исключения кидать можно - но только из операторов?
83 1872369
>>872346
На то время альтернативой было: errno; возвращать через ссылочный параметр; возвращать в результате 0 или true. Так что да, общий механизм это охуенно. А то что не распознали его недостатки, так это как доебываться почему сразу не изобрели какую нибудь Джаву еще в 50-х - тут только на опыте можно узнать.
15640387015860.jpg65 Кб, 467x440
84 1872370
>>872369

>не изобрели какую нибудь Джаву еще в 50-х



COBOL
85 1872374
>>872325

>Если у тебя в конструкторе кидается исключение, то деструктор не вызывается и ты сосёшь немытый хуй.


как правильно обрабатывать исключения в конструкторах, написано в каждом учебнике по с++..
86 1872379
>>872374
к примеру, 10е правило в книжке майерса "эффективное использование с++, 35 новых способов.."
или в книжке саттера "сложные задачи на с++", задача 2.13..
87 1872381
>>872346
не соглашусь, в контексте дизайна языка как раз следует использовать одно из главных правил проектирования инженерных систем - если есть частная проблема, то для хорошего решения возможно потребуется общее решение
88 1872383
>>872301

>тк конструкторы и перегруженые операторы не имеют другого способа вернуть ошибку


Очень обидно кстати.
Писал несколько либ с перегруженными операторами, которые потом работали в ядре и не только, приходилось стараться, ведь -fno-exceptions
89 1872384
>>872370
Ждём, когда джаву в тырпрайзе вытеснит сярп или пщ, и тогда коболами будут называть уже их, лiл.
90 1872390
>>872384
Ага, ждём. Это событие запланировано где-то между смертью С и взлётом rust.
91 1872402
>>872390
Где-то между этими событиями должны создать убийцу C++.
92 1872413
Аноны, выручайте. Вместо лампового h файла у меня откралась какая-то хита. Вместо кода вот такое:
[Project]
FileName=KF.h
Name=KF_Project
Type=1
Ver=2
ObjFiles=
...
93 1872418
>>872413
Ууу, ну всё тебе пизда. Если прямо сейчас выдернешь комп из розетки, может ещё отделаешься заменой диска. А лучше беги от него на безопасное расстояние.
Бля, я конечно всякой херни в жизни насмотрелся, но такую жесть первый раз вижу..
94 1872426
>>872418
C пекарней все норм. Только h файл придется переписывать (((((
95 1872428
>>872413
Помню писал я как то утилиту конвертирующую файл в другой формат. Ну и по запарке указал целевым файлом имя исходника.
96 1872527
>>872402
Я в процессе
97 1872529
>>872527
Вставай в очередь.
98 1872532
>>872370
Кобол ещё куда ни шло, настоящая джава - это PL/I от айбиэм.
99 1872537
>>872527
Блоу, сука, зарелизни что-нибудь уже.
100 1872546
>>872402
Когда уже запилят компилятор с ИИ-оптимизатором машинного кода? Чтоб наконец смогли писать как на питоне, а ИИ генерировал оптимизированный код.
image.png101 Кб, 859x852
101 1872598
https://habr.com/ru/post/478124/

Читаю про процесс компиляции в C++ и не могу понять.

Допустим, у меня есть laba1.cpp:

#include <iostream>

int main()
{
std::cout << "Hello world" << std::endl;
return 0;
}

Сколько объектных файлов получится из этого файла после препроцессинга, компиляции и ассемблирования? Один? Тогда нахуй нужен линковщик?
102 1872624
>>872325
а как вернуть ссылку через std::optional?
103 1872641
>>872325

>у нормальных пацанов ошибки через Optional работают


И как потом обрабатывать ошибку которая произошла? Например в винапи там хуева туча разных кодов. По идее нужно что-то типо optional только вместо bool флага (есть значение или нет) нужно хранить код ошибки.
104 1872679
>>872641
Скорее всего, нужно что-то вроде https://github.com/TartanLlama/expected
Только вот непонятно, когда оно будет в стандарте.
105 1872683
>>872546

>ИИ


Ты что из этих? Ну, из любителей решать алгоритмически неразрешимые задачи статистическими методами?
106 1872701
>>872683
Так всякие наркоманы обдолбятся сойлента и пилят ИИ для написания кода из естественных языков, но почему-то не делают более очевидную вещь - высокоуровневый код в ассемблер.
107 1872704
>>872598
Получается один обьектник, который линковщик слинкует в exe\elf файл.
108 1872714
>>872701
Псст. Открою секрет. Это называется оптимизирующий компилятор.
109 1872717
>>872714

> оптимизирующий компилятор


Только он на сложных конструкциях оптимизирует очень плохо.
110 1872720
>>872598

> у меня один велосипед


> зачем люди придумали сцепку вагонов

image.png7 Кб, 479x159
111 1872721
https://ideone.com/jYGOdH
Откуда нули? Вернее это-то я понимаю, откуда они берутся после того как я весь вектор переписал?
112 1872724
>>872721
libastral подключи
113 1872725
>>872721

>std::vector<Item> vi(5);


чел..
114 1872727
>>872724
Может ещё и IDE вишмастер скачать?
>>872725
Да я, что не так?
115 1872729
>>872725
>>872727
А, проёб с пушбеком. Ясно, сыпысы.
116 1872734
>>872720
Я имел в виду, нахуй он нужен в этом конкретном случае, то есть отличается ли итоговый исполняемый файл от объектного файла.
117 1872737
>>872734
Конечно отличается, лол.
118 1872885
>>872717
Пруфы давай, что написал, что хотел получить, что сделал компилятор
119 1872888
>>872885
std::visit в любом виде
C overloaded пачкой лямбд, с функтором, с чем угодно
ekarnu.jpg40 Кб, 715x459
120 1872889
Ваше отношение к throw try catch, господа
121 1872892
>>872598
Зависит от компилятора.
Теоретически, препроцессор создаёт новый файл после препроцессинга, компилятор делает из него файл с кодом на языке ассемблера, ассемблер создаст из него объектный файл, а линкер сделает из объектного файла бинарник. Но в разных компиляторах это всё может быть объединено в одну стадию так, что на вход у тебя исходник, а на выходе сразу бинарник.
Как сделано конкретно в G++ - хуй знает. Возможно, он реально создаёт каждый раз новый файл, но ты их не видишь, потому что они в какой-нибудь папке temp.
122 1872913
>>872889
Залупа уровня goto, убивающая читаемость.
ekarnu2.jpg146 Кб, 1280x1016
123 1872921
>>872913
А чем его заменить?
124 1872924
>>872921
Прокидыванием ошибок, как в Go и сишке. И кучей if (result != SUCCESS) { ... }
ekarnu3.jpg370 Кб, 1280x1024
125 1872942
>>872924
Хочешь сказать, что одна маленькая goto с комментарием для ясности или специальная конструкция throw try catch хуже нагроможденного вездесущего if? И как ты планирешь с его помощью впринципе разделять ошибку и обработку ошибки?
126 1872944
>>872942
Хватит с аутистами общаться
127 1872946
>>872942
Даже так лучше, чем ебучий забор из скобок посреди кода. Лучше функцию в if оборачивать, чем разрывать код. Это же настоящий goto, прыгающий по коду к catch.
image.png611 Кб, 715x459
128 1872947
>>872944
Ваше отношение к throw try catch, господин?
129 1872958
>>872942
goto работает только в одной функции, throw же докинет докуда угодно. longjmp
130 1872959
>>872947
А твоё, аватарфаг?
image.png1,8 Мб, 1280x1016
131 1872960
>>872946
try { func(88888, 993) }; catch(int) {...}
вместо
func(88888, 993);
сильно напрягает? И throw try catch всего-навсего прыгает при ошибке в определенное место , так что это не ухудшает читаемости.
132 1872972
>>872892
Спасибо.
133 1872976
>>872383
ну, примеры того, как проектировать подобные вещи есть в стандартной библиотеке
оператор квадратных скобок генерирует исключение, но есть функция at которая возвращает ошибку при выходе из диапазона
оператор new имеет перегрузку с флагом nothrow_t..
при проектировании своих классов можно поступить примерно так же
ткак сделано во втором случае можно сделать и с конструкторами, те предусмотреть два способа конструирования класса - с генерацией исключения в конструкторах в случае неудачи, либо с вариантом двухэтапной инициализации (с функцией init или с флагом sucsess, на выбор)
те можно сделать универсальное решение при желании, достоинство с++ в том что он предлагает средства на уровне языка для того и для другого
134 1872978
>>872960
Причём немного ебли только при ловле, сам проброс охуенно удобен. Точно лучше, чем перегружать сигнатуры функций возвратом ошибок, которые никто потом не проверяет.
135 1872986
>>872976
с другой стороны, конструирование объектов классов прямыми вызовами конструкторов это прошлый век, ибо давно уже придуманы разнообразные фабрики классов, паттернов создания штук пять навскидку любой кодер на с++ вспомнит, причем с реализацией как в динамике, так и на статике..
причем они включают в себя и то что нужно делать в случае неудачи создания объекта..
136 1872988
>>872960
Надо как в Zig хотя бы делать:
const number = parseU64(str, 10) catch |err| pizda(err);
Или аналог крестов:
if (parseU64(str, 10)) |number| {
doSomethingWithNumber(number);
} else |err| switch (err) {
error.Overflow => { ... },
error.InvalidChar => unreachable,
}
Для человеческого освобождения памяти при ошибке:
const foo = try tryToAllocateFoo();
errdefer deallocateFoo(foo);

> прыгает при ошибке в определенное место


Так и goto в определённое место прыгает. Ещё как ухудшает, когда у тебя внутри функции скачет куда-то.
137 1872997
>>872976

>оператор new имеет перегрузку с флагом nothrow_t..


Это-то да, а вот из T& operator+=(const T& rhs); ошибку возвращать некуда. Кроме эксепшена.

Да и для new пришлось свой nothrow tag делать, так как stdlib не было.
Особенно кекнул с #if STDLIB #include <new> else define your own placement new
138 1872998
>>872986
в книжке gof, к примеру, это третья глава "порождающие паттерны"
а у александеску аж три главы отведено на то как сделать подобное, но на статике
139 1873002
>>872976
>>872986
Ну так-то даже без крупных фабрик можно использовать named constructor, который будет возвращать хоть expected, хоть optional, хоть кидать эксепшен
140 1873003
>>872997

>T& operator+=(const T& rhs);


пишется рядом дублирующая функция-аккумулятор и все
не так красиво будет, но альтернатива есть альтернатива
141 1873012
>>872997
для операторов кстати есть еще третий способ сигнализировать об ошибке - а именно все тот же флаг sucsess, который выставляется в удачу или неудачу при ошибке
142 1873014
>>872988
Не понимаю чё там сверху, но объективно, в отличии от goto всегда понятно откуда (из соседней функции) и куда (в соседний catch) передается ход программы, ясно почему (ошибка) ясно что делать (в catch), ясно какая ошибка (выбирается определенный catch) и после работы с ошибкой, программа продолжает идти с логичного места как и должна была, будь всё хорошо.
143 1873039
>>873014

> откуда


> почему


А если ошибка прилетает из глубины? Возвращаемое значение обязывает сразу обработать ошибку, а catch может из глубины кишок поймать говно.
144 1873051
Нелокальный goto ещё хуже локального.
145 1873053
>>873039
Допустим у нас есть Много функций вложенных друг в друга, у каждой из них есть throw, и соответственно вызываем мы каждую функцию подобным образом:
try { func(88888, 993) }; catch(int) {...}
Тогда говёна с глубин не придут, а выйдя из своей функции с throw сразу попадут в try и catch соответсвенно, где можно написать какая функция ошиблась и как то обработать ошибку. Если нужно подняться на определенный уровень, например на самый высокий к вызову, для ошибки достаточно написать уникальный вызов хз как называется и тогда она развернет всё до самого верха и активирует нужны catch где всё будет понятно.
146 1873087
>>872960
В реальности такого не будет, у тебя будет портянка кода по который ты будешь скроллить вверх вниз пытаясь найти к какому же траю относится катч.
147 1873110
>>873087
Кого скролить? Трай на 3 символа левее
148 1873129
>>873053

> мы каждую


Ключевое во всём этом. Это должен кодер гарантировать, но ты никогда не узнаешь наверняка что там, не прочитав исходник или стэктрейс. Речь была про читаемость и вот где вся проблема. Ты предлагаешь верить в то что оно как надо сделано, звучит как полная хуйня. Опять же, возвращаясь в Zig, там язык гарантирует что подобной хуйни не будет и выполнение кода не уйдёт хуй знает куда, хуй знает откуда - ты делаешь обработку ошибки сразу и явно передаёшь её куда надо.
149 1873139
>>873129
Чё??? Если нельзя узнать что в функции, то можно организовать проверку в вызывающем коде. Про zig я вообще не понимаю причём он тут и я с ним вообще не знаком.
150 1873152
>>873139

> можно организовать проверку в вызывающем коде


Предлагаешь писать проверки просто чтоб наверняка? Оборачивать всё этими кишками как в сишарпе, просто для уверенности? Надо на этапе написания кода знать что не будет эксепшенов из глубины функции. А то этот goto может вообще из зависимости либы прыгнуть в мой код, а я как должен узнать заранее что такое может произойти? Я ведь надеюсь что эксепшен прилетит из вызываемой функции, а по факту это просто вангования.
151 1873163
>>872988
Все равно код обработки ошибок пополам с основным, как в 62 году.
1483215816653.png206 Кб, 2542x952
153 1873169
>>873163
Так в том и суть, что он локальный, а не глобальный. Один из основных принципов там.
154 1873280
>>873165
выглядит неплохо, но очень простенько
155 1873331
>>872888
Давай пруфов на https://godbolt.org/
156 1873332
>>872892
Линковщик ещё добавит c и c++ runtime (твой main отнюдь не точка входа, посмотри стектрейс) , импортные либы из sdk, сгенерит pdb
157 1873341
>>873280
Дак язык сам по себе простой. Хули тут учить?
158 1873349
>>872034
Boost hana define struct
Boost.PFR
159 1873352
>>873349

>BOOST_HANA_DEFINE_STRUCT не поддерживает инициализацию сразу же в объявлении поля.


>Boost.PFR ну а это вообще хуйня, можно пройтись только по значениям полей, а имена полей оно не определяет (т.е. в json ты не конвертируешь с этим).

160 1873355
>>873110
Я тебе говорю не про хелло ворлды, а про реальный код.
161 1873399
>>872384

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

Причем в прямом смысле, сначала убил Java EE, сейчас вот собирается и рантайм добить.
162 1873430
>>873399
А что взамен предлагает хоть? Опенсорс-параши?
изображение.png16 Кб, 703x84
163 1873459
>>871183 (OP)
Что за магия на пике? Перегрузка оператора является дружественной функцией шаблонному классу? Зачем std::move заворачивать в return?
164 1873493
>>873459
Операция умножения для случая когда класс идёт вторым аргументом, что не так?
165 1873503
>>873459
Какого года книжка?
1537956010058.png1 Мб, 1703x997
166 1873521
>>873163
Ну так это и есть единственно верный путь.
В плюсах такое же пилят к 2029 насколько я слышал.
167 1873524
>>873503
2019
>>873493
аргументы при перегрузке я тоже вижу, но зачем там некая r, и при возврате std::move
168 1873526
>>873459

>дружественной функцией шаблонному классу?


Это чтобы перегруженный оператор видел внутренние поля объекта.

>std::move заворачивать в return?


Ты, наверное, хотел сказать return заворачивать в std::move?
Затем, чтобы временно созданный объект не гоняли туда-сюда, а оптимизатор сразу записал результат в исходный объект.
169 1873541
>>873459

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


Hidden friend idiom. tl;dr нужна, чтобы не засорялось пространство имён.

>Зачем std::move заворачивать в return?


Хз, по идее это только мешает NRVO.
170 1873542
>>873526

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


Хотели как лучше, отстрелили себе ногу по самое ебало. В c++17 такая хуйня гарантирует отсутствие copy elision, следовательно можно сделать вывод, что автор книги - долбаёб.
171 1873575
>>873541
Тут не работает НРВО, ты какую-то произвольную ебалу в ретюрн написал а не имя переменной. Всё правильно обёрнуто. *= возвращает T&, значит это lvalue выражение, делаем мув, получаем рвалью.
172 1873605
>>873521
После checked exceptions в джаве ни один язык больше не связывался с этой ебаниной. Но я вижу у крестов свой путь.
173 1873608
>>873605
Прокидывание ошибок в говноланге - это по сути те же checked exceptions.
174 1873617
>>873459

>Зачем std::move заворачивать в return?


Абсолютно не нужно
175 1873633
>>873605
Во всех более менее современных языках ошибка возвращается в виде тупла [err, result] = call_func(...)
Тут просто предлагается использовать для возврата err уже существующий канал - там где данные по исключению.
Получаем плюсы от обоих подходов (не забудешь обработать err)
176 1873634
>>873633

> Во всех


Это каких? Go и Rust?
177 1873651
>>873634
Хаскель.
178 1873653
>>873651
Это который появился до жабы, питона и пхп? Да, очень современный язык.
179 1873654
>>873521
Какой же Стивен Кинг охуенный. Мало того что много годных книг написал так ещё и на крестах кодит.
180 1873659
>>873633
>>873651
В хаскеле и расте обработка ошибок православно-монадическая черз тип-сумму (Either), а не тупль.
181 1873662
>>873659
Да какая разница, лол.
182 1873674
>>873331
Полный интернет пруфов.
183 1873692
>>873633
Ну и ты возвращай, что мешает?
184 1873704
>>873459
Начиная с С++17 нахуй нен адо
185 1873756
>>873575
Да, действительно. "r = s" вернёт Field_<T>&, что не попадает под copy elision. Нужно сделать
r = s;
return r;
Тогда всё ок
186 1873760

>2020


>C++



Нахуя?
187 1873772
>>873760
Платят, к сожалению.
188 1873773
>>873772
К счастью, не много.
189 1873774
>>873773
Одинаково
190 1873777
>>873633
Круче всего придумали в С: меньше нуля - ошибка, иначе полезное значение.
sage 191 1873821
>>873760
Пошёл нахуй отсюда, шиз.
192 1873824
class Foo
{
public:
Foo(int);
};

int main()
{
Foo bar();
return 0;
}

Почему этот код успешно компилируется и не выдает ошибку на этапе Foo bar()? Ведь у нас нет конструктора по умолчанию. Что он вызывает?
193 1873827
>>873692
Необязательность проверки.
194 1873829
>>873777
Перетолстил.
195 1873834
>>873824
Конструктор создаётся автоматически если ты его не задаёшь.
196 1873836
>>873824

> Foo bar();


Сдаётся мне, это должно быть Foo bar;
197 1873838
>>873824
А, блин, отвечу сам на свой вопрос, это же не шарп. Тут конструктор по умолчанию вызывается просто через Foo bar; Я просто пьяненький
198 1873839
>>873836
Да, уже понял, спс. Просто с шарпом перемешалась каша в голове
199 1873840
>>873836
Так как раз таки не скомпилируется.
200 1873842
>>873824
Foo bar(); — объявление функции, а не переменной. Наследие от сей. Не пиши так никогда и всё будет хорошо.
201 1873848
>>873842
Спасибо
202 1873850
>>871463
Вот жеж мудак на пикче. Высрал свою книгу по шаблонам, другой мудак впечатлился и высрал на них относительно объёмную прогу-сервис на стандарте с++03. А я потом с этого кода охуевал. При том, что решать поставленную задачу шаблонами не было никакой необходимости, банальная прикладная приложуха.
203 1873853
>>873850
Получается, что Керниган и Ритчи - самые главные мудаки? Почти весь говнокод в мире алголоподобных языков можно отследить к их книге.
204 1873885
Объясните, в чем разница между
class Values
{
private:
int m_value = 5;
};

и

class Values
{
private:
int m_value;
};
public:
Values() : m_value(5);
{
}
};
Желательно, как можно подробнее
205 1873887
>>873885
Почти одно и то же.
Второй пример выполняется после первого, если в наличии оба.
Позволяет иметь "дефолтное" значение, а потом другим конструкторам иметь "более приоритетные дефолтные" значения.
206 1873899
>>873887
В первом примере работает копирующая инициализация, то есть в строке int m_value = 5, сначала создается интовый объект 5, а потом его значение копируется в m_value, или в случае с инициализацией членами класса компилятор сразу даст m_value значение 5 без порождения лишних объектов?
Просто я где-то видел, что лучше всего использовать только списки инициализации, и если ответ на мой вопрос в абзаце выше будет "да", то тогда для меня очевидна выгода списков инициализации -- нет порождения лишних сущностей, напрямую инициализирует объект. Если же ответ, будет "нет", то, выходит, нет разницы, каким способом инициализировать члены класса?
207 1873913
>>873899
В обоих случаях инициализация объекта происходит напрямую, без порождения лишних сущностей.
208 1873915
>>873850
а мне понравилась книжка в свое время
интересная, повеселила
209 1873923
>>873887

>Второй пример выполняется после первого, если в наличии оба.


Тогда почему следующий код не печатает сообщение "Hello" дважды?
class Hello
{
public:
Hello()
{
cout << "Hello" << endl;
}
};

class Test
{
public:
Hello h;

Test() : h()
{
}
};
210 1873930
>>873923

>выполняется после


Неправильно выразился.
Выполняется "вместо", то есть имеет приоритет.
211 1873933
>>873923
Если в конструкторе в списке инициализации инициализируется поле, то инициализатор места объявления игнорируется

Если не инициализируется, то используется инициализатор места объявления

Это что-то вроде дефолтного значения
image.png3 Кб, 221x163
212 1873993
Что это за конструкция с ::
213 1873996
>>873993
Перегрузка оператора?
214 1874006
>>873993
Это как точка в яваскрипте.
215 1874008
>>874006
>>873996
я чё ебу????
216 1874017
>>873827
[[nodiscard]] отменили?
image.png8 Кб, 372x264
217 1874040
Перекатился на Dev c++ 5.11 потом что visual studio выгнала, а тут простейшие вещи не работают. Что не так?
Красная строчка вот это подсвечивает
1027D:xxxxxxxxx\main.cpp[Error] no match for 'operator>>' (operand types are 'std::basic_istream<char>::__istream_type {aka std::basic_istream<char>}' and '<unresolved overloaded function type>')
218 1874044
Ясно нужно было endl убрать... >>874040
image.png1 Кб, 416x19
219 1874289
не работает. Что не так?
220 1874296
>>874289
Макросы кривые
221 1874300
>>874296
Что это значит?
222 1874303
>>874300
Это значит, что ты не указал, что такое oper и что ты вообще хочешь.
Но если предположить, что ты студент, то oper у тебя это char, то ты должен вот эти твои плюсики и звёздочки обернуть в одинарные кавычки. К тому же ты не сравниваешь этот твой oper со знаком деления, что всегда вернёт тру вроде.
223 1874304
>>874303
блин спасибо я вправду просто одинарные ковычки не указал...
224 1874321
>>874303

Бля что ж оно не выходит из if? Если оставить одно условие, допустим oper != "+" то всё работает, а если два и больше то тут хоть || хоть or соединяй просто постоянно по циклу гоняет.
image.png3 Кб, 298x107
225 1874324
>>874321
я уж думал двощи 2 кусочка кода за 1 картинку приняли, а там и вправду одинаковые были. вот
sage 226 1874389
>>874321
Потому что тебе нужно логическое и, а не или. Или учи логику.
227 1874395
Сажа приклеилась
228 1874417
>>874389
Спасибо вот тебе в благодарность контакт человека знакомого с Костей Еременко https://vk.com/id4013063
229 1874694
template<class In, class T>
Как зовутся эти разные названия в темплейтах? И есть ли вообще какая-нибудь разница между ними? Если да то как их все нагуглить?
230 1874706
>>874694
Параметры шаблона
Как угодно. Руководствуются здравым смыслом и семантикой. Посмотри как в стандартной либе (но там ещё с подчёркивания начинают, так в стандарте положено) и в бусте называют
231 1874753
Как при помощи fold expression реализовать упаковку битов в инт?
Т.е. int v = packBits( true, true, false, true, true ) в v будет записано 27
232 1874755
>>874753
Ладно, пока похер. Сделал так https://wandbox.org/permlink/XvZPyWwQBVA599qc
233 1874756
>>874755
Можешь std::initializer_list принять
234 1874764
>>874753
Чем тебе std::bitset не угодил?
235 1874766
>>874753
Думаю надо будет создать класс, принимающий биты и выдающий инт, но это какой-то оверинжиниринг. Если у тебя константа то что не просто литерал? 0b11011
Untitled.png11 Кб, 720x242
236 1874773
>>874753
Строго говоря - никак, потому что фолды работают с операторами. Тебе придется как-то переопределять оператор и возможно заворачивать булеаны во вспомогательный класс.

Можно сделать почти фолд
237 1874896
Почитал об std::variant. Возник вопросы к практикующим:
Первый - а как часто вы использовали подобные вещи?
Второй - а на сколько реально надо закапываться в stl?
238 1874933
>>874896
Использую регулярно.
239 1874951
>>874764
Я этот инт потом передаю в шейдер и там по маске смотрю какой бит установлен. Для отладочного рисования делаю.
>>874756
Хотел его, но там нельзя элемент получить по индексу, а писать list.begin() + i как-то не очень.
>>874766
Функции достаточно.
240 1874974
>>874896

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


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

>на сколько реально надо закапываться в stl


Условные lower_bound и make_heap тебя спросят максимум на собеседовании, но основные операции (erase, remove(_if), find(_if), transform, for_each, sort, copy(_if) и другие) надо уметь хотя бы хорошо читать. Но STL в основном логично построен, похожие операции возвращают и принимают похожие вещи, так что это не слишком сложно. ЕМНИП вот хороший доклад: https://www.youtube.com/watch?v=2olsGf6JIkU
241 1875210
>>874896
не видел ни одного юзкейса std::variant, который бы меня впечатлил и побудил использовать в проде.

а STL надо знать как свои пять пяльцев
242 1875279
>>875210
Например хранить объекты разных типов в векторе (а не указатели на них).
243 1875287
>>875279
Но зачем?
244 1875297
>>875287
Ну вот, например, в ВоВ интерфейс можно подписать слушать разные игровые события. Соответственно, у этих событий есть свои аргументы.
https://wow.gamepedia.com/Events
https://wow.gamepedia.com/API_Frame_RegisterEvent

Вот как бы нечто такое выглядело в коде? Можно, конечно, передавать массив строк, а затем пусть функция-обработчик события преобразовывает строки в нужный аргумент.
245 1875299
В расте tagged enum конечно охуенный, std::variant до этого далеко, но хоть что-то.
246 1875308
>>875287
Чтобы они валялись в памяти непонятно где, а лежали последовательно, хорошо с точки зрения подгрузки в кэш.
247 1875323
>>875308
Дедуля, ты про полиморфные аллокаторы читал?
248 1875325
Посоветуйте что почитать/посмотреть на тему хороших практик и оптимизации быстродействия готовых программ. Что-нибудь вроде того, что происходит здесь на 28:00: https://www.youtube.com/watch?v=zBkNBP00wJE
249 1875336
>>875323
Это и без полиморфных аллокаторов достигается бтв.
250 1875347
>>875325
Профайлером научись пользоваться сначала.
251 1875370
>>875299
Он еще и хуево оптимизируется в плане возврата/переупаковки по сравнению с растом
252 1875374
>>871682
Ошибки-значения лучше, когда они идиоматичны для языка и переупаковка их нормально оптимизируется компилятором. Если в плюсах везде использовать std::variant<Norm, Huevo> и пробрасывать, получишь миллион копирований/перемещений.
253 1875375
>>871682
Ошибки-значения лучше, когда они идиоматичны для языка и переупаковка их нормально оптимизируется компилятором. Если в плюсах везде использовать std::variant<Norm, Huevo> и пробрасывать, получишь миллион копирований/перемещений.
254 1875376
>>871845
Я пробовал, посмотрел, во что это компилируется, больше не буду.
255 1875377
>>875323
Аллокаторы не гарантируют тебе что соседние элементы будут рядом в памяти.
256 1875378
>>872921
ScopeGuard'ами.
257 1875380
Блин, какие же плюсы клевые (несмотря на странности), жаль что нинужны(
258 1875388
>>875380
В США вполне себе нужны и оплачиваемы
259 1875392
Пните в нужное направление, у меня не получается вывести отдельно кириллические буквы из строки в g++, вывожу через консоль. Пробовал wchar_t, char, const char.
image.png5 Кб, 562x82
260 1875394
Поч?
261 1875398
>>875394
>>875392
Попробуй wcout
262 1875400
>>875398
Пробовал, не работает
263 1875401
>>875394
1 это int. Выражение при вычислении приводится к самом у широкому типу, знаковый считаеться более широким чем беззнаковый (хотя в них может быть одиинаковое количество чисел). (a - 1) - преобразуется обратно в беззнаковый при присваивании, (b-1) выводится как есть, тоесть как знаковое.
264 1875404
>>875398
То есть выводится что-то, но пустое место без символов
265 1875422
>>875392
Выводи два соседних символа.
266 1875431
>>874951
И? bitset.to_ulong() и потом в шейдер.
267 1875434
>>875210

>а STL надо знать как свои пять пяльцев


не обязательно
268 1875440
>>875394
Тому что арифметика знаковая, но в первом случае ты засовываешь результат в беззнаковую переменную а не UB ли это?
269 1875443
>>875440

>а не UB ли это?


Нет
image.png15 Кб, 499x556
270 1875448
Эм, как лучше?

У меня есть куча кода с static const, есть смысл все делать constexpr? Или для компилятора это все одно и тоже?

А как правильно - constexpr или constexpr const?
271 1875451
>>875448
constexpr implies const
272 1875452
>>875448

>Или для компилятора это все одно и тоже?


Нет.
273 1875454
>>875451

>constexpr implies const


Ум? А можно для нубика разъснить?
image.png135 Кб, 1605x949
274 1875455
>>875452
Хм, а почему тут одно и тоже?
image.png113 Кб, 1635x875
275 1875457
>>875452
или клангом
276 1875458
>>875455
>>875457
Потому что ты тупой.
277 1875459
>>875455
Без /O2 смысла нет.
image.png13 Кб, 473x205
278 1875460
>>875459
С ним в данном случае тем более нет смысла - он все уберет
279 1875461
>>875458
Я спрашиваю, почему ты сразу наезжаешь?
280 1875462
>>875455
const можно использовать не во всех контекстах, в которых можно использовать constexpr.
281 1875463
>>875461
Потому что у тебя логика странная.
Ты почему-то из "для компилятора есть разница" делаешь вывод "получается разное в дизасме", а я этого не говорил.
282 1875467
>>875462
Я не про отдельный const. А про то, избыточна ли эта запись: "constexpr const".

>>875463
Ну тогда объясни тупому в чем выражается эта разница для компилятора конкретно в данном примере кода
283 1875472
>>875467

>Я не про отдельный const. А про то, избыточна ли эта запись: "constexpr const".


>>875454
image.png6 Кб, 334x186
284 1875477
>>875472
Я это к чему спрашиваю, это как с inline. По стандарту написано что все методы описанные внутри своего класса должны быть inline, но все равно серьезные дядьки из гугла/милкософта/etc пишут руками как на пикче (этого я тоже не понимаю)

Такой же вопрос избыточности или нет возник и с constexpr. Тем более что я тут погуглил, и оказалось что есть моменты, где без constexpr const просто не будет компилироваться (указатели на constexpr)
285 1875479
>>875477

>пишут руками как на пикче


Не пишут
image.png102 Кб, 1232x967
286 1875481
>>875479
Да, а это тогда что?

И я даже специально не искал - первый же файл из гитхаба открыл
8ac.jpeg159 Кб, 1780x1078
287 1875485
>>875477

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


Чё
288 1875496
>>875485
A function defined within a class definition is an inline function.
289 1875519
>>875496
Учи русский (и английский).
290 1875543
>>875519
А стандарт уже на русском?
Это же цитата из стандарта

И что он ответил не так?

~Мимоход
291 1875545
Xто-то стандарт С++ полон таких мелких нюансов, о которых многие забывают/не знают.

Вот про inline - четко и ясно написано. И все равно люди пишут >>875481
Не, я бы понял если бы речь была про forceinline. Но тут inline

А я например с помощью main вычисляю говноучителей в ютубе - кто не знает, эта единственная функция (точнее все семейство из почти десятка вариантов) в которой разрешено не писать return
292 1875554
>>875448
Пиши const constexpr const __attribute__((const)), не ошибёшься.
Говорят, в следующем стандарте завезут constanter_const_cast<>
293 1875560
>>875543
Там написано не то, что они должны быть inline, а то, что они уже inline и ничего писать больше не нужно.

Нормальный анализатор кода выдаст тут предупреждение
294 1875565
>>875560

>то они должны быть inline, а то, что они уже inline


И как это противоречит? Стандарт описывает работу компилятора.

>>875560

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


Но вот почему-то пишут руками>>875481
295 1875568
>>875554

>Пиши const constexpr const __attribute__((const)), не ошибёшься.


Я вот не понимаю, нахера в С++ вводят кучу необязательных классификаторов? По типу, ну может быть оно будет таким, как написали... А может и не будет
296 1875573
>>875325
Бамп
>>875347
Да с ним уже немного умею, мне именно в фишки самого языка.
297 1875576
>>875568
Потому что кресты древнее говно мамонта, в котором дизайн трещит по швам и собран из костылей чуть менее чем полностью.
image.png38 Кб, 500x241
298 1875588
Что значит "терм"? Что значит "первичное выражение"? Чем оно от обычного отличнается? Ничего не ясно. Это страуструп 234 страница
299 1875594
>>875588
Не читай это, просто скипни. Это настолько убьёт мотивацию что ты зашкваришься и уйдёшь в жопаскрипт.
300 1875595
>>875588
Я это пропустил, когда читал. Это невозможно читать без предварительной подготовки. Затем формальные грамматики тыкал отдельно.
1607416228990.jpeg79 Кб, 720x1280
301 1875617
>>875481
>>875565

> Но вот почему-то пишут руками



Пчел...
302 1875623
>>875588
Просто названия синтаксических конструкций, ничего сложного.
303 1875631
>>871231
хз я школьник но у нас с++ вроде проходим не такие уж и лёгкие алгоритмы такие как дерево отрезков или таблица пар
304 1875638
>>875617

>Пчел...


13 лет назад был С++ 03. В котором уже было про inline методы внутри классов. Так что не аргумент. И это не настолько давно - я в те годы как раз загорелся идеей стать программистом и трогал всякие делфи (и даже видел такое чудо как делфи.нет)
изображение.png12 Кб, 486x462
305 1875670
>>871183 (OP)
Что происходит при объявлении указателя на класс Node<T> head как поля класса List?
При создании объекта класса List c параметром Node<T>
head, вызывается конструктор Node, а затем в класс List передается указатель на только созданный объект Node?
306 1875701
>>875670
нет, ничего не произойдет, у тебя там указатель, и он может вообще на другой нод указывать
307 1875704
>>875670
короче, произойдет ровно тоже самое что тут:
class F
{
int *i;
};
изображение.png17 Кб, 547x582
308 1875713
>>875704
Это реализация односвязного списка и она работает. Все через указатели ведь.
309 1875714
>>875560
И?
Я здесь >>875496 как раз и сказал, что они уже инлайн.
Это всё ещё к тому же вопросу, зачем писать inline там, где он уже и так имеется ввиду.

То что тут >>875485 чувак криво мысли формулирует — не моя проблема.

>>875519 этот — долбоеб.
310 1875718
>>875545
Ты тупой какой-то.
Может, у них практика такая, чтоб можно было потом эту функцию легко перенести из class scope в namespace scope в хедере. Тогда inline не придётся дописывать. А может автор кода аутист. Зачем нам разгадывать его мотивы? Ты это как авторитетный кусок кода принёс, потому что он в гугловской кодовой базе? Охуеть просто. А может ему нравится быть explicit вообще во всём, вот такой он у мамы дотошный.

>>875545

>А я например с помощью main вычисляю говноучителей в ютубе - кто не знает, эта единственная функция (точнее все семейство из почти десятка вариантов) в которой разрешено не писать return


Для вычисления достаточно самого факта, что это на ютубе (кроме конференций). return из main — не аргумент
311 1875720
>>875638

>13 лет назад был С++ 03. В котором уже было про inline методы внутри классов.


Было хуй кобылы.
Нормальные практики написания кода даже сегодня не везде проникли, а многие даже опытные программисты пишут в таком же стиле, в котором они писали 20 лет назад. И стандарт тут не причём.
312 1875759
Почему ассерты не используют для частичного эррор хэндлинга? И почему их выпиливают в релизе? Или у меня ложная инфа?
313 1875772
>>875759
Ассерт умеет только падать, когда данные уже попорчены. Такой себе хендлинг.
314 1875779
>>875759
Ассерты изначально предназначены для тестирования кода на этапе разработки, типа юнит-тестов. Если ассерт свалился, значит, в логике программы ошибка. Ассерт - это то, что не должно выполняться никогда, вне зависимости от введённых данных. Обработка ошибок - это другое, она предполагает, что эти ситуации возможны. А ассерты для покрытия ситуаций в духе "квадратный корень положительного действительного числа вернул отрицательное значение".
315 1875825
>>875772
Но ведь иногда случаются ошибки, при которых программа не может продолжать исполнение и вынуждена упасть.
316 1875826
>>875779
содержательный ответ, спасибо.
317 1875837
>>875825
Значит хуево тестируете на пререлизном этапе, что еще можно сказать
318 1875838
>>875825
if(...) return -1/exit("...");
319 1875859
>>875825
Примеры?
320 1875907
>>875718

> чтоб можно было потом эту функцию легко перенести из class scope в namespace scope в хедере. Тогда inline не придётся дописывать


Бляяяядь.
Анон, помни, такой дебич может сидеть за соседним столом
321 1875910
>>875907
Я просто предположил, гайдлайны в разных компаниях могут быть сколько угодно ебанутыми.
322 1876015
>>875431
Я юзаю либу imgui, там чекбоксы\открыто-закрыто окно и тд реализуются через указатель на bool
323 1876053
>>875907
Так объясни, зачем inline в >>875481. Чего выебываться-то?
324 1876072
>>875907
А может быть все еще хуже - за соседним столом можешь оказаться ты.
325 1876098
>>875481
пчел, компиляторы уже давно умнее кожаных мешков в плане оптимизации кода. Компиль сам заинлайнит нужные функции.
326 1876123
>>876015

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


Ну тогда если фолд не обязательно, то делаешь вектор/список указателей на твои булы v, потом
res = accumulate (v.begin(), v.end(), 0, [](uint32_t res, bool b){ return res << 1 + b;});
>>874766 й
327 1876126
>>876072
да он типичный студентик:

- Ряяя новый стандарт, бест практикс, александреску скозал...
- Уёба, ты когда таску закроешь?
- ...
328 1876127
>>876123
Звезды съелись.
329 1876137
>>876127
Типичный крестотред.
330 1876141
>>872960
>>873633
>>872946
>>872924
И это в 200-м то году в крестах еще остались аутисты, котороые не используют std::expected, обернутый в корутины для монадных операций?
https://github.com/toby-allsopp/coroutine_monad
331 1876142
>>876137
Нет, типичный будет через 172 поста.
332 1876144
>>875772

> Ассерт умеет только падать


А вот и нет. Можно повесить свой обработчик
333 1876152
>>875910
Это не гайдлайн, это проблемы при разработке архитектуры. Если вдруг у твоего нанимателя появятся деньги на рефакторинг этого дерьма, то об inline ты точно не забудешь. а в шаблонах он нахуй и не нужен

>>876053
Да не нужен он там, это писали деды до того, как на рынке появились более-менее вменяемые анализаторы кода. Типичный дед --> >>876126
334 1876159
>>876142
Не будет, т.к. перекаты отныне с 500.
335 1876161
>>876141
Сейчас бы пердолить абстракции из костылей, получая производительность как в нормальном языке с функциональщиной из коробки.
336 1876169
>>876161

>пердолить абстракции из костылей


из этого и состоит профессия программиста, ну хотя еще из дейли митинов там всяких

>нормальном языке с функциональщиной


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

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


норм там производительность
337 1876172
>>876161

>производительность


https://github.com/facebook/folly/blob/master/folly/Expected.h#L1332
собственно вот, в кор перформанс критикал либе пейсбука, так что сосай бибу, кукаретик
338 1876175
>>876159
Это нелегитимные перекаты.
339 1876181
>>876172
Сам сосни без пруфов. Гейбук даже руби использовал, так что сосать всё же тебе надо.
340 1876183
>>876181
не заплачь только чмоня, а то серьезные дяди твою тонкую студенческую душонку обидели. И вообще иди laba2 с хаскеля на си переписывай, а то препод не примет, скажет дурачок
341 1876205
>>875588
Так, молодежь не читала Ахо и не использует yacc?
Это просто названия нетерминалов. Им тут же даётся грамматическое определение.
342 1876217
>>876141
В с/c++ уже все обернуто в монаду (любой блок кода), поэтому у тебя масло масляное.
343 1876220
>>875588

>Что значит "терм"?


(опционально терм */%) Первичное вырежение

>Что значит "первичное выражение"?


Число либо (Выражение в скобках)

>Чем оно от обычного отличнается?


Тем что выражение это (опционально выражение +-) терм.
Все же написано.
344 1876224
>>876098
1. Речь шла не об этом варианте применения inline.
2. Если уж ты об этом заговорил, то и gcc и clang учитывают inline при принятии решения, инлайнить функцию или нет.
3. Компилятор переиграть в нетривиальных алгоритмах достаточно легко.
345 1876225
>>876152
А я и не спорил ни разу, че ты
346 1876288
>>875826
еще проще:
- деление на ноль - это ассерт, и не должно происходить никогда (но в дебаге стоит проверить)
- чтение поврежденного файла на диске - это ошибка, бытовая ситуация, и должна обрабатываться всегда (даже если просто падает)
- отсутствие строчки в конфиге - это варнинг, должен обрабатываться и исправляться, но не падать
347 1876298
>>876152

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


Вот именно, что не нужен. Этого ответа от тебя полтреда и добивались, ебанько.
348 1876301
>>876126
Двачую. Наконец понял, что за манера разговора - душный студентик, который только что дочитал Страуструпа.
349 1876320
Кто-нидудь работал с контрольными суммами? Столкнулся с ситуацией, имеется: uint32_t massiv[size] - это 32битный массив.
Требуется вычислить его контрольную сумму crc32, вообще ума не приложу как это сделать
350 1876342
>>876320
Ты не поверишь...
351 1876374
Почему 3 это терм, а не выражение? В этой грамматике вообще все значения должны становится выражениями. Что им мешает?
352 1876376
>>876374
Потому же, почему 4 - это и цифра, и число из одной цифры одновременно.
353 1876393
>>876374
Тебя не смутило, что терм это первичное выражение, первичное выражение это выражение, а выражение это терм? Там цикличное определение. Чтобы разорвать цикл нужна воля.
image.png69 Кб, 244x286
354 1876394
>>876376
Я это и подметил, тут ошибка в том что я думал, что ход анализа почему то как на пик 1 шел из-за этого те 2 правила ниже не работали б. А вот как обработать тот же пример 2+3 но еще и 5, ведь 2+3 засчитается как выражение, а в синтаксисе терм первичное выражение, а выражение * первичное выражение нету
355 1876395
>>876394
сломалось все из за *, но думаю все равно понятно
356 1876400
>>876394
Чтобы умножить 2+3 на 5, тебе придется взять в скобки и все сойдется.
357 1876401
>>876400
не я именно про 2+35. нету ведь для такой ситуации правила. есть только термпервичное выражение.
358 1876402
>>876401
да бля 2+3*5
359 1876403
>>876401
... есть только терм*первичное выражение.
360 1876404
3*5 это терм.
>>876402
361 1876410
>>876342
Так может подскажешь? Хотя бы идею как вообще это рассчитывать, все что нашел в Гугле это лютый пиздец, вообще не применимый к моей задаче.
362 1876413
>>876404
а чё 3 не проваливается в выражение, а остается в терм. Как будто он ждет пока к нему придет первичное выражение, как будто знает об умножении. Как ход вообще идет? значение и оператор получается. в данном случае 2+ потом 3* потом 5. Так как тогда ход анализа идет? Если как на пик 1 получается пик 2, где все сторопится когда 5 лишний раз преобразовывается в терму, а если как на пик 3, то тогда 2+ не проходит по условию потому что 2+ пока что просто терм, еще в выражение не преобразовавшийся.
363 1876429
>>876410
Подсказка: 0xEDB88320
364 1876431
>>876410
Конкретный алгоритм устанавливается в условиях задачи, самое простое - просуммировать все числа массива и взять 4 младшие байта результата (и.е суммировать можно прямо в уинт32)
365 1876436
>>876413

>Как ход вообще идет?


Сверху вниз (деды) или снизу вверх (yacc), как хочешь.
366 1876440
>>876431
Конкретная задача такова, есть микроконтроллер российского гавнопроизводства, я написал прошивку для него, у этой прошивки с помощью обычных онлайн калькуляторов можно посмотреть контрольную сумму, то есть там используется полином crc32 ieee, моя задача прочитать память МК, в которую и была записана прошивка, это будет как раз массив uint32_t massiv[size]. Далее мне нужно вот к этому массиву применить расчет crc с использованием полинома crc32 ieee, для того чтобы я мог сравнить то что должно было быть записано в МК, с тем что там записано по факту.
image.png141 Кб, 412x304
367 1876443
>>876436
Ну нехуя ты умный. опиши тогда это выражение этой грамматикой можешь хоть деды хоть уасс использовать
368 1876456
>>876320
Какая часть тебя ставит в тупик?
Ты не умеешь складывать?
369 1876460
>>876413
Я не писал компиляторов, но предложу что там перебор.
Т.е. если не сработало с термом, пробуем с выражением, и так далее.
370 1876467
>>876413
Это называется "жадность", и довольно болезненный вопрос в грамматиках, регулярных выражениях и вот этом всем.
Ты встретил 2. Это число.
Ты встретил +. Есть правило которое требует слева выражение, справа терм.
Слева число которое может быть повышено до выражения.
Справа терм. Начинаем набирать терм.
Встретили 3, это число, это терм.
Встретили ⚹, опа, а там рекурсивное правило.
Ведь и 3 терм, и 3⚹5 это тоже терм.
371 1876469
>>876456
Почему складывать? Я понимаю как получить КС на бумаге, например от 8бит информации применяя полином 3 степени к примеру, тут все соизмеримо, но мне нужно применить к 30кб информации полином 32 степени, вот тут я не понимаю как это должно работать. Были мысли взять КС отдельно от каждых 32бит (это по сути один элемент массива) и потом сложить их все, но будет ли это верно?
372 1876496
>>876440
Boost crc
373 1876520
>>876098
сразу скажу что я не разбираюсь в вопросе, но у меня есть подозрение, что и сегодня можно на асме писать куски кода которые будут в разы быстрее отрабатывать, за счет того что будут напрямую использоваться векторные расширения, новые наборы инструкций, плюс программирование с учетом попадания в кеш и прочие оптимизации..
375 1876552
>>876520

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


Не имеет смысла в плане трудозатрат.

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


Только если вдруг компилятор сам не сможет определить, куда их применить в конкретном случае, что случается достаточно редко.

> новые наборы инструкций


Каким образом?

> плюс программирование с учетом попадания в кеш и прочие оптимизации..


Хуяции. Если ты свою laba2.cc напишешь ассемблерными вставками, лучше в кэш оно укладываться не станет. Это решается разработкой схемы доступа к данным с учетом особенностей кэширования, и то только для конкретного случая, если бенчмарки показали чаще всего просто в качестве превентивного предотвращения false sharing куда-нибудь прихуяривают паддинг в 64 байта

> сразу скажу что я не разбираюсь в вопросе


Хуле пиздишь тогда?
376 1876565
>>876552

>Не имеет смысла в плане трудозатрат.


Потому что ты так сказал?
Мне вот платят именно за это, когда нужна производительность.
377 1876570
>>876565
Мы про случаи "изначально писать ассемблерной вставкой". Если ты начинаешь хуярить это сразу на асме, не спрототипировав и не померив производительность в обычном варианте, то земля пухом.
378 1876572
>>875595
>>875594
двощую
379 1876581
>>876469
Попробовал объяснить своими словами и понял что сам не понимаю как Crc32 работает.
Ну в общем там какой то аккумулятор, в который по биту засовывают и ксорят )))
380 1876587
>>876443

>хоть деды <...> использовать


Он имел ввиду дедовский способ, руками написанный рекурсивный спуск. Реально, анон, почитай лекции по формальным грамматикам и парсерам, проще будет.

По твоему вопросу: грубо говоря парсеры в каждый момент времени держат несколько вариантов развития событий. И если в какой-то момент попадается символ, который не вписывается в текущее правило, они пробуют другое правило. Если всё равно что-то не так, они отходят на шаг назад и уже там пробуют по-другому. И так, пока не распарсится вся строка до самого конца.
381 1876601
>>876581
>>876550
>>876496
Спасибо за ответы, попробую теперь разобраться. Готовую либу мне что-то даже а голову не пришло искать...
382 1876610
>>876587
Ладно анон, отложу это на потом. Поясни пожалуйста, парсеры в интернете так и работают: с помощью грамматик находят нужные элементы в html странице?
383 1876641
>>876552

>Хуле пиздишь тогда?


анонимная доска, хули не пиздеть?
384 1876644
Анон, поясни почему так.

int main()
{
int a{3};
int b{2};
int c = &b;
cout << c << " " << b << endl;
--с;
cout <<
c << endl;
return 0;
}
Выводит
0x61fe0c 2
40

почему 40, а не 3?
385 1876648
>>876644
Потому что это невалидный код в C++.
386 1876650
Сап, ньюфаг в треде, появилась проблема с "winbgim.h" и <string.h>. Проблема заключается в том, что нужно сделать 3-д обьект в консоли с помощью команд (ellipse, line) но что-то я не могу понять за что отвечают числа, к примеру "line (575,400,575,100);" Обычная линия коих много надо =, но за что отвечает первое число (575), и второе, третье? Мне нужно знать какое число отвечает за высоту, ширину, направления. То же самое с ellipse. Буду очень благодарен за ответ, так как только пытаюсь вкатиться.
387 1876654
388 1876655
>>876644
UB UB гроб кладбище пидор
389 1876670
>>876650

>line (575,400,575,100)


Ну это явно координаты точек
Перейди на объявление этих функций, там должно быть понятно хотя бы из имён переменных.
Или ищи доки на твою либу.
390 1876676
>>876650
Каждый раз, когда вижу в плюсовом коде <string.h>, задумываюсь, имелся в виду <cstring> или <string>.
391 1876681
>>876676
Он шпарит по методичке написанной ещё при совке. Естественно там о либах плюсовых ничего ещё не было
392 1876684
>>876650
Ебаный ад
393 1876689
>>876644
Фиг знает. Может компилятор вообще не сэмитил запись переменной "a" в стек и держит только её значение в коде.
394 1876711
>>876670
Как я понял - line (x1, y1, x2, y2)
Где x1, y1 координаты левого верхнего угла
А x2, y2 координаты правого нижнего угла.
395 1876716
>>876644
Не знаю что ты там хотел написать, все звездочки съело.
Если ты пытался передвинуть указатель на типа "предыдущий" массив, то это так не работает - между ними может быть целая страница памяти, например.
396 1876719
>>876650
Тебе обязательно пользоваться именно этим говном?
397 1876726
>>876719
А что ты предлагаешь?
398 1876729
>>876726
Вижуал Студия как IDE, SFML как рисовалка
399 1876746
>>876726
Смотря какие у тебя задачи.
Есть CImg. Есть разные либы для рисования, собственно, 3D. Есть куча либ для 2D если тебе так важно рисовать все линиями и кружочками.
В конце концов есть софт для процедурного рисования командами, но не си++.
Тот же OpenSCAD.
400 1876753
>>876729
Visual Studio что-то не зашло, возможностей больше, но машина у меня слабая.
401 1876756
>>876746
3-д модельки это не основная работа, это скорее исключения, так что не вижу смысла куда переходить.
402 1876913
>>871393
Пердачую модули и std::format. Лично я жду, когда в стандарт уже завезут нормальный мультиплексированный ввод-вывод, но это произойдёт не в двадцатых плюсах, а когда Networking TS доведут до ума.
403 1876936
>>876520
Это верно. Часть инструкций процессора невозможно из с++ использовать напрямую. Особенно это болезненно, если ты всякие кодеки дрочишь под эмбед.

>>876552
stl макака в режиме отрицания? В прошлом треде тебе приводили пример на ASM + SIMD для обработки картинок. Работает в 2-2.5 раза быстрее чем тот же код без вставок на c++.
404 1876940
>>876650
у тебя не 3d, а 2d.
Обычно дело обстоит так:
Оконная координатная система имеет начало (0,0) в левом верхнем углу экрана. Ось X вправо, ось Y вниз.
Отрезок/линия задаётся двумя точками в этой системе координат.
line(x1, y1, x2, y2).
405 1876959
>>876936
Я вычисляю 100к+ цифровых подписей в секунду, на чистых плюсах без ассемблерных извращений больше 10к не вытянуть при тех же алгоритмах.
406 1877081
>>876746
У меня вопрос. Вот есть либа для рисования геометрии opencsg, например. Насколько я понимаю, это только инструмент для визуализации. Если мне туда физику на модельку прикрутить надо, как в CAD/CAE софте.
Как дальше работать с этой геометрией? Ведь все эти либы только для визуализации, как я понимаю, а перевести их в сетку с ячейками и получить дальше какой-то динамический массив в виде ячеек необходимо? Есть такие инструменты?
407 1877087
>>877081
Так а что тебе нужно то?
Вся геометрия для CAD и им подобных систем - OpenCASCADE.
Нужна физика - Bullet
Визуализация расчётных сеток (и операции с ними) - Vtk
Всё это пилилось лет 15 и там овердохуя всего. Но не хайтек и работает не очень шустро.
408 1877094
>>877087
Генераторы расчётных сеток и решатели я не знаю какие есть нормальные в исходниках. Обычно их жопят в уголок и никому не показывают.
409 1877099
Прошу, анонче, помоги долбоебу(мне) написать программу:
1.В матрице A[n][n] отсотировать строки так, чтобы элементы последнего столбца были упорядочены по неубыванию. Обязательно надо создать функцию, которая меняет местами строки, номера которых переданы как формальные параметры.

С горем пополам написал такой говнокод, однако работает через раз:

void sort_rows(int matrix, int row1, int row2, int columns) {
int temp;
for (int k = 0; k < columns; k++) {
temp = matrix[row1][k];
matrix[row1][k] = matrix[row2][k];
matrix[row2][k] = temp;
}
}

int
sort_matrix(int matrix, int rows, int columns) {
int last;
for (int i = 0; i < rows; i++) {
last = matrix[columns - 1];
for (int k = 0; k < rows; k++) {
if (last < matrix[k][columns - 1]) sort_rows(matrix, i, k, columns);
}
}
return matrix;
}

Кучу раз переписывал, но работает все ужасно, никак не могу понять саму суть сортировки матриц.
410 1877101
>>877099
Когда в твоем коде от С++ только std::cout.

И да, лабы идут нахуй
411 1877103
>>877099
Декомпозируй задачу. и иди нахуй
как заполучить интеловский компилер? 412 1877113
Вавян, они там в интеле совсем охуели, суют мне какую-то oneAPI раздутую ебату. Нет, блять, я не хочу выкачивать 14GB deb пакетов с какой-то шелупонью. подскажи, как обмазаться по минималочке?
413 1877152
Что дешевле, хранить указатель на функцию который инициализируется в начале работы программы и потом вызывать функцию по указателю или же каждый раз проверять булевый флаг и вызывать необходимую функцию по условию? Например есть функция memcpy и хочется на процессорах поддерживающих AVX юзать версию memcpy с AVX, иначе юзать обычную. Какой способ более оптимизированный?
414 1877154
415 1877155
>>877154
Хм, а чем это обусловлено, ведь и там и там одна операция чтения памяти. Надежда на то, что компилятор заинлайнет обе функции в одно и не придется тратить ресурсы на вызов другой функции? Кстати, а если условие не одно, а несколько (AVX -> SSE -> default) то через свитч тоже быстрее будет?
416 1877157
>>877152

Дешевле ориентироваться на актуальное железо и не ебать голову и посылать нахуй любителей калькуляторов 10-летней давности на 775 сокете.
417 1877161
>>877152
Дешевле всего перестать трахать голову и написать как проще, а необходимость оптимизаций проверять бенчмарками и профилированием.
418 1877174
>>877157
Вот сейчас обидно было
>>877152
Сделай подгрузку разных дллок/оверлеев.
419 1877175
>>877155

>Надежда на то, что компилятор заинлайнет


Дя. Ты ж на плюсах пишешь, у тебя 99% кода должно быть в h.
Если нет, то 1 может быть быстрее.
420 1877189
>>877152
У Агнера Фога в https://www.agner.org/optimize/optimizing_cpp.pdf секция 13.5 про это. Но вообще, если ты используешь SIMD, то время исполнения функции у тебя в любом случае будет намного больше времени на выбор нужной имплементации, так что я бы не заморачивался.
421 1877207
>>877081
CSG это "конструкторы" форм из более простых форм путем сложений/вычитаний/пересечений
Но в твоей либе четко написано что она меш из них не конструирует, а пользуется приемами типа z-buffer
Так что тебе надо искать именно либу которая работает с мешами, или хотя бы делает их из CSG.
422 1877326
>>877161

Можно к этому моменту завафлить архитектуру или структуры данных.

Вообще, современный оптимизон он в первую очередь про ублажение кеша и про эффективные структуры данных, чем про эффективные датадробительные инструкции.
423 1877328
>>877152
В результате получается примерно одно и то же.
Я недавно делал это.
image.png361 Кб, 566x719
424 1877343
Это исходный код на ассемблере для аполона. По вашим оценкам, как бы выглядела эта стопка, будь код написан на c++?
425 1877345
>>877343
Также примерно
426 1877347
>>877345
Ладно.
427 1877348
>>877343
какая же боль
428 1877350
>>877343
меньше раз в 10-20. Мб 30
429 1877354
>>877345
Да, добавится __asm { }
image.png122 Кб, 357x673
430 1877369
>>877350
Примерно так значит. Прикольно)
431 1877373
>>877369
ну чето хуй знает, теперь я думаю что еще сильно меньше. Зависит шрифта конеш
432 1877404
>>877343
Насколько помню, там очень мало памяти было, поэтому на ассемблере был написан небольшой интерпретатор, а остальное на некотором DSL. На крестах вряд ли это было бы выполнимо вообще.
433 1877419
>>877207
Попенсорс обычно для csg вычислений использует CGAL.
434 1877498
>>876940
Я понял это >>876711 сам для себя расписал.
А вышло 2-д потому-что еще не закончил, нужно будет сделать чтоб можно было вращать
435 1877525
>>877343
На с++ вышло бы больше.
436 1877593
>>877525

>маленький пример кода и ошибка из грёбаной Boost.Hana


Я тоже могу несравнимые вещи показать рядом.
437 1877597
>>877593
Ну-ка.
Безымянный.png14 Кб, 1914x860
438 1878124
Сап, опять ньюфаг в треде, мне тут подумалось, что я сделал хуйню в том посте >>876650
Я нарисовал цилиндр, но там походу должен был быть вытянутый шестиугольник который я бы уже сделал в 3-д.
Так вот, можно ли сделать из цилиндра вращающую модель в консоли? Или там только из шестиугольника можно? В цилиндре 10 точек насчитал (несколько не посчитал), а если я бы сделал шестиугольник там бы было в 20+ точек.
439 1878127
А в MSVC всегда такие хуёвые оптимизации были, или я что-то не так делаю? Мои laba1.cpp практически всегда были в пару раз медленнее, чем если бы я собирал под linux + clang.
440 1878133
>>878127
По копиляции или выполнению? Делал замеры внутри программы? Сравнивал релизную версию с релизной?
441 1878147
>>878133
По выполнению, одинаковый исходный код, замеры внутри программы, у MSVC /O2 /Ob2 /Oi /Ot /GT /GL, у Clang -O3 -march=native -flto=thin.
442 1878169
Студия или линукс? Студия выглядит проще и удобнее ибо всё из коробки.
443 1878171
>>878169
Учиться С++ - студия. Пердолиться - Линукс
444 1878172
Вопрос такой не очень честный. Как обойти плагиат на тестирующей системе по программированию?
445 1878174
>>878172
Попробовать понять алгоритм и написать самому с нуля.
446 1878176
>>878171
Ну а есть вероятность что я пойду на работку устраиваться и меня заставят прямо в линухе возиться? Линукс в целом знаю, но пердолиться не охото.
447 1878178
>>878176
Как выучишь С++ - так уже будешь задаваться этими вопросами.
448 1878183
>>878178
Да это не проблема, я почти Бьярна дочитал. Да и нужно заранее и постепенно инструменты учить в случае чего.
450 1878191
>>878183
Пчел, между дочитал бьярна и выучил С++ несколько сотен тысяч строк кода и еще десяток книг минимум
451 1878194
>>878191
Справлюсь за полгода.
452 1878197
>>878194
я тож так думал, дохуя всего прочитал, писал пет проекты, потом взяли на работу джуном и резво ПУК СРЕНЬК.
453 1878198
>>878189
Это тоже стоит, да. И что? Вряд ли это обеспечит такой прирост, только если вся программа не состоит из легко векторизуемых циклов.
454 1878201
>>878194
Шутка про то, что невозможно выучить C++
455 1878202
>>878127
Без кода и бенчмарков ты хуй простой
456 1878204
>>878197
>>878201
Сказки это всё. Меня тоже пугали ООП, темплейтами, указателями а я всё налету схватываю ну почти без загвоздок. Ничего, сейчас за полгода неспешно наверну stl, opengl, qt, мультитред, ml и заведу трактор а там через пару лет и собственный стартап.
457 1878206
>>878204
Ну-ну.
458 1878208
>>878204
Ох дружок, у тебя эффект Даннинга-Крюгера просто зашкаливает. Мне это особенно смешно, потому-что был таким же. Все изи схватывал, понимал, а потом на первый собес пришел и ответил еле еле на пару вопросов из 20. Настолько плохо, что мне прям на собесе сказали, какие книги почитать еще, даже не "мы вам перезвоним".
459 1878209
>>878201
Да вполне возможно.
Да, даже спустя кучу времён ты будешь узнавать какие-то мелочи или нюансы и говорить "вау, вот это ж нихуя себе", хотя, казалось бы, уже очень много знал и так. Но так вообще со всеми вещами в жизни, в любой отрасли и профессии. По крайней мере если ты реально стараешься углубляться и развиваться.

Я вот имел уже лет 5 опыта на плюсах прежде чем узнал, что const в namespace scope implicitly static, а не extern, в отличие от С. И потом каких-то таких мелочей с годами было ещё много. И будет ещё.
460 1878211
>>878208
Всё у меня ок. Максимум раздутое чсв из-за того что я за 2 месяца вката уже успел 2 друзьям недопрогерам помочь писать диплом с 0.
461 1878213
>>878204
Покажи как ты складываешь два int, скажем a и b
462 1878216
>>878213
inb4: UB
463 1878219
>>878213
Ну и в чём тут подвох?
464 1878221
>>878219
Да сейчас скажет, что анус переполнился.
465 1878222
>>878221
Ну не стек же.
466 1878232
Сап, как осуществить вращения эллипса в пространстве?
467 1878234
Как бороться с предупреждением о касте ll к ull и обратно?
468 1878236
>>878234
static_cast lol
469 1878237
>>878234
(ull)()

дед
470 1878243
>>878219
Ты код показывай.
471 1878248
>>878243
print(a+b)
472 1878259
>>878243
Ты мне сразу рассказывай в чём подвох, нечего время терять.
473 1878260
>>878237
Будут варнинги про Олд стайл каст
474 1878262
>>878260
Нет
475 1878263
>>878260
>>878262
А, я жопой читаю.
Но всё равно не будет, лол
476 1878272
>>878208

>какие книги почитать еще


Какие такие книги?
477 1878279
>>878272
Ну как минимум - Майерс, Саттер
478 1878288
Салют, пиздюки. Посоветуйте, как лучше всего организовать следующее. Вот я хочу чтоб логи раз в сутки были обновлены. То есть идет переименование файла debug.log в currentdate_debug.log. И вообще можно чтоб эту хуйню в tar.gz пожать.

Если файла нет, то софтина должна создать новый. Ну вы поняли.

Хочу написать скриптик который это делает. Какие подводные? Я же не знаю в какое время приложуха(на сиплюсплюсе) хуярит логи, открывает/закрывает файл. Хочется и чтоб логи не проебались.

Так вот, вопрос не столько по C++ а по потокам файловым. Можно ли в файл в который периодически пишут взять и двинуть командой mv?
479 1878289
>>878272
Ну как минимум - Маркс, Сартр
480 1878290
>>878288
Используй syslog\ETL логирование нативное платформенное. И на платформе прям конфигурируй логротейшены и прочее.
481 1878293
>>878290

>syslog



Я ж не сеньор помидор. Есть софтина которая пишет в файлик логи. Чё я её переписывать стану? Я хочу скрипт для себя сделать чтоб не было 2gb логов.

Или типа будет лажа если сделать mv debug.log currentdate_debug.log?
482 1878296
>>878293
Окей, тогда просто подключи spdlog, и он сам за тебя все сделает.
483 1878302
>>878176
Тащемта из-под студии можно подключиться к wsl2
484 1878314
>>878263
Значит у тебя слишком низкий уровень варнингов.
485 1878323
>>878124
По идее проекция круга на плоскость (то бишь камеру) это в общем случае эллипс. Если умеешь рисовать эллипсы, значит по идее можешь рисовать вращающийся цилиндр если применить немного линала.
486 1878329
>>878191
Нахуя вам блять эти книги, мы в 80 живем без интернета чтоли? Делаешь проектик, натыкаешся на что-то непонятное, гуглишь, читаешь какую-нибудь статейку и все. Пиздец, щас бы сидеть 500 страниц наяривать какой-то хуйни без практического применения.
487 1878331
>>878329
Потому-что без этих книг ты даже не понимаешь, что творишь хуйню
488 1878340
>>878323
То бишь соединить каждую точку по x, y, z? Я не понимаю как это должно выглядеть.
489 1878366
>>878331
Жвачую, а потом хуярят костыли, там где есть проверенные методы
490 1878430
>>878314
Очень высокий, плюс treat warning as errors
491 1878472
Почему плюсотред один из самых живых? Там много плюсоебов с седыми мудями или студентиков с laba1.cpp?
492 1878476
>>876650
https://www.scratchapixel.com/lessons/3d-basic-rendering/perspective-and-orthographic-projection-matrix/building-basic-perspective-projection-matrix

Гайд по преобразованию 3D-векторов в положение точек на экране.
Если у тебя консоль, то сделай таблицу буква : цвет, то есть . это очень неяркий, а B довольно яркий.
Если линии нужны антиалиазинговые, то погугли разные алгоритмы для отрисовки линий.
493 1878486
>>878472
Я сеньор 25 лет
494 1878563
>>878232
Эллипсы вращают в /gd.
495 1878564
>>878234
#pragma warning(disable:errno)
496 1878567
>>878293
В линуксе есть встроенная хуйня для ротации логов. Вроде logrotate называется.
497 1878568
>>878563
Они там только хуи в своих ртах вращают.
download (1).jpeg9 Кб, 252x200
498 1878571
>>878568
В твоих. Сначала научись инты складывать.
499 1878572
>>878571
В столбик?
image.jpg87 Кб, 1200x900
500 1878624
>>878568

>Они там только хуи в своих ртах вращают.

501 1878929
Как к булу применить поразрядное отрицание и вывести?
502 1878933
>>878929
bool l {false};
for (int i = 0; i <= 7; i++)
{
std::vreti(l);
}
503 1878950
>>878929

> к булу применить поразрядное отрицание


Так и до нарушения strict aliasing rules недалеко.
504 1878951
>>878929

>булу


>по разрядное


Значение знаешь?
505 1879020
Как скомпилировать libz из исходников? Имею ввиду не либу, а просто включив её прямо в исполняемый файл?
sage 506 1879027
>>879020
А теперь ещё раз, включив мозг.
507 1879047
>>871183 (OP)
Сап байтоебач.
Есть функция на Си и ее интерпретация на асме, пик тотали рилейтед.
Казалось бы, компилятор должен выделить 16 байт под буфер и 4 байта под флаг, и тогда стек должен выглядеть как на рисунке 1, но нет, он выглядит как на рисунке 2. А именно -- флаг, 12 байт непонятной хуйни, 16 байт буфера, 8 байт указатель (типа в регистре он их оставлять не хотел) и еще 8 байт выделенных хуй знает зачем. Больше всего меня беспокоят 12 байт между флагом и буфером, т.к. от этого зависит, как будет работать эксплойт через переполнение буфера.
Через компилер эксплорер код прогнал, гцц и клэнг выдают примерно то же самое. Пока что нагуглить смог только canary value, но не уверен, что это оно.
508 1879067
>>879047
Си-тред на 10 тредов ниже.
fzw24gg13gv01.png193 Кб, 300x450
509 1879073
>>879047

> и ее интерпретация на асме

510 1879077
>>879047
-O2 не забыл?
511 1879087
Два вопроса:
Список инициализации для конструктора уже был в самом первом стандарте, т.е. C++98? Не могу найти.
Начиная с C++11 появились non-static data initializer, а именно int a = 1; в структурах, классах. Как они реализованы? Внутри себя они представляют использование неявного (создаваемого компилятором) списка инициализации?
512 1879091
>>879087
1. Появился в С++11
2. В стандарте не сказано
image.png33 Кб, 709x785
513 1879092
>>879091

>1. Появился в С++11


Тогда почему успешно компилится на C++98?
514 1879096
>>879092
попробуй в хедере это сделодь
515 1879097
>>879096
а, погоди, что я несу вообще.
516 1879100
>>879092
Как таковые, списки инициализации существуют давно. В C++11 появился класс с таким же названием initializer_list.
https://en.cppreference.com/w/cpp/language/constructor

> Not to be confused with std::initializer_list

517 1879111
>>879092
Ты путаешь вот эти два вида инициализации.

struct S {
int a = 1; // since c++11
S() : a(2) {}; // since nobody can remember
};

Поэтому тебе такой вопросик: какое значение будет иметь a?
518 1879116
>>879111
у конструктора приоритет
519 1879120
>>879111
Не, я ничего не путал, формулировка вопроса была корректная. Про

>int a = 1; // since c++11


я знаю, это называется in-class initialization.

>Поэтому тебе такой вопросик: какое значение будет иметь a?


a будет иметь значение 2, т.к. список инициализации имеет приоритет над in-class initialization.
На мой вопрос уже ответили
>>879100
image.png36 Кб, 732x633
520 1879127
Сразу закину следующий вопрос.
Как называется эта проблема на пикриле (как ее правильно гуглить), и как она решается?
Это же пиздец. Почему вообще разрешается создавать одноименные классам функции? Сразу на ум приходят ситуации, когда ты в своем большом проекте сделал тысячу классов, потом подключил стороннюю либу, а там определены функции с такими же именами. И что, придется переписывать исходники проекта/либы? Очевидно, что должно быть какое-то нормальное решение
521 1879131
>>879127
Так а в чём пиздец то? Типичный проект состоит из собственного кода и thirdparty, поэтому от коллизии имён ты никуда не денешься. Обычно код заворачивается в namespace.

namespace func {
void A(){}
}
struct A {};

A obj;
func::A();
522 1879138
>>879131
Про неймспейсы я сразу подумал, но тут был вопрос, скорее, касательно самого синтаксиса. Просто я к тому, что в плюсах есть много неинтуитивных и не совсем логичных вещей. Например, чтобы вызвать стандартный конструктор класса Foo при определении переменной, то нужно писать Foo a; А если я хочу, например, в функцию f(Foo q, ...) в качестве аргумента передать локально созданный экземпляр класса Foo, инициализированный конструктором по умолчанию, то при вызове надо писать f(Foo(), ...);. Можно же было реализовать это в языке по-нормальному, чтобы было интуитивно, т.е. f(Foo, ...); без круглых скобок. Короче, бугурт
523 1879147
>>879138
А как тебе такое?

struct A {};
void f(A obj) {};
f({});
524 1879160
>>879073

std::cout << "Nahui idi";
525 1879173
>>879073
Компилятор интерпретирует один язык с точки зрения другого, скажи, что это не так, зануда.
526 1879206
>>879127
А как насчёт
auto a = A{};
527 1879233
>>878204
Зачем тебе opengl, когда есть directX?
528 1879247
>>879127

>Как называется эта проблема


Most Vexing Parse (самый досадный итог парсинга)
529 1879361
>>879173
Нет
530 1879395
>>879361
Так че ты пастой с википедии не высрался, а просто нет, скучно с тобой.
531 1879414
Как устроиться впервые если я знаю stl, qt, линукс на уровне админа ну и sql?
532 1879418
>>879414
Смотря кем. Если дворником, то иди в жек, там всем похуй на твои знания. А если кодером, то попробуй выучить ЯП какой-нибудь.
533 1879419
>>879418
Смешно. А теперь напряги извилины и на основании названия треда в котором я запостил свой вопрос сделай вывод куда я хочу устроиться.
534 1879442
>>879233
Что же выбрать: мультиплатформенное решение по производительности стоящее на 2 месте или костыльное низкопроизводительное говно привязанное к 1 говноплатформе?
535 1879445
>>879442
Не надо жирничу отвечать, просто игнорируй.
536 1879448
>>879414
Ты что-то написал? А что? А что готов писать?
537 1879456
>>879448

>Ты что-то написал? А что?


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

>А что готов писать?


За что заплатят хорошо то и напишу.
538 1879463
>>879442
Ты сейчас про линукс, на котором сидят 2,5 шиза и про мак ос, которым для работы!! надо? Шинда сейчас монополист на рынке всё лучшее на ней, а более худшего не нужно, понимаешь?
539 1879464
>>879442

>Говноплатформа


>99% игр на DirectX


Штош
540 1879466
>>879464
Но тем не менее Вулкан показывает лучшую производительность, чем DX12. Плюс Вулкан банально приятнее.
А вот OpenGL действительно нахуй не нужен. Разве что для мобилок ES дрочить. Ну или для поддержки древнего железа как резерв.
541 1879467
>>879466
Что ДХ12, что Вулкан адский ад, если твоя цель реально сделать игру, а не нарисовать треугольник за неделю.
542 1879474
>>879467
Ну если не хочешь углубляться, то есть отличные фреймворки с абстракциями над Вулканом/DX11/DX12. Смысла всё так же нет в OpenGL в 2021. Лучше bgfx какой-нибудь использовать, чем говно мамонта ковырять просто потому что оно легче.
543 1879480
>>879464
Ты троллишь или правда не в курсе что огромную долю современного игроговна можно запустить в опенгл моде?
544 1879499
>>879147

> f({});


Что это за пиздец? Что означает такой синтаксис, а именно пустые фигурные скобки в качестве аргумента?
545 1879509
>>879499

> Что означает такой синтаксис


Что передаём пустой объект.
hellotriangle.png1,9 Мб, 3300x20723
546 1879547
Напоминаю

>>879474
547 1879556
>>879480
Сильно меньше, чем ты думаешь. И этот ОПЕНГЛ никто не тестит, и не гарантирует, что оно работает
548 1879559
>>879464
Пчел, давно все игры на мобилах. Андроид, Айфон, может слышал?
549 1879561
>>879419
С твоими знаниями только в НИИ.
550 1879564
>>879499
То же самое, что и f(Foo()). Воспринимай это как список инициализации для конструктора аргумента функции.

struct Foo {
Foo(int a, float b) {}
};
f( {2, 1.0f} );
551 1879623
>>879480
Но зачем, если оно прибито к вин-параше?
552 1879702
>>879623
Для доисторического говна без DX11. Хотя сейчас любую игру можно в Вулкан обернуть через dxvk.

Пиздец мочух косоглазый, удалил пост с ответами, а пустой оставил.
553 1879714
Стоит ли всегда юзать shared_ptr даже в случае если нужен будет только 1 указатель ну просто чтобы было?
554 1879716
>>879714
99% всех твоих поинтеров должны быть unique_ptr. Шаред поинтеры нужны в очень редких случаях.
555 1879720
>>879716

>Шаред поинтеры нужны в очень редких случаях.


Например?
556 1879726
>>879720
Какое-то странное многопоточное шарево, или когда у тебя у тебя адовое легаси без четко очерченного лайфтайма обьектов.

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

Т.е. владение и лайфтайм были понятны.
557 1879732
>>879726
Ок, спасибо.
558 1879958
>>879714
Тупой вопрос.
559 1879960
>>879714
shared_ptr значительно дороже
560 1879971
>>879047
Отруби рантайм чеки и скомпиль в Release конфигурации

О результатах отчитаешься
561 1879995
Анончики, ещё одна проблема возникла при расчете CRC32, вообщем ситуация следующая

>>есть микроконтроллер российского гавнопроизводства, я написал прошивку для него, у этой прошивки с помощью обычных онлайн калькуляторов можно посмотреть контрольную сумму, то есть там используется полином crc32 ieee, моя задача прочитать память МК, в которую и была записана прошивка, это будет как раз массив uint32_t massiv[size]. Далее мне нужно вот к этому массиву применить расчет crc с использованием полинома crc32 ieee, для того чтобы я мог сравнить то что должно было быть записано в МК, с тем что там записано по факту.


Так вот, все работает, crc32 рассчитывается, но возникла проблема, как оказалось онлайн калькуляторы не используют чисто полином ieee, там какие то мутанты, поэтому единственный вариант это смотреть значение crc прям во время работы программы.
Ещё раз по порядку, я запускаю программу, там есть переменная которая хранит рассчитанную crc, затем я должен добавить в эту программу define с текущим значением crc, который я только что увидел, это и есть как бы эталон, но вот проблема, как только я впишу туда значение эталона crc, после перезапуска программы crc естественно изменится, так как новая строчка кода появилась.
То есть: пусть значение crc32 без добавления строчки с эталоном это Х, У значение crc32 с добавленным значением эталона. Я врубаю прогу, получаю Х, это значение Х я вписываю в эталон и при запуске значение Х меняется на некий У. И в программе я сравниваю Х с У и получаю нихуя, потому что У я не могу знать заранее, как и Х, я их узнаю только после запуска.
Вопрос: есть ли способ как-то заранее учесть в программе это, может есть какие-то алгоритмы?
562 1880010
>>879958
Ало, я этот пост написал спустя час от прочтения темы.
563 1880025
Так чё кто по итогу победил? Vulcan direct или прости господе opengl
564 1880027
В общем, такая проблема.
Есть абстрактный класс А, содержащий описание виртуальных функций.
Есть наследник B, реализующий эти функции конкретным кодом. По условию задачи, реализация может быть разной, в этом и смысл.
Есть некий главный класс, который должен работать с реализацией типа абстрактного класса А, но должен быть универсальным по отношению к конкретной реализации.

Проблема в том, что в с++ я не могу объявить поле класса типом абстрактного класса А, а потом присвоить этому полю экземпляр конкретного типа B. И по другому никак, т.к. такая архитектура - требование задачи.

Как, собственно, решить этот вопрос, чтобы это было красиво и true way?
565 1880037
566 1880038
>>880037
Нет
567 1880042
>>880025
Пока что лидирует Metal.
568 1880050
>>880027
Придумал такое решение. В главном классе поле объявляется как указатель на абстрактный класс, а в конструкторе этому указателю присваивается адрес конкретного класса-наследника с реализацией. Вроде работает, но это достаточно true way?
569 1880089
>>879702

>dxvk


Хм, если это так просто то почему все игры не портируют таким образом?
570 1880093
>>880089
Потому что снижает производительность в большинстве случаев, только на DX9 можно получить немного фпс, это же обётка поверх DX. Его сейчас и так под всякие решейды везде в некроиграх подкладывают, для совместимости и нормального захвата буфера глубины. Правда там ещё пердолинг присутствует, т.к. это всё пилилось под Линукс для вайнопердоль, а Винда уже вторична.
571 1880108
Как часто вы встречаетесь с object slicing? Вообще не припомню чтобы в треде хоть раз упоминалось.
572 1880115
>>880108
Когда джуны ревьювят код джунов. Пару раз уже натыкался на такое пиздец
573 1880178
>>880108
Вот серьёзно, что должно произойти чтобы сабж возник в коде?
мимо джун
574 1880210
>>880108
Никогда
575 1880268
Почему clion нихуя не подсвечивает в шаблонных классах?
576 1880270
>>880268
Колбаска
Сосиска
577 1880292
>>880268
Этот функционал в костыльном варианте только в студии есть
578 1880303
Помохите

> undefined reference to `deq<int>::deq(int, int)'

579 1880304
>>880303
Имплементация то твоей залупы где, гений?
580 1880309
>>880304
Что это?
581 1880310
>>880303
Коньструктор определи.
582 1880311
>>880310
Так я определил
583 1880313
>>880309
то, где сам код, а не просто сигнатуры методов
584 1880315
>>880311
ты ОБЬЯВИЛ, а не ОПРЕДЕЛИЛ
изображение.png10 Кб, 662x252
585 1880317
>>880315
Всё я определил
586 1880318
>>880317
а файл этот в проект подключил?
изображение.png5 Кб, 516x161
587 1880320
>>880318
Я вообще в автоматическом режиме классы создавал, иде вроде всё сделало правильно. Да и раньше проблем не было
588 1880322
>>880317
Темплейты в хедер.
589 1880325
>>880322
Так всё работает
590 1880326
>>880325

>Так всё работает


>undefined reference to `deq<int>::deq(int, int)'


Ты тупой?
изображение.png25 Кб, 727x612
591 1880328
>>880326
Что сказать то хотел? Если сделать как пик ошибок нет, если определения функций вынести в cpp то ошибка
593 1880333
594 1880363
>>879971
Какой релиз, это гцц под линух.
Я напишу в лабе просто что это паддинг для алигнмента, мне в C треде уже помогли.
595 1880379
Есть два unique ptr, первый я ресетнул, теперь надо как то освободить второй с передачей его данных первому. Как это сделать?
596 1880381
>>880379
Сделал так, нормально?

> vec = std::make_unique<std::vector<int>>(*(temp.release()));

597 1880383
>>880379
ptr1 = std::move(ptr2)
598 1880395
>>880383
Спасибо
599 1880396
>>880383
>>880395
При этом первый можно не ресетать отдельно.
600 1880429
>>880363

>Какой релиз, это гцц под линух


-O1 или -O2. Хотя бы -Og. Так всего 16 байт выделяется, как и можно было ожидать. Можно ещё добавить -fno-builtin, чтобы строковые функции уж слишком не оптимизировались. Без оптимизаций GCC может оставлять кучу фигни для отладки.

>паддинг для алигнмента


Паддинг для char? Лолват?
601 1880533
>>880050
да, именно так
602 1880538
>>880108
ну, к примеру, это причина классической проблемы хранения полиморфных объектов в контейнерах stl, из-за этого приходилось либо хратить указатели или смарт-пойнтеры или использовать другие контейнеры, из того же буста
603 1880543
>>880268
дак это вечная дилемма: код по настоящему напичканый макросами или шаблонами, очень плохо отлаживать дебаггерами, плюс на нем ломается любое ide, плюс нечитаемые сообщения о ошибках
получается что на полную возможностями ide и отладчика можно воспользоваться только если пишешь plain с или приплюснутый си
604 1880579
Что почитать на тему юза битовых операторов и интересные кейсы где они применяются?
605 1880646
>>880579
Что тут, блять, может быть интересного? Установка бита в определённую позицию.
Читай про varint
606 1880653
>>880579
Не читал, но вроде Hacker's delight про это.
Алсо, https://graphics.stanford.edu/~seander/bithacks.html
607 1880772
>>880579
проверка чётности интов
608 1880838
>>880579
Байтоебство. Бинарные протоколы, ембеддед. Арифметика с фиксированной точкой
stackB.png59 Кб, 1657x702
609 1880930
>>880429

>-O1 или -O2. Хотя бы -Og.


Мне нужно именно объяснить работу эксплойта с переполнением буфера, дан уже готовый бинарник и надо работать с ним. Да и уже с -O1 не выйдет этот эксплоит (нужно перезаписать переменную flag переполнив буфер, с -O1 она даже не на стеке).

>Паддинг для char? Лолват?


-->
>>1879192 →
В C треде я предположил, что это потому, что гцц выделяет место под одну переменную и тут же пытается выровнять стек по 16 байт, вместо того, чтобы выделить сразу все переменные и потом выровнять стек. Ну и там пэддинг не для массива чаров получается в таком случае, а для всего остального.
610 1881136
>>880930

>выровнять стек по 16 байт


Вот на это похоже, да. Значит остался вопрос, зачем остался пропуск в 12 байт, хотя он мог спокойно записать туда заспиленный аргумент в strcpy. Ответ: хрен знает, оптимизации же выключены, любые тупости первоначальной кодогенерации не будут потом удалены.
611 1881201
Подкиньте идей для первого крупного проекта. Желательно такого, после которого меня возьмут в амазон/мелкософт/теслу-хуеслу/etc.
612 1881205
>>881201
500 задач на литкоде, лол
613 1881211
>>881205
Переизобретение лисапедов + оторванные от реальности задачи == говно говна == пустая трата времени.
614 1881214
>>881211
а на собеседовании всем будет похуй на твои проекты, и спрашивать будут только литкод

Соус - собесился в гугл, пару дружань собесились в фейсбук
image.jpg87 Кб, 1200x900
615 1881216
>>881214
Чел...
616 1881222
>>881216
Что? Все собесы во весь FAANG именно такие. Всем похуй кто ты, и что писал. Это интересно хоть как-то будет после нескольких раундов решения задач с литкода.
617 1881225
>>881222
Прекращай уже, и без тебя живот болит.
618 1881228
>>881225
земля пухом, братиш. Пиши суперкрутой проект.
619 1881231
>>881228
Могу ебать, иду писать. Если хочешь - оставь свой ник, как напишу проект на несколько лярдов президентов и стану известным оставлю референс для тебя.
620 1881232
>>880579
Алгоритмы коррекции ошибок.
621 1881240
>>881231
nom|4wadANUSagUugPUNCTUMrcE.u добавь в благодарности
622 1881260
>>881240
Я тебе даже 1 акцию зашлю.
623 1881380
>>881222
>>881214
Ну так блять берешь тогда просто сразу ответы с обсуждений пиздишь, говоришь, что сам писал и идешь в гугл.
624 1881583
>>881380
Пиздишь прям во время интервью с онлайн блокнотом?
625 1881639
>>881583
Так ты же сам сказал, что по литкоду смотрят, какой нахуй онлайн блокнот?
626 1881871
>>881639
ты на собеседовании решаешь алгоритмические задачки в онлайн блокноте.
627 1881889
>>881639
Задачи с литкода в реальном времени, гений.
628 1881901
Почему у меня vs при исключении кидает меня хуй знает куда? То в исходники вектора, то в файл с асмом. Я хочу что бы только в моем коде все происходило. Как настроить?
629 1881917
>>881889
>>881871
Ну и зачем для этого задрачивать 500 задачек там? Достаточно просто посмотреть сразу решения чтобы запомнить алгоритмы.
630 1881932
>>881917

>ПРОСТО

631 1881935
>>881901
кидается туда, где кинулся эксепшен, очевидно же

>>881917
Это так не работает, к большому сожалению
632 1881940
>>881901
Попробуй включить just my code в настройках проекта

Лучше сначала поищи статью в блоге MS по сабжу, там разжевано всё
633 1881950
>>881935

> кидается туда, где кинулся эксепшен, очевидно же


Блин. Ну это не удобно же. Мне нужно знать на какой строчке моего кода произошла ошибка
>>881940
Just my code включен. Ну поищу что ты сказал
634 1881962
>>881950
Так на стек трейс кликни
635 1882006
Правильно ли я понимаю что в эмбеде умные поинтеры не юзаются? Если да то почему так?
636 1882020
>>882006
По-разному.
Там и стаднартной библиотеки-то часто нет в нормальном виде, а бывает и плюсов нет.
Иногда выкатывают свои простые реализации.
Ну и smart pointers решают не все проблемы, а те, которые решают, не всегда в эембеде существуют.
image.png252 Кб, 990x725
638 1882034
Как скачать эту жижу? Вон та кнопка не работает. И как её бля установить
639 1882040
>>882034
Ладно я скачал её, просто нажал пки и открыть в новой вкладке, а как установить в dev-c++?
640 1882049
>>882006
Оверхед же. Да и создавать что то в динамике такое себе.
image.png26 Кб, 902x890
642 1882054
image.png20 Кб, 471x531
643 1882056
>>882052
неработает!!!!!!!!!!!!!!!!!!!!!!
644 1882059
>>882006
В критическом вообще динамическая память не используется, а в какой нибудь чайник думаю сейчас можно и джаву запихать чтобы вообще все - смарт поинтер.
645 1882095
>>882040
Как вы заебали со своим ДЕВ С++, КОК БЛОКС и прочей некрохуйней. Откуда вы блядь эту дрисню вообще берете.

Есть студия, Есть слион, есть Вскод на худой конец, нет, находят какой-то анальный клоунский пиздец и начинают ебаться в жопу, вместо того, чтобы писать на С++
image.png18 Кб, 578x294
647 1882114
>>882095

> некрохуйней


> Откуда вы блядь эту дрисню вообще берете.


Понятно же, что в методичке к laba1 указано, что нужно качать dev-cpp, borland c++ builder, visual studio 2005, либо ничего не указано, и тогда пикрил.
648 1882162
>>882095
Студия и ЛевЪ платные вообще-то. Так что только vscode или Eclipse.
649 1882167
Как перекатиться со студии на разработку в линуксе? В чём вообще отличия и подводные? Какой софт юзать там?
650 1882173
>>882162
Студия платная только когда ты занимаешься коммерческой разработкой с оборотом более ляма в год и более 5 разрабов в команде.

Слион можно украсть без проблем.
651 1882175
>>882167
Поставить шлион, переделать няшный мсбилд в сблев сифозной обезьяны под названием симейк, писать код.

Ну или поставить виртуалку с линуксом и кросскомпилировать через студию\винду.
video.mp41,3 Мб, mp4,
1280x544, 0:09
652 1882181
>>882175

>няшный мсбилд


>сблев сифозной обезьяны под названием симейк

653 1882182
>>882181
https://github.com/libarchive/libarchive/blob/master/CMakeLists.txt

Сможешь вот это задекриптить, например?
654 1882187
>>881950

> Блин. Ну это не удобно же. Мне нужно знать на какой строчке моего кода произошла ошибка


Открой окошко со стеком и посмотри на пару строк ниже
video.mp41,3 Мб, mp4,
1280x544, 0:09
655 1882191
>>882182

>The libarchive project develops a portable, efficient C library


>Сможешь вот это задекриптить

656 1882192
>>882034
vcpkg install libname
657 1882193
>>882191
понял, не можешь. Ну, я тож не могу, вот по-этому и смейк хуйня
658 1882210
>>882175

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


Двачую.

Шмек лучше для библиотек, для собственных проектов лучше vcxproj + property sheets
659 1882228
>>882210
А почему смейк лучше для библиотек? Потому-что он нативно работает с вцпкг и конаном, как единственный правильный способ устанавливать библиотеки!
660 1882270
Сап двач, хелпаните с винапи

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

TCHAR buffer15_20[1][20][15];
TCHAR buffer_ed[20] = { L"" };

HWND hEdit[20][15];
HWND hEdit_ed[20];
HWND text15_20[15][20];
HWND text20[20];

for (int i = 0; i < 15; i++) {
for (int j = 0; j < 20; j++) {
text15_20[j] = CreateWindow(L"EDIT", L"0", WS_CHILD + WS_VISIBLE + WS_TABSTOP + ES_READONLY + WS_BORDER, 8 + 29.7 i, 8 + 31 j, 27, 27, hDlg, NULL, hInst, NULL);
}
}
for (int i = 0; i < 15; i++) {
for (int j = 0; j < 20; j++) {
text20 = CreateWindow(L"EDIT", L"0", WS_CHILD + WS_VISIBLE + WS_TABSTOP + WS_BORDER, 8 + 29.7 * i, 650, 27, 27, hDlg, NULL, hInst, NULL);
}
}

for (int i = 0; i < 20; i++) {
hEdit_ed = GetDlgItem(hDlg, (LPARAM)text20);
GetWindowText(hEdit_ed, buffer_ed, 2);
}
for (int i = 0; i < 15; i++) {
for (int j = 0; j < 20; j++) {
hEdit[j] = GetDlgItem(hDlg, (LPARAM)text15_20[j]);
SetWindowText(hEdit[j], buffer_ed);
}
}

тупо не видит дескрипторы или функции get и set не работают с массивами?
660 1882270
Сап двач, хелпаните с винапи

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

TCHAR buffer15_20[1][20][15];
TCHAR buffer_ed[20] = { L"" };

HWND hEdit[20][15];
HWND hEdit_ed[20];
HWND text15_20[15][20];
HWND text20[20];

for (int i = 0; i < 15; i++) {
for (int j = 0; j < 20; j++) {
text15_20[j] = CreateWindow(L"EDIT", L"0", WS_CHILD + WS_VISIBLE + WS_TABSTOP + ES_READONLY + WS_BORDER, 8 + 29.7 i, 8 + 31 j, 27, 27, hDlg, NULL, hInst, NULL);
}
}
for (int i = 0; i < 15; i++) {
for (int j = 0; j < 20; j++) {
text20 = CreateWindow(L"EDIT", L"0", WS_CHILD + WS_VISIBLE + WS_TABSTOP + WS_BORDER, 8 + 29.7 * i, 650, 27, 27, hDlg, NULL, hInst, NULL);
}
}

for (int i = 0; i < 20; i++) {
hEdit_ed = GetDlgItem(hDlg, (LPARAM)text20);
GetWindowText(hEdit_ed, buffer_ed, 2);
}
for (int i = 0; i < 15; i++) {
for (int j = 0; j < 20; j++) {
hEdit[j] = GetDlgItem(hDlg, (LPARAM)text15_20[j]);
SetWindowText(hEdit[j], buffer_ed);
}
}

тупо не видит дескрипторы или функции get и set не работают с массивами?
661 1882320
>>882270
Нет.
662 1882337
Доброй ночи всем! нужна помощь с UML диаграммой паттерна mvc. я запуталась, есть пара вопросов. tg @dergoleem
663 1882341
>>882337
тебе в какой-нибудь петушиный тред, зеленый
664 1882363
>>873850
Жиза
665 1882384
Расскажите про эту книжку
Язык программирования C++. Лекции и упражнения Прата Стивен

Как она?
666 1882405
>>882095
Да всё я уже спиздил mvs в нем с гайдами проблем нет
667 1882457
>>882384
Эта которая C++ Primer Plus? Лет 10 назад ничего была, я как раз по ней изучал язык.
1545502805158.jpg14 Кб, 480x360
668 1882756
Учил жаваскрипт, чет заебался, вкачусь-ка в кресты эти ваши
669 1882769
>>882756
До встречи в питонотреде через 2 недели.
670 1882911
Как вывести символ CHAR в формате 0x0C через std::cout?
671 1882912
>>882756

> чет стало сложно и непонятно

672 1882913
>>882911
Можно обмазаться манипуляторами, но есть более адекватный способ - printf.
673 1882916
>>882913
Я пробовал printf("%02x" но оно чот не так выводит. Покажи как правильно пожалуйста.
674 1882923
>>882916
std::cout << "0x" << std::hex << 'a'

а вообще - fmt поставь, и не еби голову
image.png23 Кб, 691x281
675 1882932
>>882923

>std::cout << "0x" << std::hex << 'a'


Хуету выводит
image.png4 Кб, 384x82
676 1882936
677 1883039
Переполнение при присваивании может привести к затиранию данных?
1200px-Heartcorazón.svg.png29 Кб, 1200x1200
678 1883058
Скажите щас 220к норм зп у синьора с++? А то мне только на продукты хватает, при чем я даже квартиру не снимаю, своя. ДС.
679 1883115
>>883039
Конечно, как и любое UB
680 1883120
>>883058
Реальный сениор по москве щас это 300-350к. У тебя мидловская ЗП.
681 1883126
>>883039
Не слушай дебила >>883115
При присваивании коноплятор знает типы и сам за тебя генерирует static_cast
682 1883145
Как узнать самые затратные по времени участки кода в visual studio?
683 1883156
>>883145
Там внутренний профайлер есть. А вообще - https://docs.microsoft.com/en-us/windows-hardware/test/wpt/
684 1883171
>>883156
Я имел ввиду как не выносить участки кода в функции чтобы померить производительность
685 1883172
>>883058

>А то мне только на продукты хватает


Найс мемы
prof-tour-cpu-and-memory-graph.gif137 Кб, 349x671
686 1883177
>>883156
Реальная тема. С помощью профилировщика памяти даже некоторые хитровыебанные утечки находил.
>>883171
А вот тут сложнее. Сэмплирующий профилировщик может только примерную область показать. Но для локализации места тормозов обычно с лихвой его хватает.
687 1883212
>>883126
Читай стандарт, неуч. Знаковое переполнение - это UB, а при UB компилятор волен делать что угодно.
688 1883214
>>883058
Попробуй пятерочку вместо азбуки вкуса.
689 1883222
>>883214
Проиграл
690 1883232
>>881225
но ведь он прав
691 1883253
>>883120
Вот тоже думаю, об этом. Бля пиздец. зарплаты так быстро растут что я уже не успеваю следить за ними, и сколько надо просить при устройстве.
692 1883303
>>883212
Пчел, присваивание - не арифметическая операция, следовательно никакого переполнения тут в принципе быть не может.
693 1883510
>>883303
Пчел перечитай вопрос анона. У него уже переполнение произошло.
694 1883972
За сколько отсоритруется вектор размером 3000^2? Если это просто инты. А если это вектор объектов?
5a188ad6d0702ce7b110ff4c46c08b25.jpg27 Кб, 529x399
695 1883976
>>871183 (OP)
читал недавно в треде что "клиент и сервер хуйни" является годным упражнением. что конкретно нужно делать нужно?
696 1883991
>>883972

> За сколько отсоритруется вектор размером 3000^2?


За nlogn

> Если это просто инты. А если это вектор объектов?


За nlogn
697 1883996
>>883991
По времени
698 1884035
>>883996
Замерь.
699 1884079
>>883976
Почитать про socket/bind/connect/send/receive, сделать.
Потом сделать через select/poll/epoll, сделать
А дальше можно и фреймворками типа асио обмазаться
700 1884121
>>882932
К инту кастуй и ширину 2 ставь
701 1884157
Епта , уважаеме , подскажите пожалуйста , каким образом можно переместить допустим папку с помощью Плюсов ??
702 1884171
>>884079
Хуйня твои советы. Чтоб нормально что-то освоить нужна интересная задачка, а не вот эта вот хуета как в вузике - дрочите теорию и упражнения в вакууме.
703 1884178
>>884157
смотри в сторону std::filesystem
704 1884190
>>884171
Я не говорил, что в вакууме нужно делать. Но без хотя бы чтения man socket ты далеко не уйдёшь. RTFM.
705 1884191
>>884171
Ну напиши шахматы с мультиплеером для начала, вот тебе идея ебать
706 1884197
>>884178
Мне нужно передвинуть именно при помощи курсора , соре что не уточнил .
707 1884204
>>884197
std::system("explorer.exe") наркоман блять
708 1884206
>>884204
Спасибо !
709 1884212
>>883996
Что по времени? Ты понимаешь что ответ разный при запуске на малинке или на топовом рузене?
Screenshot5.png10 Кб, 418x223
710 1884220
у меня беда: SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, 0, szPath); пишет в буффер 1 символ C, я когда решил поменять на более старый компилятор, затем вернулся на 142 и всё залило ошибками..... как это чинить и почему ВинАПИ такое говно
711 1884222
>>884220

>printf


Туда ли ты зашел?
712 1884223
>>884222
В его защиту, std::print на основе std::format ещё не завезли
713 1884225
>>884222
Бери ёбаный стрингстрим и аллоцируй память триллион раз подёргивая локали, блять
714 1884245
>>884225
о боги, laba2.cpp начнет исполнятся на 3нс медленнее
715 1884267
>>884245
Войдёт в привычку и будешь жрать говно регулярно
716 1884272
>>884267
Скорее всего, его нахуй выпнут с любой работы за этот ебаный суржик сишный.
717 1884314
>>884272
Лол, в его коде printf — наименьшее из зол.
718 1884329
>>884197
И правда наркоман. Но давай подробностей, мне стало интересно
719 1884331
>>884220
Не винапи говно, а ты не умеешь документацию читать. Почти всегда в нем надо использовать wchar_t utf-16.
720 1884335
>>884331
Если выглядит как говно, значит говно.
Вообще тройка WinApi, MFC и COM это самое худшее, что можно увидеть в мире плюсов.
721 1884401
>>884272
Ты сейчас серьёзно защищаешь iostream?
722 1884408
>>884401
С пар капчуешь?
723 1884441
Что местные думают про курс https://www.coursera.org/learn/c-plus-plus-white?specialization=c-plus-plus-modern-development
1 неделю можно бесплатно, так что может кто просмотрит бегло, что там да как. Все таки цена не радует и платить за говно-курс не охота
724 1884444
>>884225
Эмм, а printf по твоему святой дух юзает вместо аллоцирования памяти?
725 1884445
>>884401
нет, я в своих проектах fmt использую, чего и тебе желаю.

Но в варианте сишного говна и иостримс - все таки иостримс, хоть это и аксиома эскобара
726 1884450
>>884225
Почему? cout - это объект класса ostream, вывод производится через метод перегруженного оператора <<, который принимает rhs аргумент следующим образом: если это rvalue - по &&, если lvalue - по константной ссылке. Где здесь триллион аллокаций?
727 1884451
>>884450
быстрофикс по поводу rvalue - просто принимает его копию, но rvalue - это литералы без адреса в памяти (std::cout << 4, например), поэтому энивей похуй.
728 1884456
Подскажите начинающему изучение, какую версию Вижуал Студии украсть с торрентов? Раз уж бесплатно, то может сразу Профешнл иди Энтерпрайз? Обесните, когда какая версия лучше подходит пожалиста
729 1884468
>>884401
Ты сейчас неиронично защищаешь prрешетоntf?
730 1884476
>>884456
Просто и без задней мысли качаешь community версию прямо с сайта мс
731 1884479
>>884225
Что тебе мешает сразу проаллоцировать sstream нужным размером?
732 1884541
>>884456
У меня куплена professional от работы. Так и не понял, чем она отличается от коммунити, которая дома. По-этому просто скачай бесплатную и не еби голову.
733 1884589
>>884541
Собственно действительно непонятно чем
https://visualstudio.microsoft.com/vs/compare/
Раньше, давно, помню в express нельзя было аддоны ставить, но это вроде уже много лет назад не так.
734 1884598
Есть ли в стандарной либе какой-либо класс который принимает контейнер и возвращает индекс и итератор?
Короче говоря, для range-based for хочется небольшую оберточку чтобы индекс перед циклом не писать и не инкрементить его в теле
735 1884658
>>884598
В range-v3 есть что то типа
for (auto const&& [idx, value] : your_container | ranges::view::enumerate) { }
736 1884734
>>884658
idx тут какого типа? только бы блядь не size_t, умоляю
737 1884740
>>884734
std::size_t
738 1884748
>>884658

>range-v3


Помойное название
739 1884762
Чем бы заняться после прочтения Страуструпа?
740 1884770
>>884762
Читай мейерса
741 1884778
>>884734
А что не так? У тебя индекс может быть отрицательный в контейнере?
742 1884790
>>884734
Можно наверное свою обертку намутить на шаблончиках
743 1884792
>>884748
Наоборот звучит очень футуристично, технологично.
744 1884806
>>884770
А после него?
745 1884808
>>884806
Если ты задаешь такие вопросы, то тебе никакие рекомендации никаких книг не помогут
746 1884810
А где можно следить за процессом выкакивания модулей by gcc? Так понимаю что сопутствующей проблемой встанет то, что системы сборки (bazel) также не будут уметь ещё собирать плюсовый проект на модулях?

А ещё интересно было бы вкатиться в системы сборки. Стоит предо мною дилемма, cmake или bazel. Вроде Базель намного проще удобнее и современнее, но смаке используется везде и на него наверняка документации побольше.
747 1884817
>>884808
Учебные материалы мне присниться должны, а дед?
748 1884834
749 1884869
>>884445
Ну хуй знает. Форматный вывод в потоки это еще более ебанистическая залупа, чем даже сами потоки.
Что угодно, включая snprintf, лучше чем пятистрочный пердолинг с ио-флагами и модификаторами (которые еще и имеют меньше возможностей, чем тот же принтф)
750 1884872
Как по заданным шести точкам оптимально найти какие четверки точек образуют грань прямого параллелепипеда?
751 1884877
>>884331
Они конечно говно, но
1. Винапи это C, плюсы тут ни при чем
2. MFC придумали до вменяемой стандартизации плюсов, отчасти поэтому оно такое как есть. Не нравится не ешь. Есть Qt, есть шарпик.
3. COM. Он велик и ужасен, но часто без него никак. Смирись.
Ну и доки всё же лучше читать. Потому как смотря на тот скрин видно не хитровыебаную проблему, а незнание char, wchar_t, TCHAR, и того с чем винда нативно работает.
752 1884878
>>884872
Ну там скалярное произведение, хуе-мое. А вообще по шести точкам можешь хоть полный перебор на О(N!) делать.
753 1884884
>>884541
Тем что у тебя скорее всего ещё msdn подписка. Ну и тонкости лицензирования. Вот в Enterprise да есть клёвые фичи, но и без них прожить можно
754 1884893
>>884778
http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-mix

Начинай читать отсюда. тлдр: "мы в комитете обосрались так сильно, что не хватит бумаги подтереться"
755 1884899
>>884817
В первой же ссылке, в оп-посте, есть сборник книг, сука ты тупая
756 1884903
>>884869
Ну так правильный то вариант - fmt все таки, а не выбор из двух стульев.

>>884884
от MSDN подписки полезного только 50 бачей на ажур ежемесячно, где у меня впска крутится. А так, каких-то плюсов больше нету.
757 1884904
>>884899
То хуита протухшая. За 3 года наверняка много годноты появилось.
758 1884912
>>884904
А в следующем-то сколько появится! Иди нахуй, долбоёб. Если ты не можешь осилить поиск книги в интернете, то программировать тебе ещё рано
759 1884923
Ананасы, пытаюсь применить std::lower_bound к вектору пар std::pair<unsigned long, unsigned long>. Условие моего поиска таково - я хочу найти число, которое падает в ренже между двумя значениями в паре.

Пример: вектор пар {1000, 2000}, {2000, 4000}, {6000, 10000}, число, задаваемое при поиске - 3000. Цель - при вышеперечисленных данных, вернуть итератор на пару {2000, 4000}, ибо 3000 находится между ними. Пытался написать через функтор, лямбду - возвращает неверное значение. Буду рад, если подскажете можно ли это красиво и чисто написать, не хуяря от руки кастомный бинарный поиск?
760 1884924
Не могу уже дрочить теорию, скажите, что нужно знать примерно, чтобы сделать программу, которая будет выгружать все картинки с треда в папку?
761 1884931
>>884792
Я и говорю.
762 1884932
>>884806
А после него (да и до) уже надо пушить сочные ништяки в проде.
763 1884935
>>884903

>Ну так правильный то вариант - fmt все таки, а не выбор из двух стульев.


Да, но она пока ещё только в виде отдельной либы, так что всем сосать.
764 1884936
>>884912
Нет ты. Быдло.
>>884932
Оо, вот это деду надо.
765 1884940
>>884935
Плох проект без депенденси менеджера
766 1884944
>>884940
Поинт не в этом
767 1884945
>>884924
подключаешь gumbo query и вперед.
768 1884947
>>884924
Хард мод: сетевой стек, модель слоев OSI, протокол TCP/IP, HTTP(S), значит обработку строк, эллиптические кривые для SSL, WinAPI раз у тебя папки, а не директории, многопоточность, ты же не собираешься сидеть до второго пришествия.
769 1884949
>>884923
Почему ты считаешь что это работа для lower_bound? Его семантика именно бинарный поиск

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


Какая разница через что писать, лол?
Упрости задачу и напиши сначала для вектора просто чисел, типа ищешь 3000 среди 1000, 2000, 3000, 4000
770 1884968
>>884924
json\curl
771 1884972
>>884924
Вроде в Poco есть HTTP. Но если хочешь хардкора, то для этого Boost.ASIO с Boost.Beast
А так я бы сделал на питоне с requests
772 1884975
>>884924

> выгружать все картинки с треда в папку


https://dollchan.net/
773 1884976
Есть ли смысл перекатываться в C++ с других языков?
774 1884977
>>884976
Есть.
6e9a581e01e0a30eab11b7577cd43546.jpg44 Кб, 534x328
775 1884978
>>884877

>Винапи это C, плюсы тут ни при чем


Да, типичные для C именования в стиле CamelCase и в стиле МНОГАРАНДОМНЫХБУХВ.

>MFC придумали до вменяемой стандартизации плюсов


Qt появился 25 лет назад. Ламповый 4.0 вышел в 2005 задолго до modern c++11.

>COM


Без ATL/WTL ты на нём просто охуеешь писать.

>незнание char, wchar_t, TCHAR


А ещё: CHAR, WCHAR, TCHAR, LPSTR, LPWSTR, LPTSTR, LPCSTR, LPCWSTR, LPCTSTR. Смотри не перепутай.
776 1884979
Есть класс базовый Widget. У него есть метод добавления\вызов каллбека по имени.
От widget наследуется класс MenuBar файл, правка, вид и тд. У этого класса есть метод добавления пункта меню: текст кнопки и имя каллбека.
Соответственно, чтобы всё работало как задумано нужно добавлять пункт меню, а затем добавлять калбек.
Стоит ли сделать так чтобы при добавлении можно было сразу добавить калбек (этот уже не будет связан с базовым классом и им будет управлять производный класс)?
777 1884980
>>884872
Никак. Плоскость/грань задаётся тремя различными точками, не лежащими на одной прямой.
778 1884981
>>884977
Есть ли удаленка на C++? Какие компании топовые по условиям работы?
779 1884984
>>884979
А похуй. Уже придумал как
780 1884990
>>884981
Сейчас все на удалёнке сидят. Из "условий работы" в большинстве случаев остались только деньги и ДМС.
Из отечественных контор всё как обычно: Яндекс, банки, Лохсофт.
Есть куча зарубежных жирных контор типа Хуавеев, но ты туда сразу не вкатишься.
781 1884993
>>884980
Однако, как мы оба знаем, грань параллелепипеда представляет собой четырехугольник, все вершины которого лежат в одной плоскости.
Видимо в задаче и надо найти такие четыре точки в исходном списке или показать что их нет.
782 1884997
>>884980

> Плоскость/грань


Прямая/отрезок
Треугольник/трапеция
783 1885044
>>884993
Грань вырожденного параллелепипеда, который возможен при его постановке задачи, не четырёхугольник.
784 1885045
Не напомните:

std::string str("Hello world!");
printf( "%s", str.c_str() );

Функция str.c_str() вернет указатель на нуль-терминированную строку. А сама эта нуль-терминированная строка где хранится в это время?
785 1885048
>>885045
в str
786 1885049
>>885048
Ты бы ещё сказал "в ОЗУ".
787 1885052
>>885048
так str - это ж вроде вектор чаров внутри, разве нет?
788 1885053
>>885049
А что ты хотел услышать? Внутри std::string находится указатель на строку с 0 в конце. Он и возвращается как const.
789 1885054
>>885053
вот и хотел уточнить как оно там внутри хранится, думал, что в виде вектора
790 1885059
Есть две плоскости, заданные уравнениями (на компьютере это 4 коэфицента a,b,c,d перед x,y,z соотв). Как мне определить, что плоскости параллельны, но при этом различны?
791 1885065
>>885059
Ну параллельны я понимаю как. А вот как понять различны они или нет?
792 1885066
>>885059
Наверное, они параллельны, если у них коллинеарные нормали. А разные - что точки с x=0 и y=0 дают разный z.
793 1885067
>>885059
http://www.cleverstudents.ru/line_and_plane/parallel_planes.html
И переписать на языке программирования.
794 1885068
>>885059
Ты тестовое на младшенького в гейдев пишешь?
Подсказка: тебе помогут векторное и скалярное произведение. (a,b,c) это вектор нормали к плоскости.
795 1885072
>>885068
Какое нах тестовое, сейчас же сессия у студентиков, пора срочно сдавать лабы и курсачи, иначе не допустят, и мамка будет ругать.
796 1885083
>>885045
Implementation-defined.
Скорее всего в SSO на стеке. Или в куче, если строка более длинная.
797 1885098
>>885054
Не, c_str уже в виде Си-массива явно.
798 1885100
>>885098
вот поэтому и непонятно как он хранит
799 1885107
>>885100
Чего непонятно?
Копирует байты во внутренний буфер.
800 1885137
может функция c_str() конструирует временный объект?
801 1885144
>>884978

>Да, типичные для C именования в стиле CamelCase и в стиле МНОГАРАНДОМНЫХБУХВ.


Венгерская нотация, наследие древности.

>Qt появился 25 лет назад. Ламповый 4.0 вышел в 2005 задолго до modern c++11.



MFC появился 28 лет назад. С++ хоть сколько-то стандартизировали 22 года назад. К сожалению, МС забила на MFC году так в 2003-2005 и стала продвигать .NET, оставив с++ без вменяемого GUI (и средств его разработки). Сколько-нибудь значимое изменение - в 2008 году купили слепок кода у BCG, но дальше развивать не стали. Сейчас двигают UWP - но многих вещей на нём не сделать.

>Без ATL/WTL ты на нём просто охуеешь писать.


Тут согласен. Да и с ними тоже можно охуеть (когда пишешь компонент, а не используешь).

>Смотри не перепутай


Ну тут всё просто (см первый ответ). Но мой посыл был про то, что надо использовать _UNICODE и -W версии функций. И не кастить wide строки к char (а если очень хочется - то не к разным codepage а конвертить в UTF-8 через WideCharToMultiByte например)
802 1885145
>>884903

>А так, каких-то плюсов больше нету.



Я думал у тебя подписка с дистрибами и так далее.
803 1885148
>>885045

>А сама эта нуль-терминированная строка где хранится в это время?


Вот этот >>885083 прав. Сама SSO - довольно интересная штука, посмотри её устройство.

Блять, да где ебучая капча?
804 1885150
>>885137

>может функция c_str() конструирует временный объект?


Нет, потому что

The elements of a basic_string are stored contiguously, that is, for a basic_string s, &⚹(s.begin() + n) == &⚹s.begin() + n for any n in [0, s.size()), or, equivalently, a pointer to s[0] can be passed to functions that expect a pointer to the first element of a null-terminated (since C++11)CharT[] array.

Смотри
https://en.cppreference.com/w/cpp/string/basic_string/c_str
https://en.cppreference.com/w/cpp/string/basic_string/data
805 1885152
>>885137
Нет.
Внутри std::string есть m_size и m_pointer. Если строка длинная (больше, чем sizeof(m_size) + sizeof(m_pointer)), то в куче выделяется память и туда записывается текст в конец которого ставится /0; m_pointer указывает на эту память. Именно он и возвращается c_str() или data(). Если строка короткая, то имеет место small string optimization. За правильную реализацию не скажу, но возможно как-то так: Первый бит m_size указывает, что строка короткая или длинная. Следующие 7 бит хранят длину строки. Сама строка записывается поверх памяти [m_size]+[m_pointer] со 2 байта (m_size и m_pointer лежат в памяти на стеке последовательно). В конце пишется /0. Соответственно функции c_str() и data() возвращают указатель на 2 байт m_size.
Но в любом случае никаких буферов для конвертации в C строку не создаётся.
Поправьте, кто в теме.
806 1885155
>>885152
В целом ты прав, а в частности в каждой реализации может быть по-своему (+ доп извраты в Debug) и меняться от версии к версии, впрочем, MS например заморозили ABI на v140 тулсете и пока не меняют, но собираются - для реализации каких то новых фич придется сломать бинарную совместимость.
807 1885165
>>884834
А ты довольно немногословен
Может хоть расскажешь почему стоит использовать скнс, который ещё менее популярен чем Базель, значит ещё больше проблем с внешними проектамм
808 1885191
Сап.

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

Так вот. Сейчас есть класс Device от которого отнаследованы несколько классов, которые непосредственно пиздят с железом. При этом внутри класса Device есть классы, предназначенные для хранения устройство-специфических данных. Классы для хранения точно так же наследуются в классах, предназначенных для работы с конкретным железом.

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

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

К чему я всё это: посоветуйте литературу, которая разъясняет, как проектировать иерархию классов/наследования, как грамотно придумывать взаимодействие между ними и всякое такое. На своих ошибках учиться больно уж геморно и времязатратно.
809 1885233
>>885191
Посмотри книжки по:
- рефакторингу (Фаулер "Refactoring - Improving the Design of Existing Code")
- паттернам проектирования (Гамма и ещё 3 мудака "Design patterns")
- операционным системам (Танненбаум "Modern operating systems")
Сильно не упарывайся, просто вникни как на каждом уровне решаются архитектурные проблемы.
810 1885328
>>885165
Советовать не буду, но про Базель я от тебя впервые слышу, а скунс хотя бы в несколько опен сорс проектах попадался.
811 1885332
>>885191
Вот такую штуку советовали (но пока не нашел времени почитать)
https://github.com/donnemartin/system-design-primer
812 1885339
>>885332
На английском же.
813 1885343
>>885339
Кошмар, еще и на Питоне и про веб, да?
814 1885345
815 1885358
>>885045
string это класс, у него есть мембер - указатель на char, а также какой-нибудь unsigned long buff_len, который хранит инфу о длине аллоцированной строки. Метод c_str возвращает указатель на начало этой строки в памяти. На вопрос где это находится - в куче, ибо размер строки неизвестен заблаговременно в компайл тайме. Деструктор класса string потом удаляет выделенную память.

Long story short - за кулисами это работает как в сишке (если посмотреть на реализацию внутри класса string), просто ввиду присутствия ООП в плюсах, сию сырую ебанину можно обернуть в класс.
816 1885365
>>885358
значит string хранит уже нуль-терминированную строку?
817 1885378
>>885365
Какой string? Где? Тебе же написали выше - implementation defined. Там может хоть на лету создаваться, язык такого не запрещает. Язык определяет только интерфейсы, интерфейс говорит что при вызове c_str() ты получишь нуль-терминированную строку, все.
Если тебе интересно как сделано конкретно в gcc там и смотри сам
https://gcc.gnu.org/onlinedocs/gcc-4.6.2/libstdc++/api/a00770_source.html
818 1885384
>>885365
Да, у него есть поле в классе - указатель на чар, он и указывает на начало строки в памяти.
819 1885474
А как называется структура данных (дерево какое-то), когда количество узлов может быть любое у каждого узла дерева и глубина ветвления не ограничена друг относительно друга?
M-Way Tree - это оно?
820 1885479
что значит size_t?
822 1885507
>>885339
Другого и не надо.
823 1885512
Как сделать строгий алиас к типу?
Например, хочу передавать строку в функцию: в одном случае имя текстуры, а в другом текст. Т.е. будет две перегрузки.
824 1885516
>>884990
А какие технологии наиболее популярны? Qt, Boost или что-то другое?
image.png236 Кб, 1177x662
825 1885517
>>885507

>>Другого и не надо.

826 1885539
>>885512
Никак, есть несколько 3рдпати либ, но они кал.
827 1885557
>>885512
Строгий псевдоним типа и есть тип.
828 1885564
829 1885602
>>885512
Звучит как не очень пахнущая архитектура.
830 1885615
>>885602
Тебя ебать не должно что тебе там слышится
831 1885623
>>885602
не, сильные алиасы это крутотенюшка, другое дело, что они не стандартизированы, и никто не знает, как их правильно готовить. Но, оверолл, я бы с удовольствием пользовался, будь оно в стандарте
832 1885624
>>885144

>оставив с++ без вменяемого GUI (и средств его разработки)


можно писать для UWP на стандартном с++ 17 с использованием winrt, это будет чистый с++, не расширение с++/cx
другое дело что никто этого не делает, лол, тк шарпик есть
833 1885627
>>885144

>оставив с++ без вменяемого GUI (и средств его разработки)


При всей моей любви к сиплюсплюсу, гуи я буду писать на шарпе на Avalonia. Потому-что так проще и быстрее, хоть я и шарп знаю сильно хуже.
834 1885637
Не бейте сильно, решил поучить ваш язык, дошел до указателей и не понимаю во что
int counter_p = new int(7);
std::cout << counter_p << ' ' <<
counter_p << std::endl;
delete counter_p;
std::cout << counter_p << ' ' << *counter_p << std::endl;

На выходе получаю
0x7f9131c05900 7
0x7f9131c05900 7

Непонятно именно последнее. Память мы освободили ведь, почему нет ошибки? Т.е. даже компилятор не ругается и варнингов нету.
835 1885638
>>885637
Звездочки съел. Сначала адрес, потом знаечние вывожу
836 1885640
>>885637
А, уже дошло. Мы просто память системе вернули, только я думал, что указатель обнулится в таком случае.
837 1885660
>>885637

>>На выходе получаю


>>0x7f9131c05900 7


>>0x7f9131c05900 7


Это ты где такое получаешь?
838 1885661
Какие технологии языка мастхев для всех не в зависимости от сферы деятельности? Что поучить после базы и stl?
839 1885663
>>885660
На выходе
840 1885665
>>885663
Клоун, пидрас, троль, мразь, ублюдок, гнида, падаль, тварь, чудище, уебок, чмоня, лошок, ебаный ты чел, где этот выход находится??????????????
841 1885666
>>885665
В стандартной библиотеке шаблонов, хуйло.
842 1885667
>>885637
Андифайнед бихевиор на то и андефайнед
843 1885668
>>885666
Клоун, пидрас, троль, мразь, ублюдок, гнида, падаль, тварь, чудище, уебок, чмоня, лошок, ебаный ты чел, какой еще библиотеке?
sage 844 1885669
>>885665
Вам в дескриптор #1
845 1885670
>>885668
В стандартной библиотеке, хуйло.
846 1885672
>>885668
Стандартной.
847 1885673
>>885661
Тебе базу учить еще годик. Просто пиши код, старайся применять модерновый подход.
848 1885674
>>885669
>>885670
>>885672
Клоуны, пидрасы, троли, мрази, ублюдоки, гниды, падлицы, твари, чудики, уебки, чмоньки, лошки, ебаные вы челы, прямо сейчас объясняете как получается такой вывод без всяких умных слов
849 1885676
>>885674
Адрес указателя и значение. Кстати, хуй сасать будешь?
sage 850 1885677
>>885674

>прямо сейчас объясняете как получается такой вывод без всяких умных слов


Открываешь исходники ядра и читаешь про файловые дескрипторы, а именно про stdout. Ну что ты как маленький.
851 1885678
>>885673
Там уже нечего учить. + Я исписался. Уже 2 проекта на гите запилил, 100 звёзд суммарно получил. И Майерса этого вашего прочёл. Дальше что делать?
852 1885684
>>885678
Мм, работу искать? 100 звезд это неплохо.
853 1885688
>>885684

>Мм, работу искать?


Да не, рано ещё. Мне не поверят если я к своим 3 месяцам вката плюсану до требуемого кол-ва в вакансии. Ну и Крюгер этот ваш вроде не мучает - понимаю что многого ещё не знаю, наверняка загнусь на собесе, нужно хоть какую-то технологию освоить на более-мене серьёзном уровне.
854 1885690
>>885688
Попробуй boost.asio освоить, напиши йоба чат, который держит 100к коннектов.

Как вариант еще - qt, но тут надо смотреть, что в твоем городе больше требуется на джунов.
855 1885692
>>885678
Покажи проекты
856 1885695
>>885690

>boost.asio


>qt


Как раз их в проектах и юзал, лол. Но ничего серьёзного без лютого чтения доков. Чат мб попробую. Сейчас на выходных по приколу opencv по туториалам копаю, но наверное буду qt осваивать.

>тут надо смотреть, что в твоем городе больше требуется на джунов.


Да я из Московии, тут вакансий хватает. Думал сначала тут вопрос задать прежде чем оттуда что брать.

>>885692
Не, пока не стану. Там деанон сразу будет, сори.
857 1885696
>>885695

>деанон сразу будет


И? Травить что ли будут?
858 1885705
>>885696
Всё может быть. Не хочу обострения паранойи.
859 1885708
>>885705
Ну а в архив и на файлообменник?
Снимок экрана 2020-12-20 в 22.47.54.png36 Кб, 910x150
860 1885740
>>885637
Это снова я.
Я не понял, как удалить void pointer? Неужели его надо преобразовать в тип, накоторый он ссылается и удалить только тогда?
861 1885763
>>885740
Ты его через new не создавал, вот и delete нехуй писать, норкоман, блядь.
862 1885767
>>885740
ты вообще не понимаешь, что творишь.

Иди книги перечитывай, главы про указатели и аллокации.
863 1885769
>>885740
Ты пытаешься освободить память, которую не брал через new. Конечно будет ошибка.
>>885767
Конечно не понимает. Зуб даю, что 90% кто доходил до указателей и ссылок, обсирались не хуже.
864 1885810
>>885740
А что ты удалить то собрался? Переменную?
865 1885920
Народ, а хуле вы крестовики не пользуетесь зумерскими технологиями, такими как менеджер зависимостей типа maven/npm, нормальными тестами, шоб можно было TDD ебошить как нормальнеый чел.

Чё сложно-то так?
866 1885922
>>885920
Vcpkg + doctest, хули ты как маленький
867 1885936
>>885920
conan.io
catch2
868 1885938
Поцоны, а вы в принципе зачем плюсы учите, если сейчас платят где угодно больше при меньшем затрате усилий?
Разве что в геймдев идти, который в России в парочке компаний и в десятке инди студий с копеечной зп?
869 1885944
>>885938
Я РНН а кресты это мое хобби.
870 1885945
>>885938
Устроился джуном в родном Киеве за 30к местных рейхсмарок в то время когда на всякую жсо, хпх и жава/шарпопарашу зп у похожих вакансий начинаются от 8-10к.
871 1885946
>>885938
Бля моча банит за хохлов не приятно конечно! Аж роутер перезагрузить пришлось! Ну а по твоей теме, на плюсах же самое серьезное и интересное пишется. Нахуй блять эти ебаные сука месенджеры кому нужны будут через пару лет.
872 1885955
>>885920
Какой язык - такой и тулинг. Несколько реально используемых компиляторов, несколько способов подключения либ, много зависящих от реализации фич, плохо скрываемая низкоуровневость - попробуй в таких условиях написать универсальный менеджер пакетов хотя бы.
873 1885973
>>885920
Для TDD пользуем GTest от гугла. Также docker, nodejs, npm, react, .NetСore. Такие вот мы крестовики-затейники.
874 1885980
>>885938
Есть довольно много сытных мест помимо /gd, если ты крестодед.
sage 875 1885982
>>885920

>шоб можно было TDD ебошить как нормальнеый чел


Условный Catch2 или Google Test проще простого установить же.
876 1886071
>>885938
Я долбаеб просто. Пишу гуи на qt. Ну и так, по мелочи
877 1886087
>>885982
Сажа, отклейся
878 1886092
Нуб в этом итт треде. Есть
879 1886096
>>886092
блять.

Есть алгоритм на C++, там много файлов и h, и cpp, но графику гораздо удобнее прописать на python.
Как можно вызвать функцию в которую вложено дохуя других функций из питона?
Учить CLI нет ни времени, ни желания надо сдать проект в уни. Про C API знаю, но можно ли там, допустим, написать функцию, которая принимает аргументы из питона, форматирует их и вызывает нормальные cpp функции, без переписывания их всех?
880 1886126
>>886096
Какую графику?
881 1886130
>>886096
pybind11?
882 1886152
>>871183 (OP)
как установить треду размер стека?
883 1886158
>>886152
pthread_attr_setstacksize не помогает?
884 1886179
>>886126
Построение пути объекта, то есть задание препятствий (рисование фигур) в реальном времени, задание начальных и конечных координат, потом отображение пути.

>>886130

>pybind11?


Спасибо, сейчас почекаю.
885 1886194
Как пропарсить массив через инжектор заднего индекса? Чтобы без передней индексации консольной, а сразу напрямую в кеш? Может это есть в стандартной библиотеке?
886 1886214
>>886194
Щито блять?
887 1886223
>>885920
У нас VCPKG в проде, полет охуительный.
889 1886260
>>886223
Пока не допилят нормальную версионность, нет. У нас в разных проектах разные версии, свои сборки с недефолтными флагами, и свои либы.
890 1886265
>>871183 (OP)
где почитать про внутреннее устройство map, set, multi, unordered?
891 1886266
>>886260
Нам версионирование нужно только во внутренних либах, просто впилили говноскриптик, который создает новый пекедж и меняет vcpkg.json в проекте. Приятно.

Но ваще версионирование они обещали в этом месяце.
892 1886289
893 1886290
>>886265
В исходниках, опенсорс же.
894 1886291
>>886290
нахуй иди, со своим страусом и сатисом
изображение.png383 Кб, 720x405
895 1886297
>>886253
И видео ты смотришь вот так же?
896 1886301
У меня есть прога на плюсах где просто дохуя вычислений надо сделать. Она по времени немного не заходит. (Вычислений столько, что дано аж 7 секунд). Может ли смена крестов на си без использования всяких std::min улучшить ситуацию?
897 1886304
>>886253
Ну вот да, в этом и главная проблема всего десктопа в линуксе.
898 1886306
>>886301
нет, алгоритмы чини, или параллель
899 1886308
>>886301
Вообще нет, компилятор-то один и тот же. Иди профилируй.
900 1886311
>>886306

> нет, алгоритмы чини


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

> или параллель


Так вроде нельзя на олимп проге
901 1886322
>>886311
Значит есть какая то подъёбка, которую ты не учёл
902 1886332
>>886311

>олимп проге


По идее они делаются так, что с правильным алгоритмом ты хоть на питоне решишь.
903 1886334
>>886332
Нет. Далеко не всегда. Там даже пишут часто, что жюри не гарантируют решение на всех языках программирования, а только на одном конкретном. Обычно это плюсы. Но может быть еще что то.
904 1886384
>>886297
mplayer под i3
905 1886473
>>886214
Неосилятор спок
906 1886494
>>886194
Конечно есть, в Гугле забанили?
907 1886495
>>886194
А теперь на языке ангелов, а не орков.
908 1886497
Можно ли в QT крутить QGraphicsItem не вокруг оси OZ, а вокруг OX или OY? QTransform - это оно?
909 1886501
>>886473
Осилятор-шизоид, спок >>886495
sage 910 1886514
>>886495
How to parse an array through a back index injector? So that without front indexing the console, but directly directly to the cache? Maybe it's in the standard library?
maxresdefault.jpg94 Кб, 1280x720
911 1886520
>>886514

>but directly directly

912 1886587
>>886301
Показывай.
913 1886593
914 1886594
C++ обфускаторы есть?
915 1886599
>>886594
компилятор, лул?
916 1886602
>>886599
Ну как исходник сделать нечитаемым?
917 1886603
>>886602
Лучше ответь на вопрос - зачем?
918 1886605
>>886603
Чтобы другие не смогли прочесть
919 1886606
>>886599
Если он умеет asm->c++. Но я о таком не знаю
920 1886607
>>886605
скомпилируй, выложи библиотекой?
921 1886608
>>886594
Обфускаторов нет, но есть методы защиты от реверса которые вполне себе работают.
922 1886609
>>886607
Нет. Нужно просто исходник сделать нечитаемым. Вот вся задача
923 1886611
>>886609
ну если ты настолько шиз - скомпилируй, потом декомпилируй обратно через HexRays.
924 1886613
>>886611
Можно ещё ради смеха через movfuscator пропустить.
925 1886615
>>886609
Денува.
926 1886630
>>886587
Зачем?
927 1886633
А нельзя как то visual studio сказать, чтобы она код наполовину скомпилировала? Она же генерирует промежуточнвй какой то плюсовой код. Вот можно его получить? Это как раз и будет хуйней нечитаемой, да?
928 1886634
>>886633
ты можешь вменяемо обьяснить что ты хочешь сделать, шизик?
929 1886635
>>886633
Иди нахуй уже.
930 1886636
>>886609
Добавь в зависимости openssl и qt
931 1886637
>>886634
>>886609
Hex rays платный же
932 1886640
>>886636
Boost еще
933 1886643
>>886637
Проприетарщики должны страдать
934 1886644
>>886637
Да вроде сдедали фри урезанную
936 1886801
>>886497
Это ведь будет выглядеть как если ты меняешь scale по х или у, его смотри.
937 1887099
>>871183 (OP)
какое новое значение bucket_count выбирает unordered_map когда решает сделать rehash?
938 1887111
>>887099
В исходниках это должно быть.
939 1887127
>>887111
всё, спс, спросил у твоей мамы, говорит что степень 8 резервирует
940 1887134
>>887127
8
64
512
1024
2048
4096
8192
16384
32768
65536
131072
262144
524288
*
941 1887137
>>887099
Если в стандарте написано сколько то столько.
Если нет, то сколько захотел автор компилятора
942 1887404
>>871183 (OP)
в чём разница между deque и list?
943 1887468
>>887404
deque - лист из векторов
Screenshot 2020-12-22 205251.jpg84 Кб, 684x399
944 1887488
Решил обмазаться говном и ПОКОМПИЛИРОВАТЬ gzdoom, и тута ошибка что _First это константа и ее нельзя присваивать, и это в стандартной билиотеке std::sort, а в других версиях если погуглить не было этого const, как вобще такое решать и откатить на старую STL библиотеку, ну пиздец же как вы на этом погромируете
945 1887500
>>887488
Дебилушка, ты бы хоть полный текст ошибки вывалил, а не этот огрызок студийного парсера
946 1887526
Чтт быстрее: умножение или запись в память?
947 1887534
948 1887535
>>887526
Умножение
949 1887536
>>887526
Сдвиг
950 1887567
войны синих крестов, кто из анонов с опытом 1-2+ года может просмотреть и указать на ошибки обосрать мой код? важный проект, уже чую говно от себя, еще совсем зеленый, нужна маломальская помощь...
951 1887573
>>887567
Ты обратился по адресу. В этом треде собрались настоящие профессионалы, способные обоссать кого угодно, независимо от качества и даже наличия кода. Кстати, пошел нахуй.
952 1887576
>>887573
ебать спасибо нахуй, а это совместимо со стандартом c++17? а то не хочу быть обоссаным не по стандарту
image.png33 Кб, 798x579
953 1887582
Как задоджить эту парашу? Есть ли способ? Не хочу зашквариться аккаунтом калософта. Очевидный совет перейти на линь очевиден но визуалка увы слишком удобная.
954 1887583
>>887582
Сам нашёл, не благодарите
https://github.com/beatcracker/VSCELicense
955 1887586
>>887582
Комьюнити скачать?
956 1887588
>>887586
Глаза открой
957 1887589
>>887588
Акк сделай. На левую почту если чего то боишься
958 1887595
>>887589
Уже всё сделал без акка, вон даже поделился годнотой. Ебал я в этой конторе что-то заводить ещё.
959 1887600
>>887582

>Не хочу зашквариться


>визуалка слишком удобная

960 1887602
>>887600
Пердолинг ради пердолинга или написание кода. Что же выбрать...
961 1887678
>>887582
Ее, афаик, еще гитхаб аккаунтом можно активировать
962 1887817
>>887582
Vim + Clang Complete
изображение.png35 Кб, 484x534
963 1887843
Здарова бандиты. Какого хуя никампилицца?
https://godbolt.org/z/Gj9nfn
964 1887851
>>887817
Имакс лучше
965 1887858
>>887843
Рвалуе не эмплейсится? Сделай пуш.
966 1887861
Хотя ты там вообще хочешь ссылку на временную переменную запихать.
Аноним 967 1887862
пацаны, кто-нибудь за 500р сделать сможет на C++?
по срокам: до утра 24.12.

0.2.20 Выдача банком кредитов
Описание предметной области
Вы являетесь руководителем информационно-аналитического центра коммерческого банка. Одним из существенных видов деятельности Вашего банка является выдача кредитов юридическим лицам. Вашей задачей является отслеживание динамики работы кредитного отдела.
В зависимости от условий получения кредита, процентной ставки и срока возврата все кредитные операции делятся на несколько основных видов. Каждый из этих видов имеет свое название. Кредит может получить юридическое лицо (клиент), при регистрации предоставивший следующие сведения: название, вид собственности, адрес, телефон, контактное лицо. Каждый факт выдачи кредита регистрируется банком, при этом фиксируются сумма кредита, клиент и дата выдачи.
Классы объектов
Виды кредитов (Название, Условия получения, Ставка, Срок).
Клиенты (Название, Вид собственности, Адрес, Телефон, Контактное лицо).
Кредиты (Вид кредитов, Клиент, Сумма, Дата выдачи).
Развитие постановки задачи
Теперь ситуация изменилась. После проведения различных исследований выяснилось, что используемая система не позволяет отслеживать динамику возврата кредитов. Для устранения этого недостатка Вы приняли решение учитывать в системе еще и дату фактического возврата денег. Нужно еще учесть, что кредит может гаситься частями, и за задержку возврата кредита начисляются штрафы.
968 1887908
>>887862

>по срокам: до утра 24.12

969 1887935
>>887862

>Вы являетесь руководителем информационно-аналитического центра коммерческого банка.


>кто-нибудь за 500р сделать сможет на C++?


Проорал на всю квартиру
970 1887984
>>887935
Всё честно. Тут работы на полчаса работы. Примерно столько же получает за полчаса синьор c++.
971 1887994
>>887984
Такую парашу никто на c++ делать не будет. C++ - язык для написания кодеков, операционных систем, браузеров.
1494570395813.webm13,6 Мб, webm,
1920x1080, 3:35
972 1887999
>>887984
За полчаса тебе сделают только подобное видеорилейтеду.
Тут недели две уйдет только на сбор требований и составление ТЗ, выбор стека.
973 1888005
>>887678
Не подскажешь где такое сделать? Ник и емейл не подошли, при попытке создать с этим емейлом вообще повисло к хуям.
Аноним 974 1888019
>>887862
ну чего, эту хуйню никто не напишет?
вам же легко, час работы, ну два.
в кфц на 500 сходите: вечером просрётесь.
а я работу утром сдам, все в плюсе.
если есть желание, напишите: vk.com/id535378572
975 1888025
>>888019
Я пишу.
Аноним 976 1888035
>>888025
хто ты? напиши вк мне
977 1888040
>>888035
Когда у меня work time я не пользуюсь social network
978 1888054
>>888019
Никому не интересно чтобы потом высрался недоучка из за которого самолеты падают.
Аноним 979 1888064
>>888054
чел ты... мне просто нужно сдать эту работу, я ваще в айти ваше не собираюсь, шутник блять.
980 1888066
Короче начал слушать цикл лекций от майл сру на тему углублённого с/с++. Дошёл до шаблонов, и извращений с ними, знатно охуел. Стоит ли залезать в них глубже или нет? До этого вроде всё понятно объяснялось.

Ссылка на кусок курса https://youtu.be/6Gl09VEwVeQ
image.png607 Кб, 731x433
981 1888085
>>888066

>пик


борщехлёб
982 1888134
>>888066
Пролистал бегло, ну там сложность примерно уровня hello world.
983 1888135
>>887862
Сделаю за 400
Аноним 984 1888179
>>888135
вк бы написал, выше указывал
985 1888188
>>888179
А за 300?
986 1888190
>>888188
Давай за бесплатно
Аноним 987 1888191
>>888188
предлагаю, чтобы ты всё сделал, скинул мне проект и мне же заплатил.
988 1888208
>>888191
Неправильный ответ.

Тракторист идет к тебе.
989 1888254
ребзя, может кто помочь с кр по с++? 1 курс вузика, думаю нетрудно
плачу 450р, тг @Sibir_yazva51
990 1888256
>>888254
Больше чем за 100 не буду.
991 1888268
>>887862
>>888254
Мартир, вернись! Вкатыши хуеют.
image.png11 Кб, 575x129
992 1888426
Почему оно меня обижает......... я же дал ему всё! Ну что ему блят нужно! Почему оно не работает!!!!!!!!!!!!!!
993 1888437
>>888426
Слышь, а может быть ты весь код запостишь, не?
995 1888444
>>888426
А operator<< кто за тебя писать будет?
996 1888447
>>888438

>int main() {


class person {
Хуя дебил
998 1888453
>>888451
Пидорасы на макаках. Короче сделай так: cout << listperson [0];
999 1888607
Эх, чичас бы перекат.
1000 1888618
>>888607
До 1500 хотя бы сидим, хули ноешь.
sage 1001 1888625
>>888618
Я безумно хочу перекат.
1003 1888757
>>888628
Дождался бы хоть 1024 поста
1004 1888765
>>871183 (OP)
Щас в перший раз за несколько месяцев зашел на хабр и внезапно обнаружил, что мне с нихуя дали возможность пригласить одно тело. Не пойму за що. У меня всего одна статья с 29 голосами и рейтинг 8. Активность на хабре около нулевая последний год. У кого сейм?
shapka1cppfix.jpg375 Кб, 1280x1439
1005 1888942
1006 1889652
Помогите, как сделать текст читабельным? Ощущение, будто после каждой буквы пробел стоит. Заходил в свойства консоли отладки и менял шрифты, но "пробелы" все равно остаются.
Заодно зацените, это я сам написал (почти)
1007 1889752
>>887858
Не пушнется.

Проблема была в отсутствии move конструктора
1009 1889983
>>889652
Похоже у тебя шрифты системы ебнутые какие то. Это не к плюсам вопросы, а к винде
1010 1890722
Как посчитать минимальную асимптотику алгоритма? Ну или сколько действий чисто математически нужно совершить для решения задачи
1011 1891064
>>890722
считай циклы, чем больше вложенных циклов, тем хуёвее
1013 1963177
>>962488
А ты вовремя ответил
Тред утонул или удален.
Это копия, сохраненная 28 апреля 2021 года.

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

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