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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
image.png2 Кб, 250x250
C++ тред #109 /cpp/ 1668430 В конец треда | Веб

>Вместо шапки:


>• https://github.com/sosachbot/cppthreadhat/wiki



>Ответы на вопросы:


>• https://en.cppreference.com/w/


>• https://www.cplusplus.com/reference/



Прошлый тред >>1657102 (OP)
2 1668530
Найс перекатили
3 1668535
Мьютексы в крестах могут шариться между родительским и дочерним процессами? Или нужно явно выделять расшаренную память через mmap?
4 1668538
>>68535
речь именно про процессы, про треды речи не идет.
5 1668539
>>68535
В плюсах вообще не определено понятие процесса. Всё, что с ними связано, делается только через апи платформы.
6 1668544
>>68535
Это будет по разному в каждой реализации. В линуксе наверно да (если форкать), в виндоусе вряд ли.

По хорошему, лучше на это не расчитывать и делать самому через системное АПИ.
7 1668621
Как часто юзают кресты для системного программирования на Линуксе? Драйвера, офк, пишут скорее на чистых сях (если ОЧЕНЬ изъебнуться, то можно и на ломанных крестах, но зачем?), а как насчет юзерспейс лоулвл софта?
8 1668626
>>68621
Даже богомерзкая сустемд написана на С
9 1668627
>>68626
немудрено, но почему богомерзкая? Как по мне, удобнее инита в разы. Сисадмины явно не согласятся с твоим высказыванием (я не сисадмин, если что)
10 1668714
Где можно найти хороший учебник? Я учил основы в школе и не хочу тратить полчаса на прочтение описания концепции переменной.
Где можно удобно, без лишних тонн текста изучить синтаксис языка?
11 1668717
>>68621
Хуй знает как на этом говнолинуксе, на винде спокойно дрова пишу на плюсах. Офк с некоторыми ограничениями(нет исключений). Даже гипервизоры можно писать на плюсах.
12 1668718
>>68714
Страуструпп вроде сразу на первых страницах весь синтаксис вываливает. Я правда название не помню. У него есть одна книга для новичков - тебе другую.
13 1668770
Объясните мне, тупоголовому, как лучше именовать приватные переменные в классе. Для себя подчеркнул два основных способа: префикс its и постфикс _. Приятнее офк выглядит itsVar, нежели чем var_. Но мб всё таки есть какой то излюбленный способ у большинства программистов, чтобы изначально выработать "правильную" привычку?
14 1668771
>>68770
int m_member;
15 1668785
>>68770
Одного способа нет, есть несколько расхожих вариантов, выбери один и используй везде.
16 1668833
>>68718
Спасибо.
17 1668882
Как сделать так, чтобы при вызове объекта класса, некоторая переменная внутри объекта класса могла получить адрес, по которому этот объект находится?
18 1668885
Ку крестач
Почему сейчас нет ни одной более или менее известной ОС, ядро которой написано полностью (или хотя бы частично) на плюсах?
Вообще, если мне хочется в образовательных целях написать ядро ОСи на крестах - это норм или хуйня затея?
19 1668897
>>68770
Я придерживаюсь гугловскому стилю https://google.github.io/styleguide/cppguide.html . Приватные с var_ публичные просто var.
>>68771
Это вообще хуйня в эпоху ИДЕ. Всякие m_pszName это пиздец.
20 1668918
Как сделать небольшое приложение на qt? Скомпилированный экзешник требует dll которые больше сотни мб весят. А мне бы ограничится хотя бы 1 мб. Уж о кб, как у приложений на шарпе я молчу.
21 1668924
22 1668930
>>68918
Твой бинарь зависит от кутэшных либ, линковка с которыми может быть динамической (твои длл) или статической(не будет длл, но сам экзешник будет весить столько же). Без них никак.
23 1668965
бамп
24 1668980
А почему мое пустое окошко на opengl жоет 20 мб и чутка процессора?
25 1669000
Аноны, как называется то состояние, когда хочется читать книжку и теорию без конца, а делать ничего не хочется?
26 1669024
>>69000
Мне б такое на месяцок, пишу говно, не заучив теорию
27 1669044
>>69000
Anxiety? Я тоже прочитал книгу но писать ничего не могу.
28 1669057
>>68918
>>68930
Во, у меня тоже не запускается экзешник из папки проекта. Выходит, запуская в qt creator программу он динамически подключает либу? И надо в qmake менять это, чтобы отдельно работал экзешник без иде?
29 1669070
Метод find, связанный с контейнером std::set, имеет под капотом бинарный поиск? Просто сет - это перманентно отсортированный массив без повторяющихся элементов, использовать в такой структуре данных обычный линейный поиск - дикий проеб ресурсов.
30 1669113
>>68770
m_hueta
31 1669114
>>69000
ебантяйство
32 1669130
>>69070
Сет это дерево поиска. Там не бинарный поиск используется, а обход дерева.
33 1669160
>>68885
Сколько тебе лет?
Если больше 10, что врядли, то ты просто не успеешь доделать
34 1669182
>>68621
Могу линкер gold припомнить.
35 1669206
>>68535
shared_mutex
36 1669222
>>69206
это вообще не то, лол.

>>68535
В С++ такой хуйни вообще нету в стандарте, как и понятия процесса.

Если ты в винде - то смотри на платформенный https://docs.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-createmutexa и https://docs.microsoft.com/en-us/windows/win32/sync/using-named-objects

в LOONIXe обязано быть что-то аналогичное.
37 1669235
>>68918

> больше сотни мб весят


Скорее всего ты взял дебаг версии библиотек, собранные для mingw. У меня релизные core+gui+widgets для msvc весят совсем хуйню
38 1669236
>>69235

>mingw


Это плохо? В книге советовали выбрать этот компилятор.
39 1669240
>>69236
Может и не плохо, но де-факто стандартный компилятор под Винду - это msvc. В QT просто по какой-то причине не могут вырезать символы в отдельный файл, как это происходит с pdb под msvc. Наверное, чтобы не ебать ньюфагам мозг со склеиванием библиотеки и символов, хотя я не уверен
40 1669244
>>69236
При всей моей безумной любви к микрософту - пока ты ньюфаг и хочешь пердолить куте - пердоль кутекреатор + мингв. Оно попроще.
41 1669247
>>68897

> m_pszName


Никто ж тебя не заставляет всю венгерскую нотацию тащить с собой. Ну и по поводу ИДэЕ - если набрать "m_", то автодополнение выведет только члены класса, а если набирать имя, у которого в конце "_", то оно тебе весь скоуп выплюнет, так что тут плюс в сторону "m_". Ну и субъективно ревьювить легче такой код, периферическое зрение видит приставку и ты уже заранее знаешь, что тут идёт обращение к члену класса.
42 1669373
Двач, как удалить все символы в std::string после '\0'?
my_string.substr(0, my_string.find('\0', 0));
Не работает
43 1669376
>>69373
substr не удаляет ничего, она возвращает новую строку. Читай доки.
44 1669378
>>69376
Ах, да, спасибо, просто спиздил не совсем рабочий пример не подумав.
45 1669380
>>69160
Есть стример на твиче, который пишет полноценный гипервизор за 3 12-ти часовых стрима что за хуйню ты высрал про всю жизнь, пчел? Цель не написать конкурента винде или Линуксу.
46 1669504
>>69380
Так гипервизор просто хостит ОС, ему не нужно дохуя разных фишек для работы там с файлами или пользователем. По факту для простейшего гипервизора нужно просто реализовать несколько затычек под vmexit'ы и все. Если это гипервизор 2 типо то можно сразу под виндой запусктать и юзать уже готовые функции винды. Если же первого типа то да, тут сильнее потеть придется.
47 1669508
Двач, у меня на windows юникод не выводится, подскажите что-нибудь.

std::string a = "Phöenix";
std::cout << a << std::endl;

std::string a = u8"Phöenix";
std::cout << a << std::endl;

std::wstring a = L"Phöenix";
std::wcout << a << std::endl;
48 1669535
>>68885
Потому что это никому не нужно. Кто сейчас вообще ОС пишет?
Ну ты можешь потратить время какое нибудь микроядро написать, если скучно. в миниксе вроде около 10к строк кода, как раз тебе на пару лет работы
Big Boss pachinko.jpg85 Кб, 1166x739
49 1669538
>>69508
Ещё один пал в неравном бою с консолью венды.
50 1669562
>>68430 (OP)
Почему оп пик такой ахуенный?
51 1669568
>>69562
Потому что это скрин игры пакман.
52 1669575
>>69562
Потому что шрифт без серифов.
53 1669582
>>69504
для гипервизора первого типа нужно писать отдельное ядро, ибо гипервизор первого типа не запускается в контексте ОС, он имеет прямой, неабстрагированный доступ к железу. Да, можно пропустить овердохуя фич обычной ОС, конечно же, но основы разработки ядра ОС лежат в основе разработки гипервизора первого типа. Что можешь посоветовать почитать про них?
54 1669585
Осилил учебник Страуструпа, интересует QT. Хватит ли у меня после его учебника знаний, чтоб осилить данный фреймворк?
55 1669591
>>69585
У меня и без книжки хватило
56 1669616
>>69585
Надо читать документацию к нему, а еще лучше отдельную книгу.
57 1669623
>>69582
По первому типу не скажу, я их не трогал никогда, но из функционала ОС во втором типе дергается обычно только выделение памяти и переключение между процессорами. В теории нужно просто реализовать свой аллокатор + переключение процессоров и все.
изображение.png773 Кб, 643x820
58 1669627
сап. Встала задача написать на qt скрипт который задавал нужный запрос в яндекс, переходил по нужному сайту и увеличивал переходы на данный сайт. Но проблема в том, что у яндекса наверняка стоит защита от ботов, возможно путём отправления дополнительного запроса, пока что выяснить какой именно запрос нужно отослать, чтобы яндекс подумал что это человек не удалось, чекал несколько сайтов через live http headers, но так и не нашёл нужный, сейчас пытаюсь разобраться как юзать headless браузер, чтобы не грузило дополнительные картинки и тд., а только нужные запросы, но хз удастся ли найти нужный запрос. Так вот суть вопроса: может у кого есть идеи как обойти защиту яндекса и получить посещение на страницу, как я понимаю по сути мне нужно будет сделать аналог headless браузера, чтобы он адаптировался к изменению кода выдачи яндекса, потому как при первом же изменении кода от яндекса, мои регулярки к хуям полетят и даже если я пойму как обойти защиту, программа перестанет работать, поэтому нужен хелп от опытны анонов, что лучше в данной ситуации сделать.
59 1669648
>>69222
>>68544
>>68535

Ты долбоеб? Ты хочешь использовать std::mutex для IPC? Sockets для кого сделали?
60 1669653
>>68621
Часто. Весь userspace где нужна скорость.
61 1669663
>>69070
Set - не массив.
62 1669697
Что означает буква f при записи координат вершин в opengl?
63 1669698
>>69697
Я понимаю, что это сокращение от float, но смысл? Я же до этого указываю тип.
64 1669707
>>68918
1. Нужные твои зависимости - те иодули, что прописаны в .pro в CONFIG += qt widgets network.
2. Компиль релизную версию, нажав слева с молоточком.
3. Берешь дллки - свой экзешник кладешь рядом с длл qt, которые копируешь из папки, типа qt/msvc2017/, путь точно не помню. Там лежат все-все-все дллки, которые могут использоваться. Тебе нужны qtcore, qtwidgets без "d" (это дебажные длл), и типа того. Можешь запускать экзешник до победного, ошибка скажет, чего не хватает. Простейший проект будет весить мегабайта два. А, ещё c++ либы для винды нужны, это которые ставятся вместе с играми, если кому-то свою программу отдашь.

2.1. В qt есть специальная утилита для сборки проекта - windeployqt, лежит где-то в папке с qt
3.1. Есть вариант статической сборки, чтобы вышел только один exe файл без зависимостей. Для этого нужно скачать исходники qt и начать собирать, указав ключ типа -статик, как-то так
65 1669708
А не страшно, если я читаю главу про треугольник, пропущу абзацы про шейдеры? Они ведь в следующих уроках подробно рассмотрятся.
66 1669709
>>69708
Читай все. И не по одному разу.
67 1669710
>>69709
Я прочитал. Но там просто половина не объяснена. Я понял зачем шейдеры, но как их писать пока нет. Там следующая глава сразу про шейдеры. Поэтому думаю не страшно, если сейчас просто прочитаю, не пытачсь понять всё
изображение.png29 Кб, 559x328
68 1669725
Означает ли эта самая "инкапсуляция" методов в класс Operations, что методы должны вызываться откуда-то из другого класса от объекта класса Operations, а реализация "инкапсулируемых" методов должна быть protected или private?

Если кому интересно, то это третья задача отсюда
https://vk.com/doc261868807_514613880?hash=21df42b17a0d8f40f9&dl=ac75643e6c2b21ee6f
69 1669886
Какой IDE будет самым удобным для обучения языку? Где можно просто открыть окно и писать код. Как в Python, например.
70 1669891
>>69886
CLion
71 1669903
>>69725

> Означает ли


Нихуя не означает, просто ввернули хипстерское словцо. Возможно на английском это звучало чуть более казульно - они просто хотели сказать что функции реализуются как методамы класса, а не просто оставляешь их неприкаянными в глобальном неймспейсе.
72 1669905
>>69903
Двачую
73 1670046
>>69725
Контруктор класса Operations должен принимать в себя объект реализующий интерфейс IComparer.

Реализуешь этот интерфейс у класса ShapeComparer с необходимыми методами, которые будут принимать объекты класса Shape и возвращать булевое значение.

Класс Operations будет иметь три перечисленных метода, которые возвращают булево значение, принимают объекты IOperable (нужно реализовать его у класса Shape), и вызывают методы переданного через конструктор объекта реализующего интерфейс IComparer.

В итоге создаешь класс Operations, передаешь ему класс ShapeComparer, и вызываешь метод передавая ему два объекта реализующих интерфейс IOperable, в данном случае два класса Shape.
74 1670065
>>69903

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


Так сделай неймспейк, дурик.
75 1670071
>>70065
Переложить из одного глобального пространства в другое? А ты не очень умный, да?
76 1670098
Кто-нибудь писал на крестах/сях в VS Code? На учебе не удобно держать сотню IDE под все ЯП, а так удобно, что VS Code могу и для жса, и для питона, и для подстветки АСМа, и для сей/крестов.
77 1670104
Ребзя, кто может помочь с задачкой на бинарные файлы?
78 1670159
>>70071

>неймспейс


>глобальное


А ты очень тупой и толстый. Если что, это и есть инкапсуляция.
79 1670162
>>70159
Вот это >>70046 инкапсуляция, а твой высер про неймспейс - это неумелый троллинг сельского дурачка.
80 1670163
>>70104
А что, есть какие-то другие файлы?
81 1670197
>>70163
Да не, просто вроде написал прогу для решения задачи, в итоге не работает, не понимаю почему. Поможешь, анон?
82 1670203
>>70197
Лабы идут нахуй
83 1670214
>>70203
Понял, спасибо
84 1670237
>>70163
"Текстовые", хотя они тоже бинарные по сути.
>>70197
Да запости, от ссылки хуже не будет. Может такой же студент что-то посоветует.
85 1670250
>>70098
Работаю в vs code, очень удобно.
86 1670278
>>70237

>хотя они тоже бинарные по сути.


Я про что и говорю.
87 1670287
>>70259 (Del)
Ну и в чем проблема то? Читаешь построчно, сплитиш по пробелам, заполняешь массив структур хозяйств и работаешь с ним.
88 1670290
>>70287
Я вот только что кидал код,какого то хера удалили, я вроде все прошерстил, и до сих пор не понимаю, что не так. Проблемы с выводом, и программа не доходит до сортировки.
image.png84 Кб, 1366x768
89 1670447
Вот мой треугольничек.
90 1670458
>>70447
Что за обоина? Black Sabbath? Yes? JoJo?
91 1670466
>>70458
Black Sabbath
92 1670523
>>70447
Молодец Андрюша
image.png83 Кб, 1366x768
93 1670640
А я точно делаю все правильно?
изображение.png19 Кб, 502x365
94 1670644
>>69903
А я думал, имелось в виду сокрытие реализации.
95 1670678
>>70046

>ShapeComparer


Нихуя не понял. Зачем создавать ShapeComparer? Об этом не говорится в моей методичке.
96 1670683
>>70046

>интерфейс IComparer


И что ещё за "интерфейс"? В той же методичке это слово фигурирует несколько дальше этой лабы с инкостыляциями.
97 1670700
>>70644
Ты этим ничего не скрыл. Если уж скрывать реализацию то наворачивают pimpl
98 1670723
Это нужно фиксить?
LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
glew32s.lib(glew.obj) : warning LNK4099: PDB 'vc120.pdb' was not found with 'glew32s.lib(glew.obj)' or at 'C:\Users...\vc120.pdb'; linking object as if no debug info
99 1670725
>>70700
Тогда под инкапсуляцией имелось в виду просто нахождение методов в классе и только. Они даже могут быть public.
100 1670728
Сегодня в очередной раз унизил великовозрастный скам. Выпиздованный с галеры с++ синьер претендовал на 130к. Сеньера размотали с трех вопросах
1. Обход дерева (там кода 10 строчек) - всрался.
2. Вопрос по битовые выравнивания структур - всрался.
Тут уже начали угорать и спросили его виртуальный конструктор и это мудило попалось, лол. ВИРТУАЛЬНЫЙ КОНСТРУКТОР
Эта порвань просто дропнула разговор.
101 1670733
>>70728
Вы бы слышали как этот СИНЬЕР рассказывал про виртуальнаый конструктор, ахахах, вот это даунитос блять.
102 1670751
>>69725
Инкапсуляция означает сокрытие деталей реализации за интерфейсом. Т.е. пользователи класса дергают методы и не парятся по поводу того что у него там внутре.
103 1670756
>>70728
1. Рекурсивно вызвать функцию обхода для левого и правого сына?
2. Хуй знает что за битовые выравнивания, знаю только про байтовые через alignas. Если это про битовые поля, то очевидно что если количество бит не хватает до целого байта то оно выравнивается к ближайшему байту.

Я теперь сеньор?
interrogation mark.png177 Кб, 500x500
104 1670767
>>70728

>синьер


>130k

105 1670773
>>70767

>снг


>синьер

106 1670775
>>70728
Сеньеор 270к итт, не ебу за твои задачки для студентиков.
107 1670788
>>70775
ну у нас шарага с разработками на гос-во, мы не яндекс конечно, но
синьерам платят от 130. Многие думаю если гос-шляпа можно вообще нихуя ни делать и не знать. Один был сильный кандидат, был в резюме дойче, так он так и сказал, что планирует отдохнуть годик
108 1670795
Почему в статье написано,то glUseProgram(ShaderProgram) нужно писать в цикле? Почему не написать это перед ним? Зачем каждый раз вызывать?
109 1670838
>>69508
wstring?
110 1670841
Аноны, почему не могу файл в 2 гб прочитать в вектор?
Все на хуй рушится.
111 1670846
>>70841
Может быть, что не хватает непрерывного участка в оперативной памяти, попробуй list вместо vector
112 1670853
>>70728

> Сениор


> 130к


Ты слабого мидла унижал
113 1670858
>>70728
У меня почти тоже самое спрашивали на собеседовании на вакансию джуна
проебался, ага
114 1670860
>>70846
у меня где-то 50 лямов строк, каждая по 100 байт
все на хуй зависает непонятно где, пробовал лист, такая же хуйня, 14 лямов читает.
115 1670862
>>70860
У тебя какая платформа стоит?
У 32 бит ограничение на память больших размеров
116 1670867
>>70858
в госконтору джунами берут только когда толстожопая дирекция какого-нибудь пиздюка пристроит. К нам джуны если и приходят то если не дауничи через год съебывают куда получше.
117 1670868
>>70867
У меня баттхерт по другому поводу был
Почему кто-то такие вопросы сеньорам задаёт, а кто-то ебаному студенту на место джуна?
118 1670876
>>70862
x64, код простой
readline
push_back
не пойму где лажает>>70862
119 1670877
>>70868
потому что в одном случае ты устраиваешься в норм. контору, а во втором в госпарашу. Через 5 лет в госконторе ты деградируешь в край и пузырьком не сможешь отсортировать. У нас синьеры иногда ходят, их никуда не берут, в одном месте спрашивали НА СИНЬЕРА НА 110 т.р.. Держитесь за стулья ВЫВЕСТИ ВСЕ ЧИСЛА КОТОРЫЕ ДЕЛЯТСЯ НА 5 и 3 ИЗ МАССИВА ЧИСЕЛ ОТ 1 ДО 100
120 1670878
>>70876
Если зависает в цикле - проверь условие
Хотя я сам не так давно хотел считать файл в байтовый вектор, на маленьких файлах нормально работало все
На файлах под 2 гб - вылетало с ошибкой
Пофиксил разбиением файла на части размером const BUFFER_SIZE
По-другому не знаю как
121 1670879
>>70877
И говорят две третьих кандидатов не могу на бумажке написать этот алгоритм БЕЗ ОШИБОК.
122 1670880
>>70877
Пизда, что за место такое ахуенно?
123 1670881
>>70879
Не епам часом?
124 1670884
>>70878
мне главное не задачу решить, а понять че за хуйня. Как вообще в си++ определить что push_back в лист не пройдет?
125 1670885
>>70881
бля) не ЕПАМ, но контора одна из топовых госшараг, там еще финальное собеседование с директором этой шараги.
126 1670886
>>70884
Словить исключение бля
127 1670887
>>70886
я не умею исключениями пользоваться, раньше писал код для критических систем, там были только коды возврата. Как-нибудь без исключений можно и какое исключение генерит push_back и генерит ли вообще его?
128 1670893
>>70877

>НА СИНЬЕРА НА 110


Мухосранск?
129 1670902
Ох этот сладкий вой отчаяния крестобляди
https://habr.com/ru/post/497114/
Крестоблядь думала, что весь ее опыт как на костылях и в муках писать какую-нибудь хуйню и затем месяцами ее отлаживать это нечто сродни священным знаниям, а оказалось рыночку это на хуй не нужно и проще на какой-нибудь джаве заебашить и тупо кол-во нод нарастить чем дрочить си++ с бустами и всякими сетевыми заморочками. Си++ блядь осознало, что 17 лет чистила говно вилкой в то время когда парни посмекалистей пилилили все на джавах и весело проводили время с тянами. Уже и страуструп начал подвывать и майерс перекатился в столяры, а порвань разная все на си++ в России пытается самоутвердиться. Помню на рсдн был эпичный тред как интел вышвырнуло РэндД пинком под зад и разработчики компиляторов пошли осваивать ДжиЭС
130 1670904
>>70893
ДС) епта братюнь, тут вообще параллельная реальность, в одну контору берут после джава раша на 100 т.р. джунов с годом работы и тут же набирают с++ на 120 с 5 годами.
131 1670908
>>70904
Я не верю, что есть СЕНИОРЫ с 110к.

Я перекатился в ДС на хуевого мидла на 120к 5 лет назад с полугодами опыта. А тут СЕНИОР 110к.
132 1670911
>>70887
Еб твою мать, ты что, не можешь восемь строчек написать? Четыре из них - кривые скобки.

> какое исключение генерит push_back


Ну пиздец, дожили. Про cppreference не слышал? В шапке ссылка есть.
кьют.png323 Кб, 743x758
133 1670918
>>69585
Читаю принципы и практика страуструпа.
Ебать пишет он вроде годные вещи, но примеры просто дебилизм.
Жаль, Стефан Кочан не родил учебника по С++

По твоей теме поищи пикрил или Макса Шлее или Жасмин Бланшет.(но она боян)
Плюс есть видеоуроки.
mac vs pc.jpg16 Кб, 480x360
134 1670923
>>70773
Touché
135 1670926
>>70918
По-моему все нормальные С/C++ книги рассчитаны на уже пропердоленных опытом юзверов
136 1670931
>>70918
Освоил ку тэ вообще до си++. Выкидывай его на хуй, ща если и нужно что то это STL + Boost
137 1670937
>>69886
любой. можно Qt, можно кодеблокс можно dev-Cpp можно Geany
>>70728
1. используете в продакшене?

2. редкая возможность
https://tproger.ru/translations/art-of-structure-packing/
3.https://www.geeksforgeeks.org/advanced-c-virtual-constructor/

>>70926
ну как сказать, не всегда. есть совсем для маленьких, а есть разной степени упоротости учебники. вот есть Айвор хортон С++ 17 вполне себе нормальный учебник. или Липпман базовый курс или на худой конец Прата.
>>70931
Может, ты и прав. Но мне надо поддерживать код на кьюте, потому пока его учу. а так, да, буду изучать их.
139 1670954
>>70877

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



Не суди по себе
140 1670956
>>70937
да там нечего особо учить, сигналы-слоты. Вот и вся концепция. Еще модели разные навороченная тема (MVC). Хотя я Qt уже лет 10 использую, очень удобно, жаль мало кому нужно.
141 1670961
>>70956
я только вкатываюсь
Имею опыт на питоне всякие консольные хуевины писать для автоматизации рутинной работы.
А сейчас надо поддерживать приложухи.
Вспоминаю короч С++, учил его в универе и забыл.
Вот решил короче ту зеленую книгу читать, гусей-лебедей страуструпа и по мелочи разное.
Я хз. может, есть смысл свитчнуться на более умные книги.
в универе препод советовал следующий набор для С++
1. Дейтел и Дейтел
2. Гради Буч - объектно-ориентированный анализ
3. Алгоритмы + структуры данных = программы. Вирта
НУ и высший пилотаж - трехтомник Кнута.
Еще Лафоре ООП на С++ и Павловскую.
142 1670980
>>70961
Все книги говно.
Кнут - говно, совершенно непонятно, что и как использовать.
Гради Буч - говно оторванное от жизни, гладко было на бумаге.
Дейтел - х.з. чето для нубасов, не читал.
Вирт - читал что-то, вирт предвосхитил всех петушей, очень грамотные с системной точки зрения книга.

Я бы рекомендовал
1. Эккель - 1 том. Сложная хуйня, однозначно книга ДЛЯ ПРОГРАММИСТОВ, а не вкатышей. После нее поймешь зачем нужны шаблоны и будешь их любить(что важно).
2. Аммерааль - познакомишься с STL, поймешь почему это действительно удобно и стоит этим пользоваться.
Что бы на работу устроиться эти книги совершенно не помогут, если нужно вкатиться то это
Майерс, Саттер.
143 1670982
>>70980
вообще если ты кун, может быть давай договоримся, ты шли мне фото попки и члена,а я тебе буду давать уроки си++.
144 1670986
>>70937

> 2. редкая возможность


Я сейчас правильно понял, ты фабрику назвал виртуальным конструктором?
145 1670990
>>70980
Благодарю за Аммерааля и Эккеля.
Я Эккеля скачал оба тома, однако не читал.
Знач, буду её читать.
>>70986
не, не правильно.
Там же в статье вроде написано:

Can we make a class constructor virtual in C++ to create polymorphic objects? No. C++ being static typed (the purpose of RTTI is different) language, it is meaningless to the C++ compiler to create an object polymorphically. The compiler must be aware of the class type to create the object.
Ну а дальше вроде фабрика описывается.

я про выравнивание структур.
146 1670996
>>70980

>. Аммерааль - познакомишься с STL


Гугл говорит, что это книжка 1999 года. STL 1999 года - это серьёзно?
147 1671003
>>70996
почему нет?
Ну можно и яцека галовица почитать. тоже есть интернетах.
ми
148 1671020
>>70683
Это лицо объекта, один из инструментов полиморфизма. На полиморфизме основывается принцип подстановки лисков.
149 1671024
>>70751
Нет, инкапсуляция значит сокрытие чего-либо в чём то. Атрибуты вида private, например, тоже часть инкапсуляции. Если у тебя конструктор класса принимает другой класс и работает с его методами, то это тоже называется инкапсуляцией. А интерфейс это просто инструмент для реализации протокола.
150 1671032
>>70996
Да похуй. Она учит как нужно использовать итеараторы, алгоритмы, функторы. Я проходил супер современные курсы по си++ и то хуево все понял из СТЛ, а тут все по местам ставит. Смотри, вирт написал про модульность, переменные состояния и т.д., хуй знает сколько лет назад и занешь сколько программистов из моего окружения осознали это? Никто. Зато гонятся за всеми новомодными фишками стандарта. Я тебе скажу больше, теории автоматов вообще сто лет в обед, а кто умеет ее использовать, что бы справиться с какой-нибудь злоебучей асинхронщиной? Только в топовых компаниях единицы и так блять везде.
151 1671036
>>71032
Хотя я тут наверное пропизделся, вроде есть микросервисная архитектура, может это и есть то что вирт имел в виду под модулями. В программисты вообще часто идут туповатые самонадеянные люди у кого не сложилось с наукой или специальность невостребованна в России. Тут со вкатышами даже проще, вкатыши не считают себя умней других и с легкостью усваивают сложные концепции, в то время как какой-нибудь пидор из эмбедеда который и паять может и в радиоволнах рубит и прошивку может для трех семейств микроконтроллеров написать не может полгода гит освоить и даже не врубается зачем он нужен, или как препод из уровня вуза типа МФЮА по программированию не может в срок ПО написать.
152 1671049
>>71032

>Да похуй. Она учит как нужно использовать итеараторы, алгоритмы, функторы.


Да это во многих языках есть, вся теория одинаковая. Все структуры данных, все эти итераторы, всё есть. Зачем ещё раз учить? А вот специфика реализации везде разная.
153 1671056
>>71049
не все знают глубоко несколько языков, я вот на Php писал пару лет и похуй было и на итераторы и на функторы
154 1671062
>>71056
Я вот и слова такого, "функтуры", практически не знаю, хотя callable-объектами активно пользуюсь. По-моему этот термин просто не прижился и не используется.

Мне кажется, что для современных динамических языков все эти конструкции уже давно норма, всё уже давно в массах. Конечно, это не про тех, кто изучает первый язык программирования.

А вот именно STL довольно уникальна и специфична именно для C++, хочется какой-нибудь материал, чтобы въехать в STL из других языков. Не чтобы на C++ уходить, а чтобы просто уметь.
155 1671105
Вы программируете в не рабочее время? Изучаете какие нибудь новые материалы, кроме тех, что касаются нового стандарта?
156 1671110
>>71105
Лол. Если ты не программируешь хотя бы два часа после работы, то ты сам себя заносишь в списки на сокращение
157 1671113
ананас, а вот посоветуй что-нибудь почитать углубленно по С++. А то хелловорды уже пишу, а на собеседованиях заваливаюсь на том что не знаю каких-то нюансов языка

например на вот таких
i = 1;
printf("%d,%d", i++, i++);
Что выведет?(такую задачу у меня не спрашивали - это с хабра одной компании их вопрос на собесе)

или уже из реального:
- почему нельзя использовать memset?
- че блядь? всегда писал
- Да? мы вам перезвоним

на https://en.cppreference.com/w/ и https://www.cplusplus.com/reference/ больше практического, нюансов я там пока не увидел

Пробовал в черновик стандарта С++... но это такой шлак (и любителям потешить чсв - даже сам коммитет заявляет что стандарт не для чтения и тем более не для обучения. это юридический документ для спецов делающих компиляторы)
158 1671114
>>71110
Хорошо вас там надрессировали.
159 1671115
>>71113

> Что выведет?


UB
160 1671116
>>71113

> почему нельзя использовать memset?


Потому что есть безопасный аналог std:fill
161 1671117
>>71113
А так читай Скотта Майерса.
162 1671122
>>71116
Медленный
163 1671123
>>71122
В большинстве случаев не медленнее memset, так как сам его вызывает.
164 1671124
>>71113

>printf("%d,%d", i++, i++);


>Что выведет?


Неизвестно

>- почему нельзя использовать memset?


Связано с временем жизни объектов, всякими заморочками в стандарте. Компилятор может решить что то, что ты заполнил мемсетом, на самом деле не существует (потому что нормальным образом эти переменные не присваивались), и соптимизировать их нахуй.
165 1671125
>>71123
Обычная ситуация - есть массив векторов (геометрических, тех которые xyz), тебе нужно его обнулить.

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

>врёти


Мирок сельского дурачка порвался.
Инкапсуляыция это изоляция функций и переменных, именно это делают неймспейсы.
167 1671149
>>71135
Внутрт неймспейсов нельзя объявлять переменные и функции, дурачок.
168 1671160
>>70071
скажу тебе по секрету - существуют анонимные неймспейсы, они локальные, в пределах одного юнита
169 1671166
>>71160
Хорошо, теперь буду для каждой переменной неймспейс создавать.
170 1671172
>>71166
Это уже школьный максимализм
171 1671197
>>71149
Дебил обосрался и решил включить дебила для маскировки. Маскировка/10
172 1671207
>>71062
Ну братюнь, вольному воля, попробуй курс Кэйт Грегори с Pluralsight .com называется Beautifull stl alghoritms Как-то так. Аккаунт там стоит 30$ в месяц, но оно того стоит, действительно клево.
173 1671210
>>71113
это мартышкин труд через такое говно к собесам прорываться, на мой взгляд это вообще унижает настоящего инженера, изучать непонятную шизу.
В твоем примере это классический с++ прием для унижения нубла. Так делать нельзя, а именно в одном выражении дважды выполнять переменной присваивание.
А почему ты использовал memset? Кстати. Я вот с утра проснулся не очень соображаю, расскажи, что была за задача и почему memset&
174 1671211
>>71207
он лежит на торрентах, првада нет английских субтитров. Без субтитров совсем мне сложно было.
175 1671213
>>70926
Ага. Я тоже все время с этой хуйни ору. Начинают что-то объяснять тут хуяк и к устройству стека или какую-нибудь ассемблерную вставку влепят, а книга типа для новичков.
176 1671214
>>70918

> Макса Шлее


Худший высер, что я читал. Это не книга а перевод справочника.
177 1671219
>>70728

> . Вопрос по битовые выравнивания структур - всрался.


Прочел 2 толстенные книги и про это слышу впервые. Ну теперь хоть знать буду.
178 1671221
>>70937

> Липпман базовый курс


Вот это к слову охуенный учебник. Очень все хорошо рассказано, и рассмотрено почти все, что может понадобиться джуну. Но нет многопоточности, что удивило. Только задачи там легкие, надо искать в других местах.
179 1671273
>>71210

> настоящего инженера, изучать непонятную шизу.



Почему тогда программисты продолжают изучать С++?
180 1671278
>>71273
инженеры ничего не решают, есть легаси на ++, есть менеджеры
181 1671687
>>71273
Далеко не везде питоны и жаваскрипты
182 1671692
>>71273
Стабильность. Можно выучить язык, устроиться на работу и больше нихуя не изучать. кроме тонн библиотек, но это хуйня
1588178623504.PNG61 Кб, 652x740
183 1671738
Есть код:

void CustomAreaTool::floodFill(QPoint p)
{
QVector<QPoint> stack;
int dx[4] = {-1, 0, 1, 0};
int dy[4] = {0, -1, 0, 1};

stack.prepend(p);

while(!stack.isEmpty())
{
QPoint p0 = stack.takeFirst();
QColor c0 = selectionMask.pixel(p0.x(), p0.y());

if (c0 == Qt::black)
{
QPen pen(Qt::white);
QPainter painter(&selectionMask);
painter.setPen(pen);
painter.drawPoint(p0);
}

for (int i = 0; i < 4; i ++)
{
QPoint p1 = QPoint(p0.x() + dx, p0.y() + dy);
QColor c1 = selectionMask.pixel(p1.x(), p1.y());
if (p1.x() > 0 && p1.x() <= selectionMask.width() && p1.y() > 0 && p1.y() <= selectionMask.height() && c1 != Qt::white)
{
stack.prepend(p1);
}
}
}

view->setCanvas(QPixmap::fromImage(selectionMask));
}


Когда запускаю, в выводе пишет пикрил.

Вопрос: хули он от меня хочет, и почему в другом месте такой же код с таким же применением QPainter спокойно работает?
1588178623504.PNG61 Кб, 652x740
183 1671738
Есть код:

void CustomAreaTool::floodFill(QPoint p)
{
QVector<QPoint> stack;
int dx[4] = {-1, 0, 1, 0};
int dy[4] = {0, -1, 0, 1};

stack.prepend(p);

while(!stack.isEmpty())
{
QPoint p0 = stack.takeFirst();
QColor c0 = selectionMask.pixel(p0.x(), p0.y());

if (c0 == Qt::black)
{
QPen pen(Qt::white);
QPainter painter(&selectionMask);
painter.setPen(pen);
painter.drawPoint(p0);
}

for (int i = 0; i < 4; i ++)
{
QPoint p1 = QPoint(p0.x() + dx, p0.y() + dy);
QColor c1 = selectionMask.pixel(p1.x(), p1.y());
if (p1.x() > 0 && p1.x() <= selectionMask.width() && p1.y() > 0 && p1.y() <= selectionMask.height() && c1 != Qt::white)
{
stack.prepend(p1);
}
}
}

view->setCanvas(QPixmap::fromImage(selectionMask));
}


Когда запускаю, в выводе пишет пикрил.

Вопрос: хули он от меня хочет, и почему в другом месте такой же код с таким же применением QPainter спокойно работает?
184 1671760
Ку крестач.
Собсна назрел вопрос. Вчера в рекомендах на ютубе вылез стрим(лекция) Тимофея Хирьянова про алгоритмы и структуры данных на плюсах. Кто нибудь пытался смотреть и если да, то насколько это юзфул?
Экшели сам смотреть пытался, вроде чел как лектор довольно харизматичный, по крайней мере не скучно слушать.
185 1671762
>>71738
Какое слово в тексте ошибки тебе не понятно?
186 1671778
>>71762
Мне смысл слов понятен, мне непонятно, нахуй он эти слова мне говорит? В другом месте в коде для другого метода все то же самое работает.
187 1671802
>>71778
Может у тебя, доходя до этого места, код в другом месте продолжает работать и использвовать пейнт девайс.
188 1671807
>>71802
Да не, не может быть. Код в другом месте - это другой cpp-файл.
Вот например код для кистика.

void BrushTool::paint(QPointF point)
{
QImage image = view->getCanvas()->pixmap().toImage();
QPainter *painter = new QPainter(&image);
QPen pen = QPen(view->getCurrentColor());
painter->setPen(pen);
QPointF shiftedPoint = QPointF(point.x() - brushRadius, point.y() - brushRadius);
QPointF p;
QColor resultColor;
QColor currentColor = view->getCurrentColor();
Pixel pixel;
for (int i = 0; i < brushTemplate->size(); i++)
{
pixel = brushTemplate->at(i);
p = QPoint(shiftedPoint.x() + pixel.getX(), shiftedPoint.y() + pixel.getY());
resultColor = currentColor;
resultColor.setAlpha(pixel.getColor());
pen.setColor(resultColor);
painter->setPen(pen);
painter->drawPoint(p);
}
delete painter;
view->setCanvas(QPixmap::fromImage(image));
}


Не обращай внимание, что здесь указатель на painter, и что он инициализируется не внутри цикла. Пробовал и так, и сяк, не работает нихрена.
188 1671807
>>71802
Да не, не может быть. Код в другом месте - это другой cpp-файл.
Вот например код для кистика.

void BrushTool::paint(QPointF point)
{
QImage image = view->getCanvas()->pixmap().toImage();
QPainter *painter = new QPainter(&image);
QPen pen = QPen(view->getCurrentColor());
painter->setPen(pen);
QPointF shiftedPoint = QPointF(point.x() - brushRadius, point.y() - brushRadius);
QPointF p;
QColor resultColor;
QColor currentColor = view->getCurrentColor();
Pixel pixel;
for (int i = 0; i < brushTemplate->size(); i++)
{
pixel = brushTemplate->at(i);
p = QPoint(shiftedPoint.x() + pixel.getX(), shiftedPoint.y() + pixel.getY());
resultColor = currentColor;
resultColor.setAlpha(pixel.getColor());
pen.setColor(resultColor);
painter->setPen(pen);
painter->drawPoint(p);
}
delete painter;
view->setCanvas(QPixmap::fromImage(image));
}


Не обращай внимание, что здесь указатель на painter, и что он инициализируется не внутри цикла. Пробовал и так, и сяк, не работает нихрена.
189 1671835
>>71692
я еще думаю крестовик (если он на крестах ебашит) настолько должен загружать свой мозг всякой хуйней, что у него тупо ресурса не хватает другие технологии осваивать. Сейчас на собеседования спрашивают три темы
1. Знание синтаксиса с++ и всяких его новомодных фишек.
2. Знание библиотек (STL, BOOST)
3. Различные алгоритмические задачки
это просто везде где я был, вот эти три пункта только первый этап на час, потом идет второй.
Крестовик тратит все время на изучения с++ т.к. там бездна просто. Не думаю что какому-нибудь джависту надо знать как там че в ассемблер превращается на уровне машинных кодов, а с++ что бы понимать, что это за хуйня происходит желательно должен понимать всякие стеки, хуеки, как таблицы методов в памяти расположены, когда через регистры передются параметры, а когда через стек и потом хуяк - тебя бросает к бусту, хуяк к стл.
190 1671877
Как научиться писать тесты? Просто у меня обычно идет бодрый процесс написания кода и потом нудно нудно пишутся тесты и покрытие выходит херовое. Смотрел кот у профи, так у них все будто робот за них дописывает сразу на каждый чих.
191 1671878
>>71835

>джависту надо


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

Беда с этими энтерпрайз-языками, люди тонут в том, чтобы учить стандарты языка, вместо самого программирования логики.
192 1671891
>>71877
Профи пишут сначала тест, а потом код который его проходит. Потом ты пишешь новый тест и новый код, который его проходит. Конечно, не нужно писать тест для того чтобы проверить, что твоя программа выполняет правильно тривиальную операцию сложения двух целых чисел, но и мудрить тоже сильно не нужно. У тебя должен быть небольшой план из базового функционала, который нужно реализовать. Сначала ты реализуешь его, а уже потом приступаешь к деталям.
В итоге у тебя получается много тестов и качественный код, который эти тесты проходит. Если же хуячить сначала код, а потом пытаться написать тесты, то ты придёшь к тому, что какой-то починив какой-то функционал, ты ломаешь другой, починив другой, ты ломаешь тот что починил раньше, не очень приятная ситуация в общем. Поэтому сначала пиши тесты, потом пиши код, никак иначе.
193 1671916
>>71877
Скидывай ссылки на репы

Ща разьебу их за говнокод
194 1671941
>>71891
>>71877
И да, забыл добавить, что ты на ранних этапах должен принять решение о том, какие паттерны проектирования ты будешь применять и вести свой код в сторону этих паттернов.
195 1672027
>>69000
Не знаю. Вот я недавно вкатился в трудоустройство, уже норм ориентируюсь в проекте, и вроде мечта, самостоятельность, деньги даже откладываю кое-какие, планы строю, но все не то. Никакое потребление контента на досуге не дает стабильного ощущения уюта. Единственное, что воскрешает во мне чувство ламповости бытия, это пытаться что-то учить. SICP, как же охуенно, хосспаде..
196 1672063
>>71210

> Так делать нельзя, а именно в одном выражении дважды выполнять переменной присваивание.


этот вопрос на знание стандарта

>>71210

>Я вот с утра проснулся не очень соображаю, расскажи, что была за задача и почему memset


ну например в вулкане все структуры обнуляют мемсетом
197 1672065
>>71891
Это ты в книжке по TDD прочитал? Ни разу не видел чтобы кто-то так делал.
198 1672107
>>72065
Охуеть, ну раз ты ни разу не видел, значит точно не нужно! А как делать ты конечно не скажешь, потому что в твоём ооо рога и копыта всё делают руководствуясь "я так видел, я так чувствую".
199 1672117
>>72063
В вулканах и опенглях на мой взгляд си-лайк подход, с мемсетами и маппиннгом структур на память. А для цпп лайк подхода это считается небезопасным говном, так как ты нигде никак не описываешь ни байтордер, ни модель памяти. Может у тебя там, я хуй знает, один байт 10 битами описывается.

Та же хрень того токсичного анона с собеседованием, пункт про "битовое" выравнивание структур. Во-первых байтовое, во-вторых это не стандарт, а директивы компилятора через #pragma pack. В третьих, такой подход ожидаемо использовать для супербыстрого парсинга данных: ты описываешь структурой протокол (это поле 2 битика, это 6, тут поле 32 байта), прагмой-пак указываешь, что твою структуру надо выровнять в памяти по байту, затем тебе приходит пакет, лежит в памяти, и ты кастуешь этот кусочек памяти как указатель на твою структуру-протокол. Просто? Да. Быстро? Очень. Но не с++, не абстрактно нихуя, это сишная залупа, когда ты знаешь, как у тебя рабоает память на твоём железном говне. В c++ будь добр парсить как дед по старинке, вычитывая сериализованные данные.
В с++ тем более надо по мудацки кастовать либо через reintrept_cast (лучше говна поесть), либо static_cast<mystuct★>(static_cast<void★>(&buf)), а эта залупа тоже выглядит просто чудовищно.
200 1672229
Есть какой-то общепринятый и не уебанский способ обрабатывать ошибки без использования исключений? Они дают такой удар по перформансу, что ну их нахуй.
Или просто обмазаться ифами, как в чистой сишке?
201 1672230
>>71835
Ну, именно поэтому на крестах не пишут бизнес логику (привет сисярпу и джаве) и не пишут веб, так как там нужен подход аля "хуяк хуяк и в продакшн", что с крестами строго не прокатывает.
С++ это язык для интересной низкоуровневой разработки, для воистину чудовищного хайлоуда, для научно-исследовательских целей, для системных утилит, браузеров, антивирусов, разработки ААА игр и т.п.
202 1672247
>>72229
Ассерт. Есть ошибки, которые возникают внутри проги изаз криворукости, их в дебаге отыскиваешь ассертами, а в релизе объявляется макрос NDEBUG (вроде), который ассерты все отключает.
Конечно же, если есть какой-то внешний ввод инфы, то ее уже приходится проверять динамически, ифами или ексепшенами.
Я эксепшены ставлю только на запуске программы и например на парсинга файла, в других местах частенько возвращаю еррор_коды, в простейшем случае bool, и ифами анализирую
203 1672248
>>72229
Если совсем без исключений, то тут только либо монадическая обработка ошибок (optional, variant), либо коды возврата. Но если тебе исключения мешают там, где их вообще не кидается ты ведь не на каждый чих делаешь throw?, то попробуй LTO и обильно подлить noexcept в проблемные места.
204 1672251
>>72230
Даже пример с стд::вектор - есть метод.at(), а есть оператор[], который нихрна не проверит диапазон, и прога люто крашанется со свистом за выход массива. И это правильно. Если ты строчкой выше инициализовал этот вектор, и цикл делаешь до вектор.сайз(), то зачем что-то усложнять, проверять?
Я пришел к тому, что не стоит весь функционал, особенно скрытый, выдрачивать на проверки, совершенно лишнее. Сделать разовый контроль входных данных, а внутреннюю логику проверить на граничные условия юнит-тестами, и норм
205 1672254
>>72251

>люто крашанется


Если повезёт.
206 1672317
>>68430 (OP)
Настал наконец час когда я высру своё первое десктопное приложение на windows с gui. У меня только 1 вопрос. Что сперва сделать? Написать программу на с++ в консольном виде и потом перенсти её в winforms? winapi смотрел там вообще ничего непонятно, годных туториалов не наскрёб, не понятно откуда что там берётся, так что в ну его, начну с простейшего
207 1672319
>>72229
Ты просто не понимаешь эксепшены.
208 1672480
>>72317
Начни с гуя, повесь затычки и потихоньку их реализуй
209 1672578
>>70876
Молодец, теперь переделай на emplace_back, только не проебись.
std::vector::reserve не забыл?
210 1672633

> DWORD WINAPI ThreadFunc(PVOID pvParam)


Поясните с точки зрения языка, как возможно 2 слова перед функцией? Я такого еще не видел
211 1672637
>>72633
Может быть пустой макрос или calling conversion типо __fastcall там.
212 1672661
>>72633
DWORD - typedef на uint32, WINAPI - __cdecl по-моему
213 1672675
Напомните, в 20 стандарте наконец добавят сеть?
214 1672739
>>72675
Не добавят
215 1672790
>>72675
у тебя есть богоподобный Asio, причем вне буста. Я юзал, охуенная либа.
216 1672831
Как отобразить простенький html с минимальными затратами? Что-то пиздец как не хочется тащить 50мб либу QtWebEngine, есть альтернативы?
217 1672834
>>72790

>Asio


Это же для аудио
218 1672904
Сап, почему очередь с приоритетами херит указатели?
У меня есть бинарное дерево, я пытаюсь из него сделать дерево Хоффмана, но когда вызываю метод top, то указатель right начинает ссылаться сам на себя
Если писать вручную, то все нормально.
https://pastebin.com/JDAmjFNg
219 1672918
>>72904
До/После top().
Почему-то меняется значение у указателя right и из-за этого рекурсия бесконечная.
ЧЯДНТ?
220 1672941
>>72834
https://think-async.com/Asio/

С разморозкой, друг.
221 1672991
Поясните за C++ от Embarcardero. На работе целая конюшня привязана к их RAD Studio. На сколько это пиздецово по сравнению с C++ VS?
222 1673062
>>72675
Ты посрать-то хоть можешь сходить, или ждёшь, пока это в стандарт добавят?
223 1673066
>>72117

>В с++ тем более надо по мудацки кастовать либо через reintrept_cast (лучше говна поесть), либо static_cast<mystuct★>(static_cast<void★>(&buf)), а эта залупа тоже выглядит просто чудовищно.


Я тибе больше скажу. reintrept_cast<mystuct★>(&bif) это по определению static_cast<mystuct★>(static_cast<void★>(&buf))
224 1673079
>>72991
Это странный некродиалект, который нигде почти не используется, т.к. десктоп уже давно шлепается на шарпе или электроне. Ну, или qt.
225 1673119
>>73079

>Это странный некродиалект, который нигде почти не используется


docwiki.embarcadero.com/RADStudio/Rio/en/Modern_C%2B%2B_Language_Features_Compliance_Status
226 1673418
блять, как фиксить ошибку undefined reference to? гугл говорит, что где-то опечатка, но я уже вторые сутки не могу ничего найти.
в ньюфаг-треде не помогли
https://repl.it/repls/ShrillFarflungInitializationfile
227 1673419
Поясните, допустим я создам 2 приложения, и в каждом по мьютексу с одинаковым именем. Как винда выберет, к какому именно я захочу обратиться?
228 1673429
>>73418
всё, пофиксил
229 1673433
>>73419
Это будет один и тот же мьютекс, не?
230 1673493
for(int i = 0; i < 10; i++){
Sleep(500);
ui->label->setText(ui->label->text() + '\n' + QString::number(i));
}

Почему все числа выводятся сразу, после 5 секунд ожидания?
231 1673502
>>73493
Потому что кутэ оптимизтрует запросы на перерисовку интерфейса.
232 1673503
>>73502
И как мне сделать, чтобы числа выводились каждые полсекунды?
233 1673509
>>73503
Заставлять его перерисовывать уи каждые 500 мс, очевидно.
234 1673514
>>73509
Как? Ты можешь обойтись без недомолвок?
235 1673521
>>73514
Ну хуй его знает чувак... может... ЗАГУГЛИТЬ и узнать? Тебе дали наводку, тебе мало? Может тогда присмотришься к жопаскрипту?
236 1673603
Ананасики, подскажите насколько оптимизирован буст? У него есть сасная сублиба Interprocess, которая может шарить STL-контейнеры между процессами, равно как и мьютексы с condition variables, как раз то, что мне нужно для моего пет-проекта. Беда в том, что проект довольно чувствителен к рантайму (даже отказался от использования динамического полиморфизма и дрочу вприсядку, реализуя его через шаблоны). Офк жизни людей от этого не зависят и прямо максимально реальный пердолинг перформанса мб и не нужен, но и проседать в рантайме тоже не варик. Что скажете?
237 1673606
>>73603
Преждевременная оптимизация - корень всех зол
238 1673608
Аноны, как посплитить строку по фене std. У меня слова разделены двоеточие. На джаве я просто split делаю, а тут открыл, какой-то блять split1, или еще параша с итераторами. Пиздец.
239 1673614
>>73608
Гугли строковые итераторы. Там можно задать разделитель.
240 1673632
>>73493
Используй QTimer. Я вообще хз откуда ты этот Sleep взял
241 1673796
Ку крестач.
Вкатываюсь в плюсы. Прочёл книгу "с++ за 21 день" чисто для старта. Что можно прочесть потом? Есть ли смысл читать "язык программирования с++" страуструпа там вроде как те же азы, но чуть более подробно и больше информации даётся. Или же не стоит пережевывать одно и то же и сразу валиться вперёд?
242 1673797
Аноны, молю о помощи
У меня мутипроцессная прога, между родительским и дочерним процессами есть расшаренный deque (спасибо бусту за возможность шарить контейнеры). Как мне получить файловый дескриптор от верхнего элемента deque? Дочерний процесс вызывает другую программу через execve и я хочу заставить эту программу читать данные из вершины очереди. Я думал использовать для этого сисколл dup2, чтобы связать файловый дескриптор верхнего элемента очереди с stdin и при запуске целевой программы заставить ее читать из stdin (читая из stdin - она будет читать данные из контейнера в виду дубликации файлового дескриптора).
243 1673838
>>73796
шапка треда. там вские скоты мейрсы, саттеры, александрески.

Я тот анон, которому посоветовали брюса эккеля. кстати, весмьа нплохо чем гуси-лебеди страуструпа.
Страуструп может и мощный программист но как пистель учебных книг он не оч.
image.png13 Кб, 644x218
244 1673875
Аноны, у меня проблемы. В чём суть: цикл while должен продолжать делать свои дела, пока какая-то из переменных (x или y) не станет равна. И при мне одна из переменных становится равна нуля после итерации цикла и цикл идёт ещё на один заход, игнорируя условие выхода. В чём может быть проблема?
245 1673881
>>73875
Надо или || поменять на и &&
246 1673884
>>73875
Твоя двойная защита не спасёт, если х и у будут вместе равны нулю или х=-у
247 1673887
>>73875

>и цикл идёт ещё на один заход, игнорируя условие выхода


чет проиграл с этого охуевшего цикла, напомнило одного обнуленного президента
248 1673903
Пишу на си, с++ планируютолько выучить. Сейчас внезапно пишу одну программу и мне нужна одна либа край для неё, а она только с++ поддерживает. Можно ли писать с++ так будто я пишу на с? Я смотрел вроде синтаксис у языков крайне идентичен
249 1673914
250 1673919
>>73914
спасибo. пoнял.
251 1673923
>>73903
Вроде в iostream есть всё, что есть в stdio.h
252 1673927
>>73923
да спасибо, я уже видел этот header.
253 1673945
>>70756

>1. Рекурсивно вызвать функцию обхода для левого и правого сына?


ето не бинарное дерево, ты обосрался
254 1673975
>>73881
Спасибо, анон! Блять, как же тупо я обосрался
255 1673977
>>73884
Я как чел, который ограничил эти ёбаные функции ответственно заявляю, что только одна станет нулём. Но спасибо за замечание, уже переделал
256 1673978
>>73887
Трави стори, мне стало интересно :3
257 1674064
Как можно отсортировать set, содержащий указатели на мой класс?
Если в качестве компаратора указать greater<CLASS>, компилируется, но сравнивается неправильно (видимо, вижла сравнивает указатели сама)
Как я могу указать способ сортировки?
258 1674072
>>74064
Напиши компаратор сам, причем тут студия.
259 1674075
>>74072
Я не разобрался с синтаксисом указания компаратора, но теперь все в порядке.
set<T, function<bool (T,T)>> name(funcName)
260 1674124
>>72229
Просто любопытно, что нужно делать, чтобы исключения как-то заметно повлияли на производительность?
261 1674164
>>74064
std::greater без параметров - это transparent компаратор, будет сравнивать любую сравнимую хуйню, главное, чтобы нужный компаратор был на месте. Удобно, когда есть std::map<FatKey, int> и нужно что-то найти по ключу, который сложно/долго/етц создавать, поэтому пишут SlimKey и по нему ищут. Если в шаблоне компаратора указать FatKey, то он больше не будет прозрачным и такая хуйня не прокатит.
По твоему вопросу - у тебя указатели, так что пиши свой компаратор, в котором их будешь разыменовывать.
262 1674183
>>74124
Просто использовать эксепшоны "для всего", как рекомендует Страуструп. Эксепшоны - это медленно.
263 1674184
>>74124
Просто использовать эксепшоны "для всего", как рекомендует Страуструп. Эксепшоны - это медленно.
264 1674360
>>74183
Прямо так и сказал, "для всего"?
Untitled-2.png6 Кб, 640x299
265 1674369
this_thread::get_id() показывает номер потока. Что показывает this_thread::get_id без скобок?
Гугл молчит. Компилировал в MVS.
266 1674371
>>74183
Экзепшены уже используются везде, ты не можешь их избежать, ведь пишешь не собственную программу в сферическом вакууме, а лишь встроенную в уже существующий фреймворк ОС и прочего.
267 1674375
>>74369
Без скобок адрес функции же.
268 1674387
>>74375
А ну да, точн. Ну я на самом деле нуб.
269 1674396
>>74371
В гугле запрещают юзать эксепшены при написании крестового кода тащемта, ибо у гугла весь крестовый софт сверхчувствителен к перформансу (кресты сейчас в других индустриях и не существуют, только в пердолинг-хуйлоудах и жестком рилтайме) не то, чтобы это что-то плохое, скорее даже наоборот, но как факт
270 1674399
Эксепшоны нужны только при вводе чего либо пользователем.
271 1674413
>>74396
На гигантов равняться не стоит, у них очень специфичные проблемы.
272 1674414
>>74399
А если программа работает со сторонними данными, то они не нужны?
273 1674420
>>74396
в гугле запрещены эксепшены не из-за перформанса, а из-за того что у них весь код легасидрисня, который будет течь на каждый эксепшен.
274 1674421
>>74396

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


Ты хуйлоадщик из гугла? нет? Что тогда тут забыл?
Сам себе противоречишь, друг.
275 1674489
Сколько раз уже вижу эти высеры про экспешены и того как они на производительность влияют. А по факту кто-нибудь может объяснить в чем реальный оверхед экспешенов? Типо раскрутка стека когда выкидываешь его это дорого? А если делать без эксепшенов то тогда надо просто инт какой-то возвращать с кодом ошибки и проверять его после вызова функции, это как минимум +1 кондишнл джамп. А как раскрутка стека заимплеменчена? Или в другом чем то проблема?
276 1674496
>>74421
я хуйлоудщик, но не из гугла :3
В смысле что забыл? Я пишу на плюсах.
Где противоречие?
277 1674499
>>74489
условный прыжок это пук по сравнению с раскруткой стэка. Это все равно что сравнивать циклы и рекурсию по производительности. Не тупи, пчел.
278 1674508
Где почитать про все эти раскрутки стека и условные прыжки? В книгах этого нет.
279 1674520
>>74489
Компилятор лучше оптимизирует код без эксепшонов.
280 1674541
>>74489
Тут https://www.youtube.com/watch?v=ItemByR4PRg в контексте LLVM объясняется.
281 1674613
>>68430 (OP)
Разъясните по хардкору за московскую нвидию. Стоит пробовать вкатиться C++ мидолу?
282 1674617
>>74613
Тут один полупокер в ней работает.
283 1674626
>>68430 (OP)
https://habr.com/ru/post/492410/

крабы опять за своё
284 1674669
>>74613
попробуй

Мимо полупокер из нвидии, которому завидует весь тред
285 1674676
>>74669
Что там на собесе? Деревья вертеть надо?
286 1674690
Я осознал, что раст охуенен, и действительно почти во всём лучше крестов. Будь в России вакансии, перебрался бы на него. Я серьезно, не наброса ради.
287 1674704
>>74669
А надо графоний, куду знать?
288 1674710
>>74690
Но справедливости ради синтаксис раста выглядит уебищно, по крайне мере на первый взгляд
289 1674711
>>74676
Общие знания по программированию + специфик пер команда. Там про дебаггеры в Тегру или еще чо.

>>74704
Графония очень мало в Москве, КУДЫ тоже нету (она в штатах, ее Брюс Лелбак пердолит из комитета)
290 1674718
>>74711
Понятно, пасибо. Я собственно Лелбака интервью тут слушал и вспомнил, что в мск нвидия есть.

>дебагеры в Тегру


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

Раз уж ты ответил, то скажи еще нужно видимо ждать окончания ковид событий, чтобы пробовать? Как обстанова то вообще?
291 1674727
>>74690

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


Кроме одного маленького момента: Раста не существует. В корпоративном мире that is.
292 1674737
>>74727
В рахе пока не существует. Но это пока.
293 1674740
>>74718

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


Хайринг зафризен из-за ковида полностью. Обстанова ок сидим из дома работаем все.
294 1674909
И всё таки анон для чего хорош с++? Какую сферу кресты монополизировали?
295 1674931
>>74909
сферу легаси и олимпиадного программирования
296 1674940
>>74710
справедливости ради синтаксис крестов выглядит как смесь ежа с ужом, за счет родства с сишечкой. Выглядит как си, работает как UB.
297 1674947
>>74909
Читы на видео игрушки для дебилов
image.png195 Кб, 908x498
298 1674983
>>74909
Для всего? Браузеры, десктопные приложения, игры, сервера, офисы, фотошопы, редакторы, финтех, тысячи их же.
299 1675022
>>74983
Насчет серверов ты погорячился, анон. Сервера на плюсах не пишут уже, он уступил это другим языкам (даже той блевотной джаве, да и на ноде начинают макаки пилить серваки, и индустрия хавает).
Вопрос в другом - обоссыт ли в итоге раст плюсы или нет. Язык еще молодой, а уже хайпанул пиздец как, плюс безопасность памяти. Хз-хз..
300 1675046
>>74909
Например, бэкэнд в финансовой индустрии. Огромное количество внутренних приложений гоняющих всякие тяжелые расчеты.
301 1675048
>>75022
Пишут-пишут, у фейсбука большая часть бэкэнда на плюсах.
302 1675064
>>75022
Чому это не пишут? Хоть GWS и IIS, фейсбук и яндекс, хоть сервера League Of Legends или World Of Tanks.

Вообще удивительная ситуация сложилась. С одной стороны буквально полмира держится на С++, все с продуктами языка сталкиваются каждый день: от Windows до Word, 1C, очередной игры или компа в автомобиле. С другой стороны я регулярно вижу удивленные взгляды друзей или родственников "Ебать ты динозавр, никогда не встречал С++ погромистов, сейчас же все жаве пишут лолбля".

Какая-то странная картина мира сложилась в медиа где в основном разговаривают о каком-то го, жс, питоне и прочих мемах.
303 1675115
>>75064
Ну, ОСи на чистом Си все же пишут, а не на плюсах (что мне не совсем понятно, буду рад, если объяснят, а то сложилось так, что все ядра нынче популярных ОСей написаны на Си).
Джава реально популярнее плюсов, но от этого она менее блевотной не становится. Это просто потому, что пластиковый мир победил и кровавый тырпрайз требует своих, наркоманских инструментов, где джава выстрелила пздц как (хотя тот же сидиез мне импонирует больше джавы, который, увы, сосет хуй, ибо анально огорожен мелкософтом, но все равно лично я предпочитаю кресты, ибо я байтоёб).
304 1675124
Крестовички, всем привет.
Я грызу Boost.Process и пока не могу понять как я могу асинхронно хэндлить N дочерних процессов. Цель - у меня есть родительский процесс, который кидает данные в расшаренный буфер, а N детей хавают оттуда (я в курсе про состояния гонки, вопрос не про это). Как этого достичь, юзая буст? Заранее спасибо.
305 1675221
Делаю свою реализацию строки интереса ради. Поместил класс в неймпейс, и в классе обявил дружественную функцию. Но из функции почему то не могу обращаться к приватным переменным. Почему?
306 1675223
>>74909
унижения на собеседования. Идешь на с# в какой-нибудь дойче, а тебя еще унижают на си++ два часа перед вопросами по шарпу.
307 1675226
>>75064
Ничего нового не пишут, имеется в виду. То есть когда решают на чем писать какой-то новый продукт, не выбирают кресты. Бэк Яндекс Такси, кстати, на крестах написан просто в целях экономии на программистах — Gett написан на го и никаких проблем.
308 1675229
>>74737
Надо только потерпеть? Там всё схвачено?
309 1675231
Аноны, я бумер, привык с книгой работать, есть что по буст почитать?
310 1675233
>>75226
Убер тоже не на C++, коре там на джава и го. Дискорду не хватило скорости го и они перешли на Раст.
311 1675239
у меня знакомый в одной компании крупной работает, там прогеры на ++ и на джаве, ++ апи, java десктоп. Так вот у них джава-пидорам надо окошки писать, а крестоблядям серверную логику, причем джава пидорам платят на 20% больше.
312 1675252
>>75239
давно известно, что у джавистов и макакаскриптеров самые высокие зп из девов, крестовикам и сишникам платят в разы меньше, так рыночек устроен, увы. Но кресты - это прежде всего душа. Я как представлю что мне надо будет писать что-то на джава - сразу рвотные позывы начинаются, никакая надбавка в 20% к зп не поможет.
313 1675256
>>75252
А в чем проблема собственно? Синтаксис очень похожий, велосипеды те же писать приходится
image.png173 Кб, 797x891
314 1675258
>>75252

>в разы

315 1675271
>>75256

>А в чем проблема собственно?


В манямирке аутичного инфантила.
316 1675289
>>75252
анон, тоже тебя не понимаю, алгоритм есть алгоритм, на чем его не напииши, вот последний жопоразрыватель у меня был, это то что в питухоне нет свич-кэйс
317 1675344
>>75252
Но потолок все же у плюсов выше в тир1 конторах чем у макаки.
318 1675347
Зачем нужен с++ когда есть раст?
319 1675349
>>75347
Чтобы поддерживать существующую инфраструктуру. Понятно, что с нуля лучше писать на расте, но гуглопоиск не перепишешь.
320 1675353
>>75344
Откуда тебе это известно?
321 1675366
>>75353
Глупый вопрос, но я отвечу. Я умею гуглить.
322 1675380
Нормально получается, или говно?
.png3 Кб, 382x157
323 1675412
>>75380
Хотя с конструктором перемещения протупил
324 1675413
>>75380
проиграл с char✹ capacity
325 1675421
>>75347
Язык без эксепшенов? Я ебал.
Коды ошибок не просто так в своё время были признаны порочной практикой. Но если зумерам хочется топтать грабли и потом снова переизобретать эксепшены, то ради бога.
326 1675424
>>75421

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


Почему?
327 1675443
>>75349
Зачем нужен раст, когда современный С++ безопасен по памяти? Офк С++ позволяет наговнокодить и позволяет писать код с переполнениями буферов и дикими указателями, но как бы есть умные указатели + в контейнерах есть проверка границ буферов (если юзает метод at для доступа к элементу массива, а не аутичные сишные [], где нет проверок), что исключает переполнения. Нахуй тогда тот раст всрался, если современные кресты с использованием смарт поинтеров и STL безопасны? Плюс кресты как язык мощнее по фичам, чем раст, как ни крути. И метапрограммирование - вещь ОЧЕНЬ мощная.
328 1675468
>>75424
Засирают код проверками и перекидываниями этих ошибок на уровень выше. Читать неудобно, писать заебывает, поддерживать муторно. Расширяемость плохая — добавил новую ошибку, надо править весь вызывающий код по цепочке. На один и тот же код вещают кучу разных ошибок, а юзеры библиотеки потом не могут понять, почему функция возвращает ERROR_GENERIC_FAILURE.
329 1675469
>>75443
Когда в крестах нельзя будет выйти за пределы массива, тогда поговорим.
330 1675470
>>75421
слышь, беспредельщик, ты за предъяву свою гнилую ответишь? Чем тебе коды ошибок не угодили?
331 1675471
>>75469
а ты не выходи, наличие хуя у твоего спящего товарища не повод этот хуй начать сосать
332 1675473
>>75468
А с экспешенами тебе надо все заворачивать в RAII и писать код с мыслью что в любой момент может произойти бздых и выполнение пойдет по другому пути.

С кодами ошибок у тебя хотя бы код исполнятеся предсказуемо.

Два стула, в общем.
333 1675475
>>75469
Используй vector.at и не выйдешь. Будешь тормозить только.
334 1675477
>>75473
эксепшен для полупокеров, в любой момент все может ебу дать и не факт! что очистится. Если через коды ошибок работать, контроль в разы лучше, но код становится на вид как говно.
335 1675482
>>75471

>а ты не выходи, наличие хуя у твоего спящего товарища не повод этот хуй начать сосать


А что, так можно было?

мимо Robin Seggelmann
336 1675518
>>75473
В RAII один раз завернул, и оно лежит себе в углу и не мешает. А думать об эксепшенах надо в основном только в том плане, что надо научиться пользоваться современными возможностями, которые позволяют писать безопасно.

> С кодами ошибок у тебя хотя бы код исполнятеся предсказуемо.


Он всегда исполняется предсказуемо. А когда нет, то это называется UB.
337 1675549
Ребята, как вкатиться в буст? И есть ли нечто бустоподобное хотя бы? Это говно даже не компилится нормально, вылетает простыня ошибок, где миллион вложенных шаблонов, гугл молчит, даже скомпилировать нихуя не получается. Документация у него не ахти. Памагити!!
338 1675552
>>75549

>как вкатиться в буст


буст не един. нужно ставить вопрос "как вкатиться в boost.libname", они все разные и для разного.

две недели назад собирал буст, собралось вообще без проблем. даже удивился. А у тебя в чом беда?
339 1675558
>>75552
boost.interprocess, брат
Очко горит уже второй день, помогите кто-нибудь, пожалуйста! Доки реально тухлые какие-то
340 1675565
>>75223

>на собеседовании


>"а как реализована фича X в языке?"


>"ну так-то так-то"


>"Да, верно"


>поговорили минут 10 про неё


>прихожу домой, чекаю cppreference


>мы оба несли полнейшую хуйню


Так случалось наверное раза 3 уже. Главное - говорить так, как будто так оно и есть
341 1675573
>>75558
Через vcpkg не вариант?
342 1675599
>>75573
Я на Линуксе.
По идее должно компилиться через флаги -lpthread -lrt, оно-то компилится, но при попытке исполнить бинарь:

terminate called after throwing an instance of 'boost::interprocess::interprocess_exception'
what(): boost::interprocess_exception::library_error
[1] 48688 abort (core dumped) ./testboost
343 1675601
>>75549
set BOOST_BUILD_USER_CONFIG=tools/build/user-config.jam

b2 address-model=x64 toolset=msvc threading=multi --with-interprocess variant=debug,release link=static runtime-link=shared --stagedir=stage/x64

Это по памяти. Если не разберёшься, иди нахуй.
344 1675604
>>75599
Тащемта vcpkg на Линуксе тоже работает.

> 48688 abort


Ну еб твою бабушку, возьми дебаггер и посмотри, где падает. Потом почитай, почему падает
345 1675608
>>75601

>toolset=msvc


Пошел нахуй, я на Линуксе
346 1675612
>>75608

> Пошел нахуй, я на Линуксе


Ну и страдай теперь, красноглазик.

> Тащемта vcpkg на Линуксе тоже работает.
347 1675689
Чем определение нового аллокатора в бусте отличается от дефолтного определения аллкатора? Допустим, я хочу расшаренный std::deque<std::string> между родительским и дочерним процессами. Буст позволяет шарить STL-контейнеры через shared memory обертки, но как завернут имено декью строк я пока хз, выходит хуета. Может кто-то подсказать/направить на матчасть, нужную для понимания сей ебанины?
348 1675708
Как реализовать реверсивные итераторы? Я не понимаю
349 1675815
подскажите набор ворнингов, которых нет в wall, но очень полезны.
350 1675848
Чота я охуел, чё за каша

char
wchar_t
std:string
System::String

int
__int32
uint32_t

нахуй столько?

Что используют нормальные люди из этого месива?
351 1675866
>>75848

>char


Простой 7-битный аски

>wchar_t


Платформозависимая хрень, с которой приходится жить.

>std::string


Строка из стандарта

>System::String


Дотнетовская строка из C++/CLI, это вообще отдельная тема

Насчёт интов - в стандарте не указаны конкретные их размеры, поэтому в компиляторах сделали собственные типы вроде __int32. Начиная с C++11 и C99 ввели стандартные типы для целых фиксированного раздела: https://en.cppreference.com/w/cpp/types/integer. Кури стандарт, в общем.
352 1675881
>>75866

>Простой 7-битный аски


8-ми битный.
353 1675896
>>75881
Семибитный.
354 1675904
>>75881
пчел, char это байт (по крайней мере на всех самых распространенных архитектурах), в байте 8 бит, где ты еще один бит потерял?
355 1675920
>>75848
char/std::string - восьмибитовые строки, можно хранить текст в ASCII, в 8-битных кодировках (cp1251 и прочие), в utf-8
wchar_t/std::wstring - пытались увеличить размер символа, но не определились, насколько именно. Годятся чтобы хранить строки в utf-16 на винде (где на них всё апи), а на линуксах оно практически юзелесс (там все живут в utf-8).
Всё, что начинается на подчеркивания - какая-то внутренняя кухня компилятора, без веских причин не используй.
int - обычное повседневное целое число.
uint32_t и прочие _t - числа фиксированных размеров в байтах. Если ты в каком-то месте закладываешься, что int будет именно 4 байта, и не байтом больше, то там надо писать uint32_t
image.png76 Кб, 1200x474
356 1675979
>>75904
А ну ка, посчитай сколько символов в таблице, и сколько бит на это надо.
Другое дело, что аски по-разному дополняют всякой региональной залупой не к ночи будь помянут КОИ-8. Однако по стандарту сам ASCII таки 7-битный.
357 1675980
>>75979
Зачем ты приравниваешь кодировку к символу?
358 1676002
>>75979
>>75980
Давайте только без срачей

> The committee considered an eight-bit code, since eight bits (octets) would allow two four-bit patterns to efficiently encode two digits with binary-coded decimal. However, it would require all data transmission to send eight bits when seven could suffice. The committee voted to use a seven-bit code to minimize costs associated with data transmission. Since perforated tape at the time could record eight bits in one position, it also allowed for a parity bit for error checking if desired. Eight-bit machines (with octets as the native data type) that did not use parity checking typically set the eighth bit to 0.

359 1676034
че пацаны, как работать в ожидании UB?
360 1676041
>>75979
Пчел, таблица ASCII имеет 256 символов (от 0 до 255, спец символы после 127 - это тоже часть таблицы ASCII, прикинь!). 256 = 2^8. Вот тебе и 8 бит. Не спорь плиз, ты реально глупо выглядишь, говоря по сути, что char имеет размер 7 бит вместо 8, лол. У тебя тогда sizeof(char) никак не мог бы выдавать размер в 1 байт.
361 1676046
>>76034
Хуево. Именно поэтому новые проекты пилят на расте, а старого легаси на сишечке и плюсах настолько много, что ни у кого нет ни денег, ни сил, ни времени, ни желания все это переписывать, а поддерживать все это как-то надо.
362 1676070
>>76041

>спец символы после 127 - это тоже часть таблицы ASCII, прикинь


Не неси чушь, а почитай историю. Кодовые страницы - не часть аски.

> У тебя тогда sizeof(char) никак не мог бы выдавать размер в 1 байт.


Ты исходишь из того, что байт=октет, что в зоопарке 70-х было не так. Многие компьютеры тогда вообще имели размер слова кратный шести, потому что использовали BCDIC.
363 1676072
>>76070

>Ты исходишь из того, что байт=октет, что в зоопарке 70-х было не так. Многие компьютеры тогда вообще имели размер слова кратный шести, потому что использовали BCDIC.


Какая разница что было в 70-ых? В 2к20 байт=октет.

>Кодовые страницы - не часть аски.


И именно поэтому у спец символов есть специально отведенная кодировка (читай, числовое значение) в самой таблице? Пруфани, что в данный момент это не часть таблицы ASCII.
Screenshot2020-05-0412-58-57.png68 Кб, 1482x404
364 1676077
>>76041
Вот и выросло поколение, не видевшее ничего, кроме юникода. ASCII это 7 бит, в восьмибитных кодировках это нижняя половина таблицы, а верхняя уже зависела от региона, системы и левой пятки программиста. В рашке восьмибитные кодировки были cp866 (dos), windows-1251 и koi8r.
При чем кои8 символы располагались не по алфавиту, а так, чтобы при откусывании 8 бита текст становился читаемым транслитом. Сортирвать наверное было в кайф такое
365 1676082
>>75866

>Простой 7-битный аски


А, я понял, почему этот разговор начался. Шизик решил выебнуться
ascii.png61 Кб, 984x576
366 1676088
>>76072

>Пруфани, что в данный момент это не часть таблицы ASCII.


Пожалуйста - последняя ревизия ASCII от 1986 года.
367 1676105
>>76046
Ты же понимаешь, что даже если будут деньги и желания, никто уже например ядро линукса не перепишет на расте
368 1676114
>>76105
Ну так я и говорю - легаси как было С/С++, так и останется, ты ж читай что я написал. Понятное дело, что 30 млн. строк кода в ядре Линя точно не будут переписывать.
Новые проекты пишутся уже на расте, ибо нужно быть полоумным шизиком, чтобы пилить новые проекты на дырявых япах с UB в 2к20.
369 1676122
>>76114
upd:
Мелкософты год назад начали переписывать много софта с С на раст, между прочим. Так что мб к 2030 году будет безопасная винда без возможности совершить эскалацию привилегий или удаленное исполнение кода из-за дыры в ОС (в 99% случаев такие жесткие хаки возможны только из-за проблем с памятью, логические же баги, которые бессмертные, как правило, очень ограничивают простор для хацкеров).
Но линь как был дырявым, так и останется, ибо Торвальдс не позволит никому переписывать ядро Линя. Он даже плюсы хейтит, какой там раст...
370 1676131
>>74690
Хуй знает чем вам современный С++ не угодил. Меня лично все в нем устраивает кроме отсутствия адекватной работы с метаданными. Почему я не могу блять на ЭТАПЕ КОМПИЛЯЦИИ пройтись по всем полям класса, получая их имена? Так же блять нельзя и по всем именам + значениям енумов пройтись. Почему создали стандарта такие пидорасы, что за 20 лет не прикрутили настолько нужные вещи? Интересно как с этим в расте обстоят дела?
371 1676174
Кто-нибудь имел дело с OpenCV? Мне нужно заменить у исходного PNG файла с индексированными цветами один из цветов палитры (их 256) на прозрачный, а после, сохранить в том же формате, не удаляя палитру цветов. Никакой инфы о работе с палитрой найти я не смог. Читал спецификацию к PNG, там сказано, что это возможно, а также потребуется чанк tRNS. Да и в фотошопе у меня получилось сделать задуманное, но как это сделать с помощью OpenCV - хз. На данный момент у меня есть следующий код, который добавляет прозрачность, но он это делает без использования палитры, что увеличивает размер конечного PNG в 3-4 раза, а мне это не нужно.

https://pastebin.com/4ME6LEQd

п.с. В будущем мне эта библиотека понадобится для объединения нескольких изображений в одно, для этого у нее весьма удобный интерфейс, поэтому и выбрал. Но если не получится сделать задуманное, буду пробовать с libpng. Хотя, OpenCV ИСПОЛЬЗУЕТ модуль libpng для работы своих процедур. Странно, что завезли кучу конвертаций цветов изображения, несколько видов компрессии, а банальную работу с палитрой нет. Или просто я не вижу...
372 1676187
>>76174
Это далеко от задач компьютерного зрения и вряд ли у тебя что-то выйдет
373 1676385
>>75115

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



Ну справедливости ради скажу, что экосистема джавы, а именно инструменты для отладки, системы сборки, профилировщики, менеджеры пакетов - все куда лучше, чем в С++ на данный момент. И пользоваться этими инструментами куда приятнее.

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

Не вижу ничего плохого в том, чтобы использовать джаву.
374 1676388
>>75064

>С одной стороны буквально полмира держится на С++


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

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


Потому что все вышеперечисленное пишется сейчас в довольно малых объемах, как правило за рубежом, и очень небольшими командами разработчиков. Действительно, жс и джавы в современном мире нужно куда больше.
375 1676393
>>76187
Если верить википедии, opencv решает не только задачи компьютерного зрения:

>OpenCV — библиотека алгоритмов компьютерного зрения, обработки изображений и численных алгоритмов общего назначения



Алсо, я уже решил проблему байтоебством, а хотел без него..
376 1676395
>>76388

>Ну справедливости ради скажу, что экосистема джавы, а именно инструменты для отладки, системы сборки, профилировщики, менеджеры пакетов - все куда лучше, чем в С++ на данный момент.


Какая-то энтерпрайз поебота с XML и гигабайтами оперативки требований

>Здесь библиотечные функции названы понятными именами, а не каким-нибудь нечитаемым говном в духе си и posix


Нечитаемое говно отлично и быстро читается, если ты не ньюфаг. А вот джава многословность вредна всем, и ньюфагам, и олдфагам
377 1676397
>>76393
Твоя задача ни к чему из этого не относится. OpenCV это такая замена матлабу неплохая - матрицы там, фурье-хурье, картинку нормализовать и т. п., но не байтоебство.
378 1676402
>>74983
Тут как бы много всего перечислено, но все это пишется в очень маленьких масштабах.
В РФ и СНГ наверное это менее 10% всего рынка разработки будет.
И попасть ну очень сложно в такие места, в которых пишутся вот эти браузеры и высоконагруженные сервисы. Наверное потому что такая компания одна на все полушарие. А вторая находится на другом полушарии.
379 1676404
>>74983

>финтех


Анально оккупирован джава разрабами и аналитиками с питонами.
380 1676414
>>76395

>Какая-то энтерпрайз поебота с XML и гигабайтами оперативки требований


Но несмотря на минусы, работать удобнее именно с этой энтерпрайз поеботой. Кстати добавлю, что хоть IDEA и CLion по сути написаны на одном движке, если можно так выразиться, то количество разных фишек у идеи куда больше, чем в плюсах. Но связано это также и с тем, что идея постарше будет, но все же.

>Нечитаемое говно отлично и быстро читается, если ты не ньюфаг


Ну если со стандартной библиотекой проблем действительно нет, то вот со сторонними уже проблемы. Начиная от каких-то магических макросов и заканчивая очень непонятными именами функций. Помню, как пришлось впервые использовать в джаве библиотеку для парсинга хтмл, так я охуел от того, насколько же могут быть нормальными именами у функций, которые сразу дают тебе некоторое представление о том, что именно будет происходить. А еще поддержка javadoc в ide, где ты можешь сразу посмотреть документацию. В плюсах такого к сожалению практически нет.
381 1676429
Как вынести функцию в отдельный файл?
//A.cpp
int func(vector<int> &vec_name)
{
...
}
//B.cpp
extern int func(vector<int> &vec_name)

int main()
{
...
func(vector<int> vec)
}
не разрешенный внешний символ
тоже самое если вынести в .h
382 1676430
>>76429
ты по заветам дебилов пишешь в виме и в консольке компиляешь?
383 1676431
>>76429
точку с запятой забыл
384 1676432
>>76430
В вижуал студии.
385 1676433
>>76429
int main()
{
...
func(vec);
}

фикс
386 1676476
Аноны, я тут подумал, что в 21 веке название языка давно следовало бы объюникодить. Как думаете, какой вариант имеет больше шансов быть протолкнутым в RFC?

C☦☦
C††
C✝✝
C࿕࿕
C࿖࿖
387 1676484
>>75421
Зачем коды ошибок, если есть типы-суммы?
388 1676487
>>75366
Твой гугл какой-то другой.
external-content.duckduckgo.com.jpeg14 Кб, 474x355
389 1676492
>>76484
В расте нет эксепшенов и они предлагают пробрасывать Either как в хачкеле?
390 1676508
>>76429
>>76433
Ну как передать вектор в функцию в другом файле?
391 1676509
>>76492
Можно просто паникануть с кастомным текстом.
Можно пробросить с преобразованием
let hui = a.get("hui")?; - для случая, когда есть трейт From для проеобразования типов ошибок
Можно преобразовать на месте, если нет
let hui = a.get("hui").map_err(|e| F::new(e.to_string()));
А можно вообще все возможные ошибки в енум завернуть и пробрасывать наверх без преобразования
393 1676532
>>76528
extern убери. И проверь, что у тебя оба .cpp файла в одном проекте
394 1676546
>>76532
Спасибо, почему то CPP файл как заголовок подключился.
395 1676558
>>76546

Убогие, как же вам тяжко. У нас-то в расте просто ебошишь
mod {
  pub(crate) fn sum(a: i32, b: i32)->i32 {a+b}
}
прямо в майне своём. А потом по хинту в иде уносишь в отдельный файл. Инклюды эти, блять. Подключить внешнюю либу? Сударь, извольте поебаться от души.
396 1676562
>>76558
Растообиженка идет срать в С++ тред.
397 1676568
>>76558
Ну да, используем модель компиляции Си, щито поделать.
398 1676614
>>76558
Блядь, вот это показательно, растоман не сидит в своём треде, потому что там 0 анонов, примерно такая же картина ирл.
399 1676641
Двач, подскажите, имею вектор векторов как проверить этот контейнер на присутствие в нём вектора?
400 1676661
>>76641
проитерируй вектор. Если хоть одна из ячеек == nullptr, то вектор векторов неполон, возвращаешь false, иначе - true.
401 1676662
>>76641
проитерируй вектор. Если хоть одна из ячеек == nullptr, то вектор векторов неполон, возвращаешь false, иначе - true.
изображение.png261 Кб, 649x433
402 1676665
двач выручай
есть мышь с доп кнопками, как за отследить нажатие этих кнопок ?
стандартный софт дико накаляет, хочу альтернативу для него.
нагуглить что-либо вменяемое не получилось
403 1676669
>>76661
Нет, в смысле мне нужно найти в векторе вектор, без итерирования, как-нибудь по простому это можно сделать?.
404 1676671
405 1676674
>>76669
без итерирования по-простому вряд ли получится. А почему ты не можешь просто циклом по нему пройтись, в чем проблема-то?
406 1676676
>>76674
Да заебало писать циклы на всю хуйню, почему нельзя реализовать нечто подобное std::find(vector.begin(), vector.end(), {1, 2, 3, 4, 5});
407 1676678
>>76671
не понимаю, ни о чем мне не говорит и все что я нашел, по этому запросу, это чей-то кусок кода
408 1676680
>>76669
это задача поиска строки в подстроке - гугли всяких БОЙЕРОВ МУРОВ и прочую такую парашу. Всякие find это про другое немного
410 1676692
>>76680
Какая-же питон годнота относительно этого говна.
[1, 2, 3, 4, 5] in vector
Вот что может быть проще?
412 1676714
>>76696
Ну выглядит тем что надо, даже понял про боеров муров которых я не хотел сначала гуглить.
Правда проверить пока не получается т.к. я сейчас на windows, а тут на mingw 7.3 и msvc 2017 такие новшества видимо ещё не поддерживаются.
413 1676726
>>76676
Ну тащемта ты почти угадал, нужно только перед {} дописать std::vector э и <int>, если нет c++17
414 1676729
>>76714
Да хоть на палме, эта функция везде должна быть
415 1676745
>>76558
Раст есть в ISO?
416 1676748
Ананасычи, насколько зашкварно рьяно мешать чистый С код с плюсовым? У меня пет-проект, который требует много системного программирования с дрочением системного API, которое все написано на Сишечке. Но хочется подрубить плюсы из-за STL и классов. Зашквар или это приемлимо?
417 1676752
>>76748
Какие ты видишь альтернативы?
418 1676754
>>76748
Это не зашквар - а жизненная необходимость. Мы всё используемое винапи обернули в нормальные крестофункции, и с этим работать в разы удобнее.
419 1676760
>>76752
>>76754
Да хз, просто спросил. Яхз что там в плане конвенций, вот и спросил. План был написать самый лоу-лвл системный код на Си, инкапсулировать это в классы и дергать через публичные методы что надо в мейне уже.
image.png663 Кб, 500x500
420 1676891
>>76476

>C࿕࿕


Этот заебись!
421 1676914
>>76476
✚✚
15705293033750.jpg120 Кб, 720x960
422 1676927
>>76476
Лучше бы мимокрокам пояснили за 17/20 стандарт в шапке, дауны ёбаные.

за 23 тоже можно было бы
423 1676947
>>76927
Что пояснить про 17\20 стандарт?
424 1676949
>>76484
Математиков надо нахуй гнать из программирования, они всегда всё портят.
425 1676960
>>76484

>Зачем коды ошибок


>Зачем дискрминант для эльфийских енумов


>>76949
Математики тебе всё это придумали, даун, ты просто себе подобному ответил.
426 1676962
>>76947
Что нового с 14 хотя бы.
427 1676966
428 1676978
Аноны, а как насчет обновить шапку нашего всеми любимого треда?
429 1676980
>>76978
Что ты хочешь в ней увидеть? Я бы с удовольствием обновил.
430 1677086
>>76980
Тогда нужно создать на pastebin док и пилить потихоньку шапку.
Ну, наверное немного актуальной инфы добавить и сделать шапку как у тех же питонистов или жс.
Вынести книги в нее, чтобы меньше в треде спрашивали про что читать первым. Вынести про то, как постить код и так, по мелочи, типа того же буста о том как его учить (напримере того, что тут пчел задавал вопрос о том, как учить буст, но не дал конкретики какой именно).
431 1677089
>>77086
Шапка у пхп и свифта хорошо оформлена кстати для примера.
rage yoba.jpg54 Кб, 479x479
432 1677255
ТРИВИАЛЬНЕЙШАЯ ФУНКЦИЯ В СТАНДАРТНОЙ БИБЛИОТЕКЕ
@
НЕ КОНСТЕКСПР
@
ИДИ ВЕЛОСИПЕДЬ


Я твой дом труба шатал, комитет!
Screenshot from 2020-05-05 16-09-13.png62 Кб, 803x520
433 1677275
>>72063

Это вопрос из игры "Не смотри на петуха". Ни один нормальный человек не будет разбираться в этой хуйне.
434 1677386
>>76690
перехватывает только стандартные кнопки =(
1588677489176.jpg60 Кб, 800x450
435 1677423
>>77275

>c18


Нихуясе я не шарю
gdwnbor2.png127 Кб, 421x404
436 1677483
>>77255
ЮЗЕР-ДЕФИНЕД ЛИТЕРАЛС
@
БУКВАЛЬНО ПРИМЕНЯЮТСЯ ТОЛЬКО К ЗАХАРДКОЖЕННЫМ ЛИТЕРАЛАМ
@
НЕ КОНСТЕКСПР
@
НЕВОЗМОЖНО НАПИСАТЬ ЧТОБ БЫЛО КОНСТЕКСПР
437 1677584
Аноны, хочу стать прогером-универсалом. Тобишь работать и с лоулевелом и на уровне программ мутить мутки. Вкатывать в С++ норм тема? Нужно ли перед этим хотя бы ознакомиться с С? Какие подводные? Сколько времени у меня займёт достижения уровня скиллового прогера. До этого 2 года писал на питоне. Сейчас времени валом, денег тоже, в сутки могу по 10-14 часов спокойно уделять (вряд ли ибо чувствую мозг закипит).
438 1677591
>>77584

Ты будешь копаться в легасиговне, 80% времени тратя на еблю с языком и его инфраструктурой если эту смердящую кучу говна размером с Эверест можно назвать инфраструктурой До серьезных/интересных вещей о которых ты мечтаешь тебя не допустят.
439 1677597
>>77591
А я не копания ради, а чтобы самому уметь делать какие-нибудь охуенные проекты.
440 1677601
>>77597

Ты не будешь делать какие-нибудь охуенные проекты. Потому что кто делает какие-нибудь охуенные проекты заинтересован в них. И он их просто берет и делает. А ты будешь вечным посетителем "посоны, что бы написать"-тредов.
441 1677605
>>77601
Ты прав, всё так и будет. Что там по моим вопросам?
442 1677610
>>77584
Анон, не стОит. С++ - мертвый язык для нормисов. Он не мертвый в целом, но на нем пишется в основном слишком крутой софт (известные браузеры, ААА игры, например), к которому допускаются инженеры высшей категории с десятилетиями опыта работы (или гении). Тебе нужно серьезно ебануться головушкой и помешаться на крестах + потратить на это +- 10 лет, чтобы ты на уровне продакшена писал годноту. Во всех остальных 99.9% случаев, если повезет, будешь мейнтенить бесполезное говно мамонта, написанное на крестах стандарта 98 года. Подумай трижды прежде, чем врываться. В 99% случаев оно того не стоит, особенно если ты не гик-шизик как я
Удачи и береги себя, бро.
443 1677616
>>77610
Хорошо, тогда какую альтернативу выбрать? Чтобы можно было на языке реализовать вообще всё. Ну за исключением фронтенда и ещё пары возможностей мб.
444 1677632
>>77616
Это неправильный критерий выбора. Теоретически, ты можешь на нулях и единицах реализовать все, что угодно. Но стоит ли оно того? У каждого языка программирования есть какая-то своя цель. В индустрии С++ не юзают для хай-лвл программирования, на этом языке пишут сложную кор-логику. Вместе с тем, есть языки, которые вне веба практически не используются - пыха, руби, js. И таких примеров куча. Если у тебя нет четкой цели или нет понятия какой технологический стэк ты хочешь изучать, то советую сначала разобраться в этом. Потом ты сможешь выбрать для себя подходящие языки программирования.
445 1677638
>>77616

>Ну за исключением фронтенда


Qt может компилироваться в веб ассембли, так что...
446 1677641
>>77616

> Чтобы можно было на языке реализовать вообще всё.



Вот он, максимализм. Тебе для ЧЕГО? Следует разделить два вида деятельности: зарабатывание денег и хобби. Для зарабатывания денег на плюсах тебе уже сказали. А какой-нибудь сайд-проект пилить ты можешь на чем угодно, хоть на плюсах, хоть на расте, хоть на го, хоть на хаскелле -- для этого необязательно десятки лет задрачивания стандарта плюсов.
447 1677642
>>77638
все равно, выбирать плюсы для чего-либо, связанного с вебом, это маразм. Край - бэкэнд, и то если ты прогаешь сервак, который должен выдерживать траффик где-то на уровне фейсбука. Во всех других случаях это лишний оверкилл и кровавый анальный ангст.
448 1677648
>>77632
Критерий - умение создавать сложные лоу левел структуры с нуля+писать под всё это и не только под это дело софт.
>>77638
А на лоулевеле что делать?
>>77641
Не вижу ничего плохого. Цель выше.
449 1677651
>>77648

> Цель выше.



Это не цель, а залупа. Цель -- это написать конкретную программу с определенными характеристиками.
450 1677659
>>77642

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


На правах кулстори - пишу на крестах больше пяти лет, надо было ВЕБ БЭКЕНД небольшой написать. Так вот - нашлепать на АспнетКоре было проще (с нуля, я чуть чуть шарп знаю, Асп вообще никак), чем написать это на крестах.
451 1677728
>>77651
В каком смысле не цель? Или ты из числа тех, кто при написании любой новой проги бежит читать основы языка и стандартных модулей?
452 1677784
>>77659
Ну, логично. С++ бы создан для байтоебства, равно как и С (не говорю, что это плохо, я сам тащемта байтоеб), на этих языках не зашквар только лоу-лвл софт разрабатывать, все что выше уровня сугубо системного программирования - в 98% случаев маразм и лучше выбрать другой язык.
453 1677890
На вход приезжает некоторый generic-объект, перекладывается в unique_ptr<GenericObject> и уезжает в очередь, дальше я его жизнь не контролирую
Соответственно, где-то там дальше его из очереди вынут и скастуют в нужный дочерний тип.

Проблема: начал использовать unique_ptr с custom deleter и пулом объектов, теперь, разобрав тело объекта, я не могу привести его к unique_ptr<GenericObject, Deleter<GenericObject>>, потому что у него другой, свой deleter - unique_ptr<ChildObject, Deleter<ChildObject>>

Как это можно решить?
454 1677892
>>77890
Пока что в голову пришло только использование shared вместо unique, так как в этом случае deleter будет отделён от типа
455 1678161
>>68430 (OP)
ебланы, вы че гет в прошлом треде пропустили?

>>1666666 →
456 1678266
Хочу написать программу, которая будет визуализировать столкновение одного объекта с другим. Сколько по времени это может занять, если раньше подобным не занимался? Планирую использовать openglдля отображения. Остальное писать.
457 1678295
>>77890
Deleter должен быть универсальный, иначе это отстрел ноги
458 1678341
>>78266
Месяц - два
459 1678406
>>71738

>You get the message because painting to the widget's paint device is only allowed inside the paint event. If you use it outside the paint event, there's no guarantee it will work.



https://stackoverflow.com/questions/17704597/qpainterbegin-widget-painting-can-only-begin-as-a-result-of-a-paintevent
460 1678409
>>76402

>В РФ и СНГ наверное это менее 10% всего рынка разработки будет.


Ну так в РФ и СНГ и нет ничего кроме веба считай.
461 1678734
>>78295
Я хотел в deleter'е возвращать объекты в пул (темплейтеный), поэтому хотелось бы знать тип, для которого вызывается deleter
462 1678749
>>77890
Логику удаления помещай в метод класса. А делитер (как анон выше говорил) универсальный который будет просто вызывать этот метод.
463 1678753
Ну и если делаешь пул то возможно стоит просто перегрузить операторы new и delete.
464 1678848
>>78749
Не совсем понимаю, не будет же он сам в себя в пул возвращать, пока он ещё жив, лол
465 1678851
>>78848
Понятно что он не будет. Он будет просить пул объектов принять его назад.
466 1678855
>>78851
В своём собственном методе? Каким образом?
467 1678857
>>78855
Дергать метод пула передав себя(this). У тебя как делитеры были реализованы?
468 1678859
>>78857
Объект уедет в другое место за время выполнения своего метода. Насколько это легально? А если в пуле вызовется деструктор объекта, а я всё ещё в его методе (а именно так и получится)?
469 1678870
>>78859
Куда уедет? А с деструктором да, нужно осторожно. После вызова метода пула нельзя обращаться к членам объекта. Следить за автоматическими переменными.
470 1678876
>>78870
Ну то есть в идеале после вызова метода пула вообще ничего не делать внутри метода объекта. Но всё равно выглядит жутко и нелегально, лол
471 1678880
>>78876
С другой стороны -- это хотя бы должно работать, плюс без лишнего оверхеда в виде хранения указателя на функцию
472 1678883
>>78876
>>78880
Хотя необходимость в данном случае реализовывать данный метод у каждого объекта мне не особо нравится
image.png33 Кб, 644x532
473 1678948
Почему я обязан реализацию подчеркнутого конструктора записывать прямо тут и не могу вынести в cpp файл (на скрине h)?
474 1678971
>>78948
Убери = 0 из деструкторов рофл. Чистый виртуальный деструктор у него.
475 1678975
>>78971
Стековерфлоу разрешает. Да и мне в любом случае в начале иерархии нужен абстрактный класс, других идей не нашлось.
476 1678977
>>77890
Попробуй ещё в сторону других указателей посмотреть, например boost::intrusive_ptr
477 1678978
>>78975
какая ошибка компиляции бтв?
image.png72 Кб, 1417x647
478 1678989
>>78978
Вот. Тупо ожидалось '{'. Ну и дальше видимо парсер поехал и находит ошибки на ровном месте.
479 1679000
>>78749
А как он узнает, метод какого объекта вызывать, если deleter будет универсальным? Во что кастовать? А если deleter тимплейтный, то узнает, но будет та же проблема, что и сейчас -- несовместимые указатели
chel.PNG30 Кб, 505x186
480 1679007
>>78989

> Не хватает скобочек


> Двачь что нужно этому ебучему компилятору? Пишет, что не хватает скобочек

481 1679008
>>79000
Double dispatching. Алсо, выше анон предложил оператор delete перегрузить
482 1679010
>>79007
Ну так если они есть - я не могу реализовать конструктор в другом файле.
image.png191 Кб, 1920x1039
483 1679011
>>79010
И даже так.
484 1679031
>>79010
>>79011
Ебануктий блядь, не можешь нагуглить как конструктор в cpp перенести?
Подсказка

> : Object(name);


что такое?
485 1679063
>>79031
Конструктор родительского класса, как я понимаю. И что? Почему я не могу тело конструктора производного класса в cpp перенести-то?
486 1679065
>>79063
у тебя конструктор либо в одном месте, либо в другом. Ты хочешь полконструктора в хедере, полконструктора в срршнике, так не бывает.
487 1679139
>>79011
У тебя ещё и наследование приватное
Ебанёт же
488 1679143
Ребят, тыкните меня носом в документацию libevent где речь иде о куках ихо созданиии времени жизни, потомучто я в браузере вижу что они создаются и обратно их через header могуполучить. Убей не могу найти вдокеничего об этом. Спасибо.
image.png45 Кб, 1012x533
489 1679151
Как запилить пикрелейтед контейнер? Помогите.

https://stackoverflow.com/questions/2620218/fastest-container-or-algorithm-for-unique-reusable-ids-in-c
и
https://codereview.stackexchange.com/questions/108584/container-of-objects-with-unique-ids
читал. Мне не понравились ответы, особенно использование тяжелого математического boost intervals для такой задачи. Хочу послушать вас.
490 1679153
>>79151
Офк не обязательно "запилить" с нуля, можно ссылочки на уже готовые решения/библиотеки :3

Я просто не понимаю как такое гуглить.
491 1679155
>>79153
а в чем проблема? Это похоже на flat_map
492 1679175
>>79155

> похоже на flat_map


Вряд ли. Здесь ключ это автоматический числовой индекс, который выдает сам контейнер.
493 1679176
>>79151
Да по первой ссылке этот интервал только как пара чисел используется без логики. Сделай сам.
В принципе, если самому сделать бинарное дерево свободных индексов вместо std::set, можно за счёт более тонких оптимизаций также получить выигрыш при удалении и мерже интервалов индексов. Но я сомневаюсь, что у тебя настолько нагруженная система.
494 1679181
>>79176
Хорошо, буду копать в эту сторону. Благодарю.
495 1679232
>>78409
А в каких странах есть много чего помимо веба?
В РФ и СНГ довольно большой айти рынок, как мне всегда казалось, обусловлено это большим количеством технических вузов, в которых можно бесплатно учиться.
496 1679239
>>79181
Не нужны тут никакие деревья. Складывай это всё в обычный вектор, плюс рядом храни массив доступных индексов (как стек). Insert = достать из стека индекс, потом по нему сконструировать объект, Remove = вызвать деструктор по индексу, положить индекс в стек. Если захочется итераторы докинуть, где-нибудь надо хранить ещё какое-нибудь битовое поле жив/мёртв. Я сам такое писал, пользуюсь, вещь очень полезная, непонятно, почему не является стандартной структурой данных.
497 1679252
>>79239
Нашлёпал по-быстрому proof of concept
https://gcc.godbolt.org/z/_B3qp9
По-хорошему, стандартные контейнеры надо выкинуть, памятью рулить вручную. Стек перевернуть, конструкторы/деструкторы вызывать по месту.
Bjarne-stroustrup(cropped).jpg14 Кб, 220x332
498 1679277
Сап Аноны, программирую на С++ относительно недавно и вот наконец-то дошли руки до многопоточности, уроков и etc. про это всё нашёл достаточно, но меня интересует именно многопоточность в линунксе, а там это всё реализуется насколько я знаю по другому. Посоветуйте молодому и шутливому сайты или что-то такое, где я могу вкурить в мп под линукс. С меня чай.
499 1679325
>>79277
Тебе, ебануктию, в стандарте многопоточность отвязали от ОС
500 1679329
Есть какие то преимущества многопоточности через винапи, перед стандартной либой?
501 1679356
>>79329
в винапи есть больше, чем в стандартной библиотеки. Но в среднем - тебе хватит.
502 1679369
>>79143
я все еще выхожу на связь
503 1679414
Тут есть так называемый нвидия кун. Можешь ли ты сказать о том, где сам учился? Выпускники каких универов там преобладают?
504 1679436
>>79414

> Выпускники


В макдаке они преобладают. Нормальные работодатели смотрят на опыт и умение работать с нужными им технологиями
505 1679467
>>79436
Как это отменяет его вопрос? Статистика есть статистика, а твоё мнение -- это твоё мнение.
506 1679485
Анон, debug-билд моей библиотеки очень медленный. Я выкидывал куски, проверял, как работают отдельные детали, и сильное снижение производительности дает проход по std::vector. Гугл подкинул, что в MSVC действительно крайне медленная реализация вектора и лучше брать кастомные решения. Я взял, и ничего не изменилось.
Отлаживать библиотеку просто невозможно. Она активно дергается другим приложением, и дебажный билд тормозит это приложение раз в 100. Даже всего лишь один проход.
Что делать? Есть ли смысл переписывать вектор в сишный массив? Вектор же вроде итак всего лишь обертка вокруг массива.
507 1679490
>>79485
https://docs.microsoft.com/en-us/cpp/standard-library/iterator-debug-level?view=vs-2019

Глобально нулю это задефайни в проекте.
508 1679563
аноны, помогите, я нуб. у меня есть ф-ция myFunc1 из класса MyClass1 и ф-ция myFunc из класса MyClass2, как мне передать myFunc1 в функцию myFunc2 в качестве параметра?
509 1679567
Почему пик на 28 итерации начинает выводить хуйню? Для сравнения 3 на питоне правильный
123.png62 Кб, 1298x601
510 1679588
>>79563
Один из многих способов.
511 1679594
>>79588
upd:
19-ая строчка лишняя, необязательно создавать объект класса MyClass1, сорян
512 1679613
>>79567
Минимальное значение для переменной типа LongLong: -9 223 372 036 854 775 807-1
513 1679616
>>79567
Смотреть как нубы наматываются на IEEE-754 можно вечно.

алсо, ты что на телефоне кодишь, поехавший
514 1679626
>>79567
у тебя underflow, макакен :-)
.png251 Кб, 2335x2163
515 1679684
Ебать, я тупой походу... Все делаю по гайду https://www.cs.bu.edu/teaching/cpp/writing-makefiles/ Даже дебилограмму нарисовал для себя. При попытке выполнить мейкфайл, начинает срать непонятной хуйней про какое-то множественное определение массива строк MessageException. Я понимаю суть ошибки, но я не понимаю от куда она В МОЕМ КОНТЕКСТЕ приложения. Все наглядно есть в пике.

Кстати, там еще у меня вопрос насчет codes_exception.h Не совсем понятно, нужно ли его в данном случае упоминать вообще в мейкфайле, но подозреваю, что нет, ибо от него ни один .cpp/.c файл не зависит, а значит и не нужно собирать еще один .o файл.
516 1679714
>>79684
В чем смысл делать коды эксепшенов? В этом же вроде и есть приемущества эксепшенов, что не нужно создавать 100500 кодов ошибок для всего.
517 1679721
>>79714
Коды для - идентификации, мой велосипед - для удобства вызова нужного исключения.
518 1679737
>>79684
Ты объявил глобальную переменную (MessageException) в заголовке. Её надо перенести в cpp, а в заголовке оставить только extern-ссылку на неё (если нужно).
519 1679747
>>79737
Почему тогда на enum не жалуется? И как вообще правильней будет поступать в таком случае? Как ты сказал? Или есть вариант лучше?

Пока писал, решил на обум добавить const перед string и ошибка пропала. Т.е. константы define и const <type> можно без externов и выноса в src файлы использовать? И, видимо, enum тоже является "константой" в этом смысле. Или я не правильно все предположил?
520 1679922
>>79747
Да, const тоже пойдет.

На enum не жалуется, потому что это объявление типа -- оно никак не "вытекает" из cpp-файла. Для языка нормально, что одни и те же объявления типов копипастятся в каждый cpp. Макросы define тоже действуют только на тот модуль, где они объявлены.
А вот глобальные переменные и функции экспортятся из cpp, поэтому на них линкер ругается, если находит дубликаты.
521 1679934
Анон знакомый с Qt (и ООП в плюсах), выручай

Что вот этой блядине надо? Накопал уже инструкцию, свежую 2020г степ-бай-степ для тупых долбоебов все как я люблю https://extenly.com/2020/01/29/integrating-qt-to-qml-step-by-step-beginner-guide/

Ииии..... Нихуя оно одним и тем же мне ебет мозги

Алсо, знаком с ООП в разных языках и в плюсах в принципе писал что то на классах без наследования но вот здесь уже ебала какая то, и на плюсы это даже не похоже, чисто сишная запутаная поебень.
522 1679942
>>79934
Как минимум в конструкторе надо сделать так
: QObject(*parent)
524 1679954
А игры магу делать на с++? На анрил, мне полностью язык учить или можна лишь часть?
525 1679955
>>79942
Хотя ты сделал, я не увидел.
5462523.png248 Кб, 969x1038
526 1679962
>>79942
Таааак уже интересней (или нет, хз).
Я уже такое получал с другой правда хуйней, на стаке пишут копию нельзя чего то блять там
https://stackoverflow.com/questions/1779438/error-with-qobject-subclass-and-copy-constructor-qobjectqobjectconst-qobj
Какую копию, чево блять, у нас же скелет класса в заголовочном файле типа и мы ему просто методы определяем уже в программе не?

Нихуя сука вообще не понимаю чего делаю.
527 1679964
>>79951
Пробовал но помоему оно приводит к такой же хуйне как >>79962
Тоже вызов удаленного хуй пойми че к чему
529 1680256
>>79467
Вопрос изначально тупой
Ноудискач
530 1680262
>>79490
оно тебя сожрёт нахуй
Анон, если хочешь так сделать, придется все библиотеки в проекте пересобирать с этим флагом. И всем пользователям твоей библиотеки тоже.
531 1680305
>>80262
И нихуя не сделать. Либо дебаг билды вот такие, либо адово медленные.
532 1687645
Прорамач, объясни дураку пожалуйста как создавать qm файлы и как их подрубать к проекту.
Прочитал в справочники Qt о QTranslator и ничего не понял.
Вопрос именно с созданием qm файлов.
Спасибо.
Тред утонул или удален.
Это копия, сохраненная 27 августа 2020 года.

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

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