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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
# OP 2 2491362
С++ thread #139

Сука, как же я обосрался с тегами.
3 2491377
C++ лучше чем шарп и раст вместе взятые.
4 2491380
>>491362
Переделай, его же потом хрен найдешь. Ну и рано перекатил, неканонично.
5 2491382
>>491380
Тогда похуй, пусть тонет.
6 2491385
Тут кто-нибудь пишет софт для камер, там лайв стримов? Какими технологиями пользуетесь? Хочется в этом направлении пойти работать, но даже хз что изучать
7 2491510
>>2491210 →

> Нихуя не понятно по коду, где объект, а где ссылка на него


Дерефененсинг никак тебе в этом не помогает, ты можешь это узнать только из типа
но и тебе и не нужно знать, когда ты обращаешься к объекту, находится он под ссылкой, или под указателем

> где копирование объекта, а где копирование указателя.


Опять таки никак тебе он тут не поможет и плюсы это живой пример этого

> Нельзя одновременно отстаивать идею написания читабельного кода и автодереференсинг в языке.


Тем временем
Читаемые языки: все имеют автодереференсинг и явное копирование

плюсы сюда не входят, в си хоть явно понятно когда ты что копируешь
8 2491582
Пригласили на собес, идти? Ссусь, пиздец. Кажется не справлюсь с работой.
9 2491589
>>491362
Модер пофиксил.
image.png2,6 Мб, 1736x2496
10 2491752
>>491360 (OP)
Лучший тред для лучшего языка сахара над машинным кодом.
11 2491757
А на всех собесах по плюсам ебут разворотами деревьев и прочей алгоритмической херней?
12 2491783
>>491752
Лол, я по превьюхе подумал, что у неё бейджик участника конференции.
13 2492324
>>492312 (Del)
Иди работай, незнайка хуев. Применение языка настолько обширно, что будучи сенькой, ты можешь быть слит ещё на этапе подачи резыме.

Пхи, пхи, мы сейчас ищем узкого специалиста, а у вас не так узко как нам надо.
14 2492335
>>492327 (Del)

>$2.5к на ноде в стажёрские/джуновские пару сотен


Чел, 2.5$ это 150к (мидл +/-), а где нода сейчас нужна, так никто и не вспомнит.
15 2492348
>>492340 (Del)

>нестжс


Чем глубже кроличья нора, тем сложнее из неё выбраться. Ты бы хотя бы во фронт переобулся (я не про хохлов, хотя вон Путин 195к (~3200$) всем мобилизованным обещал).
16 2492356
>>492351 (Del)
Я тебе ответил - иди работай. Сам недавно собесился - в одной конторе сделали оффер в день собеса на около 4к, в другой прислали пхи, пхи сразу после просмотра резюме.

Учить ты можешь всё что угодно и не добиться ничего. Большинство вакансий сейчас это c++14 и qt. Чтобы апнуть 4к и более нужно вовсе не с++ знать.
17 2492373
>>492351 (Del)
Если этот твой ГнездоJS для бэка, тогда дрочи многопоток, асинхронность и корутины, чтобы ты сам мог написать похожий фреймворк на c++ (очевидно под Linux и чтоб в докере деплоился). Не прыгай из угла в угол - накапливай экспертизу в уже известной тебе сфере.
18 2492486
>>492373
Если ты секретутка, точишь ноготки в ворде, тогда дрочи COM/OLE, чтобы ты сам смог написать подобный мсофис на С++ (очевидно под Linux и чтоб в докере деплоился). Не прыгай из угла в угол - накапливай экспертизу в уже известной тебе сфере.
19 2492487
>>492486
Лучшие девочки двача выбирают #Дотнеткоре (VSCode и Docker).

>в прогерство с сишки начинал вкатываться


А вот эти вот все попёрдывая кряхтят про OLE/COM/ATL/WTL , GUID, CLSID, IUknown, CoClass, marshalling и regsvr32 huita.dll.
Хоспаде, какое же говнищще это было. Даже хуже, чем нода.
20 2492490
>>492312 (Del)

>Учить Qt? Многопоток? Шаблоны?


Ну да. А еще boost и библиотеке в сфере, в которой ты будешь специализироваться.
21 2493164
Вопрос к знающим,ибо у себя в учебнике не нашел.
Создаю новый обьект класса путём = присваивания. В классе динамически выделяется память new, ну я как в школе учат в диструктор ебанул delete.
Теперь после присваивания одного обьекта другому выскакивает ошибка рантайма double free(). Ну я так понял, что диструктор два раза вызывается.
Как исправить?
22 2493165
>>493164
Код.
23 2493234
>>493168 (Del)

>зло


Нет, обычная операция.

>насколько сильный оверхед


Нулевой. Это проверка времени компиляции, а не рантайма.
24 2493300
Погуглил как писали/пишут код для ядерных ракет. Оказалось, что никаких йоба технологий там нет. На одной из ракет, чтобы не ебаться с кодом и решить проблему переполнения стека, просто посчитали время полета и напаяли столько физической памяти, чтобы к концу полета стек заполнял практически всю память.
Ебало мое представили?
sage 25 2493348
>>493327 (Del)
Скорейшей смерти твоему коту и твоей шлюхе-мамаше.
26 2493383
>>493300
Я давно заметил, что всякой научной хуйнёй с программированием занимаются в основном те, кто больше математики, чем программисты. Они сначала пишут на бумажке математическое решение, а потом переводят его в лютый говнокод, выглядящий как лаба первокурсника с проёбанным форматированием, копипастой, однобуквенными переменными и без комментов, но в масштабе. У датасаентистов та же болезнь.
27 2493384
>>493165
Кажется сам нашел в чем проблема.

Вопрос только появился один.
Я же правильно понимаю, что компилятор может пропустить мой конструктор присваивания(решит что хуйня он не оптимальная)
и запустить конструктор копирования ?
28 2493386
>>493327 (Del)
Блять он снова сейчас засрёт все доски....
29 2493388
>>493386
Чем меньше ему донатят - тем чаще он срёт. В последнее время срёт не переставая, видать анон поумнел.
30 2493391
>>493327 (Del)
Ты нахуя кота на авито продаешь? Когда он уже умрет?
31 2493399
>>493300
Что за книга?
изображение.png11 Кб, 527x178
32 2493456
Вопрос о специализации шаблона функции

Вот у меня есть шаблон функций

И его специализации под разные типы (нужно так как в зависимости от типа там разное поведение)

А как-то можно узнать специализиованный тип чтобы его не писать внутри функции?

То есть сейчас я там внутри пишу Test1 t. Но это дублирование, ведь я же указал этот тип в Foo<Test1>. Короче, из-за этого ошибки, когда я после копипаста тела забывают поменять тип

Хотелось бы как-то так:
T t1;

Пока что спасся через using
using Test1 T;
Чтобы внутри тела не писать сто раз этот тип, но есть какое-то другое решение?
33 2493468
Схуяли запрещены частичные специализации функций?
34 2493497
решал тут cppquiz и не понял один момент.. даже с подсказками.

int y(int &) { return 1; }
int y(int &&) { return 2; }
template <class T> int f(T &&x) { return y(x); }

int i = 10;
std::cout << f(i) << f(20);

На выходе получаю 11, чому шаблон итерпретирует вызов f(20) как вызов метода с аргументом lvalue ссылки?
35 2493512
>>493300

>и напаяли столько физической памяти


Байка. Столько памяти на ядерных ракетах не будет, там древние технологии.
36 2493560
>>493497
Потому что после того как ты попал в f, T &&x - уже становится l_value
Чтобы оно стало r_value ты должен его смувать снова, то есть
template <class T> int f(T &&x) { return y(std::move(x)); } // выводит 22
Но так как у тебя T &&x - universal referense, чтобы мувалось только r_value тебе надо использовать std::forward()
template <class T> int f(T &&x) { return y(std::forward<T>(x)); } // выводит 12
37 2493561
>>491360 (OP)
Привет, погромисты.
Есть один опенсорс на c++ и qt. Хочу добавить в него свой функционал (типа эдит-бокса в котором пишут +тег и -тег, вместо тыканья в чек-боксы, как реализовано сейчас).
Я не программист, но и не совсем нуб. Начал читать Липпмана введение С++. Каковы мои шансы? Куда копать, чтоб реализовать эту штуку?
38 2493592
>>493561
Пробуй сначала собрать проект. Если не получится, шансов ноль.
39 2493893
>>493560
Понял, спасибо!
изображение.png73 Кб, 518x619
40 2494240
Аноны, поясните за condition_variable
Вот пример с двумя тредами.

В 14 строке поток1 оповещает поток2 и происходит разблокировка мьютекса.

Затем в 19 строчке мьютекс лочится в потоке2.
И в wait происходит проверка на "случайное пробуждение".
И если лямбда вернёт false, то мьютекс разлочится, поток снова уснёт.
Если true, мьютекс залочится (точнее, по идее, состояние мьютекса меняться не будет, он ведь был залочен до wait) и идёт дальнейшее выполнение с выводов в консоль.

Если бы в данном примере было 3 потока, то при notify_one выполнился бы какой-то случайный из них (2 или 3)?
А если notify_all, то как? Последовательно 2, а потом 3?

Вообще не очень понятно зачем тут cv, одного мьютекса бы просто хватило?
41 2494252
>>493468
Скорее всего из-за совместимости с сисечкой.
42 2494256
>>491360 (OP)
Как корутину из C++20 разместить на стеке без new?
43 2494258
>>491360 (OP)
Есть ли литература по современной чистой няшной сишке стандарта C17? Или, после появления плюсов, C == C89?
44 2494331
>>494258
Туда 5 фич добавили, зачем тебе отдельная книга по C17? Такую впрочем можно нагуглить "C23 draft"
45 2494396
>>494240

>то при notify_one выполнился бы какой-то случайный


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

>при notify_all


Выполнятся все. Порядок случайный и зависит от того, в какой последовательности они получат общий mutex m (хотя могут и на разных мьютексах сидеть, тогда вообще параллельно).

>зачем тут cv, одного мьютекса бы просто хватило?


Если убрать cv, то нужен цикл, который постоянно крутится и захватывает mutex + проверяет codition - это кушает процессорное время. А так он спит и ничего не кушает.
46 2494491
>>494396

>Если убрать cv, то нужен цикл, который постоянно крутится и захватывает mutex + проверяет codition - это кушает процессорное время. А так он спит и ничего не кушает.



А разве это не похоже на такую ситуацию: один поток записал данные в структуру данных, а второй хочет прочитать?
И там и там для защиты используется мьютекс.
47 2494522
>>494491
Ну так читающий поток может запросить данные ещё до того как пишущий вообще запустился. Данных нет и неизвестно когда будут. Что ему делать? Держать mutex он не может, иначе записать нельзя, продолжать работу без данных тоже не может. Только крутиться в цикле и ждать данные? периодически хватая mutex.
48 2494527
>>494522
Ну теперь вроде стало понятнее, ключевое тут это некое условие в wait.
А как это работает если внутри wait будет false, то дальше исполнение кода не пойдёт? Т.е в том примере выше на 20 строке поток прервётся и будет выполняться другой?
49 2494541
>>494527
Когда поток получает сигнал от ОС о пробуждении он сначала захватывает mutex, потом под ним проверяет условие. Если true, то выполняется код после wait (потом нужно mutex разлочить руками m.unlock()). Если false, то код после не выполняется, mutex отпускается и поток засыпает до следующего сигнала от ОС. С новым сигналом всё повторяется заново.

Ну то есть это бесконечное ожидание в точке wait до тех пор, пока условие не true.
изображение.png101 Кб, 768x746
50 2494549
>>494541
Спасибо, анон

Вот в этом примере вывод был такой:
Waiting...
Notifying falsely...
Notifying true change...
...finished waiting; i == 1

Я сначала подумал из-за того тред2 спит 200мс, то выполнился тред1, но после notify_one в 25 строчке он не вызвался снова.
Т.е. не было "Waiting..." ещё раз.
Какая тут могла быть логика исполнения?
51 2494579
>>494549
Первый поток запускается, пишет "Waiting...", потом ждёт в cv.wait(), затем выполняет оставшийся код (пишет "finished waiting") и завершается. В 15 строчку он уже в принципе не может вернуться.
52 2494581
>>494549
>>494579
Ну то есть wait это стояние на месте, а не возврат к 14 строчке.
53 2494583
>>494579

>затем выполняет оставшийся код (пишет "finished waiting") и завершается.



Как? Если в этот момент i равен нулю
54 2494595
>>494583
В 29 строчке стоит i = 1, а в 34 notify_one(). После выполнения 34 поток 1 получает сигнал к пробуждению. Он видит, что i == 1 и выполняет оставшиеся строки.
55 2494599
>>494595
А в 25 было фейковое пробуждение. Почему после него не было ничего сделано в потоке1?
56 2494604
>>494331

>Туда 5 фич добавили


Из там несколько десятков основных
57 2494610
>>494599
А что он должен делать, если данные не готовы (условие готовности лямбда == false)?

Поток 1
- проснулся
- захватил mutex
- выполнил лямбду
- заснул
58 2494614
>>494610
Запустился поток1
Чекнул wait, условие не выполнилось, заснул.
Поток2 сделал notify_one
Поток1 чекнул wait, условие не выполнилось, заснул.
Дальше продолжился выполняться поток2
Там снова notify
Поток1 чекнул wait, условие выполнилось, выполняет код дальше.

Не так?
59 2494626
>>494614
Да, всё так.
60 2494630
>>494626
Тогда почему вывод иной?
61 2494645
>>494630
Какой иной ( >>494549 )?

Запустился поток1

>Waiting...


Поток2 сделал notify_one

>Notifying falsely...


Там снова notify

>Notifying true change...


Поток1 чекнул wait, условие выполнилось, выполняет код дальше.

>...finished waiting; i == 1

62 2494647
>>494645

>Поток2 сделал notify_one


>>Notifying falsely...


Меня этот момент и интересует.
Почему после первого notify ничего не произошло?
63 2494654
>>494647
Потому что так работает wait - если false, то ничего не делай и жди дальше.
64 2494656
>>494654

>то ничего не делай и жди дальше.


Но там до wait, вывод в консоль.
Notify два раза, а Waiting... только один
65 2494684
>>494656
Каждый раз, когда во 2 потоке происходит notify, поток 1 пытается продолжить выполнение с 16 строки и до конца. А "Waiting..." у тебя стоит ранее на 15 строка. Ты хоть 100 раз кинь notify, но в 15 строку не попадёшь. Только один раз при старте потока 1.
66 2494691
>>494684
Во, теперь понятнее стало.
Никак не привыкну к параллелизму
67 2494692
>>494331
>>494604
Тогда что прочитать после (или вместо) классического The C programming language, что бы выучить современную сишку, не затонув в дебрях спецификаций?

> C23 draft


Сложна, я же только вкатываюсь
68 2494693
>>494692
Почитай авторов языка, там вроде C99
А есть есть книжка про С11, дейтел вроде
В целом, этого достаточно
69 2494696
>>494258
Сишка идёт нахуй.

> после появления плюсов, C == C89


Да.
70 2494706
С > С++
71 2494708
72 2494736
Аноны, делаю 3д редактор для ландшафта.
Встала задача: как хранить пользовательские настройки?

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

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

В общем, как сделать класс словаря с классным интерфейсом?
73 2494748
>>494736
Очевидно, что хранить надо в реестре Windows.
74 2494772
images.jpg5 Кб, 208x242
75 2495066
>>494256
Никак.
76 2495082
>>491582
Сходил, вроде норм прошло. Посмотрим, что ответят
77 2495170
Получается при выходе из скоупа вызываются деструкторы всех объектов, созданных в скоупе. А сишка получается быстрее, потому что никаких деструкторов не вызывает, а сразу берет из регистра адрес начала стека верхнего скоупа и прыгает туда.
78 2495189
>>494692
Читай K&R потом C23 draft, он не сложный, с чего ты взял? Ну если и будут проблемы, загугли статьи по какой то фиче.
sage 79 2495453
>>495170

> Получается при выходе из скоупа вызываются деструкторы всех объектов, созданных в скоупе.


Только объектов, созданных на стеке.

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


А в сишке ты сначала вызываешь вручную десяток free(), close(), release(), finalize(), destroy() и получаешь ровно те же тормоза. Забыл что-то вызвать - получаешь утечку ресурсов.
80 2495528
>>495453
Ну вот на стеке создается объект, и не важно есть в нем указатели на внешнюю память или нет, в любом случае будет вызван деструктор, или компилятор все это оптимизирует?
81 2495540
>>495528
Оптимизация тут не при чём. Гарантируется, что если ты создал объект в стеке текущего скоупа, то при уничтожении скоупа будет вызван деструктор и память освободится. Если у тебя объектом является сам указатель, то он будет уничтожен, а данные, на которые он указывает, так и останутся, если у тебя не unique_ptr или другой умный указатель (а они уничтожают объекты логикой в своих деструкторах).
82 2495956
>>491360 (OP)
Аноны, как подключить сторонюю библиотеку к моему проекту?
Вот я скачал архив, распаковал его, закинул в папку с моим helloworld.cpp. Написал #include <huipizda.h>, а оно всё равно не билдится почему то.
83 2495958
>>495956

> Написал #include <huipizda.h>


Это не достаточно, надо указать компилятору в include path пусть к папке с хедерами, в в library path - путь к папке с DLL-ками.
84 2496052
Есть стандартный алгоритм поиска одинаковых последовательностей байтов? Например 03 5E 7F 99 31 42 03 5E 7F. Чтобы находил произвольные последовательности, а не известные заранее.
85 2496062
>>496052
Как-то очень расплывчато.
Допустим можно отсортировать массив и получить в нём последовательности повторяющихся элементов (запомнив их старые позиции). Таким образом мы получили повторы из 1 элемента. Далее смотрим каждую такую группу в отдельности - сортируем её по элементу из позиции, следующей за исходным - получаем повторы по 2. И так далее редуцируем группы, добавляя по 1 элементу в хвост.
86 2496077
>>496062
Я могу и сам написать алгоритм, но это же время на отладку. Вопрос есть ли он в стандартных либах или бусте где то.
87 2496301
Вакансий нет, что вы тут делаете? Зачем?
88 2496303
>>496301
Есть.
89 2496756
>>496301
Че? Нахер мне вакансии, Я всегда для себя программирую.
90 2496807
>>496301
Естественно нет, потому что бизьнесу нужно унылое говно вроде однотипных сикуэл запросов и красивых формочек ввода.
91 2496849
Аноны, есть один проект на гитхабе, хочется туда запулить изменения (помочь комунити так сказать) в виде замены функционала буста на то, что есть в языке.
Это не полностью избавит проект от буста, но немного уменьшит его в коде.
Это как-то может положительно сказаться, например, на сборке проекта?
92 2496889
>>496849
А ты интересовался, по каким причинам в проекте используют буст? Там тоже не дураки сидят и вполне могли решить, что в бусте определённые алгоритмы реализованы эффективнее, чем в стандартной библиотеке. Да на сборке проекта скажется положительно, но легко может сказаться отрицательно на функциональности.
93 2496900
>>496889
Там несколько классов из 17 стандарта используется.
Разработка идёт под шиндой, видимо, когда их добавили студия не поддерживала полностью 17 стандарт либо разработчик работал на старой версии.
94 2496961
>>496849
Ты чо совсем ебнутый?
95 2496996
>>496900
Работает - не трогай!
96 2497004
Жабодебилы, чем так плох HotReload по сравнению со ЩВИТЫМ JVM® HOTSWAP™®©. Просто разобраться хочицца.
image.png127 Кб, 300x252
97 2497010
98 2497014
Почему бы вам всем не перейти писать код на жабу? У нас есть виртуальная машина и ООП.
99 2497029
>>497014
Толсто, писать на джаве сейчас это как писать на c++ 98
100 2497058
И так господа. Надо переползать с вижуал студии не что-то другое. Вопрос - на что? В студии нравилось две вещи - не надо особо ебаться с системой сборки и самое главное - удобный отладчик.
Если с системой сборки ещё можно играться (новые заголовки добавляем не часто) То вот с удобный отладчик необходим.
101 2497062
>>497058

>Вопрос - на что?


nvim/emacs + gcc/clang + cmake/mason + gdb/lldb
>То вот с удобный отладчик необходим.
GDB
102 2497066
>>497058

> Надо переползать с вижуал студии не что-то другое.


Не надо.
103 2497068
Чем отличается с++ и visual c++
104 2497070
Там отец эпичное видео записал
https://www.youtube.com/watch?v=kZCPURMH744
105 2497155
>>497068
Первое язык, второе программа
106 2497196
>>497155
Под вторым иногда подразумевают Managed C++ или COM. Будем надеяться на лучшее.
107 2497275
Хочу попробовать перекатиться в плюсы, какие вещи можно поделать на плюсах на маке для ознакомления и тренировки?
108 2497279
>>497275

>какие вещи можно поделать на плюсах на маке для ознакомления и тренировки?


Такие же как и на других ЯП? Здесь ты ограничен только фантазией и своими ресурсами.
109 2497304
>>497058
qt creator + cmake
110 2497309
>>497279
ну типа фронт пилить на плюсах - идиотизм (мб разве только пробовать свой движок браузера написать, но это наверное слишком сильный размах)
мобилки тоже лесом
стандартный бек с крудами тоже мимо

я хотел мб на анриале попробовать пописать, но на обычном м1 производительность компилируемых демок страдает + по отзывам анриал и юнити (хотя это уже шарп) не оч кайфово идут под силиконом

вот и встал вопрос - а что остается. Я подозреваю есть два пути - либо делать десктопное ПО вместо свифта использовать плюсы,
либо как писал выше пробовать в свои реализации движков и типа такого

поэтому и спросил какие есть варианты, поправьте если где-то проебался
sage 111 2497315
>>497309
Если хотел с анрилом побаловаться, то попробуй написать 3д игру на своем движке.
112 2497360
>>497058
Vs code.
1640584967409.jpg131 Кб, 598x598
113 2497363
>>496889

>Там тоже не дураки сидят


>Разработка идёт под шиндой

114 2497366
>>497309

>фронт пилить на плюсах - идиотизм


Сейчас как легко для такого, есть emscripten, есть wasm, для бэкенда тоже пишут CMSки, форумы.
115 2497377
>>497363
Проект старый, ему уже 10+ лет точно
116 2497457
Как изучать вашу стандартную библиотеку?
Я внезапно столкнулся с тем, что для unordered_set в библиотеке нет простейших операций типа пересечения и объединения, а для set они выглядят пиздец уродливо. Я сам питонист. Так вот, я чувствую, что не понимаю идеи, которая за всем этим стоит, с пониманием которой все эти контейнеры-итераторы станут сразу простыми и очевидными, и можно будет не лазить на cppreference.
117 2497470
>>497457
Тут дело в уебанском названии. unordered_xxx это не xxx. uordered_xxx контейнеры это хэш таблицы hash_xxx.

Set или map внутри это бинарные сбалансированные деревья поиска (поиск, вставка элемента делается за O(logN))
https://ru.wikipedia.org/wiki/%D0%94%D0%B2%D0%BE%D0%B8%D1%87%D0%BD%D0%BE%D0%B5_%D0%B4%D0%B5%D1%80%D0%B5%D0%B2%D0%BE_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0

Unordered_set это хэш таблица (поиск, вставка элемента делается за константу O(1)).
https://ru.wikipedia.org/wiki/%D0%A5%D0%B5%D1%88-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0
118 2497478
>>497309

>ну типа фронт пилить на плюсах - идиотизм


У фигмы фронт на плюсах лол.
119 2497481
>>497309

>я хотел мб на анриале попробовать пописать


Не советую, там очень больно с плюсами работать к тому же там свой мирок, где все делается не так как вне анрила.
120 2497552
>>497058

>господа


я - бич
бичара
так чтож ничего не буду тебе отвечать
121 2497637
А нах вообще нужны умные указатели? Это медленная хуйня, покажите мне где без них не обойтись.
122 2497638
А нах вообще нужны умные указатели? Это медленная хуйня, покажите мне где без них не обойтись.
123 2497647
>>497637

> Это медленная хуйня


Нет.
124 2497652
>>497637
Юник поинтеры медленнее только при создании и удалении.
125 2497656
>>497637

>А нах вообще нужны умные указатели?


Чтобы автоматизировать мемори менеджмент.

>Это медленная хуйня


Смотря какие.

>покажите мне где без них не обойтись


В многопоточке, например.
126 2497669
>>497637
Можно обойтись, если ты точно знаешь время жизни объекта.
127 2497802
>>497656

>В многопоточке


Это я и сам знаю.
А кроме как в многопоточке еще где?
128 2497805
>>497669
Ну вот допустим есть класс, в котором есть обычный указатель.
Я выделяю new в конструкторе и удаляю delete в деструкторе. В чем сука смысл? Компилятор сам определяет где вставить вызов деструктора, а иначе бы приходилось его вручную вызывать.
129 2497953
>>497805
Потому что если ты делаешь не laba2 в вакууме, то ты этот указатель скорее всего куда-то передаешь, например в другую функцию или класс. А там этот указатель могут сохранить в переменную или поле. И вот ты у себя уже сделал delete, а тот код продолжает обращаться к удаленному месту (use after free) или вообще лезет теперь в память чужого объекта. Если ты пишешь web-браузер, теперь хакеры могут воровать так кредитки и пароли. Ты можешь сказать - ПРОСТО не обращайтесь к уже удаленному. Так вот механизм подсчета ссылок это и есть простейший способ контролировать, а не надеяться что кто-то правильно понял архитектуру.
image.png93 Кб, 788x805
130 2497971
помогите пожалуйста, делаю лабу . Я сам джаваскриптир, и охеуваю от ваших приколов с с++
131 2497985
>>497971
а все я разобрался. С++ запутанный ужас
132 2497987
>>497971
А там ведь даже подчеркнуто.
133 2498215
>>495956
>>495958
Разработка на винде би лайк
134 2498217
Челиславы, я знаю вы тут шарите за модные технологии, на чем там пилите гуятину для юниксов? Не обязательно си-си плюс-плюс
135 2498223
>>498217
На HTML, CSS и JS.
136 2498225
>>498215
Так гордишься тем, что установил убунту/арч и теперь нитакой как все? Промолчать же ты не смог.
137 2498273
Есть функция
template< typename T1, typename T2 >
auto foo(T1 a, T2 b)
{
return a + b;
}

Какой будет тип auto, если вызвать foo<int, double>? int или double?
139 2498325
Спрошу здесь ещё. Можно ли вообще через MessageBox на C++ выводить переменные, а не простой текст? Пытаюсь вывести массив - вылезает E0304.
140 2498328
>>498325
int hui = 1;
std::string huistr = std::to_string(hui);
MessageBoxA(NULL, huistr.c_str(), "HUI", MB_OK);
image2,6 Мб, 3075x1242
141 2498340
>>498328
Это в CLR (WindowsForms), если что.
142 2498344
>>498340
Это не кресты, урод.
143 2498346
>>498344
А что это? Не трясись.
image2,7 Мб, 2795x1066
144 2498348
>>498340
>>498325
Так тоже не хочет.
145 2498398
>>498225
Микрочел, я вовсе не хотел задеть твои хрупкие пендузятные чувства, чего ты так нагрелся?
Ты наверное вообще сейчас охренеешь когда я тебе скажу что я и виндой дома пользуюсь, и юниксами для мака и на работе. Для каждой задачи - наиболее удобный инструмент. Человек прямоходящий просто сделал замечание, вам, ползающим на спине тараканам, что вообще то нормальные люди этим не занимаются. Как минимум нужно было задуматься: а вдруг он прав? Но да, промолчать ты не смог
146 2498451
>>497802

>Это я и сам знаю.


Нихуя не знаешь, иначе не высирал бы тупорылые вопросы.

>А кроме как в многопоточке еще где?


Помогаю загуглить: https://stackoverflow.com/questions/48834271/shared-ptr-real-life-use-cases
147 2498452
>>498346
Это мертвое экспериментальное говно C++/CLI, форк плюсов от M$, который уже не плюсы по факту, но ещё не стал шарпом.
148 2498803
Салют!

Вопрос: В файле с расширением .h определяется класс, который уже был определён раньше, в других хедерах. Зачем это делается? Теперь , когда я пытаюсь получить ссылочный доступ(->) к функциям экземпляра класса, я получаю в еблет "member access into incomplete type 'blabla' ".
149 2499076
Неявная конверсия bool в int паливо или ок?
150 2499089
>>498803
Ты точно ничего не путаешь? Картинки хоть покажи.

> файле с расширением .h определяется класс


Это порочная практика, в .h пишут только объявления, но не определения (если речь не о шаблонном классе).

>который уже был определён раньше, в других хедерах


Когда программа состоит из более, чем одного файла, нет таких понятий как "раньше/позже", есть область видимости (scope).
Компилятор компилировает в ему одному известном порядке. Не стоит делать никаких предположений определен класс в некоторый момент компиляции или пока еще нет.

>member access into incomplete type 'blabla'


incomplete type это когда имя класса (объявление) компилятор видит, а определения нет.
151 2499100
Что в голове у тех, кто экономит память? Ну вот сделали вектор бул хитровыебанным, чтобы сэкономить на спичках, и что в итоге? Никто им не пользуется и Стив Майерс говорит, чтоб это говно не трогали.

ну
152 2499123
мда, тредик умер нахуй
видимо, все, работа на с++ окончательно загнулась в россии
153 2499133
>>499100
в 90е когда проектировали stl, у богатого игрового пека было 16 мбайт оперативы, но было много компов где оперативы было меньше, windows 95 спокойно работала в системах с 8 мбайт оперативы
154 2499147
>>499100
Это общепризнанный фейл крестов. Отменить боятся, как обычно.
155 2499152
>>499147
А по моему это просто мода и ничего больше.

Несколько лет назад все только и говорили:
не с чего ходить - ходи с бубей вектор;
семь раз отмерь, один вектор;
вектор рубль бережет;
в Тулу со своим вектором не ездят;
и тд и тп.
156 2499224
Изобретать свои единственные и неповторимые велоэксепшны или не ебать мозг и просто отпочковаться от std::exception?
157 2499227
>>499224
Нет. Правильный ответ -fno-exceptions
158 2499231
>>499227
страуструпу пришлось ввести в язык механизм исключений потому что иначе никак было не вернуть ошибку из конструкторов и перегруженых операторов
отказ от использования исключений в создаваемой библиотеке ведет к некрасивым архитектурным решениям, в частности приходиться использовать подходы двойной инициализации объекта класса, приходиться отказываться от перегрузки операторов заменяя их аналогичными по функционалу функциями-членами
поэтому не стоит быть столь категоричным
да, в некоторых проектах приходиться по некоторым причинам отказываться от исключений, но во многих проектах можно их прекрасно использовать, делая код гораздо лаконичней, компактней и красивей
159 2499236
>>499231

> двойной инициализации объекта класса


Нормальное решение, ничего некрасивого.
А перегрузка ухудшает читаемость.
160 2499280
Господа, у меня вопрос.

Предположим у меня есть переменная

uint16_t size = 65535;

Какого типа будет выражение size + 1 ?

Не вызовет ли проблем выделение памяти таким образом

char* ptr = new char[size + 1]; ?

Я попробовал, вроде памяти выделяется сколько надо и всё работает, но хотелось бы полной ясности.
161 2499282
>>499089

>


>


>> файле с расширением .h определяется класс


>Это порочная практика, в .h пишут только объявления, но не определения (если речь не о шаблонном классе).


>


>>который уже был определён раньше, в других хедерах


>Когда программа состоит из более, чем одного файла, нет таких понятий как "раньше/позже", есть область видимости (scope).


>Компилятор компилировает в ему одному известном порядке. Не стоит делать никаких предположений определен класс в некоторый момент компиляции или пока еще нет.


https://apc.u-paris.fr/~franco/g4doxy/html/G4LivermorePhotoElectricModel_8hh-source.html
162 2499287
>>499280
Если int 16 бит, то unsigned, результат 0.
Если 17, то int, результат наибольшее отрицательное или еще что.
Иначе int == 65536.
163 2499288
>>499287
То есть это зависит от настроек компилятора? и выражение size + 1 имеет тип int?
164 2499292
>>499282
46 - 48 строки
165 2499423
>>499288
То есть зависит от компьютера. И вообще, переполнение целого в плюсах это IB.
type.jpg59 Кб, 793x253
166 2499450
>>499423
>>499287
Вроде понял, если в данной среде выполнения int 4-байтовый, то литерал "1" будет 4-байтовый int, выражение size + 1 тоже 4-байтовый int, 65536 в него помещается
167 2499454
>>499292
TL_DR: чтобы пофиксить твою ошибку, в том файле, где выстреливается ошибка, нужно прописать #include с определениями этих классов. Названия заголовков из справочника библиотеки узнаешь.

46-48 строки это предварительное объявление, но не определение.
Объявление делает видимым только имя класса, под ним можно объявлять указатель и/или ссылку на такой класс, все остальное компилятору неизвестно, ни члены класса, ни его размер, только имя. incomplete type вобщем.

>>498803

>Зачем это делается?


forward declaration
Объявление можно писать сколько угодно раз, а определение должно быть только одно.
К примеру, когда два класса должны ссылаться друг на друга, ты не можешь начать сразу с определения одного из классов, потому что не будет видим второй. Чтобы разорвать этот порочный круг, делают предварительное объявление.
Еще бывает, что делают forward declaration вместо включения заголовка с определением просто чтобы пошустрее собиралась программа.
168 2499465
>>499450
а литерал "1l" минимум 32-битный по стандарту
chezahui.png27 Кб, 821x532
169 2499658
Может я немного не по адресу, но помогите пожалуйста, я уже к хуям сгорел, почему С=7??? Я тупой?
170 2499674
>>499658
i =3

в функции x
i = i + 2 // i равно 5
a = i + 2 // a равно 7
возвращаем a, то есть 7 c = 7
171 2499679
>>499674
Спасибо анончик,я только вкатываюсь, слезами залил всю клаву. Добра тебе
172 2499682
>>499679
Я только не пойму, чему ещё могло быть равно c? Какого значения ты ожидал?
173 2499685
>>499682
Я два часа смотрел на return и не видел его
пиздец каракатица 174 2499851
я вахуе что тут пишут , учить буст, вы ебанутые? Буст устарел, мало того он тяжелый, и медленней чем кастом msvc функи , вы тут рофлите или про дело говорите ?
175 2499862
>>499851
В вакухах требуют буст, значит похуй, надо учит.
176 2499872
Сап аноны. Допустим, у меня в классе должен лежать контейнер с унаследованными объектами (много классов а-ля DerivedA, DerivedB, DerivedC наследуются от общего Base).
И при этом должна быть возможность получить из класса "глубокую" копию этого контейнера методом а-ля get_container().

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

Хранить в контейнере всякие unique_ptr и прикрутить к хранимым объектам специальную функцию копирования и при запросе get_container() тупо через неё всё копировать в возвращаемый контейнер?
177 2499873
>>499851

>msvc


Сразу нахуй.
178 2499910
>>499872

> И при этом должна быть возможность получить из класса "глубокую" копию этого контейнера методом а-ля get_container()


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


Может я тебя неправильно понял, но это ведь как раз то, что тебе нужно, нет?
179 2499926
>>499910

>Может я тебя неправильно понял, но это ведь как раз то, что тебе нужно, нет?


Ну да, только тут мне нужно будет самому запариться и написать соответствующий код.

А может есть какой-нибудь класс, который для поинтеров обеспечивает поведение, аналогичное обычным значениям (т.е. удаление объекта при уничтожении поинтера и автоматическое копирование объекта, на который поинтер указывает при передаче поинтера по значению). Т.е. чтобы при возврате контейнера поинтеров, по факту оно само всё за меня сделало, скопировав не только поинтеры, но и объекты, на которые они указывают.
180 2499944
>>499926
Может, вот так как-нибудь. Но я не знаю, я быдлокодер.
https://pastebin.com/pAnnC405
181 2499976
>>499944
Не всё так просто, у меня же хранятся разные наследники в виде указателей на базовый класс. Соответственно, надо разруливать, чтобы делалась копия наследника, а не базового класса.
Пока видел вариант сделать что-то типа виртуального метода copy() в базовом классе и его переопределять в наследниках. И при возврате контейнера пройтись по всем элементам и его вызвать.

А тип элемента да, какой-нибудь unique_ptr<Base> ебануть, чтобы он хотя бы сам удалял соответсвующий объект при удалении элемента.
182 2499992
>>499926

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


Сборщик мусора такой класс называется.
183 2499995
Я люблю навернуть говнеца
184 2499996
>>499872
Ну начнём с того как ты собственно хранишь эти унаследованные классы, если ты хочешь из хранить в одном контейнере - значит ты будешь хранить указатели на них, пускай будут умные даже - unique ptr. Собственно хранятся они в единственном экземпляре.
Далее тебе надо сделать deep copy. Здесь тебе грубо говоря надо побитово скопировать всё, на что ссылается содержимое твоего контецнера. Сделать это иначе как созданием отдельного контецнера, и выделения памяти под каждый класс заного так то не возможно (опять же - мы хотим deep copy). Соответственно вся ебля будет в основном с копирующем конструктором и одновременно с выделением памяти в куче. Впрочем пока писал дал ответ.
Крч, в deep_copy код должен делать что-то такое:
- создать вектор с капасити как у текущего
vec<uptr<base> result;
result.reserve(m_elements.size())
- далее в циклe
for const auto& elem: m_elements
result.emplace_back (make_unique<dervA|B|C>(*elem) )
На сколько помню тут не надо мува отдельного, т.к. тут будет r val ref типа объект без имени.

return result

Пишу ночью поэтому кое что могу прокбать. Например не помню сработает ли здесь норми named copy elision или нет. Вроде должно.

Если кто-то знает более красивый способ поделитесь. Но этот самый простой.
185 2500002
>>499996
Только сейчас допер что у тебя тип то базовый хранится и простой copy ctor не сработает. Тогда наверное да, придётся пилить виртуальный clone который возвращает uptr на копию класса.

result.emplace_back (elm->clone)

Забавно, внезапно паттерн этот пригодился в плюсах.

uptr<base> clone () const {
return make_unique<CurrType> (*this) ;
}

Если юзать rtii то можно в одну общую функцию ебануть.

Вообще тут можно всякого по напридумывать с шаблонами, макросами и метопрограмированием.
Хотя clone самый простой вариант.

....
Прикольно, что где-то хоть с натяжкой в плюсах в теории надо юзать такой паттерн.
186 2500005
>>493384
A a ;

A ac1{a} //copy ctor
A ac2=a //copy ctor
ac1 = ac2 //operator =
187 2500007
>>493456
Ну а тогда в чем смысл специализации?
Ты можешь сделать так: определённому набору типов соотв. какой-то код, это делается через sfinae или сейчас через concepts ( cpp20)
188 2500027
>>499872
тебе нужно реализовать полиморфное копирование для иерархии классов, указатели на объекты которого будешь хранить в этом контейнере, если тебе требуется глубокое копирование контейнера
для этого есть различные способы, начиная с примитивного через .clone и кончая различными вариантами фабрик классов
альтернативный вариант - это использовать специализированный контейнер для хранения полиморфных объектов, в бусте есть такие например
189 2500068
Котаны, какие попенсорс и не очень анализаторы используете?
190 2500103
>>500002
>>500027
Эх. Ладно, пока попробую через .clone, а там посмотрим, как оно себя покажет.

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


У меня что сервис, что клиенты на Qt, поэтому стараюсь обходиться по минимуму с точки зрения подключения ещё более других либ.
191 2500108
>>500068
Clang, он в кют Креатор встроен. Показывает все ерроры и варнинги по мере набора текста, удобно.
192 2500130
>>500108
Я более специализированные вещи имел ввиду. Например, valgrind, pvs-studio и т.д.
193 2500187
>>500068
PVS.
Но я хоббист-наотъебист, у меня нет планов по вкату в индустрию.
194 2500188
>>500068
Анализатор в Intellij Idea.
195 2500189
Подскажите, есть ли в стандарте гарантии, что какие-то операции, типа присваивания переменной встроенного типа, не могут быть прерваны другим потоком? Если да, то к каким операциям это относится, а если нет, то как тогда защищаться? Эти гарантии есть только у методов класса мьютекс?
196 2500191
>>500188
Уходи.
197 2500197
>>500191
Пошли со мной в дивный жаба мир.
198 2500210
>>500189
Попытался реализовать простой семафор:

class Routine {
public:
void operator() () {
while (!sem);
sem = 0;

cout << this << ' ';
for (int i = 1; i <= 5; ++i)
cout << i;
cout << '\n';

sem = 1;
}
private:
static volatile int sem;
};

volatile int Routine::sem = 1;

Но получил не то, что ожидал:

>0x56526a446008 12345


>0x56526a4461580x56526a445eb8 123145


>0x56526a4462a8 12345


>2345



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

> while (!sem);


и

> sem = 0;



Возникает вопрос, а возможно ли в принципе написать свой собственный примитив синхронизации? Получается, std::mutex и std::thread не независимы друг от друга, и как-то согласуются между собой?
198 2500210
>>500189
Попытался реализовать простой семафор:

class Routine {
public:
void operator() () {
while (!sem);
sem = 0;

cout << this << ' ';
for (int i = 1; i <= 5; ++i)
cout << i;
cout << '\n';

sem = 1;
}
private:
static volatile int sem;
};

volatile int Routine::sem = 1;

Но получил не то, что ожидал:

>0x56526a446008 12345


>0x56526a4461580x56526a445eb8 123145


>0x56526a4462a8 12345


>2345



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

> while (!sem);


и

> sem = 0;



Возникает вопрос, а возможно ли в принципе написать свой собственный примитив синхронизации? Получается, std::mutex и std::thread не независимы друг от друга, и как-то согласуются между собой?
199 2500230
>>500068
cppcheck, но он туповат
200 2500235
>>500210

>Возникает вопрос, а возможно ли в принципе написать свой собственный примитив синхронизации?


В принципе, можно.
Но это надо не быть тобой, как минимум
201 2500517
>>500210
У тебя фигурные скобки съехали. А ещё volatile делает не то, что ты думаешь.
202 2500526
Я думал, что путаница атомик и волатил это мем такой, а тут живой пример прям кек.
204 2500602
В Студии 2019 комьюнити есть способ сменить встроенный браузер?
Советы из гугла не работают, нету нужной кнопки.
изображение.png36 Кб, 1171x406
205 2500607
>>500602
У меня вот что вместо этого.
И в редакторе менюшек тоже нету такой кнопки.
206 2500733
>>500517
>>500526
Блять, я в курсе, что делает volatile. Заставляет компилятор избегать оптимизаций, и при каждом обращении реально считывать значение из памяти. В чём проблема с кодом я уже понял. Лучше бы пояснили, как внутри устроен атомик. В моём представлении, внутрь атомика тупо встроен мутекс, который блокирует поток перед тем, как что-то с объектом сделать. Но я не понимаю, как добиваются того, чтобы переключение на другой поток не произошло в момент, пока выполняется lock(). Всё же должно сводится к одной атомарной инструкции, перед и после которой безопасно прерываться другим потоком. И как тогда написать свой мьютекс или свой атомик? Ассемблерные вставки ебошить? Я просто хочу разобраться!
207 2500737
>>500733
К системе обращаться, чтобы она заблокировала поток.
208 2500755
>>500733
volatile не спасает от перестановок команд в рантайме, он вообще не про синхронизацию.

>Я просто хочу разобраться!


Читай книжки, смотри видосы.

>внутрь атомика тупо встроен мутекс


Nyet. std::atomic<T> могут быть с мутексом, а могут и без. Зависит от платформы.

>как добиваются


>как тогда написать


Допустим спинлок на std::atomic_flag. Он атомарен всегда и везде, где есть C++ компилятор.
209 2500768
>>500733

>поток не произошло в момент, пока выполняется lock()


В ассемблере есть префикс lock, гарантирующий что следующая операция будет атомарной. Работает довольно ограниченно, но на вызов lock() хватит. Как и на операции с небольшими данными.
210 2500772
А мьютексы это уже уровень ОС.
211 2500835
А нахуя вся эта мультитред хуйта нужна? Просто разобраца хочу
212 2500846
>>500835
В одном потоке отрисовываешь окно, в другом выполняешь работу. Так работают загрузочные экраны в играх, установщики, архиваторы и т.п. Так или иначе, они либо запускают другой процесс, либо создают новый поток. А ещё, если у процессора несколько ядер, можно ускорить какие-то вычисления.
213 2500861
>>500846

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


Дурацкая фраза-клише. Какие еще вычисления, нет никаких вычислений.

Вот есть хорошая программа irfanview, там пакетная обработка изображений. Всё заебись. но медленно, пердолит одно ядро по одной картинке по порядку. А у меня 16 потоков, мог бы ускорить, но хуй тебе, а не ускорение. Вот какова реальность. Пиздеть теоретически все горазды, а на практике всем насрать, пишут как удобнее, а мультипоток это жопная боль, никто не хочет ним ебаться.
214 2500877
>>500861
То есть тебе попалась одна конкретная программа, написанная долбоёбами, и ты теперь думаешь, что браузеры, IDE и игры тоже не используют многопоток?
215 2500921
>>500861
Сыгл епту бля, нахуй мы ваще тут сидим какую то хуйню дрочим, лучше пойти машку пошпехать гыгыгы
216 2500944
>>500861

>Дурацкая фраза-клише. Какие еще вычисления, нет никаких вычислений.


> пишут как удобнее, а мультипоток это жопная боль, никто не хочет ним ебаться.


И нахуя ты сам себе противоречишь?
217 2501139
Гои пишут на языке, который разрабатывался вообще под другую систему несколько десятилетий назад, а индустрия их подталкивает. Пишите, бгхатья гои, мы вам ебанем с++ 50, не останавливайтесь главное, нам же бабки капают. Главное не говорить гоям о медленной памяти, а то бабки то нам надо отработать на том, что заточено под ситуацию 70-х годов.
Гои воистину ГОИ пиздец
218 2501164
>>501139
А можно узнать, что принципиально нового появилось в вычислительной технике с 70-х годов, кроме увеличения "мощности"? Предлагаешь на ЖС писать?
219 2501167
>>501139
Современные кресты к тому 40-летнему говну мамонта никакого отношения не имеют. Куколды, которые пилили то говно, пусть на нём и пишут под свою систему, если из этих пенсионеров хоть кто-то ещё жив.
220 2501168
>>501164

>Предлагаешь на ЖС писать?


На Haskell
221 2501171
>>501168
Язык для написания бесконечного ряда факториалов.не подтолкнёт индустрию, он её остановит.
222 2501174
>>501168
Лучше на лиспе тогда. Да и под капотом все та же лапша работает на которую ты жалуешься, а аппаратно функциональщина не выполняется пока что.
223 2501206
>>501164

>принципиально нового появилось в вычислительной технике с 70-х годов


Дед, ты выпил там? Суббота, понимаю (нет)

>Предлагаешь на ЖС писать


Тебе ничего не предлагаю нового. Ты гой.
а для израильских братьев лисп и пони тель хай братья! Продолжаем наебывать гоев, они не догадываются
224 2501211
>>501206

>не ответил на прямой вопрос


>предложил использовать говнолисп из родом из 70х, называя кого-то дедом


Ладно
225 2501215
>>501211
Гой, спок.
троллинг тупостью не засчитан
226 2501224
>>501215
Оче жирно. Такое, возможно, в питон или жс треде прокатит, но не здесь.
227 2501242
>>501224
ТЫ СУКА ГОЙСКАЯ!!!
Медленная память, проц быстрый. ПОнимаешь хуйло? Память у тебя как дискетка длять работает
228 2501247
>>501242

>пук


Жирный пытаеься показать подрыв. Оче слабо.
229 2501258
>>501242
Алсо, твоя скриптовая хуйня в любом случае не способна выполняться настолько быстро, чтобы упереться в узкое горлышко io. Этим как раз страдают те языки, которые ты критикуешь.
230 2501323
>>501139
Что значит медленная память? Как скорость обращения к памяти может зависеть от ЯП?
231 2501369
Ребят помогите пж понять эту хуйню.
232 2501412
>>491360 (OP)
сап. пытаюсь нагуглить решение задачи: надо сделать альтернативное решение для проверки на четность с помощью обычной функции, которая возвращает modulus %2 аргумента типа return input %2 == 0. Я подумал может как-то проверить только последний бит числа и тем самым избавиться от лишних вычислений, но не знаю как это сделать. Если я буду пользоваться методом сдвига битов чтобы сократить число до последнего бита, то проблема в том что я не знаю размер числа и дополнительные проверки займут время. Наткнулся в вики на проверки хеш-суммы, но это похоже не то что нужно.
233 2501417
>>501412
На чётность влияет только последний бит, как и с десятичнвми чётность определяется тупо последней цифрой. Надо выполнить input & 1
234 2501452
>>501417
Спасибо. На стаковерфлоу почему-то вариант который занял больше всего голосов утрверждает что в асемблерном коде нет различия между двумя вариантами. Но у стандартного еще и преимущество потому что работает с отрицательными числами.

https://stackoverflow.com/questions/160930/how-do-i-check-if-an-integer-is-even-or-odd
235 2501487
>>501452

>в асемблерном коде нет различия между двумя вариантами.


При /O1, /O2, /O3
236 2501492
>>501247
Как же гоям нравится говно жрать...
237 2501516
>>501487
Получается различия только в -Os и в результате только в количестве использованного места? Это повлияет на быстродействие благодаря уменьшению .exe?
238 2501531
>>501516
С такими микрооптимизациями, как проверка на чётность, ты не выжмешь и 0.00000001% перформанса.
239 2501563
>>500846

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


самое распространенное заблуждение последних лет
прекрасно можно и гуи отрисовывать и работу делать в одном потоке
почему что 30 лет подряд разработчики делали прекрасные сложные приложения с гуи интерфейсом, и все это работало в одном потоке
но по видимому теперь это становиться забытой магией древних
240 2501568
>>501531
Я просто хочу разобраться чем проверка бита лучше чем обычное сравнение с modulus в теории.
241 2501571
>>501242
да ладно
аж три уровня кешей на одной подложке с cpu, оператива ddr5 c пропускной способностью 32гб/c, современные ssd c безумно быстрым рандомизированным чтением по сравнению с hdd, через интерфейс nvme через шину pcie у последних вариантов контроллер на одной подложке с cpu..
242 2501592
>>501568
Ничем. Код должен быть понятным.
243 2501853
Почему SFINAE не работает?
Когда запускаешь summ от типов без оператора +
image.png24 Кб, 751x420
244 2501867
Все, решилась проблема.
Теперь подскажите, как сделать более красивой строчку 10
245 2501985
>>501867
Мб ты хочешь concept сделать?
246 2502086
Пытаюсь передать объект класса в другой класс, не получается. Пробовал через * и & по гайдам в тырнете, чёт везде хуйня и не работает. Можете кинуть пример?

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

Фактически простейшая задача для какой-нибудь java разработки, но на плюсах случился обсёр.

Разрабатываю в PlatformIO + C++11 с Arduino Framework, если это имеет значение.
Диплом 247 2502092
Собираюсь писать дипломную работу что то типа "Разработка алгоритма генерации ландшафта"(Тема примерная). Что скажете, мб советы какие?
248 2502107
>>502092
Диплом он вроде как про что-то новое. Terrain engine уже как 10 лет назад написали. И Speed Tree написали и PhysX с Bullet'ом и ещё всяких движков разных.
249 2502126
>>502107
Уже бы ничего нового в бакалавриате не осталось давно, еслиб каждый студент что-то новое находил.
Диплом это научно исследовательская работа, у которой должно быть обоснование. И это не обязательно новизна, просто она самое очевидное что может быть.
250 2502135
>>502126
Ну если у тебя ландшафт нейросеть будет генерить или ты напишешь 3д реконструкцию, то может и сгодится.
251 2502169
>>502135
Хз, щас мб и пальцем в небо ткну, но 90% дипломов бакалавров – рерайты иностранных работ с сайхаба.
image.png20 Кб, 541x440
252 2502185
>>501985
Да, крутая вещь.
253 2502205
>>502092
немного мало. нужно ещё-что то. вишенка. Например, визуальное программирование. чтобы туда сюда эксель инфу переделывал. Можно было выделить выброс, и в эксельку экспортировать
254 2502215
>>491360 (OP)
Двач, я неудачник 30 лвл эникей.
Я долго понял, что сделал не так.
И сегодня всё понял.
Я понял, что надо было вкатывать в кодинг, но меня пугали люди, пугало бесконечное количество фреймворков, этот спринт технологий и спринт умов, огромное количество 20-летних парней сверх-замотивированных и стремящихся к конкуренции. Да ещё ультра токсиков, мыслящих "ты либо успешный успех, либо отсталый дед"
Я понял, во что надо вкатываться. Надо вкатываться в кресты.
Много лет назад, в универе, был дружбан, для которого кресты были философией. С ним было легко общаться, он не стремился показаться умнее или глупее, чем он есть. Я понял, что это философия. Кресты они здесь и сейчас, они всегда. Это философия.
Как вы оцените, правильно ли вкатываться в кресты, если я мечтаю просто кодить на них, делать нормальную работу, без тимлидства, без жуткого задроства, а поменять сам стиль жизни под кресты? Один раз, и навсегда?
255 2502243
>>502200 (Del)
Значит не норм прошло.
>>502215
Не лезь блядь, вкатывайся во что попроще. А если называешь себя неудачником, то будешь неудачником вдвойне, ведь вакансий по плюсам крайне мало.
256 2502262
>>502243
спасибо, гуру. я отнесусь с ответственностью. жаваскрипт?
257 2502272
>>502243
думаю, крестовики самые спокойные и взвешенные люди, без троллинга. возможно, я пишу бестактно, прошу прощения.
258 2502304
>>502200 (Del)
Причину не назвали?
Мб на собесе что-то всё же упустил.
259 2502312
>>502304
может, просто кандидата другого нашли
260 2502322
>>502215
нулевые - десятые путь был такой обычно: эникей - сисадмин - девопс
альтернативный путь - 1с
так же некоторые увлекались железом и уходили в ремонтники - ноуты, мобилки, etc
ogog1612259143251672491.jpg297 Кб, 1200x628
261 2502441
Анон, помоги с GTEST. Писал на симейке, гтест скопипастил в фердпарти, все норм. Щас переезжаю на дебиан, и решил ради гибкости вырезать гтест из своего репозитория в пользу деб пакета. И что-то насосал я хуев, не видит смаке нихуя!

1) Деб пакеты gtest и googletest ставятся в /usr/src
2) GTEST_ROOT не реагирует ни на одну из этих папок
3) на стековерфлоу пишут, что надо сделать cmake .. либы и make install, но это полная параша блядь, это вообще не правильно нихуя
4) я не понимаю, как быть, если я захочу автотест в докер образе запустить. Вроде бы ставить зависимости дпкг, в том числе хедер-онли, нормальная процедура для автотестов, но такая пидорасня с гтестом как-то всё почему-то усложняет блядь

Как правильно пользоваться этим говном? Почему стало резко сложно так?
262 2502511
>>491385
Чуть шарю

Короче, норм результат съема картинки с сенсора (или другого высокоскоростного интерфейса, хоть шдми) и передачи по Ethernet (предположим, делаем ипкамеру) достигается только на специализированных DSP (гугли линейки AnalogDevice по категории Видео) или ПЛИСинах (Xilinx Virtex, ZYNQ). Комп сосет, с задачей справится, но лаг будет пиздец (можешь через влц перепаковать трафик из веб-камеры в ш264, лаг будет минута).

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

Помимо задачи сжатия для передачи по сети, очень интересной является обработка самого изображения с матрицы. Сюда входит и дебайеризация (или как там правильно), и цветокорр, и улучшалки, и все такое. Очень интересная и глубокая тема, очень-очень много чего ещё не открыто. Изучение всей этой темы - матан, с++ даже может и не понадобится при создании системы (если только не использовать Xilinx HLS). Матлаб и питон + матан, учебники и статьи твои друзья, языки программирования всего лишь инструмент.

Видеообработка годная специальность, полезная, глубокая, востребованная. Хочешь начать вкатываться - своруй матлаб и смотри примеры
image.png97 Кб, 308x185
263 2502562
Аноны, подскажите как по умному вытащить цифры из строки?
Пусть есть строка и там цифры (разделенные пробелами и возможно другими символами). Извлечь хочу в вектор.
Понятно что можно циклом пройтись, но может есть что то типо split, чтобы сделать всё одной строкой.
264 2502565
>>502562
пример такой строки "1 79 z2 5 4#9" и хочу получить {1, 7, 9, 2, 5, 4, 9}
265 2502566
>>502565

>{1, 79, 2, 5, 4, 9}


быстрофикс
266 2502576
>>502565
Ну очевидным перебором. У каждой цифры есть код, поэтому проверяешь каждый символ на принадлежность диапазону в таблице аски, писоешь. По любому есть такая библиотека уже.
image.png515 Кб, 1170x780
267 2502625
>>502576
Cпасибо, анон
я решил перебрать элементы обычным циклом, если встречу более годный способ типо того же сплита, то перепишу
268 2502643
Что нужно знать на позицию ждуна? И почему почти в каждой вакухе требуется ВО?
269 2502644
>>502643
И ещё - идёт ли опыт коммерческой работы с другим языком и стеком хотя бы в какой-нибудь зачёт?
270 2502655
>>502643
Наличие вышки говорит о том, что кандидат усидчивый, обучаемый и, возможно, помнит курс математики, которая в плюсах нужна чаще, чем в языках для вебмакак. Ну и есть шизанутые госконторы, которые всегда требуют вышку, там часто зарплатные вилки жёстко зависит от уровня образования.
>>502644
Да, он хоть и не будет приравнен к опыту на плюсах, но всё равно зачтётся то, что навык разработки хоть каких-то проектов у тебя есть, т.к. приобретаются умения, не зависящие от языков. Может даже перевесить отсутствие вышки.
271 2502662
Антонио, норм ли идея слеплять цифры в строку, а потом обратно конвертировать в цифры? Например чтобы тут "ccc 921 abs" вытащить 921 одним числом, а не 9, 2, 1. Лучший вариант который я пока придумал, это слеплять цифры в строку пока не наткнусь на не цифру, и переводить обратно в число. Но это скорей всего говнокод. Как сделать хорошо?
анон >>502562
272 2502664
>>502655

>кандидат усидчивый, обучаемый


Ох ебать, а то что я вычитал несколько книг по плюсам, Кормена, Таненбаума, cppreference, написал 2 не самых примитивных попенсорса да ещё и на литкоде 3 сотни задач нарешал им не показатель?
273 2502680
>>502441

>этим говном


Да никак. От него пердолей больше, чем пользы. Когда тестов станет много и он начнёт тормозить придётся пердолиться снова.
Забей и переводи проект на интеграционные тесты.
274 2502684
>>502511

>и передачи по Ethernet


Данные с сенсора даже в гигабитный ethrnet не пролезают. Ты либо его на камере обрабатываешь либо жмёшь в mjpeg/h264/h265 естественно с потерями, что очень не очень.

>сетевой обмен, логика, может всякие либы типа опенцв


это тоже бэк, фронт это web, который на твоей камере крутится

>бекенда (тензорные ядра, какие-то матричные ускорители и проч).


это не бэк, это GPGPU на cuda под opencv, дебаеризацию, цветокоррекцию и свёртки для нейросетей
275 2502687
>>502664
Ну взять то тебя возьмут, но на предприятии может быть табель о рангах. Например ты не можешь занимать позицию руководителя отдела, если у тебя нет кандидатской (и тем более вышки). Позиции это деньги и по ним двигают вперёд прежде всего тех, у кого есть научный бэкграунд (цитируемость в журналах, выступления на конференциях и так далее).
Это я про НИИ рассказываю.
В итоге ты будешь сидеть на дно зарплате и превозмогать через ебучую бюрократию в должности лаборанта или инженера младшей категории.
276 2502730
>>502684
Душнила, зря высрал пост, ноль смысловой нагрузки
277 2502732
>>502664
просто ВО подтверждается документом, есть чёткий критерий - есть бумажка/нет бумажки. А объективные твои знания ещё проверять надо, экзаменовать тебя что ли. А в ВУЗе уже всё сделали, проэкзаменовали, документ написали и печать поставили

Ваш капитан Очевидность
278 2502733
>>502730
Я привожу твои жидкие знания в порядок.
279 2502743
>>502733
И тем не менее

>>ноль смысловой нагрузки


Знания без умения ими пользоваться это бесполезный мусор. Цитировать знания без смысла это попугай, принтер копипасты, гуглобот, или попромту слабоумный даун.
280 2502788
>>502733
Знаний у меня настолько дохуя, что я могу их категоризировать и сжать для потребителя.

Чел спросил в целом, чё куда как смотреть, я его пнул с матлабом в нужную струю, там дальше сам зацепится
sage 281 2502872
>>502511

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


сучки приближают кибергулаг
sage 282 2502874
>>502664
nobody cares
Стикер234x250
283 2502890
Ребят, где и когда применяется std::char_type ?
Вы когда нибудь использовали?
284 2502892
>>502185
Зачем кидаешь исключение, если можно Статик ассертом ошибку в компайл тайме выдать
Плюс, если ты сделал функцию с концептом, то зачем нужна вторая функция возвращающая ошибку
Если у пользователя тип не подходит по концепту, то ему компилятор сам ошибку выдаст
285 2502898
>>502662
bump вопросу
286 2502900
>>491360 (OP)
Щас бы в 40000м году отдельно объявлять указатели.
287 2502905
>>502892
Два чая.
288 2502920
>>502890
Только TChar и CHAR.
289 2503111
>>502892

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



Логично, подумал я, но потом вспомнил, что у нас есть рантайм типы - наследники с виртуальными функциями, у которых оператора плюс может не быть.
290 2503113
Правда что плюсы нигде в новых проектах кроме разве что игр не используются? И есть ли вообще перспективы? Копаться в легаси не хочется.
291 2503177
>>503113
Айти всё.
292 2503295
>>503113
Плюсы нигде не нужны.
293 2503296
>>502086

>Можете кинуть пример?


Может ты для начала скинешь свой пример?
294 2503304
>>503113
не правда, плюсы были есть и будут. Всякие веб макаки неосиляторы, конечно, тебе расскажут что они уже все и плюсы не нужны, но ты их не слушай. Правда хуй тебя кто возьмет на проект с плюсами без образования.
295 2503318
>>493512
Вы все не правы, ядерную боеголовку можно подвесить много куда, на различные ракеты бомбы и прочее, это всего лишь средства доставки.
296 2503388
>>502662
<regex>
297 2503408
>>503388
Спасибо, но чем ебашиться с режексами лучше по старинке. Мне не нравилось, что приходится гонять типы данных из char в строку, из строки в int и дальше, а так в плане производительности обычный цикл вполне не плох.
298 2503421
>>493383
Так мотивации совершенно разные.

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

Ученого же чаще всего интересует решение относительно небольшой задачки здесь и сейчас: получить численное решение, проверить гипотезу, нарисовать график и т. д.

>У датасаентистов та же болезнь.


В геймдеве еще гораздо толерантнее относятся к культуре программирования.
299 2503444
>>503408

>лучше по старинке


Зачем тебе тогда вообще string и vector?
В 2022 циклы в подобных задачах нужны разве что в качестве упражнения на циклы, и только.
И упражнения с циклами не избавят тебя от необходимости знать стандартную библиотеку. Уж лучше с ней поупражняйся.

>с режексами


Есть еще всякие copy_if(), transform(), лямбды...

>Мне не нравилось, что приходится гонять типы данных из char в строку, из строки в int и дальше


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

>в плане производительности обычный цикл вполне не плох.


Кусок памяти копируется сильно быстрее, чем тот же кусок копировать по отдельным байтам. Твоя "оптимизация" кроме того, что скорее всего избыточна, еще и наивна.
Куда полезнее было бы обобщить решение до возможности работы с потоками, например, а не прибивать гвоздями типы string и vector<int>.
300 2503501
>>503444

>Зачем тебе тогда вообще string и vector?


>vector


Хранить int-ы.

>string


Строка даётся на вход, помимо самих int-ов в ней ещё всякие полезные символы, которые нужно учитывать.

> знать стандартную библиотеку


Не знаю, поэтому и спросил тут как в C++ подобное делается. В том же питоне можно сплитами всё легко поделить, например.
На всяких форумах люди советуют херачить циклами. Может я не там смотрю.
Ещё в моём случае возникает проблема - пусть мы нашли какое то число в строке. Можно его сразу же сконвертировать в int. Но мы не знаем сколько в нём цифр, поэтому вполне может оказаться что следующий символ тоже числовой. Я в этом случае использую "буфер", т.е строку в которую добавляю цифры пока не окажется что следующий символ уже не число. Дальше этот буфер конвертируется в int и добавляется в вектор.
16590387126080.jpg7 Кб, 232x197
301 2503542

> крестомакаки изобретают strtok

302 2503547
>>503542
Логика Страуструпа проста: "Если я сделаю стрток, то многие скажуть, что это неправильный стрток. Лучше пусть сами себе делают стрток.".
303 2503550
>>503542

> чтобы сделать всё одной строкой.

304 2503551
Сап двач. Такой вопрос.
Планирую вкатиться в программирование в общем-то для личных целей - самому писать простенькие игры, текстовые новеллки, пилить картинки для них и т.д. Планирую выучить С++ как самый оптимальный для этих целей. Отсюда вопрос первый: его вообще потянет человек, никогда программированием не занимавшийся? Я вполне сообразительный, но боюсь даже не столько сложности языка, сколько сложности организации обучения сложному языку, ибо для меня это безбрежное чёрное море. С каким-нибудь питоном легче, я думаю, там и в учебных материалах особо не заплутаешь, и их меньше. хуйню говорю?

Ну и второй вопрос. Чисто теоретически: стажёра с++ могут хоть под шконку с ведром мочи, да взять на работу? Знаю, знаю, что сейчас тысяча человек на место, и даже скилловые ребята сидят без дела, времена прошли и т.д. Просто хотелось бы знать, что хоть гипотетически есть призрачные шансы обратить личное занятие в работку, иметь подушку безопасности, так сказать. Но, наверное, нихуя? Скорее всего, вкатиться без опыта могут только какие-нибудь джаверы.
307 2503602
>>503583
>>503582

> if (stringstream(temp) >> found)


Вот эту строку я не понял. Что он делает? Пояснения пжл
308 2503607
>>493383

>однобуквенными переменными


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

например, какая-нибудь ненастоящая простая формула типа
a[j] = b × alpha × T + c[k] × g × dT

или

zalupaMatrix[rowIndex][columnIndex] = huitaVector[rowIndex] × koeficcientHuiti × temperature + huiEgoZnaetMatrix[rowIndex][zIndex] × chotEtoZaKoeeficient × raznizaTemperatur

Вторая хуйня нечитаемая совершенно
309 2503624
>>503607
Я не про формулы, а про вообще весь код. Строки однобуквенные, массивы однобуквенные, названия всех функций, классов и методов однобуквенные, иногда даже инклуды однобуквенные. Дай им волю, и они будут переопределять кейворды через #define, чтобы сократить return до y. Переменные объявляются в алфавитном порядке, когда алфавит заканчивается, начинаются цифры: int a6 = q11. С формулами любому дауну понятно, их даже в громоздкой жабе пишут с общепринятыми научными обозначениями.
310 2503627
>>503602
std::stringstream - библиотечный класс. Функционирует так же, как другие потоки cin, cout, файловые потоки. Только stringstream создает строковый буфер в памяти. Пишет/читает не в консоль, не в файл, а в строчку в памяти.

temp // это строка
stringstream(temp) //это фактически вызов конструктора класса std::stringstream с аргументом temp
В результате создается безымянный объект типа std::stringstream , инициализированный содержимым строки temp. Безымянные объекты долго не живут, если тебе это интересно.
>> found // читает из безымянного потока и пишет в int-переменную found.
if(...) // на самом деле не читает/пишет, как написано выше, а только пытается прочитать и трактовать прочитанное как данные типа int, исходя из того, что found имеет тип int. Если все прошло норм, то возвращается true, если нет, то нет.

Программа, кстати, не отрабатывает случаи вроде "letters12345...". Только цифры, стоящие в начале строки, она считает в found, иначе в if вернет false.
311 2503643
>>503111

>наследники с виртуальными функциями, у которых оператора плюс может не быть.



Причем тут виртуальные функции? Наследники или инстанцируют шаблон, или являются шаблонными с тем же числом параметров.
312 2503647
>>503624
Это вопрос зрительного восприятия. Проще читать код, когда метод целиком влезает в экран и когда его строки имеют длину равную ширине книжного листа. То же самое касается именования - "книжный" формат my_method_name воспринимается легче, чем myMethodName (если ты не из дойчей).
313 2503652
>>503647
Снейккейс вс кэмелкейс, извечный вопрос.
Хотя я так для себя в последнем своем проекте ощутил (спустя долгого перерыва проганья на плюсах), что второй мне милее. Но, подозреваю, что это после поганого pl/sql, где поебат на регистр, что порядком меня доебало и хотелось разнообразия.
Ълядь, в этом поделии корпорации зла можно даже объявить переменную с именем "отака хуйня malятa", что уж говорить о регистре.
314 2503669
>>503643
Да не трясись ты. скуф. Я потестил и все оказалось как я предполагал. Полиморные типы полностью выводятся только в рантайме - учи матчасть, сука.
Только вот почему-то исключение в случае неблагоприятного исхода отловить не могу. Кто сможет отловить - тому пять баллов.
315 2503681
>>503669
Ты дибил, шаблоны инстанцируются только в компайл тайме с известными типами
316 2503685
>>503551

> под шконку с ведром мочи


тогда учи 1С
1667367707787.jpg19 Кб, 521x221
317 2503687
>>502625
можно регулярками такое делать например
1666154256-6618cf9c449d567e61292075bf195362.png689 Кб, 800x799
318 2503714
Test
IMG20221102104839.jpg2,2 Мб, 4624x2136
319 2503719
>>502562
Лень с телефона набирать. Делается в одну строку.
320 2503722
>>503719
Там бекинсертер в v не полностью влез.
321 2503915
>>503719
Попробовал этот способ, но он вывел первые 3 int-а. И я хз как учитывать остальные символы, например в зависимости от того есть ли '@' или '' нужно будет думать что делать с int-ми после этих символов (например после собаки следующий int нужно удвоить, показывает что следующие 2 int-а не должны повторяться и если они повторяются то их вообще нужно пропустить).
322 2503933
>>503627
Спасибо, вот это уже больше похоже на то как надо делать в C++.
То есть stringstream(temp) >> found отправляет char в int, и если в char цифра, то if выдаёт правду, а пустой found по умолчанию ложь? А где они очищают found, чтобы в следующей итерации он опять не выдал правду?
323 2503937
>>503687
Спасибо, регулярками можно, но я их толком не знаю на таком уровне
324 2503939
>>503915

> в зависимости от того есть ли '@' или ''символ звёздочка"


>''символ звёздочка" показывает что следующие 2 int-а не должны

325 2503986
>>503933

> пустой found по умолчанию ложь?


Пустого found быть не может.

stringstream(temp) >> found "преобразовывает" то, что хранит, в значение типа переменной found, затем возвращает ссылку на себя же.
Если преобразовать не получилось, то в объекте сохраняется ошибка.
Потом этот объект методом operator bool() преобразовывается, собственно в bool.
Полученное значение будет false только если в результате того преобразования произошла ошибка.

> А где они очищают found


found нельзя очистить, там всегда будет какое-то число.
Даже когда ты пишешь
int found;
там всё равно есть какое-то значение, его мусором называют.
Можно разве что явно обнулить его, но в данном случае это не нужно, потому что found используется только в той ветке.
326 2504355
>>503933

>пустой found по умолчанию ложь?


Вся запись целиком { stringstream(temp) >> found } это на самом деле вызов функции operator>>() "наиболее подходящей" среди всех перегрузок. У этой функции есть возвращаемое значение и это значение - ссылка на сам поток. Именно поэтому можно писать цепочки вроде cout >> found >> pound >> bound.
У потоков определено неявное преобразование в тип bool. Таким образом if'ы и узнают о состоянии потока, а не по значению читаемой переменной.

>где они очищают foun


не требуется.

> stringstream(temp) >> found отправляет char в int, и если в char цифра, то if выдаёт правду


Исходя из того, что found имеет тип int, поток извлекает символы из строчки temp, до тех пор, пока не встретит первый не-цифровой символ или конец строки.
Если он считал хотябы одну цифру, в конце он делает неявное преобразование прочитанного в тип int и только тогда пишет в found.

>temp


И да, temp - это не вся твоя исходная строка целиком, а только текущее слово из этой строки.
327 2504366
>>504355

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


Точнее, у него-то там под капотом скорее всего прописано явное преобразование.
Просто по тексту программы оно выглядит "неявным".
328 2504436
>>503986
>>504355

>не требуется.


Тогда как меняются цифры? Например почему выводится

> 1 2 3 4


а не

>1 12 123 1234


?

>Если он считал хотябы одну цифру, в конце он делает неявное преобразование прочитанного в тип int и только тогда пишет в found.


Имею в виду, если в found какой то int записан, куда он девается?
329 2504516
>>504436

> Имею в виду, если в found какой то int записан, куда он девается?


Никуда, туда просто записывается новое число.
Почитай что-нибудь на тему работы компьютера. Первый том Столярова, например. Или «Код» Чарльза Петцольда
166746963159181905.jpg69 Кб, 2000x2000
330 2504662
Что может быть лучше пикрила? Назовите хоть одну среду которая не сильно хуже visual studio. Банально симпатичный и удобный дизайн, все понятно (вкусовщина, но все же) профилировщик охуенный, слепки памяти, отладка гпу
331 2504664
>>504662
Единственная проблема в кроссплатформенности, но что поделать
332 2504700
>>504662
У студии конечно есть сильные стороны, но дизайн в них не входит
Ну проблемы в основном как раз таки в интерфейсе, любителям все под себя настроить не подойдёт, но при этом и новички ахуевают
Туда же прожорливость и постоянные затупы у меня только на последней версии это решилось, и когда на ссд его перенес
333 2504703
>>504700
А что лучше?
Без названия.png3 Кб, 225x225
334 2504705
335 2504707
>>504703
Ничто, все говно
336 2504724
VIM
337 2504751
>>504516
Спасибо, анон, вижу ты мне действительно пытался помочь
Я изучаю C++ делая всякие мини-проекты, поэтому возникают такие глупые вопросы
338 2504784
Госопди, ну и дрочь. Скачал emacs, создал проект, не работает подсветка. Надо идти во вкладу препроцессинг. А ее нет, потому что проект cmake. А я хочу писать cmake чтобы потом можно было перенести в случае чего
339 2504790
>>504784
Ой, ошшибка. Eclipse
340 2504795
Похуй. Vs code оставлю. Это пиздец какой то. Еще время мне тратить на ерунду всяку. Хотел вкатиться в разработку на опенсурсе, без создания 100 акков для каждой ide. Не вышло. Чому все такое хуевое? Почему в visual studio, qt, clion ты просто заходишь в акк и прогаешь? Легко изменяешь компиляторы, флаги в cmake ставишь, а тут треш какой-то.
341 2504814
kdevelop вообще падает нахуй. Очень удобно
342 2504815
Ставь Visual Studio, сука.
343 2504816
Короче я хуй знает че делать, помогайте. Хочу писать код в свободных редакторах, но чтобы это было удобно, почти как в нормальных ide. Чтобы дополнения работали, компиляторы легко менялись, cmake поддерживался, профилировщик был хороший
344 2504818
>>504816
Не знаю работает это или нет сейчас, можно было халявную лицензию на JetBrains получить на Stepik (на все IDE на три месяца). Решаешь три задачи на написание кода на курсе с сертификатом (это важно), получаешь лицензию. Три месяца проходит, ещё три задачи решаешь (про запас нарешать нельзя)
345 2504842
>>504664
Есть еще проблема с IntelliSense. С анрилом, например, она в принципе неработоспособна.

>>504700

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


Я читал обратное, дескать Студия тупит от того, что больше 4 Гб памяти не обучена использовать.
346 2504866
Хочу попробовать состряпать говна на UE
Стоит ли для этого вкатываться в кресты, или хватит блюпринтов?
Опыт в промышленном погромированнии есть, но на более легких языках го, пистон, джава. Крестов боюсь, но неизвестность манит
347 2504909
>>504866
Для говна более чем хватит блюпринтов.

>Крестов боюсь, но неизвестность манит


Если хочешь заходить со стороны крестов, то про собственно UE можешь преспокойно полностью забыть на ближайшие год-два.
348 2504967
>>504866

> Крестов боюсь


Почему тогда не Unity?
349 2505062
>>504818
Это не то. Хочу тру попенсур без акков и всей это дряни. Просто скачал и используешь
350 2505233
>>499236
Так кути в вскодиум можно полноценно и абсолютно бесплатно использовать. Оба обеспечивпют твои хотелки. И они опенсурс, можешь сам собрать. Да и силион сейчас так же какраньше ломается скриптом,тчто на винду что на линукс. Брат жив. А студия говно индусское.
351 2505238
>>504866

>Крестов боюсь


Вомпер что ли? Или другая какая нечисть?
352 2505322
Анон, как грамотно закроссплктформить использование Asio из Boost версии 1.62 и более новых? Проблема в смене io_service на io_context и ещё нескольких вызовах. Пока ничего умнее скобок компиляции с проверкой версии буста ничего не могу придумать
353 2505539
>>504842

>Есть еще проблема с IntelliSense


Отъёбывающие подсветка/автокомплит/анализ кода это вообще во всех IDE (и не только в плюсовых) нихуя не редкость при работе хотя бы со среднего размера проектами.
354 2505544
>>505539
Везде где есть нормальный лсп таких проблем нет
355 2505641
>>504795
Твой ви/емакс?
356 2505737
Делаю стек поверх массива фиксированной длины.
Компилятор швыряет варнинги по поводу того, что я массив не инициализирую.

А зачем мне инициализировать массив?
Ну заполню я его нулями, так эти нули все равно будут ничем не лучше любого другого мусорного значения.
В чем я не прав?
357 2505779
>>505737
Ты делаешь стек неправильно (читаешь куда не писал).
358 2505933
>>505928 (Del)
Инкапсулируй си-парашу внутрь цпп файла, чтобы оставить хедер чистым
359 2505958
>>505544
В том же вскоде лсп на основе шланга работает как кусок подзалупы, не волнуйся :)
360 2506018
>>505779
Не, у меня это исключено.
361 2506087
>>505737
Warning это тебе не Error, забей хуй.
Но чего тебе стоит заполнить обоссанный стековый массив нулями?
362 2506106
>>506087
Сейчас бы забить хуй на UB, которое обычно даже варнингов не показывает.
363 2506128
>>505958
Поэтому я и сказал нормальный лсп
364 2506137
>>506087
Я тут недавно забил на варнинг о том, что инициализация членов класса происходит не в порядке их объявления, и потратил часа два, чтобы понять, почему у меня блядь прога крашится где-то в середине
Screenshot2022-11-0513-38-06.png6 Кб, 248x93
365 2506264
В чём суть этих енамов? https://www.boost.org/doc/libs/1_76_0/doc/html/boost_asio/example/cpp11/chat/chat_message.hpp

Алсо расскажите простыми словами про юнионы, чёт я не врубаюсь.
366 2506280
>>506264
Юнион это топ тема.
Говорит о том что разными способами можно обратиться к одним и тем же данным в памяти.
На пример: структура изображает матрицу, в ней юнион по элементно, по векторам, обьявлены по разному, но указывают на одни данные. Особенно круто при использовании авх.
367 2506282
>>506128
Нормальный лсп это как нормальные иде — возможно только в теории.
368 2506288
>>506264

>В чём суть этих енамов?


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

>Алсо расскажите простыми словами про юнионы, чёт я не врубаюсь.


Попробуй сделать массив в который можно будет пихать элементы разных размеров (например, int16_t/int32_t/int64_t) или свою реализацию std::expected — без практики оно не поймёшь всё равно.
369 2506349
>>506280

>Юнион это топ тема


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

мимо байтоёб
370 2506427
Я ковыряюсь с sqlite,и возникла следующая проблема. Когда я исполняю запрос SELECT * FROM DB,callback,стандартная функция ,печатающая данные таблицы, игнорирует переносы строки,из-за чего на консоли все данные сливаются в сплошную линию.
Как пофиксить? Это не критично,но при отладке не удобно
371 2506483
>>506427
Не на консоли, а в консоли.
372 2506491
>>506349
Я же даже пример привел с инстриками из авх, ты жопой читаешь что ли?)
373 2506496
>>506427
Выяснилось,чьо проблема в другом.
Для удобства я захотел завернуть интерфейс для работы с sqlite в класс. Для вывода нужна функция callback,которую нужно как-то разместить внутри класса,чтобы она работала,а то у меня она не работает. Но ЧСХ, если эту функцию разместить в main.cpp,то все зарабоает. Но мне нужно,чтобы она была в классе.Что я делаю не так?

https://pastebin.com/DqhzuhSq
374 2506498
>>506496
Желательно,чтобы этот callback лежал в private
375 2506545
>>506491
Это байтоебля, причем уровня C.

Я же попросил примеры использования union в плюсах.
Screenshot from 2022-11-05 22-00-36.png16 Кб, 643x181
376 2506563
>>506498
Ты передаешь указатель на функцию инстанса класса в сишную функицю - так это работать не будет.

Тебе нужно этот callback сделать статическим методом класса и отдавать его.
Либо же вызывать примерно с обёрткой в лямбде как на картинке.
377 2506608
>>506545
Наверное мы очень по разному воспринимаем плюсы.
378 2506692
>>506608
Ты, похоже, как си с классами
379 2506724
>>506545
Пишешь плавающую точку для МК
@
Не, плюсы не для того
380 2506726
>>506545
Ну если хочется примеров для хайлевела — симуляция ADT (вроде std::variant/expected).

>>506692
А ты видимо, как джаву.
381 2506732
Как защитить от изменения структуру сериализованную в двоичном виде?
382 2506733
>>506732
Подписывать.
383 2506737
>>506733
А как? У меня лапки...
384 2506742
>>506737
Генерируешь секретный ключ, вычисляешь хеш-функцию от конкатенации ключа и полей структуры, результат передаёшь ещё одним полем в структуре. Если кто-то изменит поля структуры, хеш будет отличаться, а ты поймёшь, что подписано не твоим ключом, т.к. хеш будет отличаться от хеша, сгенерированного тобой для проверки. Т.к. ключ знаешь только ты, корректный хеш сгенерировать тоже можешь только ты.
Это самопальный алгоритм подписания, есть нормальные либы, но там уже заморачиваются с сертификатами, чтобы проверить подлинность мог кто угодно, а не только тот, у кого секретный ключ.
385 2506749
>>506742
Тяжело...
386 2506754
>>506749
Не сложнее клепания формочек на Qt, если не заморачиваться.
387 2506756
>>504842
Поставь на неё Visual Assist, там что то допиливали для UE
388 2506763
>>506754
Но я не клепаю формочки на Qt
389 2506768
>>506763
Это легко.
390 2506771
>>506768
Мне imgui больше нравится
391 2506777
>>491360 (OP)
есть аналоги питоновского нумпи на цпп?
392 2506784
>>506777
В Boost есть ВСЁ, кроме гуя.
maxresdefault.jpg21 Кб, 1280x720
393 2506792
>>506784
Во дворе стоит статуя, у статуи нету ГУЯ
.png95 Кб, 920x805
394 2506798
>>506792
ГУЁВО, чо
395 2506805
>>506784

>Boost


это аналог vcpkg что ли?
396 2506812
>>506805
Нет, это просто набор библиотек на все случаи жизни. Специально для Boost-разработчиков.
397 2506820
398 2506822
>>506756
Платная же тема.
Я к решвабреру больше склоняюсь, но пока не горит.
399 2506828
>>506820

>BLAS


их сайт не открывается, только под впн
400 2506836
>>506784
Даже крипта? Тридэ? Датасаенс и комплюхтер вижн? Инструменты для хуйлоад систем?
401 2506865
Я написал мейк. Перекатывайтесь. Хватит зависеть от наследия Столлмана.
image.png67 Кб, 338x390
402 2506867
>>491360 (OP)
ищу библиотеку для довольно простых операций
такое на пипон и жыэс давно есть и работают
в цпп же... такая параша караул, либо нет ни документации ни примеров
либо всё очень трудно и непонятно и хз для кого писалось
это просто издевательство какое то
403 2506868
>>506867
Сколько наводящих вопросов мы должны тебе задать, чтобы ты написал, какие задачи должна решать библиотека?
404 2506869
405 2506870
>>506865
Клонов мейка в крестах и так дохуя. Лучше нормальную систему сборки напиши, которая сама умеет качать зависимости, собирать проекты без вызова сторонних make/msbuild/говнонейм, работать на основных платформах и с основными компиляторами. В других языках давно есть.
406 2506872
>>506870
Cmake и ищет и качает
407 2506893
>>506865
Ладно, это рофл конечно был. Вот по-нормальному.
Screenshot from 2022-11-06 03-29-41.png239 Кб, 1035x1875
408 2506899
о, заебись, инклуды сделал
409 2506900
Вот бы ещё помацать больших жилистых членов.
410 2506901
>>506900
кстати, да
411 2506903
>>506893

> 4 скрин


Нахуя ты муваешь стд стринг?
412 2506906
>>506893
А ещё ты в бесконечный цикл уходишь при циклических зависимостях
413 2506921
что имею:
float f;
float m;
m = std::modff(1.0015f, &i);
std::cout << m; // 0.00150001

как пофиксить эту блядскую 1 в конце? все расчеты мне ломает...
414 2506923
>>506921

>>float f;


float i быстрофикс
ну или modf(1.0015f, &f); в общем вы поняли очепятка
415 2506933
>>506899
Это кал. Нужны переменные.
416 2506934
>>506921
printf %.5g m
417 2506942
C++ или Раст и почему?
418 2506947
>>506942
Тебе для чего?
419 2506948
>>506947
Для всего
420 2506949
>>506948
Для своих поделок?
Для зарабатывания денег?
Для ебли?
421 2506950
>>506949
Первое и второе
422 2506964
>>506950
Если ты совсем нулевой, то изучай только устоявшися языки, rust все еще перспекитвыный язык, для тех кому нужен баланс скорости и безопасности, но only rust вакансий все еще мало, да и ждут там как правило тех кто понимат зачем тут rust а не с++ наример, тоесть сталкивался с неопределнным поведением, затыками в многопоточности, утечками памяти и т.д. В общем сли перекатываешься в "системное" программирование из других сфер можешь брать rust, в остальных случаях c++
423 2506966
>>506964
А правда что на плюсах в основном легаси и новых проектов почти нет?
424 2506968
>>506966
Кресты еще молодой язык, он бурно развивается, проекты лет через 5 завезут.
425 2506969
>>506968
Что поменяется через 5 лет?
426 2507008
>>506942
Сначала плюсы потом раст.

>>506966
Легаси в низкоуровневом программировании вообще больше чем где либо, и это не только про плюсы, в том же расте ситуация через n лет будет та же — никто на таких языках не хуячит стартапы, не проводит а/б тесты выкидывая код после, не хуячит новые фреймворки каждую неделю итд и будет куча легаси.
427 2507010
>>506903
Потому что мне впадлу делать темплейт или перегружать метод для lvalue и rvalue аргумента и делать emplace(std::forward), а так плюс-минус правильная семантика получается, не считая лишнего копирования string handle.
>>506906
Да, валидацию я не сделал. Надо при посещении таргета ставить в true некий флаг visited, чтоб при повторном попаднии сюда throw-ать exception про cyclic dependency.
>>506933
Я спать хотел уже. Сейчас сделаю.
Screenshot from 2022-11-06 09-55-24.png93 Кб, 955x853
428 2507015
>>506906
заебись, пофиксил
Screenshot from 2022-11-06 10-13-10.png261 Кб, 871x1929
429 2507024
>>507015
Ладно, надо еще для инклудов циклы детектить.
Screenshot2022-11-0613-49-00.png12 Кб, 615x74
430 2507079
>>507024
Лiл, словил флешбеки с периода когда я работал на львовской галере.
431 2507128
>>507079
Я тебя знаю?
432 2507130
>>507128
А я тебя?
image.png98 Кб, 1706x473
433 2507137
>>506563
Скопировал текст с картинки,переместил описание функции callback в private,но получаю следующие ошибки:
И если этот способ не работает,то как сделать способ со статическим методом?
434 2507138
Нужны ли в крестах декораторы? Какие задачи они могли бы решить? Из наиболее очевидного для меня - скрывать вермишель из шаблонов, но мб ещё для чего-нибудь пригодится? Думаю какой бы полезный пет проект написать.
image.png14 Кб, 512x512
435 2507176
>>507130
Если ты про пикрил, и уволился оттуда не раньше лета 2021-го, то может и пересекались.
436 2507205
>>2507204 →
Поменяй [](void ctx....) { на [](void ctx....) -> int {

Я обосрался и думал что там callback без возращаемого значения.

А статик сделать очень просто: добавить слово static перед объявлением callback в твоём оригинальном коде.
437 2507206
438 2507217
>>506969
вагнет бахмут возьмут
439 2507226
>>507217
Тюрьмы на россии опустеют намного раньше
440 2507229
>>507205
Сделал через статик,положив колбэк в private.
Спасибо,все заработало. Если не лень,то можешь объяснить,почему без static не работало,а с ним заработало?
441 2507269
>>507229

> Если не лень,то можешь объяснить,почему без static не работало,а с ним заработало?


Потому что без static ты определяешь метод класса, а с ним - функцию.
Указатели на метод класса это в плюсах вообще хуйня какая-то, которая может вести себя хуй пойми как.
442 2507602
>>506777
Конечно, Eigen3
443 2507608
>>506921
Тебе очень внимательно стоит прочитать про хранение чисел с плавающей точкой на компе. Твой вопрос некорректен, или переформулируй его в "как в цпп округлять до iго знака"
444 2507661
>>506921
Если тебе надо считать точные значения без ошибок округления флоата, юзай какую-нибудь либу для длинной арифметики, например, GMP или Boost.Multiprecision, в котором есть обёртки для GMP. Работает медленнее флоата, это цена за точность.
445 2507783
>>506921
что имею:
short i;
for (i=1; i<100500; i++)
std::cout << i;

как пофиксить это блядство? все расчеты мне ломает...
Илья 446 2507928
ребята кто может помочь срочно, как управлять сервоприводом без библиотеки, тапа что бы при определённом значении x он поворачивался
447 2507961
>>507928
if (x == n) {
servo.running = true;
} else {
servo.running = false;
}
Аноним 448 2508002
>>507961
а разве команда servo применяется без подключения библиотеки >>507961
449 2508003
>>508002
servo это структура которую ты сам определяешь в зависимости от того как и куда у тебя этот сервак подключен.
Илья 450 2508025
можешь написать пожалуйста как мне управлять углом типа, мне нужно три позиции 0, 90 и 180 градусов а значение задать что то по типу pos0→(0-255) = x>>508003
451 2508071
Есть ли более годные аналоги sfml?
452 2508072
>>508071
Для каких задач?
453 2508074
>>508072
2D игру делать
454 2508106
>>508074
Unreal
455 2508114
>>508106
Анриал слишком жирный для моей игры
456 2508186
std::rand совсем хуйня или под пиво пойдёт?
457 2508198
>>508186
Документация тебе на что?

>https://en.cppreference.com/w/cpp/numeric/random/rand


>There are no guarantees as to the quality of the random sequence produced. In the past, some implementations of rand() have had serious shortcomings in the randomness, distribution and period of the sequence produced (in one well-known example, the low-order bit simply alternated between 1 and 0 between calls).


>


>rand() is not recommended for serious random-number generation needs.

458 2508204
>>508198
Документация это документация, а мне нужно авторитетное мнение авторитетных байтоёбов.
459 2508228
Пишу свою ККИ, посоветуйте что почитать для написания бота для синглплеера.
изображение.png72 Кб, 991x820
460 2508294
>>508186

>совсем хуйня


Совсем хуйня на несколько строчек.

>под пиво пойдёт?


Под пиво пойдет.

Собственно, возьми и потестируй, что она выдает.
image.png24 Кб, 404x407
461 2508458
Помогите с этим дрочевом из массивов, функций и указателей в C. Не могу понять что не так, в функции на строке с printf всё выводится, а на следующей (с strcpy) выдает exception - segmentation fault. Как фиксить?

https://pastebin.com/3XcpCwU7
462 2508462
>>508458
Туда, где хранятся строковые литералы, нельзя ничего записывать.
463 2508509
>>508462
А, точно, функция не при чем. Тогда как сделать то, что я пытаюсь сделать? Видимо как-то изъебнуться с указателями, но я не понимаю как именно
464 2508520
>>508509
Очевидно надо сделать чтобы можно было записывать. Есть функции защиты памяти, берешь и снимаешь защиту.
465 2508607
466 2508665
>>508607
оплодотворение твоей мамаши
467 2508670
>>508665
Пошёл нахуй.
468 2508926
Есть какие-то надстройки над вулканом, чтобы не ебаться с низкоуровневым кодом, а получить высокоуровневую и быструю либу для рендера всего подряд?
469 2508951
>>508926
Любой графический движок.
470 2509043
>>508926
bgfx, magnum
471 2509126
Раз про вулкан пошло.
Знает кто как семплер прикрутить к индирект драв нв / шайдинг меш нв - шнйдерам?
К базовым вертекс - индекс все работает а к этим хз как.
472 2509300
Пацаны. Нубасный вопрос.

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

Хочу это дело упростить, завести что-то типа мапы, где ключом будет некий идентификатор, получаемый из std::type_info (поле hash_code), а значением указатель на функцию, которая умеет парсить соответствующий тип. При старте программы накидать в мапу функций под сериализуемые классы и вызывать их из кода, который парсит сообщения.

Протокол обмена бинарный, если что. Норм идея или можно сделать другим способом? Если у меня две отдельные проги, использующие одни и те же хедеры (частично), то будут ли значения std::type_info одинаковы для одних и тех же классов при компиляции проектов по отдельности?
473 2509303
Бля, понос ебаный. В мануале написано, что hash_code может различаться даже в рамках одной проги от запуска к запуску.
474 2509304
Стопе, мне ж ничего не мешает в качестве ключа использовать сам std::type_info, чи шо.
475 2509324
>>509304
Один байт. Сам назначишь. Индекс в массиве функций.
476 2509385
>>509300
Нет. Зависит от компилятора. Используй Boost.Serialization. Или заверни данные в protobuf например.
477 2509406
>>509300
А разве в начале класса с виртуальными функциями нет части, которая указывает на конкретный класс?
478 2509481
>>509406
Если я правильно помню, в начале класса должен лежать указатель на таблицу виртуальных функций. И по нему можно сказать, с каким классом по факту имеем дело.

Моя проблема в том, что выходит так, что надо самому придумывать некие константы, которые не будут меняться между запусками программы и компиляциями, т.к. программ у меня две -- клиент и сервер. И "идентификаторы" типов на них должны совпадать, для корректного определения, что за данные пришли по сетке. Я типа над этим голову ломал, можно ли сделать так, чтобы оно само выводило идентификаторы программно, а не я их зафигачил в коде в какой-нибудь enum.
479 2509505
>>509481
Нельзя, успокойся.
480 2509634
Обращаюсь к нормальным людям, а не к тем, кто прошел курс на степике по плюсам и кричит, что работы нет. Как обстоит вопрос со стажировками в Европе? Сильно лучше/хуже чем в РФ?
481 2509734
>>509634
#define нормальные люди
482 2509737
>>509734
люди люди
483 2509749
>>509737
Все люди - люди
484 2509767
>>509734
Хуй на блюде.
485 2509787
>>509767
Понял, принял, я тебя вычёркиваю из нормальных
486 2509883
В STL есть аналог memcmp() ?
487 2509884
>>509883
std::memcmp
488 2509892
Откуда пошло называть всю стандартную библиотеку плюсов STL? Всё равно что тётки, называющие системный блок процессором.
489 2509893
>>509884
не, по аналогии с std::uninitialized_copy(), которая заменяет memcpy()
490 2509898
>>509892
От любви к сестре таланта. Как еще кратко назвать стандартную библиотеку?
491 2509904
тред баз данных мертв, поэтому спрошу здесь
Нужно на SQLite сделать запрос, что если нужный текстовый столбик, в нужной записи не равен '' - пустой строке, то значит мы удаляем из этой строки один символ. Если все таки равен пустой строке, то мы берем текстовый столбик из другой записи.

На языке С++ выглядит так

string getString()
{
if(value1 != "")
{
value1.pop_back();
return value1;
}
else
{
return value2;
}
}
492 2509917
493 2509923
>>509917
В std:: входит и сишная библиотека, чего мне по существу вопроса как раз нужно было исключить.
494 2509926
>>509923
Неправда, сишные функции не в неймспейсе.
495 2509931
496 2509934
>>509926
А, стоп, это я неправ. Они объявлены и глобально, и в std::, лол? А зачем?
497 2509937
>>509934
Чтобы код на чистом Си мог компилироваться же.
Си никакого вообще понятия не имеет, что такое неймспейс.
498 2510122
>>509934
>>509937
Стоп, то есть вы хотите мне сказать что сишная функция и функция с тем же названием но из std:: никакой разницы в реализациях не имеют и работают и имеют одинаковую производительность?
499 2510207
Аноны. Чё-т не пойму, чё за хуйня.

Есть базовый класс с виртуальными функциями. Наследуюсь от него. Хедер (.h) и исходники с имплементацией (.cpp) наследников.

Пихаю класс-наследника в один хедер и цпп, сборка обсирается с ошибками undefined reference to vtable for и прочая паебень. Переношу этот же класс-наследник в другой хедер и цпп, эта хуедрыгало собирается нормально, без ошибок. Код один и тот же, инклюды все подключены. Чё за поебень? Проект на Qt, система сборки qmake. Типа эта параша линкеру не может в нужном порядке подпихнуть объектники чи шо?
500 2510288
Пиздец нахуй. Вощем, забыл в другие подпроекты добавить хедеры и исходники новые. А эта Qt-параша тупо собирает все проекты из дерева и естественно не сообщает, на каком из них обосралась. Сука, весь вечер убил на это дрочево.
501 2510336
>>509937
Да это-то понятно, зачем их в неймспейс запихнули?
502 2510337
>>510336
Так надо.
503 2510410
>>509406

>класса с виртуальными функциями нет части


У класса с виртуальными функциями нет чести, используй CRTP
504 2510475
Как скачать вижуал сейчас, если он без впн не качается?
505 2510479
>>510475
Через впн
506 2510480
>>510475
Через впн.
507 2510502
>>510475
С торентов
508 2510602
>>491360 (OP)
В прошлый раз вы послали меня нахуй, но я вернулся.
Как блять вычислить матрицу 1024х1024?????
вроде нашёл рабочий код, но не могу никак запустить проверить.
Я за плюсы вообще не шарю, а тут ещё и указатели какие-то. Можно в двух словах сказать как запустить код?
509 2510615
>>510602
Иди нахуй.
510 2510620
>>510602

> Можно в двух словах сказать как запустить код?


Выделяешь память для трёх матриц, заполняешь первые две, потом все три передаешь в функцию.

> float ⚹⚹


Задумчивое ебало питекантропа представили?
511 2510636
>>510620

>Выделяешь память для трёх матриц, за


Да, я так и хотел сделать, видимо это надо делать через new
512 2510642
>>510636
Ну типа.
В твоём случае
float ⚹⚹ptr = new float⚹ [N];
for(int i = 0; i < N; i++)
ptr = new float[N];

Но ещё можно исправить ту функцию. Поменять «указатель на указатель на float» на обычный «указатель на float» (звёздочку одну убрать), и к элементам обращаться не как ptr[j], а как ptr[i⚹N+j]. Правда массив в функцию придется передавать в виде reinterpret_cast<float⚹>(A), но зато объявление можно не менять.
513 2510644
>>510642

> ptr = new float[N];


ptr[ i] = new float[N];
быстрофикс
514 2510646
>>510642

> к элементам обращаться не как ptr[j], а как ptr[i⚹N+j]


к элементам обращаться не как ptr[ i][j], а как ptr[i⚹N+j]
ещё один быстрофикс
515 2510650
516 2510775
>>509634
Сейчас почти везде хайринг фриз, если ты про крупные конторы говоришь. Если живешь в РФ, то гораздо проще в яндекс на стажировку попасть, я думаю.
517 2511041
>>510648 (Del)
Смотря что ты делаешь
Если будешь удалять/создавать строки в матрице, то лучше первый вариант
Если будешь часто ее просто считывать, то второй
518 2511120
Почему мой .cc файл не видит самописные хедеры? Я конфигурирую с помощью сmake, - он видит эти файлы. Я понял, что он видит файлы потому что когда я открываю CMakeList.txt с помощью qtcreator всё окружение подгружается. При компиляциии пишет, что нет этого файла или директории.
519 2511165
>>511068 (Del)
Обычно так и делают, тогда можно просто
std::array<type, n*m>
Но это для матрицы фиксированного размера, если будешь вставлять элементы то будет худо
520 2511167
>>511120
Если при компиляции не видит хэдеры, значит симейк их не видит
Это нормально что Иде и билд система видят по разному

target_include_directories что то там в симейке пропиши
521 2511172
>>511165
Если для математических матриц, то лучше std::valarray

>матрицы фиксированного размера


А у матриц размер вобще меняется?
522 2511236
>>511167
Но я уже сделал include: общий файл выглядит так:

cmake_minimum_required(VERSION 3.16...3.21)
project(Gam)

include_directories(${PROJECT_SOURCE_DIR}/src/.cc)
include_directories(${PROJECT_SOURCE_DIR}/include/
.hh)

file(GLOB sources ${PROJECT_SOURCE_DIR}/src/.cc)
file(GLOB headers ${PROJECT_SOURCE_DIR}/include/
.hh)

add_executable( gg Gam.cc ${sources} ${headers})

Когда я добавил target_include_directories( ${PROJECT_NAME} PUBLIC include) выдало ошибку о том, что cannot specify include directories for target "Gam" which is not build by this project/
523 2511239
>>511236
У меня для тебя плохие новости, так уже никто не пишет симейки
Сейчас в модерн симейк оперируют таргетами

> target_include_directories( ${PROJECT_NAME} PUBLIC include)


{Симейк_продект директори}/инклуд попробуй
16492245923800.jpg139 Кб, 768x1024
524 2511251
>>511167

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

525 2511520
>>491360 (OP)

>thread #139



В 30 треде еще были стихи. Давно мы их не было в этом итт треде...
526 2511602
>>511520
в каких годах это было?
527 2511608
>>511602
Я уже и не помню, но скорее всего в районе 2016-2017.
i(15).jpg88 Кб, 1280x720
528 2511935
Анчуаны, поясните, пожалуйста, за кастомные аллокаторы. Моей программе нужно часто выделять много мелких фрагментов памяти одинакового размера и на просторах интранетов я слышал, что использование кастомного аллокатора под задачу может повысить производительность программы. Собственно, вопросы: Можно ли использовать разные аллокаторы в одной программе? Какие подводные камни нужно учесть при написании своего аллокатора?
Дарю шнекоход.
529 2511952
>>511935

>Можно ли использовать разные аллокаторы


библиотека std именно под это и спроектирована

>подводные камни


многопоточность
530 2511984
Разве в бусте нет готовых пулов?
531 2512032
Как дела в С++ обстоят с джунами?Есть смысл имея университетский уровень языка дальше его изучать и искать работу?
532 2512124
>>512032
Сначала лучше ищи работу, а потом изучай. Походишь по собесам - поймёшь какое подмножество языка востребовано и где надо поднажать.

Рынок труда сильно тряхнуло и часть компаний по всем позициям остановили найм, а часть - уехали. Сейчас есть некоторое оживление, но скоро праздники и мёртвый сезон до марта-апреля.

Стажировки ещё есть и джунов берут - 100% можно залететь на оборонку - там сейчас найм и денег подвезли (но всё равно пановать не будешь и специфика может вызвать отторжение). В брендовых конторах надо писать HRам и спрашивать чё как и когда появится. Либо чеерз преподов на кафедрах искать.

Если есть время - то лучше поднажми на Python. Комбо из c++/python/University B.S. in Math/Physics/Computer Science пробивает любой блок.
533 2512153
>>512032

>имея университетский уровень языка


Это какой? Когда в у меня был С++ в универе, мы только дошли до полиморфизма и виртуальных функицй. Исключения, шаблоны, всякие RAII уже не проходили, лямбды и многопоточность с моделью памяти тем более.

>дальше его изучать и искать работу


Ну С++ все еще живой и на нем пишут, так что если есть желание, то наверное есть смысл. С другой стороны, неплохо еще что-то уметь помимо самого языка программирования. То есть знать какие-нибудь кишочки сетей/ос или всякие штуки про графику. Ну или хотя бы Qt.
16550987515171.jpg13 Кб, 480x360
534 2512231

> 2022


> Cmake все еще не умеет в модули



когда же мне дадут в моих петах писать божественный import std;
535 2512319
>>512231
Ты дурак или троль?
536 2512321
>>512319
Нет, а ты?
537 2512370
>>512319
В чем он не прав?
Модули появились в с++20, скоро уже 23 выходит, а нормально собирать это все нечем
538 2512376
>>512370

> собирать это все нечем


Чел, msbuild уже почти два года умеет. И std в модули перенесено. Нахуй вы со всяким говном типа cmake сидите?
539 2512378
>>512376
Мсбилд в кроссплатформу не умеет
540 2512382
>>512378
Умеет. Студия только под винду, но собирать умеет под WSL или удалённый линукс, даже дебажить умеет. Линукс уже давно в винду встроен, странно было бы если msbuild не умел бы собирать кресты под него. Только тут уже следующий вопрос к тулчейну, GCC умеет в модули хоть?
541 2512387
>>512382

> собирать умеет под WSL


Ну это конечно классно, под мак бы еще собираться научиться

> GCC умеет в модули хоть


Да вроде умеет, кланг тоже
1614756652684.png29 Кб, 1252x301
542 2512393
>>512387

> Да вроде умеет, кланг тоже


Только почему-то частично умеют, не понятно что это значит.
543 2512394
Сделал связный список как по книжкам учат. Ну узел, который указывает на следующий узел, который и т. д...

Теперь хочу константный список и обламываюсь. Если объявить const List<T> list{}, то все внутренности класса списка становятся константами. Тупо даже нельзя обход списка сделать, т. к. это требует изменения указателей.
А самый прикол при всем этом, что можно создать метод, который изменяет значение в узле. То есть константность данных вообще никак не обеспечивается. Класс владеет только указателями и их изменять нельзя, а сами данные изменяй сколько хочешь.

Как это делается по-нормальному?
544 2512397
Что надо знать чтобы вкатиться на ждуна? Какие зп у ждуна? Можно ли найти работу ждуном по удалёнке на запад? Я не совсем нулевой, 2 года отпахал фуллстаком.
545 2512399
>>512394

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


А? При обходе ты же указатели в нодах не меняешь, а просто по ним проходишься

Ты как то поконкретнее вопрос задай

>>512397
Зависит от сферы, с такими вопросами тебе лучше сразу идти интересующие тебя вакансии смотреть что в них требуется
Универсального списка нет

>Какие зп у ждуна?


рандом

>Можно ли найти работу ждуном по удалёнке на запад?


Сейчас это сложнее чем когда либо но все еще возможно
546 2512400
>>512399

>Зависит от сферы, с такими вопросами тебе лучше сразу идти интересующие тебя вакансии смотреть что в них требуется


Универсального списка нет
Ну я в целом неплохо шарю за стандарты, STL, на литкоде чисто на плюсах 150 задач порешал, копал буст и qt. Что мне лучше сейчас освоить чтобы стать крутым и повысить шансы на вкат - параллельное программирование или программирование под линукс?
547 2512401
>>512400
Ну с таким списком я бы уверено уже на собесы ходил
Только если конкретная предметная область интересует какая то, то можно подучиться еще
548 2512402
>>512401
Вообще интересует меня машоб и нейронки. Но в них я только недавно начал вкатываться со стороны навёрстывания проёбаных лекций матана и с питона. А кушать уже хочется. Так что я пока тем что наиболее интересно буду заниматься на досуге, а пока руку в крестах набью.
549 2512403
>>510775
Понял, спасибо
изображение.png76 Кб, 804x436
550 2512411
>>512399

>А? При обходе ты же указатели в нодах не меняешь, а просто по ним проходишься


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

>Ты как то поконкретнее вопрос задай


Как обеспечить константность данных в списке, сохранив при этом работоспособность самого класса?
551 2512412
>>512411

>А если собрать это все в класс списка, то нужно хранить как минимум указатель на текущий узел. У меня это сurr_. И константный указатель никуда не сдвинется.


Если ты только так хочешь список обходить, то никак тебе константность не обойти

А вобще обычно хранят только начало и конец списка
552 2512418
>>512412

>Если ты только так хочешь список обходить


Дело не в том, что я уперся в такую хотелку, а в том, что я других реализаций в литературе не встречал.

>хранят только начало и конец


Это не суть. Реализация с пикрил перегружена избыточным функционалом просто в порядке упражнений.

>А вобще обычно хранят только начало и конец списка


Ну а как хранят, в виде чего?
Если это указатели на ноды, то тут те же самые проблемы.
image.png39 Кб, 586x189
553 2512427
>>512411
че это и нах оно в классе списка?
554 2512430
>>512427
Предыдущий узел и текущий узел.

Во всяком случае на первый взгляд выглядит дешево и сердито в плане реализации.
555 2512432
>>512430

>Предыдущий узел и текущий узел.


Точнее указатели на...
556 2512436
>>512400

>Что мне лучше сейчас освоить чтобы стать крутым и повысить шансы на вкат - параллельное программирование или программирование под линукс?


Бамп годному вопросу
557 2512437
>>512432
удали и сделай нормальные итераторы, с операторами ++, *
погугли как их делать для связных списков
558 2512439
>>512437

>сделай нормальные итераторы


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

Чего я на самом здесь и сейчас хочу - это выяснить пределы возможностей такой вот, широко распространенной в книжках, архитектуры. И со спокойной совестью записать себе в блокнотик, что поцаны так не делают.
559 2512442
>>512439
ну объяви их mutable тогда
560 2512444
>>512442
Тогда там все поля, кроме размера списка, становятся мутабельными, что практически делает бессмысленной константность.
561 2512448
>>512442
И это все равно не устраняет проблему, что данные в нодах можно изменять, вне зависимости от константности списка.
562 2512450
>>512444
покажи сам обход списка, походу ты там хуйни какой-то навалил
563 2512453
>>512450

>ты там хуйни какой-то


Ну во-первых, мопед не мой.
Пикрил 1 - так выглядит обход снаружи класса, то есть через публичные методы.
Фактически обход реализуется через метод(ы) next() списка и узла.
564 2512456
>>512453
Пиздосики.
Вот тебе плюс-минус нормальный односвязный список.
https://gcc.godbolt.org/z/5551PP3j3
Изучи, можешь ещё классами обмазать, для вязкости.
565 2512465
>>512456

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


Помесь С/С++
566 2512486
>>512465
Я тебе говорю, обмажь ооп и шаблонами, если хочешь. Тут всё элементарно, в образовательных целях, лучше хер придумаешь.
567 2512512
>>512370
Вопрос в том нахер это говно в спп нужно если и с кдассическим инклудом все работает?
568 2512529
>>512512
Cразу видно кто ни разу не собирал ничего сложнее однофайловых лаб.
569 2512541
>>512529

>кто ни разу не собирал ничего сложнее однофайловых лаб


А серьезно, кто этим занимается?

Типа представляю себе такой бизнес-кейс. Мы написали такую йобу, что сами собрать ее не можем. Нам срочно нужен сеньер-помидор по сборочкам.
570 2512620
>>512512
Потому что инклуды говно, которое тащит за собой всё что в файле находится, а не только то что тебе нужно
С модулями ты можешь спокойно всю стандартную либу тянуть imort std, а собираться это будет быстрее чем #include <iostream>

>>512541
Про скорость сборки что то слышал? Или в университете еще не проходили?
571 2512625
Что мне лучше сейчас освоить чтобы стать крутым и повысить шансы на вкат - параллельное программирование или программирование под линукс?
572 2512887
>>512512
Потому что т.н. инклуды в схх по факту большая часть исходников.
573 2512992
Котаны, есть где-нибудь статья, книга, или шпаргалка, как исправить легаси код?

Ну вот допустим я знаю что вместо ручной инициализации нового элемента и ставки в push_back можно записать emplace_back(аргументы конструктора). Где еще почитать подобные советы по другим классам и функциям STL?
574 2513043
пишу прогу многопоточного умножения матриц, мне нужно, что если какой элемент матрицы вычисляется одним потоком, то другой поток, при обращении к этому элементу, переходил к вычислению другого элемента. Все элементы матрицы обернуть в mutex и проверять try_lock, чтобы понять, что элемент заблочен?
575 2513112
Кто-нибудь пробовал амудешный компилятор для линуха? Там новая версия неделю назад вышла, год прошёл с последнего релиза.
576 2513162
>>513112
Для линука существует всего два компилятора:
- GCC
- Clang
577 2513169
>>513162
линупса не существует, это подсистема в шиндовс
578 2513171
>>513169
Это прошивка для роутеров.
1668363070353.png382 Кб, 1152x2304
579 2513185
Анон, поясни тупому, как правильно делается move?

struct S2{
std::list<Foo> foo2;
void append(Foo &&f)
foo2.empalce_back(std::move(f));
}

struct S{
std::list<Foo> foo1;
void func() {
S2 s2;
for(auto&& f:foo1) s2.append(std::move(f));
}
}

Не работает будто бы перемещение, элементы копируются блядь. Что я не так делаю?
580 2513190
>>512394

> константность данных вообще никак


для этого надо писать const List<const T>
1.png77 Кб, 951x935
581 2513250
>>513185
С хуев ли не работает, если работает? Если определишь конструктор перемещения, будет перемещать. Даже если не определишь - компилятор сгенерирует неявный конструктор, если у полей класса есть конструкторы (если нет, ошибку компиляции выдаст).
Хотя если ты определил явно какой-то из конструкторов копирования, но не определил конструктор перемещения, то он конструктор перемещения не сгенерирует, и будет эти твои фу копировать.
582 2513262
>>513250
Спасибо за инфу про конструкторы, что-то я забыл про это. Я когда в отладке смотрел, выглядело так, что перемещение не срабатывало.

Как я понимаю, до последнего emplace_back, отладчик будет показывать, что объект все ещё принадлежит старому списку?
583 2513303
>>512992
Вроде у Майерса в "Effective Modern C++" все подобные ништяки расчехляются.
584 2513304
githUB
doUBle
youtUBe
pUBlic
585 2513359
>>513262
Я понял, в чём твой затуп, у тебя, видимо, представление о перемещении в C++ как о чём-то радикально отличном от копирования, но нет. Объекты из исходного списка никуда не денутся, просто сами эти объекты могут измениться, если ты задал в конструкторе перемещения, чтобы исходные объекты менялись.

Вот глянь здесь пример, как можно перемещение использовать
https://onlinegdb.com/hBpna9qwpj
У тебя у Foo есть какие-то тяжеловесные данные (массив чисел размера сотня миллионов, например). Копирование такого объекта потребовало бы выделить в новом объекте память под такой же массив чисел и скопировать память массива из исходного элемента в новый - это долго. С помощью перемещения можно определить поведение так, чтобы из исходного объекта просто копировался указатель на эти данные, а в самом исходном объекте этому указателю присвоить nullptr. Исходный объект остался на месте, просто владение памятью ушло другому объекту.

Если ты не определил конструктор перемещения, то сгенерируется неявный конструктор, который будет вызывать конструкторы перемещения у каждого своего поля, у которых есть явные или неявные конструкторы, а поля элементарных типов или POD-типов (например, обычные int или double не указатели), просто скопирует.
image.png25 Кб, 680x137
586 2513450
Почему так
template< class T >
typename std::remove_reference<T>::type&& move( T&& t ) noexcept;

а не так
template< class T >
T&& move( T&& t ) noexcept;
изображение.png44 Кб, 1104x436
587 2513463
>>513450
Потому что std::move() ничего никуда не двигает на самом деле. Все, что она делает, это возвращает rvalue ссылку на свой аргумент.
Но если T - ссылочный тип, то T&& свернется в обычную ссылку, чего нам не надо.
588 2513478
>>513463

> (T&&)&& = T&


Понял принял

Что то чем глубже в плюсы погружаюсь, тем более странные вещи наружу вылезают
589 2513480
(T&)&& = T& *
sage 590 2513481
&(&(&(&T&&)&&)&&)&& = &&&&&&T*
591 2513519
>>513481
>>513480
>>513478
>>513463
Забавно как референс из способа передавать параметры в функцию, превратился вот в это вот

Что из себя семантически представляет референс в плюсах 2022 года?
592 2513589
>>513519
Переменная (с non-static data member в принципе так же, но чуть сложнее) не-ссылочного типа
T v = init;
связывает переменную v с объектом, который создаётся определением этой переменной (An object is created by a definition …. [0])

Для переменной ссылочного типа
T& v = init;
объект, с которым свяжется переменная, определяется инициализатором init.

Собственно, это как надо рассказывать про ссылки. А не "пук-среньк, ну это как указатель, только автоматически разыменовывающийся, понятно же, да? кхе-кхе, мням"

[0] https://timsong-cpp.github.io/cppwp/n4868/intro.object#def:object
593 2513614
>>513589

>Переменная … связывает переменную


*Объявление переменной … связывает переменную
Снимок экрана 2022-11-14 в 16.40.11.png23 Кб, 500x93
594 2513753
бляя
595 2513764
>>513753

>C++


>[]


Будь добр, съеби
1573863663552.png426 Кб, 512x768
596 2513819
>>513764
В крестах устарели массивы?
597 2513829
>>513819
Да, их оставили для совместимости с сишкой.
Снимок экрана 2022-11-14 в 19.06.52.png27 Кб, 1120x190
598 2513843
>>513764
я имею ввиду то что в крестах не поддерживается великая сишная возможность которая автоматически обравнивает память под структуру с растягиваемым массивом
599 2513849
Почему есть структура пара, но нет структуры тройня?
600 2513851
>>513849

> почему нет структуры тройка, не нет четверки?

601 2513853
>>513849

> почему есть структура тройка, но нет четверки?

602 2513855
>>513849
Потому что есть структура тапл.
603 2513857
>>513855
Почему есть структура пара когда есть структура дабл?
604 2513882
>>513857
Так дабл - это просто алиас для пары флоатов, если не знал
в stl double определяют вот так
using double = std::pair<float, float>;
605 2513884
using long long double = std::pair<std::pair<float, float>, std::pair<float, float>>;
606 2513886
>>513882
Тьфу, да какой дабл. Тапл же. Ты же сам про него писал. Нащо пара если есть Тапл?
607 2513889
>>513884
using long long double = std::tuple<long, long, double>;
608 2514183
Как правильно перегрузить метод класса, чтобы он принимал на вход как обычную ф-цию, так и метод какого-то другого класса
Делаю так:
class TTimer
{
...
void Tick(float threshold, void (⚹func)());
template <typename T> void Tick(float threshold, void (T::⚹func)());
...
}
...
timer.Tick<Graph> (1e6/60, graph.Draw);

Пишет вот это:
undefined reference to `void TTimer::Tick<Graph>(float, void (Graph::⚹)())'|

ЧЯДНТ?
609 2514184
>>514183
Graph graph забыл, но не суть.
610 2514215
>>514183
Хз ты херни нагородил.
Нахер там темплейт? Я такое делал просто через стд функцию в аргументе, а при вызове шли лямбдуи в ней что угодно, хоть класс хоть что. Вме работает.
611 2514216
>>514215
Можешь скинуть пример, как правильно, если не затруднит?
612 2514253
>>514216

//где то сверху
#define CALLBACK(...) std::function<void(__VA_ARGS__)> const&

//твоя функция/метод
.. funcname(args... , CALLBACK() callback)
{
...
callback();
}

//вызов
..funcname(input args... ,
[&]()
{
// любая функция
});

//профит
613 2514281
>>514253
Не знал про такое. Чуть позже попробую
614 2514282
>>514281
древнейшая тема, просто раньше это делали через (воид*)
615 2514286
>>514183
Но, все таки, интересно, почему это варик не заработал? Выглядит, вроде, правдоподобно
616 2514289
>>514286
Определять функцию (шаблон функции) не пробывал?
617 2514290
>>514289
не совсем понял тебя
618 2514291
>>514286
как минимум у твоей *фанк нет н ислова про аргументы
619 2514292
чел тебе уже написали решение - бери и радуйся жизни
620 2514293
>>514291
Ну... да, но что это меняет? Это.. сорян, я ньюфаг если что пока что, мб туплю
621 2514294
>>514292
Да я так, в целях понимания синтаксиса
622 2514574
Есть хитрость заэкранировать все спецсимволы в строке разом?

Под виндой нужно передать путь в sublime.exe.
Но это работает нормально только если продублирую бэкслэши \\.
623 2514604
624 2514878
Я хочу создать вектор из трёх чисел, при этом не выделяя память на саму структуру вектора. Т.е. как бы указатель, но не на вектор , а на элементы вектора. Можно ли это сделать через стандартный <vector>?Или есть другие идеи
625 2514882
>>514878
Твой вопрос звучит как "хочу создать вектор, но не хочу создавать вектор". Объясняй лучше.
626 2514884
>>514882
В том и дело, просто хочу водить три переменные в программе вместе и думаю как это сделать без доп излишек на память.
627 2514886
>>514884
int arr[3];
628 2515025
>>514884
struct TriPeremennbih {
T raz;
Tdjva;
T tri;
}
629 2515051
>>515025
Туда жа можно допилить юнион для индексации.
16204761865730.jpg94 Кб, 736x736
630 2515206
>>515051
union
{
struct {} _0;
OdnaPeremennaya _1;
DvePeremennyh _2;
TriPeremennyh _3;
}
631 2515229
Не так толстяк
632 2515501
Констекспр функции это конечно классно, но как сделать компайл тайм онли функцию
Я хочу функцию чтобы каждый параметр в ней был констекспр
Что то кроме темплейтов и дефайнов придумать можно?
633 2515504
>>515501
Кодогенерация
634 2515667
>>515501
consteval
IMG20221113225521030.jpg129 Кб, 955x1389
635 2515669
Анон, такой вопрос. Существует ли ирл в крупных программах такая штука:
- меняются условия выполнения программы, происходит такое редко, раз в 5 мин
- под новые циферки компилируется матем. библиотека, написанная на шаблонах
- через длл новый матем. модуль, который через динамический линк подключается к основной программе
- ????????
Профит, супер-пупер быстрая либа.

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

> Называется ли это рефлексией?


Это называется JIT-компиляция...
Проследуй в другой тред.
637 2515673
>>515667
Параметры всё ещё не констекспр, только возвращаемый
638 2515683
>>515671
Будто в крестах нет библиотек с реализацией JIT.
639 2515707
>>515669

> супер супер быстрая либа


Компиляция это одна из самых медленных частей плюсов
640 2515749
>>515669
Какие еще условия меняются? Процессор выдернули?

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


Эбалло спермобляди?
641 2515756
>>515669
За чем
Можно ведь все варианты предсобрать и в хуй не дуть, а ты хочешь жрать говно на ровном месте
642 2515974
>>515683
Есть Managed C++ и он не взлетел. Совсем.
643 2516011
>>515974
Это не C++, а совершенно другой язык.
644 2516031
>>516011
Что в нём другого? Ссылка не &, а ^?
Обычное расширение, как compiler extensions или cuda.
645 2516033
Делаю небольшую шляпу под винду для курсовой,и возникла проблема.
Программа имеет два режима доступа: клиентсткий и админский. Для того чтобы войти в админку,нужен будет пароль. Как мне реализовать хранение и изменение этого пароля? Ну и чтоб его нельзя было спиздить,удалить через файловый менеджер или прочитать в plain text? Базу данных в одну строчку сделать? Просто этот вариант мне не кажется оптимальным для одного пароля
646 2516045
>>516033
Хранить хеш пароля на сервере или в другом месте, куда у текущего пользователя нет доступа, а у программы есть. Любые попытки спрятать пароль где-то у пользователя не надёжны.
647 2516088
>>516045
Моя программа - это экзешник на компьютере,который делает базу данных для своей работы. Думаю,путь лучше пароль лежит в базе данных,но хешированный.
Поэтому вопрос другой. Как организовать хеширование на плюсах? Есть ли нормальные библиотеки? А то только реализации sha1-2-3 от Васянов на гитхабе есть,которыми не понятно как пользоваться
648 2516097
>>516088
OpenSSL?
649 2516114
>>516088
Если пользователь узнает хеш пароля, он может запустить твою программу в дебаге/декомпилировать и подсунуть хеш алгоритму проверки пароля, ему даже оригинальный пароль знать не надо. Разве что ты рассчитываешь, что никто этим заниматься не будет.
650 2516137
сделали офер на испыталке 60к, после испыта 70к. Опыта коммерческой разработки на крестах - нуль, изучал в вузе и в свободное время. Соглашаться?
651 2516152
>>516088
Xor в цикле. Для лабы сойдет.
652 2516154
>>516137
Если искал больше месяца, то да.
653 2516168
>>516137
Ну смотри. Сейчас на носу праздники и скорее всего следующий раунд найма, как обычно, начнётся в феврале-марте. Итого ты потеряешь 3 месяца деньгами. Чтобы компенсировать выпавшие доходы тебе понадобится весной устроиться на 75к минимум (60 + 180/12).

К лету у тебя уже будет 0.5 коммерческого и осенью можешь просить повышение или перекатываться на лучшие деньги или условия.

Ну и в праздники НГ + февральские + мартовские будешь пинать хуйцов за зарплатку.
654 2516429
как занулить счетчик std::vector чтобы не удалять выделенный им кусок памяти?

То есть хочу что-то такое
где-то один раз v.resize(n);

далее вставлять в v с нулевого индекса, потом сбросить и снова вставлять с нулевого. Ну чтобы при каждой "очистке" оно не выделяло память
655 2516432
>>516429
Это implementation defined, но вряд-ли вектор будет освобождать память при каждом clear.
656 2516433
Стандарт гарантирует только сохранение размера зарезервированной памяти в смысле, а не ее расположение.
657 2516435
>>515707
Я же как раз указал время на смену процесса, например, 5 минут. Окей, пусть будет раз в час, а компиляция такого ядра занимает ~минуту
>>515749
В моей модели ядро с матаном, и предполагается, что меняется размерность матриц и константы. Матан на Eigen3 с константыми матрицами
>>515756
Можно, но сложность и объем невероятно возрастают по мере увеличения аргументов.

Короче, нечто схожее - CERN ROOT
658 2516604
>>516435
Что мешает раз в час делать system("sed ... && cc ...")?
659 2516731
как написать свой static_assert()?
660 2516913
>>516731
Посмотри в исходниках стандартной библиотеки.
661 2516941
>>516731
template<bool b>
static_assert<b>();
template<>
static_assert<true>() {}
662 2516959
>>516941
Кхм, слегка зафакапил

template<bool b>
struct static_assert;

template<>
struct static_assert<true>{};
663 2517078
>>516088

>Есть ли нормальные библиотеки?


Помнится давеча в одном проекте Botan использовался, вроде нормально было.
664 2517153
Как вкатиться в мультипоточку/асинхронку и вот это вот всё?
665 2517196
Чем эти две сигнатуры отличаются?

void foo(double f(double x));
void foo(double (⚹f)(double x));
666 2517261
>>517196
Одно указатель другое нет

что то я указатели на функции так редко виду, что даже не уверен что первое скомпилиться
667 2517275
>>517261
Скомпилится. В cppinsights первое приводится ко второму.
Может, в каком-то стандарте добавили такой синтаксический сахарок.
мимо
668 2517322
Как управлять сервоприводом без использования библиотеки servoh?
то есть по даташиту через analogwrite, нужно посчитать какой шим подать можете подсказать как это сделать?
669 2517325
Анон, имеется вот такое примечание к заданию:
читать из stdin построчно
и
завершить работу при считывании конца файла из stdin

и у меня максимально тупой вопрос - конец файла в данном случае вообще это что?
передавать данные в программу как int argc, char *argv[] ?
или конец файла это какое-то магическое сочетание клавиш при вводе в консоль? Спасибо за внимание
670 2517332
>>517325
вот так вот правильно:

while (std::cin) {КОТ/KIT}
на ctrl + Z выполнение заканчивается

?
671 2517347
>>517275

>в каком-то стандарте добавили такой синтаксический сахарок


Мне попалось в книжке, которая еще даже про 98 стандарт не знает.
Вообще это еще с сей идет, что имя функции само по себе кастится к указателю, так же как с массивами.

Просто тут контекст другой - объявление, поэтому не очевидно почему и как оно работает.
672 2517466
Изучила основы плюсов, а как научиться решать алгоритмические задачки? Может подскажет тут кто-нибудь? С чего начать?
673 2517484
>>517332
правильно
674 2517514
Что крестобляди, страшно? Растобляди уже наступают вам на пятки.
675 2517516
>>517466
прочитай теорию базовую по алгоритмам, тот же грокай алгоритмы
потом идешь решать задачи, можно с литкода
что не может решить за час, смотришь и понимаешь решение, закрываешь его, пытаешься по памяти реализовать
если что то не понятно изучаешь

и так решай пока не придет умение
676 2517529
>>517514

> наступают


Разве что в своё говно, вытекшее из штанины. Либ-то нет. А что есть находится на стадии "на прошлой неделе придумал крутую идею, пилим с пацанами". Как бы мне он не нравился, но пользоваться им тяжело. Код компактнее, но надо полностью переписывать то что уже давно есть на крестах в либах. Биндинги на сишные/крестовые либы отдельная тема - либо пользуешься всратыми автобиндингами, либо сейф-огрызками. Делать ансейф религия не позволяет, а полностью покрыть API не могут.
677 2517542
>>517529
Да все бы ничего, но эту хуйню уже в ядро Линукса пропихнули. И скоро придется помимо gcc/clang иметь rustc в системе. Т.е. для сборки системы нужно знать два языка и иметь два компилятора.
678 2517545
>>517466
Кормен
о
р
м
е
н
679 2517618
>>517516
>>517545
Спасибо! Еще вопрос, не слишком ли хардкорно учить алгоритмы на плюсах? Питон в этом плане лучше или в целом разницы никакой?
680 2517626
>>517618
Если хочешь реально шарить - то лучше вообще их на сишке дрочить, без всяких плюшек в виде stl, фичей питона или js. Меня без иронии взяли на первую работу после того, как я сказал что всего Прату прочёл и все задачи из него же сделал. Ещё и котлету неплохую дали.
681 2517627
>>517626

>Меня без иронии взяли на первую работу после того, как я сказал что всего Прату прочёл и все задачи из него же сделал. Ещё и котлету неплохую дали.


Прату по няшной или плюсам?
682 2517631
683 2517642
>>517618
Не слушай додиков, чтобы за алгоритмы шарить на плюсах писать не обязательно
Но все таки если собираешься плюсов ком становится, то лучше на плюсах
684 2517695
>>517466

>Изучила


ты тян или петян? друг интересуется
685 2517702
>>517484
Спасибо
686 2517713
>>517695
У меня хуй есть, выебала бы твоего друга.
687 2517718
>>517713
ясно
были тут у нас уже тяночки с хуем
еще один шизик
688 2517720
впрочем, история движется по кругу
689 2517729
>>515669
Julia кажись такое умеет. Для мат модуля самое то.
А перекомпилировать eigen на ходу как-то стрёмно. Ебанется на второй неделе работы и хрен проссышь почему
690 2517833
В чём код писать? Clion от jb пойдет?
изображение.png1,7 Мб, 1024x682
691 2517842
Как сохранять значение между рекурсивными вызовами функции?
Внешний параметр как-то неэлегантен.
692 2517844
>>517833
Visual Studio
693 2517846
>>517844
То есть ты сидишь на винде?
694 2517850
>>517842
Через аргумент с дефолтным значением.
695 2517853
>>517846
А ты на чём сидишь? Раз не указал ОС, значит, тебе нужно для винды.
696 2517888
>>517853

>А ты на чём сидишь?


На стуле и антидепрессантах. Чё такой пытливый?
697 2517889
>>517888
А теперь будешь сидеть на вижуалстудии.
698 2517891
>>517889
Я уже сижу на вскоде и перекатываться не собираюсь.
699 2517897
>>517891
А теперь собираешься.
700 2517899
>>517897
Не твой личный гвардеец
701 2517950
братишки, как засунуть в map указатель на функцию? в качестве второго значения не ключа
702 2517951
>>517842
Static
703 2517952
>>517950
можно хотя бы пример какой-нибудь где элементу контейнера stl присваивают значение указателя на функцию
704 2517976
>>517950
Укажи в качестве типа значения указатель на функцию или std::function.
705 2517977
>>517951
Дед, ты?
изображение.png38 Кб, 964x504
706 2517981
>>517950
Пример крч.
707 2518062
>>517833

>В чём код писать?


NeoVim/emacs + gcc/clang + lsp + gdb/lldb
708 2518119
>>518062

>lsp


SOLID-шиз, ты узнал тебя по твоему говнокоду.
709 2518159
>>517950
void my_func(int i) { std::cout << i; }

std::map<int, decltype(&my_func)> my_map;
my_map[0] = my_func;

my_map[0](42);
710 2518164
>>517977
Он имел в виду thread_local.
711 2518167
>>517977
Он имел в виду thread_local.
712 2518180
У вас вообще девушки были хоть раз в жизни, задроты-байтоебы? Перекатывайтесь на js, пить смузи в опенспейсе и чпокать классных эйчарок, лениво пописывая код одной рукой.
713 2518207
>>518180

>пить смузи


Я не люблю смузи, я пью кофе и тёмное пиво

>в опенспейсе


Хз что это такое, но звучит как какая-то социоблядская хуйня которая мне не нужна.

>чпокать классных эйчарок


Я уже давно не получаю удовольствия от тупого чпокинга. Да и вообще я уже смирился с тем, что найти девушку которая была бы в моём вкусе в современном мире почти что нереально так что я сублимирую в опенсорс.

>лениво пописывая код одной рукой.


Я в прогерство ради челенджа вкатывался, а не ради того чтобы два часа размышлять над тем, какие цвета выбрать для градиента на фоне кнопки.
714 2518211
>>518119

>SOLID-шиз, ты узнал тебя по твоему говнокоду.


??????

Протокол языкового сервера (Language Server Protocol - LSP) - это способ общения с языковыми серверами (такой же как HTTP или FTP).

Языковые серверы - это специальные программы, работающие на обычных серверах. Они принимают мета-состояние редактора, в котором вы пишете код (например, текущая позиция курсора внутри редактора, токен над которым находится курсор), и возвращают набор действий или инструкций - какой токен должен быть следующим, что должно произойти, когда вы нажимаете CMD/Ctrl-клик на этом токене, и так далее.
715 2518213
>>518180

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


Лол, ты не к тем людям приходишь маня. Здесь твоя мирская хуйня никому не нужна. Если бы мы хотели заниматься хуйней, то и без твоего совета разобрались бы.
716 2518234
>>518186 (Del)
>>518207
>>518213
Проснулись, байтоебики.
Вы когда на свидание с тянкой ходите, говорите, что работаете грузчиком или строителем? Или кем-то еще, но не кодером-сутулым. Хотя, какие вам девушки, вы в своих конторках подвальных только мужиков видите целыми днями, да и не самых красивых. Поэтому зачастую писаки на плюсах это латентные геи.
717 2518251
придумываю дизайн лайт версии сишки.плюсов, что скажете?
718 2518259
>>518234

>Вы когда на свидание с тянкой ходите


Зарепортил за жир.
719 2518262
>>518234
Алсо, постоянно говоришь о ебле и оцениваешь кого-то со стороны красоты - ты, а латентные пидоры - мы. Интересно...
720 2518263
>>518251
Я бы лучше плюсы читал, чем это
721 2518265
>>518251
Что за мода сейчас во всех модненьких язычках писать тип справа от имени переменной/обьекта/массива?
722 2518273
>>518265
читаемость повышает

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

> лайт версии сишки.плюсов


> референсы


ну и что они в твоей новой сишечке семантически значить будут?
723 2518282
>>518273

>читаемость повышает


Как-то не очень... Да и каким образом, если между мыслями в голове "переменная А целочисленного типа(А int := 10)" и "целочисленная переменная А (int A := 10)" нет особой разницы?
724 2518285
>>518234
Ну всё, ты меня разъебал. Перекатываюсь в среакт.
725 2518294
>>518285
Ну ты давай не пизди на Реакт то, чмонь. Понимаю, что ты ёбик-дрочер-сутулый любишь всё усложнять. Ты бы веб до сих пор на жаба-апплетах писал, была б твоя воля!
726 2518306
>>518251
Я думаю, на моменте (matrix i, j) ты и сам понял, какой это кринж.

> FmtPuts "%s" tme


Ты ведь знаешь, зачем в printf нужна строка форматирования, в которой есть эти уродливые %d, %f, %s и т.д?
Screenshot2022-11-2014-14-28.png78 Кб, 623x551
727 2518307
>>518294
Да не трясись ты. Просто признай что ты залётная вниманиеблядь, ляг на пол, закрой уши и жди спасения.
ошибка.png14 Кб, 503x217
728 2518318
>>517981
>>518159
Спасибо, вот только что-то не получается у меня, в чём ошибка не понимаю
729 2518322
>>518282

> Да и каким образом


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

Но да, для типа длино несколько символов, как INT вобще пох где он стоять будет, хоть в середине
730 2518323
>>518295 (Del)
Ты сказал?
731 2518331
>>518328 (Del)

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


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

> почему все языки пишут типы справа


> потому что читаемее


> Ты тоже аргументов не особо отсыпал.


Ну если у тебя есть какие то другие теории, почему тип справа пишут ВО ВСЕХ современных языках, я готов выслушать
732 2518339
>>518318
Этот код работает.
https://ideone.com/i5pBgU

У тебя в классе Calc объявлено поле с таким же названием - ошибка из-за коллизии имён.
733 2518352
>>518339
Спасибо, но не помогло - закомментил вообще всё в классе
734 2518355
>>518346 (Del)

> больше буковок


> больше инфы


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

> У тебя тут сразу куча ошибок: к большинству, к авторитету.


> Да все современные языки пишут не правильно и не логично, хорошо что иван с с++ треда двача знает что как и лучше


Братан, я понимаю когда 1-2 языка были бы такими, но сейчас вся индустрия на это переходит, у тебя в голове ничего не звинькает когда ты это осознаешь?
735 2518411
>>517951
Не, не то.
ошибка.png14 Кб, 375x550
736 2518422
>>518339
>>518352
вот это вот не работает, не могу понять почему
https://ideone.com/wvjHju
737 2518433
>>518328 (Del)

>раз уж в нашей цивилизации читают слева направо,


Вот именно, что слева направа!
Конпелятор разбирает объявление начиная с имени и мечется то направо (преимуществено), то налего.

В итоге получается порядок даже не справа налего, а изнутри и куда придется.
738 2518463
>>518346 (Del)

>Вот из такого разговорного синтаксиса все и следует.


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

>Так сложился естественный язык.


В общем виде синтаксис объявлений Си далек от интуитивно понятного.
И любое его объяснение строят на том, чтобы показать как переводится си-объявление в линейно читаемое слева направо объявление. И имя там стоит в крайней левой позиции.
739 2518523
>>518422
Функция-член класса отличается от обычной функции тем, что у неё есть первый неявный параметр Calc this. То есть void Calc::Namig() на самом деле это void Naming(Calc). А function у тебя принимает <void()> == void func().
И тогда либо:
std::function <void(Calc*)> Command_Function;
Command_Function = &Calc::Naming;
Либо обёртка bind, приводящая к void() с неявной подстановкой this:
Command_Function = std::bind(&Calc::Naming, this);
740 2518526
>>518523

>Calc⚹ this


>Calc::Namig() на самом деле это void Naming(Calc⚹)

741 2518542
>>518523
>>518526
Спасибо
добра тебе и твоему дому и мира во всём мире
742 2518552
>>518322

>Таким когда у тебя тип ахуеть какой огромный, а название переменной что то вроде name


>И ты пока через весь этот тип глазами пробежишься, название переменной еле заметишь, тем более если их несколько


Пример из жопы, если честно.
743 2518591
>>518331

>Ну если у тебя есть какие то другие теории, почему тип справа пишут ВО ВСЕХ современных языках


Банальная мода и неосиляторство написать нормальный синтаксический анализатор, чтобы распарсить код. Парсер у Си-подобных языков намного сложнее, чем парсеры у новомодного шлака, потому что семантика синтаксиса Си зависит от контекста, когда же у новых язычков все более однозначно(особенно если используются ключевые слова func, var, let, и т.д.). Вот и все.
А про "удобство" чтения это хомякам заливается, чтобы оправдать свою лень/нежелание/неосиляторство. Ибо даже лапша общелиспа становится удобной и читаемой со временем.
ошибка.png45 Кб, 893x472
744 2518663
>>518523
>>518526
эх, не далеко у меня получилось уйти самому

как теперь вызвать функцию из map-контейнера-поля объекта класса через функтор?

https://ideone.com/87ZEEH

Как научиться в этом разбираться, в паре учебников которые я осилил ни намёка нет на то как решать подобные проблемы(?
745 2518668
>>518663
функцию из std::fanction в map-контейнере-поля объекта класса через вызов функтора
фикс
746 2518676
В cmake compiler options прямо без обработки кидаются к компилятору? То есть если флаги разные названия на разных компиляторах имеют, то может не заработать?
747 2518680
>>518663
Command_Name["var"](this);
748 2518712
>>518680
И ещё раз огромное спасибо!
749 2518737
>>518676
всё так
нужно проверять с каким компилятором работаешь в данный момент
750 2518750
>>518552
Видел как тип у итератора выглядит без auto?
Да и тип в основном длиннее переменной

>>518591

> семантика синтаксиса Си зависит от контекста


Ты это за хорошее считаешь?

> становится удобной и читаемой со временем


Я конечно понимаю что человек ко всему привыкает, но это не оправдывает решений не удобный у языка

> все равно привыкнут, лол

751 2518763
Когда уже модули заработают? Чет нихуя пока, никак не добавят везде. А было бы круто. Я так понимаю, и компилилось бы быстрее иногда, и меньше проблем с определениями
752 2518764
Когда уже модули заработают? Чет нихуя пока, никак не добавят везде. А было бы круто. Я так понимаю, и компилилось бы быстрее иногда, и меньше проблем с объявлениями
753 2518765
>>518712
Лучше сделай тогда через bind, чтобы не писать в скобках this
https://ideone.com/1iORal

То что ты хочешь cделать обсуждается в книжках по продвинутому использованию c++ (шаблоны и метапрограммирование).
Ошибки, которые выдаёт компилятор по шаблонам всегда сложно разбирать. Но с этим особо ничего не поделать, разве что посмотреть что другой компилятор скажет (или IDE).
754 2518771
>>518763
пока что только в мсбилде более менее с этим
симейк разраб недавно на cppcon выступал, обозначил что, РАБОТА ИДЁТ, так что может через годика два заработает
755 2518791
>>518750

>Ты это за хорошее считаешь?


Я никак не считаю, мне на это все равно. Я же компиляторы не пишу, хотя если бы писал, то сделал бы тип справа.

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


Разница не столь велика, чтобы считать что-то конкретное более удобным. Поэтому выбор больше от популярности самого языка и сопутствующих технологий зависит. Все эти языки-однодневки следуют моде, которая каждый год меняется. Да и сама мода пропитана референсами на старые языки по типу паскаля, оберона и т.д. Так и будем ходить по кругу. Поэтому нужно учить фундаментальные технологии, не отвлекаясь на инфомусор, потрогать палочкой C, Smalltalk, Lisp, OCalm, Haskell и тогда вообще похуй станет. Это я все к тому, что аргумент от марктелогов-блядин в духе "У НАС "ЛУЧШЕ" СИНТАКСИС, ПОЭТОМУ ИСПОЛЬЗУЙТЕ НАШ СТИЛЬНЫ И МОЛОДЕЖНЫЙ ЯЗЫК" - полная херня.
756 2518797
>>518791

> Это я все к тому, что аргумент от марктелогов-блядин в духе "У НАС "ЛУЧШЕ" СИНТАКСИС, ПОЭТОМУ ИСПОЛЬЗУЙТЕ НАШ СТИЛЬНЫ И МОЛОДЕЖНЫЙ ЯЗЫК" - полная херня.


Ну тут соглы
757 2519790
Atomic или mutex и почему?
image.png808 Кб, 871x1280
758 2519792
Нвидия-кун ВСЕ?
759 2519802
Так почему в питоне и жаваскрипте строки неизменяемые, я не могу понять прикол в чем?
760 2519860
>>519802
Защита от умственно отсталых дебилов, у которых баги из-за случайного изменения строк.
761 2519915
>>519802
Видимо, чтобы не ебаться с cow.
Когда ты строку присваиваешь нескольким переменным, она не копируется. Просто все эти переменные теперь указывают на этот объект строки.
Если бы ты изменил строку одной переменной, она бы изменилась во всех других.
изображение.png4 Кб, 585x56
762 2519918
763 2519922
>>519915
А что не так с копи он райт? Альтернатива - создавать новый объект каждый раз, когда нужно изменить строку, и в этом случае копирование будет происходить значительно чаще.
764 2519928
>>519918
Я вышел за границы. Понял
765 2519939
>>519922
А если сделать объект имутабельным, то эта проблема в принципе исчезает.
766 2519944
>>519939

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


Это буквально то, что делает питон. Вместо
str[4] = 'x'
делаем
str = str[:4]+'x'+str[5:]
То есть создаем два временных объекта, чтобы создать новый объект на замену старому, лишь бы не переписать один сраный байтик, лол. Так чем это оправдано?
767 2519945
>>519939
Или ты хочешь сказать, что изменять строки в принципе НИНУЖНА?
image.png102 Кб, 1201x401
768 2519999
>>519792
В Ереване сижу, жду релок в Швейцарию
769 2520196
>>519999
1) Что учить чтобы вкатиться в нвидию?
2) Почему в нвидии прогерят на винде?
770 2520291
>>520196

>Почему в нвидии прогерят на винде


На линупсе нет игор, так что драйвера для видеокарт им не нужны, как и сами видеокарты.
771 2520308
>>520291
Где-то читал, что основной хлеб производителей видивокард - нифига не геймеры. А всякие майнеры, мл и прочий стафф всё равно запускают на линуксе.
772 2520396
>>520308
Он, канешн, подпёздывает в плане всяких SoC систем и кластеров. Скорее всего его к таким проектам не подпускают прост.
773 2520424
>>520196
1. https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite
Из России реально только в Ереване работать. Дальнейшая релокация для новеньких по общим правилам (5 лет стажа и хорошая работа.

2. Потому-что я работаю с играми под винду. У нас есть один кроссплатформенный проект, его через WSL в вижуал студии кросскомпилировать под никсы - норм работает. CI\CD для него само собой на нормальных никсах.
774 2520451
>>520424

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


Аж сходить помыться захотелось
775 2520478
>>520451
Свисни, когда зарплата в рублях будет семизначной - тогда поговорим
776 2520488
>>520478
Свисни, когда член будет 20 см - тогда поговорим
Нет блять, серьёзно? А если тебе предложат котят топить за лярд в год ты тоже этим кичиться будешь?
777 2520492
>>520488
я не вижу смысла слушать что-либо о профессии от диванных теоретиков, программистов в нонейме и просто ебанутых.

Зарплата - хороший показатель достижений и навыков. А пока ты сидишь в Саратове и пишешь гуй для СДЭК.доставки - твое мнение ничем не отличается от мнения бомжа. Так что сходи, помойся. Может полезно будет.
778 2520498
>>520492
Ну то есть помимо циферок у тебя в жизни другой гордости нет?
779 2520504
>>520498
Есть - вон переезжаю в самую охуенную страну в мире, как минимум.
780 2520508
>>520492
Хороший показатель - это то что ты убежал как всякие либерахи. Не вижу ни одной причины почему твоё мнение на этой борде дожно отличаться от мнения бомжа, ты же фактически сейчас им и являешься.
781 2520511
>>520508

> просто ебанутых


Вот да, зачем я даже начал этот разговор...
782 2520515
>>520504
Про это я и спрашивал - кроме материальных достижений в жизни у тебя что-то ещё имеется?
783 2520520
>>520511
Молодец, что понимаешь несостоятельность своих доводов. А то неспособность обустройства стабильной личной жизни выдаёшь за какое-то достижение. Это называется синдром отложенной жизни, когда живёшь ради подготовки к хорошей жизни, но непосредственно этой самой хорошей жизни прямо сейчас нет.
784 2520590
есть тут знатоки qcustom plot? нужно сделать так что бы в QCPBars, столбики рисовались не от 0, а от -90 скажем или другого значения. Также я почему то не могу изменить цвет столбиков.
785 2520601
>>520520
А жизнь в Ереване это не синдром отложенной жизни? Нет ощущения, что другие конторы сразу перекатили своих лидов в норм страны, а тебя как помойного котёнка сдали на передержку в армянский приют?
786 2520610
Хотел чела про шейдеры поспрашивать, но тут на него говно наехало, хуй он что теперь расскажет.
787 2520615
>>520590
ну проблемы с цветом столбиков я решил, просто на максимальном удалении, у столбика ширина равна нулю и рисуется только его граница QPen'ом, а она была другого цвета
788 2520663
>>520610
Хорошего спеца в Ереван не сбросят, так что можешь спокойно спрашивать на всех.
789 2520730
>>520424
Модулями в проде пользуютесь?
790 2520854
>>520615
второе тоже решил
void QCPBars::setBaseValue ( double baseValue)
sage 791 2520861
>>520196

>1) Что учить чтобы вкатиться в нвидию?


английский
программирование на bat-файлах и заполнение excel-табличек
sage 792 2520898
>>520610
он по батникам больше специализируется
793 2520922
>>520898
А как же заполнение экселек?
sage 794 2521047
>>520922
и это тоже
очень хорошо заполняет эксельки, начальник доволен
796 2521258
Зачем не которые функции на входе требуют, а на выходе выдают const char/int/double... Зачем?
797 2521260
>>521258
Звёздочки не пропущены?
798 2521262
>>521260
ну может и пропущены, просто какой смысл вообще в const переменных, только что бы программисту компилятор запретил менять ее?
799 2521265
800 2521862

> msbuild


> xml в 2022


каш мар!

И что мне это всё ручками писать, или есть еще какой то вспомогательный формат который компилится в мсбилд файл?
801 2521877
>>521862
Есть. Называется Visual Studio.
802 2522018
>>521877
То есть его руками никто не пишет?
803 2522037
>>522018
Ну да. Его либо генерируют через cmake, либо настраивают мышкой в свойствах проекта.
804 2522067
>>522037
Cmake умеет msbuild генерить? 0.0
я только видел что генерит всякие .vcproj и подобное
805 2522147
На чем проще всего запилить ригидбоди, чтобы прям за вечер-два накатать взаимодействие бревна с рельефом местности без длительного курения доков и гайдов?
806 2522149
>>522147
Приветсвуются только бесплатные варики, если что
807 2522165
>>522147
На Godot.
808 2522169
>>522165

>На Godot.


На плюсах нереально в приницпе?
809 2522170
>>522169
Всмысле быстро и влажно вкатиться на голых крестах + OpenGL + Физическая_Либа_Name
810 2522180
>>522170
За вечер? Да, нереально.
811 2522181
>>522180
Ну ок, за неделю-две (но это прям край)
812 2522204
>>522181
Нет
813 2522205
Пишите в чем прогаете. Давайте топ ide составим, что ли?
814 2522208
815 2522210
>>522208
Вагон скриптиков для сборки уже написал?
816 2522214
Да похуй в чем писать. Главное чтобы точки останова ставились и автодополнение работало. Остальное нинужно/прикручивается при желании
817 2522230
>>522210
Мне одного build.sh хватает, чтобы вызывать внутри симейк и потом подчищать за ним говно.
818 2522234
>>522230
А автодополнение есть там? А дебажишь как?
819 2522242
>>522234
Автодополнение есть. Дебаг через gdb и принты.
820 2522306
Аноны, как реализовать автологин в стороннем приложении? Что почитать? В какую сторону вообще копать?
821 2522319
>>522306
больше конкретики
822 2522334
>>522319
Да больше и никак. Есть приложение, которое при запуске требует логин, пароль и еще кое-какой номер (типа второго пароля). Все данные всегда одинаковые. Хочу сделать .ехе, чтобы каждый раз не вводить эти данные. Можно брать их из файла, можно прям в коде хранить. Без разницы.
823 2522345
>>522334
Эмулировать события клавиатуры и мыши.
824 2522346
825 2522350
>>522346
Так это для веба, не?
>>522345
А есть еще варианты?
826 2522389
>>522205
Топ IDE всегда было и будет вижуал студия.
827 2522483
>>522334
Autohotkey
828 2522486
Почему все говорят что в крестах нет сборщика мусора если в крестах есть умные указатели?
829 2522488
>>522486

> нет сборщика мусора


> есть умные указатели


Ты в нвидии что ли работаешь?
830 2522491
>>522488
Нет, в Байкаре. А что?
831 2522527
>>522486
Сборщик мусора сидит в кишках рантайма почти как отдельный процесс, следит за всеми ссылками и в фоне периодически удаляет объекты, применяя ёбнутые алгоритмы с поколениями и прочим говном. Что, похоже на умные указатели?
832 2522558
В чём смысл std::forward?
833 2522568
>>522558
r-value перенаправлять.
834 2522569
>>522568
Куда?
835 2522573
>>522569
Чет там какое хорошее применение в шаблонах когда форвард заменяет разбор случаев и правильно обрабаиывает и ссылки и не ссылки и r vlaue и x value. Ща не помню, но че то такое
836 2522600
>>522558
В идеальной передаче.
Нужно для реализации таких штук как emplace_back, чтобы передать аргументы прямо в конструктор, без создания временных объектов.
837 2522844
>>522558
Погугли что такое universal reference
Собственно только из за этой штуки форвард и существует
838 2523237
>>522527
Кстати, а сборщик мусора может в теории удалить объект, к которому ещё можно обратиться? Или там есть какие-то гарантии?
839 2523264
>>523237
Нет, в языках со сборкой мусора к объектам можно обратиться только через ссылку, а сборщик мусора знает о всех ссылках. Разве что как-нибудь в обход через ансейф узнать настоящий адрес объекта и обращаться к нему напрямую через указатель, о котором сборщик мусора не знает, и от этого могут появиться проблемы. Но ансейф всегда означает отсутствие гарантий, всё надо делать осторожно, на свой страх и риск.
Ну и не всегда можно надеяться, что умный рантайм всё сделает за тебя. Попадались всякие говнолибы, где у некоторых классов был реализован финализатор (аналог деструктора), где делается что-то серьёзное при уничтожении объекта, например, меняются значения полей других объектов, и надо специально где-то придерживать ссылки на объекты таких классов, чтобы финализаторы не вызывались, даже если в своём коде эти объекты не используешь. К примеру, есть что-то такое в библиотеке Tkinter для GUI на питоне, там если не придерживать ссылки на какие-то объекты, приложение может просто взять и сломаться в рандомный момент времени, когда сборщик мусора решит их удалить. В жабе тоже что-то такое попадалось. Это в любом случае не проблема самих сборщиков мусора, а неправильного использования финализаторов.
Снимок экрана от 2022-11-26 05-48-58.png46 Кб, 765x580
840 2523487
Братики, стоит развивать эту залупу?
841 2523491
>>523487
Плюсы и веб почти не пересекаются друг с другом, и это прекрасно, остался хоть один относительно популярный язык, не зашкваренный вебом. Веб-фреймворков для плюсов хватает, но их никто не спешит юзать.
842 2523497
Никто не хочет мне заплатить денюшку, а взамен порешаю лабы какие нибудь по плюсам/еще чему нибудь?
843 2524126
Что крутого помимо qt и буста выучить? Если я полезу в вулкан я ебанусь?
844 2524129
>>524126
CUDA
OpenCL
WinAPI
845 2524133
>>524129
А если графика меня не сильно интересует?

>WinAPI


Толсто
846 2524146
>>524133
А при чём тут графика? Я же не OpenGL говорю.
847 2524233
Поясните нубу за friend
image.png421 Кб, 720x730
848 2524255
849 2524285
Курва, почему почти в каждой вакансии требуют ВО?
850 2524295
>>524280 (Del)
Че за проект?
851 2524347
Читаю, значит, Таненбаума, и чтоб как-то развлечься, решил симулировать этот error-correction. Запустил:

>001001100000101101110 (input)


>001001100000101101110 (output)


Цифры из примера. Как видно, ожидаемое исправление не было произведено. Впадлу уже разбираться, поэтому решил пукнуть в тред. Хотите отвечайте, хотите нет. В моей так называемой жизни ничего не поменяется.
852 2524383
>>524347
1. Блядский using namespace std
2. Нужны пробелы после for и if
3. return 0 в конце main.
853 2524390
>>524126
Если ты лезешь в вулкан то ниже указаное тебе не нужно. Вулкан может вме тоже но лучше.
Но ты ебанешься.
854 2524391
>>524383
Разебал по факту
855 2524405
>>524383

>1


как видишь, в конце я все таки написал std::cout два раза по привычке, потому что обычно работаю без using namespace std
856 2524437
>>524347
argc argv - неиспользуемые параметры. Низя.
Я всегда пишу фигурные скобки, даже если тело цикла или ифа состоит из одной строчки. Дальше не читал
857 2524541
>>524383

> 1.


И в чем проблема? Он же не в хедере это написал

> 2


> 3


Если оно компилируется, то не нужны

>>524437

> Низя


Можно
858 2524546
>>524541

> Можно


UB
859 2524549
>>524546

> Ub


Где
860 2524567
>>524383
4. Открывающая скобка на новой строке
861 2524671
геймдев в россии - все
как следствие половины вакансий крестовиков - то же нет
1669541804524.jpg202 Кб, 669x637
862 2524678
>>524671
Спасибо за напоминание

а я уже хотел пойти на третьем курсе работать, а все стажировки хлоп
863 2524698
>>524671
Ох уж эти орочьи проблемы.
864 2524756
>>524383
>>524437
Я искренне желаю, чтоб когда вы, уебки, будете сидеть с какого-то максимально мелкого экрана и спрашивать на форуме какую-то срочную и важную хуйню, вам кидали скрины с максимальным соблюдением всех пробелов, std:: и фигурных скобок.
image.png38 Кб, 706x561
865 2524759
Господа у меня задача, нужно сделать "водопад". Это так сказать верхний график, только поставленный осью y к нам лицом, как это сделать наиболее оптимально? Я сейчас делаю так рисую на прозрачном изображении верхний график, патом беру верхнее изображение графика и в каждом столбике иду сверху вниз, пока не встречу отличный от прозрачного цвета пиксель. Если встречаю, то записываю в новое изображение высотой в 1 пиксель. И так для каждой координаты Х. И у меня так получается новое изображение шириной с верхний график, но высотой в 1 пиксель, и раскрашенное в максимальные градиент цвета в этой координате. Если у изображения вырастает высота, то вырастает время обработки. Также из за того что высота изображения ограничена, то допустим если я поставлю высокий градиент, который выходи за пределы изображения, я не получу истинного цвета, потому что верхние пиксели будут ограничены, высотой изображения. Ну типо нужно будет всегда рисовать изображение высотой в разницу между координатами градиента.
866 2524763
>>524736 (Del)
Так я и не хохол. Меня 8 лет назад назвали русским. Теперь пришли меня защищать и защитили от воды в кране, стабильного света и интернета и бонусом изолировали меня в моём жилище вот уже на 9 месяцев.
867 2524786
>>524763
А могли бы и в Доме Профсоюзов сжечь. И всем похуй бы потом было.
868 2524792
>>524786
Могли и на швабру накуканить
869 2524797
>>524792
Ну если ты из героев АТО, то могли. Хотя за швабру там сроков дали и зеканы не померли в муках. Цеж не Украина, где можно грабить и убивать рандомных челов, записав их в сэпары.
870 2524798
>>524797

>Ну если ты из героев АТО


Не, я из распятых мальчиков
871 2524823
>>524347
Ошибка найдена. На 19 строке забыл написать i-1 вместо i.
872 2525012
>>524756
Анон спрашивал срочную хуйню? Не спрашивал. Иди нахуй.
873 2525032
>>524383
В C++ (в отличие от C) return EXIT_SUCCESS в main() имплицитен, его компилятор вставит, если ретурна никакого нет
874 2525041
>>524567
Толсто.
875 2525079
>>525041
Ну так похудей
876 2525088
>>525079
Худеть надо твоей мамаше
877 2525100
аааааааа.....ищу мальчика, который будет дз на c++...я тян...с меня , что нибудь...что сами попросите:> памагитя
пишите в телегу @Criingeeee666
878 2525116
Какие зп у ждунов нынче?
879 2525120
>>524678
Там майо грозится свой движок писать, даже по ящику про это показывали.
880 2525160
>>525116
Разброс от тарелки гречи, до 150к
881 2525166
>>525160
Представляю сколько вышек у меня должно быть и как сильно я должен порвать жопу чтобы вкатиться на 150к
882 2525168
Кто какие фреймворки тестирования использует? Что базой является?
883 2525170
>>525168
Googletest
884 2525172
>>525170
Почему не Boost.Test?
885 2525174
>>525172
Впадлу буст тащить
886 2525175
>>525168
Catch2
>>525170
Выглядит как параша, как и все высеры гугла. Это же аналог юнит-тестов от индусов, такой же окаменевший кал. Продакшен чтоб протестировать надо дико выебнуться.
>>525172

> Boost


Буквально худшее что изобрели крестовики.
887 2525178
>>525174
А говно от гугла не впадлу?
>>525175

>Буквально худшее что изобрели крестовики.


Оче толсто
888 2525196
>>525192 (Del)
Ну 11-17 могу нормально, 20 50/50. Это норм?
Без имени.png105 Кб, 1016x725
889 2525200
Хочу перевести проект на опенсорс. Сильно ли поцоны из сообщества ругают за хуйню как на пике?
890 2525201
>>525200
Блять, ты на джаваскрипте что ли писал до плюсов?
891 2525202
>>525201
Практически да. Нашел, что initializer_list охуительно удобная хуйня. Ну и возврат this из методов тоже популяризовали в jquery 10-15 лет назад, получается тоже жабаскриптовая хуйня.
892 2525203
>>525200
Эякулировал
893 2525204
Поясните за .template, ->template
894 2525208
>>525206 (Del)

>код на расте


Моя хрень на данный момент работает в браузере (wasm) без затаскивания туда большого рантайма, работает в линуксе под xlib и в винде под win32. В планах Андроид и наверное Яблоки, хотя последние, кажется, сделали всё возможное, чтобы под айфоны никто ничего не программировал.
895 2525210
>>524390
Почему я ебанусь если полезу в вулкан?
896 2525213
>>524763
почему не в окопе, сука
какие проблемы
здохни
897 2525215
>>491360 (OP)
А ведь в шапку можно добавить Dev-C++ ее обновили таки.
https://github.com/Embarcadero/Dev-Cpp/releases
898 2525216
>>524759
господ здесь мало, лично я обоссаное чмо
ты с опущем в одном треде сидишь, я тебя зашкварил
899 2525218
>>525216
Маааам, меня зашкварили
900 2525221
>>525217 (Del)
Микрогуй. Однажды в Go-треде наткнулся на вопрос на тему как там с WASM в Голанг. Начал гуглить эту тему, хотя на тот момент уже знал, что Го несовместим с сишными либами из-за собственного механизма разметки памяти, поэтому для браузера ему нужно затащить рантайм в несколько мегабайn. Заодно увидел, насколько неудобны существующие гуи, ну те, которые не Webview.
901 2525222
>>525012
Я привел гипертрофированный пример, чтоб донести, что для скрина на дваче такой код оправдан.
902 2525226
>>525223 (Del)
К оупенсорсу не готов пока что. Надо подшлифовать. От всякой работы уже устал открещиваться, поскольку пишу на всём от ассемблера до пайтона. Ну и 40-летний специалист не интересен фирмам, потому что понимает лишнее.
903 2525228
>>525226
а что лишнее можно понять
904 2525229
Что учить чтобы вкатиться на джуна?
905 2525235
>>525228
Есть вещи, которые нельзя говорить, можно только намекать Иначе все вкатуны сразу вкатятся. А это ведь никому не нужно. Ну если так косвенно и что называется например. Например, есть популярный (S)FTP(S) клиент FileZilla. Что они сделали. Они воспользовались своим именем и сделали клиент под Android. Самым популярным комментарием под этим приложением от пользователей долгое время был такой: блядь, я повелся на ваше название и думал, что у меня на планшете сейчас будет 2-panes приложение как на компе, а вы просто сделали хуйню с мобильным интерфейсом, как же так?
906 2525236
>>525222
А донёс только то, что не видишь разницы между

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


И

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

907 2525238
>>525215
Нельзя добавлять. Сколько про него не слышал, всегда он был в контексте лаб в вузе, потому что больше на нём никто не пишет. А лабы, как известно, идут нахуй.
908 2525239
>>525235
Типо делать хуйню, норм?
909 2525243
>>525239
Наоборот. Все еще есть очень много того, что не сделано, и, следовательно, можно это сделать. А у новоиспеченных программистов наоборот беда "а что сделать".
910 2525246
>>525243

>много того, что не сделано


Ну например?
911 2525247
>>525246
Ну например, я пишу цикл на крестах с сишными SIMD-интринсиками, в котором мне в последнюю итерацию надо подставить последний пиксель картинки вместо данных из памяти, которые уже в следующий row изображения вылезают. Есть два варианта, и оба плохие - макросы и инлайны. На этом сразу же срывается внимание программиста, отвлечение на какую-то хуйню, которой требуется еще и своё название, и написана она в другом месте. Намного более красиво было бы расширить синтакс циклов.
912 2525255
>>525247
Ты давай нормальные вещи советуй, что простой соло программист может создать. А не то, для чего надо иметь батю который работает в комитете.
913 2525257
>>525255
Я знаю, как сделать, чтобы Rutube нормально работал и стал конкурентом Youtube. Интересно?
914 2525259
>>525257
Не интересно. Речь шла про то, чего пока никто не создал.
915 2525263
>>498217
Если что-то простое - golang + fyne
916 2525277
>>525210
Ну может ты охуенно крут, кто знает. Но так, в среднем по деревне , вкатуны в вулкан охуевают.
917 2525281
>>524126
Ты С++ сначала выучи, ученик.
hellotriangle.png1,9 Мб, 3300x20723
918 2525286
>>525210
На вулкане один треугольник на 1000 строк чего стоит.
image.png10 Кб, 802x629
919 2525292
Какими способами можно сжать изображение по вертикали что бы выжили пиксели отличные от черного,я пробовал заполнять изображение прозрачным цветом, оно смешивается с прозрачным
image.png5 Кб, 798x628
920 2525293
921 2525296
>>525292
Никак, надо писать свой обработчик изменения размера и рисовать новую картинку с нуля по пикселям.
922 2525297
>>525210
Зачем?
Если ты хочешь писать движки - это невозможно впринципе, если у тебя нет миллиардов денег.
Если ты хочешь делать игры - возьми юнити и делай.

Все вкатывание в вулкан обычно заканчивается на прыгающем кубике
923 2525307
>>525259
Нейросеть.
924 2525312
>>525200
Если ты про копипасту с отличиями в 3 токенах да двух параметрах, то отвратительно. Если про разметку - вообще прохладно - у каждого попенсорсного проекта свой огород и своё подмножество языка.

>>525226

>40-летний специалист не интересен фирмам, потому что понимает лишнее


Это какая-то рефлексия? Или тебе нужна позиция не ниже CTO?
925 2525346
>>525277
Да почему?
>>525286
Ну на плюсах всё пишется дольше. Зато пока треугольник отрисуешь - уже какие-то вещи "на железе" начнёшь понимать, так ведь?
>>525297
Не, игры меня не особо интересуют. Я на перспективу в основно. Я параллельно машобом занимаюсь, а тут как раз вычисления на гпу, вот глядишь напишу сильный ии, а вычисления на чём запускать? Ну или там 3D голограмы в обозримом будущем появятся, а я уже умею красоту делать, да ещё и в 300 fps.
926 2525408
>>525346

>так ведь


Nyet. Это всего лишь графический API, абстракция. К железу намного ближе CUDA.

>а вычисления на чём запускать?


Ну точно не в вулкане. Опять же OpenCL/CUDA, SYCL, TBB, OpenMP/MPI.
927 2525442
>>525238
Ну хз, для вкатунов, довольно удобен вроде.
928 2525447
Вопросец такой.
Могу ли я использовать Qt4 для коммерческого проекта, без покупки лицензии?
929 2525452
>>525408
Не согласен. Ты компуте шецдеры на вулкане видел?
930 2525470
>>525408
Какая-то шиза. OpenCL фактически мёртв, как и OpenGL, по факту на стадии maintenance-only, всё теперь на Вулкане. В том числе и поддержка тензоров только у Вулкана есть нормальная.

> TBB, OpenMP/MPI


Это вообще не понятно зачем ты высрал в контексте вычислений на GPU.
>>525447
Нет. Никогда не используй проприетарные библиотеки под непонятными лицензиями - они могут легко поменяться в новых релизах. Тем более qt, он только в опенсорсе бесплатен, за всё остальное плати.
931 2525476
>>525452
>>525470
Так я учу вулкан или нет? Вы можете нормально ответить?
932 2525483
>>525470
Очень печально, надеялся, что получится без этой мозгоебли с лицензиями.
933 2525514
>>525447
Можешь юзать хоть в ебически проприетарном коммерческом проекте абсолютно бесплатно и без открытия исходников, только линковать надо динамически. Статически линковать запрещает лицензия.
934 2525584
Что за хуйня, почему я в поле класса не могу написать просто
std::vector<int> ass(10, 0)?
Почему нужно костылять через std::vector<int> ass = std::vector<int>(10, 0) или в конструкторе это делать?
935 2525593
>>525584

> std::vector<int> ass(10, 0)


Потому что это объявление метода, дегенерат.
936 2525603
>>525593
Пиздец, обожаю кресты. И как заинициализировать тогда? Как я написал? Алсо сам дегенерат.
937 2525633
>>525584
В фигурных скобках.

> или в конструкторе это делать?


Лучше так, наверное.
938 2525685
>>525584

> в конструкторе это делать?


Никогда не делай простую инициализацию значением в конструкторе. Либо через список инициализации конструктора, либо на месте скобками/присваиванием. А то можешь получить двойную инициализацию полей - сначала дэфолтным конструктором, потом второй раз руками в конструкторе.
939 2525767
Короче я учу вулкан, держу в курсе.
940 2525870
>>525767
А нахуя? Что с ним делать потом?
941 2525871
>>525870
А что ещё учить? Вы же нихуя не советуете.
942 2525873
>>525871
Советую выучить алгебраическую геометриб
943 2525874
>>525873
Для чего?
944 2525875
>>525874
А вулкан для чего?
945 2525876
>>525875
В нвидию вкачусь, или союзмультфильм на крайняк.
946 2525972
S&& foo()
{
return S();
}

const S& foo()
{
return S();
}

Почему это UB, если ссылки продлевают жизнь временных объектов, я не понимат!
947 2525979
>>525972
Потому что вся наша жизнь UB. Смирись с этим.
948 2526004
>>525447
А кто тебя накажет, если ты будешь делать коммерческий продукт с нелицензионным Qt?
949 2526008
>>526004
Ещё скажи, что раз Qt съебался, теперь можно пиратить.
950 2526017
>>526008
Ну так то зависит от масштабов. Если ты в условном рф на локальном уровне будешь продавать готовое закрытле по, то никто нихера не сделает. А вот если на мировом уровне, то да.
951 2526030
>>525767
Учи, полезно как практически, так и академически.
Может оказаться проще сначала покрутить опенгл, потом много знакомого встречаешь и как-то поплавнее получается вкатиться.

>>525408
Этот даже в руках не держал няшный вулканчик и че-то подпёздывает ещё.
>>525452
>>525470
А вот эти респектабельные молодые люди что-то в этой жизни понимают.

После ебли с opengl-ами и всякими cuda-ми, vulkan как свежий глоток воздуха и спасение для всех, кто плотно ебется с gpu, как с графоном, так и с compute-ом.
Мечтаю, чтоб он вынес нахуй dx12 и ебучую cuda, оставшись единственным api для возни с видимокартами.
952 2526042
>>526030

>Мечтаю, чтоб он вынес нахуй dx12 и ебучую cuda


Влажность превысила 100%

Победит тот, у кого бабла больше NVIDIA.
953 2526047
>>526042
Так вулкан же на всех видяхах работает
954 2526051
>>526047
OpenGL тоже, кста. Но он проиграл или с него проиграли или как-то там.
16676387983540.mp44,5 Мб, mp4,
400x230, 1:21
955 2526066
Анон, подскажи. Решил прикрутить визуал к своей либе, чтобы отлаживается было проще (не графика, геометрия), решил взять SFML. В целом норм, но он пустой блядь! Пришлось самому писать всякие Arc, Triangle. Короче, думаю с sfml съебаться, долго выходит.

И вот собственно три пути:
1. Qt. Его пеинтер явно побольше методов имеет, да и накладных расходов меньше. Лицензия есть.

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

3. Остаться на SFML, но блин я вообще не вижу развития, библиотека будто бы мертвая
956 2526083
>>526051
Сыграл в игру которая шла на жизнь получается
957 2526087
>>526030
Там додики по треду.
Хронос выстрелил потому что там олдовые сишники, а не вмякая гниль.
И нвидия там од н из основных учасников.
Везде где впжна производительность вулкан аытеснит все остальное.
958 2526091
959 2526093
>>526091
Там есть поддержка треугольников и дуг?
960 2526112
Подскажите небольшую полезную утилиту на гитхабе, в коде которой можно копать и изучать как делают.
А то я открыл исходники ffmpeg, а там 100500 файлов.
961 2526127
>>525633

>В фигурных скобках.


Фигурные скобки у стд::вектора это конструктор из initializer_list.
962 2526141
>>491360 (OP)

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


Не актуальная информация. Книги устаревшие. Вся инфа устаревшая.
963 2526148
>>526091
>>526096 (Del)
Вы пост читали ваще? Пчел хочет треугольники рисовать а не формы шлепать.
964 2526162
>>526112
У плюсов есть забавная особенность
Чем лучше написан код, тем неяитаемее он
Буст и стл прямой пример такого
Но можешь какие то опенсорснве проектики погуглить + реализации каких то простых штук, как те же контейнеры
965 2526164
>>526141
Как и все плюсы
А какие новые книжки классные повыходили за это время?
966 2526173
>>526112
Нет такого. Все небольшие полезные утилиты без 100500 файлов написаны на сях
967 2526174
>>526164

>А какие новые книжки классные повыходили за это время?


На английском куча новых книг.
968 2526185
>>491360 (OP)
Как искать книги на либгене? Нахера Страуструп назвал язык C++? Нихера не гуглится, потому что поисковики считают C++ за 1 символ, ++ не воспринимают. Кавычки не помогают. Даже по запросу Go выдает результат. Есть идеи?
1669702753575.jpeg345 Кб, 1008x1344
969 2526189
Сап аноны, такой вопрос. Я делаю программу, которая очень активно, почти рилтайм, управляет устройствами на PCIe. Проблема в том, что система на дебиане с не RT ядром, и у меня нет опыта и знаний, как такие программы выглядят. Разработка ПСИе устройства у моего коллеги.

Вопрос собсно в чем: как в схожих системах, например, компьютерных играх, делается приближенный к рилтайму event pool с диспетчеризацией функций до миллисекунды? Ничего умнее пускать один поток в while(true) не приходит на ум, далее в коде, через precision_clock, проверять дельты. Ядро будет долбиться в сотку, что позволительно.

Либы типа ASIO, которые имеют epoll под капотом, имеют функции задержки на таймерах с временем до наносекунд, но никто не гарантирует, что вызов будет через заданное время, вызов будет не ранее чем через указанный промежуток, что связано, как я понимаю, с диспетчеризацией процессов в ОС. В интернете рекомендуют ориентироваться на время в 5мс.

К слову, выдача данных от устройства буферизирована, и как раз ориентирована ~5 мс.

Анон, как корректно делать? Что почитать? Считаю, что без QNX задача решаема, QNX блядь еболу имеет с драйверами.
970 2526194
>>526185
Искать по другим словам, которые есть в названиях книги.
971 2526201
>>526194

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


Надо же знать название. Искать сначала в Амазоне? Там не все опубликованные книги встречаются, например книги с leanpub отсутствуют. По leanpub конечно можно на их сайте искать. Тогда сформулирую вопрос по другому. Есть место, где можно искать все опубликованные когда либо книги, включая новые конечно? Google Books не вариант, там даже нельзя упорядочить по году или другим параметрам.
972 2526278
>>526270 (Del)

>Нахожу книгу


Как найти? Где посмотреть все книги, которые вышли например в 2022 году?
973 2526281
974 2526306
>>526093
Там можно все
>>526148
Ты
975 2526362
Как заставить себя начать искать работу? Всё кажется что я нихуя не знаю.
976 2526487
>>491360 (OP)
Кто знает что с курсом от Яндекса "Искусство разработки на современном c++"? С курсеры выпилили, а куда выложили непонятно.
978 2526575
>>526504
Нет 5 курса. К 1-4 курсам нет заданий. Неужели Яндекс забил на курс, который разрабатывал несколько лет? Должны же были куда то выложить. Есть же Openedu, Stepik и другие платформы.
979 2526580
>>526575
Хочешь знать моё мнение? Яндекс идёт нахуй, качаешь книгу и не выёбываешься. Курс всё равно душнина сплошная, ничего не потеряешь.
980 2526641
На винду нужно написать функцию чтобы получала температуру с некоторых комплетующих вроде проца, ссд. Собсна вопрос это через драйвер нужно делать? Если через драйвер то нужна будет цифровая подпись или можно без неё обойтись?
981 2526642
На винду нужно написать функцию чтобы получала температуру с некоторых комплетующих вроде проца, ссд. Собсна вопрос это через драйвер нужно делать? Если через драйвер то нужна будет цифровая подпись или можно без неё обойтись?
image.png567 Кб, 1200x551
982 2526647
>>526642

>На винду нужно написать


На себя напиши, расист хуев.
983 2526689
>>526647
Шарпоблядь, плиз
984 2526708
>>526642
Похоже без костылей с шарпом не обойтись
https://stackoverflow.com/questions/23314886/get-cpu-temperature
985 2526710
>>526708

>Похоже без костылей с шарпом не обойтись


Зачем? Доки правда немного запутанные.
https://learn.microsoft.com/ru-ru/cpp/?view=msvc-170
https://learn.microsoft.com/ru-ru/cpp/windows/overview-of-windows-programming-in-cpp?view=msvc-170
986 2526713
>>526689
Ни разу не писал на шарпе.
987 2526721
>>526710
Так там и ругаются, что родное апи не работает. Приходится использовать стороннее по, а оно на шарпе.
988 2526734
>>526721

>Так там и ругаются, что родное апи не работает.


Где там и кто ругается? Может оно немного легаси, но сомневаюсь, что его выпилили. Честно говоря, с виндовыми апи дела не имел, но точно знаю, что их там дохера накопилось за все годы и похоже ничего не выпиливают.
989 2526738
>>526721
Пробуй через .NET. Вероятно он имеет какое то апи для C++.
https://learn.microsoft.com/en-us/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp?view=msvc-170
990 2526786
>>526721
Но ведь сторонее по написано с использованием каких-то родных функций. Может быть NT...
991 2526830
>>526362
Тебе не кажется, ты реально нихуя не знаешь, лол. Основной способ нормально что-то узнать - поРАБотать с этим на РАБотке
992 2526989
>>522208

> VIM


>>522242

> Автодополнение есть. Дебаг через gdb и принты.


Ты забыл про отладку внимательным взглядом.
мимо такой же ебанутый
993 2527004
дебаг в голове
994 2527007
>>527004
паста-про-препода-компилирующего-в-голове-которому-переполнили-буфер.txt
15640327183870.jpg57 Кб, 550x550
995 2527013
>>527004
КОМПИЛИРУЕШЬ В ГОЛОВЕ
@
НАТЫКАЕШЬСЯ НА ОПЕЧАТКУ В ШАБЛОННОМ ШАБЛОНЕ ШАБЛОНА КЛАССА
@
СОЗНАНИЕ НАЧИНАЕТ ЗАПОЛНЯТЬ БЕСКОНЕЧНЫЙ ПОТОК СООБЩЕНИЙ ОБ ОШИБКАХ И ТРЕУГОЛЬНЫХ СКОБОЧЕК
@
ЖИДКО ПЕРНУВ УМИРАЕШ ОТ INTERNAL COMPILER ERROR
996 2527056
>>526042
Я ровно поэтому и написал "мечтаю".
Ещё бы яблочные черти выкинули свой metal, тоже было бы прекрасно. хоть moltenVK неплохо работает, и на этом спасибо
997 2527248
>>491360 (OP)
Есть код на плюсах с mpi+omp (решение уравнения Пуассона). Насколько тяжко это переписать под mpi+cuda?

Ни разу cuda не видел. Можете че нить посоветовать для быстровката?
изображение.png10 Кб, 307x364
998 2527326
Как называется эта болезнь, когда мы может проводить операции с нигде не определенным, несуществующим классом как ни в чем не бывало? Это хотя бы является UB?

Почему арифметические операции с переменными не перенести в компил-тайм?
999 2527333
>>527326
Иди нахуй

>>527248
Либы типа Eigen3 имеют бекенды для вычислений, чтобы с миграцией не заморачиваться. В любом случае математика кернелов приблизительно похожа
1000 2527347
>>527326
1. Forward declaration.
И у тебя на картинке нет операций с объектом незавершенного типа, только объявление указателя на него. Что кстате порождает новый самостоятельный тип.

2. Потому что они перемениваются.
1001 2527348
>>527326

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


Покажи где ты с классом операции проводишь

>Почему арифметические операции с переменными не перенести в компил-тайм?


Чиво блядь?
1002 2527444
>>527326
Чел тебе уже ответили но я добпвлю.ты очень глупый. Даже свои три строки не понимаешь.
изображение.png7 Кб, 271x229
1003 2527514
>>527347
Что мешает компилятору вместо a+b подставить 5 на этапе компиляции? Это локальные переменные, в других единицах трансляции использованы не будут, внутри функции тоже больше не используется.
1004 2527524
>>527514
Если там будет const, то подставит чому бы и нет? А если не конст, то и не должен, потому что я могу ее неявно изменить
1005 2527525
>>527524

> я могу ее неявно изменить


Это как, она же не volatile
1006 2527530
>>527525
Ладно, я наебал мб. В тупых примерах компилятор реально берет и подставляет, но я думал я смогу как то хитро изъебнуться с памятью, да так, что компилятор это проверить не сможет, поэтому предпочтет не подставлять во время компиляции значения. Хз, можно ли так, сходу сейчас не скажу
1007 2527600
Анон, возможно ли выкинуть объявление и инициализацию пары для инициализации второго поля контейнера map, представляющую из себя пару:

map<int, pair<int,int>> map_obj;
pair<int,int> pair_obj = {1,1};
map_obj[1] = pair_obj;

чтобы получилось что-то такое:

map<int, pair<int,int>> map_obj;
map_obj[1] =this.first(1).second(1);
1008 2527601
>>527514
То, что между инициализацией и коутом может быть что угодно, а не только пустая строчка.
Алсо, коут - это никак не этап компиляции.
1009 2527602
>>527600
пора спать, совсем забыл про std::make_pair (T,T)
1010 2527603
>>526189
ты студентик или работаешь уже, а? как вас таких убогих на работку то берут?
че, лошара, не знаешь как организовать базовый ввод-вывод, хоть синхронный, хоть асинхронный и придумываешь какие то охуительные велосипеды с "while(true) и ядро будет долбится в сотку"
ты в универе курс "операционные системы" проходил, уебок? че, не знаешь как там ввод-вывод организован чтоли?
окей, хуесос, набери в гугле "синхронный асинхронный ввод вывод linux" и читай википедию
1011 2527604
>>526362
все равно ты ничего не найдешь, работы нет, и не будет
хочешь денег - идешь в окоп под бахмутом за 240 тр в месяц
сдохни
image.png49 Кб, 1684x495
1012 2527644
>>527514
Он и оптимизирует. (Везде, кроме -O0)

>>527601
std::cout << a + b;
сворачивается в
std::cout.operator<<(a+b);
что уже является не чем-то мистическим, а обычным методом. Почему бы не оптимизировать на этапе компиляции аргумент метода?
1013 2527699
>>527644

>Почему бы не оптимизировать на этапе компиляции аргумент метода?


Потому что это не то, что чел реквестил в начале.

>Почему арифметические операции с переменными не перенести в компил-тайм?



Арифметические операции с переменными, а не частные случаи, когда и переменная-то избыточна.
1014 2527879
Мужики, навалите БАЗУ по Rust-у.
Самому трогать это поделие и очередного "убийцу" Си у меня нет времени, но при этом новости об этом языке достают меня даже в танке(например, принятие раста в ядро Линукс). Все бы ничего, но эта всеобщая атмосфера самоподсоса вокруг языка и потужные форсы т.н. превосходства ВО ВСЕМ вызывают у меня какое-то подозрение. Я не нашел ни одной статьи с разбором языка, вызде какие-то фанатичные текста с общими и идеалистическими аргументами в духе "ПИЗЖЕ ЧЕМ БЫЛО, just trust me bro". Никто там денег этой херни на рекламу не закинул? Или это очередной форс к смузихлебов как это было с Руби, Элексиром и прочими?
1015 2527883
>>527879
Братан, если оно тебе нахуй не надо, то зачем ты вобще лезешь?
Вас самих не заебало всё обмусоливать из раза в раз?
1016 2527886
>>527883

>Братан, если оно тебе нахуй не надо, то зачем ты вобще лезешь?


Ответ на это в первом посте есть.

>Вас самих не заебало всё обмусоливать из раза в раз?


Кого вам? Я здесь один нахуй. Раньше мне было похуй, но потом поддерку сабжа добавили в ядро Линукса. Я про себя подумал "Нихуя себе историческое событие, второй язык в ядре" и пошел читать интернеты, чтобы понять, что это за ягода. Пролистав 5 страниц гугла, я кроме самоподсоса ничего не нашел.
1017 2527889
>>527886

>Ответ на это в первом посте есть.


У тебя даже нету времени этот язык потрогать, зачем тебе еще что то знать о нём?
1018 2527909
>>527889

>зачем тебе еще что то знать о нём?


>>527886

>Раньше мне было похуй, но потом поддерку сабжа добавили в ядро Линукса.


>>527879

>но при этом новости об этом языке достают меня даже в танке(например, принятие раста в ядро Линукс).


Что тебе не понятно?
1019 2527991
>>527879
Если сравнивать с Си, то всё верно говорят - Раст его выебал во все щели. Но судя по твоему шизоидному тексту ты пришёл сюда за тем чтобы тебя успокоили и рассказали какое говно Раст. С этим тебе только таблетки помогут.
1020 2528004
>>527991

>Узнал о языке Х


>пошел гуглить


>не нашел никакой конкретики, критики и ничего кроме хуйни от маркетологов


>"Пацаны, что за хуйня? Что почитать, чтобы ознакомиться и не потерять много времени?"


>"РЯЯЯЯ ВСЕ СОСНУЛИ, РАСТ ЛУЧШИЙ"


Ок.
1021 2528013
>>528004

> не нашел никакой конкретики


А искал? В документации вся конкретика описана. Что ты ещё хочешь? Чтоб тебе разжевали почему были сделаны конкретные решения в дизайне языка и доказать что они верные?
1022 2528186
что скажете на счёт этого чела и видео?
https://www.youtube.com/watch?v=xqMycrfHQzc
1023 2528249
>>528186
Твой пробивальник? Хуйню порет, у раста куча плюсов, но он всё напиздел. Кто не может осилить ручной менеджмент памяти будет и в расте баги писать, только теперь из-за дремучего кода лесенками и ансейфа.
Про легаси вообще кринж - у раста уже гора легаси, которое переписывают не дописав старое. Это один из главных минусов раста - наглухо ебанутое комьюнити, пишущее код для красоты, а не чтоб он просто работал.
Написал код, но хуй не стоит? Решение есть - надо переписывать.
А как ним этим пользоваться? Никак, мы тут пишем идиоматичный и безопасный код, а не рабочий софт.
Алсо, я, к сожаления, сам такой же шиз. Весь рабочий софт был написан на отъебись, весь хорошо написанный код никогда не доводил до релизного состояния.
1024 2528287
>>528280 (Del)
Да, шаред_птр.
1025 2528346
>>528249

>Твой пробивальник?


Просто это первое, что вышло на youtube, когда вбил rust. И всё, что он сказал, мне показалось надуманной хуйнёй.
1026 2528363
>>528280 (Del)
В справке асио везде фигурирует, что объекты в колбэках должны существовать, поэтому у них паттерн есть буферы и респонзы держать как аргумент класса

Пример с асио и шаредптр - chat или как-то так
1027 2528406
>>518765
Спасибо
1028 2528416
Аноны, есть вот такая конструкция:
контейнер map, содержащий ключ-строку и data-pair, состоящая из объекта-fanction и указателя на переменную(типа double)
std::map<std::string, std::pair<std::function <double(Calc,double&,double&)>,double>> Function_Name;

вопрос - как из функции правильно обратиться ко второму значению pair? при вызове этой функции из объекта-function из контейнера
1029 2528419
>>528416
добавить в принимаемые параметры функции итератор на саму-себя в контейнере, да?
1030 2528455
>>528416
>>528419
и ещё - как вызвать такую функцию?
1031 2528483
Почему при передаче в функцию аргумента char data[] , вызов sizeof(data) в этой же функции всегда возвращает 4? Даже если data="Я ЕБУ СОБАК ЛАЛАЛА ЙЦХДЙЦХКЛЙЦЕЙЬЩЛЬ".
1032 2528501
>>528483
Потому что sizeof() вернёт размер массива только тогда, когда он определён в этой же функции. При передаче в другую функцию он считается указателем, на твоей системе размер указателя равен 4. Будто передал char *data.
https://www.geeksforgeeks.org/using-sizof-operator-with-array-paratmeters-in-c/
Просто не используй сишные массивы, используй STL.
c++.png52 Кб, 1024x768
1033 2529112
изображение.png20 Кб, 534x424
1034 2529195
Реализация питоновского print()! Какие вы бы предложили идеи и дополнения?
1035 2529203
>>529195

> Std cout


Толсто
1036 2529228
>>529195
Вот ты пидорасина тупая. У тебя каждый вызов этого говна - отдельная функция. Про скорость можно даже не вспоминать, она действительно будет равна питоновской.
1037 2529231
>>529195
Не говоря о перформансе, надо как минимум добавить необязательный параметр для потока, чтобы можно было принтить в файл или поток ошибок, и ещё нужен необязательный флаг flush.
1038 2529284
>>529195
Ну принт()(...) Выглядит само по себе не оч
Попробуй оператор статистическим сделать, или просто сделай функцию

Сделай чтобы можно было любой ostream в функцию пихать

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

Потом как все это сделаешь, попробуй форматирование добавить, или хотя бы посмотри как оно делается
Чтобы можно было писать fprint("hello, {}", "anon");
1039 2529582
>>527879
Мэмори сейфти + отсутствие garbage collector + упор на безопасность
Ну а ещё хорошие инструменты для разработки, ахуенные макросы, более крутая система типов

В итоге:
- для петов идеально
- для прода со скрипом

про безопасность актуалочка: https://security.googleblog.com/2022/12/memory-safe-languages-in-android-13.html
1040 2529725
Как редактор вскодиум мне очень нравится, но клангд в нем парсит явно хуже чем в слионе. Или что то донастроить нужно?
1041 2529742
>>527879
Вот хороший сайт про Раст на русском: rustrus.ru
1042 2529746
>>529582

> про безопасность актуалочка


Самое забавное, что подобная хуйня только у Гугла. Пишут на Си с классами, а потом удивляются откуда дыры и ищут оправдания. При этом реально критические баги, позволяющие обойти все защиты без спецсредств - в жаба-коде.
image.png306 Кб, 965x565
1043 2529761
Поясните!
Пограмирую микроконтроллер, который должен выдавать текст на экраны по I2c. Всего экранов 16 штук.
Заказал пикрелейтед 2 шт. для на чала.
После пары часов ебли выяснилось, что у них 2 разные микросхемы. У одной адрес начинается с 0x40 (и далее до 0x4E), а у другой с 0x70 (и до 0x7E).
Я так понял, что прислать могут тупо рандомные как повезет. А мне надо чтобы было 8 одних и 8 других, либо 8 одних и тех же, чтобы я их тупо параллельно воткнул по 2 на 1 адрес.
Короче как поступить? И как в цикле обработать адреса, если мне к примеру придет 4 штук первого типа и 12 штук второго типа? Или там 11 штук первого и 5 штук второго?
Пиздец бошка кипит от этой хуйни.
1044 2529770
>>529761

>0x40 (и далее до 0x4E)


Поясню немного
0x40=0b01000000
Адрес задается 3 битами, выделенными жирным.
0x70=0b01110000
Здесь так же, но старшие биты другие.
1045 2529795
>>529761
Вообще ты должен ебать поставщика, но как выход используй калибровочную прогу в начале для сопоставления смещений к физическим устройствам, если это возможно канеш...
1046 2529972
>>529746
Жаль ты не в Гугле, быстро бы дядям объяснил как код следует писать
Сколько у них человек над кодом работают? Пару тысяч?
1047 2529991
>>529972
Если ты порвался с "си с классами", то их за это все кому не лень обоссывают. Посмотри хотя бы на тот же код Ведра - сплошное вырвиглазное легаси, про то что существует С++11 там услышали только через 10 лет после его появления. И дело не в кодерах, а в том что престарелые олдфаги из верхов гугла решили заставить всех писать в легаси-стиле. А потом выяснилось что, тех кого понабрали, не могут писать в таком стиле как эти деды и не косячить. И теперь "пук-среньк понимаете кресты дырявые, мы не виноваты", хотя огромное количество компаний пишут на крестах и не имеют таких проблем с дырами - даже у индусов из Майкрософта не так всё плохо в плане безопасности.
1048 2530024
>>529991
Но си с классами это литерали лучший язык программирования евер.
А проблема в

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


говнокодерах
1049 2530031
>>529991
>>529746
Откуда такая инфа о Гугле?
1050 2530033
>>530031
О гугле столько подобной инфы, что сами разрабы из гугла в ахуе.
1051 2530063
>>491360 (OP)
Антонио, посоветуй графический интерфайс под цпп. QT как я понял заставляет скачивать их хуйню с сайта и в общем оно мне не надо. Есть норм аналоги кт, но без всего этого? Нужно для пет проекта
1053 2530156
>>530151 (Del)
Не так. От относительного времени да, от абсолютного нет. Так что поебать. Хотя в дектопе вообще все так себе, это же не реалтайм.
1054 2530166
>>530164 (Del)
в не-реалтайм системе, у тебя просто юзер по NTP раз в год системное время обновит и время назад пошло, охуенно. Хоть как ты его считай.
1055 2530364
>>530151 (Del)
Предполагаю, что в процах х86, подобно как и в арм кортекс, есть систем клок, зависящий от системной частоты. Его точность определяется кварцем, который явно точнее rc цепочки, ещё и стабилизирован по температуре. Также предположу, что десктопные прлцы с учётом своего переменного энергопотребления, учитывают снижение частоты.

От этой частоты и берется системное precision время в секундной размерности. Предположу, что точность где-то на уровне пикосекунд.

Понятное дело, что реальное время, которое мы синхроним по НТП, будет отличаться от системного из-за как минимум разных частотных доменов, а ещё учитываем, что сервера по НТП имеют в качестве базы атомные часы, которые точнее кварца, так ещё учёные периодически подводки делают на секунду.

хай-прецизион-клок отлично использовать в качестве дельты времени с отличной точностью, но грубо говоря в пределах суток, отсчитывать по ним год работы нельзя, необходимо иметь синхру, хотя бы по GPS.
1056 2530373
Читаю про операционные системы и просто охуеваю. Оказывается можно написать уебищную инструкцию и оправить ее прямо в процессор, и вот он уже сам вызовет прерывание, сам сгенерирует исключение и отдаст на обработку в ядро. То есть никакой якобы прослойки между программами и железом нет. Волшебного ядра, контролирующего все на свете, не существует, даже проверкой адресов занимается MMU аппаратно, и пока мне видится, что ос можно заменить системой обработчиков прерываний. Может дальше пойму, почему такой хайп вокруг ядер.
1057 2530479
>>530092
Спасибки❤️
1058 2530527
>>530373
Ресурсы для тебя кто распределяет?
Кто процессы твои переключает?

Процессор ничего о файлах, сетевых ресурсах, процессах и тды не знает
1059 2530528
>>530492 (Del)
А что по твоему должен сделать мутех тогда?
1060 2530529
>>530492 (Del)
recursive_mutex в помощь
1061 2531066
>>530492 (Del)
Чтобы жизнь мёдом не казалась.
1062 2531230
Мне нравится, что в случае UB через окно может влететь дрон и расстрелять тебя вместе с семьей, и это допускается официальной спецификацией языка.
1063 2531303
>>531230
Большая свобода - большая ответственность. Ну и проблема теоретически не решаема, если работаешь на "низком уровне". Даже в Ada какой-то недоГЦ встроен.
1064 2531308
>>531230
Расстреливать в первую очередь надо пидоров, которые осознанно допускают UB, якобы у них "всё работает".
изображение.png273 Кб, 1360x768
1065 2531409
Слушайте, а если у меня поля состоят из raii-шных объектов, нужно ли мне делать пустой конструктор перемещения и помечать его как noexcept, чтобы вектор эти объекты перемещал при реаллокации? Не как в этом примере, тут понятно что копирующий создан не будет из-за юник поинтера.
1066 2531869
>>530373
что читаешь?
изображение.png82 Кб, 656x104
1067 2531930
>>531869
Всякие нагугленные статьи из интернета и лекции на ютубе для студентиков. И конкретно Финогенов К.Г. win32 основы программирования, где в главе про архитектуру он кидал тейки как на пике про то, что говнокод обрабатывает прежде всего процессор, от чего у меня случилась фрустрация.
Ну собственно по-другому быть и не может, потому что ось - это всего лишь набор команд в оперативной памяти, а не волшебная оболочка над железом.
Такие фрустрации, переворачивающие все с ног на голову, по мере изучению плюсов у меня случаются иногда. Например, долгое время я думал, что выражение int x; это просто объявление, а чтобы определить надо добавить инициализатор int x = 5; Ебало представили? Так я понял смысл слова extern, подробно изучил ODR и разобрался для чего в современных плюсах нужен inline.
1068 2531943
>>531930
Спасибо надеюсь найду время тоже почитать
1069 2531947
>>531943
Конкретно это книгу надо читать, если уже знаешь более-менее плюсы, но вообще не понимаешь winAPI и хочешь разобраться.
1070 2532050
Анончики, помогите!
В блокноте надо написать 'Hello world!'. Сделал вот такую конструкцию:
string slovo = "Hello world!";
for (int i = 0; i <= slovo.length(); i++)
{
cout << slovo << "\n";

keybd_event(slovo, 0, 0, 0);
keybd_event(slovo, 0, KEYEVENTF_KEYUP, 0);
}
В консоли все печатается как надо, но в блокноте печатается номер элемента. Как букву то напечатать? Т_Т
image.png16 Кб, 493x191
1071 2532051
>>532050
Вакаба все похерила. Код на скрине
1072 2532108
>>532051
Чтт значит в блокноте? Если в файле то старый добрый фпринтф.
1073 2532250
>>530373
Ты идиот или прикидываешься?
1074 2532266
>>525593
И какой же тип у параметров этого метода?
1075 2532402
>>531930

> разобрался для чего в современных плюсах нужен inline.


И для чего же?
1076 2532432
>>525584
потомучто в class Class {
...
};
все, что между фигурными скобками это особый контекст - контекст определения класса.
Точно так же внутри этого контекста но вне какого-либо метода ты не можешь написать какой нибудь for (int i; ...) или if(flag).
Тело класса вообще не является выполняемым кодом программы.

>>532266
В данном случае тип параметров не определен (не указан), о чем компилятор тебе и скажет.
1077 2532441
Сап, последняя версия gcc 13.0.0 выдаёт segfault если пытаюсь передать в std::cout строку на русском utf-8 на убунте.
1078 2532482
>>532402
Чтобы обходить ODR очевидно.
1079 2532498
>>532432

>В данном случае тип параметров не определен (не указан)


Тогда это не метод
1080 2532505
>>532498
Бляха муха, возьми да попробуй скомпилировать.
Конкретно этот - метод, записанный с ошибками.
1081 2532514
>>532441
Так гсс 12.2 последняя. 13 очевидно альфа бетта какая то
1082 2532988
>>532441

>строку на русском utf-8


Уже появился свой русский UTF-8?
1083 2533206
>>491360 (OP)
допустим есть коллекция boost::base_collection, элементы которой необходимо модифицировать, как это правильно сделать?
Первая итерация - создать новую коллекцию, и извлекая элементы из старой конструировать новые, но тогда необходимо матчить между собой типы, ходят слухи что так делать не надо.
Вообще как правильно сравнивать типы и можно на таком строить логику?
https://godbolt.org/z/YEchndKzq
1084 2533235
>>533206
Есть же в стд что то типа из сейм
1085 2533391
Дам ссылку на соседний тред про то, как писали под мыловарню, а то он пустой

>>2533359 →
1086 2534074
>>533235
я в примере использую is_base_of_v, но проблема в другом.
при работе с boost::base_collection, я получаю base&, мне надо какой именно это derived. Возможно надо по-другому логику строить, но как тогда?
https://godbolt.org/z/an4d9z4Kh
1087 2534170
>>534074
Хз что там у тебя, у меня стд из сейм в тип1 тип2 работало нормально.
1088 2534254
>>534170
class A
class B:A
class C
class D:C
имея A& необходимо сконструировать D, если A& это B.
ветка
if constexpr(std::is_same_v<A&, B>)
всегда false.
1089 2534625
>>534254
Технически верно, это ведь не совспм одно и то же. Попробуй свой из сейм в гаписать, не такой жесткий.
1090 2534706
>>534254
Такое только в динамике проверить можно
Как в статике компилятор проверит, что у тебя под референсом лежит?
Только динамик каст
1091 2534731
Анон, как корректно интегрировать boost::asio (на нем либа) в Qt (на нем проверка)? Видел вариант запихивать io_context::poll_one() в сигнал, который по таймеру берется, но хз, как я понимаю, там реальный поллинг редкий, просер азио будет.
1092 2535473
>>534625
пробовал
https://godbolt.org/z/a53796d8Y
если раскомментить 46 строчку, видно, что там тип A всегда
>>534706
то есть переводить в указатель и проверять на через каст к определяемому типу?
3d.jpg38 Кб, 500x563
1093 2535600
Пять лет писал на крестах, сегодня выяснил, что я нихуя не знаю.
1094 2535609
>>535600
как выяснил?
1095 2535613
>>529228
С каких хуев это на производительности скажется?
1096 2535771
>>535600
Анон, а те, кто думают, что знают, не знают ещё больше. С++ хороший пример эффекта Даннинга-Крюгера.

Я тоже не знаю C++ спустя 6 лет разработки, периодически делая прошивки на Си под микроконтроллеры. Каждую неделю узнаю что-то новое.
1097 2535791
>>535600
Ну колись какие вопросы были? интригу тут создал, ебаный свет.
>>535771

> Каждую неделю узнаю что-то новое.


Что например? Может тебе и не нужно, потому что используешь инструменты для ограниченной сферы.
1098 2535792
>>535473
Можно к указатель не кастовать, динамик каст умеет в референсы
изображение.png152 Кб, 729x863
1099 2535796
https://pastebin.com/r655NVur

Аноны, поясните за std::barrier
Если в 33 строчке заменить arrive_and_drop на arrive_and_wait, то программа зависнет в ожидании.
Не понял с этими фазами барьеров и счётчиками внутри него.
gsahhsty.jpg7 Кб, 234x216
1100 2535851
>>535600
С ChatGPT пообщался небось?
1101 2535866
Вопроса два.
Как вообще "правильно" и оптимально считать бинарник, чтобы потом инфой манипулировать? В файле много блоков одиннаковой структуры, которые еще zlib'ом распаковать надо и понадобится возможность фильтровать/сортировать их.
Что использовать под буфером, какой размер выбрать и тип? char? uint8_t? В моем случае файлы 100кб-1,5мб.
Первая идея описать блоки в файле структурами и заполнять их. reinterpret_cast массив байтов к нужной нам структуре и после копирования можно пользоваться. Структуры правильно заполнялись, и тут подумал изучить вопрос UB.
Тут обсуждались примеры, похожие с моими, только я структуры на стеке держу (это пока) (пик1, пик2):
https://youtu.be/_qzMpk-22cc?t=1278
https://youtu.be/_qzMpk-22cc?t=1452
В Си, кстати, второй пример с malloc валидный и не UB.
Код:
https://pastebin.com/bUJ7zXpX
https://gcc.godbolt.org/z/KhjaqqMa9

struct Header_t {
uint32_t field1;
uint16_t field2;
uint16_t field3;
};
std::ifstream file("abu.bin", std::ios::in | std::ios::binary);
std::streampos fileSize = 0x12345; // placeholder
std::vector<uint8_t> buf(fileSize);
uint8_t⚹ pBuf = buf.data();
file.read(reinterpret_cast<char⚹>(pBuf), fileSize); // (1)
Header_t header;
header = ⚹reinterpret_cast<Header_t>⚹>(pBuf); // (2)
// ^ v одно и тоже по стандарту и в листинге
header = ⚹static_cast<Header_t⚹>(static_cast<void⚹>(pBuf)); // (3)
std::memcpy(&header, pBuf, sizeof(Header_t)); // (4)
header = ⚹std::bit_cast<Header_t⚹>(pBuf); // (5) C++20
static_assert(std::is_trivial_v<Header_t> &&
std::is_standard_layout_v<Header_t>);

Ассерт оставил, потому что сначала я хотел от Header_t наследоваться в некоторых структурах (сабхедер, например), но такие структуры не являлись standard layout, хоть и заполнялись правильно (на винде). Как я понял, стандарт не гарантирует расположение base структур. Придется явно указывать вложенные структуры или есть еще более удобный способ?

Теперь, как думаете, где здесь UB? Изучив сноски стандарта и десяток вопросов на стаковерфлоу мое мнение такое:
1) read только char* принимает, думаю не UB, т.к. мы просто заполняем буфер.
2) и 3) одно и тоже по стандарту. Как я понял сам каст не UB, но когда происходит обращение (access) через ⚹ это UB.
4) не UB. Но нужно, чтобы src и dst был trivial copyable и POD (standard layout возможно не прав).
5) не UB. Внутри memcpy, но с проверками. Все проверки делает через шаблоны, возможно создает временный объект внутри и возвращает (в реализации на cppreference так)
Все варианты правильно работают (на винде). Оптимизируются до 1-3 mov gcc, clang, msvc (но это не точно). Не смог дать понять компилятору, чтобы не выкидывал структуру/копирование при -O3 или /O2 в msvc.
1101 2535866
Вопроса два.
Как вообще "правильно" и оптимально считать бинарник, чтобы потом инфой манипулировать? В файле много блоков одиннаковой структуры, которые еще zlib'ом распаковать надо и понадобится возможность фильтровать/сортировать их.
Что использовать под буфером, какой размер выбрать и тип? char? uint8_t? В моем случае файлы 100кб-1,5мб.
Первая идея описать блоки в файле структурами и заполнять их. reinterpret_cast массив байтов к нужной нам структуре и после копирования можно пользоваться. Структуры правильно заполнялись, и тут подумал изучить вопрос UB.
Тут обсуждались примеры, похожие с моими, только я структуры на стеке держу (это пока) (пик1, пик2):
https://youtu.be/_qzMpk-22cc?t=1278
https://youtu.be/_qzMpk-22cc?t=1452
В Си, кстати, второй пример с malloc валидный и не UB.
Код:
https://pastebin.com/bUJ7zXpX
https://gcc.godbolt.org/z/KhjaqqMa9

struct Header_t {
uint32_t field1;
uint16_t field2;
uint16_t field3;
};
std::ifstream file("abu.bin", std::ios::in | std::ios::binary);
std::streampos fileSize = 0x12345; // placeholder
std::vector<uint8_t> buf(fileSize);
uint8_t⚹ pBuf = buf.data();
file.read(reinterpret_cast<char⚹>(pBuf), fileSize); // (1)
Header_t header;
header = ⚹reinterpret_cast<Header_t>⚹>(pBuf); // (2)
// ^ v одно и тоже по стандарту и в листинге
header = ⚹static_cast<Header_t⚹>(static_cast<void⚹>(pBuf)); // (3)
std::memcpy(&header, pBuf, sizeof(Header_t)); // (4)
header = ⚹std::bit_cast<Header_t⚹>(pBuf); // (5) C++20
static_assert(std::is_trivial_v<Header_t> &&
std::is_standard_layout_v<Header_t>);

Ассерт оставил, потому что сначала я хотел от Header_t наследоваться в некоторых структурах (сабхедер, например), но такие структуры не являлись standard layout, хоть и заполнялись правильно (на винде). Как я понял, стандарт не гарантирует расположение base структур. Придется явно указывать вложенные структуры или есть еще более удобный способ?

Теперь, как думаете, где здесь UB? Изучив сноски стандарта и десяток вопросов на стаковерфлоу мое мнение такое:
1) read только char* принимает, думаю не UB, т.к. мы просто заполняем буфер.
2) и 3) одно и тоже по стандарту. Как я понял сам каст не UB, но когда происходит обращение (access) через ⚹ это UB.
4) не UB. Но нужно, чтобы src и dst был trivial copyable и POD (standard layout возможно не прав).
5) не UB. Внутри memcpy, но с проверками. Все проверки делает через шаблоны, возможно создает временный объект внутри и возвращает (в реализации на cppreference так)
Все варианты правильно работают (на винде). Оптимизируются до 1-3 mov gcc, clang, msvc (но это не точно). Не смог дать понять компилятору, чтобы не выкидывал структуру/копирование при -O3 или /O2 в msvc.
1102 2535868
Как же я заебался зубрить UB.
1103 2535869
>>535866
header = ⚹reinterpret_cast<Header_t⚹>(pBuf); // (2)
fix
1104 2536020
>>535609
>>535791
Что будет если деструктор бросает исключения во время разрушения другим исключением? Можно ли обработать это исключение?
Узнал, что weak_ptr, оказывается, в стандарте с 11-го. Правда нахуй он нужен, я не понимаю до сих пор.
1105 2536029
>>536020
Ну и прочая UB хуйня, которую никто в здравом уме не будет писать в прод.
Вообще, удивительно, что никто не спрашивал про argument-dependent lookup или про value categories.
Про шаблоны тоже 0 вопросов. Видимо, в 2к22 все ещё пишут на C с классами.
1106 2536100
>>536020
деструктор неявно noexcept, поэтому будет terminate
можешь руками сказать noexcept(false), тогда можно будет ловить
такое знаешь, если ты шалунишка и разок пробовал это сделать, но я думаю, что такое нет смысла спрашивать -- ни о чём такое знание не говорит
1107 2536254
>>536020
Просто прога завершится. Нельзя два исключения в один момент времени выбрасывать
1108 2536361
>>536029

>Видимо, в 2к22 все ещё пишут на C с классами.


Лол, гугл в таком стиле и пишет.
1109 2536450
1110 2536462
>>536450
На C с классами.
1111 2536866
Анон, в ирл приложениях что-то используется кроме Boost::ASIO, когда нужна работа с сетью? Qt сильно хуесоснее
1112 2536869
>>536361
Гугл покрывает далеко не все предметные области. И из того, что он покрывает, далеко не все он пишет на спп с классами или без.
1113 2536875
>>536866
winsock
1114 2536924
>>536020

> Что будет если деструктор бросает исключения во время разрушения другим исключением?


> weak_ptr, оказывается, в стандарте с 11-го.


На самом деле базовые вопросы. Скажи спасибо, что не заставили писать примерную реализацию самого этого weak_ptr вместе с shared_ptr.
>>536029

> Про шаблоны тоже 0 вопросов.


> value categories


Вообще странно, да. Может пидарас собеседующий сам не шарит в шаблонах и этих ваших xvalue.

>про argument-dependent lookup


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

>Ну и прочая UB хуйня, которую никто в здравом уме не будет писать в прод.


А я щитаю, про UB надо спрашивать, чтобы убедиться, что потенциальный кандидат это самое UB тащить в прод не будет.
1115 2536961
>>536924

> На самом деле базовые вопросы. Скажи спасибо, что не заставили писать примерную реализацию самого этого weak_ptr вместе с shared_ptr.



Меня в яндексе на бумажке заставили. И я, блять, даже написал.
1116 2537264
Как же заебало это всё. Куда с крестов перекатываться? На раст не хочу, там вместо кода вермишель лесенками.
1117 2537311
>>537264
в хойтех
1118 2537312
1119 2537734
>>537264
А зачем вкатывался? После института не знал куда пойти и пошел в дефолтные кресты, потому что помнил что-то с первых курсов?
1120 2537744
>>537264
во фронт ебаный. Будешь заниматься полным говном, но денег насыпят
1121 2537834
>>536020
Как я понял weak_ptr нужен только для многпоточной среды, чтоб у тебя не произошло удаление объекта в момент когда кто-то в другом потоке с ним работает. В остальных же ситуациях достаточно .get() и сишных указателей.
1122 2538470
Build Tools v141_xp для WinXP поддерживают максимум сырой С++14? Очень жаль. Может на GCC перекатиться, как там с поддержкой ХР?
1123 2538520
>>538470

> для WinXP


Что, ностальгия заела?
1124 2538525
>>538520
Чел, хр используют например банкоматы до сих пор.
1125 2538580
>>538470
На некровинде надо не выёбываться и юзать некроплюсы. Ну или делфи или Visual Basic 6.
1126 2538602
Что происходит под капотом, когда вызывают delete для нулевого указателя? Там проверка на нулевой?
1127 2538631
1128 2538646
>>538470

> xp


Работу меняй
изображение.png15 Кб, 305x364
1129 2538683
Есть гуру всяких там атомиков и прочих memory_order семантик?
С trivial переменными B и C все понятно, memory reordering и все такое, поэтому чтобы первый assert гарантированно не вылетал их оборачиваем в std::atomic. Но вот стринговая A как-бы совсем не trivial, и че с ней делать как-бы и не очень то и понятно. Хотя конечно понятно, что под капотом std::string этой просто набор опять же trivial переменных, и присвоение значения стрингу - это тупо последовательность присвоений этим же переменным каких-то значений, и теоретически для них свойственна та же проблема с memory reordering-ом что и для B и C, что собственно означает, что второй ассерт таки будет вылетать. Так вот вопрос - как принято решеать пободную проблему? Есть у меня подозрение, что нужно использовать std::atomic_thread_fence, но чет я не уверен.
1130 2538753
>>538683
Обернуть в std::atomic<string*>
Когда закончил все манипуляции над строкой, поменял указатель на новую строку
1131 2538798
тест
1132 2538799
Зачем нужны указатели, если есть ссылки? Блин вроде и нравится это ваше программирование, но подозреваю я туповат для него. Какие мои действия?
1133 2538807
>>538799
Объект, связанный с ссылкой, удаляется при её выходе из области видимости. Если его надо сохранить, хуй ты это сделаешь через ссылки.
1134 2538813
Как же хочется плюсики...
Но вынужден жрать ебучую жабу.
1135 2538853
>>538799
Для совместимости с сями.
1136 2538936
Вы реально добровольно на этом пиздеце пишете? (я про кресты)

мимо Java-господин
1137 2538978
>>538799
Правильнее было бы сказать нахуя нужны ссылки, когда есть указатели
Но имеем что имеем
1138 2539014
У меня прога пишет, что нужен GLIBCXX_3.14.29. Я проверил, во-первых, у меня LD_LIBRARY_PATH ведёт к нужной директории с gcc 11 , к нужной папке с libstdc++.so.6. Внутри этой папке содержится поддрежка 3.14.29 . Далее, я указал , что нужно компилировать gcc 11 через update-alternatives --config gcc/g++. в Чём ещё может быть проблема?
1139 2539069
>>539014
Решил. Я же программист с++ как ни как. Без вас справлюсь
1140 2539102
>>538646

>Работу


>c++ тред

1141 2539227
>>491360 (OP)
Каким образом разрабатывать приложение модульно?
Допустим есть 2 модуля: модуль парсер, модуль обработка. Насколько понимаю, парсер совсем не должен ничего знать о модуле обработка, но вот модуль обработки может включать в себя хедер парсера. Таким образом по принципу водопада получается. Следующие модули должны "знать" о предыдущих, но не наоборот?
В такой постановке разработчик модуля обработка зависит от разработчика модуля парсера и постоянно его торопит. Независимой разработки модулей не получается. Или модуль разработчик парсера должен по-быстрому накидать хэдэр и отдать разработчику модуля обработки?
И еще вопрос, допустим в модуле парсер используются тип 1, который в модуле обработки преобразуется в тип 2. Есть несколько вариантов.
Первый - оставить "хвост" в типе 1 о его преобразовании в тип 2, тогда надо перевязать модули хэдэрами.
Второй вариант - в модуле обработки включить хэдэр парсера и в лоб кастить типы парсера в типы обработки.
1142 2539236
>>539227
Не пойму, зачем в обработчике хедер парсера. В чем проблема, писать их независимо, но совместимо? А общие типы и реализации преобразований типов - в отдельный модуль. В чем я неправ?
1143 2539268
Правда что на плюсах ничего нового не пишут а только ебут легаси?
1144 2539271
>>538936
Не, не реально.
У тебя глюки уже от этой твоей явы. Сходи пробздись.
1145 2539277
>>538978
Чтбы скономить нескольк смволов н стрку.
1146 2539280
>>539268
А новое - это што? 109-я версия фаерфокса?
1147 2539286
>>539280
Ну там новый софт с гуем не на электроне, а на сасном imgui, линуксовые модули всякие, полупрозрачные ИИ-тян, фирмварь всякая не на жс или питоне и вот это вот всё.
1148 2539354
Изучаю Cmake, протестировал на линусs, теперь на винде, замечательно собрала исполняемый файл. Но я не пойму, что за дрисню она нагенерировала, как этим пользоваться? Зачем нужен проект или солюшен в котором нет исходников?
1149 2539357
>>539354
Симейк - говно говна ебаного.
1150 2539368
>>539357
Рад за тебя дурачек, но мне надо как-то зарабатывать на заказах, где требуют "собрать приложение".
1151 2539377
>>539368
полноценную работу найди, фрилансер мамкин
1152 2539388
>>539277
Это раньше так было, когда рефенмв были просто способом параметры в функцию передать
А в 2022 это семантический монстр, который не понятно что такое, что аж референс врапер пришлось изобретать
1153 2539391
>>539377
На полноценной тоже cmake чаще всего требуется.
1154 2539400
>>539357
Лучше симейка ничего нету. А ты калоед.
1155 2539405
>>539236
Парсер строит синтаксическое дерево из структур, типы которых потом нужно знать в обработчике.
Допустим,
struct Ast::Solid({colour}, {mass})
В обработчике необходимо скомпоновать данные в матрицу
struct Tcx::Solid(Ast::Solid){matrix={colour,mass}}
поэтому необходимо в обработчике знать типы парсера.
Это второй вариант.
Первый вариант это добавить метод структуру парсера
struct Ast::Solid({colour}, {mass}), Ttx::Solid asSolid (){}
вроде хвоста, который буду в обработчике дергать.
Теперь в хэдэре парсера необходимо знать типы обработчика.
Какой вариант построения архитектуры верный?
1156 2539408
>>539400
То, что симейк это сблев бомжа и то, что лучше его нет - многое говорит о С++
1157 2539410
>>539357
>>539377
>>539408
Пошёл нахуй, клоун.
1158 2539416
>>539410
не пойду, у меня дохуя времени есть, которое свободно от ебли с красноглазой обоссаной системой сборки
1159 2539444
Подозрительно мало лаб, нахуй идти нечему.
1160 2539530
Подкиньте мне идей для петов
image.png314 Кб, 1334x749
1161 2539732
Кто блять за нейминг отвечает в плюсах, ну что блять за хуйня

Просто миллион вариантов как назвать функцию что копировала бы обьект: copy, clone и тд
НО НАЗВАЛИ AUTO

фича с c++23, decay copy
1162 2539737
>>539732
Похуй+похуй
1163 2539795
>>539530
Имхо, лучший пет проект - это чат.

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

И потрогать дохуя всего - базы данных, сеть, гуй, шифрование
1164 2539798
>>539227
как? а никак
никаких "двух разработчиков" нет
ядро пишет всегда все один человек на проекте а остальные просто имитируют деятельность в худшем случае, а в лучшем случае делают всякие обвязки и интерфейсы и прочее
1165 2539803
>>539268
в игрострое пишут "новые" игры
а так да
в энтерпрайзе кресты мертвы по понятной причине (сугубо технической)
в микроэлектронике, в устройствах и прочем подобном на си пишут до сих пор и не собираются на кресты переходить
ну и так далее
кресты сегодня это эзотерический язык программирования, чисто для развлечения
1166 2539806
>>539377

>полноценную работу


чистить снег на улицах или говно в толчке "вкусно-и-точка"
ах да, еще можно поехать на украину убивать хохлов за безумные 240 тыщ рублей!
1167 2539809
>>538807

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


неправильно понимаешь, исправляйся
1168 2539814
>>538799
в си все параметры функций передавались по значению
если хотел передать "по ссылке" то нужно было делать параметр указателем и в качестве аргумента брать адрес требуемой переменной
поэтому само собой напрашивалось семантическое добавление в с++, а именно ссылки, которые позволят передавать параметры "по ссылке"
с другой стороны можно сказать что это изменение семантки всего лишь добавляет синтактические удобства и не более
поэтому создатели си и не спешили добавлять ссылки в свой язык
1169 2539816
>>539530
имхо, если ты обучаешься, то самый лучший проект для обучения, это там где тебе надо сделать сложный разбор какого-либо формального текста
если по простому, то написать компилятор/интерпретатор/парсер etc
компилятор оберона например
или парсер xml либо других языков разметки
или какой-нибудь протокол сетевого взаимодействия с относительно сложным форматом, типа ftp или smtp
1170 2539828
>>539732
Чел ты тупой
1171 2539831
>>539828
обьяснись
1172 2539833
>>539831

> copy, clone и тд


> НО НАЗВАЛИ AUTО



Погугди хотя бы что такое авто, о боги
1173 2539835
>>539833
Ух ты, и что же я не понимаю с смысле авто?
Распиши свою мысль, гений
1174 2539854
>>539732
Это вероятно, не функция, а function-like operator. Как, например, есть new и new(std::nothrow).

>Кто блять за нейминг отвечает в плюсах


Страуструп таранит против введения новых ключевых слов. Грит и так их много.
image.png116 Кб, 952x408
1175 2539861
Без auto&& это как то написать можно?
Чтобы хотя бы тип возвращаемый из функции был понятен

>>539854

>Страуструп таранит против введения новых ключевых слов. Грит и так их много.


Ну бля, можно было сделать какой нибудь std::clone(...), ну или как там хотели изначально std::decay_copy(...)
1176 2539884
>>539816
А если вкратце, как примитивный компилятор/парсер должен выглядеть, какой базовый функционал, как вообще всё в итоге заставить работать?
1177 2539956
>>539861
Не нравится - не пользовай, это ж база крестов.
Или заверни в обертку на свой вкус.
задача по программированию пупсик 1178 2539983
В группе 15 студентов, найти 5 самых высоких из них. Как это представить, я не понимаю?
1179 2539992
>>539983
Я бы всех студентов повесил нах на сортирующее дерего.
0qFTabwOQbqEsqhD.gif1,4 Мб, 500x200
1180 2539995
>>539983

>Как это представить, я не понимаю?


Что ты там представлять собрался? Садишься и пишешь код, профит.
1181 2539996
>>539992

>15 студентов


>сортирующее дерего

1182 2539998
>>539996
Перформанс не важен в данном случае, да. На первый план выходит символизм.
1183 2539999
>>539998

>Перформанс не важен в данном случае


>Всё равно предлагает ебаться с деревьями


Тебе смешно а мне не смешно
1184 2540002
>>539995
я знаю, как найти 1 максимальное значение, а с несколькими как?
1185 2540004
>>540002
Ебани O(n^5), чё как лох?
1186 2540024
>>539998
Хотя, вешать студентов на деревьях - это тоже перформанс в артхаусном смысле слова.
Так что от перформанса никак не уйти.
1187 2540086
>>539884
да тут все просто-тупо: читаешь "книгу дракона" или вирта "разработка компиляторов", к примеру, но есть и другие книги, полно их
от того что прочитаешь 1 книгу не умрешь, уж сделай подобный подвиг, лол
а если будет лень пилить бэкэнд то используешь llvm для компиляторов или чего нибудь типа parrot для скриптовых языков
хотя можно и по другому поступить - наоборот закодить бэкенд под какую-нибудь интересную машинную архитектуру, к примеру под микруху какую-нибудь, или даже есть такая интересная тема сегодня как GPGPU
понятно что все (ладно, почти все) уже 10 раз писано-переписано, но в качестве учебного проекта, имхо, это будут самые результативные
если осилишь, то ты реально станешь кодером
1188 2540087
>>540002
Найди одно пять раз
1189 2540096
>>539983
гугл: частичная сортировка
я мог бы работать погонщиком на галере
1190 2540112
>>539956
Спс что разрешил пользоваться чем хочу, но идиотским решением это быть не перестанет
1191 2540118
>>540096

>я мог бы работать погонщиком на галере


Но зачем если кресты - единственный язык с душой?
image.png54 Кб, 225x225
1192 2540187
auto getElementByIndex(std::vector<int> vec, int index1, int index2) {
return vec[index1][index2];
}

Реальный код с код ревью, держу в курсе.
1193 2540208
>>540187

Надо пофиксить чутка и можно в линух пушить

auto get_el_i(int ★ vc, uint32_t in1, uint32_t in2, uint32_t sz1) {
return ★(vc + in1 ★sz2 + in2);
}
изображение.png236 Кб, 1082x862
1194 2540226
L неудаляемый чтоли получается или есть какой-то способ удалить его?
1195 2540246
>>540226
очень похоже на утечку памяти
1196 2540357
>>539795

> потрогать


> хуй


Это самое важное
1197 2540360
>>539732
Так это же std::move или я нихуя не понял?
1198 2540363
А понял, она возвращает prvalue копию объекта, круто.
Auto назвали, чтоб вот такие >>539732 пидорасы глаза себе ломали.
1199 2540421
>>540357
да. регулярно так делаю вот и сейчас..
1200 2540603
>>540363
Себе в штаны насрали, другим назло
1201 2540625
>>540187
Оно же не компилировается, как оно на ревью попало?
Или вы там в тетрадках код пишете?
1202 2541211
аноны, подскажите как получить фпс без привязки к графическому апи/приложению, типо как оверлей geforce или афтербернера показывает это все, как на директх так и на каком-нибудь вулкане/опенгл, хочу написать прогу которая будет показывать фпс на экранчике стилсерисовской мышки, в их приложении можно показывать температуру и загрузку цп и гп, а фпс нельзя( у них есть апишка, там джсончики надо кидать на нужный порт, осталось ток понять как можно достать фпс в любом приложении, мб подскажите какую функцию из винапи или чего-то подобного...
1203 2541223
Задры, подскажите по контексту либы асио
Если допустим у меня в приложении парочка высоконагруженных частей взаимодействия с сетью то как в таком случае поступить? Норм идей будет создать несколько контекстов в разных тредах, каждый для отдельной части приложения где троттлится? Гугл вроде как выдает чтобы в нескольких тредах бежал один контекст. Как эффективнее? Поясните плз
1204 2541235
>>541211
Замерить.
1205 2541356
>>541211
Замеряешь время в цикле отрисовки
Одну секунду делилишь на это время
Полученный результат пишешь куда угодно, хоть файл, хоть консоль, хоть отдельное окошко на imgui где будешь отрисовывать это
Это самый простой и верный путь
image63 Кб, 1024x800
Двач, буду краток. 1206 2541500
КАК ЖЕ ЗАЕБАЛА ЭТА ЕБАНАЯ МРАЗЬ
1207 2541505
>>541500
Прост распоралель 100%, лол
1208 2541755
Как еще на практике применяются constexpr функции, кроме вычисления факториалов?
1209 2541862
>>541755
Любые числовые функции
1210 2541876
Предлагаю подумать откуда можно спиздить курс яндекс практикума, выглядит очень вкусно
image.png22 Кб, 402x426
1211 2541881
1212 2541887
>>541876
На трекерах не лежит нигде?
Он долго вообще идет? Я бы и за бабки записался, а потом бы выложил куда-нибудь.
1213 2541956
>>541887
Идет дохуя, на трекерах не нашел, только на каких-то сомнительных складчинах, где надо 500р закинуть для VIP ДОСТУПА
1214 2542114
>>541956
го скинемся всем тредом???!!!!
мы же V.I.P тред
1215 2542282
Как же заебало писать все эти абстракции и не сосать по производительности. Я вот подумал, а может ебашить просто кишками наружу? Один хуй это опенсорс, кто не осилит - нахуй пусть идёт, главное мне норм. А то я вчера как начал писать обёртку класса на шаблонах, в итоге пердолил 4 часа и высрал какую-то магическую хуйню, зато красиво выглядящую снаружи. А мог бы за 30 секунд просто указатели наружу оставить торчать, даже тесты не пришлось бы писать.
1216 2542411
>>542282
Все так.
1217 2542460
>>542282
Просто пиши на гошке микрочелик
1218 2542790
1.Пишу консольное приложение содержащее int x = 123456;

2.Пытаюсь изменить это значение другим консольным приложением

https://pastebin.com/emW2bRzJ

3.Нахожу адреса модулей, дрочу перебором, нахожу этот инт и изменяю.

4.Нихуя не изменяется в первом приложении.

Где я обсераюсь? инб4 Везде
1219 2543462
>>542790
наверное (хотя могу ошибаться)
у тебя в экзешнике число "123456" будет в 2х местах
первое это целочисленная константа
а второе это переменная типа инт, которая инициализируется значением этой константы
1220 2543485
>>542790
volatile попробуй.
Компилятор может скрутить твой x как константу.
1221 2543493
1222 2543517
посоветуйте годный и актуальный справочник по плюсам. нужно вспомнить язык (узнать что нового появилось)
1223 2543625
>>543517
У Страуструпа есть книга, "A Tour Or C++" называется, кажется.
Ещё можешь статьи почитать, если хочется узнать про всякие рэнжи да копрутины
1224 2543722
>>543625

>A Tour Or C++


Я бы выбрал тур.
1225 2543736
>>541755
Я на констеэкспр делал всякие смещения и маски для битовых операций, оче удобно. Фактически, констеэкспр заменяет макросы си. В каких-нибудь микроконтроллерах макросов пиздец как дохуя
1226 2543758
>>539983
Если актуально делаешь обычную пузырьковую сортировку, после пятого прохода останавливаешь цикл и получается что крайние (смотря куда двигал)студенты самые высокие.
Напишу код за сто рублей, жрать хочется.
1227 2543789
1228 2543878
>>543789
В чем разница между std::sort(begin, X);
и std::partial_sort(begin,X,end);

?

мимо
1229 2543900
>>543878
Исходная последовательность:
10, 9, 8, 7, 6, 5, 4, 3, 2, 1

если вызвать sort(0, 5), он вернёт
6, 7, 8, 9, 10, 5, 4, 3, 2, 1

partial_sort(0, 5, 10) вернёт
1, 2, 3, 4, 5, ...

Оставшиеся элементы хз как отсортированы будут
1230 2543903
>>543878
sort сортирует указанный диапазон. Если X это не конец контейнера, то он отсортирует диапазон как если после Х вообще никаких элементов нет.

partial_sort отсортирует столько элементов, сколько влезет в диапазон [begin, X), но элементы из [X, end) будут участвовать в сравнениях.

Так же могут отличаться сами алгоритмы сортировки.
1231 2544109
щас прикинул, и, в общем, только по с++ я прочитал около 10ти тысяч страниц книг в сумме
естественно, при этом не написал ни одной полезной работающей программы на с++
1232 2544114
>>544109
А бесполезных сколько написал?
1233 2544174
>>544114
Бесполезное на спп не считается совсем, потому чтт его обь5м меряется уже лярдами.
1234 2544179
>>544174

> лярдами


Нерлохо.
1235 2544329
>>544109
Скотт Мейерс с начала 90-х забил болт на программирование. И ничего, нормально.
1236 2544402
>>544329
считаю его книжку "42 рекомендации по использованию с++11 и с++14" одной из самых мастерски написанных книг, он сумел лаконично изложить сложный материал
1237 2544843
Придумайте мне идею для пета
1238 2544846
>>544843
Трассировщик лучей.
Интерпретатор языка Х.
Текстовый редактор.
Шахматы и змейки.
Клиент и сервер хуйни.
Эмулятор 6502.
1239 2545245
>>541876
>>541881
Да нахуй это вообще надо, вы че дебилы? Сидите книжки читайте и прогайте
1240 2545318
Давно не писал на Плюсах, где по быстрому нахваться что там нового завезли?
1241 2545459
1242 2545952
>>544402
Он хороший препод, жаль у меня в пидорашьей шаражке такого не было
1243 2545973
>>545459
Ништяк, заказал бумажную
1244 2545975
>>544402

>сложный материал


>CPP


Ты вкатутося что ли?
1245 2546899
У меня есть структура vector<vector<double>*> gavno;
Для внешнего вектора память выделяется спокойно через gavno.reserve(n);

Как выделить красиво память для вектора-пойнтера, чтобы не создавать его с рандомным именем , ресервить, а затем присваивать? При чём я не хочу, чтобы пустые места нулями заполнялись как в new vector<double>(n)
1246 2546910
>>546899

> У меня есть структура vector<vector<double>> gavno;


Нахуя тебе такая структура понадобилась?

for(auto i = gavno.begin(); i != gavno.end(); i++){
i = new vector<double>();
(*i)->reserve(n);
}
1247 2546912
>>546910

> У меня есть структура vector<vector<double>⚹> gavno;


Нахуя тебе такая структура понадобилась?

for(auto i = gavno.begin(); i != gavno.end(); i++){
⚹i = new vector<double>();
(⚹i)->reserve(n);
}

Фикс
1248 2546917
>>546910
Ну типо матрица нужна была, но с разной размерностью в каждой строке
1249 2547166
>>546899
Зачем тебе вектор указателей на вектор, если можно сделать вектор векторов? В чем профит?
Слабо решить детскую задачу? 1250 2547246
ПРОГАЧ, Слабо решить за меня лабу? Даны матрицы целых чисел S[1..3,0..2], K[1..3,0..2], в которых имеются по два одинаковых числа. Найти и напечатать их.
1251 2547275
>>546917
Вектор векторов делает то же самое.
1252 2547321
>>547246

> детскую задачу


Пусть дети и решают. Тут серьёзные дяди сидят.
1253 2547420
убегайте за границу
пусть здесь меньше будет
а лучше здохнити
1254 2547438
>>547166
Ну вот у меня много векторов определённой размерности. Мне нужно их упаковать в эту матрицу. Т.е. за каждый цикл вдупляю по одному вектору. Вы имеете ввиду, что таким же образом можно подменить у вектора векторов имеющуюся строку и не оставить пустышку в куче?
1255 2547464
>>547438
Я имею ввиду, что тебе не обязательно выделять память под сами объекты векторов динамически через new. Что бы ты не имел ввиду под "подменить имеющуюся строку", vector < vector <double> > справится с этой задачей, а то, как делаешь ты, только усложнит тебе жизнь, потому что эту память потом придется вручную освобождать.
1256 2547620
>>546910

> gavno.begin()


std::begin(gavno)

> gavno.end()


std::end(gavno)

А лучше переходи на рэнджи.
1257 2547640
>>547420
Ты мимо украча промахнулся.
1258 2547670
>>547620

> std::begin


> std::end


Нахуя.
1259 2547673
>>547670
Так надо.
1260 2547748
Чому первый вариант не хочет компилить?

error C2679: binary '<<': no operator found which takes a right-hand operand of type 'T' (or there is no acceptable conversion)
1261 2547767
Как сделать так, чтобы в вижуал студии иде собранная программа запускалась относительно корня открытой папки, а не относительно папки, в которой лежит .exe? Просто я, допустим, хочу открыть файл в корне папки и мне приходится писать путь "..\..\..\file.txt" вместо ".\file.txt"

Собираю через симейк, в вижуал студии просто открываю папку, если это важно
1262 2547775
>>547748
Где вызов?
изображение.png34 Кб, 715x399
1263 2547777
1264 2547782
>>547777
вызов print(adjacents);
1265 2547788
>>547767
А ну ладно, я понял, мне нужен был launch.vs.json и там есть параметр currentDir

https://learn.microsoft.com/en-us/cpp/build/configure-cmake-debugging-sessions?view=msvc-170
1266 2547912
>>547748
Может, потому что компилятор не догадывается подставлять все варианты темплейт-аргумента во все глобальные функции с нужным именем?
Для твоего юзкейса я бы наследовался от базового класса и виртуальный protected метод
это так, навскидку, не эксперт
1267 2547955
Есть какие более адекватные способны автоматизировать чейнинг вида dvach.privet().ja().pidoras() для билдер-паттерна? Есичо, вот файлы со скринов:
https://github.com/VimDefecator/httpserver/blob/master/src/classutils.hh
https://github.com/VimDefecator/httpserver/blob/master/src/html.hh
https://github.com/VimDefecator/httpserver/blob/master/src/test.cc
да, это будущий двач на крестах
1268 2547957
>>547955

>способны


способы
1269 2547964
>>547955
Не надо автоматизировать, хуй потом разберёшься в этой наркоманской параше из макросов.
Наверняка в Boost есть чо
1270 2547971
>>547964

>Не надо автоматизировать


А как жить-то? Ведь выходит два стула.

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

Либо пишешь сам, но примитивно, с кислым ебалом, кучей бойлерплейта и без перспектив для кодовой базы стать полноценным DSL.

На работе я сильно не выебуюсь, но для себя - хочется. Но препроццессор - слишком, согласен. Поэтому спрашиваю, может есть какие-то ФИЧИ НОВОГО СТАНДАРТА, О КОТОРЫХ НЕВОЗМОЖНО МОЛЧАТЬ, какие-то УБИЙЦЫ МАКРОСОВ V3.0, чтоли...
1271 2548023
>>547955

>чейнинг вида dvach.privet().ja().pidoras()


Тоже бесит эта маза.

> более адекватные способны


М. б. проектировать так, чтобы писалось
dvach.privet(ti, negodyaj) вместо этого членинга.
1272 2548065
>>548023
Ну и как ты так красиво билдер напишешь?
1273 2548142
>>548023

>М. б. проектировать так, чтобы писалось


>dvach.privet(ti, negodyaj) вместо этого членинга.


Очевидно, там может быть гораздо более длинный список параметров, и делать набор из 15 дефолтных значений в интерфейсе конструктора не вариант, потому что половину дефолтных значений один хуй придется набивать вручную, если надо кастомизировать значение восьмого. Ну и вызывающий код нихуя не читаемый, если ты не знаешь наизусть порядок аргументов или хотя бы не комментируешь их имена вручную. Алсо, у всех все в пизду сломается, если ты решишь порефакторить порядок. Хуета, короче.
1274 2548446
>>548142
Есть древняя забытая тнхника передачи кучи параметров в стуртуре, тогда изменение одного из дефолтных параметров, жаже последнего, не требует набивать все остальные.
1275 2548481
>>548446
Неудобно, некрасиво, не нравится, мам скажи
1276 2548741
Мне дали денег, чтобы я работал.
На них я заразился СПИДом и умер.
Такие дела.
1277 2548762
Кто-нибудь проходил вот этот курс от Яндекса?
https://cppcourse.ru/#rec515178264
1278 2548773
Привет. Как прокачать понимание указателей? Вообще мои знания - это примерно половина книги Р.Лафоре. Очень сложно продвигаться без какой-то задачи или цели. Яндекс практикум я не потянул потому что там сложность возрастает в геометрической прогрессии имхо, надо гораздо больше времени тратить на конкретном этапе (по крайней мере мне). Спасибо за советы.
1279 2548786
>>548773
Чел плюсы не твое - точно. Возможно и весь кодинг.
Что можно не понимать в указателях лол? Ты сложение и вычитание понимаешь?
1280 2548791
Куда перекатиться плюсовику, чтоб накопленный опыт помогал?
По rust вакансий нет совсем, хотя на уровне растбука хотя бы наверное осилить стоит.
По си зарплаты низкие совсем.
Куда ещё глядеть?
1281 2548802
>>548762
Смотрел на ютубе с белого до красного включительно. Кое-какие интересные фишечки есть, но не вот прям откровение. Все их "реальные проекты для портфолио" суть обычный васянокод уровня laba.cpp.

Читал отзывы на сам курс, как по мне это трэш, который даже за бесплатно малоинтересен.
Так называемые менторы - это чатик из таких же бедолаг как ты, где они делятся своим опытом.
А опыт - это больше не про кресты, а про долбежку в систему автоматической проверки, которая не сообщает в чом ты не прав, а просто отклоняет решение и все тут.
Нахер такой опыт нужен, я не знаю.
1282 2548806
>>548773
Указатели это наследие си. Бери книжку Кернигана и Ричи по сям, решай задачки оттудова. К ней есть книжка с решениями всех задач и есть еще https://clc-wiki.net/wiki/K&R2_solutions .
1283 2548937
Ебать я охуенно придумал. СЛАБО?
1284 2548945
>>548937
А студенты как всегда клепают новые дсл, эх
.png26 Кб, 772x544
1285 2548965
1286 2548988
>>548965
Не, ну это уже какой-то высший пилотаж. Да и прикол моего DSL в том, чтоб процедурно все это дело генерировать. Зацени, как я только что реализовал втыкание лямбд в свое выражение.
Screenshot from 2022-12-21 22-58-16.png63 Кб, 877x357
1287 2548993
>>548988
ой, штйсльгкпрйблсь, вот такая разметка должна быть
1288 2549001
Конечно, блядь, я тот еще наркоман, спрятать пару core методов в отдельный translation unit вплоть до капсуляции всего приватного в std::unique_ptr<Impl>, и все только для того, чтоб потом высрать 100500 дсл фич макросами и темплейтами в хэдере. Такое уже имеет смысл делать header-only.
1289 2549053

> принимать std::string по значению


Каш мар
1290 2549143
>>548937

> этот забор


Пиздос. За 9 уровней вложения надо палками забивать насмерть.
изображение.png52 Кб, 733x373
Экземпляры Венеомин 1292 2549382
А есть более компактное и лаконичное объявление экземпляров?
1293 2549498
>>549382
Нет. Так норм ничего менять не надо
23456971452687908.png26 Кб, 792x203
1294 2549516
Суп, подскажите, что сделать с этим?
Пик 1 - проблема
Пик 2 - то, что я установил
Пробовал и в VS 19, результат один
Раньше как-то получалось. Да, на Шарпе это всё проще, но мне надо на крестах, но не собирается
1295 2549518
24253.png21 Кб, 391x297
1296 2549519
>>549516
Отклеилось*
1297 2549548
>>549516
так иди в шарпотред
image.png985 Кб, 1360x1560
1298 2549549
>>549168

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


ка пец!
1299 2549777
Что надо написать, чтобы максимально быстро занять всю оперативную память?
1300 2549782
>>549777
while (true) {malloc(100000);}
но тебя просто ос убьет за такое
1301 2549785
>>549782
Спасибо
Венеомин 1302 2549820
>>549498
а если мне надо 200 айтемов создать разных - будет 200 строчек кода лишних? Это ж фигня
1303 2549823
>>549820
А что, компилятор должен за тебя додуматься, какие 200 разных айтемов тебе нужны?
Венеомин 1304 2549827
>>549823
а в про кодах их, получается в строчку просто записывают или как?
1305 2549967
>>548937

>геттеры


>сеттеры


>pimpl


Если бы ты принёс мне то на ревью, я бы тебя избил, обоссал, а потом в окно выбросил.
1306 2549983
>>549967
Да ему даже отвечать не надо. Просто троль дрочит в присядку.
1307 2550308
>>549967
А чо не так неиронично если что спрашиваю
1308 2550312
>>550308
Жаба какая-то получилась, а не крестики.
1309 2550339
Сколько времени нужно, чтобы выучить сетевые протоколы на хорошем уровне, чтобы свою реализацию написать. Хотя бы основные: tcp, udp, как ip вообще присваиваются и все такое
1310 2550340
.
1311 2550342
>>550339
Свою реализацию чего?
1312 2550343
>>550342
Tcp, dhcp
1313 2550344
>>550339
Годы, ебическая усидчивость и овердохуя свободного времени.
1314 2550348
>>550344
Ты точно не загнул? Стандарт tcp описан в 80 страницах. Всего лишь 80
1315 2550349
Я понимаю, что предпологается, наверняка, наличие каких то еще знаний, но все равно, 80 страниц блин. Танненбаум 1к всего лишь
1316 2550353
>>550348
Ну прочитай эти "всего лишь 80" страниц и напиши свои реализации сетевых протоколов за пару вечеров, можешь потом хвастаться, как быстро превзошёл инженеров из Cisco.
1317 2550386
>>550339

> сколько времени займет Х


Ну вот ты какой ответ нормальный ответ ожидаешь на сво вопрос? Что хочешь услышать? Точную дату?
1318 2550410
>>549967
>>550312
Ну все по заветам Майерса разве нет? Еще enable_shared_from_this не хватает.
1319 2550486

>mutable - permits modification of the class member declared mutable even if the containing object is declared const.


Ещё одно подтверждение, что кресты делаются шизоидами для шизоидов.
1320 2550544
>>550486
Это что такое и откуда?
1321 2550591
>>550544
Это сделано для ленивых логических констант, которые вычисляются при первом обращении и кешируются. Макака естественно с таким не сталкивался.
Мимо
1322 2550593
>>550591
Без этого ленивые константы, конечно же, не реализовать никак.
1323 2550597
>>550386
Дни, месяцы или годы. Хотя бы примерно
1324 2550854
>>550597

>Дни, месяцы или годы. Хотя бы примерно


Это все индивидуально же. Некоторые SICP за несколько месяцев-полгода осиливают, например, а некоторые на несколько лет растягивают. Плюс от начальной подготовки многое зависит, поэтому тебе никто не сможет дать адекватную оценку по времени, кроме того, что от пизды сказать.
изображение.png50 Кб, 1156x378
1325 2551016
в чём отличие {} от () при создании объекта?
1326 2551312
>>551016
Ни в чем особо, синтаксически разные, семантически одно и тоже делает

может быть какой то подводный камень есть, который встречается раз миллион лет, но я просто пишу {} и проблем не встречал
1327 2551388
>>551016
Зависит от того, какие у класса конструкторы. Вектор с (1,2) и {1,2} делает совершенно разные вещи.
1328 2551421
>>551388

в случае вектора для {1,2} будет вызван конструктор для initializer_list?
1329 2551473
>>550339
да немного на самом то деле
это неплохой способ выучить язык и вообще научиться программированию
берешь спецификацию какого-нибудь протокола (тысячи их, для пром контроллеров, для iot, для финтеха, для крипты, для медиа, для ip-телефонии, и прочиее) и по спецификации ебашишь чтобы работало, вот и все
думать вообще не надо
а вот грамотно спроектировать протокол под конкретную задачу, вот это да, уже мастерство и другой уровень квалификации
почти все референсные реализации протоколов написаны на pure c, часть из них на приплюснутой сишке
в качестве учебной задачи можно написать реализацию использующую возможности новых стандартов с++, к примеру
1330 2551476
>>551473
а, дополнение - браться за реализацию сетевого tcp-ip стека я бы не советовал, с учебной целью гораздо полезней реализовать один из более специализированных протоколов либо семейство протоколов
1331 2551503
>>551016
1) int i(2.72); // i == 2 && warning C4244: 'initializing': conversion from 'double' to 'int', possible loss of data
int j{2.72}; // error C2397: conversion from 'double' to 'int' requires a narrowing conversion

2) copy(istream_iterator<int>{sstr}, {}, inserter(v, deque_middle));
// Обрати внимание на пустую пару фигурных скобок в середине.
А еще можно писать
//...
return {};

3) Разное поведение при использовании с auto.

>>551421
да
1332 2552959
Эй, плюснявые, почему я ваш тред на главной не вижу? Вы спрятались?
1333 2553450
Бля, спасите, я ваши плюсы курю один день. Надо найти кол-во элементов в векторе объектов, int поле у которых больше 200. Надо использовать count_if, bind, greater. Я не ебу как забиндить, да и вообще не ебу как это должно работать и нахуя у вас это есть, но вот код который задачу выполняет, только нужно его изменить с использованием count_if, std::greater, bind
https://pastebin.com/nQim1Yup
1334 2553458
>>553450
Разобрался. Синтаксис мое почтение
1335 2553462
Лабы идут нахуй.
1336 2553491
>>553458
Обращайся.
1337 2553777
>>549967
Пару лет назад, когда я был еще молодой и зеленый, один ревьюер пытался мне за это предъявить. Ох и горячий был спор. ревьюера по итогу обоссали.
1338 2553823
Не пойму прикола Смаке, я в add_executable() должен вручную чтоле блядь все файлы прописывать? Я в GNU make мог шаблоны писать, да мог ничего не писать, утилита все сама собрала бы из исходников. И почему нигде не пишут проверяет ли сmake даты изменения зависимостей? Перед тем как сбилдить.
И не понятно как работает вижуал студия, она проверяет даты изменения зависимостей как make или нет? По ощущениям она как будто каждый раз все файлы заново компилирует.
1339 2553900
>>553823
Для файлов есть глоб и глоб рекурс. Ты бы хоть погуглил. Проверяет. Симейк аообще все делант, если правильно его использовать.
1340 2553955
>>553823
симейк - кусок говна. Добро пожаловать.

И да - glob не рекомендуется официальными доками
1341 2554016
>>553955
А какую альтернативу офф доки предлагают?
1342 2554065
>>554016

>офф


Ебать говноед. Ты еще и длинна пишешь, угадал?
1672043225030.jpg40 Кб, 891x450
1343 2554075
1344 2554107
>>554016
по одному файлику ручками добавлять, как старики мейкфайлы в 70ых писали руками.
1345 2554638
Анон, не хочу писать циклический буффер, решил взять boost::circullar_buffer<Foo>.

И чето я не понял прикола блядь, как использовать методы пуш/поп без новой аллокации? Конструктор в Foo каждый push вызывается, зачем
1346 2554713
>>554065
В английском с двумя f пишут.

>длинна


Тогда уж ленгтх.
1347 2554726
>>554638
Покажи.
1348 2554805
>>550339
Год. Время пошло.
16497716938680.jpg2 Кб, 162x121
1349 2554808
>>554713

> В английском с двумя f пишут


Так и пиши в агглийском.
image.png32 Кб, 860x493
1350 2554947
Суп, борщ. Решаю тут задачки уровня 5 класса и не осилил.
Задача на пике, у меня такое решение:

#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
float n, z;
cin >> n;
z = n * (n + 1) / 2;
cout << setprecision(30) << z << "\n";
return 0;
}

Но оно не правильное. Почему?
1351 2554990
>>554947
Во-первых вместо float нужно int. Иначе на больших числах возникнет округление.
Во-вторых надо следить за переполненим целого -- 4e9 * 4e9 это больше чем 64-битный int
1352 2555005
>>554947
uint_least64_t
1353 2555012
nonzero_int_30_to_90_bits_divisible_by_5_please_t
1354 2555017
>>555012
Ждём в C++29. Там любая последовательность байтов будет синтаксически корректной программой на C++.
1355 2555018
Но при этом переполнение знаковых будет по-прежнему UB.
1356 2555026
>>555018
И сети в stl так и не завезут
1357 2555411
У меня самодельное дерево переполняет стек при вставке 50 000 упорядоченных элементов.
Че теперь всю рекурсию на итерации переделывать? Нафик я тогда ее учил?
1358 2555415
>>555411
Делай сбалансированное дерево теперь
1359 2555459
>>555411
Ахаха, молодой падаван. Рекурсию с зависимостью от данных не используй ты.
1360 2555748
Вот вам вопросы от нубаса.
Хочу в консольке - слушать нажатия клавиш и чтобы при нажатии что-то делалось, но чтобы при этом - все приложение не ждало пока нажму клавишу.
Ну, типа я тетрис в консольке хочу. И как сделать так, чтобы игра просто шла, но фигурка крутилась только тогда, когда клавиша нажимается - я не знаю. Можно - ждать каждый "кадр" нажатия, но тогда вся суть теряется от такого вот тетриса.
1361 2555800
>>555748
Я дополню вопрос, пожалуй, мне тоже интересно, и заодно отвечу на него на 50%. Ввод можно ожидать в отдельной нити, и тогда приложение не будет висеть. Но как в плюсах проще всего читать ввод без эха и без необходимости нажимать ввод? Есть getch, но он чисто для винды. Можно использовать сторонние библиотеки, но может есть какая-нибудь магия со стандартными потоками?
1362 2555804
>>555748
Именно для этого и используют потоки.
1363 2555810
>>555800
"Сторонние библиотеки" для таких целей используют нативные функции целевой платформы.
смотри сурс глфв пол ивентс - там это нормальго сделано
1364 2555820
>>555810

>"Сторонние библиотеки" для таких целей используют нативные функции целевой платформы.


Да это понятно, просто не хочется подключать какой-нибудь sfml только ради этого. Выглядит, как оверхед.
1365 2555831
>>555820
Не оверхед - это навелосипедить SFML самому на WinAPI/LinAPI.
1366 2555843
1367 2555845
В плюсах можно объявить класс A внутри другого класса B и обращаться к нему как B::A, как будто B это namespace (пример: string::iterator). Как это правильно называется, и где об этом почитать? Иногда нужно сделать класс Foo и производный от него (то есть логически связанный с ним) класс FooBar, и хочется чтобы он был вложен в первый (Foo::Bar). Проблемы возникают, когда это шаблон класса, и ещё если я пытаюсь на qt так же вложить qobject в qobject.
1368 2555854
>>555843
Тот же sfml, но для сишки.
sage 1369 2555873
>>555804
пописал на тебя
1370 2555936
>>555748
Win API, если тебе достаточно винды или PDCurses, если хочешь кроссплатформу.
Вот пара примеров
https://code-live.ru/post/cpp-oldschool-snake/?ysclid=lc6ne0rid7844748121
https://gamedev.ru/projects/forum/?id=137654

>>555800

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


Нет никакой-такой магии со стандартными потоками.
Вводом/выводом рулит операционная система и к стандарту языка оно никак не относится.
1371 2555939
>>555936

>Нет никакой-такой магии со стандартными потоками. Вводом/выводом рулит операционная система и к стандарту языка оно никак не относится.


Не, ну по этой логике и тхреды контролируются ос и полностью зависят от платформы, но в стандартной библиотеке они, тем не менее, есть. Почему бы так же не внедрить в стандарт универсальный аналог getch?
.png1,1 Мб, 955x715
1372 2555943
1373 2556018
>>555800

> getch, но он чисто для винды


с какого это перепугу?
#include <curses.h> и вперёд
16594779649520.jpg84 Кб, 1024x775
1374 2556116
>>556018
Двачую адеквата.
1375 2556380
Смотрите, есть 32-битное целое число. Как компьютер определяет, что оно ненулевое? Просматривает каждый битик? Неужели нет более быстрого способа?
1376 2556385
>>556380
cmp %eax, 0
А как это внутри на конкретном процессоре работает, врчд ли тебе ответят. Можешь почитать про физическую сторону вопроса, попыиаться сам сделать что то похожее, но не факт, что у intel все так же. А вообще он не проверяет каждый бит. Он одной инструкцией делает операии сразу над байтом, двумя, четырмя или восьмью байтами
1377 2556400
>>556380
Сравнение быстрее всего делает дерево And над побитовыми Not Xor. Сравнение с нулем будет дерево And над инверторами, что еще быстрее.
1378 2556723
>>556380
На x86 процессоре, чтобы проверить, например, является ли число ненулевым, нужно выполнить с ним какую-нибудь операцию. Каждая выполненная операция устанавливает значения разных флагов. Один из них, ZF - означает, равен ли результат вычисления нулю. Для этого можно выполнить cmp eax, 0, как написали выше, но чаще всего пишут test eax, eax, так быстрее. Cmp выполняет вычитание, а test - побитовую операцию and. И в том, и в другом случае потребуется пройтись по всем битам. В некоторых случаях можно обойтись без test, если итак придётся перед проверкой выполнить какую-то операцию, которая установит нужный флаг. Хз, как оно может работать быстрее, по-моему норм.
1379 2556908
>>556385
Добавлю. Это на самом деле сложный вопрос. Есть вообще наука которая занимается булевыми схемами, как быстрее вычислять булевы функции схемами наименьшей глубины, например. Тут глубоко копать можно
1380 2556995
>>556380
Могу ошибаться, но вроде есть флаг нуля в регистрах, который один бит. Либо этот флаг появляется на алу, и тогда программа типа

i--;
If(i == 0)
break;

разворачивается типа в
inc , -1; // Инструкция вычитания
jnz break_label; // куда прыгать, если результат прошлой команды 0. Это быстрая операция
1381 2557089
Кстати, в последовательных эвм железно просматривался бит за битом. Двухвходовая Или плюс триггер результата.
изображение.png17 Кб, 408x209
1382 2557211
Правильно оператор присваивания сделал?

ip - это string
port - int
adr - struct sockadr_in
1383 2557213
>>557211
* перемещающий
1384 2557214
>>557211
* address - struct sockadr_in
1385 2557252
>>557211
Охуительно назвал поля.
1386 2557374
Есть какие-нибудь форумы, комьюинити, дискорды по эмбедеду? Чтоб не дохлые были
1387 2557670
>>491360 (OP)
Что почитать чтобы научиться писать ебейшие тимплейты? Желательно покороче, ака минимум воды

Я научился делать дженерики и простенькие рекурсивные функции на вариадических темплейтах, но этого мало, хочу сделать конструктор навороченной структуры данных, чтобы оно все скомпилировалось и требовало минимум указателей и константных значений в рантайме, пусть все что можно запекается в код.
1388 2557679
>>557670
Отмена миссии, я посмотрел как tuple устроен и передумал, лучше руками скопирую пару раз для нужных значений

Хотя все равно какой-нибудь читшит было бы интересно почитать
1389 2558003
Есть гарантия, что it.end() будет заинлайнен?
Как вы вообще живете с вызовами 100 функций из критичных циклов, а вдруг компилятор это сделает медленно.
1390 2558008
>>558003

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


Компилятор в среднем сделает быстрее, чем разраб.
1391 2558023
>>558003
Никакой гарантии
Вся ответственность в твоих руках
1392 2558042
>>558003
как ты живешь без профайлера, чучело?
1393 2558098
>>558042
Пишу на языке, где + всегда компилируется в команду сложения. Или в две.
1394 2558106
>>558098
Жаль, что + в крестах компилируется в UB.
1395 2558115
>>558003
На более менее современном железе вызов функций настолько быстр что инлайн вообще потрял смысл. Хотя обвызывайся.
а так про профайлер здраво сказано
1396 2559161
>>558115

> На более менее современном железе вызов функций настолько быстр что инлайн вообще потрял смысл


Мвахаха.
1397 2559240
>>558115

> На более менее современном железе вызов функций настолько быстр что


qsort проигрывает std::sort в скорости почти в два раза.
Почему?
1398 2559569
всех с наступающим, пусть в этом году нас всех спасёт от утечки памяти shared_ptr и unique_ptr, а офферы на 300к летели каждый день.
1399 2559621
>>559569

>пусть в этом году нас всех спасёт от утечки памяти


Но не от циклических ссылок. Как же тяжко.

>офферы на 300к


Хотет. Эх, да...
изображение.png14 Кб, 1148x60
1400 2560018
С новым годом!
Продолжая тему изучения cmake, как вы решаете проблему, когда find_package() не может найти библиотеку? Мне кажется эта распространенная проблема у виндодаунов, но толкового гайда не найти. Я пока решаю проблему установкой следующих переменных.
1401 2560187
>>560018
Ну а как тут решать проблему, только делать так чтобы пакет обязательно был, в противном случае падение
И либо юзер сам ставит то что надо, либо сам ручками, нужные пакеты для твоего по, в отдельную папочку складываешь

Ну или пэкедж менеджер используешь, Конан, vcpkg
1402 2560240
>>560018
В принципе верно, файн пакэдж примерно так и работает.
Просто обычно жобавляют отдельный файн пакадж нейм " симейк где пути и прописывают.
1403 2560256
>>560187
для чисто виндового проекта симейк нахуй не нужен, есть мсбилд, с прокидыванием папок к 3рдпати либам

Для кроссплатформы - юзай пекедж менеджеры
1404 2560258
Нугет, например.
sage 1405 2560280
>>491360 (OP)
Ананасы, решил через пару неделек походить по собесам, сам работаю мидлом с зп 2.5к$ не ДС/ДС2, но хочется попробовать поймать чего получше.
Кто-то ходил в последние пол года по собесам? Готовились к собесам? Что спрашивали? На чем обосрались?
Сейчас вспоминаю все с чем не работал эти 2 года, дрочу литкод, ссыкую дико
1406 2560421
>>560280
Самому кстати интересно, хочу порофлить и сходить куда-нить на собес, посмотреть как меня там выебут, что вспомнить хоть.
1407 2560431
С новым годом сиплюсплюсяч

Как определить структуру, у которой есть массив длины N, массив длины N - 1, ..., массив длины 0 Вопрос: ты что, дурак, зачем тебе массив длины 0? Ответ: массивы для упрощения примера?

Я придумал так:
template<size_t ...N>
struct LevelArrays{
std::tuple<std::array<int, N>...> levels;
}

И оно даже работает:
LevelArrays<4, 3, 2, 1, 0>{}

Но это всрато, я хочу указывать одну цифру.
Попробовал так: // оставим то, что тут порядок возрастающий, как развернуть integer_sequence я нашел
template<size_t N>
struct LevelArrays{
std::tuple<std::array<int, std::make_index_sequence<N>>...> levels;
}
Оно ожидаемо не работает, как сделать правильно?
image.png51 Кб, 760x534
1408 2560439
1409 2560443
>>560439
Спасибо, мудрый анон
1410 2560550
>>560280
лучше уволься с текущей работы, отдохни месяц, а потом все силы направь на поиск нового более оплачиваемого месяца, а то 2,5к баксов с текущей инфляцией - это просто смех, ты просто гниешь в этом болоте без роста
1411 2560551
>>560550

>месяца


места
1412 2560669
>>560550
Слишком толсто
1413 2561011
привет всем
1414 2561100
пашол нахуй))0)
1415 2561104
>>560669
не толще твоей задницы после 10ти лет просиживания за компом для изучения этого "языка программирования"
1416 2561128
>>561104
Найс проекции
1417 2561742
>>561104
я тебя по API вычеслйу!
Screencast 2023-01-03 23:14:14.mp414,7 Мб, mp4,
1920x1080, 2:34
1418 2562382
Вы же понимаете, что по умственным способностях я любого из вас многократно превосхожу?
ParisTuileriesGardenFacepalmstatue.jpg104 Кб, 1024x683
1419 2562383
>>562382

>способностях


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

1420 2562425
>>562382
Круто
но зачем
1421 2562467
>>562382
твой доход - это пенсия по шизе, да?
1422 2562480
>>562382
Фронт тоже на плюсах пиши, будет круто
1423 2562487
>>562382
Ну, как говорится, ебало можно не имаджинировать
1424 2562491
ебать накинулись но добряка
сами то хоть что то в последнее время интересное написали?
1425 2562492
>>562491
Что интересного в этом высере? Мало того, что подобные проекты вообще никакого отношения к C++ не имеют, так ещё и говно какое-то, которая любая шарпоблядь напишет за несколько часов.
1426 2562494
>>562492
ну вот я и говорю, покажи своё интересное тогда
1427 2562497
>>562492

>C++ не имеют, так ещё и говно какое-то, которая любая шарпоблядь напишет за несколько часов


Ебать мания величия
1428 2562514
пишу два приложения, которые обмениваются данными через сокеты. Приложения 1 - клиент, посылает данные Приложению 2 - серверу, и Приложение 2 обрабатывает данные.

Возник вопрос при обмене данными - как приложению 2 узнать сколько прочитать из приложения 1 ? У меня возникла идея, что всегда в начале, перед посылкой основного сообщения, приложение 1 посылало приложению 2 число типа unsigned int в байтах, которое содержало бы размер последующего сообщения в байтах, и только после этого приложение 2 считывало бы указанное кол-во байтов.

- Норм идея? Или можно по-другому?
1429 2562547
Скажите, почему С++ не завоевал мир?
После прочтения первого ответа тут https://www.reddit.com/r/rust/comments/2ifgsx/what_can_c_do_that_rust_cant/
я понял что это мощнейший язык, который может всё, от API для управления космическими спутниками до софта для смарт-ТВ
1430 2562552
>>562514

>меня возникла идея, что всегда в начале, перед посылкой основного сообщения, приложение 1 посылало приложению 2 число типа unsigned int в байтах,


Так и делают
1431 2562554
>>562547

>Скажите, почему С++ не завоевал мир?


Почти все крутые проекты в мире написаны на С или на С++.

Все ОС, все браузеры, все ААА игры (Юнити написан на С++), вся промышленная хуйня, все компиляторы\интерпретаторы

Но да, формочки на нем не шлепают.
1432 2562558
>>562554
Формочки тоже шлепают. Вот веб не делают.
1433 2562600
Почмеу не стоит учить С++ как первый язык?
Я вкатун, хочу хорошо оплачиваемую интересную работу(8ч в день, 40ч в неделю) побыстрее
1434 2562624
>>562600
Ну область применения, если просто хочешь работать пофиг где, то плюсы сомнительный выбор
Слишком много учить, слишком узкие области применения, в целом боль при работе с ним

Есть множество других областей, мобилки, веб, машоб но это тогда тоже не для тебя и миллион других
1435 2562637
>>562624

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


>>562554

>Почти все крутые проекты в мире написаны на С или на С++.


>

1436 2562643
>>562637
Браузер, ос ,графика, встроенные штуки

Что забыл?
1437 2562645
>>562637
Ух, сейчас выучу плюсы, устроюсь на работу и буду там каждый день писать компиляторы, игровые движки, ОС и прошивки для спутников!
1438 2562660
>>562600
Потому что он существенно сложнее и требует больше знаний, чем другие языки, при этом дает не обязательно больше денег
1439 2562814
>>562514
Дежурное напоминание не забывать про endianness
1440 2563122
>>562814
сокеты локальные. Там могут быть проблемы?
1441 2563128
>>562383
О, оказывается, в хроме все ок.
>>562425
Скучно же, ну.
>>562467
Не, я и на работе C++ бэкендщик, правда там подобный DSL с макросами вряд ли восприветствовался бы.
>>562480
Так у меня пока что весь фронт - это браузер, то есть чистый HTML, который генерируется на бэкенде. Но да, если захочется какой-то крутой UI, то это однозначо должен быть самопальный клиент на WinAPI. И чтоб и то, и другое летало на 20-летнем синкпаде под Windows 2000. Джаваскрипт нинужон. Ноудискасс.
>>562487
Согласен. Все таки, нежелательно. От вида такого гигачедяры, как я, ваши комплексы совершат беспрецедентное пробитие дна.
1442 2563145
>>562492
Ну, моей первоначальной целью было потренироваться в реализации лоулевельной части. Даже репозиторий называется httpserver, и только потом тестовый main мутировал в imgbrd. Кроме STL, cstdlib и линуксовых хедеров там ничего внешнего не используется.
1443 2563189
>>563128

>Но да, если захочется какой-то крутой UI, то это однозначо должен быть самопальный клиент на WinAPI.


Не не не, ты не понял
Фронт. на плюсах. в браузере!
Просто всё через wasm делать

идея мертво рожденная, но ржавые например на фулл ебале такое запилили, yew называется, на удивление выглядит норм
maxresdefault.jpg200 Кб, 1280x720
1444 2563192
>>563189
БРАУЗЕР ПРЕДНАЗНАЧЕН ДЛЯ ПРОСМОТРА ГИПЕРТЕКСТА
@
ДЛЯ ВСЕГО ОСТАЛЬНОГО ДОЛЖНЫ БЫТЬ СПЕЦИАЛИЗИРОВАННЫЕ ПРОГРАММЫ, КОТОРЫЕ ПОЛЬЗОВАТЕЛЬ УСТАНАВЛИВАЕТ ПО СОБСТВЕННОМУ СОГЛАСИЮ

никогда не интересовался wasm, звучит годно, вот бы когда-нибудь взлетело
1445 2563227
>>562514

>Или можно по-другому?


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

>гигачедяры


ну пруфани хоть, что живешь в долине или в Цюрихе, гигачедяра. Или в Лондоне, хотя бы
1447 2563239
>>562547

>Скажите, почему С++ не завоевал мир?


ну, к примеру, в энтерпрайзе кресты абслютно справедливо сдохли, хотя в 90е было немало систем на них написаны, секрет простой: уебаны в комитете не захотели делать стандартизированную загрузку-выгрузку классов, ведь хуевертить шаблончики гораздо веселее
обратный пример: в различных контроллерах (даже от самых маленьких до больших в которых уже по сути полноценные ос крутятся) на данном этапе вполне можно было бы использовать с++, потому что комитет дохрена сил за последние 25 лет потратил, введя много средств которые упрощают такой низкоуровневый кодинг, при том что уже изначально в кресты и stl был заложен потенциал работать на контроллерах, но эта отрасль довольна консервативна и там до сих пор на сях дрищут макросами и войд звездочка
1448 2563242
>>562600
без какого то намека на троллинг и наебалово, просто один совет: хочешь побыстрее начать зарабатывать деньги кодингом, даже не смотри в сторону крестов, даже не думай об этом, просто забудь что такой недоязык существует
1449 2563245
>>562645
на с++ не пишут компиляторы, ни одной штуки не написано
пишут на приплюснутой сишке, в том числе и компиляторы самого с++, что как бы и показывает всю ущербность этого языка, ведь яп претендующий на звание языка общего назначения всегда пишется бутстрапингом (что ява, что шарп так написаны)
но это не случай с++, все компиляторы которого написаны на приплюснутом си
1450 2563252
>>563228
Доводжу до твого відома, що я повноправний громадянин наймогутнішої держави у світі. Раджу тобі, чоловіче, якнайшвидше підготуватися до входу у склад нашої імперії. Наврядче наші шляхетні правителі лояльно ставитимуться до жителів східної колонії, що не поважають Україну.
1451 2563253
>>563245
Что такое "приплюснутые си"?
1452 2563254
>>563252
хрю хрю?
image.png163 Кб, 443x604
1453 2563257
1454 2563263
>>563242
а что учить
го
яву
расту
джскрипт? вот чтобы быстро вкатиться иделать проекты и стаь менедежром а потом и СЕО фанудером единорога
1455 2563264
>>563263
Что угодно, но это уже вопрос не для с++ треда
Побегай по соседним тредам поспрашивай как у них дела
1456 2563282
>>563253
Это то же, что C++, но в терминологии конченных долбоёбов, типа шизика, который сейчас бегает тут и говорит забыть про C++ и настаивает, что он не тролль.
1457 2563289
>>563282
Это С++ без умных указателей, шаблонов, итд
1458 2563308
>>563289
Т.е. просто C++.
1459 2563332
>>563308
Приплюснутая сишка
1460 2563354
>>563332
Сишка++
1461 2563359
>>563122
Ну, если компилировать и запускать обе программы на одном и том же компьютере, проблем не будет, но тебе этого наверняка потом будет недостаточно, так что лучше сразу сделать правильно. Если ты используешь Qt, то там есть типы quint32_le и quint32_be.
изображение.png89 Кб, 423x865
1462 2563370
Давно студией не пользовался. Пришлось установить.
Даже обычный хело ворлд не собрался.
Триллионная компания делает всё через сраку. Впрочем, ничего нового.
1463 2563388
>>563370

> 477 ошибок конпеляции хелло ворлда


классика
1464 2563402
>>563239
Кстати void * это же квинтесенция си, лучше уже не будет.
1465 2563435
>>546899
>>563239

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


И правильно делают
1466 2563621
>>563239

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



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

>и stl был заложен потенциал работать на контроллерах


Вот куда он точно был не очень заложен так туда. Любая хуйня для мк ДОЛЖНА поддерживать статическое выделение, не значит что оно всегда будет использоваться, но оно должно уметь.

А по факту - тебе надо либо костыли писать, либо либы сторонние брать, для того, что бы ебанную queue на статике возыметь. ringbuffer вообще блядь отсутствует.

Не, STL это пизда хуета не совместимая с встраиваемыми.
1467 2563633
>>562547
Да, да, очень интересно и прикольно, что ты можешь через union отъебенить себе ногу поколено, но рефлексии без долбления себя в очко так и не завезли.

А пиздатой компайл-тайм рефлексии ебанись как не хватает.
1468 2563662
>>562547
Почему не завоевал? Матрица на чем тогда написана?
1469 2563664
>>563662
На C с классами.
1470 2563668
>>563664
Слишком много глюков в Матрице, для сей с классами.
1471 2564211
У меня есть много фотографий и их нужно назвать по порядку 1, 2, 3, 4. Порядковый номер зависит от самого содержимого фото. Сейчас фото имена их хэш-сумм, то есть они неупорядочены и если просто скрипт запустить консольный, то он назовёт их правильно.

Собсна хочу написать программу которую бы запустил и чтобы я просто в проводнике щёлкал на превьюху фото и он присваивал ей число. Ну запустил программу, щёлкнул одно фото он назвал 1, щёлкнул другое назвал 2.

Подскажите как это реализовать, какие либры юзать и вот это всё. В каком направлении копать короче.
1472 2564220
>>564211
И вот как это сделать. Я в голове прикинул что там на событие левой кнопкой мыши клик должен срабатывать сценарий:
ПСЕВДОКОД

if (left_mouse_button == clicked && while_in_explorer_window == true;)
{ if file_selected == true rename_file(number);

else do_nothing();}
изображение.png19 Кб, 527x469
1473 2564270
Что выведется в каждом вызове и почему?
1474 2564274
1475 2564276
>>564274
Неа.
1476 2564279
>>564276
Пидора ответ.
1477 2564281
>>564211
>>564220
Эксперты по винде, системач, хэлпаните, сос. Ну что никто чтоли в ядре винды не шарит
1478 2564284
>>564211
Чтобы клик на картинку детектился тебе придется писать свою показывалку картинок и там уже обрабатывать события с мыши.

Если хочется проще я бы сделал так
- создаем пустую папочку
- перетаскиваем туда в искплорере мышой картинки по одной за раз
- скрипт сидит и следит за папочкой
- как только там появляется новый файл, переименовывает его по порядку
1479 2564293
>>564284
Не, мне именно надо чтобы клик на любой объект в проводнике детектился, чтобы моно было и картинки и папки всё нумеровать.

А чё если делать скрипт по твоему варику там power shell надо да?
1480 2564298
>>564284
Может быть можно как-то при событии клик мышкой обращаться к процессу explorer у него спрашивать был ли выбран какой-то объект current window.

Наверняка можно в какой-нибудь стэк i/o вхуйнуть это как фильтр-драйвер
1481 2564301
>>564298
так эксплорер же обычныей процесс как все оствльные
небось и каких-нить хуков/инъекций в него пиздануть можно
1482 2564304
>>564301
Ну у него же есть свои api к которым можно обратить и запросить типа был ли file selected сделан.

Ну короче щас попытаюсь снова объяснить что я хочу.
Есть папка с файлами в explorer

Ты берёшь и запускаешь программу. Она чекает что рабочее окно(которое ты выбрал щас) принадлежит процессу explorer и если так то при событии клика мышкой она спрашивает у explorerа был ли выбран какой-либьо объект(папка, файл, фото видео) в окне если да то выбранный файл переимновывается присваивается число 1 и после чего оно увеличивается на 1 до следующего раза.
1483 2564307
>>564270
Выведется A потому как бест матч.
1484 2564310
>>564307
Я тоже так думал. Но правду говорят, что плюсы не знает никто.
1485 2564313
>>564310
Сам Страуструп писал в своей книге Основы ООП на базе с++ чтобы люди не дрочили на лексику и головолоками вроде а что будет если всякую ебалу налепить, а писали программы
1486 2564327
>>564313

>Сам Страуструп


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

На самом деле, все было бы куда проще, если бы программисты в непонятных ситуациях клялись Жопой Страуструпа, а не кивали бы на Стандарт.

Страуструп - учредитель Общества с неограниченной безответственностью.
1487 2564335
>>564293
Я простой линуксоид город мухосрань
Так что с виндовыми API ебитесь как-нибудь сами
Не понимаю я в этом да и собственно оно мне до пизды
1488 2564336
Вот уже 40 лет Страуструп траллит лалок, а они ни о чём не догадываются.
1489 2564756
>>564335
Ну так виндовый api гораздо сложнее чем всякие linuxы. Ладно, я уже понял что без книги руссиновича не обойтись. Спасибо, аноны.
1490 2564761
>>564336
Скоро дотнетовцы начнут траллить всех. У них уже есть компиляция в нативный код хоть под линукс, хэллоуворлд весит чуть больше 1 мб, установленный дотнет не нужен, по скорости ебёт всякое GOвно.
1491 2564769
>>564761

> хэллоуворлд весит чуть больше 1 мб


Но если запаковать в него рантайм дотнета, он весит уже 20 метров, даже после трима. И это хеллоуворлд, а сервис будет уже под сотню.
1492 2564777
>>564769
Нет, в 7.0 дотнет уже не нужен при AOT-компиляции, там полностью нативный код. Из негативного - рефлексия выключается полностью и либы с ней не будут работать.
1493 2564807
>>564777
AOT не тыкал. Раз так, Go точно идёт нахуй, куда ему с шарпами тягаться.
image.png4 Кб, 409x37
1494 2564921
Друзi помогите вкатышу. Если я вот так создал массив, то мне получается нужно писать free(string) в конце программы, чтобы освободить память?
1495 2564923
>>564921
а бля это тред плюсов а не си
1496 2564944
>>564921
Совсем по феншую - да. По факту - пока не парься.

Из причин сделать free() перед завершением, что я могу придумать - это корректная отработка atexit() abort() всяких и какие нибудь ультра ебнутые случаи, когда твоя программа исполняется в одном и том же процессе с другой (я хз можно ли так вообще, не очень знаком с подноготной и ее проблемами, просто говорю тебе, что там до и после мейна что-то есть и тоже может исполняться.
1497 2565185
>>564944
Еще бывает полезно чтобы в тестах утечки памяти обнаруживались.
1498 2565359
>>564912 (Del)
Не эксперт по qt, но слышал, что valgrind считает утекшей любую неосвобожденную по завершению память. Вот есть у тебя глобальный объект - окно. Должен жить все время. Ты взял, сразу через new выделил и потом просто не удаляешь, пока прогу не убьют. Тебе норм, а он за утечку посчитает. Это мои предположения
1499 2565379
>>564912 (Del)
Покеж код
1500 2565381
>>564912 (Del)
Сражаться и отыгрывать обратно!
1501 2565611
>>548791
а нахуя тебе перекатываться?
1502 2565630
Приветствую, Аноны! С Новым годом!) Счастья, благ)

появилась необходимость написать небольшой кликер, использую функции SetCursorPos и mouse_event
проблема в том что они не всегда работают:
1). не получается "кликнуть мышью" на некоторые окна
2). если запустить эти окна через "эмуляцию" Alt+TAB, то функции SetCursorPos и mouse_event вообще перестают выполняться(наблюдаемый результат отсутствует)
третий день мучаюсь, в интернетах пишут что-то про разные окна на Win API, мои силы на исходе, подскажите пожалуйста как решить данную проблему Спасибо
1503 2565645
>>565630
p.s. у всяких удалённых рабочих столов такой проблемы нет: по идее они так же должны эмулировать работу мыши/клавиатуры (без DLL инъекций я надеюсь)
1504 2565691
>>565630
Тебе нужна виртуальная мышеклавь
1505 2565821
>>565691
а чего нибудь попроще нет?
вот всё работает, потом перехожу на приложение - движения мыши прекращаются, SendInput попробовал - тоже не работает

косвенно догадываюсь что мышь и клавиатура находятся (подключены) к какому-то неизвестному окну, которое никак не связано с тем, что я вижу на экране
Говнина.png18 Кб, 502x206
1506 2565895
1507 2566162
Нужно ли мне стараться, чтобы мой проект компилировался разными компиляторами?
Что делать если какая-то либа в одном из компиляторов не компилируется?
Нормальная ли практика чутка подпиливать либу, чтобы работала?
1508 2566189
>>566162
Пока ты маленький студентик-вкатун - тебе нахуй все это не надо.

Когда ты мало того, что работаешь, так и на работе есть требование кроссплатформенности\разных компиляторов - вот тогда надо.
1509 2566238
>>566189
Я пилю свой проект для хобби, интересно, какие лучшие практики

А сейчас как раз переезжал с mingw на msvc и задумался
1510 2566255
>>566162
>>566189
Хуй знает, по мне наоборот, если ты планируешь этим работать - нужно все делать энтерпрайзно, даже если это копродомашний проект.

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

Среди С++ пограмиздов знание УБ и тыканье им друг в друга это отдельная спецолимпиада.
159839018560105657.PNG10 Кб, 582x165
1511 2566402
Нужна помощь с автоотключением реле после включения по смс.
Если использую delay 10000 * 8 то вся ардуина виснет.
Есть какие ни будь другие варианты как это реализовать?
1512 2566604
>>566402
Сохрани время, когда отключать реле, в переменную и в лупе проверяй каждый раз уже пора или еще нет

Не блокируй луп дилеем
1513 2566617
>>556385
Дебич. Это медленный способ. cmp eax, eax
1514 2566807
Что вы говорите, когда на собесе спрашивают о проектах, над которыми вы работали?
1515 2566808
>>566807
Говорю, что написал змейку.
1516 2566810
>>566807
Стараюсь увести разговор в другое русло, если не получается, начинаю оскорблять мать собеседующего.
1517 2566819
>>566604
Для этого придаться использовать контроллер времени.
1518 2566827
>>566819
Нет, время когда пора = текущие миллис + задержка
1519 2566829
>>566827
"время" когда отключать реле, ардуина постоянно будет перезапускаться мне каждый раз настраивать время?
1520 2566835
>>566827
как то так
1521 2566865
>>566835
В целом да, только логику проверь.

Кстати наверняка для ардуины уже сделали либу деферред тасок, но мне всегда хватало руками иф написать
1522 2566867
>>566865
не нашел
1523 2566896
>>566402

> реле


> по смс


Зарепортил на всякий. И вам советую сделать так же.
1524 2566898
>>566255
Вся эта шелуха тебя отвлекает от самого важного - пиления своих проектов.

Я, когда вкатывался, ваще ничего не умел кроме вижуал студии. Вкатился, моей сениорской лычке уже больше пяти лет, все еще ничего не умею кроме вижуал студии, и не хочу уметь.
1525 2566910
>>566896

> автоотключением


Смысл репортить если он уже включать научился?
1526 2566911
>>566910
Так может самое интересное на отключении, он для этого таймер и ставит. Репортите, глупцы, пока не поздно...
1527 2566914
>>566896
Интересно, есть ли статистика по использованию ардуино в бомбах при терактах.
1528 2566926
>>566896
ну ты и урод решил мою грядку разбомобить!
1529 2566962
сука)) как же я сиранул с обоссаных опущенных уебанов в этом треде, насколько нужнео быть нищей пидарашкой чтоб писать не на шарпе и тем более на этой хуйне
1530 2566971
>>566962
Уходи.
image66 Кб, 1200x603
1531 2567597
Мнение анонусов по пикрилу?
1532 2567602
>>567597
Не нужно, по причине существования SFML.
1533 2567606
>>567602

>SFML


Хуйня без задач, к тому же баганная и мало платформ.
C++ обёртки для SDL и то лучше будут
1534 2567706
>>567606
Sdl и есть плюсы. На си глфв.
1535 2567710
>>567706
Нет.
1536 2567798
>>567710
Пидора ответ.
1537 2567801
>>567798
Мать твою ебал.
1538 2567864
Нахуй Алигн нужен?
Тем более зачем отнем знать компилятору?

Что такое pragma(push,1) и pragma (pop)?
1539 2567879
>>567864

> Нахуй Алигн нужен?


Доступ по выполненному адресу эффективнее.

> Тем более зачем отнем знать компилятору?


Потому что компилятор размещает данные.

> Что такое pragma(push,1) и pragma (pop)?


Выравнивание полей структуры по однобайтовой границе.
1540 2567881
>>567879

> Доступ по выполненному адресу эффективнее.


По выравненному
быстрофикс
1541 2567888
>>567879
То есть компилятору нужно выделять
alignof(x) + sizeof(x)?
А если массив структур то каждую выравнивать?

Каш мар
1542 2567889

> компилятору


Аллокатору*
ой...
1543 2567891
>>567888
Не так уж трагично выходит, скорость решает.
1544 2568447

>SFML


>SDL


Вы пизданутые. Еще и мне это говно посоветовали когда-то. Я недавно узнал, что API OpenGL позволяет писать напрямую в драйвер видюхи, достаточно занклюдить <gl.h>.
Вот на чем надо писать, потому что так писали серьезный сэм и другие ламповые игры.
1545 2568464
>>568447

> Еще и мне это говно посоветовали когда-то


Чётче вопрос надо было формулировать.

> OpenGL


Это 3D. А SFML - 2D.
1546 2568530
>>568464
Лол. Опенгл это часть драйвера по сути. Хедеры только адреса. А сымл это шаред либа, пртчем так себе.
1547 2568534
>>568530
И что? Тебя же не удивляет, что для вывода в консоль все используют стандартную библиотеку вместо вызова прерываний или функций WinAPI по адресам. Та же хуйня и с OpenGL, нет смысла писать тонны бойлерплейта для рисования фигур, когда в SFML это делается в несколько строчек.
1548 2568596
>>566962
Мистер, напишите пожалуйста мне CLR\CLI, шоб в 256кб с кодом приложения влезало.

Не? Не напишите? Что говорите? Только круд можете написать? Ну ладно.
1549 2568615
А вы знали, что в 23 стандарт комитет ввёл std::expected (он же хаскелльный Either) и монадические операции над ним и над std::optional.
Кто-нибудь остановит этот взбесившийся принтер?
1550 2568618
>>568615
Лучше бы сокеты добавили.
1551 2568620
>>568615
Так ахуенная же штука
Я правильно понимаю что это аналог растовского резулта?
1552 2568633
>>567597
steam его использует кста, так что норм
1553 2568644
>>568615
Наоборот заебись, кресты никогда не были ООП-языком. Я бы уже давно полностью на кресты перекатился обратно, если бы вместо cmake что-то нормальное придумали.
1554 2568741
>>568447
Опенгл - это Си, а не плюсы.
СФМЛ - это не только графика, но еще сеть, многопоточность, звук и ввод с клавомыши.
СФМЛ очень дружелюбен к нубам с объемом знаний в одну книжонку по плюсам. Позволяет в живую пощупать все то, чего ради создавался C++ поверх сей.

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


Так писали движки для игор. Игра - это гораздо более высокоуровневая штука.
Доморощенное движкостроение нынче крайне не актуальная тема.
1555 2568813
>>568447
А если когда писали ламповые игры еще в очке ковырялись и жрали наковыренное, то ты тоже так несомненно должен делать.

Аргументация от бога блин.
1556 2568834
>>568741

> Опенгл - это Си, а не плюсы.


Опенгл это спецификация.
1557 2568857
>>568834
с си интерфейсом
1558 2569224
Необходимо написать надежную систему сохранений транзакций пользователей. А именно, необходимо быть уверенным, что если данные записались, то с ними ничего не случится, даже если потом комп отключится от сети и сгорит все кроме диска. Надежность диска - отдельный вопрос. Меня сейчас интересует следущее: верно ли, что если я записал на диск данные, сбросил буфер, то с ними уже все заебись? Или как это делать правильно?
1559 2569229
Ну и на чём пилить быстрый и красивый гуй? Qt - говно, выглядит так себе и очень медленный. Всякие imgui от хача Омара и высер на расте egui - слабо пригодны для десктопного гуя, нельзя хуяк-хуяк делать. Фреймворки на C# - нет поддержки 7 дотнета, соответственно нахуй. Разве что js-парашу брать, в виде электрона или в PWA выносить. Видел ещё шизов с годотом, он весит пару десятков мегабайт после выкидывания всего игрового, говорят гуй ничего там. Что предложите?
1560 2569241
>>569224

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


Нет. Никаких гарантий нет что данные физически запишутся на диск после сброса. Даже если драйвер ФС будет считать что данные записались, то нет гарантий что сам диск их записал, а не держит в кеше. Если ты что-то записал на диск и питание сразу отъебнуло - это так называемое UB.
1561 2569242
>>569241
И че делать? Очень надо гарантии обеспечить
1562 2569245
>>569242
Поставить ИБП, поставить серверное железо дающее такие гарантии.
1563 2569254
>>569245

> ИБП


Это просто, спасибо

> серверное железо


Чет не гуглятся ssd с гарантиями такими, хотя мб я плохо поискал. Спасибо

Но ведь должен быть способ как то сбросить данные. Я же когда компьютер выключаю, оно все записывается, верно? Почему я не могу процесс форсировать?
image.png266 Кб, 736x736
1564 2569267
1565 2569270
>>569254
Тебе надо не в сторону софта идти за гарантиями, а в сторону железа. Если питание экстренно пропадает, то на обычном железе всегда есть шанс проебать данные за последние секунды вплоть до минуты. Ты думаешь нахуя в ДЦ ставят одиночные серваки стоимостью как автомобиль? Со стороны софта ты можешь только дублировать сохранение данных на разном железе для гарантий. Ты думаешь всякие серверные сбои с проёбом БД за хуй знает какое время - это чисто диски наёбывются? Да нихуя подобного.
1566 2569280
>>569229
С++ Builder.
1567 2569287
1568 2569295
>>569267
>>569280
>>569287
А если серьёзно? У меня бэк будет на питоне, надо так. Я же не буду гуй на питоне писать, я вообще не хочу писать на нём. В идеале бы его в кресты встроить и нормальным гуем обмазать. Но надо чтоб это не было слишком жестким крестовым дерьмом - коллеги не поймут как с этим работать. Как говорится надо и рыбку съесть и на хуй сесть - питоном пусть развлекаются другие, а мне надо быстрый современный гуй к нему прикрутить.
1569 2569301
>>569295
Если есть бэк, почему не веб-клиент?
1570 2569302
>>569295

> бэк на питоне


> фронт на плюсах


Блять...
1571 2569305
>>569301

> почему не веб-клиент?


Звучит как хуйня, ведь будет очень медленно. Ты вообще видел какой перфоманс у веба в питоне? Да и оно будет запускаться фактически локально, нахуй оно нужно.
>>569302
Потому что макаки есть и пишут на чём могут. Я тоже пишу на чем могу хочу.
1572 2569438
>>569305
Ты же не для себя пишешь? Ну так бери PyQt и не выёбывайся. Толку с твоего быстрого фронта не будет, благодаря тормозному бэку на гвидоне.
1573 2569455
>>569438

> Ты же не для себя пишешь?


Ну как сказать, потом мне ебаться с этим говном, получится кал - придётся переписывать.
1574 2569605
>>569455
С гуем на плюсах гарантированно придется ебаться больше.
1575 2569624
Приветствую всех!
Каким образом в С++ можно многопоточно читать из файла так, чтобы каждый поток читал отдельный кусок? Просто у объекта типа std::FILE есть индикатор позиции начала чтения. Как тогда сделать так, чтобы для каждого потока он был свой?
1576 2569711
>>569624
а диск у тя тоже многопоторчный что ли наркоман?
1577 2569716
>>569711
Так мне же просто читать с диска, а не писать в него. Нельзя что ли никак?
1578 2569721
>>569716
можно
посмотри как в fopen передать флаг на shared read
если никак - погружаешься глубже в кал какой-нибудь CreateFileW и ебешься в сраку непосредственно с ОС хендлами файлов
1579 2569725
>>569721
Спасибо! Буду копать
1580 2569755
Если у меня есть наполненный vector, я могу достать из него данные с помощью data(), но vector все еще будет владеть их жизненным циклом.

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

По сути мувнуть вектор в указатель?
1581 2569762
>>569755
кастомный аллокатор
1582 2569771
>>569711
Сильно большое файлы мне читать не доаодилось, но много небольших в многопоток читается на ура.
и клеются в один буфер по смещению тоже
1583 2569773
>>569755
Есть же вмякие куе декуе, которые при попе удаляют.
1584 2569774
На С++ было так просто и весело писать пока я не узнал про управление памятью и UB(((
1585 2569776
>>569774
Какая лаба понравилась больше всего? По циклам? По массивам?
1586 2569795
>>569776
По фундаментальным типам.
1587 2569835
>>569224
если писать совсем упрощенно, то ты используешь субд в которой реализован ACID
но есть и другие системы надежной обработки транзакций, если не важен вендорлок, то они есть и в ядрах современных ос
самому тебе не написать, если у тебя нет в запасе лет 20ти
1588 2569932
>>569755
нахуя?
Вектор это указатель + 2 числа. 16 байт сэкономить хочешь?
1589 2569933
>>569624
mmap и дрочи как хочешь
1590 2570091
>>569835
Сам писать я не хочу, главное результат
1591 2570108
Короче я решил, что мне сейчас проще всего будет организовать запасной источник питания, в случае если основное электричество отрубят. Потом просто все данные как обычно записать на диск, да выключить машину. Думаю, мне для моих целей хватит
1592 2570109
>>569932
Нюфаг плиз. Это может юыть вектор не интов, а йоб.
1593 2570120
>>570109
И в чем будет отличие от того, что он написал?
image.png12 Кб, 525x232
1594 2570134
>>570109
от нюфага слышу
какая разница че там в векторе если указателю пох на что указывать
1595 2570136
>>570109

> Я УЖЕ ЛАБА2 НАПИСАЛ Я НАШАРЮ НЮФАНЬ ЧО УЖ ТЫ ТАК ХАХА ЛОШОК

1596 2570240
>>570109
Плюсы 2023 итоги
пиздец, в тематике наверное только растотреде более раковый
1597 2570320
>>569932
Апи либы принимал и наполнял вектор, а в программе везде результат передавался как указатель (и делитался после использования), а тк вектор большой, то копировать не хотелось, а памятью владеть хотелось.

Забил и переписал, чтобы передавался вектор
1598 2570690
Почему знаковое переполнение UB? Это же пиздец полный, не? Крайне вероятная штука
1599 2570698
>>570690
Из-за зоопарка архитектур, где после максимального значения не следует минимальное.
1600 2570732
"Обращение к неинициализированной переменной - UB". Это верно даже если я написал
int a;
a = 3;
или
int b;
cin >>b
?
1601 2570735
>>570732
Неудачная формулировка. Чтение неинициализипованной переменной - UB.
1602 2570738
>>570735
Спасибо
1603 2571001
Посоветуйте хороший курс по С++ для продвинутых, хотел пояса от яндекса проходить, но их выпилили с курсеры.
Опционально еще бы что-нибудь про паттерны и всякие примеры как нужно писать, а как не стоит, но с учетом С++ специфики.
1604 2571012
>>571001
Константин Владимиров на Ютубе.
1605 2571016
>>571001
Книги.
1606 2571026
>>571012
Вот этот уебок больше выебывается, чем пытается объяснить. В итоге приходится самому все гуглить.
1607 2571136
>>570732

>cin >>b


есть ли способ проверить пришло ли что-то и записалось ли в переменную? Может я ctrl+d нажал?
1608 2571140
>>571136
badbit/failbit/eofbit
1609 2571149
>>570108

>проще всего будет организовать запасной источник питания, в случае если основное электричество отрубят.


Правильно решил - иди выбирай и закупай источники питания, тыж программист!
1610 2571215
1611 2571246
>>571001
На степике от csc очень сжато, но по верхам пройтись пойдет
1612 2571325
>>568741

>СФМЛ - это не только графика, но еще сеть, многопоточность, звук и ввод с клавомыши.


В SDL Это тоже есть, чел, не поверишь!
1613 2571327
>>567864
Сразу видно человек никогда в реверс инжиниринге не гулял, старый шиндоус софт не патчил
1614 2571331
>>571325
SDL это C, а не плюсы.
1615 2571485
>>571325
Сдл он >>568447 тоже противопоставляет опенглу.
1616 2572073
Ребята.
Есть тема чем тралить лалак.
Напиши бэкенд на Boost.Beast и убедись чтобы работало с epoll/
1617 2572439
>>560280
Буду репортить результаты в тред.
Пока-что сходил на один собес, прошел успешно, спрашивали будто на стажера-джуна, ни одного сложного вопроса не было. Немного завалился на тех вещах которые не использую эксепшены и метапрога, но в целом фидбек очень положительный.
Предложили 3к на руки.
Впереди еще пара собесов, хочу попробовать выбить 3500
1618 2572480
>>572439
Примерно вопросы вспомнить можешь?

мимо вкатун 3курсник, тоже хочу уже начать вкатываться помаленьку
1619 2572496
>>572480
Да хуйня какая-то джуновая. Написали пустой класс попросили дописать какие функции сгенерит компилятор. Потом попросили дописать какие из них будут noexcept, собеседующий сам подумал что копи конструктор будет не ноэксцепт но я ему статик ассерт вьебал и он согласился.
Спросили какую-то шаблонную дрочь, я ответил неправильно т.к не пользуюсь таким, вопрос точно не помню, чет про универсальные ссылки и реализацию std::ref
Потом спросили какие бывают мьютексы в стдлибе, сложность вставки в мапу и хешмапу, немного про рвалуе/лвалуе семантику
Потом вроде бы пару вопросов по Qt - на какой-то простой ответил, на посложнее нет т.к не юзал его 2 года
Больше не вспомню. В целом я на джуна в текущей компании собесился гораздо сложнее, ебали 3 часа мозг всеми аспектами языка и дали самый низкий грейд с зп 1к$, хотя ответил тогда даже лучше чем на этом собесе.
На самом деле обидно немного что за такие собесы так платят, может фирма с подвохом, хуй знает
videoplayback.mp49,3 Мб, mp4,
294x240, 3:53
1620 2572835
>>572439

>Предложили 3к на руки.


>Впереди еще пара собесов, хочу попробовать выбить 3500


Я бы на эти пиццот разницы попытался выбить бы себе всяких либеральных привелегий. Но если ты Die Roboter, то и хуй с тобой. Die fucking robot!
1621 2573079
надеюсь переката не будет и тред здохнет нахуй
изображение.png153 Кб, 355x236
1622 2573182
>>572496

> пустой класс попросили дописать какие функции сгенерит компилятор


> какие из них будут noexcept


> универсальные ссылки и реализацию std::ref


> какие бывают мьютексы


> сложность вставки в мапу и хешмапу


> немного про рвалуе/лвалуе семантику


Серьезно? Где мои 3к?
1623 2573214
Чет почитал статью на хабре - дайджест о С++23 и событиях за год.

Помоему плюсы умирают.
Нет, они не умирают вот здесь и сейчас и не умрут через 10 лет и мб 20.

Но какое-то загнивание.
STL и даже кейворды стали похожи на костылища и выглядят как пиздос рода new_keyword_what_must_do_better_but_do_worse()
UB фиксятся не анальной стандартизацией, а добавлением новых фичь, без удаления старых.

Нахуя это все? Что это даст?

Че они так пекуться о ABI? Кто то на серьезных щах будет переносить многомиллионнострочный проект с одного стандарта на другой?

Все вот эти шутки, про не возможность выучить плюсы, это на самом деле нихуя не смешно же.
Инструментом надо пользоваться, а не учиться набивать шишки пол жизни.
1624 2573227
>>573214

> плюсы умирают


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


Охуенно умирают.

> STL и даже кейворды стали похожи на костылища и выглядят как пиздос рода new_keyword_what_must_do_better_but_do_worse()


auto используй

> UB фиксятся


Зачем UB "фиксить"? Ты точно крестовик или просто не понимаешь сути UB?
1625 2573236
А можно в плюсах сделать класс, который будет после компиляции выглядеть полностью также, как и примитив?

Хочу использовать типизацию, чтобы не допустить путаницы с примитивными типами данных (ака метры и килограмы, или x координата и y координата).

При этом использование в коде дергается крайне часто, поэтому любой оверхед не подойдет
1626 2573237
>>569933
Вот это помогло. Спасибо!
1627 2573272
>>573236
в chrono так сделаны единицы для часов/минут/микросекунд и т.д.
1628 2573280
Ololo, der C-Pluse-Pluse ye pre-olde thraede, and comrades still don't give a shit...
About std::shit_ptr
About std::absolutely_void
About std::ai_love_love
1629 2573386
>>573227

> Охуенно умирают.


Это вообще не аргумент. Есть такое выражение - пир во время чумы.

>auto используй


Ну охуеть, особенно когда я в объявлении поля класса должен написать, что то вроде
static inline constexpr

>Зачем UB "фиксить"?


Нехуевая часть UB это по факту implementation defined хуйня.
Вполне можно было бы анально загасить все это, заставив в таких ситуация ЯВНО указывать платформу например, особенно при учете того, что прагмы уже давно существуют.
Много писать? Никого никогда не смущала насрать три листа вложенной макропидерастии для разруливания платформозависемой хуйни. А тут хочешь сказать застремает?

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

inb4: кокококоптимизации - на хуй не нужны не явные в стременных местах. Код не эта хуйня тормозит. А там где эта - люди и так лазают по дизасму в поисках где бы спиздить еще пару тактов, так что ничего не поменялось бы.

Я вот с позиции лоу-скилл практикующего говорю, а именно на таких должен быть нацелен любой человеческий инструмент, разве что ты не маня из мира с несрущими принцессами.
1630 2573397
>>573386
Чувак, у тебя одна ошибка логическая - плюсы язык не для людей, а для программистов. Всё. Когда ты это поймёшь, все вопросы отпадают.
Они как саперная лопата - жестокие, брутальные, но универсальные и всем подходящие
А до, людей сейчас развивают другие языки - managed в основном. Хотя у раста есть потуги в юзабельность, но это потихоньку выходит из под контроля
1631 2573421
>>573397
В твоих словах - самодовольство и бахвальство, а по факту, потом появляются вот такие статьи
https://habr.com/ru/post/497114/
1632 2573479
>>503304
>>503113
Работаю без образования на плюсах и сях, проект новый, писался мной с нуля. кодить особо некому, сейчас приходится вообще любых воннаби-кодеров со школ, универов, канав и притонов брать, и хорошо, если у кого-то есть опыт хотя бы шарпа, иногда пытаешься джава-скриптера с месячным опытом кодинга переучить, а он не осиливает
1633 2573489
>>503113
а, ну собственно используется во всех микроконтроллерах, системах ерального времени, автоматизациях производства, короче везде, что связано с реальностью и обеспечением средств существования человечества, а не миром поней и радуг
1634 2573513
>>573489
В мк и RT сейчас набирает обороты раст лобби.

Т.к. мк и рт это в первую очередь про не наебывается, а не про скорость. А там где нужна супер скорость просто воткнут плисину или мк помощнее.
1635 2573590
>>573421
Пчел, может я невнятно написал - но это нихуя не плюс есчё. То что я написал - факт. Хуёвый и бесчеловечный. Если твоя предметка предполагает скорость, общение с сишными либами, системку etc - ты БУДЕШЬ юзать плюсы

И это проклятье
1636 2573939
>>573590
в чём проклятье-то, плюсы охуенные, если не хуйню писать, а головой думать чё пишешь
1637 2574001
>>573939
Всё 22 или сколько типа инициализации в голове держишь, уеба?
Хуею с таких как ты блять. Ладно бы ты поо мощность написал, я бы ещё понял.

> головой думать


Ну да, мыж блять не задачи собрались решать, а код писать. Точно, забыл
1638 2574039
>>573939
в том, что ты напишешь хуйню и не подумаешь головой.
1639 2574503
>>574001

>Всё 22 или сколько типа инициализации в голове держишь, уеба?


0
Вспоминаю 1 на время, пока его пишу

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


А, ну если ты из секты макак, то решай, соединяя свои миллиарды фреймворков изолентой, а я изначально код собирался писать, чем и занимаюсь
1640 2574545
ПЕРЕКАТ >>2574543 (OP)
ПЕРЕКАТ >>2574543 (OP)
ПЕРЕКАТ >>2574543 (OP)
Тред утонул или удален.
Это копия, сохраненная 15 января 2023 года.

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

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