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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
С++ thread #141 /cpp/ 2626726 В конец треда | Веб
Вместо шапки:
https://github.com/sosachbot/cppthreadhat
⚹ Для кусков кода: https://0bin.net/

Ответы на вопросы:
https://en.cppreference.com/w/
https://www.cplusplus.com/reference/

Для указателей: ⚹

Прошлый тред: >>2574543 (OP)
2 2626746
C++ лучше чем шарп.
3 2626886
auto<auto> &&auto = (&&)auto()[];
1677687694106.jpeg1003 Кб, 1512x2016
4 2626904
Анон, как правильно сделать свой сервис на ASIO с внутренним потоком? Идея такая: внутри класса скрыт поток, который делает блокирующие штуки типа poll(), а сам класс, в который передается io_context, уже имеет методы типа async_wait() и cancel.

Идея вроде правильная и в духе asio, но я что-то туплю и не понимаю как корректно общаться между internsl_thread и внешним пользовательским io_context.

inb4 использовать один из сервисов asio, он не работает нихуя с моим кастомным chardev
5 2627128
>>26746
я бы поспорил
6 2627883
>>26746
Спору нет, только работы на плюсах нихуя нет.
7 2627966
Гайз, много где пишут "Уверенное знание STL".
Что это вообще под собой понимается?
Алсо какие требы для мидла? Стек допустим Qt.
8 2627967
>>27966

>Что это вообще под собой понимается?


std::algorithm, unordered_map, stack и какой-нибудь make_heap
9 2627972
>>27966

> Уверенное


Можешь объяснить исходники STL. Легко читаешь многомегабайтные высеры компилятора при передаче в темплейт неправильного типа.
10 2627974
>>27967
Если я изучу книгу Майерса по STL будет достаточно?
Я ща живу внутри Qt, потому с STL опыт крайне опосредованный. Стек понимаю что такое, пользовался в литкоде, хеш-мап тоже. Из алгоритмов не помню, пользовался всякими найти первый и тд.
11 2627976
>>27974

>Если я изучу книгу Майерса по STL будет достаточно?


Если дополнишь парой вечеров дроча cppreference - да.

>Я ща живу внутри Qt


Не пробовал в доме жить? Всяко комфортнее.

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


Вот набей 50-100 мидл задач решённых и будешь вообще молодцом.
12 2627979
>>27976
Понял, спасибо, пойду конспектить...
13 2628060
>>27966
На личном опыте я тебе могу сказать, что такое не уверенное знание STL.
Я с уверенностью могу сказать, что в принципе в самой по себе STL для меня нет ничего незнакомого.
Тем не менее, при чтении кода мне частенько приходится обращаться к справочнику.
Но самый прикол, когда я пишу что-то сам. Вот я уверенно знаю, даже помню, что на STL оно в пару-тройку строчек пишется. Сажусь писать и понимаю, что в деталях-то оно работает не совсем так, как я полагал. И опять-таки приходится зарываться в cppreference, подымать свои архивы и книжки, которые когда-то читал, или вообще шурудить по стаковерлоу.

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

>>27974

>Если я изучу книгу Майерса по STL будет достаточно?


Нет.
Во-первых, она 2001 года издания.
Во-вторых, она крайне мала по объему.
В-третьих, уверенное знание одним только чтением книжек не приобретается.
14 2628078
>>28060
Я про С++17 STL книгу его.
В целом обычно я сначала за ответами лезу на сппреф в доку класса, уж только потом на СО.
15 2628197
Почему разработчики компиляторов не боятся жестко облапошиться? Компилятор плюсов пишут на плюсах. Компилируют компилятором старой версии. Но вот нашли в компиляторе баг, который корректную программу компилирует неправильно. И что теперь? Это же значит, что возможно он и наш компилятор неправильно скомпилировал. И че делать?
16 2628199
Мне нужно хранить файлы пользователей без сервера. DHT - мой выбор? И что вообще скажете насчет сложности реализации такого?
17 2628201
>>28199
Сложно реализовать, а инфы мало. Надо разобраться с NAT, да и не сработает, если в сети слишком мало узлов с белым IP.
18 2628202
>>28201
Можно считать, что у каждого узла есть белый ip. Задача такая. Это мне yggdrasil обеспечит
19 2628209
>>28078

>Я про С++17 STL книгу его.


У Мейерса разве есть такая?
20 2628279
>>28199
Поридж пытается изобрести Perfect Dark.
Screenshot2023-03-03-10-13-32-710com.fbreader.jpg385 Кб, 1080x2248
21 2628308
>>28209
Нет, я долбаеб и автора попутал.
Я про эту.
22 2628309
>>28308
Сейчас набегут ненавистники пакта.
23 2628347
>>28197
Компилируют несколько раз, пока бинарники не перестанут различаться.
Если не вышло, откатываются.
24 2628539
>>28197

>Почему разработчики компиляторов не боятся


Потому что они не макаки, а программисты, код у них под контролем. Если нашли баг, значит исправляют его или обходят. Это работа, страху тут взяться не откуда. Страх, он от неизвестности, когда ты - макака, делаешь сам не зная что, вот и боишься.
25 2628578
>>28197
Бутстрапинг гугли, ёпта, и вникай как чё делать
>>28347
Этот шарит.
>>28539
А этот - нихуя, у него самомнение ебенистическое, а в реальности пук среньк "как же это я не заметил". Все ошибаются. Различие умного и тупого - умный знает где он может ошибиться и придумывает хитрости, чтобы снизить шанс или рано отлавливать ошибку, а тупая скотина будет стрелять себе в ногу каждый день и "whoops" свой ебучий говорить каждый раз и нихуя не делать для того чтобы вупса этого галимого обоссанного в следующий раз не было или он был бы хотя бы не такой болезненный.
26 2628715
>>28578

>умный знает где он может ошибиться


Заявление уровня тупой скотины, воображающей себе умных, но конечно неправильно.

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


Например что? Переписать всё с нуля? Заявление уровня тупой скотины.
Есть такое понятие как целесообразность. Только тупая скотина которая ничего не делает, думает что человек всесилен и может творить что захочет, когда в реальности наоборот, надо делать полезную вещь думать о результате, при ограниченных возможностях, а не фантазировать воздушные замки идеала как это любят делать тупые скоты.
27 2628728

> высокомерие, снобизм, презрение к другим


У плюсовиков это норма?
Или в СНГ только такое
heilgate.jpg45 Кб, 500x393
28 2628734
>>28728
Туземцы практически все такие.
29 2628736
>>28728

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


У плюсовиков это норма?
Или в СНГ только такое
30 2628749
>>28715

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


Ясно
31 2628751
>>28728
У меня презрение только к тем, кто сам высокомерен и т. д. по списку.
Но я и не плюсовик, может в этом дело.
32 2628760
>>28749
Но я не разработчик компилятора.

Так что привыкай, чем быстрее признаешь, что ты макака, которая вместо программирования БОИТСЯ, и вдобавок тупая скотина которая ничего никогда не делала, но любит рассуждать об уме и работе, тем быстрее появится шанс на исправление. Ведь исправление всегда начинается с признания наличия проблем.
33 2628940
>>28197

>Компилятор плюсов пишут на плюсах.


это не так
пожалуй, все компиляторы с++ единственные из мейнстрим-языков, не написанные методом бутстрапинга, даже экспериментальные, лол
все компиляторы с++ написаны на приплюснутой сишке
что конечно же доказывает убожество этого недоязыка
34 2628951
>>28940
Это же не правда)
35 2628993
>>28951
как так неправда?
подход с++ предполагает что мы используем кодогенерацию в компайл-тайме, используя метапрограммирование на шаблонах, в том числе и при написании разнообразных парсеров
а, открывая код любого компилятора с++ мы видим вручную захардкоженные таблицы по сути своей привет из 60х великий и ужасный компилятор алгола, код тупо приплюснутая сишка
или типа с++ это ведь ооп язык, да?, ну и в принципе архитектура любого хотя бы современного компилятора должна быть тоже ооп - ну там иерархии классов все дела, а видим мы тупо голенькие классики и кучу свободных функций, хе хе
36 2629000
>>28993
Ты открывал clang?
37 2629010
>>28940

>что конечно же доказывает убожество этого недоязыка


Неосилятор порвался.
38 2629111
Есть множество макросов вида
#define ID1 1
#define ID2 4
#define ID3 6
#define ID4 7
...
#define ID1000 1452

Как с ними работать? Допустим, хочу пройтись циклом:
for (int i = 1; i <= 1000; ++i)
{
foo(ID?i); //<-- как их склеить блять
}

Иначе говоря, мне нужно сгенерировать имя макроса, такое вообще возможно?
39 2629112
>>29111
Боюсь спросить, а чем массивы не устроили?
40 2629113
>>29111
Не получится. Всё, что ты можешь сделать - сгенерировать как-нибудь код, заполняющий значениями макросов некоторую коллекцию, и дальше уже работать с ней.
41 2629114
>>29112
Это надо спрашивать у создателя вышеупомянутого перечня макросов если он ещё жив - коду больше 20 лет

>>29113

>Не получится


=(
42 2629133
>>29111

>как их склеить


Склеивает макрооператор ##.

НО! Цикл работает во время выполнения программы, а макросы раскрываются еще даже до компиляции.
В итоге ты можешь склеить буквы ID и букву i, но не значение i.
Чтобы получить то, чево хочешь ты, нужно запилить цикл прямо на препроцессоре.

Что-то подобное есть в boost/preprocessor
https://www.boost.org/doc/libs/1_81_0/libs/preprocessor/doc/

Насколько оно там костыльно сделано и какие есть ограничения я не знаю, читай документацию.
43 2629136
>>29111
Очередная скриптосвинья не понимает что такое компилируемый язык программирования.
44 2629148
Как же хочеца чтобы макросы из раста в плюсы спиздили.... разве я так много прошу...
45 2629198
>>29136

>на плюсах можна фсё

46 2629202
>>29148
Dlang же
47 2629253
>>29148
А чё там за макросы, если коротко?
48 2629279
>>28728
При отсутствии некоторых важных вещей и сердитой дешевизне других, в стандартной библиотеке с самого первого стандарта реализована такая монструозная хрень, как localization library.

Страустпуп более, чем толерантный человек и был таковым , когда это еще не было мейнстримом.
49 2629390
>>29253
Как дефайны, только в параметры передаются не просто строки, а символы из АСТ
50 2629449
>>28279
Во-первых, нет, а во-вторых, почему бы и нет, если интересно?
51 2629469
Чому больше нет журналов про C++? Хочу журналы про C++.

Я люблю запереться в подвальчике,
Почитать кой-какие журнальчики,
Как брунетки ебутся с блондинками,
Обязательно чтобы с картинками,
52 2629536
Либы это норм подход? Мне они запомнились кучей dll которых вечно не хватает и раздутым приложением. Но что, если я использую конкретную либу, где мне пригодятся (почти) все функции? Какие в этом минусы? Хуже ли оптимизации работают? Может вызов функций дольше?
53 2629546
>>29536
И надо ли требовать, чтобы все было собрано одним компилятором?
image.png292 Кб, 460x679
54 2629550
Какой метод вызывают сортированные контейнеры стл для сортировки объектов, если не указываешь кастомный? Вот я стракт или класс объявлю, напихую говна в него и какую сигнатуру метода надо чтобы контейнер автоматом сортанул объекты этого класса?
Что-то типа такого?
struct Piss
{
int shit;
bool operator<(Piss* other) {return this->shit < other->shit;}
...
55 2629554
>>29550

>сортированные контейнеры стл


Например?

>для сортировки объектов


Зачем сортированному контейнеру еще раз сортироваться. Ты не находишь, что это звучит как хуита?

>Какой метод вызывают


Самый пиздатый - вот какой. По умолчанию Quck Sort, по факту как получится, по стандарту - гугли справочник какое O(n) гарантируется, в народе - колхозник, в магазине - продавец.
56 2629559
Помогите плиз вкатышу. Я пытаюсь решить n-queen, нашел вот такое решение: https://github.com/neetcode-gh/leetcode/blob/main/cpp/0052-n-queens-ii.cpp

Зачем (почему) тут делается int queen[9]; и memset(queen,-1,sizeof(queen)); ?
57 2629565
Что-то рановато мне еще такие задачи решать, ебаные плюсы лучше буду на питоне
58 2629567
>>29559
Потому что в C++ массивы не инициализируются
.png164 Кб, 550x400
59 2629573
>>29565
Не сдавайся. В программировании успех определяется усидчивостью, а не использованием примитивных инструментов для гуманитариев вроде петухона.
60 2629574
>>29554

>Например?


std::set

>Зачем сортированному контейнеру еще раз сортироваться.


А каким образом он сортируется? При добавлении он какое-то сравнение производит. Для встроенных типов его объявлять не надо. Но вот у меня свой всратый класс Моча, как его контейнер будет сортировать? По содержимому байтов? Мне надо чтобы он по одному конкретному параметру сортировал, я для этого могу объявить метод для сортировки и оно так и поступит, а вопрос - как сделать чтобы метод не надо было объявлять?

>Самый пиздатый - вот какой. По умолчанию Quck Sort, по факту как получится, по стандарту - гугли справочник какое O(n) гарантируется, в народе - колхозник, в магазине - продавец.


А квиксорт этот каким образом знает какой объект больше а какой меньше?
61 2629585
Как понять все особенности сборки? Я каждый раз в этом путаюсь. Все вот эти cmake, конфигурации в visual studio, make, в каком месте флаги задаются и все все все
62 2629593
>>29585
Вот в инструкции сказано как с помощью make и cmake собирать, а как блядь указывать компиляторы и все вот это я не ебу
63 2629598
>>29593
Да это дрочиво согласен. Переходи лучше на питон или js, у нас такой хуйни нет.
64 2629609
ладно, cmake gui помог мне натыкать нужные кнопки и открыть проект в vs studio, где уже и могу конфигурации легко менять и платформы
65 2629611
>>29609
Правда там по пути вылезли ошибки вида "ignoring unknown option '-O3'"
66 2629614
>>29585
Никак, все каждый раз с этим ебутся, открывают документацию к компиляторам и сборщикам, 10 страниц stackoverflow, блоги и форумы 2005 года.
67 2629620
>>29614
Почему нельзя это как то исправить? Сделать какой то единый интерфейс?
68 2629630
>>29620
Потому что в плюсах зоопарк компиляторов и сборщиков для разных платформ, нет единой реализации от создателей языка, как в других языках, есть только стандарт.
69 2629633
>>29630
Я понимаю. Но это же пиздец. Хоть вообще либы не используй. Кому хуже станет, если либа будет подтягиваться почти сама?
изображение.png62 Кб, 1183x556
70 2629636
>>29574

>А каким образом он сортируется?


Он не сортируется. При вставке элемент добавляется сразу в нужное место. Это не сортировка, это другое семейство алгоритмов.

>А квиксорт этот


А квиксорт - это просто алгоритм сортировки по умолчанию, еще со времен сей.

>каким образом знает какой объект больше а какой меньше?


Да ебана, че ты хочешь-то, ты можешь внятно сказать?
Хочешь - можешь подменить функцию сравнения на свою.

>std::set


У стд::set например она задается параметром шаблона при объявлении экземпляра.
Сам алгоритм упорядочения (в случае с сетом - вставки нужное место) остается на усмотрение разработчика компилятора. Стандарт требует только заданного O(n).
71 2629640
>>29636

>Хочешь - можешь подменить функцию сравнения на свою.


Это параметр Compare на пикриле.
72 2629652
>>29633

> Кому хуже станет, если либа будет подтягиваться почти сама?


Либы в плюсах тоже разные. Они могут линковаться динамически и статически, могут быть header-only. Либа, собранная одним компилятором, может не поддерживаться другим. Может быть нарушено ABI. Могут быть разные соглашения о вызовах. На разных платформах либа может требовать разные зависимости, причём набор зависимостей может отличаться от того, как собирали либу. Нет в плюсах такого, чтобы скачал либу, и она бы собиралась и работала везде при любых условиях.
73 2629659
>>29609
Нет. Я не могу скомпилировать либу для linux
74 2629666
>>29659
Или может подскажете, он по умолчанию выбрал x64. Так же дает на выбор ARM, ARM64, Win32. А мне надо на линух собрать
75 2629674
>>29666
Линукс тоже x64, но не win64.
76 2629675
>>29148

> из схемы

77 2629680
>>29675
Не получится, не хватает универсального синтаксиса со скобочками.
image.png406 Кб, 1000x1000
78 2629681
>>29636
Ну я же выше уже приводил пример. Класс "Моча" с хуйнёй внутри. Хочу чтобы сортировалось по мемберу "говно", но не прописывать Compare для каждого контейнера в который моя двачерская душонка соизволит запихнуть эту мочу.
То что ты пишешь я все и так знаю, ты никак почему-то не адресуешь ответ на конкретный вопрос.
79 2629682
>>29674
То есть либа кроссплатформенная, получается? Мне казалось, что так не бывает... Ладно, сейчас попробую на линуксе с ней собрать
80 2629696
>>29681

> ты никак почему-то не адресуешь ответ на конкретный вопрос.


>конкретный вопрос.


>ортировалось по мемберу "говно"


>запихнуть эту мочу


Конкретно говну конкретно моче нет более подходящего места, чем отхожее место. Причем у кого-то там конкретного отхожее место вполне может совпадать с конкретным обеденным столом, дамским туалетным столиком, двачом, землей небой, Аллахой и тп..
81 2629701
>>29696
Не знаешь - так и скажи, зачем попусту воду гонять.
82 2629705
>>29701

>зачем попусту воду гонять.


Зажмотил постов на дваче? Ониж бесплатные, четы жопишься )

>Не знаешь


Еслиб я все знал, я б сидел не тут.
83 2629717
>>29681

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


В моче определи оператор сравнения. Контейнер его сам разыщет.
84 2629732
Бляяя. Оказывается Visual Studio на линуксе просто gcc использует. Я думал оно умеет прям под линукс компилировать.... Ну так не интересно.... Тогда clion накачу да и все. С него проще будет
85 2629740
>>29717
как я понимаю, дело не в том, что нет сравнивалки для "мочи", а в том что сет будет вызывать дефолтную сравнивалку для T содержащего мочу.
А Анон не хочет всюду писать свой compare.
86 2629742
>>29740
А теперь представь, что лично ты разгребаешь наследие после этого Онона.

Что там получится, если он вообще не в состоянии внятно задачу поставить, даже если тянут и подводят к ответу?
87 2629746
>>29717

>В моче определи оператор сравнения.


>>29550

>Что-то типа такого?


>struct Piss


>{


>int shit;


>bool operator<(Piss* other) {return this->shit < other->shit;}


>...

88 2629748
>>29742
Всё я внятно написал, не пизди.
89 2629759
>>29748
Добавь эту реплику комментом к своему наброску кода.
Код яснее станет? - Не думаю.
90 2629765
>>29748
Чел, ты просто ебаный эгоцентрист.
Нет, непризнанные геннии случаются время от времени, этого тоже нельзя исключать.

Но дело в том, что все простые и гениальные простые вещи, которые доступны одиночкам, все такие вещи уже давным давно написаны. Нынче программирование - это коллективное занятие со всеми вытикающими.
91 2629766
>>29732
Думал, в сказку попал? Студия кое-как стала 64-битной и теперь может жрать ещё больше оперативки, куда там до полноценной кросскомпиляции для линукса.
92 2629848
>>29766
Это же студия 10 лет не могла парсить >> в шаблонах?
image.png43 Кб, 222x227
93 2630120
Можно ли студию заставить компилять клангом?
94 2630160
image.png149 Кб, 799x371
95 2630379
>>29550
Да, так и надо было, как оказалось.
struct Piss
{
int shit;
bool operator<(const Piss& other) const {return shit < other.shit;}

и можно пихать в контейнер и сортируется как надо.
sage 96 2630632
>>30379
Ты троль или совсем нюфаг что бы это открытием считать?
97 2630690
>>30632
Никто, блядь, не ответил, "олдфаги" хуевы.
98 2630728
Возможно ли встроить shared library в бинарный файл?

Пример: собрана cpr из исходников. Произошла автоматическая установка в /usr/lib или аналогичному пути, который прописан в makefile.
Если выполняю ПО на своём компьютере, то проблем нет. На чужом они есть, т.к. библиотеки нет.
Как принято поступать в данных ситуациях?
Если windows, то как происходит сборка?
99 2630863
>>30728
ну либо ложишь длл рядом и отправляешь вместе с исходником потребителю
либо статически линкуешься
100 2630864
>>30863

>исходником


ну то есть с экзекьютаблом
101 2630927
error C2039: 'byte': is not a member of 'std'

#include <ctype.h>
#include <cstddef>
int main(int argc, char *argv[]) {
std::byte bt;
return 0;
}

версия плюсов 17, msvc. ЧЯДНТ?
102 2630986
>>30927
Используй флаг -std=c++17.
103 2631031
>>30986
Я же говорю, выставил в проекте 17 плюсы
104 2631042
>>30927
У меня есть тупое предположение, но вдруг сработает. Попробуй заменить <ctype.h> на >cctype>
изображение.png46 Кб, 988x463
105 2631043
>>30927
У меня работает.

>версия плюсов 17, msvc. ЧЯДНТ?


Проверь, что версия 17 выбрана для всех платформ и для всех конфигураций.
106 2631439
>>30927
В порядке телепатии - может быть у тебя .c, а не .cpp файл? Хотя, на std:: должно было бы ругаться.
107 2631657
>>31439
1. Настоятельно рекомендуется объективно оценивать уровень знаний при ответе. Если нет четкого понимания, то лучше воздержаться от публикации поста. 2. "Хотя, на std:: должно было бы ругаться". std - это пространство имён из стандартной библиотеки. В заголовочном файле cstddef определенние типов размещены в пространстве std. Если ты экивоком пытался ему сказать, что лучше использовать using namespace std; - лучше не надо. В крупных проектах стараются избежать неоднозначности и не засоряют пространство имён. 3. Его код нормально компилируется, если использовать флаг -std=c++17. Так и должно быть, т.к. "std::byte is an enum class that was first introduced in C++17". Если флага нет, то компилятор у меня выдаёт ошибку, что std::byte нет в std. И правильно делает.
108 2631679
>>31657

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


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

>std - это пространство имён из стандартной библиотеки. В заголовочном файле cstddef определенние типов размещены в пространстве std. Если ты экивоком пытался ему сказать, что лучше


Нет, речь шла о том, что компилятор может вести себя по разному, переключаясь между режимами С++ и С

>Его код нормально компилируется, если использовать флаг -std=c++17


Автор вопроса прямым текстом сказал, что он выставил флаг и не компилируется, если бы было как ты говоришь, то вопрос бы не появился изначально за ненадобностью.
Есть определенное количество причин, почему произошла такая ошибка. Например, возможна ошибка пользователя, только думающего, что он установил флаг, но на нее уже указали. Поэтому я привел еще одно возможное решение, потому что он проверяется за секунду переименованием файла. Хотя сразу указал, что оно маловероятно (поскольку в Си не должно быть таких заголовочных файлов - но мало ли, какие баги в компиляторе Майкрософт)
Другие гипотезы проверяются уже не так быстро, потому что скорее всего требуют переустановки компилятора, что может занять полчаса. Майкрософт (по крайней мере, на тот год) известна тем, что опаздывает с добавлением фич из новых стандартов. У анона могла быть установлена версия, где флаг уже есть, а каких-то фич еще нет. Также может быть проблема с неполной установкой, если какие-то заголовочные файлы не видны по ожидаемым путям.
109 2631690
>>31043
Да, спасибо. Не везде выставил, как оказалось
110 2631792
>>31679

>Майкрософт (по крайней мере, на тот год) известна тем, что опаздывает с добавлением фич из новых стандартов.


уже не актуально

мимо
111 2631794
Уже больше недели не отвечают на вакансии. Чому так? Моим знакомым если даже отказывали, то за пару дней. У меня в лк компании просто "подано". Че так долго думают?
112 2631798
>>31792
Для этого и было написано - на тот год.
113 2631799
>>31794
Ждут когда снега растают, ЕВПОЧЯ.
114 2631804
Можно ли писать определения в h файле? Ничего же не будет, если инклудгуарды. сейчас не касаемся красоты
115 2631839
>>31804
Конечно можно, куча header-only либ так делает, ты ее подключаешь типа
#define lib_impl
#include "lib.h"
#undef lib_impl
116 2631898
>>31804

> красоты


Код распухнет. Ну т.е. норма для С++
117 2631908
>>31839
охуенно придумали. у нас либа конечно хедер онли) заинклюдил и работает))
только если не скопипастил в маин.цпп эти три строчки то иди нахуй - ошибка линковки в хедер онли либе лол
ну хоть с модулями наконец избавимся от этого рака
118 2631915
>>31908
А когда модули то. Я уже года три про них слышу.
119 2631966
Как быстро посчитать код хэмминга?
120 2632022
Платиновый вопрос: как зделоть гуй?
Нужно что-то легкое и нативное - кроссплатформенность идет нахуй - чтобы не отваливалась жепа от списков на 10к элементов, чтобы потом не было ебки с обработкой событий типа днд и буфера обмена. Ну и возможность рисования в области, типа предпросмотр файла сделать или еще че.
Пока думаю по-старинке - инклюд шиндовс и погнали. Какие еще варианты? кто скажет qt у того мать сдохнет
121 2632028
122 2632038
>>31657

>Настоятельно рекомендуется объективно оценивать уровень знаний при ответе.


Решительно не согласен.

Моя мотивация писать тут ответы:
1) Систематизировать собственные знания. Записать в явном виде то, что есть в голове.
2) Выявить возможные ошибки и неполноту в своих знаниях. Ответы пишу в расчете на то, что знающие люди поправят, если что не так.

мимо
123 2632039
>>32038

>>Настоятельно рекомендуется объективно оценивать уровень знаний при ответе.


>Решительно не согласен.


Ой. С этим я согласен.
Не согласен с этим

>>31657

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

124 2632040
>>32038
Ты гений. Надо тоже законом Каннингема пользоваться, а то как дебил пишу вопрос и жду ответа, а надо сразу неправильный ответ давать себе, анонимная борда же.
image.png6 Кб, 262x192
125 2632046
>>32022

>кто скажет qt у того мать сдохнет


А если не скажет, то бессмертная станет? Иди на хуй.
WinUI
126 2632048
>>32022
C++ Builder
127 2632050
>>32048
Может, ещё и MFC?
128 2632052
>>32050
Да.
129 2632054
>>32050
Нет, хочу C++ Builder.
Кто-то же должен тут иметь с ним опыт. Уже заебался ждать. Если его никто не поставит, я сам себе поставлю. Я не шучу.
130 2632056
>>32054
Нихуя ж себе, оно еще живое?
У меня есть опыт. На C++ Builder 6. Мжвячно так-то, но это кастрат и тормоз и я быстро на студию перескочил тогда и больше не возвращался. Кроме годика работы на легаси проекте с кодом на билдере
131 2632060
>>32054
У меня опыт написания на нём ровно одной лабы на первом курсе. Я ещё охуевал, что там в таблицах перепутаны индексы строк и столбцов, сначала к столбцу обращаешься, а потом к строке.
132 2632062
>>32056
Живее всех живых. Есть коммьюнити версия и совместимость с Эпплом.
image.png289 Кб, 640x480
133 2632067
>>32060

>Я ещё охуевал, что там в таблицах перепутаны индексы строк и столбцов, сначала к столбцу обращаешься, а потом к строке.

134 2632270
>>32022
>>32048

>C++ Builder


Да, это единственный вариант, был есть и будет. VCL - нативный, быстрый, легкий в разработке. Дальше только MFC, кривожопое говно, от него можно добиться, но нужно много ебаться, не стоит того. MFC годится только для примитивных диалоговых окошек где всё гвоздями прибито, а дальше начинается боль.

Если нужны списки на тысячи, в VCL есть датагрид, я делал еще под ХР искалку файлов на дисках, спокойно показывала все файлы, хоть миллион.
135 2632351
Неохота велосипед изобретать, может есть либа или исходник что бы имплементировал ostream и писал в файлы с нарезкой по заданному интервалу времени или по размеру?
136 2632377
>>32351
Бустовый логгер. Но использовать его для этого какой то костыль.
137 2632380
>>32377
Угу, его возьму. Тем более буст в проекте используется.
138 2633108
Проект в vs studio иногда не собирается, падая с ошибкой "unersolved symbol... multiple defenitions". Собирается через rebuild all с предупреждением warning LNK4042: object specified more than once; extras ignored
Че делат?
139 2633114
>>33108
В .h, который инклюдится в разных .cpp, завел переменную?
140 2633116
>>33114
Ага. Понял ошибку. Спасибо
141 2633118
>>33108

>object specified more than once; extras ignored


Такое еще может быть если смешивать release и debug
142 2633120
>>33118
Или static и DLL
143 2633126
>>33114
А где ее лучше заводить? Или нигде? Мне константа в неймспейсе нужна
image.png85 Кб, 605x502
144 2633273
>>32270

>VCL


кто нахуй
145 2633279
Зачем он тут агитирует за заведомо непереносимый способ, когда есть стандартный resize() ?
146 2633282
>>33273
Visual Component Library.
147 2633300
>>33279
resize не освобождает лишнюю память, а shrink_to_fit добавили только в c++11
sage 148 2633307
>>33126
Дефайн/экстерн/статик,твариантов куча.
149 2633308
>>33126
static constexpr позволяет наебать odr, но работает очевидно только для констант
в остальных случаях поступаешь как с функциями. объявление в .h определение в .cpp я надеюсь ты знаешь как это делается. хотя в этом треде можно ожидать чего угодно..
150 2633310
>>33300
Понял принял.
CEvKIfDdL6t8rB0MxbpsOB9vB9AWbU41DUu2j94c7453ljYYR47pcjJnTgv895LVuhKgI-pg5CEnJw0gZDySwQl.jpg23 Кб, 711x55
151 2633322
>>33279
Тоже читаю его, и крякнул с этого
image.png143 Кб, 480x360
152 2633343
153 2633592
>>26726 (OP)
Где вы CRTP используете?
Почему эта черная магия позволена в с++?
154 2633644
>>33592
В работе нигде, а так баловался при изучении шаблонов. Вроде бы но это не точно используют в качестве замены pimpl.
155 2633689
>>33592
Я когда-то использовал его, чтобы определять классы с общими операторами и методами, но потом отказался от этих костылей.
156 2633948
Гайз, подкиньте идей, что можно написать для практики? За пару недель по пару часов в день.
157 2633985
>>33948
Leetcode
158 2634006
>>33985
И так решаю по одной+ задаче на протяжении месяца, хотелось бы что то чтоб над архитектурой подумать.
159 2634060
>>34006
Глянь какой-нибудь FOSS проект поменьше.
160 2634101
Как вы видете прерспективы языка карбон как замены си++? Они декларируют совместимость с крестами, что бы не нужно было переписывать триллионы строк древнего крестового кода и вместе с тем постепенно внедрять карбон. Но только получается, если в этом старом крестовом коде текла память, так и в крестово-карбоновом проекте она будет течь. И смысл тогда? И не будет ли из за этого груза совместимости с крестами этот карбон каким-то ущербным языком, ну типа как тайпскрипт, ну вроде более-менее язык, но все же чувствуется, что это ЖС на костылях.
161 2634120
>>34101

>Как вы видете прерспективы языка карбон как замены си++?


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

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


А у него задачах мемори сейф стоит?

> И смысл тогда?


У тебя кроме памяти проблем в мире нету?

> И не будет ли из за этого груза совместимости с крестами этот карбон каким-то ущербным языком


Зависит от разрабов

> ущербным языком, ну типа как тайпскрипт


хуй знает чем он тебе ущербным показался, когда мне приходилось трогать жс, я сразу на тс пересел и чувствовал себя более чем отлично
или у него конкретные траблы есть?
image.png50 Кб, 863x397
162 2634123
а стоп, у них реально такая цель есть
извиняюсь
image.png50 Кб, 1179x640
163 2634132
>>34120

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


Мне тоже нравится больше чем жс. Но там некоторые решения продиктованы требованием совместимости с говножсом. Например ввели юнион тайпс, но проверка на конкретный тип вышла какой-то неуклюжей. В языке, спроектированном без оглядки на жс, это выглядело бы не так.
164 2634135
>>34132
Жс без оглядки на жс тоже был бы охуенным.
165 2634157
>>34123
Имхо если стоит мемори сейф в планах, то от кода на плюсах стоит отходить.
166 2634181
>>34157
Смысл в том, чтобы сделать мемори сейф, не скатывая его до уровня шарпа или жабы по прожорливости и тормознутости.
167 2634270
не получается вывести русский текст в консоль через setlocale(LC_ALL, "Rus");
168 2634277
>>34270
Очень жаль это слушать, ты главное не унывай
изображение.png13 Кб, 873x101
169 2634295
При попытке задать параметр по умолчанию для string получаю ошибку(Пик 1), при этом саму строку и реализацию не подчеркивает. Сама реализация:
std::string NullString{ "" };
std::string DecryptPassword(std::string& aPassword = NullString);

На stackowerflow пишут, что можно приравнять к std::string()
https://stackoverflow.com/questions/2749471/default-string-arguments
Это выдает такую же ошибку.
По итогу решил это, сделав NullString статической, не понял, как дошел до этого, и не до конца понял, почему у других выходило это делать проще.
Почитал этот тред
https://stackoverflow.com/questions/1059630/default-value-to-a-parameter-while-passing-by-reference-in-c
понятней не особо стало, ну нельзя привязать временное значение к не-константной ссылке, а почему? Просто так решил Страуструп? Окей, ладно. А почему если, если сделать переменную для параметра по умолчанию статической - то все ок ? Поясните, если сможете, или скажите, че читать.
image.png5 Кб, 333x145
170 2634349
>>34295
Чего ты хочешь добиться своей конструкцией? почему нельзя так сделать?
171 2634350
>>34349
Хочу добиться вызова функции с параметром по умолчанию, у тебя просто инициализация одной переменной с помощью другой
172 2634351
>>34350
скинь сигнатуру функции
173 2634352
>>34350
все, я догнал что это
sage 174 2634354
>>34295
Л я чего то не понимаю или хз, у меня таки конструкции с дефолтным параметром строки, да и вообще чего угодно работают
175 2634361
>>34101
Вижу как очередное надгробие на кладбище продуктов гугла.
176 2634363
>>34295
Уже 10 лет как советуют передавать по значению, а не по ссылке.
https://stackoverflow.com/questions/10789740/passing-stdstring-by-value-or-reference/10789868
177 2634369
>>34101

> карбон


Слышал о нём ровно один раз сразу после анонса, когда кто-то прибежал сюда о нём рассказывать.
image.png14 Кб, 888x283
178 2634374
>>34270

>не получается вывести русский текст в консоль через setlocale(LC_ALL, "Rus");


Конечно не получается, такой локали/кода нет в NLS API.
https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-lcid/a9eac961-e77d-41a6-90a5-ce1a8b0cdb9c
179 2634384
>>34101
Я не понимаю, почему он должен быть всратый как раст, почему нельзя оставить нормальный синтаксис? Никакая мемори сейфити не добавится, если писать fn, var и : тип после двоеточия.
180 2634387
>>34384
Двачую. Если это замена плюсов, то зачем менять еще и синтаксис плюсов?
181 2634398
>>34384

> всратый как раст,


Выглядит как будто больше го вдохновлялись
а зачем так делать? Потому что вроде читать такое удобнее, а то что тебе придётся на два символа больше писать, думаю не большая проблема
ぼっちちゃん [string].png642 Кб, 1024x512
182 2634437
>>26726 (OP)
Лучший тред для самого интересного, многофункционального и вечно живого языка в обоих вселенных.
183 2634524
>>34181
А так не получится. Или садомазо Раст, или подтормаживающий SML/жабка.
184 2634638
>>34437
Тред Си ниже.
185 2634643
>>34384
Потому что соевые сжв, их смысл существования - гадить, делать хуже.
186 2634645
>>34643
База.
187 2634647
>>34638
Си хуита, плюсы пижже.
188 2634687
>>34647
и чем же он пизже?
189 2634692
>>34687
Всем.
190 2634743
>>34687
Си можно рассматривать как частично подмножество плюсов. Но си лучше, потому что можно перегружать функции и использовать классы из коробки.
191 2634787
>>34647
В чем то да, но не абсолютно. Например, никто не напишет в одиночку компилятор Си++, а Си написан и неоднократно. Си проще портануть на новую платформу. Си более простой язык, его быстрее изучить. В нем меньше неявных вызовов, не будет такого, что оператор сложения переопределен и лезет в интернет, меньше порятнок из шаблонов.
192 2634845
>>34687
Ничем. Си это огрызок от плюсов. Не плюсы хороши, сишка - убога. Плюсы сонечно сами по себе величайший язык, но это не означает что они сравнимы с сишкой как два равноценных языка. Сишка имеет свои узкие применения как кокой-нибудь PowerBASIC, да, для некоторых задач годный инструмант, но не более, до плюсов как до луны раком. Плюсы это универсальный величайший язык покрывающий любые современные задачи, вообще другая вселенная, сравнивают с сишкой только дебилы.
193 2634882
>>34845
База.
194 2634927
>>34845

> до плюсов как до луны раком


Плюсам до шарпа в таком случае - как до млечного пути.
195 2634932
>>34927
Пошёл нахуй.
196 2634941
>>34932
Булькнул крестовик с задворков галактики, но его вспук никто не услышал.
197 2635005
Че с плюсовой работой, много ли вакансий, сколько платят в среднем?
image.png143 Кб, 499x499
198 2635008
>>34927
Напиши дрова на шарпе, умник.
image.png164 Кб, 600x600
200 2635012
>>35011
Ебануться, до чего шиза дошла.
201 2635042
Посоветуйте студенту ресурсов для вката после курса си. Желательно что-нибудь максимально простым языком, для общего понимания. Тяжело идёт что-то
202 2635055
>>35042
Пиши на сях с покерфейсом будто так и надо. Компиляется же, чё.
image.png86 Кб, 808x976
203 2635057
Это норм вакуха, в рынке для мидла средней руки? не следил за рынком лет пять
204 2635059
>>35057
на js больше получают, если тебя этот факт устраивает, то норм
205 2635060
>>35059
Ну а какой сейчас рынок для плюсеров, есть ли понимание?
206 2635062
>>35057
Бустовые сигналы похожи на кутяшные?
image.png384 Кб, 725x500
207 2635065
>>35057
Маловато будет. Жабаскриптные макаки нихуя не умеющие больше зашибают.
208 2635138
>>35057
Для мидла вполне.
Если брать рынок РФ и обычного работягу разраба, то примерно такие расценки я замечал:
До 160 джун/джун+ 160-180 начинающий мидл. 180-210 мидл. 210-250 мидл + 250+ начинающий сеньор. 300+ сеньор.
Если говорим про щабугор, то начинающий сеньор где-то от 400к деревянных. Про мидлов, Где-то от 300.
Но ты ещё должен учитывать, чему ты научишься на текущем месте и сколько это позволит заработать потом.

Тебе уже на отвечали развной хуеты про ЖС и живу, ну как бы всегда( почти) найти ЖС и жаве за выше чем в какой-то вакансии.
Попробуй прососбеситмя и если всё ок будет, может ещё бабок накинут.
И ещё, ты написал, что 5 лет не следил, типа у тебя 5+ лет опыта?
209 2635147
>>34927
Скрипт с языком программирования несравним. Это еще тупее, чем сравнивать кресты с сишкой. Другой подход к написанию кода, другой менталитет, другая экосистема.

Если сравнение с сишкой может быть по наивности и недостатку знаний, то тащить на сравнение шарпоскрипт это тупосерь чистой воды. Ты же залетный даун, не больше, просто быдло в интернете считающее своим долгом везде залезть куда не просят и насрать потому что безнаказанно.
210 2635150
>>35147

>скрипт


Про JIT не слышал, ребенок?
211 2635153
Как быстро посчитать xor четных битов?
212 2635159
>>35150
Скриптомакака не знает и не может знать отличия скрипта от языка программирования, потому что знает только первое. В итоге получается подобное тупое блеяние. Просто съеби на свою скриптопарашу, тут тред крестов, не для тебя сделан. Сказал же - тупая срущая залетуха, нахуй пошел, что еще не ясно-то?
213 2635196
>>35159
А, понял, ты AngelScript кодерок, случайно зашедший в тред к настоящим программистам. Ну ничего, вот и просветишься.
214 2635233
Я что то увлекся ФП и теперь в кажется, что плюсам не хватает лаконичности. Есть парсер команд. Есть исполнитель. Как красиво запустить программу, так, чтобы она распарсила команды, а потом дернула нужную функцию у исполнителя. Писать кучу ифов очень не хочу
215 2635242
>>35233
Вот и пиши на функциональных языках, а не на плюсах.
216 2635244
>>35233

>Писать кучу ифов очень не хочу


Классы либо шаблоны.
217 2635259
Почему
auto p = parser::parser(argc, argv);
работает, но
parser::parser p(argc, argv);
нет?
218 2635261
>>35259
У меня работает.
219 2635265
Как быстро посчитать код хэмминга? Моя тупая версия работает ооочень долго даже на файлах в пару мб
image.png135 Кб, 363x513
220 2635266
221 2635270
>>35265
А мне надо несколько гб считать
222 2635300
>>35150
Чтобы выполнить байт-код, его нужно интерпретировать, условно по такой схеме:

> if (x == 0x69) { ... } else if (x == 0x42) ...


Принципиальное отличие от интерпретируемых языков только в том, что не приходится парсить код каждый раз и искать ошибки. Но если JIT не равно скрипт, тогда получается, что и питон вовсе не интерпретируемый язык.
1561092207600.png41 Кб, 840x389
223 2635328
>>35300
Ясно, значит про JIT ты не слышал.
224 2635354
>>35300
Ты ничего не понимаешь дело совсем не в этом. Тупо одноклеточно в смысле того, что программирование это написание управляющих команд для некоей машины, и скрипт и язык программирования одно и то же. Но такая характеристика бесполезная хуета, толку от неё нет.

Проблема кроется скорее в человеческом факторе, который в свою очередь коренным образом влияет на технические факторы.

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

Программа пишется когда ты знаешь как работает компьютер и пишешь чтобы он выполнят свои функции таким образом чтобы добиться результата. А скрипт пишется наоборот, имеется способ получить результат документированный производителем скрипта - "заклинание", и скриптовая макака просто пишет это заклинание на веру в надежде получить нужный результат, запускает написанное и проверяет что получилось, если "не сработало", пробует другое заклинание. А программист наоборот, пишет программу заранее зная что она делает, гадать на кофейной гуще нет смысла, само понятие "сработало ли" фундаментально отсутствует в голове программиста, он всё знает что программа делает, и только комбинирует это для получения результата.

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

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

И вот взять простого человека, с детства натасканного на джаваскрипт, питон и тому подобные скрипты. Этот скриптовый менталитет въедается в мозги, и всё, получается урод, который даже не поймет что такое писать на си например, а будет так же говношлепить скрипты наугад и на си как всегда привык.
224 2635354
>>35300
Ты ничего не понимаешь дело совсем не в этом. Тупо одноклеточно в смысле того, что программирование это написание управляющих команд для некоей машины, и скрипт и язык программирования одно и то же. Но такая характеристика бесполезная хуета, толку от неё нет.

Проблема кроется скорее в человеческом факторе, который в свою очередь коренным образом влияет на технические факторы.

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

Программа пишется когда ты знаешь как работает компьютер и пишешь чтобы он выполнят свои функции таким образом чтобы добиться результата. А скрипт пишется наоборот, имеется способ получить результат документированный производителем скрипта - "заклинание", и скриптовая макака просто пишет это заклинание на веру в надежде получить нужный результат, запускает написанное и проверяет что получилось, если "не сработало", пробует другое заклинание. А программист наоборот, пишет программу заранее зная что она делает, гадать на кофейной гуще нет смысла, само понятие "сработало ли" фундаментально отсутствует в голове программиста, он всё знает что программа делает, и только комбинирует это для получения результата.

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

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

И вот взять простого человека, с детства натасканного на джаваскрипт, питон и тому подобные скрипты. Этот скриптовый менталитет въедается в мозги, и всё, получается урод, который даже не поймет что такое писать на си например, а будет так же говношлепить скрипты наугад и на си как всегда привык.
225 2635357
>>35300
Что с тобой будет, когда ты узнаешь, что LLVM компилирует C++ в IR байткод...
226 2635359
>>35354
Все это прекрасно, только C# - компилируемый язык, а не скрипт.
227 2635360
>>35359
Если бы он был компилируемым, виртуалка дотнета была бы не нужна. Компиляция для виртуалки это интерпретация.
228 2635363
>>35354

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


Скриптомакака (плюсовик) даже не знает, что уже 10 лет как в C++ надо передавать по значению, потому что это лучше оптимизируется компилятором: >>34363
Не удивительно, ведь скриптомакака (плюсовик) застрял в 90-х, не развивается, и магическим мышлением повторяет заклинания, прочитанные им в дидовских книжках, не понимая как работает компьютер.
229 2635366
image.png83 Кб, 230x219
230 2635379
>>35354

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


[Смеётся по undefined behavior-ски]
231 2635380
>>35366
Это лишь оптимизация виртуалки. Скорость виртуалки не отменяет что это виртуалка, все проблемы скриптоговна >>35354 остаются, потому что скрипт это скрипт, хоть с медленной скоростью, хоть с более быстрой скоростью, это ничего не меняети к делу не относится. Потому что , как я уже написал >>35354 проблемы скриптов в их фундаментальной природе обратной программам, из за чего отношение писателя скрипта к тому что он пишет диаметрально противоположно отношению программиста к нормальному программированиею.
image.png5 Кб, 373x76
232 2635454
233 2635548
>>35354
Смешная С++ макака думает, что понимает, как работает компьютер и что его код выполняется ровно так, как он написал. Типичный плюсовик с повреждением мозга - потом такие начинают писать многопоточный код с этой парадигмой и закономерно обсираются.

Очнись, маня, современные компиляторы, процессоры и системы памяти настолько сложны и настолько преобразуют твой исходный код, что заявлять о "понимании того, как работает компьютер патаму чта я пишу на С++" может лишь полный некомпетентный идиот, коим ты и являешься.
234 2635553
>>35354
Это было бы отчасти справедливо, если бы мы сидели в Си треде. Но крестомакаки в этом плане ничем не отличаются, они точно так же трясут ящик, переставляют параметры в шаблонах в надежде что ассемблерный выхлоп как-то поменяется. Это если он вообще хотя бы смотрит, что у него выходит.
235 2635683
>>35548
Он вообще не об этом писал, а о концептуальном отличии подходов труъ-программистов и скриптомакак, но ты, как полагается поверхностой скриптомакаке, даже такую простую мысль уловить не смог.
236 2635701
>>35553
Да, в этом есть рациональное зерно. Современные кресты больше похожи на жабаскрипт с этими шаблонами и функциональными портянками. Кто такое лепит действительно макаки, ибо это и есть скриптопомои добавленные в угоду современной моде на скрипты. Кресты же не монолит, они так или иначе развиваются и попадают под влияние вебпараши, их превращают потихоньку в подобное. Но это неизбежно ни для кого, и не отменяет всего предыдущего, что скриптами не является. Тут уже просто показатель мультипарадигменности крестов, позволяющих писать и так и так по желанию.
237 2635712
>>35683
Ну да, теперь байтобы ассемблерщики у нас тру только.
238 2635727
>>34692
мб ты просто чел что не понимает как это можно работать без ООП?
239 2635733
>>34845
именно по этому Линус Торвальдс выбрал С а не ++? 98.5% кода на С и 0% на ++
240 2635736
>>35712
Ну они самые трушные труъ-программисты, трушнее никак.
241 2635737
>>35727
Понимаю, писал такое. Но такое сгодиться для чего-то простенького, сложнее утилитки или шмапа делать без ООП это изврат.
242 2635739
>>35733
Так а хули ему на пятилетнем языке писать было, он же не хипстор как современные растоёбы и карбонодебилы, выбрал почти 20-летний проверенный временем язык как полагается и придерживается его.
А лучшая ОС для ПК, самая надежная и распространенная и работающая без пердолинга написана на крестах, потому что может себе позволить.
243 2635766
>>35739
лучшая система написана на си и это линукс , и в чем проблема сейчас упдейтить код на ++ для линукса?
проблема в том что кресты это перегруженный язык , где так много ненужного кала что майкрософт обратила на него внимания и выкатила дерьмище под названием "КАЛdows" где даже по умолчанию калькулятор за который ты должен платить деньги (потому что виндовс платный, а ты хуй который спиратил) работает так убого что роняется от отрисовки школьного графики "tan(x) * 10"
244 2635797
>>35766
Вы не заебались теплое с мягким сравнивать?
У языков разные задачи и сферы применения.
245 2635837
>>35797
просто порвало с того что чел написал что ++ лучше чем си xD
246 2635860

> хипстор


> тру программисты


> смузихлебы


> скриптомакаки



Когда этот программист ЧПУ уже успокоится
Начать что-ли по словам посты скрывать
247 2635873
>>35357
Это буквально ни о чем не говорит. C++ это стандарт, заточенный под абстрактную машину. Естественно его можно компилировать хоть в байт-код JVM, хоть в байт-код питона, во что угодно. Нормальные компиляторы компилируют код на плюсах в исполняемый файл, который можно запустить на реальном железе. C#, Java и прочие JIT-компилируемые языки этого не могут в принципе.

>>35328
Процесс компиляции предполагает интерпретацию входного файла. Будь это исходный код или байт-код для виртуальной машины. JIT-компиляция она на то и Just In Time, что ее приходится производить каждый раз, когда ты запускаешь программу. Да, есть кэширование, но сути это не меняет. Более того, как-то так вышло, что никакая виртуальная машина не обходится одной лишь JIT-компиляцией. Часть байт-кода всё равно будет исполнять интерпретатор. Хз, может ты знаешь почему так. Машинный код, с другой стороны, можно передать процессору без лишних заморочек - и никакой интерпретатор или JIT-компилятор не нужен - он уже готов работать.
248 2635881
>>35873

>C#, Java и прочие JIT-компилируемые языки этого не могут в принципе.


Что с тобой будет, когда ты узнаешь про AOT-компиляцию...
249 2635890
>>35881
AOT-компиляция это обычная компиляция. За этим добро пожаловать в C/C++, AOT-компиляция сразу в машинный код, без промежуточных этапов. Поясню на схеме:

Исходный код Java --(AOT)--> байт-код JVM --(JIT)--> машинный код

Исходный код C --(AOT)--> машинный код
250 2635891
>>35873

> C#, Java и прочие JIT-компилируемые языки этого не могут в принципе.



Ммм, типичный плюсовик-придурок, нихуя не знает и рассуждает с ебалом знатока. Ебальники людей, лет 5 использующих AOT в проде представили?
251 2635893
>>35890

>Исходный код Java --(AOT)--> байт-код JVM


Придурок, ты хоть доки GraalVM почитай. Компиляция идёт сразу в натив.
252 2635901
>>35893
Это замечательно, я рад что зумеры догадались, что виртуальная машина - хуета, и изобрели предаварительную компиляцию в машинный код (через костыли, как и всегда). Спрашивается, нахуй тогда нужны ваши джавы, сисярпы и прочий кал, когда есть нормальные человеческие языки, которые умеют в нативную компиляцию с рождения?
253 2635903
Привет всем, как скомпилить Плюсы под джавовскую вм?
254 2635904
>>35901
Т.е. ты только что насрал себе в штаны и объявил победу. Достойно для С++ макаки
255 2635910
>>35904
Я только что продемонстрировал, что Java, в её исходном виде, и есть "скрипт", в связи с чем и пришлось допиливать костыль в виде AOT-компилятора для Java. Повторюсь, зумеры изобрели нативную компиляцию. Так зачем нужен ваш JIT, напомни?
256 2635912
>>35903
К сожалению, никому не упал компилятор C++ для JVM. Зато ты можешь скопилировать плюсы под CLR, майкрософт об этом позаботились. Но не растраивайся, ты можешь написать свой компилятор C++ для JVM. Кстати, как думаешь, на каком языке его следует писать?
257 2635914
>>35912
На расте? На питоне?
258 2635921
>>35766

>лучшая система написана на си и это линукс


Неверно. Дальше не читал, ты дебил и будешь писать хуйню.
259 2635932
>>35901

>нормальные человеческие языки


>C++ c рандомными UB из-за нарушения правила 7.6.3.7.2.14.88 швятого штандарта языка (и очередных багов в GCC/шланге)



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

...но С++-макакен не ищет легких путей, ему надо тащить свой крест до конца.
260 2635944
>>35901
Так JIT лучше для серверов и вообще программ, которые запускаются несколько раз. VM собирает статистику использования и оптимизирует неиспользуемые части. Тогда как в C++ у тебя что скомпилировано, то всегда выполняется даже если часто не нужно, и шатает кэш проца.
261 2635950
>>35944

> Тогда как в C++ у тебя что скомпилировано, то всегда выполняется даже если часто не нужно, и шатает кэш проца.


Што
262 2635956
>>35944
А массивы для векторизации он тоже в памяти передвигает?
263 2635958
>>35944

>в C++ у тебя что скомпилировано, то всегда выполняется даже если часто не нужно, и шатает кэш проца.


Что с тобой будет, когда ты узнаешь про PGO-компиляцию...
264 2635960
>>35950
А то. Например, выкинуть какую-нибудь проверку на NPE, которая никогда не случается (с возможностью восстановления, если она все же случится) и прочие трюки.

JIT вполне может оказаться быстрее AOT компилияции. В мире hft C++ люди глазами смотрят на получающийся листинг, профилируют код и расставляют хинты для компилятора вручную (т.е. такой ручной JIT)
265 2635962
кстати где-то читал что в конпелятор крестов хотят добавить jit а то че-то шаблоны долго разворачиваются))
266 2635964
>>35950
Бинарный код занимает место. Представь себе, что у тебя три функции вызывается. В случае, если ты оптимизированно скомпилируешь только их, они допустим будут всегда в одной странице памяти. Если же ты запускаешь обычный экзешник, они могут быть на большом расстоянии друг от друга, и у тебя будет при каждом вызове выбивать страницу памяти и грузить другую.
267 2635965
>>35958
Справедливо, я про нее и не знал и никогда не видел такого флага на практике, а за прошлый год собрал не меньше полсотни проектов включая всякие тяжелые от гугла. Так что, верю что где-то в стране радужных коней кто-то секретно ее использует.
image.png73 Кб, 225x225
268 2636004
269 2636017
>>36004
ну типа все принялись хуярить метапрограммы на шаблонах. а в компайл тайме это по сути интерпретация кода на псевдофункциональном псевдоязыке. для ее ускорения и собирались прикручивать жит. но хз может их попустило уже
270 2636068
>>36017
Не похую ли? Разворачивание шаблонов это просто время конпеляции, на конечный продукт не влияет, то о чем ты пишешь якобы должно его уменьшать или что?
271 2636079
>>36068
больше комплексных шаблонов --- больше время компиляции
272 2636085
>>36017
Так это не JIT, оно не должно компилироваться во время работы программы. Это просто прекомпиляция шаблонов, по сути дополнительный этап сборки между препроцессором и компилятором.
273 2636100
>>35950
Да даже архитектура проца. У тебя или собрано под древний проц чтобы везде работало, но медленнее, либо под новейший и на старом не запустится. Не помню чтобы в с++ либах была часто распространенв практика загружать нужную дллку/so с реализацией под твою.
274 2636105
>>36079
В таких случаях разбивка на подпроекты идет и не надо перекомпилировать вообще все подряд каждый раз. Хуй знает, может актуально для каких-нибудь мастодонтных энтерпрайзов где коду 30 лет и даже с реорганизацией и разбивкой конпеляция конское время занимает, но на крупных проектах где я бывал компилировался только тот проект в пределах которого ты фаршмачишь (и те которые обновились после обновления с репы) и это было быстро на обывчном компе без прибегания к распределению.
Кароч по-моему это не-проблема для большинства кодеров.
275 2636110
>>36085
Может ли быть такое, что компилятор не может определить, какие именно комбинации шаблонов используются, это выяснится только в рантайме, и вынужден сгенерить все? Пример не смогу показать, слишком сложна.
276 2636123
>>36110
Не может. И что значит все, перебрать все типы в программе начиная от char? Тогда от void zalupa(auto, auto, auto) уже все обмякнет.
277 2636136
>>36110
Так не бывает по определению
278 2636142
>>36110
Тупо ошибка компиляции будет.
279 2636164
>>36136
>>36142
Ну придется придумывать пример.
template<T,U> class Base { ... };
И потом где-нибудь
auto ptr = get_object();
И допустим в программе используется только одно сочетание, <int, float>
А компилировать придется все
280 2636168
>>36123

> Тогда от void zalupa(auto, auto, auto) уже все обмякнет.


Еще в 93 году sml не обмякал. Там аннотации типов были исключением, а не правилом.
281 2636568
>>36164
Ничего не понятно, где в твоём примере нужно компилировать всё?
282 2636570
>>36568
Ну допустим есть классы для
Base<int, int>
Base<int, float>
Base<float, float>
Base<float, int>
В проге используется только один <int, float>, но прога может быть достаточно сложна, чтобы компилятор это соптимизировал. Ну и комбинаций и параметров может быть больше, что приводит к экспоненциальному росту вроде.
283 2636670
>>36570
Если используется только Base<int, float>, то будет скомпилирован только Base<int, float>.

> Ну допустим есть классы для


> Base<int, int>


> Base<int, float>


> Base<float, float>


> Base<float, int>


В каком смысле они "есть"? Если они есть в коде, все четыре будут скомпилированы.
284 2636676
>>36670
Ну допустим написана реализация для всех этих комбинаций, но реально используется только одна.
285 2636896
>>36676
Если ты имеешь ввиду что-то типа

> void f<class T>() {...}


> int n;


> std::cin >> n;


> if(n) f<int>(); else f<float>();



То скомпилированы будут оба экземпляра. Но ты написал
>>36570

> В проге используется только один <int, float>, но прога может быть достаточно сложна, чтобы компилятор это соптимизировал


Это невозможно. Компилятор должен чётко знать, какие параметры ты подставил. Это нельзя перенести в рантайм. Примеры с auto тоже мимо. Тип переменной объявленной через auto тоже определяется при компиляции.
286 2636905
>>36896
Нет, скорее я имею в виду такое:
f<int>() {...}
f<float>() {...}

#ifdef I
f<int>();
#elifdef F
f<float>();
#endif
Можно и не на уровне макросов, а чего-то с наследованием.
Тут бы явно JIT помог, т.е. не надо компилировать f<int> если она не используется.
287 2636944
>>36905

> Нет, скорее я имею в виду такое:


> f<int>() {...}


> f<float>() {...}



> #ifdef I


> f<int>();


> #elifdef F


> f<float>();


> #endif


> Можно и не на уровне макросов, а чего-то с наследованием.


> Тут бы явно JIT помог, т.е. не надо компилировать f<int> если она не используется.


Конкретно в твоем примере с макросами - да, оба не скомпилируются, максимум один из них.
288 2636979
>>36944
Я хреново объясняю и мне трудно придумать наглядный пример.
Допустим так
funcA() { f<int>(); }
funcB() { f<float>(); }
int main() { funcA(); }
Разве компилятор может скипнуть компиляцию funcB() и f<float>?
289 2636996
>>36979
Gosbolt для кого придуман?
290 2637000
>>36996
А причем тут он? Я про стандарт или что-то такое. К тому же это упрощенный пример, речь о программах в 100 раз сложнее и перепутаннее, когда оптимизатор крякает и машет рукой.
291 2637183
>>36979
Может, но не факт, что станет. А может и факт, надо курить стандарт.
292 2637184
>>36979
Во всяком случае, JIT здесь ни к селу, ни к городу.
293 2637410
>>37000
Так стандарт или компилятор?
Тебя чей вывод интересует?
294 2637416
>>37410
Можно выбрать только одно? Компиляторы соблюдающие стандарт не?

Я не очень знаю шаблоны.
Я знаю что компилятор не скомпилирует
void foo1() { куегкт; }
void foo2() { return; }
int main() { foo2(); }
Но вроде бы в случае шаблонов это не всегда так и он не обязан убедиться что весь код компилируется?
SFINAE всякие
295 2637427
>>36979
Компилятор соберёт все, а потом линкер, исходя из опций, может дропнуть ненужное.
296 2637449
>>37416
Не думаю что стандарт вообще что то гарантирует в этом направлении.
Сфинае просто не дропнет компиляцию на этом типе и начнет подставлять другие, насколько я ее понимаю.
Компилятор может выкинуть твою функцию, а может и не выкинуть. Но если функция некорректна с точки зрения языка, компилятор все равно ругнется. Даже если она нахер не нужна.
Screenshot20230312030807.png15 Кб, 1051x46
297 2637522
Впрыгнул. Редко тут бываю. Что ни зайдёшь, либо лабы, либо какая-то полуфилософская заумь.

qt-быдлокодер
298 2637534
Посоветуйте какой-нибудь краткий гайд к cmake
.png160 Кб, 817x505
299 2637535
>>37534
Кратким гайдом ты не отделаешься.
300 2637542
>>37540 (Del)

>cmake это такой кромешный ужаc


autotools ты видимо не пользовался?
301 2637711
>>37540 (Del)

> Традиции


this

>>37534
К сожалению только через кровь и пот, мне вот это выступление оч помогло понять как писать MORE MODERN CMAKE
https://www.youtube.com/watch?v=y7ndUhdQuU8&ab_channel=MeetingCpp
изображение.png737 Кб, 1557x1104
302 2637782
Это что правда, что указатель на функцию добавляет уровень косвенности, или он опять гонит?
Функция сама по себе разве не указатель?
303 2637802
>>37782
Указатель это отдельная переменная. Имя функции это не переменная. Ты путаешь указатель с адресом, это разные вещи. Вызов функции это переход по адресу. Вызов через указатель, это переход по адресу находящемуся в переменной указателя, тут добавляется извлечение адреса из переменной перед тем как переходить.
304 2637833
>>37802

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


Ну так указатель не обязательно должен содержать адрес имени функции. Что ему мешает содержать точно тот же адрес перехода, что и само имя функции?

Аналогия. Можно объявить указатель на указатель, это добавит уровень косвенности. Но можно сделать копию указателя и уровней косвенности не прибавится.
305 2637844
>>37782
На примере условного ассемблера.
В процессоре есть регистр IP, указывающий на адрес выполняемой инструкции.
При вызове функции, в IP загружается адрес, на который прыгнуть (а в стек сохраняется адрес текущей инструкции) точнее, следующей за ней
IP = 0xE301
При вызове по указателю, мы прыгаем не на адрес переменной, а на адрес, хранящийся в переменной.
То есть сначала надо прочитать память по адресу переменной, а потом прыгнуть на адрес, хранящийся в ней.
Это и есть 1 уровень косвенности.
TMP = 0xD020
IP = [TMP] //напр., 0xE47F

Алсо, описание inline в старых книжках устарело.
Краткая история Inline примерно такая:
Разрабы компилятора: добавляем inline, чтобы тело функции включалось в место использования, наподобие макроса.
Разрабы программ: о, хренак, добавим везде inline, быстрее будет же еба
Реальность: теперь везде стало медленнее, потому что компилятору ничего не получается оптимизировать
Разрабы компилятора: отключим инлайн, теперь он необязательный, но добавим флаг force inline
Разрабы программ: о, хренак, включим везде этот флаг, быстрее будет же еба
Реальность: стало еще хуже.
Разрабы компилятора: ... отключаем inline нафиг.

В современном С++ inline не означает подстановку функции. Компилятор может сам оптимизировать подставив функцию, даже не inline, а может не подставлять inline функцию, а вызывать ее обычно.
В первую очередь inline теперь означает, что у функции может быть несколько определений в нескольких файлах, а не только одно, как обычно. Впрочем, они обязаны быть идентичными, иначе это Undefined Behavior.
https://en.cppreference.com/w/cpp/language/inline
306 2637872
>>37833

>адрес имени функции


Бессмыслица. Имя функции не существует, поэтому адреса имени быть не может. Имя это и есть сам адрес - число. Имя словом нужно только в исходном коде, потому что слова проще воспринимать, чем числа, но в реальности это число, адрес.

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

>код 123 код код 123 код 123 код 123


А переменная это переменная, ячейка памяти со своим содержимым, для использования которого нужно выделить память и иметь код который к ней обращается и извлекает сожержимое. Без переменной (указателя) нет никакой ячейки памяти и нет кода обращения к переменной, происхотят прямое обращение, а с переменной непрямое, а только через переменную-посредника.
307 2637880
>>37833

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


Дело в том, что у тебя уже есть указатель и 1 уровень косвенности.
В случае вызова функции, у тебя нет косвенности, уровень 0-й.
308 2638145
Вы все так сложно написали, вообще не вкурил сначала.
Другой анон
309 2638534
>>37782

>Функция сама по себе разве не указатель?


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

А вот указатель на функцию - это вообще отдельная переменная выделенная в оперативной памяти. Вот она тоже хранит адрес. НО - когда ты вызываешь по ней то сначала так:
- сначала ищется этот указатель в оперативке
- читается адрес
- компилятор прыгает по адресу

То есть два дополнительных действия.

Кстати именно поэтому полиморфизм влияет на производительность - так как это тоже указатели на функции.
310 2638539
>>38145
Да не забивай себе голову... в с++ дохулион всяких нюансов. не просто так же говорят что его можно изучать 20 лет и нифига не узнать. А самый прикол что многие нюансы еще и успевают потерять актуальность, или обрастают новыми костылями

Просто держи в памяти что указатель на функцию чуть медленее вызова. Но это мизер на который должно быть пофиг в 99% задачах.
311 2638548
>>38539

>в с++ дохулион всяких нюансов


Это база которую обязан знать, а вовсе не какой-то левый нюанс. И 20 лет ни при чём, ты это должен знать в самом начале, иначе ты сам не понимаешь что пишешь, на этом весь язык основан.
312 2638557
В с++ дохулион всяких UB.
313 2638836
>>38557
дохулион платформ - дохулион UB
314 2638882
.
315 2638889
поясните тупому за noexcept, нахуя он нужен?
если в методе с ним кинуть ексепшен дебаг абрт ловлю, даже не смотря на трай.
316 2638914
>>38889
это значит что пока ты в этой функции ты не имеешь право кидать эксепшен
если же ты решил его кинуть, моментальный аборт

поэтому ты даже попытаться внутри неё что то словить не имеешь права
317 2638916
>>38889
На самое главное то не ответил

>нахуя он нужен


Потому что так быстрее, компилятор может более круче за оптимизировать твой код
Плюс облегчает некоторое написание кода, когда ты например точно знаешь что мув конструктор никогда не кинет эксепшен
318 2638922
а вобще в цпп референсе всё понятно написано
иди изучать
319 2638925
>>38889
Потому что эксепшены НЕ НУ Ж НЫ, но гомогеи их пропихнули, но олды оставили флаг что б собирать без ентого говна.
320 2638963
>>38836
UB не от платформы происходит, а от грамматики языка.
image.png43 Кб, 222x227
321 2638965
>>38925
Использую эксепшены вместо ифов, и что ты мне зделоеш?
322 2638973
>>38963
какое отношение граматика языка к UB имеет?
323 2638977
>>38973
Семантика.
324 2639006
>>38925
Посмотрел бы я на тебя, когда тебе надо с файлами работать и кучу операций делать. Использовать исключения - хуйня. Оборачивать каждую строчку в иф и раздувать код в 2 раза - отличная идея
325 2639020
>>39006
Эх, вот бы можно было написать zero-cost объект-обертку с optional<result, error>...
326 2639091
Кристач, поясните даунитосу из шарпача за ссылки. Я правильно понимаю, що при использовании ссылок нормальные люди называют переменную таким образом, чтобы из названия было явно понятно, что это именно ссылка?
327 2639099
>>39091
Нет.
328 2639126
>>39020
А почему нельзя?
Мимо
329 2639127
>>39091
Названию нельзя доверять.
330 2639246
>>38963
Язык такой, чтобы он мог одинаково работать на любой платформе. За это приходится платить пресловутыми уб. Замени все уб в стандарте на что-то конкретное, и потеряешь в эффективности, так как отдельные реализации языка будут вынуждены соответствовать этим дополнительным требованиям, даже если это особо никому не нужно, и у компилятора будет меньше возможностей оптимизировать код.
331 2639336
>>39127
Справедливо.
332 2639349
>>38965
Ничего
>>39006
Я таким не занимпюсь, возможно ты прав, посмотрю ради интереса что там. Что эксепшены быстрее чем кейс по енамам? Но работа с файлами как ты описал сама по себе медленная так что хз.
изображение.png626 Кб, 1275x899
333 2639405
>>38534

>Так как тут речь о инлайне


С инлайном понятно.
У него (у Мейерса) сравнивается передача в алгоритм указателя на функцию VS функциональный объект. Кроме трабблов с инлайном, я цветом выделил еще один тейк, что якобы указатель на функцию дает больше уровней косвенности, чем функциональный объект.

Я себе это представляю как ленту, поток инструкций.

>- сначала ищется этот указатель в оперативке


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

>функция - это кусок памяти где-то в пердях бинарника, у этого куска памяти есть адрес. Прямое Обращение по адресу (то есть вызов функции) - это просто джамп в те перди



И там и сям один джамп, если указатель указывает на адрес тела функции, а не на адрес, содержащий вызов функции. В общем случае и не обязательно такое место даже есть в программе. Вот допустим функция foo() вызывается только по указателю, но нигде не вызывается "прямо". Куда в таком случае указывает указатель? Только сразу на тело функции он и может указывать. Или что, компилятор отдельно где-то в коде генерит операцию тру-вызова функции и указатель направляет на операцию вызова, но не сразу на тело.

Что мне не понятно.
Зачем делать через жопу, как все тут настаивают, когда есть очевидный способ сделать не через жопу?
334 2639406

>В С++ структуры и классы эквивалентны, кроме доступа по умолчанию.



А в чем тогда смысл? Если по чистому коду модификатор доступа все равно надо прописывать?
335 2639412
>>39406
А нет его, смысла.
Просто делай как все и используй стракты для чего попроще и классы для чего посложнее.
336 2639416
>>39406
Смысл в совместимости с сишкой.
337 2639427
>>39406

>по чистому коду модификатор доступа все равно надо прописывать?


В Комитете засела нечистая сила, вот и лоббирует всякое.
.png6 Мб, 2160x1440
338 2639435
>>39427

> В Комитете засела нечистая сила


Многие давно подозревают.
339 2639527
>>39435
В каком-то подвале собрались. Не могли нормальное помещение арендовать?
Бичёвский комитет для бичёвского языка.
340 2639620
>>39246

>Язык такой, чтобы он мог одинаково работать на любой платформе.


Только тут адово противоречие, из-за уб он никогда не будет работать одинаково на любой платформе.
Безымянный.jpg19 Кб, 623x83
341 2639636
А есть компиляторы, в которых на нормальном языке объяснят, что делает метод? Я из всей этой ебалды только понял, что он принимает параметром кейвалью. Возврат поидее булевый, но где об этом написано?
342 2639648
>>39636
Походу хуелевое возвращает. Возвращает просто размер найденного по ключу объекта деленный на размер объекта? Чи да?
343 2639651
>>39527

>Бичёвский


>бичёвского


Это слово реально через "ё" пишется?
344 2639655
>>39636
Вернёт количество объектов по ключу.
345 2639656
>>39636

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


Тебе чтоб шаблончики разворачивало и разжевывало?
ИДЕшки вроде даже бесшаблонные функции только по самому минимуму показывают, тут от аффтаров зависит если каменты завезли, тогда видно и понятно что к чему.
К СДЛ каментоф нет, четай РТФМ (вроде cppreference.com)
346 2639658
>>39656

>СДЛ


Лол, к СДЛ как раз есть, я про СТЛ.

быстрофикс
347 2639660
>>39656
Ясно, спасибо. Здесь вам не тут конечно.
348 2639758
>>39620
Если не допускать уб в коде, он гарантированно будет работать на любой платформе. С поправкой на средства, которые заявлены в стандарте как implementation defined. Например, платформа не обязана поддерживать intX_t типы.

Я вообще не понимаю, почему все форсят, что уб это "рандом". Конечно можно говорить, что сложно не допустить ошибку в коде из-за человеческого фактора, но это никакой не рандом. Если понимать, что ты делаешь, и читать документацию, то всё будет работать как надо.

Алсо реквестирую самый ебанутый и неочевидный по вашему мнению пример уб.
349 2639801
>>39758

>самый ебанутый и неочевидный по вашему мнению пример уб.


Добавляешь такой без задней мысли конструктор из std::initializer_list и {}-инициализация в казалось бы хорошо протестированном коде начинает играть новыми красками, которых никто не предвидел.

Формально не ub, но хрен редьки не слаще.
350 2639823
>>39801
Ну, честно говоря, это как написать
2 + 2 × 2
и удивляться, почему получилось 6, а не 8. Не в том смысле, что это глупая ошибка, а в смысле что претензия необоснованная.

> не ub


Вот именно.
351 2639826
>>39801
Чёт не понял, в чем проблема?
В том что {} интерпретируется как лист инициализации, а не вызов конструктора?
352 2639838
>>39826
В том, что такой конструктор на хую вертел правила разрешения перегрузки.
Когда он есть - это одно, когда его нет - другое. Но в обоих случаях компилятор молча компилировает.
Это все можно отладить, когда он изначально предусмотрен. А если добавлять в существующую кодовую базу - пойди перелопать весь код, где твой класс использовался.

>>39823
Мое почтение, если для тебя это как 2 + 2.
353 2639863
>>39838
Если тебе он нужен, но переписывать всю кодовую базу не хочешь, почему не сделать так:
T::from_init_list()?
354 2639865
>>39838

> Мое почтение, если для тебя это как 2 + 2.


Я и говорю, что дело не в сложности, а в том, что принцип тот же. Язык сложный, кто ж спорит.

> В том, что такой конструктор на хую вертел правила разрешения перегрузки.


На самом деле там просто у initializer_list приоритет выше.
355 2639868
>>39838

> А если добавлять в существующую кодовую базу - пойди перелопать весь код, где твой класс использовался.


Вот это, кстати, по делу, универсальная инициализация это такое себе решение.
356 2640015
>>39801
>>39823
>>39826

>std::initializer_list


Поясните про этот момент, пожалуйста, что там может пойти не так?
А.mp43,2 Мб, mp4,
720x720, 0:09
357 2640021

> CONAN 2.0


Они на фулл ебале все рецепты просто поломали?
Find{PackageName}.cmake просто нигде не работает
Ни бусты, ни фмт, ни гтест

И что, пару лет ждать пока дяди захотят в своих проектах сборку переписать?
358 2640040
>>40021
Vcpkg
359 2640103
>>40015
С некоторых пор инициализацию можно производить с помощью {}. Например вот так:
int x{666};
Для чего это нужно? Компилятор путал T x() с объявлением функции в .h, насколько я понимаю.
Вроде все хорошо. Но теперь рассмотрим вектор:
vector<int> x(10,2);
vector<int> x{10,2};
Что мы хотим? Вызвать конструктор, который создаст 10 элементов и заполнит их значением 2.
В первом варианте так и будет.
Но во втором конструктор списка инициализации возьмёт верх и создастся вектор[ 10,2].
Вот и вся проблема. Про это нужно просто знать.
Поправьте если не прав.
image.png796 Кб, 900x900
360 2640158
>>40103
Ох, лол, даже не подумал бы. Спасибо за объяснение, мне просто в голову бы не пришло второй вариант с такой мыслью использовать.
361 2640231
>>40103

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


Нет, не хотим. Это API одно из самых больших ошибок в истории с++.
362 2640240
>>40231
Я хочу.
363 2640253
>>39758

>Алсо реквестирую самый ебанутый и неочевидный по вашему мнению пример уб.



a + b

Как все уже поняли, недостаточно просто написать

sum = a + b;

Ведь при переполнении это UB.
Понятно, но наверное можно же проверить?

sum = a + b;
if(a + b > INT_MAX) error();

Стоп. Так условие же никогда не выполнится из-за переполнения.
Да и это уже целых 2 UB

sum = a + b;
if(sum < a) error();

Ну не, так не выйдет, ведь UB уже произошло, компилятор имеет право выкинуть всю проверку.
Ладно, шутки в сторону, давайте проверим заранее. Так, а что писать?
(a + b < INT_MAX) мы уже пробовали. (Ахаха, подловил. Надо писать не меньше, а меньше или равно) А, точно.

if(a <= INT_MAX - b)
sum = a + b;
else error();

Так, пагадите!
Что-то тут не так.
Допустим у нас a < 0 и b = 0
И мы только что (наберите воздуха в грудь), во время сравнения
Вычли с underflow.
Минус сколько-то минус макс_инт меньше чем влезает в инт.
Переполнение в другую сторону, тоже UB
Переписываем нахуй

if((b > 0 && a <= INT_MAX - b) ||
(b < 0 && a >= INT_MAX - b))
sum = a + b;
else error();

Скобочки посчитали? && и || не перепутали?
Вот теперь заебись!
И это крестобоги должны писать вместо каждого сложения в программе.
Ассемблерный выхлоп показывать не буду. Чтобы ночных кошмаров не было.

P.S. Бонусный трек
#include <climits>
#include <iostream>
int main() {
std::cout << INT_MIN << '\n';
std::cout << INT_MIN / -1;
}
Что там за знак должен быть у второго числа, ну ка?
363 2640253
>>39758

>Алсо реквестирую самый ебанутый и неочевидный по вашему мнению пример уб.



a + b

Как все уже поняли, недостаточно просто написать

sum = a + b;

Ведь при переполнении это UB.
Понятно, но наверное можно же проверить?

sum = a + b;
if(a + b > INT_MAX) error();

Стоп. Так условие же никогда не выполнится из-за переполнения.
Да и это уже целых 2 UB

sum = a + b;
if(sum < a) error();

Ну не, так не выйдет, ведь UB уже произошло, компилятор имеет право выкинуть всю проверку.
Ладно, шутки в сторону, давайте проверим заранее. Так, а что писать?
(a + b < INT_MAX) мы уже пробовали. (Ахаха, подловил. Надо писать не меньше, а меньше или равно) А, точно.

if(a <= INT_MAX - b)
sum = a + b;
else error();

Так, пагадите!
Что-то тут не так.
Допустим у нас a < 0 и b = 0
И мы только что (наберите воздуха в грудь), во время сравнения
Вычли с underflow.
Минус сколько-то минус макс_инт меньше чем влезает в инт.
Переполнение в другую сторону, тоже UB
Переписываем нахуй

if((b > 0 && a <= INT_MAX - b) ||
(b < 0 && a >= INT_MAX - b))
sum = a + b;
else error();

Скобочки посчитали? && и || не перепутали?
Вот теперь заебись!
И это крестобоги должны писать вместо каждого сложения в программе.
Ассемблерный выхлоп показывать не буду. Чтобы ночных кошмаров не было.

P.S. Бонусный трек
#include <climits>
#include <iostream>
int main() {
std::cout << INT_MIN << '\n';
std::cout << INT_MIN / -1;
}
Что там за знак должен быть у второго числа, ну ка?
364 2640256
>>40253
В какой раз здесь это постят? Раза три точно было.
365 2640264
>>40231
А как ты это делаешь? В фор-лупе пушбечишь значения?
1641390153720.png34 Кб, 160x112
366 2640266
>>40264
memset
367 2640270
>>40231
Идея в использовании некоторого конструктора, принимающего n T, который можно "спутать" со списком n[ ].
368 2640273
>>40253
А крестовики-то оказывается складывать не умеют!
369 2640278
>>40240
Это тебе в питон какой нибудь. Там любят let arr = [2] * 10
370 2640288
>>40278
Наверное есть еще более питоническое выражение. Я когда пытался скриптовать мелочи по работе, чтоб плюсы не елозить каждый раз, быстренько питонить начал, так я и охуел от того сколько там "питонических путей", не сочетающихся с плюсовым прямым текстом.
371 2640290
>>40266
С типами сложнее инта не сработает
372 2640292
>>40290
Плохо себе представляю, зачем это может понадобиться. Со своими типами - просто делаешь дефолтный конструктор.
373 2640293
>>40292
Ну потому что ты можешь захотеть значениями заполнить отличными от дефолтных
374 2640295
>>40293
Ну отнаследуйся.
375 2640298
>>40295
Наследование это антипатерн
376 2640299
>>40298
Да все кресты это антипатерн.
377 2640303
>>40298
>>40299

>c++ тредж


Туда ли вы зашли, питончики?
378 2640313
>>40253
Ок, справедливо. Но даже если бы переполнение гарантированно работало по принципу кольца, всё равно проверка на переполнение будет неудобной и неочевидной, по аналогичным причинам.

Выглядеть будет примерно так (поправьте меня, если я ошибаюсь):

int c = a + b;
if (a < 0 && b < 0 && a + b >= 0 || a > 0 && b > 0 && a + b < 0) ...

Спасает от этого, если уж нам так нужна проверка на переполнение знакового целого, только флаг переполнения, который есть в x86 архитектуре, например. Но я как-то не слышал, чтобы такого рода проверки были доступны хоть в каком-то высокоуровневом языке программирования. Вроде бы в некоторых языках при переполнении выбрасываются исключения. Но это уже минус эффективность, и в большинстве случаев не нужно, потому что зачастую можно изначально предусмотреть ограничения для входных значений, в зависимости от задачи. Конечно, это ответ в духе НИНУЖНА, но всё-таки.

З.ы.: переполнение беззнаковых целых это well-defined behavior, кстати.
379 2640321
>>40313
Мне кажется переполнение не должно работать по кольцу. Должно устанавливаться максимальное/минимальное значение.
Или вообще вводить для int подобие nan.
Но это усложнение ради усложнения. Хз где это реально нужно.
380 2640323
>>40290
Я больше скажу, с типом сложнее char не сработает. С интом - если только нулями заполнить, потому что memset побайтовый. То есть тебе нужно, условно, это:
02 00 00 00 02 00 00 00 02 00 00 00 ...
А с мемсет ты получишь это:
02 02 02 02 02 02 02 02 02 02 02 02 ...
381 2640325
>>40321
Извращенец...
382 2640334
>>40313

>a > 0 && b > 0 && a + b < 0)


По моему, UB позволяет выкинуть компилятору эту проверку, потому что "так не бывает и не может быть никогда".
383 2640340
>>40321
Это называется saturation и вполне много где используется, например в шейдерах, в GPU, и даже в FPU.
Например, если ты складываешь два цвета, у тебя компоненты RGB не должны быть больше 255 и т.д.
384 2640341
>>40334
Это я к тому, как пришлось бы писать проверку, если бы переполнение не было УБ. А конкретно, если бы была гарантия, аналогично той, которая есть для беззнаковых:
INT_MAX + 1 == INT_MIN
INT_MIN - 1 == INT_MAX
385 2640344
>>40340
Так?
250 + 42 == 255
386 2640352
В новом стандарте c++34 добавят std::is_overflow_flag_set<T> и std::is_underflow_flag_set<T>. Также добавят новый класс std::check_integer<T>:

std::check_integer<int> a = INT_MAX;
try {
a += 10;
} catch (const std::check_integer<int>::overflow_exception &e) {
std::cout << "std is simple :)" << std::endl;
}
387 2640354
>>40352
Не добавят, ведь на какой-нибудь никому не всравшейся архитектуре с шестиразрядным байтом это будет сложно запилить.
388 2640372
>>40352
Но к сожалению он окажется несовместимым с unordered_map и rangev5b1, так что придется писать свои контейнеры.
389 2640377
>>40352
Так уже либы есть, если с таким пердолишься, то их будешь юзать.
390 2640378
>>40377
В плюсы уже как-то добавляли фичи из boost, так что не проблема
391 2640481
>>40352

>В новом стандарте c++34 добавят


В C++37 добавят
std::is_overflow_flag_set_besplatno<T>

А в C++40 переделают на
std::some_fucking_template<std::bez_sms>(std::is_overflow_flag_set_besplatno<T>)
392 2640485
>>40481
Лучше пусть добавят std::exception_besplatno
393 2640486
>>40485
Вроде работа кипит в этом направлении?
394 2640488
>>40486
Давно кипит, может и выкатят в c++49
395 2640489
>>40488
Я про этот доклад, но не знаю какой прогресс с того времени
https://www.youtube.com/watch?v=ARYP83yNAWk
396 2640493
>>40489
Еще есть такой прошлогодний, но я его не смотрел еще
https://www.youtube.com/watch?v=ELeZAKCN4tY
1664524861810.png48 Кб, 324x259
397 2640496
>>40493
Больше : : богу ::, ведь их так мало в с++
Алсо опять этот растоблевотный синтакс.
1560999289793.png165 Кб, 791x509
398 2640497
Пхаха, вот сколько лет говорили что using namespace std плоха, а в cpp2 это будет по дефолту, ебала?
1581462733647.png231 Кб, 898x503
399 2640505
Ниче такой питончик выходит
400 2640506
>>40497
Ух сколько легаси переписывать придётся.
401 2640507
>>40497
Для олдфагов похую, т.к. легася дальше одиннадцатых плюсов выкатится к концу века, для ньюфагов заебись, т.к. они и так этот юзинг всегда писали.
Ну а че, стандартная библиотека, давно пора было уже, в чем проблема?
402 2640510
>>40506
Ну так, надо чтобы у крестовиков всегда работка была.
403 2640511
>>40506
Никогда такого не было и вот опять.
1668735717654.png96 Кб, 758x98
404 2640516
Не будет сырых указателей (зато, кажется, вижу garbage collector?)
1647675735428.png47 Кб, 743x101
405 2640518
image.png146 Кб, 480x360
406 2640519
407 2640545
>>40516

>зато, кажется, вижу garbage collector?


В C++11 появились какие-то там средства для поддержки самостоятельной реализации сборщиков мусора. Но позже, толи в 17, толи в 20 их выпилили, т. к. никто ими не пользовался.
408 2640560
>>40516
Это же мем
409 2640562
>>40560
Ну вот пока ты думал что это мем, Херб Саттер просто разъебал всех своим Cpp2
410 2640591
>>40496
>>40497
>>40505
репорт за шок контент
1678592556724.png193 Кб, 357x520
411 2640594
>>40591
Справедливо
412 2640609
Вот у меня есть класс. И есть функция которая обращается ко всем его элементам, например тут оператор сравнения.

Вопрос: что если я добавлю новые элементы - как сделать чтобы компилятор сразу завизжал что срочно надо вносить изменения?

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

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

Пока что делаю так static_assert(sizeof(Foo) == 8, "Foo changed!!!");
Но это говно (особенно из-за размера указателей, лонгов и т.д.), так как оно мне говорит что я изменил класс Foo, но оно мне не говорит - куда я теперь должен бежать в коде чтобы внести правки. И я-то вспомню что я должен тут сделать. А джун Вася просто напишет 12.
413 2640613
>>40609
В чем проблема написать это static_assert(sizeof(Foo) == 8, "Foo changed!!!"); внутри operator==?
И почему не говорит куда? Есть же какой-то макрос писать текущую строку.
А комментарий писать пробовал? Что при измененнии надо не забыть исправить то и то.

Но вообще ты хочешь что-то вроде рефлексии в компайл тайме и посчитать поля, Да еще и посчитать чтобы каждое из них было сравнено.
Даже не представляю как это может выглядеть на плюсах
https://stackoverflow.com/questions/45820379/get-the-number-of-fields-in-a-class
Может быть кто-то может написать такую многостраничную конструкцию, возможно с использованием буста и рефлексии, чтобы получить все поля как tuple и обращаться к ним по порядку... Кажется в расте есть макросы для чего то подобного...
Я бы наверное сдался и может быть максимум сделал кодогенерацию, чтобы operator== генерился по описанию структуры.

У тебя только тривиальные типы? Вот еще нагуглил что-то про c++20 дефолтные операторы сравнения, может можно просто написать что то вроде
bool operator<=>(const Foo& left, const Foo& right) = default;
https://en.cppreference.com/w/cpp/language/default_comparisons
414 2640633
415 2640635
>>40633

> рефлексия


> в рантайме


Не думаю что это то чего он хотел
416 2640638
>>40635
Disregard that I suck cocks, это вообще не то что он хотел.
417 2640648
Подскажите бесплатные библиотеки для C++, которые могут :
- работать с docx файлами(Microsoft Word). DuckX не подходит - проект заброшен и редактировать текст очень сложно
-склонять слова по падежам(Морфер платный)
image.png61 Кб, 250x202
418 2640659
Почему STL'овский Queue не имеет метода который извлекает первый элемент? Почему надо вызывать метод доступа к нему (front) и затем его убирать (pop), почему нельзя сразу взять и убрать в одно движение помимо упомянутого способа?
Тут какой-то сакральный смысл который я не выкупаю?
419 2640676
>>40659
Тут вроде норм расписано. Если делать pop возвращающий ссылку, то она будет вести вникуда, объект то выкинули, плюс может быть исключение.
https://stackoverflow.com/questions/25035691/why-doesnt-stdqueuepop-return-value
420 2640683
>>40659
Девиз Страуструпа - "сделай сам!".
Минимальный интерфейс для воплощения твоей фантазии есть.

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


Такой поп требует копирования, не всем оно надо.
421 2640685
>>40676
>>40683
Кажется я пони. Но почему бы не заиметь метод popCopy() который будет сразу возвращать копию? Кому надо - тому одна строчка

>auto c = q.popCopy();


вместо

>auto c = q.front();


>q.pop()


У меня сильно чаще бывает что я использую то что попнул. А если не надо то те могут использовать старый добрый поп.
инб4 зделой сам
422 2640686
>>40683
а фронт+поп типа не требует лол
выше правильно пояснили что основная причина - безопасность исклбчений. теоретически для типов с ноексепт мув конструкткором можно было специализироваьт. хотя это кринж хуже вектора булов когда у очередей для разных типов разные наборы методрв
423 2640688
>>40686

>а фронт+поп типа не требует лол


Фронт + поп - это две разных операции.
Если не оставить "чистый" поп, то появятся вопросы "где чистый поп, нахой?!".
Если фронтПоп сделать рядом с имеющимися фронтом и попом, то получается дублирование функционала, что тоже не очень.
424 2640690
>>40688

>Если не оставить "чистый" поп, то появятся вопросы "где чистый поп, нахой?!".


Оставить. Никто не предлагал его удалять.

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


Когда это кого-то останавливало?

>push_back


>emplace_back

425 2640692
>>40686

>основная причина - безопасность исклбчений


STL проектировали когда еще исключений-то толком не было.
Это побочный эффект, а не причина.

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


Перемещение не со всякой реализацией очереди совместимо. Бывают очереди, которые одну и ту же память гоняют по кругу пока ее хватает, т. е. даже после попа эта память все еще лежит на совести очереди.
426 2640694
>>40692

>STL проектировали когда еще исключений-то толком не было


а не пиздишь ли ты мне?

какая нах разница че на чьей совести лежит. во время попа так и так вызывается деструктор. и для мувед-фром объекта это тоже валидная операция
427 2640699
>>40694

>а не пиздишь ли ты мне?


Я всегда и всем пиздю, ты не исключение. В этом посте я тоже пиздю.
428 2640714
>>40545
А нахуя гарбаж коллекторы то нужны? Смарт птр не доставляют?
429 2640718
>>40609
auto operator<=>(const T&) = defalut;
430 2640720
>>40648
Ой бля, копал в ту степь, имхо проще скрипты на питоне написать и биндинг сделать.
431 2640724
>>40690
Дружище, пуш и эмплейс разные вещи.
432 2640747
>>40694
А если это очередь указателей?
433 2640778
>>40747
пчел только не говори что не понимаешь разницы между вызовом деструктора и освобождением памяти..
очереди абсолютно похую лежат в ней указатели или инт64, она не владеет ресурсом по указателю. или хз может ты имел в виду умные указатели. хотя тогда все равно неебу в чем ты тут видишь проблему
434 2640801
>>40724

>добавляют элемент в конец контейнера


>разные вещи

435 2640805
>>40778
Ни в чем, я спросонья не разобрался и реально задал вопрос о том, что будет.
В случае если Т, то д-тор будет вызван. Если Т*, то не будет.
d8KLUakrAEY.jpg99 Кб, 733x525
436 2640813
>>40801
Немного по-разному, как я понимаю.
437 2640814
>>40805

> Если Т*, то не будет


будет но деструктор не Т а Т⚹
только он ничего не делает с объектом на который указывает
438 2640834
>>40686

> а фронт+поп типа не требует [копирования] лол


Нет, фронт возвращает ссылку, поп ссылку возвращать не может.
439 2640942
>>40718
По-моему оно даже не скомпилируется. Как оно будет сравнивать меньше-больше? Вот дефолтный operator==, даже без явного default, в этом случае будет работать.
2JPVGdQGP2E.jpg49 Кб, 501x332
440 2641009
>>40942
Так компилится и работает.
Но офк лучше самому прописывать. Это чудо будет ВСЕ подобъекты сравнивать.

> Как оно будет сравнивать меньше-больше?


Трёхстороннее сравнение, из него любой оператор выводится.
441 2641021
>>41009
Ты не понял, по какому принципу оно будет возвращать "меньше" и "больше", если там два инта? У тебя в коде operator<=> не используется, кстати.
442 2641031
>>41021

>У тебя в коде operator<=> не используется, кстати.


Грубо говоря, <=> преобразуется в любую операцию сравнения.
443 2641042
>>41031
Опять не понял. Что вернёт это?
K{1, 2} <=> K{2, 1}
"Меньше" или "больше"? Сам бы проверил, но пока нет возможности)
444 2641047
>>41009
А, я не заметил там <, сорян. Всё еще не понимаю, как оно по дефолту работает.
445 2641048
>>41042
std::strong_ordering оно вернёт.
Используй не <=>, а < или >.
446 2641061
>>41048
Вопрос был не об этом. Как оно сравнивает? Сначала первый инт, потом второй, или как?
447 2641068
Ладно, без вас разобрался, оно сравнивает поля по очереди, в порядке вызова конструкторов.
448 2641090
>>41068
Обращайся ещё.
449 2641131
>>41068
Я пока пример писал сам запутался и сидел тестил.
450 2641147
>>41068
Спасибо.
451 2641268
Почему msvc не умеет собирать под linux? Кажется, что портирование на другую ос не такая сложная задача в сравнении с остальными задачами компилятора.
452 2641293
>>41268
Умел через костыльное дополнение.
Сейчас поднимаешь подсистему луникса на локалхосте и конпеляешь "удаленно" через свою же студию.
454 2641310
>>41061
Это важно вообще? Для оптимизации или что?
455 2641320
>>26726 (OP)
Анончик, миленький, помоги, пожалуйста.

Как вытащить стринг из lParam в сообщении WM_SETTEXT?
У меня вытаскиваются вопросы только, видимо что-то с кодировкой или хз.

Хэлп, плиз, с меня тонны нефти.
456 2641399
>>41320

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


Кодировка, очевидно.
Кури маны по касту из чарпойнтера в вайд стринги (скорее всего оно) либо анси.
457 2641404
>>41320
Там вряд ли вопросы. Посмотри в отладчике или напечатай конкретные байты. А вопросики у тебя появляются когда ты уже пытаешься выводить где-то , например в консоли.
458 2641432
>>41399

>Кури маны по касту из чарпойнтера в вайд стринги


Винда уже 20 лет как юникодная (вайд стринг), так что кастить в вайд не надо, там и так всё в нём. Кастить надо как раз наоборот в анси чар, только вопрос - нахуя?
459 2641440
>>41432

>Винда уже 20 лет как юникодная (вайд стринг), так что кастить в вайд не надо, там и так всё в нём.


Это если тот кто месседж шлет его в вайде присылает. Никто не мешает и в анси заслать, да хоть в кои-7р. Неясно же что там задававший вопрос дебажит.
У меня просто профдеформация с легасями, потому о такой хуйне думаю, скорее всего ты прав.
460 2641520
>>41440

>Это если тот кто месседж шлет его в вайде присылает. Никто не мешает и в анси заслать, да хоть в кои-7р


Еще раз, WM_SETTEXT это сообщение winapi, там уже 20 лет всё нативно юникодное, иначе не бывает, винда так написана.

>легасями


Какая разница легаси-хуегаси. Программа может быть говнокодом c char, но винапи всё равно юникодное, char вызовы конвертируются в юникод под капотом, потому что винда работает только с юникодом. Я хуею, 20 лет юникод, а до сих пор не знают, это какой то сюр.
461 2641578
>>41520

>Еще раз, WM_SETTEXT это сообщение winapi, там уже 20 лет всё нативно юникодное, иначе не бывает, винда так написана.


Лел. Я сам могу этот WM_SETTEXT послать и заполнить его кракозябрами с бнопнёй. Я не спорю что если у него что-то современное и нормально написанное, то там юникод.

>Программа может быть говнокодом c char, но винапи всё равно юникодное, char вызовы конвертируются в юникод под капотом, потому что винда работает только с юникодом


Ничего она не конвертирует, что послал, то и получил. Я буквально сейчас это для лулзов проверил, в сендмесседже в лПарам скармливаешь чарпоинтер с чем хочешь и имеешь результат, оно ничего с ним не сделает. Все зависит исключительно от того что за код.
Да, винда работает с юникодом, а вот говнокод легасёвый с чем угодно.
Давай прекращать этот бессмысленный срач, ты не неправ и я согласен с тем что ты говоришь потому что в основном оно как ты говоришь и работает.
462 2641619
>>40720
да я сделал уже на питоне склонение по падежам, только не нравится, что нужно питон ставить на ПК конечному юзеру
463 2641627
>>41310
Ну ёпта, поведение от этого зависит, алло
464 2641635
>>41627
Каким образом? Ты как бы все равно должен сравнить все со всеми.
465 2641636
>>41635
Это если тебе нужно равно/не-равно, а я говорю про меньше/больше
466 2641639
>>41635
Ну и, кстати, для оптимизации тоже, даже если меньше/больше не нужны. Например, если в структуре два поля, одно из которых примитивное, а у другого операция сравнения затратная, то имеет смысл сравнивать их начиная с первого, потому что тогда второе придется сравнивать только если первое прошло проверку.
467 2641642
>>41639
А ты не тестил случаем, как спейсшип <=> указатели сравнивает?
468 2641645
>>41636
Ладно, наверное я про какие то сложные случаи не подумал, типа сравнение месяца раньше чем сравнение дня.
469 2641652
>>41642
Нет, я документацию открыл.
470 2641653
>>41642
И чем по-твоему указатели отличаются от любых других объектов?
471 2641654
>>41652
И что там написано про указатели?
472 2641656
>>41653
Оно сравнит объекты по указателям или два указателя?
473 2641658
>>41654
К чему ты ведешь? К тому, что сравнение независимых указателей это уб или что?
474 2641661
>>41656
Два указателя.
475 2641665
>>41658
Ни к чему.
Просто буду держать в голове, используя этот оператор, что с указателями могут случиться приколы.
476 2641669
>>41665
Опять же какая разница? Он просто разворачивается в обычные < и >, разве нет?
477 2641673
>>41665
Нет никаких приколов, указатель это переменная с адресом ячейки в памяти. Операторы сравнения сравнивают адреса. Сам объект нужно доставать явно через * или ->
478 2641677
>>41673
>>41669
В этом и суть. В общем случае при < > сравнивать АДРЕСА некорректно, надо сравнивать объекты по ним, а это значит что = default нельзя писать.
Верно ведь?
479 2641678
>>41677
Зависит от того, что тебе нужно. Default далеко не всегда нужен, конечно.
480 2641679
>>41678
Вот я это просто для себя и выводил, без наездов на кого либо.
481 2641682
>>41679
Сорян, неправильно понял. На дваче только наездов и ожидаю :)
482 2641684
>>41677
Наверное у меня из за магнитных бурь сегодня голова плохо варит. Ты в обоих случаях сравниваешь указатели по <, просто в одном случае определил сам оператор <, а во втором <=> который сам определил <
483 2641688
>>41684
Да, но обычно хочется сравнить то что находится по указателю.
Я почему-то сначала подумал, что раз это всё такое умное, куча кода генерируется, может оно и с указателями что то придумает, но нет. Это противоречило бы философии языка.
image.png60 Кб, 225x225
484 2641690
>>41682
А, ну раз ожидаешь, то ты дальновидный здравомыслящий человек, желаю чтобы говно пореже встречалось и пусть тебе улыбается этот колобок, понял?
Безымянный.jpg97 Кб, 926x705
485 2641859
Почему в классе GameBoard работает cout? Типо заголовки действуют на весь проект чтоли? А если есть прагма уанс, то будет работать только один заголовок, если указаны одинаковые в разных файлах, чи да?
486 2641866
>>41859

> Почему в классе GameBoard работает cout?


Потому что ты вызываешь функцию дебаг что то там

> Типо заголовки действуют на весь проект чтоли?


Нет, только там где заинклудил их

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


Не уверен что правильно понял вопрос, но да
487 2641873
>>41866

>Нет, только там где заинклудил их


у меня нет iostream в gameboard, почему там тогда работает cout?
488 2641881
>>41873
Потому что ты заинклудил его в хэдер

Ты знаешь как инклуды работает? Он тупо берет контент ил хедера и вставляет полностью в cpp файл
Безымянный.jpg97 Кб, 900x690
489 2641893
>>41881
Но файл заголовка не имеет инклюдов.
490 2641897
>>41893
Скорее всего потому что у тебя нет разделения объявление - определение, и когда ты инклюдишь gameboard.h в main все нормально, ведь iostream уже подключен.
491 2641898
>>41859
Попробуй поменять местами инклюды.
492 2641901
>>41898
Случилось много ошибок.
>>41897
Скорее всего потому что у тебя нет разделения объявление - определение

ясно понятно, спасибо.
493 2642185
>>32022
SDL неиронично.

Правда самому придётся пейсать
494 2642193
>>32022
Что не так с qt?
495 2642195
>>42193
Тоже интересует.
кьют полубог
496 2642197
>>40686

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


Пиздец, что это за монстр?

мимо Сишный скуф
497 2642199
>>42193

>Что не так с qt?


Л И Ц Е Н З И Я
И
Ц
Е
Н
З
И
Я
498 2642201
>>42199
Абсолютно бесплатно, не надо открывать исходники, можно продавать, лишь бы линковался динамически.
499 2642204
>>42201

> линковался динамически


хуйня без задач.
500 2642205
>>42204
Пидора ответ.
501 2642206
>>42201
Я, например, нетолько под винду прогаю. Что теперь? Нет, хуета ваш Qt, потому что не опенсорс и лицензия хуеввая.

Как уже выше писал, лучше SDL нет ничего. Но надо ручками поработать и самому написать для интересующей платформы
502 2642208
>>42206
Есть же фри форк кути.
503 2642213
Лицензия правда хуевая, но если пишешь для себя то можно и забить на нее, а если корпорат - купить же можно.
504 2642215
>>42206

> потому что не опенсорс


Ебанутый?
505 2642219
>>42206
Зачем SDL? Есть же именно гуй-либы в таком случае.
Nuklear, ImGui, RmlUI (реинкарнация libRocket)
Можешь еще тут покопаться, может что то подберешь
Конечно под твои требования они может и не попадают, в смысле там предпросмотр придется самому прикручивать, как и просмотр 100к записей.

https://philippegroarke.com/posts/2018/c++_ui_solutions/
506 2642222
>>42215
Ты то? Возможно.
507 2642244
>>42197
Штука которая тебе позволяет намного легче гарантировать эксепшен сейфти в тех же контейнерах
скуычик, рвэлью семантика уже с 11 года в плюсах, просыпаемся
изображение.png18 Кб, 645x303
508 2642334
Чё за хуйня? юзаю c++20, но виртуальные constexpr функции не работают, на скрине обычный базовый класс
509 2642341
>>42334

> vurtual constexpr


Его идеи
Блядь что это
511 2642350
>>42341
суть в том, что потом этот метод будет в наследниках переопределяться, для получения нужного размера массива, выделяемого на стеке, соответственно всё должно быть вычислено на этапе компиляции
512 2642363
>>42350
Звучит как говнокод.
513 2642379
>>42219
Хороший псто, лойс.

>ImGui


Рикаминдую.
image.png182 Кб, 860x628
514 2642380
>>42334
>>42350

>русек студии

515 2642381
>>42350
Зачем она тебе во время компиляции?
516 2642412
>>33592
При наследовании от std::enable_shared_from_this<> получается этот мем.
517 2642422
>>42412

>enable_shared_from_this


Нельзя вечером такие страшилки рассказывать.
518 2642431
>>33592
Так это вроде аналог virtual только компайл-тайм.
519 2642433
std::shared_ptr_besplatno
520 2642438
>>42350
Чёт я не догоняю, как это должно работать. Он же не может в компайл-тайме знать, какую функцию надо вызвать, а значит и длину массива он может узнать только в рантайме. Как это должно работать?
521 2642444
>>42438
схуяли не может, он во время компиляции не знает что компилирует? после составлении таблиц виртуальных методов, он не может обратиться к ней и разрешить свои вопросы? то что функция виртуальная не означает того, что компилятор не знает её определение, это значит только то, что он не знает её определения до определённого этапа сборки
522 2642447
>>42350
Ты создаешь массив векторов? Ты точно понимаешь, что ты пишешь? Возможно, вы имели в виду vector.push_back()?
523 2642452
>>42433
using std::shared_ptr_besplatno<T> = T⚹;
524 2642460
>>42433
>>42452
Вот вы шуткуете, а че бы не зделоть поинтеры такими же простыми в написании как создание на стеке?
525 2642485
>>41520

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


Как оказалось, не только. Можно создать окно, которое поддерживает юникод. И которое не поддерживает. Признак поддержки можно проверить с помощью IsWindowUnicode. Мое окно не поддерживало, а строка шла в юникоде в сообщении. И винда сама подставлял вопросы. От такая хуйня.
526 2642492
>>34524

>А так не получится



Континуум-гипотеза уровня /pr/
527 2642550
>>42485
Можно, но это не натив. Неюникодные приблуды это костыли поверх юникода винды, легаси-совсместимость с Win9x, 20+ летней давности.

>И винда сама подставлял вопросы.


Если юникодные символы не соответвуют кодировке локали установленной в винде, естественно будут вопросы, ибо это невалидные символы в анси.
Заебали со своей виндой и указатклями Анек 528 2642586
Читали бы книги лучше
529 2642619
>>42447
да, понимаю, нет, не имел
530 2642622
>>42381
чтобы не делать вектор векторов, когда количество векторов известно заранее - это количество элементов в перечислении конкретного наследника
531 2642638
>>42586
ты кто наху
532 2642689
>>42460
new, delete, куда уж проще. Сложности только отследить когда ты уже удалил, а когда еще нет, но это уже не проблемы шерифа.
533 2642738
>>42689

>Сложности только отследить когда ты уже удалил, а когда еще нет, но это уже не проблемы шерифа.


Чел… Именно для этого и сделаны смартпойнтеры.
Указатели Анек 534 2642752
>>42638
Поясняю. Вот есть плашка памяти на 4гб. Ядром она мэпится в 64разрядное виртуальное адресное пространства. Вот и получаем 64битные адреса. Так как значение любого конкретного типа на стеке занимает sizeof(T), void * вообще нельзя сложить с инетом, а указатель на defined тип при инкремента (на 1) увеличивает адрес на тот же sizeof (T)
Вот название типа или тайпдефа Анек 535 2642754
Который типа целое число, но по сайзъофу равен принтеру, оно существует, но я его не помню. Следовательно, это не нужно. В эмбеддеде принято писать ровно то, что ты имеешь ввиду, и инт легко может быть 4 байта, а поинтер 8, и за сомнительные касты руки оторвут
536 2642755
Ньюфаг в треде
537 2642758
>>42752
>>42754
не ну я рад конечно что ты все это знаешь но какой пост итт тебя побудил поделиться именно этой информацией?
Анек 538 2642760
А если вспоминать времена мсдоса, когда и 98го стандарта ещё не было, там были Инты и адреса по слову в два байта, даже с приходом 32битности бывала необходимость в указании сегмента памяти (cs, ds, es, fs), которые сейчас по сути просто лоадером выставляются как надо, а вот когда трава была совсем зелёная, было два типа принтеров на тип -- NEAR и FAR
Анек 539 2642761
>>42758
Я обнаружил, что дашчан у меня не забанен, а даже когда клаудфлёр меня пропускает, капчи тупо нет, и пасскод видимо заблокирован, в шизотреде поорал немного, и короче я может прошлый тред смотрел, но у меня сложилось впечатление, что в крестотреде любят Винду и указатели обсуждать, так что решил разогнать несанкционированный митинг
-5233354948404692946121.jpg116 Кб, 849x900
Анек 540 2642762
Кстати, на домене моего емейла поднят движок, вот кусок странички
Анек 541 2642764
))2642638
Оборудование Пермского Государственного университета
542 2642767
>>42444
Он не знает динамический тип объекта в компайл-тайме. Допустим у тебя в Base виртуальный constexpr метод GetParametersCount, в Derived он переопределён. Функция виртуальная, поэтому то, какая из функций вызывается, будет известно только в рантайме. Как компилятор вычислит длину массива во время компиляции? Я так понял, код по типу:

struct X {
virtual constexpr int foo() const {
return 5;
}};
constexpr X x;
static_assert(x.foo() > 3);

будет работать. Но схуяли это (по твоему примеру):

struct X {
virtual constexpr int foo() const {
return 5;
void bar() {
static_assert(foo() > 3);
}
}};

должно работать?
image251 Кб, 580x346
543 2642771
>>42215
А нахуя нужны НЕ опенсорс либы, ебло? Их нельзя портировать куда хочешь и модифицировать как хочешь. Хуйня без задач вообщем.
А внутре Анек 544 2642773
Там нейронка
545 2642776
>>42771
Конечно не нужны, ебло. Поэтому нужен Qt.
546 2642788
смысл поста?
547 2642789
>>42788
Смысл выебать твою мамашу.
Ницше Анек 548 2643031
Так и не научился рефакторить код по GoF
549 2643041
Мне нужно в Linux с помощью cmake скомпилировать файл. Что нужно делать? Может у кого справка есть?
1655151701350.png14 Кб, 863x230
550 2643088
>>43041
У cmake, конечно, есть справка.
551 2643092
>>42206
ныа
https: //www.qt.io/offline-installers
https: //github.com/qt/qtbase
он опенсурс
если ищешь что то кросплатформенное то можешь чекнуть lazarus это паскаль / делфи , его изи компилить с СИ/++ кодом , а если прям так важно СИ/++ то glfw / sdl2 + какойто api для создания гуи , ну или можешь сам на байтоебтить гуи , но я сомневаюсь что он будет не всратый
552 2643101
>>43092
Нах ему отвечать, он же троллит тупостью.
553 2643104
>>42206
Если обсуждать нестандартные варианты, то можно взять Годот 3. Он кроссплатформенный, на опенжл, не очень тяжеловесный, ~40 Мб (можно ужать если скомпилировать без 3д - некоторые используют для утилит, например визуализации деталей на станке), но в нем можно собрать неплохой гуй, есть свой скриптовый язык в духе питона, а поскольку сам движок написан на с++, то интеграция с с/с++ нормальная. Можно дергать с++ либы, дллки и так далее, а можно наоборот, из с++ кода вызывать API движка.
(4 версию брать не надо, она сырая и на вулкане, не везде работает)
554 2643152
>>43088
Спасибо. Уже сделал. Можешь возращаться под шконарь соевик.
555 2643534
>>42767
так компилятор для каждого конкретного наследника может вычислить virtual constexpr функции в компайл-тайме, затем для базового класса в его базовые функции подставлять вычисленные ранее виртуальные константные, и сделать несколько дубликатов базовых функций под все варианты вычисленных, а при вызове в рантайме смотреть на реальный тип объекта, и вызывать соответствующую ему базовую функцию. Для этого понадобиться, чтобы базовые функции, использующие внутри себя virtual constexpr функции также были virtual, но впринципе это возможно.
556 2643624
>>42341
надо дождаться с++23 чтоб полирнуть сверху еще deducing this и вообще охуеть заживо
557 2643720
>>43715 (Del)

>но... прочитайте пожалуйста


Иди на хуй.
558 2643721
>>43715 (Del)
Сделай доброе дело, дай спокойно котику отъехать в кошачий рай и возьми из кошачного приюта беспризорного котенка.
На корм хватает - хватит и на палиативные уколы.
559 2643743
>>43624
Только сегодня читал.
Жесть какая-то. Причем как оно работает так и не понял. Типо можно сгенерировать автоматически для всех cv-ref функции?
560 2643871
>>43743
Я так понял, можно те же cv-ref квалификаторы указать явно в параметре с this, либо написать шаблон функции, который сам будет определять cv-ref объекта:
template <typename T> void f(this T &&self)
561 2643874
>>43534
Окей, я понял, как это работает, но теперь я не понимаю, почему

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


Что мешает аналогично сделать дубликаты невиртуального метода?
562 2643924
>>43874
ну вроде как если метод невиртуальный, то у него однозначно задан указатель, однозначный указатель не вяжется с неявными дубликатами, которые сгенерит компилятор
563 2643925
>>43924

>указатель


*адрес
564 2644005
>>43924
А, понятно. Видимо эффект от этого ровно такой же, как если бы я вручную перегрузил эту виртуальную функцию в каждом наследнике с нужными поправками. Да, всё логично.
565 2644487
Derived(Derived&& rhs)
: Base(std::move(rhs)) // good, calls Base(Base&& rhs)
{
// Derived-specific stuff
}

А что, так можно чтоли?
rhs ведь в первую очередь перемещается, как тогда инициализировать Derived-часть, если rhs уже в измененном состоянии?
изображение.png76 Кб, 1920x915
566 2644507
Твари, походу нашли сотрудника
567 2644590
>>44487
Мне кажется, Base(Base &&rhs) затронет только ту часть rhs, которая относится к Base. Если только ты сам не выстрелишь себе в ногу. Так или иначе, то, как изменяется состояние перемещаемого объекта зависит от твоей реализации. В принципе, может и не поменяться. А если нужно обратиться к данным, которые ты уже переместил, то можно через this.
568 2644651
Кто вам кажется более перспективным - Carbon или CppFront?
569 2644674
>>44651
Сложно сказать. Какой распиарят. Cpp2 напрямую конвертится в с++, мне это по нраву, значит можно работать с кодом дальше, что там в карбоне не знаю.
570 2644676
571 2644683
>>44676
Ты хочешь сказать, что они такие же мертвые как D, или считаешь, что D восстанет?
image.png1 Кб, 124x95
572 2644693
>>44683
True.
.png40 Кб, 564x355
573 2644714
>>44693
В человеческих языках подразумевается другой гейт. Когда нужно логическое "или", пишут "и/или".

мимо душнила
image.png63 Кб, 687x686
574 2644742
>>44714
Не знаю, мне такая путаница с кодом не нравится. Я предпочитаю считать с нуля, использовать "или" как дизъюнкцию и быть буквальным.
Предлагаю не менять "или" и оставить его дизъюнкцией, а для "исключающего или" использовать "либо".
575 2644804
Сап, анончики. Может подскажете какие-нибудь годные книжки по QtQuick/QML?
пепыч.png511 Кб, 971x849
576 2644823
>>26726 (OP)
Меня заебали указатели.

На этом все.
577 2644832
>>44823
А зачем они тебе? Это же не Си.
578 2644863
>>44832

>зачем


Чтобы препод был доволен, очевидно же.
image.png462 Кб, 988x816
579 2644875
>>44823
Кодь на стеке.
580 2644969
Правильно ли я понимаю, что ifndef и ifdef нахуй не нужны, можно Pragma once шлепать и кайовать?
581 2644973
>>44969
Pragma once не стандарт. И хотя она работает, наверное, уже везде, это все же не абсолютно портируемый код, хотя и тривиально заменяемый.
Я бы, наверное, писал так:
#pragma once
#ifndef HEADER_GUARD...
#endif
Тогда те компиляторы, в которых реализована #pragma once, оптимизируют сборку и не будут подгружать файл лишний раз, но и любой кастомный компилятор, который точно соблюдает стандарт, сработает правильно, проигнорировав незнакомую прагму, но исполнив указание препроцессора. Конечно, он скорее всего будет работать чуть медленнее, по честному подключая и анализируя файл.
583 2644975
>>44973
Спасибо.
image.png50 Кб, 838x432
584 2645018
https://pastebin.com/3fg8Z9vJ
Что не так с вашим языком? Внимание на 18 строчку. Если вместо (tmp.size() - k <= 0) написать (tmp.size() <= k), то будут просто разные, сука, ответы. Оба неправильные, кстати, очевидно из-за этой же проблемы, потому что C++ считает, что 5 (длина "three") меньше либо равно чем -1 . Менял на length - без разницы. Чего это говно от меня хочет-то?
585 2645022
>>45018
И я там сознательно сначала строчку считываю, а потом M. Потому что там ещё одну свинью подложил мне этот язык замечательный, с которой мне лень разбираться на этапе самостоятельного тестирования программы.
586 2645023
>>45018
size() беззнакового типа, поэтому нельзя его сравнивать с отрицательным. Кастуй в знаковое целое.
587 2645024
>>45018
tmp.size() <= k так-то должно работать, если k >= 0. Значит ты где-то накосячил.
588 2645026
>>45018
че за упражнения такие?
589 2645028
>>45024
Так мне и не надо, чтобы она всегда положительной была.
>>45023
Ну понятно, сделал (инты) и действительно заработало, в общем.
590 2645038
А почему перед плюсами рекомендуют в Си вкатиться на энтри-левеле хотя бы?
591 2645040
>>45038
Долбоебы
592 2645046
>>45038
Кто рекомендует? Может имеют в виду что при вкатывании в плюсы ты узнаешь и си на энтри левеле? Тогда правильно. Иначе хуета какая-то получается. Знание Си тебе может дурную службу сослужить, особенно сейчас если вкатываться в кресты.
1558387594826.png87 Кб, 931x811
593 2645048
>>45018
Во-первых, ты ошибся тредом, на С++ не пишут как в Си.
Во-вторых, пользуйся инструментами, которые покажут тебе ошибки.
594 2645049
>>45038
Потому что в плюсах используется тоже что и в си
Желательно и ассемблер знать на базовом уровне
595 2645050
>>45038
Наоборот, Страуструп НЕ рекомендует. Потому что ты потом так и будешь строки по байтам перебирать кривыми циклами.
image.png85 Кб, 256x256
596 2645052
597 2645057
>>45048

>на С++ не пишут как в Си


На С++ пишут как позволяет С++, это мультипарадигменный язык, позволяет писать по разному, и естественно сишная парадигма имеется.
598 2645059
>>45057
А можно встать на стол и насрать на него, но в приличных местах так не принято, хотя возможность имеется.
599 2645061
>>45059

>возможность имеется.


Нет возможности, я слишком жирный и стол сломается под моим весом.
600 2645064
>>45061
Ты же программист, думай! Ты можешь сначала перевернуть стол вверх ножками.
601 2645142
>>45038
Потому что иначе потом будешь жаловаться, что не понимаешь указатели. Как минимум, чтобы понять, чем ссылки отличаются от указателей, нужно понимать, что такое указатель. А чтобы их понять, фактически придётся писать на Си.
602 2645166
>>45142
Типо знать, что это объект, который содержит адрес в памяти другого объекта - недостаточно?
603 2645226
>>45166
Ну по факту люди очень часто пишут, что не понимают указатели, это уже мем. Если начинать изучение плюсов с самих плюсов, очень легко запутаться. Потому что параллельно с указателями ты будешь учить ссылки, причём любые курсы по плюсам затрагивают эту тебе поверхностно, потому что это легаси и нинужна.
604 2645233
>>45049
двачую
еще формальную логику в общих чертах, и электронику немного, ну и квантмех хотя бы раздел про полупроводники и металлы
image.png576 Кб, 720x997
605 2645254
>>45226
В учебнике плюсов от Стивена Праты вполне подробно разжевываются указатели и ссылки, кроме него я учебников не читал, да и не нужно, т.к. есть cppreference, стековерфлоу и двач, инфы навалом чтобы узнать как положено.
606 2645263
>>45233
Защитил докторские по квантмеху и математике, можно приступать к плюсам, или рано еще?
607 2645291
>>45233

> еще формальную логику


Не, нахуй надо
608 2645334
>>45233
Только если это твои прикладные области

блять неужели в 2023 базовые знания ассемблера это что то удивительно
609 2645369
>>45233
Это, только неиронично.
>>45334
Более того, надо знать несколько ассемблеров, как минимум x86 и ARM, но неплохо бы и за новинками следить. RISC-V, Эльбрус. Ну и ретро для души, 6502 ван лав, для кого то это 68000.
610 2645406
>>45254
У него C++11 рассматривается отдельным небольшим приложением в самом конце книжки. Та же фигня и со стандартной библиотекой.
Всю книгу он по сути рассказывает про си с классами.
611 2645409
>>45406
Ну сейчас уже книга не актуальна наверное, я читал когда еще С++03 был.
612 2645457
>>45369

> базово

Безымянный.jpg17 Кб, 768x95
613 2645598
Как расшифровать эту хуйню? откуда здесь следует, что первым аргументом идет количество, а вторым значение?
614 2645608
>>45598
Никак, ты определение не того конструктора смотришь
615 2645613
>>45608
лол? нормально студия подсирает.
616 2645642
>>45598
Она как бы намекает тебе, не пользуйся этим дырявым апи...
Анек 617 2646096
ИДЕ подсказывает всегда криво.
Пользуйтесь простыми советскими текстовыми редакторами с подсветкой синтаксиса.
И cppreference.com
618 2646102
>>46096
ты долбоеб? IDE подсказывает ровно то, что в коде написано.
619 2646126
620 2646147
>>46126
Не кочайте посоны у меня брат запустил эту дрянья и до сих пор выйтить не может.
image.png721 Кб, 700x466
621 2646160
>>46126

> VIM


Рекомендую перфокарты еще попробовать
622 2646172
>>46096
EMACS + lsp + tree sitter
623 2646308
>>45613
она и не такое умеет
624 2646326
>>45613
В студии не работал, но в QtCreator стрелочками можно все определения конструкторов/функций посмотреть, мне кажется анон сам не то выбрал.
625 2646349
>>46326
В студии тоже, но нихуя, это именно студия мне открыла на варианте номер 5. Причем в шарпе я такой хуйни не встречал.
Безымянный.jpg6 Кб, 320x54
626 2646377
После шарпа конечно в шокиславе от подобного.
627 2646378
>>46377
А зачем
628 2646405
ПОКУПАЕШЬ ТАБУРЕТКУ
@
ПЕРЕВОРАЧИВАЕШЬ
@
САДИШЬСЯ
@
БОЛЬНО
@

> После сидения на полу конечно в шокиславе от подобного.

изображение.png87 Кб, 644x728
629 2646416
630 2646463
>>46416
Нунинада нунитраль
image.png259 Кб, 634x650
631 2646464
>>46377
Моар подобных шутеек.
632 2646526
>>46464
assert(2["pizda"] == 'z')
1656530675465.png6 Кб, 270x170
633 2646541
>>46464
Вот такое попадалось
image.png17 Кб, 492x340
634 2646554
635 2646561
>>46541
Ну это уже джаваскрипт какой-то пошел.

>>46554
А с этого взлольнул.
636 2646571
>>46561
>Ну это уже джаваскрипт какой-то пошел.


Ну, глядя на этот код, я бы все же ожидал 1,2->2,1.
Но я уверен, что есть ботан, который сможет пояснить, что tie сработал правильно, и по стандарту и должно быть 2,2.
1549457976695.png13 Кб, 249x442
637 2646578
638 2646594
>>46172
lsp тормозное говно. Переходи на eglot.
639 2646598
>>46541
А это не unspecified/undefined behavior, случайно?
640 2646619
>>46598
Не знаю. Как проверить?
В самих tie и tuple, вроде бы, не написано ничего про undef/unspec. Что еще может быть? Точка следования? Вроде не.
Какой тип у {b,a} я не могу понять. Это вроде не initializer list.
Если переписать через std::tuple то пишет нормально 2,1

Вот интересно я сейчас смотрю в годболт, он пишет что если через std::tie(a, b) = std::tuple{b, a};
std::tuple<int, int>::tuple<int&, int&, true>(int&, int&)
std::tuple<int&, int&> std::tie<int, int>(int&, int&)
std::enable_if<(__assignable<int, int>)(), std::tuple<int&, int&>&>::type std::tuple<int&, int&>::operator=<int, int>(std::tuple<int, int>&&)

А если в первом случае через std::tie(a, b) = {b, a}; то
std::tuple<int&, int&>::tuple<true, true>(int&, int&)
std::tuple<int&, int&> std::tie<int, int>(int&, int&)
std::tuple<int&, int&>::operator=(std::tuple<int&, int&>&&)

Что это значит tuple<true,true> чет не вкуриваю.
641 2646630
>>46554
Duffs device
Страшно вырубай
642 2646636
>>46619

> Не знаю. Как проверить?


Только курить документацию на миллион страниц(

> В самих tie и tuple, вроде бы, не написано ничего про undef/unspec.


Это не обязательно должно быть указано явно. Насколько я понимаю, порядок присваивания не уточняется, поэтому с тем же успехом могло получиться "1, 1".

> Какой тип у {b,a} я не могу понять. Это вроде не initializer list.


Скорее всего, того же типа, что и левый операнд, то есть std::tuple<int&, int&>

> Если переписать через std::tuple то пишет нормально 2,1


С неявными параметрами получится std::tuple<int, int>, это не то же самое.
643 2646672
Как говорится, явное лучше неявного. Другие языки такие >>46541 проблемы решают анальными ограничениями на стиль написания кода. Так что только выиграли! :)
644 2646673
>>46636
Я пробовал и std::tuple<int,int>, и std::tuple<int&, int&>, оба выводят нормально 1,2

> порядок присваивания не уточняется


ты имеешь в виду, что получается что-то вроде
⚹a = b
⚹b = a //но мы уже проебали значение, поэтому у нас тут уже a == b

Я еще попробовал с несколькими, но понятнее не стало.
645 2646677
>>46578
Нах так делать, в чем сакральный смысл? Я не понел.
646 2646679
>>46677
Если ты попал в case 1, то if(0) пропустит case 2.
647 2646681
>>46677
При этом в case 2 ты спокойно попадешь, if(0) тут не повлияет.
648 2646683
>>46679
А там не будет выход из скоупа котгда у тебя кейс 2?
649 2646698
>>46683
Ну выход из скоупа будет, но это ни на что не виляет. Ну типа ты не можешь обратиться к переменной, если бы ты объявил ее внутри скоупа.
Также нельзя обрщаться в необъявленной переменной. Но если state объявлена вне свитча, то все ок.
По сути это такой goto на метку.
1679321426517.jpg165 Кб, 1080x1224
650 2646701
>>46673

> Я пробовал и std::tuple<int,int>, и std::tuple<int&, int&>, оба выводят нормально 1,2


В смысле 2,1? То есть местами меняют? Лично у меня пикрил. Если у тебя не так же, то получается, что это как минимум implementation-defined.

> > порядок присваивания не уточняется


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


> ⚹a = b


> ⚹b = a //но мы уже проебали значение, поэтому у нас тут уже a == b


Да, а если точнее:
⚹(&a) = ⚹(&b); ⚹(&b) = ⚹(&a);
либо
⚹(&b) = ⚹(&a); ⚹(&a) = ⚹(&b);
651 2646703
>>46677

> Нах так делать, в чем сакральный смысл? Я не понел.


Как зачем? Узнать, насколько глубока кроличья нора :)
652 2646709
>>46701
Вот что я нарыл

template< class... UTypes >
tuple& operator=( const tuple<UTypes...>& other );

(3) For all i, assigns std::get<i>(other) to std::get<i>(*this).

Ну т.е. я так понимаю что с точки зрения стандарта поведение полностью defined, просто ты как бы написал цикл где перезаписал значение предыдущим.
653 2646713
>>46677
>>46703
Чтобы не писать дублирующийся код для разных case.
Иначе было бы
case 1:
state = 'a'
do_abc(state)
break;
case 2:
state = 'b'
do_abc(state)
break;
case 3:
state = 'c'
do_abc(state)
break;
654 2646714
>>46709
Да, охуенно. И в каком порядке оно assigns? От порядка и зависит, будет "1, 1" или "2, 2" в пресловутом примере.
655 2646719
>>46714
В порядке переменных в левом аргументе, судя по всему.
С тестом отсюда сходится >>46673
a = (e==5) = 5
b = (f==6) = 6
c = (c==3) = 3
d = (d==4) = 4
e = (a, теперь 5
f = (b, теперь 6
656 2646720
>>46713
Чёт с if-ами только хуже стало, по-моему, уж лучше бы дублировал. Хотя, с большим объёмом кода может быть и по-другому. А так-то оба варианта говно, есть способы написать то же самое получше.
657 2646721
>>46719

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


Не следует из документации.

> С тестом отсюда сходится >>46673


Тесты не гарантируют, что это well-defined. Даже если вообще все компиляторы выдают одинаковый результат. Язык это стандарт, а не компиляторы.
658 2646723
>>46721
Согласен, но другого ответа я все равно не нашел.
659 2646729
>>46698
Почему 2 пикча не работает а 3 работает? Я в глаза ебусь, видимо, но разницы не вижу.
660 2646731
>>46721
Может быть есть какое-то правило, которое говорит, что если речь идет об "for all i", то это перебор от 0 до max.
661 2646733
>>46729
Объявление внутри switch или до него.
662 2646735
>>46733
Внатуре, тоже чуть мозг себе не сломал
image.png84 Кб, 736x204
663 2646743
664 2646745
>>46743
Чел, ты понимаешь что такое упрощенный пример? Например, там будет 'a', 'b', d', и 1, 13, 17.
665 2646748
>>46745
Не говоря о том, что там в реальности будут какие нибудь TCPPacket, UDPPacket, и т.д.
image.png167 Кб, 1784x264
666 2646750
667 2646751
>>46745
>>46748
Тогда тем более нельзя такой балаган городить, читабельность даже в упрощённом примере в пизду ушла.
Стикер512x512
668 2646843
>>46751
На С++ пишут как позволяет С++, это мультипарадигменный язык, позволяет писать по разному, и естественно сишная парадигма имеется.
669 2646971
1. Что нужно знать/уметь чтобы вкатиться на джуна?
2. Можно ли вкатиться джуном на удалёнку?
3. На какую ЗП можно рассчитывать? А если искать работу на запад?
4. Имею 3+ года опыта работы на жс и почти 400 решённых задачек на литкоде (все на плюсах). Это же хоть немного баллов мне добавляет?
670 2646980
>>46971
Из жс сразу в плюсы?
Решил прям кардинально изменить путь?
671 2646984
>>46971
ты лучше 90% червей в этом треде, успокойся, зарабатывай свои 3к$ на чиле правя скриптики js
672 2646985
>>46980
Да не, плюсы я ещё с универа полюбил, а до этого ещё в школе сишку трогал. Так сложилось просто, что в веб проще вкатиться было. Но на плюсы никогда не забивал особо, то Мейерса почитал, то про многопоток, то про шаблоны, то Qt c пингвином трогал. И сейчас как раз с проекта попёрли и кажется что пришло время что-то менять.
673 2646986
>>46984
Надоели уже эти жсоны. Хочется чем-то более серьёзным и надеюсь что интересным заниматься.
674 2646987
>>46971
Не стоит, JS будет прибыльнее и работы больше. На крестах удаленки впринципе практически нет.
675 2646988
>>46986
Просто пили опен сорс пет проектик.
676 2646989
>>46971

>Что нужно знать/уметь чтобы вкатиться на джуна


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

>На какую ЗП можно рассчитывать? А если искать работу на запад


Сильно зависит от фирмы. В дс думаю 70-150к

>Имею 3+ года опыта работы на жс и почти 400 решённых задачек на литкоде (все на плюсах). Это же хоть немного баллов мне добавляет?


Бля как можно в 3 годами идти на джуна. У меня всего 2 года опыта, я себе еще 2 в резюме накинул и пошел отсобесился на сеньора. До сеньора не дотянул но выбил что-то среднее между мидлом и сеньором, при том что сам я тупень пиздец. Сейчас зп ~280к
677 2646997
>>46987
Зато в крестах душа есть
>>46988
Их есть у меня. Даже 2.
>>46989

>Бля как можно в 3 годами идти на джуна


Хз, плюсы всё таки посложнее жса будут.
678 2646998
>>46989

>Бля как можно в 3 годами идти на джуна. У меня всего 2 года опыта, я себе еще 2 в резюме накинул и пошел отсобесился на сеньора. До сеньора не дотянул но выбил что-то среднее между мидлом и сеньором, при том что сам я тупень пиздец. Сейчас зп ~280к


А потом удивляемся говнокоду и спагетти, когда такие сеньорят.
679 2647003
>>46997

>посложнее


Ладно, попробуй отсобеситься. В РФ вакансий на плюсы достаточно, можешь просто парочку самых неинтересных отобрать и сходить туда. Я тут репортил свои приключения с собеседований, вопросы на джуна, мидла и сеньора отличаются слишком незначительно. Честно у меня скорее складывается ощущение что по этой специализации есть недостаток кадров, поэтому требования снизились
>>46998
Бля да кому не похуй, я через год пойду еще пособеседуюсь. Главное что продукт я делаю, доставляю в сроки, и с командой общаюсь хорошо, а на всякие там метрики кода мне похуй по большей части, за это не платят
680 2647005
>>47003

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


Кинь линку что ли, почитаю для общего развития.
>>46971
На первый вопрос мне пока никто дельного ответа не дал/
681 2647008
>>47005

>Кинь линку что ли, почитаю для общего развития.


>>2577701 →
682 2647067
>>45038
да хотя бы потому что в коммерческой разработке с++ не используется, все пишут на приплюснутой сишке, то есть делают вид что у них типа с++, особо наглые заявляют шо у них 14 17 20 стандарт (подставь нужное), а на самом деле в кишках все таже дрисня из циклов и ифов прямиком из 60х в стиле алгола (не алгола 68, а первой версии)
открой исходный код любого компилятора с++ и убедись что никаким с++ там и не пахнет
683 2647087
>>47067
Зачем заглядывать в код компилятора, который начат писаться давно, когда можно заглянуть в любую современную либу которая на 14/17/20? Естественно никто не бросатся сразу переписывать вообще все.
684 2647088
>>47067
ПИШЕШЬ КОМПИЛЯТОР С++
@
НА САМЫХ КАНОНИЧНЫХ С++
@
ВСЕ ЧЕРЕЗ ШАБЛОНЫ, МЕТАПРОГРАММИРОВАНИЕ И КОНСТЭКСПР
@
ВО ВРЕМЯ КОМПИЛЯЦИИ ИНСТАНЦИРУЕТСЯ ДАЖЕ НЕБО, ДАЖЕ АЛЛАХ
@
В ИСХОДНИКАХ ЗАРОДИЛСЯ СИЛЬНЫЙ ИИ
685 2647135
https://gist.github.com/Intey/789e9954e4220a2957d823e7c6e1992c
Чё то будто на сениора, или это я свабый?
686 2647136
>>47135

>знает что такое интерфейс void myfunc() = 0;


Мы вам перезвоним.
687 2647139
>>47135
На сениора. Но времена сейчас такие, сам понимаешь. Зарплата джуновская надеюсь?
688 2647155
>>47139
Я хочу мидлом пойти куда нить. Зп да, у меня уже 3года джуновская=(
689 2647232
>>47155

>Зп да, у меня уже 3года джуновская


И щас окажется что "джуновская зарплата" это 250 тысяч, а я как лошара мидлом с десятилетним стажем зарабатываю втрое меньше почему-то.
690 2647240
>>47232
я не верю, что человек с 10летним стажем в ОЙТИ может зарабатывать 83к рублей.

Когда у меня было 10 лет (2 года назад) - я под 700-800к в месяц на руки получал.
691 2647241
>>47240
Откуда? Как? Я таких зарплат даже близко в вакансиях не видел, ты я не верю твоим словам.
Мне больше не предлагают, вот за такое и работаю. Есть кодеры получше, получают побольше. Знакомый йоба-кодер сеньор получает 250, в это я верю, но и то это звучит как уже с напрягом.
Почти миллион ничья работа не может стоит, это звучит как пиздёж.
692 2647242
>>47240
Нвидия кун?
693 2647255
>>47232
62к чел
694 2647256
>>47255
Ну это реально. Да, ты можешь на побольше претендовать.
695 2647292
>>47087

>когда можно заглянуть в любую современную либу которая на 14/17/20


Так там то же самое. В лучше случае, одна фича уровна auto. Про шаблоны вообще молчу.
696 2647294
>>47135

>- понимает ООП, использует принципы SOLID (обязательно), KISS, YAGNI


На позера-смузихлёба.
697 2647298
Пусть есть джва класса

template<size_t _N>
class ZalupaBase
{
public:
using int_type = uint32_t;

private:
int_type _array[_N];
};

И я хочу, не меняя ZalupaBase, сделать так, чтобы в child-классе(ZalupaFinal) можно было изменить int_type, который используется в ZalupaBase...

template<size_t _N>
class ZalupaFinal : ZalupaBase<_N>
{
public:
using ZalupaBase<_N> = uint64_t;
};

И это не работает
698 2647299
>>47298

>using ZalupaBase<_N> = uint64_t;


using ZalupaBase<_N>::int_type = uint64_t;

я имел ввиду это. Т.е. поменять int_type base class-a
699 2647304
>>47298
Как ты его хочешь менять, если он у тебя в шаблоне гвоздями прибит? мимо шарпист, который не ебет в шаблоны.
700 2647310
>>47304
Блять, да причем тут шаблоны?
Если убрать шаблон ничего не поменяется, я все еще не могу поменять вот этот int_type для baseclass-a.
701 2647311
>>47298
>>47299
Тебе надо писать typename N и подставлять потом в <> нужный тип
702 2647320
Как настроить QtCreator с системой сборки qbs для сборки проектов под arm32, используя arm-none-eabi-gcc, gdb и т.п.?
703 2647326
>>47310

>Блять, да причем тут шаблоны?



template<size_t _N>
ZalupaBase<_N>

если тупой, так хоть не хами.
704 2647330
>>47298

>как изменить тип не меняя тип


ну ты уже определись
если я правильно понял че ты делаешь то int_type надо занести в шаблон
705 2647331
>>47326
ХОРОШО, смотри...
Я уберу шаблоны, ок?

теперь _N будет внутри ZalupaBase определено как const size_t _N = 32;

Охуеть, да? Но я все еще не могу менять int_type как я хочу для baseclass-a

>>47330
Чел, проблема в том что я от STL кода наследуемый класс пишу.
706 2647332
>>47331
тип в принципе нельзя менять
можно только создать новый. руками или инстанциацией шаблона
707 2647333
алсо если у этого stl класса не виртуальный деструктор тебе пизда в любом случае
708 2647335
>>47331

>Я уберу шаблоны, ок?


причина тряски в чем заключается?
709 2647353
>>47332
Ну пиздос.
710 2647392
>>47353
То есть ты говоришь то, что в статически типизируемом языке нельзя поменять тип переменной после её определения это пиздос?
Ну пиздос.
711 2647591
>>42206

>Как уже выше писал, лучше SDL нет ничего.


До того, как выкатят SFML под другие платформы.
712 2647616
Сап. Тяжело будет вкатиться в кресты с 5 летним сеньорским комм. опытом микросервисных ковыряний в кафке и перекладывания жсонов на ноде и гохе? Делать все то как написано в шапке или что то можно скипать?

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

Хочу как минимум освоить для себя, в идеале - сменить стек и компанию и делать чот на плюсах. Подводные?
713 2647737
>>47616

>Подводные?


Отсутствуют. Сам перекатился из макакинга в CV-шника в обсерваторию в Гейропку. 0 сожалений.
714 2647752
Это какой то троллинг в треде или зачем люди с несколькими годами опыта в Вобще несмежную сферу переходят на джунов?
Или чат гпт стал рынок так шатать
715 2647763
>>47616

>тяжело ли


Если для себя, то уровень тяжести ты сам себе подбираешь.

>сразу с Майерса


Не, никак. Это не учебники по языку, это советы для практикующих и хохмы для теоретизирующих. Толк от Майерса будет, если у тебя под рукой есть свой проект, где ты мог бы его советы сразу применять на натуре. А просто так Майерса читать - это..., ну это типа за все хорошее и против всего плохого.
Но можешь сам попробовать, благо книжки у него небольшие по объему.

>Подводные


Работа у тебя программирование и хобби тоже программирование будет.
716 2647768
>>47752

>Это какой то троллинг


Тех писак, которые спустя n лет сформировались как полноценные программисты, а не как вротендеры-самозванцы тянет к истокам. Не вижу ничего плохого.
717 2647773
>>47737
Как смотрят на то, что на крестах нет коммерческого опыта, когда стек меняешь, какие есть пути? Вроде писали, что условный ЯНДЕХ берет условных джавистов/etc, лишь бы шарил в алгосах и компутер сайенс, а с плюсами на месте разбираешься.

Вижу такое:
1) Устроиться в парашу ради коммерческого попыта крестов, чтоб потом съебать в топы.
2) Устроиться в топ на свой стек и внутри мувнуться на кресты
3) Устроиться в топ на кресты с понижением(на джуна, лал)
4) Без задней мысли найти компанию которая готова взять на сеньора с учетом что ты готов запотеть и быстро вкатиться в нью стек.

>>47763
То есть без анального Шилдта/Праты никак.. пойду штаны подтягивать и доставать с полки, хуле.
718 2647777
>>47773
5) Освоить базовые и менйстримные вещи, написать 0-2 пета, вылизать их, нарисовать 1.5 года опыта и вкатываться на мидла.
719 2647837
>>47777
Да какие блять два пета... Я и один придумать не могу.
720 2647902
>>47837
Не тупи, сделай змейку или сапёра
721 2647922
>>46989

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


Ну напиши список того, насколько мало нужно знать. Чтоб перед собесом хоть немного морально готовым быть.
722 2647929
>>47902
Мне на мидла пет(
723 2647936
>>47616
чел, у тебя интересный, относительно востребованный стек, не стоит его менять на подыхающие кресты, не губи себе карьеру и жизнь
724 2647939
>>47752
ну знаешь как в джунглях есть цветок который воняет гнилым мясом и батиными носками, но для мух это самый сладкий аромат на свете, они летят туда, прилипают к цветку, а потом он их сжирает
так и с++ (в виде последних стандартов) сегодня стал такой привлекательной эзотерической альтернативой хаскелю и служит для сжигания мозгов слишком любопытных программистишков
с++ - не более чем средство уничтожения, прореживаня слишком умненьких в популяции
725 2647940
>>47773
яндекс вообще никого со стороны не берет, нахуй это ему не надо, у него несколько прикормленных кафедр в москве и одна в сибири, там блядь выбирают из специально выращенных зомбей, которых натаскивают щас чуть ли не с начальной школы, лол
726 2647969
Я правильно понимаю, что мы после модулей продолжим писать include в стандартной библиотеке?
727 2647983
>>47940
Прохладно.
728 2647988
>>47969
Стандартная библиотека модулями в С++23 вроде должна быть принята, в студии какая-то тестовая имплементация была еще год назад, но тогда модули вообще не работали

>>47242
Да не только. У меня кореш в озоне был с 500-600 (в зависимости от бонуса). в Яндексе был чувак 500-550 (с бонусом так же), в Хуавей хайрили знакомого на 600 гросс + 2 зп в год бонусом (а то и 4, если заебись работаешь)
image.png508 Кб, 768x512
729 2648025
>>47988
Я эти маняцифры только на дваче видел, ИРЛ никто о таких зарплатах не говорил.
730 2648026
>>47988
Озон плюсы использует?
Какие то внутренние приколы чтоли?
731 2648056
>>48026
Нет, он ГОвноед был. Я к тому - что такие зарплаты были в Москве не только в NV далеко.

>>48025
Бля чел, если ты этого не видел - это не значит, что этого нет.
732 2648100
>>48056

>Бля чел, если ты этого не видел - это не значит, что этого нет.


Значит. У меня хороший круг знакомых в отрасли и я ему доверяю больше чем словам двачеров.
733 2648102
>>48100
Ну, у тебя круг бездарей каких-то.
734 2648104
>>48102
Точно нет, шансы крайне малы что с таким разбросом и опытом они все умудрились оказаться на днище. А вот шансы того что на дваче пиздоболы пиздят - крайне велик.
735 2648109
>>48104
Ну днище - это сколько? если это ты тот чел, который писал про "втрое меньше 250к" - то нет, ты не просто на днище, ты на днище ебаном, как и весь твой круг вообще.
736 2648119
>>48109

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


вс.

>двощер заливает про баснословные деньги которые они никак не могли бы приносить и ни одна компания не стала бы разбазаривать; с целью потроллить окружающих невероятными "успехами"


Гм, действительно, кому бы поверить. Да, пожалуй поверю тебе, Аноним, ведь зачем тебе врать, верно? А мои наблюдения и опыт это хуйня, я просто дебил как и вообще все с кем я общался, вот так мне лично повезло.
737 2648126
>>47988
Может у них в обязанностях был массаж гендиру.
738 2648129
>>48119

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


Пчел, если ты и твои кореша работают в каком-нибудь ООО ГОВНОСОФТ в Ростове-на-Дону - то да, там 120к у всех твоих друзей, и даже 200к кажется чем-то недосягаемым.

Из моего круга общения - минимум который я знаю, это у друга 160к в питере, который выпустился пару лет назад из вузика, и 2 раза сменил работу. Следующее снизу - это 5500 баксов на удаленке.

Переедь в ДС, попробуй устроиться в сбербанк\прости-господи-яндекс (который вместо акций теперь кэшем платит) - посмотришь на ЗП
739 2648136
>>48129
Интересно, чего ты своей пиздоболией пытаешься добиться? Чтобы я имел завышенные требования и не находил работу или что? Я знаю сколько платят на самом деле и оцениваю все адекватно, ты мне не создашь манямирок чтобы я попал впросак. Ты так ньюфагов отсеиваешь что ли?
Вот серьезно, забей на минутку на свой троллинг и поясни мотивацию этого пиздежа, искренне любопытно.
740 2648139
>>48136
Т.е. ты даже теоретически не можешь представить, что это не пиздеж, да?
741 2648147
>>48139
Могу. Вероятность этого настолько мала, что я не вижу смысла развлекать эту идею.
То есть ты так и будешь продолжать свою шараду? Ладно, может кто-то другой ответит.
742 2648152
>>48147
Скажи для интереса, какой бы пруф ты принял?

Так, чтобы не было воплей про фотошоп, афтереффекс, давинчи резолв и прочее.
743 2648156
>>48152
Пруф чего? Что какой-то кум кабанчика умудряется квадриллион в наносек за нихуя получать? Я знаю что такое бывает.
Пруфануть что в индустрии такие зарплаты норма ты не сможешь, потому что это объективно не так, так что прекращай танцевать вокруг да около и скажи какой смысл тебе пытаться продолжать мне вешать лапшу на уши?
744 2648158
>>48156

>Пруф чего?


Что доход в 500к+ в месяц в Москве хорошим программистом - реален. А 200+ - это впринципе уже давно мидловская зарплата.

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


В моих словах нет ни слова лжи.
745 2648166
>>48158
Меня во всей этой истории занимает только один вопрос. Какой может быть причина того, что, со своих слов, 100000к наносек, тратит свое время, чтобы доказать долбичу с двача, что бывают какие-то зарплаты.

причем дебич с двача, очевидно, никогда не признает свое поражение.

Мимо другой анон.
746 2648169
>>48158
Как скажешь.
747 2648170
>>48166
Мне правда нехуй делать. Какая еще может быть причина?
748 2648174
>>48166
Не я тут дебич, а тот который нереальные зарплаты выдает как что-то реальное. Потом вон ворота сдвинул, теперь 200к это норма стала, а не 800к.
Пиздит зачем-то, а потом юлит когда на лжи поймали. Я не дебич, я как раз умный потому что раскусил лжеца.
749 2648176
>>48174

>. Потом вон ворота сдвинул, теперь 200к это норма стала, а не 800к.



Вот это внимательно прочитай. Я нигде ничего не сдвигал, просто еще один референс поинт привел.

> Что доход в 500к+ в месяц в Москве хорошим программистом - реален. А 200+ - это впринципе уже давно мидловская зарплата.

750 2648183
>>48170
Справедливо.
751 2648189
>>48158
Мы в с++ треде, а не просто абстрактным "программистом"
752 2648193
>>48189
Во всем крупняке - зарплата зависит от бизнес юнита (не всегда), от грейда (всегда), от jobtitle (всегда) и от локации (всегда).

От языка она не зависит. Если ты L5 программист в гугл калифорния - то твоя зарплата будет +- такая же как у остальных L5 программист ов в гугл калифорния, будь ты крестовиком, жаваскриптером, питонистом или хаскеллистом.

Теперь замени L5 гугл калифорния на G17 Яндекс Москва - получишь тоже самое. Юнит\проект тоже иногда решает, но не везде далеко.

Про мелочевку смысла нет говорить, не думаю, что тут кто-то мечтает всю жизнь работать на заводе пилить SCADA на MFC.
753 2648202
>>48193

>работать на заводе пилить SCADA на MFC


Что-то на самом деле полезное в отличие от смузихлебского аппа на гейфон.
image.png14 Кб, 364x348
754 2648284
А можно сделать шаблон так, чтобы он был и для float и для double?

А то сейчас это тупо копипаст, когда приходится писать одно и тоже для двух классов. То есть мне надо писать один и тот же код два раза - для float и для double. Но ведь логика там идентична

Хочется сделать шаблон так чтобы для вещественных была своя спецификация, для целых своя (для произвольных своя).

То есть хочу написать как-то так:
template<> class Foo<2, float or double>{};

И чтобы этот шаблон использовался для обоиъх

Без макросов. С++20
755 2648292
>>48284
template<class T> requires is_same_v<T, float> || is_same_v<T, double>
class F {};
756 2648293
>>48292
точнее require is_floating_point_v<T>
757 2648331
>>48025
На хх видел вакансию на кресто-архитектора от 2гиса. То ли 600 то ли 800 было.
758 2648341
>>48331
Как стать архитектором?
759 2648342
>>48331

> То ли 600 то ли 800 было


куда можно тратить столько денег?
760 2648343
>>48342
Я тоже что-то не представляю. Купил бы йоба-пеку чтобы не играть на ней, а остальное хз куда. Портфель акций, наверное, золота, налички, и капчевать двачи спустя лет пять на пенсии без всяких нужд.
761 2648345
>>48343
Я хз... это полтора-два года поработаешь, и потом можно 30 лет нихуя не делать, при этом имея 40к расходов в месяц (большинству рагсиян такое или не светит, или надо въебывать на трех работах).

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

А обычный кодо-работяга...
Даже в 500к не верю....
У меня начальник отвечающий за электроэнергию города получает в среднем 150к. Плюс у него премия один раз в год в один лям - это по сумме в три раза меньше этого архитектора
762 2648357
>>48342
>>48343
Семью заведите и узнаете
763 2648371
>>48357
Как это делается? Заебали нормисы со своими "заведи девушку", я что, блядь, не завел бы если бы знал как это делается?
764 2648384
>>48371
Шизойд, ну и не заводи если не хочешь\не умеешь
Тогда и зпшка тебе такая не нужна
765 2648420
>>48384
С хуя ли я шизоид? Писать научись, быдло.
766 2648446
>>48357

>Семью заведите и узнаете


Ну как-то вся страна живет за 40к на семью...

Тем более у архитектора за 800к явно не тот склад ума чтобы бегать по клубам за современными пездами.

В моем понимании профи программирования в принципе не может владеть социальными навыками быдла - просто потому что либо шляешься по клубам и ебешь тянок, либо сутками дрочишь математику и паттерны. В сутках всего 24 часа
767 2648455
особенно архитектора с++ - про этих даже мемы есть.

тут один только стандарт 20 лет учить чтобы не ловить все UB
768 2648456
>>48446

>В моем понимании профи программирования в принципе не может владеть социальными навыками быдла


Еще один шизойд
769 2648466
>>48446
Архитектору и не надо за пиздами бегать, все в округе с помощью слухов и так знают, что он заряжен, и всячески пытаются на него вешаться.

>В моем понимании профи программирования в принципе не может владеть социальными навыками быдла


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

>>48456
Писать научись, быдло.
изображение.png2,7 Мб, 1495x861
770 2648477
>>48456
с++ - это не тот язык в который можно вкатится за десять минут в день
Если глянуть вон фотку коммитета стандартизации - то там дофига челов в грязных свитерах (ну да, там и кабанчики мелькают - но так в коммитет и менеджеры ходят)

>>48466

> все в округе с помощью слухов и так знают


Да все это фигня и миф. Современные пезды немножко тупы и скорее повешаются на очередного самса-безработника (зато с ним весело)

>>48466

>Не факт, у меня знакомый такой, голова на плечах толковая, быстро соображает


дело не в том - быстро или не быстро

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

Плюс если нужен архитектор С++ - то там скорее всего идет дрочь на оптимизации (а значит стандарт либы под запретом)
771 2648502

> ноулайфаер + инцел


> студент


> чсв


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



бинго?
image.png245 Кб, 500x375
772 2648505
>>48477

>Да все это фигня и миф. Современные пезды немножко тупы и скорее повешаются на очередного самса-безработника (зато с ним весело)


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

>>Не факт, у меня знакомый такой, голова на плечах толковая, быстро соображает


>дело не в том - быстро или не быстро


Не то слово выбрал.

>Ты аллокатор свой писал? Свои строки? Это все не пять минут вникания.


Я нет. Он - да. Парсер хмля для каштомного гуя заебенил там где я потом работал.

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


Я обычно базовый string для задачек использую, wstring для обычных виндовых прожектов и какой там стринг на текущем проекте принято использую на текущем проекте. Только один раз на проекте с нуля был, там обжективный стринг был уже, т.к. не мультиплатформа.

>Плюс если нужен архитектор С++ - то там скорее всего идет дрочь на оптимизации (а значит стандарт либы под запретом)


Дроч без мягкого знака.
Да, в таких местах своя "стандартная" либа без исключений.
773 2648508
Сап аноны, нужна помощь.
Есть функция

BOOL SetWindowText(

HWND hWnd, // дескриптор окна или элемента управления
LPCTSTR lpString // адрес строчки

);

Я не понимаю, откуда отосрать 2-й аргумент? Да, я пытался гуглить LPCTSTR и всякие всратные LPWSTR и тд. Нихуя непонятно, а главное что с этим делать и как мне блять передать какую-нибудь строчку в функцию? Что бы я не передавал, выдает ошибку cannot convert ... Памагите.
image.png24 Кб, 652x52
774 2648514
>>48508
Кастуй широкую строку, самое простое.
775 2648516
>>48508

>LPCTSTR


LP - long pointer
C - const
T - for a wide character or char
STR - string
https://stackoverflow.com/questions/321413/lpcstr-lpctstr-and-lptstr
Указатель на строку вобщем

А вобще просто посмотри на что этот тип затайп дефайнен и что реально под ним лежит

>Я не понимаю, откуда отосрать 2-й аргумент?


Type: LPCTSTR
The new title or control text.
https://learn.microsoft.com/ru-ru/windows/win32/api/winuser/nf-winuser-setwindowtexta

>как мне блять передать какую-нибудь строчку в функцию


https://stackoverflow.com/questions/6541068/need-help-passing-some-lpctstrs-to-a-function-in-c

ну вобщем учись гуглить, или chatGPT пользоваться
776 2648529
>>48156
Ну ты реально че то не то делаешь. Даже ебучий яндекс, куда проще всего попасть очень быстро при хорошей работе дает 200к. Мрему другу 200 дали сразу после стажки, хотя до этого он не работал нигде
777 2648536
>>48446

>В моем понимании профи программирования в принципе не может владеть социальными навыками быдла


Всё так. В 2023 нужны только навыки общения с чатгпт + доставщиками еды и мастерами, блять, чистоты. Одна проблема - из-за константной депрессухи тяжко работу искать.
778 2648539
какие 200к у нас в треде чел системы ЧПУ за 30ку пилит
image.png312 Кб, 690x645
779 2648544
>>48529

>яндекс, куда проще всего попасть


А что не гугл или эппл сразу?
780 2648550
>>48544
Бля, дегенераты. Помню в прошлом году решал с аноном по приколу контест в яндекс. Решали мы отдельно, но потом обсуждали. Не помню сколько он решил, но он спросил со мной и говорил, что я не мог решить 4 задачи за 3 часа. Прям доказывал мне, что я не мог
781 2648554
>>48550
Если ты про тот простенький контест где три изичные и две медиум задачки (по уровням литкода), то твой анон ОСНЕ СЛАБЫЙ.
Но если яндексу нужны такие кодомакаки на плюсах которые тупо медиум алгоритмические задачки решают, то с хуя ли им платить 200 кусков? Деньги девать некуда? Такие и за сотку удавятся. Головой-то подумай.
782 2648556
>>48554
Ты где работаешь? Если для тебя 200 невообразимая цифра, то попробуй в яндекс попасть, сам все увидишь
783 2648557
>>48556
Не говорю, что тебе сразу будут платить. Может тебя попрут через месяц, но с людьми зато пообщаешься
image.png20 Кб, 150x150
784 2648564
>>48556

>попробуй в яндекс попасть


Так они и возьмут такого имбецила как я.
785 2648656
>>48514
А что такое L?
786 2648740
>>48342
На такие деньги даже квартиру в центре не купишь.
787 2648750
>>48342
прикинь, деньги не обязательно тратить.
788 2648766
>>48750
Поймал анальника!
1570617268950.png2 Кб, 113x119
789 2648767
Как это может быть? Баг в либах винды?
790 2648768
>>48767
Сортировки нет, порядок захардкоден, разраб ошибся при добавлении.
792 2648812
>>48810
Толстовато.
sGIJ4TwtqzA.jpg68 Кб, 826x472
793 2648814
На что ссылается vv?
Сначала подумал, что время жизни анонимного Х продлилось - нихера. До вывода. Или продлилось время жизни ТОЛЬКО ff?
794 2648826
>>48564
Пробовал их Фаст трек, решил одну полностью, в другой обосрался. Две даже не трогал, какой то тихий ужас.
Никакие там не мид литкода.
795 2648834
>>48814
Разобрался. Висит она. Но почему такая конструкция(получение & от &&) вообще возможна?
image.png49 Кб, 766x274
796 2648885
>>48656
Префикс для строки. Означает что это строка не из обычных чаров на 8 бит, а из wchar_t, и запихивается в широкую строку.
797 2648887
>>48826
Можешь показать здесь, любопытно стало?
798 2648897
>>48887
Показать не могу, не сохранил.
Решил я самую простую: стек с запоминанием максимального числа в стеке.
Вторая: есть две компании с радиовышками. Радиовышка имеет параметры [x,y] и радиус R общий для всех вышек. Есть город Q с центром [0,0].
Надо определить победителя по критериям близости к центру и допом вывести сколько вышек ближе чем у противника.
Чтоб идти в зачет, вышка должна покрывать хотя бы одну целочисленную координату города.
Я очень обосрался с алгоритмом нахождения этих координат.
Но это ладно. Я думал что будет как на литкоде:
Есть класс, внутри него описываешь решение. Ни Ху я. Твоя прога будет вызываться и в stdin кидаться аргументы. Я 1/2 времени потратил тупо на парсинг этих ебучих аргументов, потому что cin трогал последний раз на первом курсе вуза.
Но возможно это просто я тупой и Яндекс мне не светит.
799 2648936
>>48897

>самую простую


Ну это ладно.

>Вторая: есть две компании с радиовышками. Радиовышка имеет параметры [x,y] и радиус R общий для всех вышек. Есть город Q с центром [0,0].


Чем-то напомнило https://leetcode.com/problems/detonate-the-maximum-bombs/ - оно? Я тут жиденько обосрался когда решал, надо перерешать.

>Но это ладно. Я думал что будет как на литкоде:


>Есть класс, внутри него описываешь решение. Ни Ху я. Твоя прога будет вызываться и в stdin кидаться аргументы. Я 1/2 времени потратил тупо на парсинг этих ебучих аргументов, потому что cin трогал последний раз на первом курсе вуза.


Ну это какбе ничего не говорит ни о тебе, ни о задачах.
Правда, стдин это очень просто, этот фастрек это что вообще, раз ты загуглить цин не мог?
800 2648949
>>48936
Да, задача явно похожа, пойду прорешаю.
Я просто на этот парсинг убил много времени. Разобраться то с ним смог, никаких запретов на юз Гугла не было.
801 2648959
>>48539
в КФЦ и макдаке в мухосрани столько платят. И бесплатные обеды, и карьерный рост до тренера.
802 2648973
>>48959
Так это потеть на кухне надо.
803 2648983
>>48936
Эта вроде сильно легче, здесь же просто чек на пересечение окружностей.
804 2649103
Какую фичу вы больше всего хотите в плюсах?
Может какую то из уже разрабатываемых очень ждете?
805 2649112
конпеляторщики модули третий год из ся выдавить не могут
какие нах еще новые фичи
806 2649114
>>49103

>Какую фичу вы больше всего хотите в плюсах?


Рефлексию.
807 2649119
>>49103
Сокеты в стандартной либе.
808 2649145
>>49103
Рефлексию, единый формат описания 3рдпати пакетов, Смерть CMAKE, Вижуал студию полностью кроссплатформенную, хотя-бы компилятор
809 2649151
Как же хочется вижуалстудию в стандарте.
810 2649162
>>49114
Не нужно.
image.png64 Кб, 700x394
811 2649168
812 2649170
>>49145

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


А почему бы студию не приручить к другим конпеляторам? Хочешь - гцц компиляешь, хочешь - кланг.
813 2649178
>>49170
кланг вроде так и делает
814 2649180
>>49145

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


Зачем и кому это может понадобиться?
815 2649186
>>49170
Это сейчас именно так и работает с прослойкой в виде CMAKE и WSL (мы проект так кросскомпилируем под линукс).

Но, это во-первых - сблев сифилисной обезьяны, под названием CMAKE. Во-вторых - это всякие разные вещи, которые есть только в одном компиляторе (расширения например), всякие компайлер свитчи и прочее прочее прочее.

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

>>49180
Любому разработчику с кроссплатформенным проектом, который не любит жрать говно
816 2649190
>>49168
То, что ты хочешь, скорее всего не рефлексия, а компайл тайм определение типов, но с этим вроде и так сейчас уже хорошо.
А рефлексия это большое зло, я тебе как поработавший с джавой говорю.
То проблемы с безопасностью, когда тебе прислали объект по сети и ты обращаешься к нему так как будто бы в нем что-то есть. То не получается собрать под какую то платформу, потому что на ней нет рефлексии (ну скажем код должен весь в ROM лежать) и весь проект зависит от этой либы.
817 2649192
>>49186

>который не любит жрать говно


>студия


Мда.
818 2649195
>>49192
У тебя еще лаба2.срр не написана, зачем ты на дваче постишь
819 2649196
>>49186

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


С такими запросами тебе только язык менять
820 2649200
>>49195

>лаба2.cpp


Да, для этого тебе точно нужна студия, для нормальных людей есть clang.
821 2649201
>>49190
Я не он, но думаю когда говорят про рефлексию в плюсах имеют ввиду компайл тайм рефлексию
822 2649202
>>49190
Рефлексия бывает статическая и динамическая.
Сейчас плюсы идут по пути статической.
Есть подобие динамической в Qt.
823 2649204
>>49200

> Сравнивает IDE и компилятор


Сорян про лабу2.срр, вы походу только начали курс ПРОГРАММИРОВАНИЯ НА ЯЗЫКАХ ВЫСОКОГО УРОВНЯ.
824 2649208
>>49204
Ты так и не назвал ни одной причины, почему майкракософтовским компилятором кто-то вообще захочет собирать хоть под одну платформу.
825 2649213
>>49208
Ну хуй знает. Может спросим пацанов из Unreal, почему они UE компиляют студией под винду? Может спросим у Гугла, почему они собирают хромиум вижуал студией? Может ты еще в штаны перестанешь срать. Я понимаю, ты КРУТОЙ ПРОГРАММИСТ, АЖ НА ВТОРОМ КУРСЕ ВУЗИКА, ВСЕ ЗНАЕШЬ И УМЕЕШЬ, НЕ ТО ЧТО ДИДЫ.

Но пока ты только срать в штаны умеешь.
826 2649218
>>49186

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


Двачую.
827 2649235
>>49186

>поставил - и все работает без хуйни и говна


Эх, анончик, если бы только можно было совместить это с кроссплатформенностью
828 2649301
>>49213
Потому что под проблемную прошивку сложно собрать чем-то кроме как проблемными же костылями. Вендорлок называется.
829 2649306
>>49301
Можешь какой-нибудь хуйней поделишься, что тебе голоса в голове рассказали?
830 2649310
>>26726 (OP)
аноны, как вкатиться в цпп на вакансию джуна?
Решаю неплохо задачки на алгоритмы, знаю ответы на базовые вопросы про ООП. Плюсы знаю средне, но думаю с практикой всё придёт. Проблема в том что этой практики у меня нет, т.к нет работы
На собесы меня вообще не зовут, только один раз хрюшка перезвонила, но как я понял это для галочки и она всем кандидатам перезванивала.
Понимаю что я многое не знаю и при желании можно легко найти к чему приебаться, но всё же я хочу вкатиться на вакансию джуна, а не тимлида
831 2649312
>>49310
Раскидывать свое хуевое резюме на все возможные вакансии, попутно ежевечерне читая умные книги и хуяря код (опционально на гитхаб).

Других вариантов особо нет.
832 2649327
>>49306
Съеби наркоман.
833 2649334
>>49327

> называет кого-то наркоманом


> несет мало того, что бред шизофреника, так еще и откровенно лживый


Почему С++ притягивает именно вот эту категорию людей? В тредах по другим языкам тож самое?
834 2649344
>>49312

>на все возможные вакансии


Да и так раскидываю, но вакансий джуна не так много, а часто вообще в требованиях 3-4 года опыта.
835 2649347
>>49344
Попытай удачи в москву\питер еще, если не в них.

Вообще, есть конечно ебланский путь, типа устроиться в контору кем-нибудь принеси-подай типа, куа\админа\техпода, а потом внутри перейти в разработку через годик. Но я не уверен, что тебе это надо делать.
836 2649423
>>49347
Спасибо, анон
837 2649428
>>49334

> > называет кого-то наркоманом


> > несет мало того, что бред шизофреника, так еще и откровенно лживый


> Почему ДВАЧ притягивает именно вот эту категорию людей?

838 2649435
>>49334
То есть, бред, но ты его решил анализировать и даже нашел там истину. Вот это откровения.
839 2649441
>>47936
Да почему губить-то. Я же дропать основной стек не собираюсь, и увольняться тоже.
В идеале да, хочу полноценно вкатиться в кресты, потом походить по собесам и понять, получится ли вообще переквалифицироваться не падая до уровня джуниора за еду.

Может идея ебнутая, но я помню как еще в 15 лет я только вкатывался в программирование, и первый язык был как раз плюсы. Хватило меня на месяца 2, и в итоге я съебал сначала в питон, от туда в ноду, а сейчас еще и го добавился.

А щас хочется будто и гештальт закрыть, и возможно стать тем самым крутым инженером который работает над интересной и сложной залупой, работая в условных фаангах или чём-то похожем. Джейсоны заебало перекладывать, короче.
840 2649919
>>26726 (OP)
для дескопного приложения стоит ли заморачиваться с qt? или взять любую другую библиотеку?
просто слышал что в случае qt придётся устанавливать их редактор, регистрироваться на их сайте...
841 2649925
>>49441

>Джейсоны заебало перекладывать, короче


Будешь перекладывать жеэсоны на плюсах. Если ты думаешь что С++ = интересные и сложные задачи то ничего подобного. Безусловно такие вакансии есть, есть перфтимы в гуглах, есть хуавей, есть некоторые команды в Яндексе, но средняя вакансия на крестовика это что-то из этого:
1) Перекладывание всратых жсонов на железках с 1кб памяти. Нобрейн работа где единственная сложность это впихнуть код в уебищную железку, потому что на железку подороже у заказчика нет денег
2) Перекладывание всратых скриптов для игр в роли геймплей программера
3) Создание эндпоинтов в бэкэнде
При этом сразу готовься что кодобаза будет как минимум совершеннолетняя, а скорее всего примерно твоего возраста. Лучше жизнью займись а не этой дрочью
842 2649941
>>49925
А как можно рыспрыгаться с плюсов на другие стеки, не снижая грейд?
843 2649950
>>49919

> для дескопного приложения стоит ли заморачиваться с qt? или взять любую другую библиотеку?


> просто слышал что в случае qt придётся устанавливать их редактор, регистрироваться на их сайте...


Не обязательно. Офлайн инсталлер качай, регаться там вроде не надо. А их редактор удобен для создания гуя.
Вроде есть способы натянуть кутю на студию, но зачем?
Я трогал только супер древний wxWidgets и Qt, вторая нравится больше, меньше пердолинга. Алсо все твое "заморачиваться" - это два часа времени максимум.
844 2649974
>>49925
Даже если взять пункт 1) и пункт 3) как релевантные для меня на моем текущем стеке задачи - я бы сказал, что делать это на ноде/гохе вот именно что нобрейн.

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

В ноде ты напишешь в контроллере return {pizda: "jopa"} и в сервисе await kafkaInstance.produce(req.body) и хуй забьешь на остальное. А если начнутся проблемы с производительностью то добавишь еще пару подов. И так почти везде.

>Безусловно такие вакансии есть, есть перфтимы в гуглах, есть хуавей, есть некоторые команды в Яндексе



Я бы сказал, что таких вакух больше все равно, потому что смысл перекладывать жсон на плюсах когда это быстрее и дешевле на любой скрипт-хуете, поэтому на плюсах в ТЕОРИИ должно быть больше пространства для чего-то посерьезнее перетасовывания полей.
845 2650330
>>49925

>Перекладывание всратых скриптов для игр в роли геймплей программера


Охуенно же.
846 2650459
Есть тут кто с графикой работает?
Понемногу начинаю с openGL на vulkan переходить, увидел что у вулкана есть биндинги к плюсам vulkan-hpp
Стоит в них лезть вообще, или лучше с си интерфейсом работать?

как то попытался прочитать отзывы на это всё, многие бухтят на vulkan-hpp, но не очень понятно почему, да и как вижу все опенсорсные приколы на гитхабе не пользуются этой плюсовой оберткой
847 2650461
>>50459
Ты игры хочешь делать? Если да - то нахуй тебе вообще вулкан\опенгл? Берешь юнити и делаешь игру.

Ты хочешь быть рендеринг инженером? Тогда лучше вообще DX12 с рейтрейсингом, вулкан актуален в 2.5 конторах.
848 2650479
>>50461

>юнити и делаешь игру


в с++ треде
849 2650483
>>50479
Игра - это не про код и не про язык программирования, и не про графон. А про идею и геймдизайн.

Собственно - одно из самых больших заблуждений в кодинге как раз о том, что С++ и геймдев связаны. Под геймдевом все всегда имеют ввиду написание сюжетов\персонажей\механик, а не дрочку на физику шин или задрачивание коллизий в опенворлде (вот тут как раз С++ и нужен только)
850 2650486
>>50461

>тред пильщиков


>хочу запилить дверь, как это лучше сделать?


>закажи готовую с алика


Узнаю родимый двач.
Анрыл или флакс посоветовал бы хотя бы.

>>50483

>Игра - это не про код и не про язык программирования, и не про графон. А про идею и геймдизайн.


Игра это про что угодно. Если хочет графон ебать - пусть ебёт, зачем ты его учишь своему мировоззрению?
851 2650490
>>50486
Анрыл тоже норм, только сложнее юнити сильно.

> Игра это про что угодно. Если хочет графон ебать - пусть ебёт, зачем ты его учишь своему мировоззрению?


Игра - это про игру. Я к тому, что если чел хочет делать игры - то опенгл это трата времени на хуйню, когда надо читать учебники по геймдизайну и\или ваще по КАК СТАТЬ ПЕЙСАТЕЛЕМ.
852 2650491
>>50461

> Ты хочешь быть рендеринг инженером?


this, по крайней мере мне это пока что больше интересно

>Тогда лучше вообще DX12 с рейтрейсингом


И его есть в планах глянуть, но потом

я же студент еще, я не собираюсь за вулкан на года 3 садиться и всю жизнь тратить, а так пока что банальный рендерер запилить, с какими нибудь приколами на пару месяцев
так что сначала хочу вулкан потыкать
853 2650496
>>50491
Если ты студент и тебе по фану - я бы не советовал трогать вообще Вулкан, наверное. Опенгл пайплайн сильно проще, а результаты будут одинаковые для твоих студентопроектов. в Вулкане\ДХ12 есть смысл тогда, когда ты реально дрочишь на то, чтобы попасть там в id Software или в ту же нвидию прости господи. Но ни туда ни туда не возьмут, пока у тебя не будет опыта в этом всем промышленного несколько лет.
854 2650503
>>50490
Нет, ты прав про то что если хочет именно делать игры, то не надо сосредотачиваться на пикселях вулкана. Но он не говорил что именно хочет делать игру, может из спортивного интереса графическое апи ковыряет.
855 2650513
>>50483
Неспособен осмыслить три слова в контексте. Выкакаю совет на целый абзац. Классика.
856 2650709
>>50483
Это не заблуждение и не ошибка - геймдев действительно плотно и тесно связан с с++. Это и вскякие игровые движки, как годот и анрил, и всякие либы на нем.
>>50496
Вулкан уже практически везде, и в годоте, и в беви. Опенгл будет использоваться все меньше и меньше.
857 2650753
>>50709
сейчас на Расте начинают уже проекты
858 2650769
>>50753
дураки
859 2650771
>>50769
почему? ты сторонник Столярова?
860 2650773
>>50709

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


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

Для ДЕЛАНЬЯ ИГР - с++ нахуй не сдался. А вот для ковыряния в движках и прочем - конеш нужен. Только это байтоебство опять, а не гейдев
861 2651035
>>50773
Хуйню несешь.
Безымянный.jpg146 Кб, 917x757
862 2651039
Это подъебка, или разница есть?
image.png2,3 Мб, 1600x800
863 2651159
>>50773

>Для ДЕЛАНЬЯ ИГР - с++ нахуй не сдался.


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

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


Так может быть нужно.
864 2651164
>>51159

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


Двачую. Шизики берут какой-то юнити или анриал и делают на нем майнкрафт. То что эти движки не расчитаны на такие типы игр их мало волнуют, ребята просто ебашат тысячу динамических источников света в виде лавы и фпс дропается до нуля, но на эти небольшие проблемы можно не обращать внимания если твою игру покупают за 3$ в стиме и лайкают на реддите
865 2651288
>>50773
Ознакомься перед тем как писать всякие глупости
https://www.youtube.com/watch?v=HEb2akswCcw
866 2651313
Вопрос по pack expansion. Вот пример с cppref
f(h(args...) + args...); // Nested pack expansion:
// inner pack expansion is "args...", it is expanded first
// outer pack expansion is h(E1, E2, E3) + args..., it is expanded
// second (as h(E1, E2, E3) + E1, h(E1, E2, E3) + E2, h(E1, E2, E3) + E3)
Если я хочу, чтобы это развернулось в h(E1, E2, E3) + E1, E2, E3, то как это должно выглядеть?
867 2651338
>>51313
h(args...) + ... + args
ну и мем в том что второе ... как и положено в крестах значит совсем не то что первое
868 2651343
>>51288
Я сделаю игру на УЕ чисто на блюпринтах красивее на пару порядков и без единой строки кода на С++
869 2651351
>>51343
Во-первых не сделаешь.
Во-вторых у тебя получится другое, ты просто не шаришь.
870 2651352
>>51338
Так args... вроде и нельзя записать в виде args ... ?
871 2651378
>>51338
Бля, что значит просто …? Ебаный синтаксис какой-то
872 2651394
>>51378
ето fold expression
но я проебался немного. если ты хочешь именно h(E1, E2, E3) + E1, E2, E3 а не h(E1, E2, E3) + E1 + E2 + E3 то надо разделять пак на первый элемент и остальные, и еще потом попердолиться
873 2651446
>>51394
А (... , args) раскроется в аргументы через запятую?
874 2651876
>>44651
А есть же еще Val и Circle
875 2651927
Как же заебал, нахуй, этот петухон ебучий.

Эта хуета форсится везде и всюду.

Почему нельзя писать на Rust/C/C++/Go?, т.е. на языках программирования с адекватной производительностью.
876 2651933
>>51927
Агрессивный студентик, очки подросткового максимализма снимай и начинай смотреть на мир не однобока
877 2651936
петун это современный бейсик
878 2652468
std::valarray для чего?
879 2652514
Где почитать подробно про приведение типов. Когда можно, когда нельзя, когда ub и как во всех случаях работает.
880 2652533
>>52514
В книгах.
881 2652702
Когда комитет байтодебилов сделает рефлексию в с++.
заебало жить с костылями.
882 2652704
>>52702
26ой оптимистично, 29ый - реально.

>>51927
Ты, конечно, в чем-то прав. Но как же я проиграл, с того, что ты на C собрался чето в 23ьем писать. На языке, в котором даже строки сложить без гомоебли невозможно. Не говоря о чем-нибудь типа ассоциативных массивов.
image17 Кб, 624x380
883 2652708
Тут есть аноны, которые пользовались CodeWarrior? Сегодня ковырялся в старых эмуляторах, прослезился.
image.png95 Кб, 297x320
884 2652740
>>52704

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


Ну ты отсталый. Сейчас ты и не будешь сам писать на сях, только корректировать выдачу нейросетки.
885 2652742
>>52708
Какой ламповый гуй, аж олдскулы свело.
886 2652837
>>51927
Ну смотри, мне больше 40, и я со школы пишу на с/с++, и до сих пор узнаю какой нибудь новый способ словить UB.
Вот вчера мне надо было решить задачу, обработать пдфку и перевести ее, ну я постепенно написал питон скрипт на 120 строчек, просто добавляя по паре строчек обрабатывая нужные мне условия. На крестах я хз, наверное к концу дня только бы закончил собирать нужные либы, если бы нашел.
В геймдеве такая же история, я могу писать на с++, или на скриптовом языке, конечно с++ быстрее и лучше когда какие-то вычисления, там, многоугольник разрезать лучами, но писать логику тупо быстрее на скриптах, быстрее итерация между написал-запустил.
887 2652883
>>52468
чтоб все охуели как ты можешь
888 2652930
>>52514
Везде.

Одна из "прелестей" C++ как раз в том, что такие казалось бы простые вещи размазаны по всему языку.
Человек, который пишет учебник по C++ или читает курс лекций, не может просто так взять и заявить "теперь мы дошли до темы приведения типов, давайте вскроем эту тему". Не выйдет, потому что приведение затрагивает буквально все от азов Си до наследования, шаблонов и RTTI.
889 2653041
>>52837
Никто не запрещает тебе прототипировать на пуфоне, это годная затея так-то.
890 2653122
>>53041
Мне ничего не запрещает и всю программу сделать на нем, такие дела.
image.png173 Кб, 640x760
891 2653131
>>53122
Я запрещаю, не делай.
892 2653343
>>52740

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


РАБОТАЕШЬ С ДАННЫМИ ЮЗЕРОВ
@
ПРОЧИТАЛ ГДЕ-ТО В ИНТЕРНЕТЕ ЧТО ЗЛЫЕ КАКИРЫ МОГУТ СЧИТАТЬ ПАРОЛИ ПРЯМО ИЗ ПАМЯТИ ПРОГРАММЫ
@
ПОПРОСИЛ НЕЙРОСЕТЬ СТЕРЕТЬ ДАННЫЕ ИЗ ПАМЯТИ
@
memset(password.c_str(), 0, password.size())
893 2653357
>>53343
Не все поймут, не многие вспомнят
894 2653403
>>53343
Хороший язык, и загадки интересные.
895 2653823
>>53343
Спасибо что сайз, а то вед и его другого затереть можно
896 2653828
>>53823
Вроде там шутка в том, что это не сработает и ничего не затрется.
897 2653848
>>53828
Из-за оптимизации или из-за того, что там c_str вместо data?
898 2653850
>>53828
Это даже не скомпилируется, c_str const.
899 2653851
>>53848
Из-за UB.
900 2653859
Маководы есть?
В чем код пишете, XCode/VS/что то другое?
901 2653866
>>53851
Я почему-то думал, что string::data гарантирует выдачу внутреннего буфера, через который можно безопасно редактировать строку. Оказалось, что это то же самое, что и string::c_str, и всегда возвращало const char*.
902 2653883
>>53343
Объясните
903 2653884
>>53883
"pwd"[0] = 0;
904 2653889
>>53343
могло быть хуже, что-то типа
std::string string_to_clear = password
memset(string_to_clear, 0, string_to_clear.size())
905 2653914
>>53850
Конст_кастни эту суку!
907 2654158
>>53914
Так получится, что кожаный мешок написал UB, а обвинять будет ИИ.
908 2654197
>>54158
Вот говорю же, ИИ это охуенно, нечего его бояться, не только удобный инструмент для говнокодинга в промышленных масштабах, а еще и козел отпущения!
909 2654218
>>53883
Даже если это очистит строку(заполнит его нулями), это его не освободит. Будет утечка памяти
1735x03a8-300x300.png54 Кб, 300x300
910 2654224
>>54002
КОМПИЛЯТОР НЕ СОПТИМИЗИРОВАЛ
@
НЕДОВОЛЬНО УРЧИШЬ

КОМПИЛЯТОР CОПТИМИЗИРОВАЛ
@
ДИКО ОРЕШЬ
911 2654255
>>54224
Нехуй на сях писать не разбираясь. Давно много чего понаписали про небезопасные функции, переходи на безопасные, не хочу развиваться, хочу ебашить код из девяностых.
912 2654320
>>53883
Насколько я знаю, даже если бы это сработало, это бы не решило проблемы приватности данных.
Даже если бы там был правильный мемсет, он мог быть убран оптимизацией компилятора, т.к. он посчитал бы что это ненужная операция, ведь потом данные не используются https://cplusplus.com/articles/ETqpX9L8/
Как минимум, надо вызывать memset_s, а не memset
А еще есть всякое кэширование, да в конце концов оперативники могут вытащить плашку из компьютера и считать прямо из памяти магнитный заряд.
Нужны специализированные решения. В идеале которые еще и не хранят данные плейнтекстом, а расшифровывают.
Так что это в любом случае не задача, которая решается однострочником, а тянет на отдельный подпроект.
913 2654648
>>54320

>специализированные решения


>тянет на отдельный подпроект


какая-то шиза уровня баяна про хакера в столовой
еще двухфакторную авторизацию с отпечатком пальца забыл
теперь твоя лаба4 под угрозой
914 2654662
>>54648

> лаба4.срр


Доставьте пасту про код на листочке и компиляцию в голове препода
915 2654809
Что скажете про Metanit? По сравнению с ебаным Шилдтом/Страусом в разы понятнее материал написан. Или один хуй надо книжки читать?
916 2654824
>>54809
Метанит слабоват, имхо.
917 2654949
Почему звёздочка стоит не там, и как это мешает программировать детям.
918 2654953
>>54949
Звёздочка стоит там где нужно. Её совать к переменной надо если ты несколько поинтеров в строку зачем-то объявляешь, что чревато ошибками и не стоит так делать.
Упоминание детей нерелевантно к посту, это просто наблюдение связанное с тем что современные дети "программируют" на жабоскрипте копипиздя код со стековерфлоу и в итоге мы имеем сайты-визитки отжирающие сто метров памяти и траффика имея килобайт полезной инфы.
919 2655194
Книга по С++ целиком посвященная инициализации: https://www.cppstories.com/2023/init-story-print/
К сожалению только на ангельском. 295 печатных страниц. Вот что сам автор пишет, перевел с английского:
История создания этой книги началась в 2001 году с поста на форуме какому-то еблану как инициализировать переменные в С++. Я исправлял неточности и дополнял различными примерами. За 20 лет эта тема стала слишком большой для одного поста, и мне пришлось оформить ее в книгу. Данная книга на протяжении 14 глав подробно охватывает все 19 видов инициализаций в современном С++, изменения вносимые новыми стандартами С++11, С++14, С++17, и С++20, а так же разбирает различные тонкости и идиомы. Книга будет полезна как продвинутым разработчикам, так и самым распоследним вкатутосям, поскольку разобраться как работает инициализация в С++ обычному человеку невозможно.
1592372284364.png91 Кб, 1058x794
920 2655281
>>54949
Есть два варианта как можно написать - звездочка относится либо к типу, либо к переменной. Технически это одно и то же, разница в голове.
Type⚹ ptr - переменная типа "указатель на тип"
Type ⚹ptr - "переменная-указатель" на тип.
Мнения за и против можешь почитать здесь https://stackoverflow.com/questions/398395/why-is-the-asterisk-before-the-variable-name-rather-than-after-the-type

Как написал анон выше, подвох будет в объявлении нескольких переменных.
Type⚹ a, b;
Может показаться, что это две переменных Type⚹. Но на самом деле это
Type⚹ a; Type b;

Что же касается твита, то это автор игры Braid с отмоткой времени, который считает себя крутым программистом и даже пилит свой язык JAI (убийцу Раста) и настроен негативно в сторону C++.
А его высказывание можно понять так, что дети насмотревшись на такое автоисправление, не научатся писать как он считает правильным.

Париться по этому поводу не нужно, это просто древний холивар, в любом случае в си бардак с объявлениями, поэтому в современных языках и стараются это как-то упорядочить.
921 2655283
>>55194
Кул cpp сториес.
922 2655311
>>55281

>пилит свой язык JAI (убийцу Раста)


Почему раста? Это же язык для геймдева, а там раста то практически и нет. Это он скорее на C++ покушается.
923 2655312
>>55311
Ну, написано что он начал его пилить, потому что ему не понравился Раст как убийца C++.
924 2655316
>>54949

> джонатан блоу


Опинион режнктед
925 2655334
>>55316

>Jonathan Blow


>Blow Jonathan


>Blow Jon


>Blowjon


>Blowjob


Понятно все с ним.
926 2655364
>>55334
Ебать ты смешной.
927 2655482
>>55334
Хорошего человека отсосом не назовут!
928 2655792
>>55281

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


В контексте объявления переменной звездочка - это declaration operator, относится к части объявления, называемой declarator и она модифицирует одну переменную, ближайшую справа от себя. К части объявления base type звездочка не относится.

Нужно понимать, что например, float[5] и float[7] - это разные типы. И что эти типы не являются базовыми (встроенными). Встроенным является только тип float, [] - это вообще не тип, а снова declaration operator, а тип float[N] создается исходя из конкретного объявления.

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

Нет способа всегда приклеивать звездочку в каком-то одном месте.
929 2655819
Че почитать по шаблонам. Скоро будет собес на котором час буду спрашивать шаблоны
930 2655820
>>55819
*будут
931 2655824
>>55819
Это что за собес такой страшный?
932 2655828
>>55194
Где скачать? Я не то что бы имею хоть какую-то возможность приобрести книгу.

>К сожалению только на ангельском.


Почему к сожалению? Ты не настоящий программист, если не знаешь английский.
933 2655829
>>55819
Александреску.
934 2655862
как при отладке дебагер узнает значения со стека? например, есть в функции локальная переменная, функция вызывается, на стеке создаётся эта переменная, но как дальше в дебаге дебагер берет её значение? её не получить через таблицу символов, а как ещё может ходить отладчик я не знаю
935 2655863
>>55862
Смотрит на стек напрямую.
936 2655871
>>55828

> не имею возможности приобрести книгу


Просто купи электронную версию
937 2655874
For arguments of class type (including union), the set consists of
a) The class itself
b) All of its direct and indirect base classes
c) If the class is a member of another class, the class of which it is a member
d) The innermost enclosing namespaces of the classes added to the set
Я что то не понял это. Можете, пожалуйста, пример привести? То есть функцмя не должна быть членом класса, иначе толку нет от этого правила. Тогда статик? Статик у меня не нашелся. Только friend. Почему?
938 2655895
>>55871
Не имею возможности приобрести книгу в любом варианте. Свифт до сих пор не вернули.
UTorrentLogo.png17 Кб, 202x202
939 2655901
940 2655909
>>55895
Миллиарды способов есть обхода
Включай прогерскую смекалочку, задача легче литкодовской
941 2655924
>>55909
>>55901
Ну да, только этот вариант и остаётся. Магнит есть?
942 2656006
>>55895
Могу принять платеж на карту рф и скинуть в тред электронную версиб
943 2656010
>>55828
libgen.is
image.png178 Кб, 427x320
944 2656020
>>56010
Спасибо большое, ты очень помог.
945 2656849
Как устроиться на работу в компанию уровня Nvidia?
Что надо знать помимо плюсов?
946 2656859
>>56849
1. Менеджмент
2. Английский
3. Батники
4. Эксель
947 2656872
>>55829
Словил психологическую травму с этой хуеты. Впервые пришёл прахраммировать и дали проект, написанный под большим впечатлением от этой книжонки. Ехали шаблоны через шаблоны, имя метода в дебаггере длиной под тысячу символов.
При этом, никаких технологических причин хуярить шаблоны не было, проект представлял собой программу-сервис, которая опрашивает железо, складывает в случае событий всякое в БД, ну и предоставляет информацию о происходящем подключающимся клиентам. Ещё оно было написано на С++03, т.н. ещё до std::thread.

Я уже написал более продвинутую версию этого софта и никакие шаблоны мне для этого не понадобились (ладно, полтора вспомогательных шаблонных класа есть), хватает наследования.
948 2656888
>>56859
1. Свободный разговорный английский (не обсуждается, никаких СО СЛОВАРЕМ или НАЧИНАЮ УЧИТЬ).
2. Знать нужный язык программирования в вакансии (никто не требует быть спикером конференций, но бля, будь добр, хотя-бы Скотта Майерса осиль и осознай, и хоть чуть-чуть интересуйся тем, что завезли хотя-бы в С++17, 6 лет прошло).
3. Соответствуй требованиям. Если в вакансии знание CUDA допустим, то без знания CUDA не выйдет.
4. Опыт. Многие вкатуны, почему-то считают, что они охуеть какие умные, просто этого никто не видит, а тупые эйчарки не пускают к тех специалистам. Вот я бы их сениорам УХХ показал. Короче - нет, нужен опыт. Минимум года 3-4, и, в идеале, качественного, а не "улучшал систему логгирования в файл", "формочки на куте шлепал" или "какую-то хуйню писал, до прода так и не дошло".
5. Хотеть жить в Ереване

Вообще, если хочешь работать в топе-околотопе, то рецепт очень простой. Даже на мне сработал.

Пойми, что это все - марафон. Если ты, допустим, вкатишься в 25 лет (старик), в 27 устроишься в яндекс недомидлом, в 29 тебя нахуй пошлют на собесе в Нвидии, в 30 тоже, а в 31 устроишься - до пенсии еще 34 года ты будешь работать в лучшем месте, и у тебя будет охуенное резюме на будущее.

Планировать надо на несколько лет вперед вот так - и все получится. Бонусом - у меня друг к собесу в гугл готовился полгода, дрочил литкод и прочие все эти задачки. С треском его провалил, дрочил еще полгода - на второй раз прошел на L4 (мидл).

Он не ныл, что все вокруг пидорасы, что таких зарплат не бывает, что гугл с улицы не нанимает, что бычок насрал ему в рюкзак. Он сидел и дротил ебаные задачки. Делай так же (задачки, С++, лидерство на текущей работе) - и все получится рано или поздно
949 2656898
>>56872

>Словил психологическую травму с этой хуеты.


Так и должно быть, это ж Александреску.

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


А это вполне может быть валидно с эджайлом под слабо обрисованные спеки. Шаблонишь универсальную ебаторию и потом специализируешь.
Когда понятно четко что и как нужно, то можно и без шаблонов, зачастую они излишни, и такая универсальность только мешает.
У меня тоже на одной работе первый проект сеньор за пару дней нашаблонил, а я дорисовывал, было... гм... интересно.
950 2657005
>>56888

>вкатишься в 25 лет


в 39.

>в 27 устроишься в яндекс недомидлом


ну хуй знает.
951 2657008
>>56888

>вкатишься в 25 лет (старик)


А 35 летнему формошлепу на qt из НИИХУЯ есть смысл куда-то выкатываться или уже все, гроб, кладбище... Хотя до пенсии тоже ещё далеко.
952 2657010
>>56888

>вкатишься в 25 лет (старик)


А 35 летнему формошлепу на qt из НИИХУЯ есть смысл куда-то выкатываться или уже все, гроб, кладбище... Хотя до пенсии тоже ещё далеко.
953 2657016
>>57008
Я 23 у.о формошлеп, 3 года формошлепаю в том же НИИЗАЛУП, ощущение будто проебал все полимеры.
954 2657033
>>56888

>1.


Соглы.

>2.


>(никто не требует быть спикером конференций, но бля, будь добр..



А много у вас таких "линейных" разрабов без имени в индустрии? Сам-то ты ведь не на рандоме залетел, а выступал с докладами на конференциях, т.е. уже довольно выделяешься среди толп.

>3.


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

>4.


Соглы
955 2657253
>>57033

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


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

> А много у вас таких "линейных" разрабов без имени в индустрии? Сам-то ты ведь не на рандоме залетел, а выступал с докладами на конференциях, т.е. уже довольно выделяешься среди толп.


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

>>57010
В яндекс на пару лет, а потом искать дальше.
956 2657259
>>57253
Еще добавлю, что в случае того же гугла, например - достаточно только языка, задачек и систем дизайна (на сениора) не просто так, т.к. почти все инструменты внутренние, и их невозможно знать с улицы.
957 2657263
>>57253

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



Если я тебя ни с кем не перепутал, то ты нвидиа-кун тот самый.
Хз, я видел 2-3 доклада некоего чувака из нвидии на ютабе, чекнул его резюме и там информация совпадает один к одному с тем что писал про себя нвидиа кун.
958 2657270
>>57263
Я понял о ком ты, нет, это коллега, который вместе со мной переехал.
Безымянный.jpg75 Кб, 929x591
959 2657348
Аноны, на пути в гугл и нвидиа встретил препятствие.

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

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

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

Что меня смущает, мне ридер предлагает read от другого заголовка, а этот не видит вообще.
960 2657354
>>57348
Ну и как я полагаю, заголовочный файл тоже является файлом исходного кода. Но думаю меня все поняли.
961 2657373
>>57348
Во-первых разберись с терминологией, что такое определение, а что такое объявление.
Во-вторых, пойми как работает компиляция в принципе. Можно сказать, что #include это просто копипаст заголовочного файла, потом идет компиляция разных cpp файлов, а потом полученные объектные файлы линкуются. На момент использования, функция должна быть объявлена.
Соответственно, есть One Definition Rule. Это значит, что во всех .h файлах может быть объявлена одна и та же функция Read, но определена (иметь тело, сам код) она должна быть только 1 раз, в одном .cpp файле.
Например
//mycpp.cpp
Read(istream&, SalesData&) { readfile();... }
//myheader.h
SalesData() { Read(); } //wtf is read?

Значит надо писать
Read(istream&, SalesData&);
SalesData() { Read(); }

Но в этот момент у тебя может возникнуть WTF is SalesData?
Таким образом ты получил циклическую зависимость (SalesData нужно Read, а Read нужно SalesData)
Но ты можешь объявить класс, не определяя его, таким образом компилятор будет знать просто что такой класс где то существует
struct Sales;
Read(istream&, SalesData&);
SalesData() { Read(); }

Так, я еще писал про линковку, представь себе что у тебя есть
//header.h
Read(istream&, SalesData&);
//file1.cpp
#inlude "header.h"
main() { Read(file, data); //тут компилятор не знает, а что же реально в коде Read - он только знает из объявления в header.h что такая функция есть
//file2.cpp
Read(istream&, SalesData&) { readActualFile(); }

Итого после компиляции у тебя остается
file1.o который суть header.h+file1.cpp, в котором есть вызов некой неопределенной функции Read()
file2.o в котором есть определение функции Read()
И линковщик их объединяет в один исполняемый файл, указав что из file1 вызывается Read предоставленный file2
961 2657373
>>57348
Во-первых разберись с терминологией, что такое определение, а что такое объявление.
Во-вторых, пойми как работает компиляция в принципе. Можно сказать, что #include это просто копипаст заголовочного файла, потом идет компиляция разных cpp файлов, а потом полученные объектные файлы линкуются. На момент использования, функция должна быть объявлена.
Соответственно, есть One Definition Rule. Это значит, что во всех .h файлах может быть объявлена одна и та же функция Read, но определена (иметь тело, сам код) она должна быть только 1 раз, в одном .cpp файле.
Например
//mycpp.cpp
Read(istream&, SalesData&) { readfile();... }
//myheader.h
SalesData() { Read(); } //wtf is read?

Значит надо писать
Read(istream&, SalesData&);
SalesData() { Read(); }

Но в этот момент у тебя может возникнуть WTF is SalesData?
Таким образом ты получил циклическую зависимость (SalesData нужно Read, а Read нужно SalesData)
Но ты можешь объявить класс, не определяя его, таким образом компилятор будет знать просто что такой класс где то существует
struct Sales;
Read(istream&, SalesData&);
SalesData() { Read(); }

Так, я еще писал про линковку, представь себе что у тебя есть
//header.h
Read(istream&, SalesData&);
//file1.cpp
#inlude "header.h"
main() { Read(file, data); //тут компилятор не знает, а что же реально в коде Read - он только знает из объявления в header.h что такая функция есть
//file2.cpp
Read(istream&, SalesData&) { readActualFile(); }

Итого после компиляции у тебя остается
file1.o который суть header.h+file1.cpp, в котором есть вызов некой неопределенной функции Read()
file2.o в котором есть определение функции Read()
И линковщик их объединяет в один исполняемый файл, указав что из file1 вызывается Read предоставленный file2
Безымянный.jpg97 Кб, 939x743
962 2657403
>>57373
ООо недогнал, что можно просто название класса объявить. Теперь получилось. Спасибо.
963 2657404
>>57373
inline же позволяет обходить ODR или я поплыл?
964 2657409
>>57404
Я не стал заостряться на исключениях.
965 2657753
>>26746
как шарпист со стажем могу сказать и "да" и "нет".

На шарпе можно хуярить приложения просто с огромной скоростью, ты оперируешь более высокого порядка вещами ( там ебошишь и крутишь коллекции , делаешь выборки , транслируешь в линк, создаешь и обходишь классы на лету ). Но крестах есть какая-то хардкорность , прокачка мозга, некоторая красота ( header и cpp - это красиво, хотя похожая хрень partial есть и в шарпе, но никто не пользуется) .КОроче хуй его знает .
966 2657755
>>27972
люблю обмазываться портянками с говном , да .. :)
967 2657830
Хочу написать простенькую 2д игру, что для этого лучше использовать: SDL2 или SFML?
968 2657853
>>57830
Похуй, главное пиши
969 2657882
>>57830
Да.
970 2657921
>>57830
Что угодно из этого
Либо игровой движок
971 2657924
>>57830
SDL2 охуенен.
Но вообще можешь хоть на чистом графическом АПИ писать, для простенького не требует больших усилий.

писал простенькую хуйню на директе и опенгле
972 2657955
>>57924
Поясните, что за фокусы sdl2 с мейнами творит?
973 2657991
>>57830
Сдл это си, сфмл использовай.
975 2658072
>>58050
Васянские обёртки с малварью от хуй знает кого.
976 2658079
>>58072

>опен сорс


>малварь


Ясно
977 2658084
>>57991

>Сдл это си


Как что-то плохое?
С плюсами полностью совместим, каких-то профитов не теряет, в чем проблема?
Вот если бы на дотнете или жабе было бы, тогда да.
978 2658100
>>58072
Тебе никто не мешает написать самому такую же за пол дня, подсмотрев апи.
979 2658216
>>58100
Свою васянскую обёртку? Не, лучше буду SFML.
980 2658228
>>58084

>в чем проблема?


Я вангую, что чел хочет написать игрушку чтобы набраться опыта в C++.
С сдл'ом опыт не тот будет.
981 2658240
>>58228
Почему не тот? Ты тупо дергаешь методы либы, просто без пердолинга с низким уровнем. Если по-твоему надо низкий уровень ебашить, то ему никакая либа не нужна, если наоборот, абстрагироваться от графена, то любая либа подойдет.
Если ты про то что сишные методы сдл-а не очень дружат с стл-ом, то всегда можно обмазаться врапперами, для новичка полезно.
982 2658244
>>26726 (OP)
Почему в этом вашем таком охуенном и современном языке нет нуль-коляски?
983 2658255
>>58244
Если у тебя null то у тебя скорее всего какая то ошибка.
984 2658259
>>26726 (OP)
Есть ли какой-нибудь способ получить общий листинг всех файлов в один в VS 2019? Т.е. допустим есть main.cpp, common.cpp и нужно получить один файл в котором #include "common.h" заменится на сам файл
985 2658268
>>58259
Любой компилятор умеет выдавать препроцессированный файл, в случае с msvc это cl.exe /p
https://learn.microsoft.com/en-us/cpp/build/reference/p-preprocess-to-a-file?view=msvc-170
986 2658279
>>58268
Не очень помогло, куча стандартной библиотеки мешает. У меня ошибка то что к одном модуле он не видит класс Item:
C2079"item" использует не имеющую определения структуру class "Item"
Несколько модулей связаны между собой по принципу каждый к каждому, как найти место где нужно объявить class Item;
image.png1,9 Мб, 1195x1283
987 2658346
https://www.youtube.com/live/fPFBwN8aS5M?feature=share
Посмотрел интервью Константина Владимирова. Он говорит, что ядро Линукс надо переписать на C++, но Торвальдс сопротивляется прогрессу, потому что он фанатик. В то же время когда его спросили, если бы он был в комитете стандартизации, что бы он добавил в новый стандарт, он ответил, что не добавлял бы, а наоборот блокировал бы все нововведения потому что мы на самом деле еще C++11 не переварили. То есть что мы имеем, человек десятка три лет программирует на крестах, наконец изучил все тонкости, подводные камни, UB, тайные тропы, ему наконец стало комфортно на нем писать, но он говорит - все, АСТАНАВИТЕСЬ, хватит, кресты не резиновые. Такой ли уж Торвальдс фанатик после этого?
988 2658417
>>58255
Не обязательно. Просто переназначение указателя, например.
989 2658423
>>58346
Это база. Кресты конечно ван лав, но обьективно в них куча ненужного говна, без которого было бы еще лучше.
990 2658430
>>58417
Просто на крестах так не пишут. Зачем туда вообще передавали null? Сразу конструируй нужный объект.
image.png76 Кб, 225x225
991 2658432
вот бы пробраться в стандарт и поубирать из плюсов лишний кал
992 2658435
>>58244
есть optional, жри что дают
993 2658446
>>58432
Так все думают, а когда попадают туда - начинают срать с новой силой.
Сам бы всеми силами продвигал рефлексию.
994 2658448
>>58435
А ещё есть expected
995 2658458
>>58430
одна из крутейших фич в том что на крестах таки пишут как угодно
997 2658462
>>58458
Это не крутейшая фича, это обычное свойство тьюринг-полных ЯП.
image.png86 Кб, 321x320
998 2658493
>>58446

>Сам бы всеми силами продвигал рефлексию.


Ты бы и сборщик мусора для классических указателей продвигал.
999 2658503
Список вещей которые я бы убрал из плюсов будь я в стандарте:
- Референсы
- Темплейты
- Старых дедов
- Конструкторы
1000 2658506
>>58493
Ты сейчас будешь смеяться очень громко, но тут изобрели чип, который следит за правильностью выделения памяти в С/С++. Правда, программу придется перекомпилировать.
https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/
1001 2658507
>>58503
Ты только что Си (без классов)
1002 2658512
>>58507
Классы так и быть оставлю
1003 2658513
>>58512
Без конструкторов?
image.png123 Кб, 320x320
1004 2658514
>>58503
Содомитю
1005 2658519
>>58513
Миллион различных проблем уберёт
Можно будет потом явное клонирование задать

Только представь, ты пишешь a = b и в 100% случев уверен что у тебя всё скопируется правильно
Это ли не мечта?
1006 2658528
>>58519
Что скопируется? У тебя ничего нет, не сконструировал.
1007 2658534
>>58493
Не, сборщик мусора не особо понимаю нахуя нужен.
Или в смартпоинтеры веры нет?
1008 2658536
>>58528

>Что скопируется?


b в a
а чтобы склонировать будем писать a = b.clone()

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


ну а конструирование у всех будет происходить стандартным способом Type{field:value...}
1009 2658537
>>58503
Попробуй Lua
1010 2658540
>>58536
Как освобождать ресурсы собираешься? Как будешь копировать ссылки/указатели?
1011 2658544
>>58540

> Как освобождать ресурсы собираешься?


Деструктором, его же я не убрал еще

> Как будешь копировать ссылки/указатели?


А ссылки убрал, а указатели по значению, хочешь дип копи? Явно копируй
1012 2658545
>>58536
Так в b ничего нет. У тебя нет конструкторов.
1013 2658547
>>58545
Ну бля, выше ты их как то инициализировал
1014 2658560
>>58547
Покажи как? У тебя же язык без конструктора.
1015 2658570
>>58560
Type construct() { return Type{field: value};}

Type a{field1: value1, field2:value2};
Type b = construct();
a = b;

Вот тебе пример двух инициализаций, тебе может показаться что я обосрался с construct и Type будет копироваться лишний раз, но компилятор как нибудь соптимизирует наверное
1016 2658574
>>58534
Проблема смартпоинтеров в том что ими не пользуются. Сделай обычные пойнтеры умными шоб все охуели!
1017 2658580
>>58570
Type{field: value} это кто создаст, если конструктора нет?
1018 2658593
>>58580
Компилятор
1019 2658628
>>58570
Ты реально только что С
1020 2658681
>>58593
Бурбулятор.
1021 2658810
Фух, написал крестики нолики консольные на крестах этих ваших. Жопа вспотела я ебу. Держу в курсе.
1022 2658813
>>58810
Теперь пиши на шаблонах времени компиляции.
1023 2658972
>>58813
Звучит как саркастическая шутка, наверное, но на самом деле годное упражнение.
1578220750315.png20 Кб, 792x207
1024 2658988
Ого
1025 2658991
>>58988
А зачем, а для чего
1026 2659071
>>58972
Я воспринял серьезно, только мне до шаблонов там еще читать и читать.
1027 2659081
>>59071
Попробуй так, обмазавшись стековерфлоу и сппреференсом, может сможешь.
1028 2659092
>>58991
Это плюсы, тут новые фичи не для, а потому что.
1029 2659175
Аноны, ридер советует данные члены называть с подчеркиванием на конце. Но я такого чет нигде вообще не видел. Кто как красоту вообще наводит?
1030 2659258
>>59175
Как в проекте заведено - так и наводишь.
Безымянный.jpg50 Кб, 573x492
1031 2659888
Аноны. Нужна помощь. Тема неявное преобразование типов классов. Книга говорит, что допустимо не более одного преобразования. Тут насколько я понимаю получается нужно 2 и это ошибка. Но ошибка какая-то жиденькая больно. Желтенькая и это смущает. Прав я или обосрался?
1032 2659896
>>59888
А тут константности вообще дело лол. Чет у меня по штанам потекло щас.
1033 2659911
>>59896
Я могу ошибаться, но по моему тут речь о том, что создается временный объект, на который ты берешь ссылку, но это нельзя делать, потому что объект уничтожится.
Вот если бы ты написал
auto temp = Govno(mocha);
auto g = govno.Combine(temp);
Тогда, вроде бы, сработало бы.

Ну а если ты напишешь
auto temp = mocha;
auto g = govno.Combine(temp);
То опять не сработает, уже потому что как ты сказал надо 2 преобразования.
1034 2659917
>>59911
Работает все кроме средней перегрузки. И в ней проблема в отсутствии константности аргумента. У меня реально ступор на этот счет.
1035 2659918
>>59917
Параметра, точнее
1036 2659955
>>59917
Ну я написал что по моему мнению происходит.
Компилятор видит Combine(mocha)
mocha это string. String передать в Combine нельзя.
Значит он пытается вызвать Combine(Govno&)
Для этого ему надо сконструировать объект.
Combine(& Govno(mocha) )
Но проблема тут в том что объект временный.
Сразу после последней скобки он будет уничтожен.
Об этом пытается сказать компилятор.
Не ссылку, а константную ссылку было бы можно, тут я не помню. Может быть это продлевает время жизни объекта.
1037 2659971
>>59955
Ты прав.
1038 2660017
>>59175
Так и навожу, хороший совет.

Избавляет от конфликта имен в конструкторе.
Иначе для параметров конструктора придется выдумывать синонимичные имена. И кроме того, что необходимо на пустом месте что-то выдумывать, это еще и мудизм, когда одно и то же называется по разному.
Можно конечно делать как на пикрил 2, но это стремно как-то.
1039 2660071
Странный вопрос возник. А как правильно
return std::move(x) + 2;
или
return std::move(x + 2);
Нигде что-то не получилось найти ответ.
1040 2660125
>>60071
Первый вариант перемещает х в никуда.
В случае с int перемещение не имеет смысла, как и для других базов типов.
Если у тебя х такой тип, что он может складываться с int, и при этом у него определены операции перемещения, то пиши как во втором варианте.

Алсо, случай с return - специальный. Скорее всего тебе вообще там не нужен вызов std::move(), т. к. компилятор все сам оптимизирует, а ты ему только мешаешь. Гугли RVO.
1041 2660143
>>60125
Справедливо.
1042 2660161
>>60017

>на пикрил 2, но это стремно как-то.


Почему? Единственное, где можно наебаться - это если забудешь написать в конструкторе this.someMember = someMember. Зато в остальном везде будет чистый код - и внутри методов, когда будешь непосредственно обращаться к полям, и аргументы нормально называются.
1043 2660173
>>60017

>Избавляет от конфликта имен в конструкторе.


Но его нет, если ты используешь список инициализации.
И можно наоборот - для входящих параметров пометку типа in_ или вроде того, а мемберы остаются без помарок.
1044 2660219
>>60161

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


Ну вот ты уже забыл, что надо не this.member, а this->member.

>Почему?


Больше помнить, больше думать - зачем?
Я вообще совсем недавно и чисто случайно узнал, что так можно. И не уверен даже на 100%, что это стандартное поведение, т. к. лень проверять. Вроде работает, но не встречал, чтобы так писали.
+ есть правило в core guidelines, говорящее "P.1: Express ideas directly in code".

>>60173

>если


Решение, которое работает всегда, лучше, чем решение, которое работает "если". Так мне кажется.

>И можно наоборот - для входящих параметров пометку типа in_ или вроде того, а мемберы остаются без помарок.


Технически Ok, но имена параметров - это часть интерфейса, они читаются клиентом (через подсказки IDE, например). Клиент всегда имеет дело только с параметрами и не имеет доступа к приватным полям. Для него эти пометки лишние.
1045 2660229
>>60161
Ты хотел сказать this->somemember или (*this).somemember? Кстати липман пишет, что так стараются не делатт.
1046 2660355
>>60219

>надо не this.member, а this->member.


В конструкторе? С чего бы?
1047 2660367
>>26726 (OP)
Что сейчас есть актуального для вката по стандарту С++23?
1048 2660391
>>60367
Мужчина, через 10 лет такие вопросы задавать будете.
1049 2660398
>>60355
Конструктор как-то отменяет, что this - указатель?
1050 2660406
>>60391
Не, мне сейчас нужно. Не хочу вкатываться по дедовским методичкам и осознать потом что выучил старье.
1051 2660410
>>60406
Ничем не могу помочь, сам только 17ый ковыряю
1052 2660415
>>60367
Ничего. Это не стандарт для вката.
1053 2660422
>>60367
Вкатываешься в C++11/14, вся основная модернизация произошла там.
Потом читаешь в статейках что добавили/поменяли в C++17/20/23. Там уже будет не так много и в основном это фичи типа о, мы там в 14 недодумали, а теперь эта конструкция будет работать и в таких случаях.
1054 2660466
>>60406
Так тебе на работе все равно говно легаси вычищать придется, а как ты в нем разберешься не выучив старье? Тут проблема то как раз в том, что надо не только свежий стандарт знать, но и все предыдущие и в чем разница.
1055 2660576
>>60466
А в чем прикол постоянно ломать совместимость?
1056 2660589
>>60576
Так это они еще стараются не ломать. Просто из за того что много конструкций, их комбинаций еще больше.
1057 2660590
аноны, есть роадмап по реверс инженерингу?
1058 2660595
Решал задачку на двоичный поиск. Отправил код, оказался на последнем месте по скорости. Посмотрел код у лидеров - алгоритм примерно такой же. Заметил, что в моем коде одна переменная типа size_t. Это я изначально все индексы такого типа планировал, но потом понял, что могут быть отрицательные значения, заменил на int, а в одном месте поменять забыл. Исправил чисто для красоты, попал на первое место. Как такое может быть?
1059 2660619
>>60595
Нет идей. Посмотрел в компайл эксплорере, ассемблер одинаковый. Попробуй отправить еще раз, может тупо баг какой то вылез.
1060 2660624
>>60595
Хотя, нашел одну лишнюю инструкцию в варианте с size_t, и вызывается она внутри цикла
cdqe
Если собирать БЕЗ оптимизаций (-O0)
Может быть там сделано так чтобы все были в равных условиях и сравнивался алгоритм программиста, а не оптимизации компилятора?
Бенчмаркать мне лень честно говоря. По идее это быстрая инструкция.
1061 2660721
>>60595
Позапускай несколько раз и увидишь что компьют тайм меняется. Этой хуйне от литкода верить нельзя.
1062 2660771
Подскажите, какой пет сделать на плюсах? Хочу заниматься беком и сделать какой-нибудь первый проектик. Из идей пока чат на вебсокетах
1063 2660783
>>60771
Сделай компилятор с++ на с++, вот тут все охуеют.
image.png16 Кб, 650x490
1064 2660797
>>60771
Обычно игоры пишут, чому игру не хочешь?
1065 2660811
>>60771
Напиши реалтайм борду
Там же кста userver заопенсорсили, на нем яндексе бэк пишут
1066 2660818
>>60811
О спасибо, посмотрю про userver

>Напиши реалтайм борду


Может знаешь какие-нибудь примеры?

>>60797
Игру это слишком серьезное что-то. Не хочется еще с графончиком ебаться
1067 2660844
>>60818
NetHack написан на Си и выводит символы в терминал.
1068 2660850
>>60818

>Игру это слишком серьезное что-то.


Я тебя умоляю. Не шибко сложнее сетей.

>Не хочется еще с графончиком ебаться


Ну на крестах тут не так элементарно как на юнитазе, но ты можешь и аски-арт ебануть, или какую-нибудь либу вроде сдл подрубить, накидать копипастную рисовалку за полдня и ебашить логику. Графен что-то сложное если ты напрямую на каком-нибудь опенгле хуячишь, и то там больше просто затраты времени на копипаст.
1069 2660900
>>60818
Есть пример, но там на расте и фронт и бэк
https://github.com/meowmin/meguca
1070 2660905
1528325010525.png185 Кб, 507x310
1071 2660924
>>60900

>meguca


Ух какие олды.
PPP2frontNback.jpg112 Кб, 1170x677
1072 2661104
Если я прочитаю пикрелейтед, можно будет сразу получить работу в Intel?
1073 2661170
>>61104
Нет, этого мала
1074 2661389
Страуструп не умеет писать книги, лучше навернуть дейтелов.
1075 2661501
Почему _stdcall такая ебанутая конвенция? Почему аргументы пушатся справа налево и не может быть переменное число параметров? Кто и зачем такую парашу придумал?
1076 2661746
>>61104
Лол. Поешь говна просто.
1. Давайте использовать кастомный заголовочный файл так чтобы было непонятно откуда реально берутся те или иные функции и как работает консольный ввод-вывод.
2 Так короче тип double длинее int. Операторы посмотрите в кривой схемке, щас бы вам даунам еще за них пояснять. И вообще простые типы данных это скучно, давайте просто не будем о них.
Отлично, вот теперь у нас есть время поговорить о важном: самолетах, кораблях и медицине.
3. ООП я вам поясню на основе велосипедной либы которую вы никогда не будете больше использовать.
4 Вместо пояснения ООП целый раздел поясняет эту самую либу на уровне линий, точек и кружочков, периодически использует поинтеры и коллбеки не заморачиваясь с тем что нигде это не объяснял
1077 2661781
>>61746
Сразу приучает к тому, с чем ты столкнешься в легаси.
1078 2661847
>>61746
Мне кстати вообще не зашла его книга. Хуже только яндекс практикум.
1673092910260.png790 Кб, 1280x720
1079 2661856
>>61389

>Страуструп не умеет писать книги


Да и с языком не задалось
1080 2661861
>>61746
Походу книга создавалась как и язык.
Красава, не изменяет привычкам.
image.png214 Кб, 480x300
1081 2661867
>>61856
Да и страус помер.
1082 2662065
>>61746
А что тогда взять для вката по плюсам? В шапке старье.
image.png942 Кб, 766x1080
1083 2662071
>>62065
Александреску, разумеется.
Для вката читай Прату. У Стивена Праты именно буквально учебник по плюсам, просто читаешь, выполняешь упражнения и так осваиваешь без особой мозгоебли, там все понятно и просто.
Про Александреску я пошутил, если ты не понял.
1084 2662090
плюсаны поясните за хедер онли реальзацию против хед и сурс
1085 2662092
>>62090
В хедере нельзя сделать все что угодно. Например без ебли завести глобальную переменную (один раз).
Второй момент - нельзя сделать статическую либу с которой линковаться. У тебя каждый раз будет инклюдиться хедер и удлиннять время компиляции.
1086 2662097
>>62071
А если я уже достаточно взрослый, чтобы смотреть на большие мужские шаблоны?
1087 2662098
>>62092
а есть еще что? это я в принципе и так знал, а глобалs заводятся без проблем с constepr
1088 2662099
>>62098
Я имел в виду такую ситуацию условно

header.h:
static int i = 0;

laba1.cpp:
#include "header.h"
i = 1;

laba2.cpp:
#include "header.h"
i = 2;
1089 2662102
>>62099
это же маразм, ясное дло так писат ьсымсла нету
1090 2662107
>>62102
Почему маразм? В библиотеке может быть какой-то стейт или синглтон.
В случае с cpp, все будет работать
lib.h
extern int state;

lib.cpp
static int state = 0;

laba1.cpp
#include "lib.h"
state = 1;

laba2.cpp
#include "lib.h"
state = 2;
1091 2662117
сталкикался кто то что клангд показывает хедеры кланга вместо гцц, хотя собирает гцц все правильно, но глаза мозолит?
1092 2662132
>>62117
Compile_commands.json чекни, может в нем проблемы
1093 2662137
Ну вот я прочитал, что посчитал нужным для подготовки к собесу. Какие варианты проверки знаний можете порекомендовать кроме ответов на stackoverflow и тут?
1094 2662138
>>62137
Сходить на собесы
1095 2662139
>>62138
До самого нужного не успею на другие сходить
1096 2662143
>>62132
чекнул спс, как там стоят пути кланга вперед пути гцц, знаешь где прописать что гцц первее искалось?
опять же собирает гцц правильно, это только глангд ошибается.
1097 2662167
>>62071

>Александреску, разумеется.


Двачую, топовая книжка для вката.
1098 2662204
>>62065
Липпмана читай.

>В шапке старье


На русский ничего и не переводилось с тех пор. Страуструпа "The С++ Programming language" 4-го издания вроде бы перевели, но это не для вката.
1099 2662215
>>62137
Литкод мне помог. Решал задачки, в каментах/решениях видел алгоритмы/концепции о которых спрашивают.
Раньше почему-то плавал в сложностях, немного порешал и заметил что сложности пишут и сразу запросто запомнил что линейно, что логарифмично, а потом как раз и спрашивали, и я сразу отвечал, а не как раньше "ээ мээ хузнаит квадратично наверна" - тупо не запоминал.
1100 2662218
>>62065
Я когда-нибудь напишу свою книгу по вкату в плюсы, обещаю
1101 2662227
>>62218
Я уже написал.
А. Ноним. "Как вкатиться в плюсы".
Там одна страница, на ней написано "Никак".
Это продолжение бестселлера "Стоит ли вкатываться в плюсы", в котором одна страница на которой написано "Нет".
1102 2662238
>>62143
Это как то систему сборки фиксить надо
1103 2662532
>>62227
Вот топовая книжка по вкату в плюсы.
300 страниц, посвященная способам инициализировать переменную.
1663697330351.png1,9 Мб, 2469x3237
1104 2662594
>>60367
Вот такую интересную книжечку нашел, еще и опенсорсную и бесплатную.
https://github.com/changkun/modern-cpp-tutorial
Она конечно больше для переучивания сишников и си-с-классами на современный лад, и сам 23 стандарт еще не затрагивает, но полистал вроде норм и по делу.
1105 2662693
>>62215
Мне чисто плюсы проверить надо
1106 2662996
>>60406
Не надо еще забывать что фичи стандарта добавляются одна по одной и не всегда целиком.
23 еще мало доделан, 20 получше, даже в 17 еще не все готово, и даже в 14 можно найти частично недоделанные фичи.
1107 2663009
>>62996
о, как в жеэсе - спецификации новые я дам, еще нужна их поддержка везде, поддержку я не дам
1579387264002.png7 Кб, 367x102
1108 2663056
Охуенно. Для тех, кому мало UB, может вызвать UB гарантированно.
1109 2663061
>>63056
void unreachable()
{
int i = 5;
i = ++i + ++i;
}
image.png63 Кб, 200x221
1110 2663063
>>63056
Да, нахуй надо! И ассерты тоже в топку! И трайкетчи! Падения, ошибки и эксепшены должны быть неотлавливаемы и выпадать только в продакшене!
1111 2663075
Объясните про флоаты... какое максимальное число я туда могу въебать? Ну вот макс флоат - 3.402823466e+38
Это что? Не понимаю.
Вот например инту я могу присвоить 2147483647 - это его максимум.

А флоату что?

Смутно думаю что чем больше целых, тем меньше будет дробной части.

Хорошо, тогда так:
xxx..xx.yyy

Вот допустим мне хватит тысячной дроби yyy. Тогда какое максимальное целое там будет?
Как это самому посчитать?

Просто у меня расстояние в метрах хранится в флоатах, а я даже не могу понять какое максимальное расстояние я туда могу записать. 100 метров? тысяча метров? десять тысяч? Сколько?
image.png8 Кб, 343x283
1112 2663077
>>59175
у меня так
Публичные методы с большой буквы.
Публичное поле с маленькой (это чтобы не конфликтовать с каким-нибудь векторами/матрицами/цветами - где уже привычно x/y/z с маленько)

Приватный метод также с маленькой чтобы их различать
Приватное поле с m_

p.s. тем кто против префикстов у полей, типа IDE умная, и нахуй это не надо - я много раз себе колено простреливал на этом - кода заносил данные не в поле класса, а в локальную переменную внутри блока - очень весело такую херню потом отлаживать
1113 2663085
>>63075
Сколько в мантиссу влезает цифр - столько и можно независимо от того, где разделение целой и дробной частей. Для флоата где-то 7-8 цифр, для дабла около 15.
Есть стандарт IEEE 754, где под мантиссу флоата выделено 23 бита, а для дабла - 52 бита. log10(2^23) ~= 6.92, log10(2^52) ~= 15.65. Загвоздка в том, что стандарт C++ не указывает, что реализации должны юзать именно IEEE 754, так что как повезёт.
1114 2663089
>>63075
Твой вопрос напомнил о шатающихся вертексах в ранних триде играх.
1115 2663239
>>62594

>100 страниц


Ну такое. Больше похоже на справочник, причем по каким-то отдельным вопросам.
1637786015042.png41 Кб, 720x607
1116 2663712
>>63063
Там еще assume завезут. Способ расставлять UB ковровыми бомбардировками.
1117 2663723
>>63712
получается, что с помощью цэ++ можно прострелить себе ногу, это просто возможность, но идейная дорога
1118 2663724
>>63723
не просто возможность*
1570888747459.png814 Кб, 1897x939
1119 2663742
>>63723
Это уже похоже на какой то саботаж.
Итого C++23 вместо убирания UB ввело еще и ТРЕТИЙ (кроме std::unreachable, [[assume]]) способ его получить.
Добавили std::expected для обработки ошибок.
Нюанс в том, что если ты забыл проверить result.has_value(), и обратился к value = *result но у тебя ошибка, или к result.error() но ошибки не было, то ты ловишь UB.
1120 2663763
>>63742
Все правильно сделали.
ИИшечки теперь нескоро вкатятся в плюсы.
старое пародийное интервью со Страуструпом.txt
1121 2663859
>>63056

> прострелить ногу


Ну хуй знает, насколько нужно быть гением чтобы тут ошибиться
Очевидно эта штука звучит как какая то штучка для микрооптимизации
1610552458095.png28 Кб, 562x435
1122 2663861
>>63859

>Possible output: Segmentation fault


Хорошая микрооптимизация. Нра.
1123 2663862
>>63861

> Possible ouput: your cat dies


Впервые уб видишь?
1124 2663864
>>63862
Чел, это несерьезно. Увидев такой код, я ожидаю ассерт в рантайме, и вообще хорошо бы ошибку типов в компайл тайме. А не сегфолт. Пример совершенно угребищный, но это скорее всего потому что этой хуйне и не придумать нормального примера, потому что она нахуй не нужна.
1125 2663866
>>63864

> я ожидаю


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

> не нужна


Тебе не нужна - не используй
1126 2663867
>>63866
Предложи пример, где такая оптимизация имеет смысл. В switch-е же нет обязательного default, значит там ничего и не подавляется, могли просто не писать default.
1127 2663868
>>63867
Понятия не умею
Это у любителей в годболте часами посидеть надо спрашивать
1128 2663869
>>63867
Но вообще советую в таких случаях пэперы напрямую читать
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p0627r6.pdf
1129 2663870
>>63861
Пишешь документацию к generate_texture, где поясняешь, что невалидный xy приведёт к UB. Проблемы? Смысл-то от этой штуки очевидно есть, оптимизация сработает. В данном случае просто станет на одну ветку меньше в свитч-кейсе. Что в этом плохого?
1130 2663871
>>63870
Это особенно полезно, если ты пишешь реализацию стандарта какой-то библиотеки, например MPI. Там, где стандарт говорит, что будет UB - оптимизируешь.
1131 2663872
>>63871
Да, охуенно такое еще в либы пихать, чтобы вся программа юзающая либу становилась UB.
1132 2663874
>>63871
Нормальный способ - это писать концепт, шаблон, или хотя бы enum class, а не словами где-то предупреждать и вводить в 23-м году UB.
1133 2663875
>>63872
Не будет никакого уб, пока ты не сделаешь то, что вызывает уб. Или как ты себе это представляешь, код законтачился от std::unreachable, и теперь его трогать нельзя?
Если ты написал бред в духе деления на ноль, то кто ж тут виноват?
1134 2663877
>>63874
Зависит от ситуации, не надо цепляться к конкретному примеру.
1135 2663878
>>63875
Обосрется сам автор либы, сделав всю программу UB.
1136 2663879
>>63877
Это блин пример, которым мотивировали добавление фичи в стандарт. Более нормальных примеров и нет.
1137 2663888
>>63878
Или нет, лол
1138 2663891
>>63056
А что будет если я ее в constexpr функции вызову?
16612983126190.png89 Кб, 595x149
1139 2664168
image.png193 Кб, 600x600
1140 2664557
Всем привет. Хочу в качестве хобби выучить с++ для геймдева(работаю 2-дшником в геймдеве). Пока что чисто как хобби.
Есть какой-то роад мап? Сегодня вечером начал читать 'beginning c++ through game programming 3th edition '(4ый не нашёл, если есть ссылка - кидайте).
Всё правильно делаю?
1141 2664561
>>64557

>4ый не нашёл, если есть ссылка - кидайте


хотя отбой, плохо искал просто.
1142 2664569
>>64557
Для геймдева вкатывайся лучше в С#
1143 2664575
>>64569
Может мне ещё в C вкатываться?))00
1144 2664579
>>64569
И вообще, я же сказал - хобби. Игры можно на каждом втором языке делать. Какая нахуй разница, что я учить буду?
1145 2664585
>>64569
Годот, анрил, юнити, библиотеки, перформанс, апи. И вообще, хули ты меня из спп треда своим с шарпом гонишь?
1146 2664586
>>64557
Хорошее начинание. Книгу не читал, но осуждаю потому не могу ничего о ней сказать. Раз для новичков, то почему бы и нет. Готовься много гуглить и лазить по всяким cppreference.com, stackoverflow.com и прочим двачам. Задавай свои ответы и охуевай вместе со всеми.
1147 2664588
>>64586

>Готовься много гуглить и лазить по всяким cppreference.com, stackoverflow.com и прочим двачам. Задавай свои ответы и охуевай вместе со всеми.


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

> веб-верстке


не дальше js'а, если что.
1149 2664592
>>64588
>>64591
Соболезную. Надеюсь, урон не непоправимый.
1150 2664606
>>64557
Это весьма хорошая книжка, но к геймдеву она относится почти никак.

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

>Есть какой-то роад мап?


Отложи эту книжку, бери Липпмана. Приходи годика через пол.
1151 2664611
>>64569
C/C++ тупо лингва-франка гейдева: библиотеки, книжки, лекции, исходники игр, движки, практически все на C/C++.
С# ограничивается комьюнитями Unity.
image.png59 Кб, 275x183
1152 2664618
>>64592
>>64606

>Липпмана

1153 2664620
>>64557
Зацени канал The Cherno на ютьюбе, очень толково поясняет.
1154 2664625
>>64611

>C/C++ тупо лингва-франка гейдева


Только вот реальные инди игры доведенные хотя бы до бетки это в 99 процентов случаев будет Юнити.
1155 2664635
так и что по итогу? учить плюсы или нет? стоят того?
1156 2664639
>>64635
Тут больше вопрос в том чего ты стоишь, а не стоят ли того плюсы.
1158 2664642
>>64635
тебе - не стоит.
1159 2664650
>>64642
ты чего такой злой
1160 2664673
>>64650
Потому что если бы ты хотел - то уже начал учить. И не важно что, а не вопросы глупые задавал. Как можно ответить на вопрос 'стоят ли или нет'. Бля, конечно стоят, как и любой другой язык программирования.
1161 2664728
>>64641
Это. Быстро и доступно разжевывает, дальше уже с каким-никаким пониманием вопроса можешь копать.
1162 2664734
>>64673

> как и любой другой язык программирования


Такие как брейнфак или эпл бэйсик?
Не любые. Эзотерику не стоит. Легаси не стоит (первым языком) учить. Бестиповые не стоит
1163 2664746
>>64625
Юнити-поделки - это отдельный жанр.

>99 процентов


Во-первых, ты преувеличиваешь;
во-вторых, нет смысла лезть в эту нишу с такой конкуренцией.

Единственный плюс у C# в том, что если мечты взять штурмом гейдев не сбудутся, то будет проще найти работу с таким багажом.
1164 2664797
>>64734
Я обобщил. Говно в учёт не брал.
petrosyanevgenijvaganovich.jpg397 Кб, 1024x1406
1165 2664809
>>64734

>Легаси не стоит (первым языком) учить.


Т.е. С++ все-таки лучше не выбирать?
1166 2665111
>>64746

>Юнити-поделки - это отдельный жанр


Это абсолютное большинство всех игр на стиме. Исключение только AAA игры c сотней разработчиков.
1167 2665115
>>65111
а геншин - это ААА игра?
1168 2665116
>>64734

>Такие как брейнфак


Не является языком общего назначения. Не имеет выхода на функции ОС.

>эпл бэйсик


Хз о чем ты, но на Visual Basic .NET можно пилить абсолютно тоже что и на любом другом языке.
1169 2665121
>>65115

>команда из 120 человек


Очевидно что да. Топовый уровень не обязательно значит топовый графон, огромные затраты на маркетинг тоже показатель.
1170 2665131
>>64809

>Т.е. С++ все-таки лучше не выбирать?


Ты плюсики зря пририсовал. Да, си лучше не выбирать.
1171 2665144
>>65131
Плюсы это буквально монструозная надстройка над Ссями.
Для того чтобы выучить плюсы нужно выучить большую часть того же что и для Си, а потом еще и специфичную для плюсов кашу из темплейтов.
Хз какие ты тут нашел бонусы в качестве первого языка.
1172 2665218
>>65144

>Плюсы это буквально монструозная надстройка над Ссями.


Ох лол кек.
image.png87 Кб, 312x320
1173 2665222
>>65144
>>65218
А джаваскрипт это надстройка над джавой, да?
Такое спиздануть мог только тот кто не знаком с обоими языками.
1174 2665233
>>65111
Вот стим и превратился в помойку.
А для инди-проектов без бюджета на рекламу это кладбище.

>>65115

> ААА


Все эти а/б характеризуют только бюджет, а не технологичность или качество. Бюджет можно всрать, например, на голливудских актеров.
1175 2665235
А инди - это сокращение от independent, но не от individual.
Инди пилит не сыч, а команда, не зависящая от издателя. На собственные средства то бишь.
1176 2665248
>>65218
>>65222
Чел... ты хоть что-то на Си писал? Это ничем не отличается от плюсов без классов
1177 2665268
>>65248
Доооо, точно так же, если пишешь канкуляхтур или поиск палиндрома для универа.
Всем уже понятно, что ты не писал на этих языках в какой бы то ни было достаточной степени, не позорься дальше.
1178 2665282
>>65268
Ну то есть на Си ты не написал и десяти строк, но умничаешь.
Ясно, можешь быть свободен.
1179 2665298
>>65233

>Вот стим и превратился в помойку.


Это называется малобюджетные игры. Т.е. именно то что будет делать любой анон если вкатиться. И да, продавать такие игры тоже надо уметь.
1180 2665303
>>64635

>так и что по итогу? учить плюсы или нет? стоят того?


Если хочешь делать именно игры - учи С#и 3D
Если хочешь пилить движки и библиотеки для игр - бери C++
1181 2665354
>>64728
Специфическая подача, тараторит быстро и многое поверхностно объясняет. Копать после его роликов надо много. Но с другой стороны важные ключевые моменты затрагивает, в толстых книгах эта инфа была бы размазана очень тонким слоем.
1182 2665378
>>65235

>Инди пилит не сыч, а команда


Два сыча - уже команда
1183 2665405
>>65282
Это ты не писал, только тот кто не знаком с обоими языками может такую хуйню спороть (или кодил на них в девяностых).
1184 2665406
>>65405
Нет ты не писал
1185 2665410
>>65406
Нет, ты!
1186 2665413
>>65410
Нет ТЫ
1187 2665429
>>65378
После 12 лет работы в одиночестве, работы в команде в шестерьмя мужчинами, повторного уменьшения до команды из четырех мужчин, и страданий из-за ужасной катастрофы поиска пути для обновления в 2015… мы продолжаем идти до конца и,наконец, дошли до версии 1.0.
Minecraftcover.png176 Кб, 255x383
1188 2665453
>>65429
Но бывает и так
1189 2665469
>>65429

>LO-FI GAMES


for studying and relaxing?
1190 2665486
>>65453
Dwarf Fortres между анонсом в стиме и релизом прошло года два. На момент анонсы игра была уже давным давно готова.
Dwarf Fortres писана на сях.

Тут как посмотреть. С одной стороны какие-то невменяемые сроки. С другой стороны, инди-бояре могут себе такое позволить.
1191 2665497
>>65469
Не, это у него название студии из шестерьмя мужчин такое.
1192 2665499
>>65144
Чел прав, за джавоговно не скажу, но про си по факту. Боьшее отлисие плюсов и си это компилятор. Все что в плюсах, вообще все базируется на сишных фичах. Даже те же темплейты, ужастно убого но реальзуются сишными макросами.
1193 2665611
>>26726 (OP)
Есть ли такая книга по плюсам чтобы тебя вкатывали в классы, наследование и темплейты на основе создания реального проекта под какую-то бизнес задачу? Ну или онлайн уроки какие-то?
1194 2665639
>>65222
Ну справедливости ради С++ до 11 стандарта действительно в значительной степени был расширением сишки.
1195 2665668
>>65303

>учи С#


Нафиг не нужен.
GDscript больше чем достаточно.
1196 2665700
>>65611
ну, пролистав несколько десятков книг по с++, скажу что такой книги не существует
но самые лучшие комплексные задачки в конце глав, имхо, у самого страуструпа в книжке "Язык программирования C++. Специальное издание"
1197 2665702
>>64618
липман отлично разжевывает, лучее изложение материала о самом языке с++ по сравнению с остальными учебниками
но большой минус - слабые и простенькие упражнения в конце глав не позволяют закрепить усвоеный материал
1198 2665703
>>64611
проблема в том что геймдев в россии мертв, его не существует
но если ты в других странах то окей
1199 2665704
>>65700

>лучшие комплексные задачки


Да ну, задачки без ответов это пустая трата времени. Проще уже что-то самому начать кодить.
1200 2665709
>>61104
ну до сво пока интел не свалил с россиюшки, работу там получали совершенно конкретные ребятки с известных кафедр известных вузов, дурачкам со стороны там было делать нечего
1201 2665749
>>65639
"Был" - ключевое слово.
1202 2665816
>>65749
++98 стандарт никуда не делся, на нем все также можно писать программы в современных компиляторах. Просто указываешь -std=c++98 и все работает.
1203 2666061
>>65611
У меня есть пара подобных по SFML с примером разработки игры. Правда, главы там выстроены по фичам SFML, а не фичам C++.

Есть также 1 книжка по структурам данных и алгоритмам. Вот там выстроено по фичам C++ - классы, шаблоны, наследование. По собственно языку там краткие сведения, просто чтобы вспомнить. В принципе, можно рассматривать как один эволюционирующий проект, т. к. ранее написанный код активно рефакторится и используется.
Насколько можно ее рекомендовать, я хз. Она написана еще до 98 Стандарта, диска с исходным кодом кодом в интернетах нет, содержит опечатки, ошибки и антипаттерны. Но мне она, как ни странно, именно этим и зашла. Ты не просто списываешь примерчики, а думоешь и рефакторишь. Для моих знаний получился околоидеальный баланс между самостоятельной работой и повторением за авторами.

Но все эти книги не заменяют базовых учебников по плюсам.
1204 2666109
>>66061

>Есть также 1 книжка по структурам данных и алгоритмам. Вот там выстроено по фичам C++ - классы, шаблоны, наследование.


Что за книга, анон? Первый раз слышу, хотя скачал уже наверно кучу разных книг по алгосам от Вирта до Седжвика.
Спали хоть название.

>98 Стандарта


Да пофиг, классы с тех пор остались классами.
1205 2666154
>>66061

>Вот там выстроено по фичам C++ - классы, шаблоны, наследование.


Лол, ты про Александреску штоле?
изображение.png406 Кб, 417x500
1206 2666194
aa24ba0c4e90ff8d4fcee33f26845f8b-d.jpg27 Кб, 318x442
1207 2666206
>>66194
Спасибо!
Пикрелейтед вроде посвежее в плане стандарта от того же автора.
1208 2666218
>>66206
А я так и не нашел, где ее скачать. Исходники нашел, содержание нашел, а саму книгу нет.
Она сильно отличается от первого издания. Например, исходники от нее вообще ничем не помогли. Охват материала +/- тот же, но в остальном все по-другому.
image.png143 Кб, 404x500
1209 2666224
>>65702
Понял. тогда гляну после этой книги. А что-то промежуточное есть между липпманом и Beginning C++ Through Game Programming? Я в основном во время практики обучаюсь, а не во время чтения, т.е. мне необходимы какие-то задачи, а сам задачу придумать - чё-т фантазии не хватает, либо она оказывается слишком сложной/слишком лёгкой. Причём спрашивать в треде задачи - такая же тема, либо слишком сложно и приходиться что-то гуглить (в итоге находится полноценное решение - и какой смысл от решения задачи тогда в кач-ве обучения?), либо слишком просто и нет прогресса (хотя в этом случае хотя бы запомнить что-то можно).

Может какие-то подходы можете посоветовать определённые помимо книг? Ну к задачам и их решению. Чтоб не оказываться в двух противоположенных концах
1210 2666228
Вообще, в целом, творческой подход мне больше нравится. Я сам из геймдева, ток в другой отрасли.
>>66224
1211 2666248
>>65816
А еще можно писать съ дореволюціонной орѳографіей. Объ актуальномъ языкѣ это ничего не говоритъ. C++ сейчасъ сильно отошелъ отъ своихъ корней, объ этомъ рѣчь.
image.png803 Кб, 1118x536
1212 2666290
Планирую вкатится в плюсы по этим книгам, какие подводные?
image.png364 Кб, 1280x720
1213 2666292
>>66290
Судя по иллюстрациям, аффтар шарит в говнокодинге. Я думаю, ему бы лучше по жабоскрипу писать книги, там актуальнее такому учить.
1214 2666359
>>66218
Ну анонче, Библиотека Гены же ну)))
1215 2666418
>>66292
имхо кресты в этом плане жощще. в жепаскрпте всего лишь говноед-комбо из динамикопараши и неявного приведения типов (а чо такое тип? я жсмакака))0) +еще пара граблей
цпп же берет количеством говна которое хрен выучишь и гарантирует что рано или поздно ты таки оторвешь себе обе ноги по самые яйца
1216 2666835
>>66248
Лол.
У меня есть книга объ искусствѣ игры въ преферансъ, написанная въ такой орѳографіи.
1217 2666882
>>65704
имелось в виду задания на программирование, типа реализовать хешмпап c stl-интерфейсом и подобные у него программиские задачи
1218 2666901
>>66290

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


БОльшая часть этих книг не про плюсы.
1219 2666902
>>66061

>У меня есть пара подобных по SFML с примером разработки игры.



А годнота там есть в твоем списке, что-то не из серии Packt?
image.png129 Кб, 639x724
1220 2666906
>>66418
Нет, плюсы четко себя ведут, если не нарываться на УБ, там какая-никакая логика есть, а вот чтобы на жс кодить надо отринуть логику и принять безумство.
1221 2667022
>>66902
Что не так с пактом?
1222 2667174
>>67022
Издают ноунеймов штампующих книги по вопросам в которых не разбираюся?
1223 2667202
>>64635
Use Qt, я вот на нём говнокодю. Понятия не имею, как на плюсах написать что-то асинхронное, а тут просто сигналы-слоты дрочулькай.
1224 2667207
>>66290
Оно не про плюсы. Прочитал все книги несколько лет назад и могу вспомнить из них практически нихуя.

Qt-говнокодер
1225 2667261
>>67207
Лол, а десктоп направление на плюсах еще живо? Что ты делаешь на Qt?
1226 2667348
>>67261

>десктоп направление на плюсах еще живо



Так оно только на плюсах и живо.
1227 2667623
>>67348
Ох лол
1228 2667631
>>67623
Ну давай расскажи мне как там бурно развивается десктопный дотнет, на который уже сами майки забили.
1229 2667682
>>67631
Э л Е к Т р О н
1230 2667706
>>67261

>Что ты делаешь на Qt?


Пилю клиент-серверную приложуху. Сервер по сетке работает с железками, кладёт данные в БДшку. Клиент к нему подключается и может смотреть, чё там с железом и с БДшки запрашивать всякие данные.
1231 2667708
Да вот кстати недавно по учёбе понадобилось поработать с программой drawio. Вроде ничего так, симпатичная приложуха. Полез смотреть, на чём сделано, а оно на этом вашем жабаскрипте. Под десктопный линукс.
1232 2667719
>>67708
Всегда думал, что draw.io существует только в виде сайта. Сайт, понятное дело, на жопаскрипте.
1233 2667745
>>67719
Дык десктопная приложуха поди и есть тот же сайт, только локально. Ну, мож с какими подкрутками-добавками.
1234 2667779
>>67745
Ебаный стыд.
1235 2667937
>>67682

>Весь код приложухи можно просто посмотреть в блокноте


>Конкурент плюсам



ЛОЛ
1236 2668010
>>67937

>>Весь код приложухи можно просто посмотреть в блокноте



Ну неси тогда сюда код десктопного дискорда, даун ебаный.
1237 2668017
>>68010

>не знает что код электрона это просто скрипты



Это ты походу даун безмозглый.

Принес тебе за щеку, проверяй.
1238 2668022
>>68017
Пиздабол, неси сюда код дискорда который на электроне написал или уебывай с треда к хуям.

>код электрона это просто скрипты


И что что это джаваскрипт, ебанутый? Мобильные приложения на реакт нейтив это тоже жс, может и их код тоже заодно посмотришь, клоун блядский.
1239 2668024
>>68022
Пиздец ты ебанутый дегенерат.
Поссал на тебя дебила.
1240 2668026
>>68024

>>Весь код приложухи можно просто посмотреть в блокноте


>Ну иди посмотри


>Кода так и не увидели



Что и требовалось доказать что сын тупой шлюхи способен только пиздаболить и не разбирается даже в базе

Иди нахуй, обоссаный
1241 2668030
>>68026

>тупой дегенерат не в состоянии сам посмотреть код.



Нахуй иди, обсосанная тупая мразь.
1242 2668036
>>68030

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



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

Просто ебучий урод, пошел нахуй.
r6ljlq.jpg36 Кб, 600x600
1243 2668042
1244 2668046
>>68042
Ебал твою дохлую мать у тебя на глазах
zakryvaet-lico83844865orig.png198 Кб, 568x335
1245 2668049
1246 2668051
>>68049

>risovach.ru


Представил твое тупорылое ебало ирл, взламыватель электрона
1247 2668052
>>68046
Глаза от мочи промой.
То что ты там трахаешь это твоя дохлая жизнь.
1248 2668055
>>68052

>немытый хач-пиздабол опять пошел в оправдания


Лол
neobyasnimo-no-fakt144568473orig.jpg46 Кб, 700x409
1249 2668058
1250 2668092
>>67937

>Весь код приложухи можно просто посмотреть в блокноте


Нельзя. Во первых - даже если можно то это нарушение копирайта и тебя выебут
Во вторых - практически любой известный мне скриптовый язык можно скомпилировать в байткод для VM, и в таком виде он компактнее, быстрее загружается и в добавок для того чтобы его спиздить его нужно декомпилировать, а декомпиляторы для таких вм пишут гораздо реже чем для условных С/С++ если ты не на шарпах и джаве пишешь конечно
В любом случае если ты можешь его спиздить - то точно так же можно проверить что ты его спиздил и штрафануть твое тупое ебало на пару лямов
1251 2668242
ебать че тут происходит наху
мне уже расчехлять пасты из дотатреда или еще постов 20 подождать?
1252 2668247
>>68242
Расчехляй. Только перепиши их под контекст.
16450153374160.jpg4 Кб, 195x220
1253 2668269
А ты случаем не то чмо, которое я три года назад заебался банить в МВП-тредах? Такой же омега-униженец, те же посты, тот же бугурт от жизни психически здоровых мужчин. Ах да, ты даже не мужчина, кстати.
16808764764740.png219 Кб, 500x419
1254 2668272
Я не понимаю, как такой человек как ты, может вообще жить.
Уебище, подобное тебе, должно еще на этапе зиготы самым жестоким образом уничтожаться.
Что ты пытаешься доказать, прилюдно спустив штаны и навалив огромную кучу дерьма.
Иди нахуй отсюда.
16450153374170.jpg18 Кб, 480x325
1255 2668277
>>68058
>>68055
Как-то очень неуверенно ты это говоришь. Так вижу трясущиеся руки, спешащие расстегнуть ширинку, и не успевающие. Темное пятно расползается по одной из штанин и в нелепой попытке сохранить лицо ты выдавливаешь ломающимся голосом: "иди нахуй))". Даже любопытно, что ты дальше будешь делать.
1256 2668280
ну ладно хватит пока
я в бан и спать
1257 2668350
>>68280
Счастливо. Спасибо за пасты, приятно отдохнуть.
1259 2668978
>>68669
Посиб, сохранил. Очень много, страшно. Заценю после книги. Там прям всё идеально подходит, что под сабжем c++ и геймдева?
1260 2668980
>>68669
Если есть какие-то советы - готовы выслушать.
image.png26 Кб, 565x176
1261 2669038
С хуяли, блядь? Даже в книге в примере этого ; нет.
1262 2669047
>>69038

всё. разобрался. я думал что не надо в main() заворачивать. Получается всегда надо функцию делать?

Пиздец. Какой урод капчу придумал новую...
1263 2669199
>>69047
>>69038
и вот с этим вот мы сидим в одном треде.....
1264 2669324
>>69199
Так я ток вкатился. Ещё и на автомате Do с большой написал.
1265 2669432
Что такое std::mt19937::state_size ?
1266 2669697
Комитет ISO C++ запретил использование ChatGPT. "В нашем сообществе нет места интеллекту, искусственному или нет" - заявил представитель комитета.
1267 2670054
Плюсач, помоги советом вкатуну. Делаю игру на плюсах. В ней система фитов персонажей. Соответственно есть базовый абстрактный фит от которого уже наследуют другие.

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

Я вот думаю, может в заголовке базового класса прописать заголовки всех наследников и просто его пропихивать каждый раз в инклюды?
1268 2670060
>>70054
Тогда еще надо будет в нем делать объявление наследников тоже. Правильно я понимаю?
1269 2670167
>>70054
Забейте, анриал уже послал меня нахуй.
image.png62 Кб, 200x222
1270 2670262
Я зумер с СДВГ, есть ли на ютьюбе кто-нибудь (преферабельно на инглише плиз) зачитывающий книгу по плюсам с примерами чтобы я мог смотреть на третьем экране пока играю в роблокс и смотрю стрим?
1271 2670289
>>70262
Ты так нихуя не запомнишь, вкидывайся успокоительным и читай внимательно.
1272 2670796
>>70054
Можно придумать механизм создания "фита" из некоего набора параметров. Наборы хранить в БДшке или ещё каком внешнем ресурсе и оттуда читать при наступлении этих твоих событий (оно тоже один из параметров фита).
1273 2670800
>>67708

>жопаскрипт повсюду, как аллах


што поделать
рак кожи тоже начинается с маленькой красной родинки, а заканчивается пиздецом по всему телу
1274 2670801
>>67706
хорошо тебе, приятная работа, можно не думать
кайф на самом деле
1275 2670810
>>70801

>приятная работа, можно не думать


Думать надо, но над "архитектурой", т.е. над тем, как облегчить самому себе жизнь путём организации объектов, их взаимодействия между ними, структур данных, БДшки и прочей хрени, чтобы не путаться и "фичи" добавлять было не сильно сложно. В общем, думание (и велосипединг) происходит по собственной инициативе.

Платят соответственно (мало), сотку с копейками. Вроде и надо стремиться к большему заработку, но это ж придётся не своё говно на расслабоне пилить, а какое-нибудь легаси, ещё и наверняка в более жёстких условиях (делай вот так, приходи-уходи вовремя, вот тебе задачи на неделю, отчитаешься о выполнении и прочая паибень).
1276 2670822
>>70810
Блять, такое ощущение что я знаю проект над которым ты работаешь.
Но могу ошибаться, таких производств тысячи.
Расскажешь что нить ещё о проекте?
1277 2670990
Если заголовки закольцевались, насколько я понимаю лучше подумать об изменении подхода, нежели об объявлении одного класса в заголовке другого?
1278 2671099
>>70990
Да, тебе нужен dependancy inversion.
1279 2671523
Какие подводные в том чтобы везде вместо референсы использовать референс враппер?
1280 2671548
>>71523
На самом деле есть только адреса. И обычно они не отличаются от целых чисел.
Покайтесь.
1281 2671554
>>71548
Это значит да или нет?
1282 2671629
А тут есть перекат, а то уже вывались за пределы памяти
1283 2671653
>>71629
Нет здесь перекатов.
1284 2671674
>>71629
А нахуя
1285 2671680
>>71674
У мобилобляди щяоми тормозит.
1286 2671688
>>71680
Я мобилоблядь с щяоми 5 летней давности, лагов не обнаружено
1287 2671834
>>71674
ну просто интересно было
типо номер треда 141 и он не бесконечный, поэтому думал может всем просто лень что ли
image.png13 Кб, 451x122
1288 2672454
ЯННП многомерные массивы.
Он нахуя x и о записал туда? Это же просто картинка выйдет, а не крестики-нолики.
image.png72 Кб, 655x665
1289 2672455
>>72454
https://www.w3schools.com/cpp/cpp_arrays_multi.asp
тут вроде понял на примере корабликов. А нахуя он делает то, что делает? Вот продолжение. Он просто картинку решил сделать?
1290 2672469
>>72454
А какая разница? Он туда мог и 0, 1, 2 записывать, и 'p', '}' и '»', и похую, надо три разных значения, так что булом не обойтись, а если сразу "Х", "О" и " " писать, то вывод становится тривиальным.
1291 2672493
>>72469
Так он просто картинку делает, получается? А нахуя? Чтоб показать просто?

Ладно, хуй с ним. Другой вопрос. При создание второго cpp в исходных файлах в проекте появляется ошибка fatal error LNK1169: one or more multiply defined symbols found

Как делать больше одного спп файла, чтоб не создавать каждый раз новый проект? И чтоб их можно было запускать. Или это слишком сложно будет для меня на данном этапе?
1292 2672498
>>72493
Если просто функцию мейн переименовать, то он всё равно первый файл запускает. Может можно как-то выбрать какой компилить
1293 2672510
>>72493

>Так он просто картинку делает, получается? А нахуя? Чтоб показать просто?


Например. Его спрашивать надо.

>Ладно, хуй с ним. Другой вопрос. При создание второго cpp в исходных файлах в проекте появляется ошибка fatal error LNK1169: one or more multiply defined symbols found


>


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


В студии? Можешь удалять спп из проекта (не удаляя файл), потом добавить который надо.
Вариантов куча, на самом деле.
1294 2672515
>>72510

>В студии? Можешь удалять спп из проекта (не удаляя файл), потом добавить который надо.


>Вариантов куча, на самом деле.


Пон. Спс.
1295 2672704
https://leetcode.com/problems/maximum-value-of-k-coins-from-piles/description/
Как подходить к такой задаче? Пишут про меморизацию а я не знаю об этом, не научился так думать.
1296 2672708
>>72704

> Как подходить


Как и обычно, сначала пытаешься решить самым тупым способом, в этом случае перебором

> меморизация


Не представляю даже что это
1297 2672769
>>72704
Мемоизация - сохранение результатов вызова функции для аргументов.
Задачу не смотрел, но видимо там будут повторяющиеся рассчеты, их можно хранить в ассоциативном массиве.
1298 2672778
>>72704
Прочитал. Гугли префиксные суммы. Видимо для каждой стопки нужна своя, потом искать сумму по ней.
1299 2673167
>>26726 (OP)
Аноны, я почти сделал небольшой проект который генерирует хуйню. В основном старался использовать стандартную библиотеку.
Что дальше? Прикрутить к этому сервер? Сделать тг бот? Приделать гуи?
я вкатыш, не судите строго
1300 2673198
>>73167
Бот звучит заманчиво. Гуй не надо, это тебя засосет в парашу.
1301 2673204
>>73167
Гуи - это дохуя ебатни и мороки. Пили его, гуишников мало, опыт бесполезный.
1302 2673311
>>73204
>>73198
Гуй прикручу потом, есть кое какие идеи для него
А вообще стоит заморочиться с паттернами, классами или хуячить как получается? Пока это скорее набор функций в одном файле...
1303 2673317
>>73311
Да, может иметь смысл. Для чего-то очень простого вроде банальной утилиты у которой нет потанцевала для расширения - может и не надо, а вот если расширяешь, особенно раз с гуи чесаться будешь, имеет смысл, особенно в качестве практики.
Алсо, если не пихаешь в гит - начинай, тоже полезная практика. Бранч для гуя, бранч для хуйни, бранч для малафьи, коммит коммит коммит, сразу видно что да как развивается. Даже для мелкохуйни гит норм тема. Необлизательно на гитхаб пихать, можешь локально репу иметь.
1304 2673404
>>73317
Понял, спасибо. Буду думать над ООП и паттернами.
1305 2674217
Возникла интересная для меня идея приложения. Но интересна она мне будет только в случае, если я смогу на десктоп и телебон ее запрогать. Вкат в телебоны муторный? Или с Qt все просто идет?
1306 2674221
>>74217
Очень муторный, особенно муторный с Qt. Проще сделать нативное приложение для мобилки, чем заставить Qt одинаково работать везде. Но придётся учить говножабу/говнокотлин.
1307 2674225
>>74221
Может быть тогда можно связать жабу и плюсы? Чтобы я написал ядро на плюсах, а дальше дергал это из жабы. Есть такой вариант?
1308 2674226
>>74225
Типо пусть ядро крутится отдельным тредом/процессом, а гуй его дерагет. И гуй уже везде свой
1309 2674246
>>74225
Можно, в случае с Андроидом пишешь отдельную динамическую либу и подгружаешь её в приложение на жабе.
Это если приложение умное и всё делает само. Но если у тебя там обычный клиент-сервер, ядро лучше крутить на сервере и обращаться к нему через сеть.
1310 2674255
>>74221
Что не так с Qt на мобилке?
1311 2674295
>>74221
Одно время на выжил-студии вроде был ксамарин или как его там, для мобильной разработки, это нерилейтед?
1312 2674451
>>74295
замарин шарповый фреймворк
1313 2674794
>>28060
Я не понимаю, неужели GPT ничего не может тебе толкового сказать?
Этот нейроублюдок половину кода за меня пишет на питоне
image.png24 Кб, 443x207
1314 2674865
Почему пишет undeclared identificator?
Где я его задекларировать должен был? :hmm:
1315 2674867
>>74865
# define
image.png5 Кб, 359x41
1316 2674868
>>74865
бля я тупой. понял. сори
image.png31 Кб, 455x265
1317 2674932
https://0bin.net/paste/SU3qyL3i#xA1s7-pdN9SzVwnXoBanUyJRBKz57+52cSpWyLbXY2A

А можно ли как-то упрощать лупы и прочую хуйню. Ну может их записывать как-то логически, чтоб не теряться? А то я всё никак не могу правильно этот луп сделать.
1318 2674934
>>74932
Либо я БАЗУ, ФУНДАМЕНТ забыл касательно лупов, т.к. два дня ниче не делал.
image.png38 Кб, 523x260
1319 2674943
>>74932
Не понимаю как quit вызвать. Я тупой, видимо.
image.png39 Кб, 523x260
1320 2674951
1321 2674956
>>74951
Спасибо огромное, бро!
Получается, что:

>когда выбор не равен слову И выбор не равен выходу


>тогда если напишем хинт - получим подсказу, иначе - извини, не понимаю.


>Предлагаем ввести снова.



А если:

>когда выбор не равен слову или выбор не равен выходу


то мы из лупа не выходим? Или как это понять?
Можете не объяснять, если лень, я завтра на свежую голову ещё подумаю.
1322 2674959
А ещё лучше - скажите чё почитать, чтоб с логикой этой разобраться. Скорее всего о последовательности и приоритетах?
>>74956
1323 2674979
>>74956
В том случае у тебя выход будет только если у тебя загадано слово выход.
Чтобы такое наловчиться понимать рисуй таблицу истинности.
1324 2675192
>>74979
СПАСИБО!
1325 2675194
Кстати, а что нажать надо в визул студио, что б, например...
1. ctrl+f
2. ищу слово
3. Выделяю слово
4. ???
5. Все схожие слова выделились тоже и я могу их переписать с клавиатуры.
1326 2675266
>>75194
Чтобы схожие выделились тыкаешь мышкой на них.
Не понял что значит "переписать с клавиатуры". Переименовать эту переменную? Правой кнопкой - Rename, или когда курсор на ней жмешь Ctrl+R Ctrl+R (да, дважды, контрол можно не отпускать).
1327 2675420
Сегодня библиотека не собралась после того как я прописал vcpkg install. Теперь я не знаю, что делать...
1328 2675421
>>75420
баг забить в гитхаб вцпкг
image.png36 Кб, 195x429
1329 2675438
>>75266
смотри, есть у меня tries. я хочу единовременно все tries на attempt переписать, например. Как это сделать?
image.png4 Кб, 203x196
1330 2675439
прим. в саблайме можно нажать find all и он их все выделит и их можно будет переписать
image.png21 Кб, 681x325
1331 2675445
>>75438
>>75266

>Правой кнопкой - Rename, или когда курсор на ней жмешь Ctrl+R Ctrl+R (да, дважды, контрол можно не отпускать).

image.png39 Кб, 805x835
1332 2675446
>>74979
А как правильно писать a!=b в таком форме? Не после ровно ставить или до или как?
1333 2675447
>>75445
Всё, пон. Спасибо. ктр+р сначала не работал, пока не перезапустил вскод.
image.png27 Кб, 225x225
1334 2675448
>>75447

>вскод


Я тебе про выжил-студию писал, думал что ты в ней.
1335 2675451
>>75194
:/search_key
)))
image.png39 Кб, 523x260
1336 2675452
>>75446
Равенство не надо. Когда ты сравниваешь стринги у тебя два варианта - равно или нет. Сама операция сравнения стрингов это булевый результат. Потому сравнения записывай как булевы переменные.
Можешь их отдельно для прстоты вынести.
1337 2675453
>>75448
вскод это же Визуал Студио? или код!=стандартная?
1338 2675454
>>75452
Понял. Спасибо ещё раз!
Мне пока что пиздец всё нравится, ток сложно бывает и ошибки какие-то постоянно лезут, я 80% времени ошибки выдаваемые визуал студио фикшу, а не пишу что-то. Надеюсь не заброшу через месяц и будет так же приносить удовольствие, а то у меня АБВГД
1339 2675476
>>75452
Уже минут 30 пытаюсь осмыслить и перенести всё в текст.
Тут получается "a ∧ b", как я понял.
А в каком случае получится " !=a ∧ !=b"? Когда мне надо инвертировать для удобства ПОНИМАНИЯ рез-тат?

UPD: после 10-го переписывания одного и того же куска кода оно таки заработало правильно. Что я изменил - в душе не ебу. Но вроде всё понял после переписывания происходящего в текст.
1340 2675478

> Что я изменил - в душе не ебу. Но вроде всё понял после переписывания происходящего в текст.


Причём заработало оно в момент разбора этого в тексте, так что видимо я к чему-то таки пришел с помощью этого разбора. Понять бы ещё к чему. КЕК
1341 2675482
А ещё я открыл воспоминание из школы, как я ебал в рот всю эту логику, потому что проспал пол урока и потом уже ничего не понимал.
1342 2675485
>>75421
https://github.com/arvidn/libtorrent/issues/3878
Это пиздец... Я думал vcpkg должно решить все мои проблемы. А нихуя.
1343 2675490
>>75453
Есть IDE под названием Visual Studio https://en.wikipedia.org/wiki/Visual_Studio которая существует с 97 года.
Есть редактор кода под названием Visual Studio Code https://en.wikipedia.org/wiki/Visual_Studio_Code который существует с 2015 кода года.
Это разные вещи.

>>75454

>Мне пока что пиздец всё нравится, ток сложно бывает


Преодоление сложностей приносит удовольствие.

>и ошибки какие-то постоянно лезут,


С опытом не проходит, просто ошибки другие, лол.

>я 80% времени ошибки выдаваемые визуал студио фикшу, а не пишу что-то.


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

>Надеюсь не заброшу через месяц и будет так же приносить удовольствие, а то у меня АБВГД


Смотри гайды, читай книги, и ты пока не наработал логику и тебе это надо подтянуть.

>>75476
Разбивай все на атомарные куски пока что.
Вот для выхода, например, из цикла заведи булеву переменную. Потом отдельно булевы подо все. Пока не придет понимание и не будешь тернарники с приведениями писать, попробуй так, потом "усложняй" убирая булы.
Вот твой код, например, для выхода пусть имеет bool shouldContinue = true; который проверяется и меняется в цикле. Хотел shouldExit написать, но лучше положительные булы иметь, так более читабельно.
1344 2675506
Как писать бесконечные циклы? Это ub. Но если они мне нужны?
1345 2675516
Как в clangd указать флаги компиляции для хэдер файла?
Я как понимаю в compile_commands.json хранятся только флаги для cpp файлов, а потом исходя из того откуда ты заинклудил хэдер для него выводятся
Но у меня это в большинстве случаев ломается, например хэдер неожидано забывает на каком стандарте плюсов я пишу, забывает где ему хэдера смотреть и тд

Как чинить????

>>75506
Бесконечные циклы это не уб, пустые бесконечные циклы - уб
1346 2675527
>>75516

> Бесконечные циклы это не уб, пустые бесконечные циклы - уб


Не правда. Даже на cpp reference есть пример не пустой
1347 2675536
>>75516

>пустые бесконечные циклы - уб


Что в пустом цикле может быть неопределенного?
1348 2675538
>>75536
Что делать компилятору в твоем цикле?
>>75527

> cpp reference есть пример не пустой


Покажи, может я что то путаю
1350 2675554
Если у меня огромная шаблонная функция и в нец лишь кусок зависит от параметров шаблона, то компилятор догадается разбить функцию и не генерировать один и тот же код несколько раз ?
1351 2675557
>>75490

>Вот твой код, например, для выхода пусть имеет bool shouldContinue = true; который проверяется и меняется в цикле. Хотел shouldExit написать, но лучше положительные булы иметь, так более читабельно.


Понял, спасибо за наглядный пример. А это не будет работать в худшую сторону, что я не привыкаю к нормальному построению/не ищу ошибки? Или это как раз таки наоборот улучшит понимание?
А то я ведь могу налопатить дерьмовые циклы, который будет только на этому булине построены, которые идёт не пойми как и не пойми где.
image.png77 Кб, 330x320
1352 2675580
>>75557
Перефразируй что ты хотел сказать, я что-то недопонимаю.

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


Разве твой постинг в этом треде это не поиск ошибок?

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


Можешь, наверное? Надо конкретные случаи рассматривать. Я сделал грубо говоря то же самое что и ты, но вынес проверки из условия цикла, потому что мне показалось что так нагляднее и правильнее для процесса.
1353 2675591
>>75580

>Разве твой постинг в этом треде это не поиск ошибок?



Хорошо, тогда новый вопрос:
Как вернуться к началу цикла из конца после вопрос о продолжение игры? Обернуть ещё в один цикл?
Вызовы main() не подходит, т.к. мне надо учитывать счёт во время игры. С другой стороны я 100% могу вынести счёт за пределы int main(); делать return score, но это пока что слишком сложно и не понятно.
мой уровень интеллекта на ответе в капче
1354 2675592
>>75591

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


Если чё - не прошу ничего расписывать. Просто кратко, чтоб я сам всё написал.
1355 2675593
>>75591
БЛЯ ОТБОЙ. НЕ НАДО
Я же могу загуглить:
"как вернуться в начало функции"
1356 2675594
>>75593
ой, цикла
1357 2675615
>>75591

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


Много способов разной степени ужасности.
Пик 1 пример как делать не надо.

>Обернуть ещё в один цикл?


Возможно. А лучше чуть перестроить логику. Пик 2 как сделал бы я.

>Вызовы main() не подходит, т.к. мне надо учитывать счёт во время игры. С другой стороны я 100% могу вынести счёт за пределы int main(); делать return score, но это пока что слишком сложно и не понятно.


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

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

>>75593
>>75594
Вернуться в начало цикла можно... не выходя из него.
1358 2675617
>>75615
Да это так-то понятно более менее, просто мне ещё надо скор считать, и вот тут я встрял.

Если я определяю интеджер внутри цикла или проверки if/else - то он только внутри цикла будет существовать? И достать его от туда нельзя?

Т.е. мне надо всё, что внутри функции - обернуть в цикл while(cont == true), предварительно создав "int score = 0" и " int finalScore = 0" и "bool = true" вне while.
В while надо создать if( cont == true), где будет весь существующий код. В коде надо получить score из length и за правильное слово к finalScore - добавлять score, а для hint - делать score -= (score/2).
в конце предложить продолжить игру или прекратить, а так же cin >> cont
И вот тогда, после, создать else(т.е. если конт будет не тру), написать 'спасибо за игру' + 'финал скор'.

Звучит, вроде, логично... Но я уверен что я опять какой-нибудь андейфайнд словлю.
1359 2675621
>>75617

>Если я определяю интеджер внутри цикла или проверки if/else - то он только внутри цикла будет существовать? И достать его от туда нельзя?


Верно.

>В while надо создать if( cont == true), где будет весь существующий код


Необязательно. Как я говорил - большая вложенность плохо влияет на читабельность. Если "иф" больше того что в него не входит, то лучше обернуть то что в него не входит.
while(...)
{
if (cont)
{ / dohuya coda /}
else {/ final words/}
}
->
while(...)
{
if (!cont)
{ /final words/
break;
}
}

Ключевое слово "break" выходит из цикла.
1360 2675622
>>75617
>>75621
Уф, нет, в глаза проебался, у тебя уже проверка в самом цикле на cont идет. Тебе ничего дописывать не надо, просто ставишь cont = false когда надо выйти и выходишь, никаких ифов внутри не нужно.
1361 2675633
>>75527
Сам не пизди и читай стандарт. Volatile переменную дергай.
1362 2675643
>>75633
О, я понял! Если в программе объявить ВСЕ переменные volatile, UB вообще никогда не будет!
1363 2675647
>>75643
И оптимизацию выруби от греха, дебажный билд в продакшен хуячь.
1364 2675648
>>75643
Нет, останется же еще сложение чисел >>40253

Но если без троллинга, тебе надо всего одна volatile внутри бесконечного цикла, и он уже не UB.
1365 2675666
>>75538

>Что делать компилятору в твоем цикле?


Крутить цикл и не задавать вопросов.
1366 2675671
Пустой if тоже UB? А пустая функция? А пустой try-catch?
1367 2675706
std::invoke(std::forward<F>(callableObj), std::forward<Args>(args)...);

Какой смысл передавать выделенное через std::forward<>()?
1368 2675718
>>75706
Не знаю.
1369 2675723
>>75633
В каком месте я напиздел?
1370 2675733
>>75621
>>75622
Спасибо, анон, что помогаешь. Ты меня очень возбуждаешь и побуждаешь
1371 2675840
Двач помоги
Два вопроса:
-При каких условиях getFileSize https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getfilesize запишет -1 вместо размера?
-При каких условиях readFile вместо содержимого запишет 0 в буфер?

При этом файл должен существовать.В тырнетах ничего найти не смог.
1372 2675886
>>75840

>-При каких условиях getFileSize https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getfilesize запишет -1 вместо размера?


If the function fails and lpFileSizeHigh is non-NULL, the return value is INVALID_FILE_SIZE and GetLastError will return a value other than NO_ERROR.
1373 2676180
>>75485
Вот скажите мне, залетному, в чем проблема настроить либу так, чтобы она нормально компилировалась? Это же даже не какая то экзотическая платформа, где надо писать свои дефайны, чтобы нужные функции дергать и дегко накосячить. А ебучий виндовс. Почему нельзя настроить сборку на винду, сука?
1374 2676251
>>76180
Очевидно потому что вцпкговно и прочее не нужное дерьмо.
Бери сорс собирай на здоровье сам, очевидно же.
Даже не поленился в новую капчу.
1375 2676273
>>75886
Вопрос не про случаи возврата -1, а про то как такого добиться.
1376 2676274
>>76251
Студентик, для laba2.cpp да, не надо.

Устроишься на работу первый раз - увидишь, что все дохуя как надо
1377 2676285
Анансы, привет. Я в C++ не разбираюсь, мне нужно только скомпилировать hook, который я нашел на просторах интернета. Но проблема в том, что он использует библиотеку deutours, честно я по разному пытался ее собрать и линкал ее visual studio, он не видит этой библеотеки, когда я ссылаюсь к include <deutours.h>, помАГите плез
1378 2676318
>>75622
Короче при таком коде - когда я что либо ввожу - программа офается.
По идеи у меня следующее:
контр = тру
whike cont true = делать следующий код
if cont true = делать основной код
спросить cin >> cont в самом конце if
Он запускает код по кругу и проверяет, если я пишу фолс - конт уже не тру, и он сразу переходит к else. Но на деле он просто офает код. Даже если тру напишу или любойдругой ввод.
1379 2676319
>>76318
Убрал вообще елс. он его тупо не выполнял даже.
Получается како-то не так cin >> cont взаимодействует?
1380 2676321
>>76319
Убрал син конт - начал пускать код по кругу. Чяднт?
1381 2676322
>>76321
А ещё у меня все cout начали подсвечиваться. Грешу на это и не понимаю как пофиксить. Появилось после добавления int tempScore = 0, если его удалить - то он всё равно подчёркивает ошибку
1382 2676332
>>76322
Блядь, дурдом. Удалил бул+инт+инт+инт в мейне и луп вайл-иф, после чего нажал ctrl+z и каут перестал подсвечиваться...
1383 2676337
Я уже полностью облегчил код и начал проблемы по одной разбирать, а не писать всё сразу и потом разбираться - но и это не помогает. Уххх.

А cin надо постоянно cin.clear делать после каждого ввода? в коде другого чела увидел...
Woodpecker.mp42,9 Мб, mp4,
480x360, 0:55
1384 2676344
>>75706
Бамп.
Я требую объяснений!
1385 2676349
>>76337
https://0bin.net/paste/+GSi2gWC#K8zNLRpyPhJuiE9UIOJC60skuJpJ-74NpRZbBbXk5Dq
Вот так вот сейчас код выглядит. Всё выглядит элементарно, как по мне. Но почему-то син не меняет тру на фолс и не хочет воспроизводить элс. Совершенно не могу понять, почему.

>>76344
Я бы помог, если бы понимал что ты пишешь.
1386 2676354
А когда такие вот затупы происходят - что стоит делать?
1. Например гугл не очень помог, я сравнил и понял только то, что стоит под себя код переписать.
2. Стоит ли дальше в нём копаться и разбираться? Может стоит то же самое, но с нуля написать?
3. Стоит ли переписать его под себя? Потому что за основу взят код из книги и вот основной блок игры с циклами - мне не нравится, например, из-за тех же условий, например.
>>76349
1387 2676401
>>75706
Почему каждый раз встреча с этой частью языка вызывает у меня тошноту?
Поправляйте:
void f(T&& callable){
invoke(forward<T>(callable));
}
Как я понял, без форвард мы передадим лвалуе. Что может быть важным, если у функции есть cv-quals.
1388 2676402
>>76349

>если бы понимал что ты пишешь


Зачем форвардить вызываемый объект в контексте std::invoke() ?
Есть вообще такой сценарий, когда это имеет смысл?

Насколько я разумею, std::forward() нужен для того, чтобы перемещение сработало там, где это ожидается.
А у вызываемых объектов в принципе есть чего перемещать?
1389 2676417
>>76402

>>если бы понимал что ты пишешь


>


Бро, если бы понимал что ты пишешь - в целом о программинге, я ж порофлил. Я вообще нихуя не знаю и профан. KEK
1390 2676419
>>76402
Сразу понятно, что мой говнокод не посмотрел. сэд
>>76417
1391 2676442
Сука, да почему этот cin >> cont в любом случае оффает программу. Я уже код переписал, но он всё равно никак не взаимодействует с основным циклом while и if...

Короче пойду какую-нибудь лёгкую программу на лупах писать, чтоб разобраться, что не так...
1392 2676449
>>76442
Лучше сразу на питонах.
1393 2676451
>>75840
Бамп

Пробовал и права менять и создавать пустой файл большого размера, все равно не то
image.png78 Кб, 898x524
1394 2676454
>>76442
Бля. Нихуя не понимаю.
Может кто какой-то сайт посоветовать, где я могу в залупах потренироваться/последовательности и пр. пр. и изучить всё это. Пока что мне это явно не даётся...
1395 2676456
>>76454
А ты вводишь то что?
image.png106 Кб, 670x1130
1396 2676457
1397 2676460
>>76456
Да что угодно. Я пытаюсь понять, в какой момент мне вставлять cin > cont1, в какой момент мне просить 'выберите cont1 true or fales', и как при случае true - возобновить цикл while (cont1), потому что куда бы я эту хуйню с син конт1 не вставил - он её продолжать не хочет, а выходит из лупа самого первого и офает программу.

Почему когда я делаю cont1 = true - он её офает? Он же дожен рептить её. Я сто проц куда-то не туда вставляю что-то и не понимаю последовательности.

>>76457
Так у меня тоже самое ведь, пока конт = тру цикл работает. Только вот если я меняю конт1 на true повторно - то он выходит из цикла. Я вот этого не понимаю, почему он не продолжает работьать.
image.png96 Кб, 629x556
1398 2676462
Он же лупиться должен, когда я true ввожу, а не из цикла выходит out of while(1)
>>76460
1399 2676472
>>76460

>Я пытаюсь понять, в какой момент мне вставлять cin > cont1


В любой внутри вайла, но чисто логически лучше вставить в конец.

>я меняю конт1 на true повторно


Ты еблан и вводишь true скорее всего. Если бы ты внимательнее смотрел на мой скрин, то увидел бы, что я ввожу 1.

Вкатуны 2023. Итоги.
1400 2676491
>>76472
Пиздеееееец. Конечно я ввожу тру и фолс. я думал он их как тру и фолс может воспринимать, а, точно, он же тру и фолс как текст воспринимает.
бляяяяяяяяяяяяя
я с этим весь день ебался.
спасибо огромное.
1401 2676492
>>76472

>Вкатуны 2023. Итоги.


Да это чисто хобби новое, в индустрию вряд ли пойду, потому что я слишком тупой. я творческий рисовальщик, хотя хуй знает, что из этого может выйти
image.png17 Кб, 274x64
1402 2676496
>>76318
Это бесполезный дубликат, потому что у тебя while уже проверяет cont и если ты в цикле поменяешь его, вайл просто не запустится и ты сразу выйдешь из цикла. То что в else не будет выполнено никогда в принципе. Иф первый лишний, элс, соответственно, тоже. Можно второй иф оставить.
>>76319
Нет, цин тут ни при чем.
>>76321
Перестал менять условие которое позволяло бы выйти из цикла.
>>76322
Смотреть надо.
>>76349
У меня не открывается, картинкой можешь закидывать.
>>76354

>А когда такие вот затупы происходят - что стоит делать?


Метод резиновой уточки: попытайся подетально объяснить что делает каждая часть твоего кода воображаемому собеседнику, представь что объясняешь младшекласснику или тебя учитель попросил объяснить, или еще что угодно, лишь бы тебя разговорило.
>>76442
>>76454
>>76460
>>76462
Я не пробовал, но по-моему в бул считывать инпут приведет к тому что любой инпут будет тру. Считывай инпут в стрингу или чар и сравнивай буковку, например.

>>76472
А hui оно засчитало как false что ли? Никогда не пробовал в булы цином писать, занимательно.
1403 2676512
>>76496

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


Да, так и начал делать, сам до этого допердел. Вон >>76454 Но почему оно не работает, я так и не понял, пока анон не сказал совершенно очевидную хуйню >>76472

Короче пиздец я ебалн.
1404 2676515
>>76496
Насколько я знаю, все кроме единицы это false.

Ты свиду умный, в этом шаришь?
>>75840
>>76451
.png18 Кб, 280x280
1405 2676541
Где здесь C++, guest?!
1406 2676581
>>76515
>>75840
Судя по прочитанному - когда файл больше четырех гигабайт, если ты не имел в виду Ex версии этих функций.
Не нашел каких-то заметных способов фейлить их. Тебе зачем в целом, дебажишь что-то?
1407 2676585
>>76581

>больше четырех гигабайт


Пробовал и 4.5 и 9 гб создавать через fsutil, все равно нет.

>дебажишь что-то


Ну типа.
1408 2676589
>>76585
Я тупанул, имел в виду ровно четыре гигабайта. Точнее 0xFFFFFFFF байт. Тогда выдача размера совпадет с константой INVALID_FILE_SIZE
image.png16 Кб, 574x174
1409 2676592
>>76589
Т.е. в fsutil размер со скрина выставить?
1410 2676599
>>76592
Все равно не то :(
1411 2676608
>>76599
Ничего конкретно про поломку гетфайлсайза не могу найти, функция, видимо, работает весьма прямолинейно. Пока не пойму суть задачи - не знаю куда еще копать.
1412 2676622
>>76608
Суть - программа выводит одно если 0, другое если 1. Как получить 1 описано на скрине, т.е. должен выполниться тот if. А вот как этого добиться я пытаюсь понять.
telegram-cloud-photo-size-2-5332369174531524113-y.jpg12 Кб, 836x62
1413 2676634
>>76608
Решил воссоздать этот код сам. Читаю через
HANDLE file = CreateFile("filename.txt", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
Получаю размер через
DWORD file_size = GetFileSize(file, NULL);

Диагноз - неверно получает размер файла, но таки выводит (тестировал на 8.38гб), содержимое судя по всему тоже выводит ибо он забит пустотой при создании.
1414 2676644
>>76622
На каком скрине?
1415 2676645
>>75840
Что будет, если в другом процессе заблокировать файл через LockFile()?
image.png226 Кб, 932x322
1416 2676663
>>76644
>>76645
Можно как для обезьяны разъяснить? В пайпе создать новый процесс и там LockFile выполнить?
1417 2676666
>>76663
Нет, просто напиши отдельную программу, которая будет блокировать этот файл, а из основной программы вызови GetFileSize() и посмотри, что она вернёт. Вдруг как раз -1
1418 2676670
>>76666
Я же могу сделать то же самое убрав права на чтение.
telegram-cloud-photo-size-2-5332369174531524195-y.jpg52 Кб, 1033x463
1419 2676680
>>76670
Отключил права чтения, ситуация пикрил.
image.png540 Кб, 900x900
1420 2676726
>>76663

>этот внешний вид кода


Ты на Борланде пишешь что ли?
1421 2676967
>>76726
На Visual C++ был такой же внешний вид, скорее всего это он и есть на борланде он бы кодил mouse.click:=true
image41 Кб, 170x209
1422 2677040
>>76726
Джун, спокуха. Это же IDA Pro
1423 2677086
>>77040
Джунам и не только в реверсе шарить не обязательно имхо.

Короче я вернулся с новым пониманием проблемы. Мне нужно где-то найти код функций либы windows.h. Или хотя бы адекватную доку а не те полторы строчки, которые есть на сайте майкрософта
1424 2677094
>>77040
На пике дама выглядит будто у нее какая-то генетическая умственная болезнь, будто череп малформирован
1425 2677132
>>77094
Так люди и выглядели в 1600-1700 годы, как Мантенон
image.png53 Кб, 750x305
1426 2677258
Опять пол дня в стенку долблюсь.
Я правильно понимаю, что цикл работает сверху вниз и даже если у тебя 10 if else if etc то они будут поочередно выполняться?
Как в таком случае сделать так, чтобы ЕСЛИ был использован хинт, - при введение word давал /2 очков? Куда и какую конструкцию вставлять? Добавить в if ещё один cin и if? Тогда как-то хуй пойми как оно работает. Хз короче, совсем запутавася.
1427 2677259
ЕБАТЬ Я ГЕНИЙ. Я придумал
Я долбавлю счётчик для хинта и сделаю две проверки ворда, если счетчик будет n, то даст /2 а если n1 то фулл скор.

Но нормальное ли это решение?..
>>77258
image.png83 Кб, 854x418
1428 2677274
>>77259
Во ебать, хуя я себя сейчас хорошо ощущаю. Прям как будто дофаминчика через шприц в мозг ввели.
1429 2677305
>>77274
Чувак... У тебя верстка, то есть отступы
Сбиты
Так легко не заметить, что уровни вложенности не такие, как ты предполагаешь
Проверь control flow
1430 2677340
>>77305
Мне не нравится когда вот так
if ()
{
blabla
}
else
{

Мне хочется так, а он автоматом первый вариант делает или хуй пойм как:
if asdfasd {
}else {
}
1431 2677344
>>77305
На самом деле мне похуй как - просто он постоянно как попало всё это делает из-за того, что я то интер удалю, то таб, то фигурную скобку не туда впендюрю...
1432 2677361
>>77344
Я так пишу:
для функций/классов открывающая{ на отдельной строке
для лямбд/ифов/вайлов -- на той же
вложенный блок, даже если это одна строка без {}
-- всегда на отдельной строке с отступом
все {} блоки -- тоже, что в фигурных скобках -- на один таб больше
хорошо, когда есть автоформатирование, которое так делает, если хирургией кода занимался
особенно заебись, когда at will хуячишь всему файлу автоформат,
и на большую часть кода это никакого действия не оказывает
PS в виме форматирование это =
== действует на строку
=5j на пять строк вниз
1433 2677392
>>77340
Первое лучше.
1434 2677448
>>77340

>Мне хочется


Tools->Optios->Text editor
1435 2677453
>>77340

>он автоматом первый вариант делает


На копипасту или на ввод ';' он автоматом форматирует по заданным правилам форматирования. Можно этот автомат отключить.
1436 2677461
>>77448
Он в вскоде а не в студии.
>>77340
Ctrl+,
image.png216 Кб, 1570x1039
1437 2677552
короч прогу уже сто раз переписал, сейчас хотя бы цикл нормально работает, но проблема в том, что во второй части while, где if(guess==word&&hintCount==1) и его else - почему-то финалсейвдскор постоянно 0 выдаёт. без разница += или =+ или = - результат один - ноль очков.
1438 2677553
при этом в хинте - всё нормально отображается >>77552
1439 2677562
>>77552
А, я кажется понял. Мне выдаёт тот, что в конце, а не тот, что в if? а почему в if cout не работает?
image.png7 Кб, 531x136
1440 2677568
>>77552
после хинта guess the word - работает
1441 2677578
>>77568
кажется начинаю понимать. Это как-то с хинт каунтом связано... но если честно - не до конца.
1442 2677589
>>77568
=+ азаза
1443 2677591
>>77589
у тебя вызывается унарный оператор плюс, который, как правило, просто возвращает свой аргумент
1444 2677600
>>77568

>wanto to continue


Ты из этих чтоли, из эсперантистов?
16447388290790.jpeg25 Кб, 432x600
1445 2677607
>>76634
>>75840

Бамп

Переформулирую вопрос. Какой файл подать на чтение, чтобы createfile вернул нормальный хендл (т.е. открыл файл), но getfilesize вернул invalid_file_size (т.е. -1)? Весь тырнет уже перерыл и миллион способов попробовал.
1446 2677612
Если я в коде беру ссылку на переменную, то она в регистр не попадет, что ли?
1447 2677661
>>77612
Язык c++ никакие регистры не регламентирует. Это не макроассемблер
1448 2677663
>>77607
Ну там какой-нибудь неймд пайп или хэндл драйвера, или назвать файл "__SIZELESS_PLEASE__"
1449 2677664
Кто/что нормально объясняет проблему рюкзака? Я нихуя не могу принять это построение таблицы, вроде каждый раз читаю объяснение и для каждой конкретной проблемы вроде бы как бы понятно как, но самого понимания нет. Другие алгоритмы норм понял и использую, а эту хуйню не могу.
1450 2677750
>>77661
Вот мне интересно как компилятор это в итогеикомпилиоует
1451 2677751
>>77750
Как захочет
1452 2677776
>>77591
Так, частично понял, а более информативно рассказать можешь? Т.е. у меня возвращается значение плюса? Или что? ну += тоже не работает. Надо просто finalScore = finalScore + score написать?
1453 2677779
Не, так тоже не работает.
Я не понимаю.
>>77776
1454 2677780
>>77776
то, что ты написал, это для стандартных типов эквивалентно
значит, ошибка в другом месте
image.png106 Кб, 848x520
1455 2677792
>>77780
Так в каком? У меня даже рабочий вариант есть, который я для упрощения писал - а разницу хоть убей не вижу...
1456 2677812
>>77792
не могу сказать, код контринтуитивныц
1457 2677822
>>77812

> контринтуитивный


шо
1458 2677845
>>77822
hint это подсказка а не ответ answer;
угадать guess а не choose
делишь умножаешь нихуя не поняно
1459 2677863
>>77845
Чиво...
guess == hint
если guess (cin это - ввод) == hint { do something}
choose - вы выбрали слово и получили половину очков. Ну тут я просто на рандоме написал, т.к. в упрощённом варианте был не guess, а choose a word
1460 2677868
>>77792
Я тебе помогал и даже я уже не понимаю что твой код должен делать.
Распиши конкретно по кускам что за что отвечает, проследи за потоком и возможными вариантами ветвления (именно это всегда делать надо), проследи за переменными какая за что отвечает.
Вот мой вариант того как я понял твой код мог бы выглядеть.

Что особенно запутывает это вложенность твоего кода, кстати.
1461 2677869
>>77868
хмм, у тебя много того, чего я не знаю. Мне гуглить всё это?
1462 2677871
>>77869
прим auto&
и что-то с векторами связанное.
1463 2677872
>>77868
ну короче спасибо. ща анализировать буду.
Вообще мой код работает в упрощенном виде, просто когда я его перенёс - что-то забыл, видимо, и теперь не могу это найти.
1464 2677876
>>77871
>>77869
Это я так инициализирую загаданное слово/хинт, ты делай как делал, я не знаю как ты инициализируешь.
>>77872
Вот как я расписал попробуй сделать, сам и заметишь что не так. А если нет - выкладывай.
image.png227 Кб, 1501x759
1465 2677882
Решил, в общем, переписать рабочий код с нерабочего и понял, что просто случайно if guess == theWord - в вайл положил, а не вне него.
(слева рабочий, справа - нет)
1466 2677886
Можно ли привязать текстовое значение к тру или фолс? Как это можно сделать? Например, bool continue = true, но при этом я мог написать в инпуте "stay" или в случае с false - 'leave', и чтоб он регистрировал их как тру и фолс. Как это реализовать?
1467 2677890
>>77882
И ещё, почему он иногда начинает cout подчёркивать? При этом всё работает. Обычно это происходит, когда я ctrl+c ctrl+v делаю или условие в цикл вписываю и он подчеркивает, пока я его не сотру и заново не напишу идентичное...
1468 2677892
>>77552
Слушай, а ты прям новичок в программировании или уже чем-то занимался?
image.png190 Кб, 2726x2100
1469 2677894
>>77882
Да, вот же на третьей >>77868
показано что у тебя мешанина со вложенностями.
Используй "форматировать документ" хотя бы.
Не помню как в коде, в студии Ctrl+K, Ctrl+D
>>77886

>bool continue;


>...


>continue = input == "stay";


Разберем:

>input == "stay"


либо верно, либо нет. И это значение ты записываешь в бул.
Тебе не надо проверять на второй стринг потому что у тебя не может быть третьего значения, бул только два хранит, и эти два могут быть либо твоя строка совпадает с одной загаданной нужной, либо нет, так что проверяешь на одну.
Если надо две строки проверять то два була.
>>77890
Бывает когда интеллисенс тупит. В ошибках не светится - продолжаешь как ни в чем ни бывало.
>>77892
Я думаю, что по коду ответ очевиден.
1470 2677899
>>77892
Пол года js где-то, ну и html+css до этого.
Но в какой-то момент js стал выглядеть убогим и трудночитаемым, с каким-то совершенно дикими условиями, где в ряд написано большое кол-во символов, в пермешку с дичью из css, из-за чего я начал путаться и сдался. Совсем не моё.
При этом когда копался в чужом коде по с# (просто ради интереса) - там такого не было и было всё более-менее понятно, даже без знания языка.

>>77894

>Да, вот же на третьей >>77868


А, блин. Не обратил внимания. Для меня это совсем не очевидно было.

>Не помню как в коде, в студии Ctrl+K, Ctrl+D


Сработало, спасибо.
1471 2677901
>>77899

>где в ряд написано большое кол-во символов, в пермешку с дичью из css, из-за чего я начал путаться и сдалс


например слайдер с картинками на сайте каком-нибудь. Как же эта ебала страшна выглядит.
А мне хотелось именно ПОНЯТЬ, а не к бутстрапу прибегать и пр. говну или как это называется.
1472 2677902
>>77901
Но я не про совсем обычный слайдер, если что. Не тот, который на анимациях затухания, а тот, который перелистывает длинную картинку и репит делает.
1473 2677905
>>77899
Что по C++ читаешь?

Не обижайся, но твои вопросы прям очень дилетантские, я бы посоветовал тебе без рофла зарегаться на чатгпт и спрашивать у него, аля упрощенный гугл. Оно тебе и объяснит лучше, и примеры кода напечатает.
1474 2677928
Блин застрали херью какой то
1475 2677929
>>77928
Да вообще, ньюфагу какому-то плюсы помогают освоить, лучше бы спорили что УБ а что не УБ, да?
1476 2677944
>>77905

> рофла зарегаться на чатгпт


так и делаю. только не у чатгпт, т.к. он в бане
1477 2677979
>>77944
Чем этот ваш чат гпт лучше стэковефлоу того же? Он хоть ссылки на источники дает?
Как верифицировать-то плоды его фантазии?

Я вот даже если в книжке вижу ответ на свой вопрос, все равно не уверен на 100%, что этот ответ правильный. Даже если это книжка Страуструпа.
1478 2678032
>>77979
Чатгпт ускоряет написание простого говнокода, который тебе в падлу писать самому. Очевидно, что на сложных вопросах он не вывозит.
1479 2678044
Так, вы тут этот чатгпт упоминаете, а как им пользоваться-то? Я нагуглил сайт, а он не работает.
1480 2678045
>>78044
Теперь нагугли как пользоваться. Давай ура ура ты справишься
1481 2678048
>>78045
Так там везде говорится зайти на опенаи, а там не работает, акцес денайд почему-то.
1483 2678072
>>78052
А че я сделал? Мне-то за что запретили, пидоры? Только за то что я здесь живу? Вот они мудаки.
1484 2678125
>>77929
Да.
1485 2678127
>>78125
Ну давай.
Когда оператор ++ даст УБ?
1486 2678130
>>78127
До C++17.
image.png68 Кб, 1622x192
1487 2678346
Двач, есть ли способы заставить ReadFile читать максимальный размер DWORD? Выдает ошибку, хотя принимает на вход переменную типа DWORD.
1488 2678421
>>78346
а буфер ты ему на 4Гб выделил чтоб читать?
1489 2678426
Давайте какой-нибудь аналог чатгпт или что-нибудь типа того. Мне пока что чаракетр АИ помогает, там персонаж-программист, но он иногда тупит жутко.
1490 2678479
>>78426
Зачем тебе анолог чатгпт, зачем тебе чатгпт
у меня и обычный гпт иногда такую херь пишет
1491 2678521
Какие есть программы для анализа кода? Например я хочу открыть сурсы с гитхаба и чтобы программа мне показывала при наведении на функцию откуда она взялась, где упоминается в других файлах и т.д. Гугл высирается простынями о безопасности типов когда пытаешься гуглить code analyze.
1492 2678534
>>78521
это ide называется
самый простой способ - vs studio
не самый простой - LSP самый популярный щас clangd
для самых умных - grep
1493 2678538
>>78534

>vs studio


Visual Studio Studio?
1494 2678574
>>78538
да нет
1495 2678617
>>78534

>это ide называется


>самый простой способ - vs studio


Хммм, а разве ИДЕ не будет уметь такое только в своих собственных проектах? Если я открою с помощью vs studio рандомные сишные исходники с гитхаба - он в них разберется?
1496 2678654
>>78617

>а разве ИДЕ не будет уметь такое только в своих собственных проектах?


Еще умеет в CMake проекты, а всё остальное через боль и превозмогание
1497 2678696
>>75840
Была такая хуйня, что допустим файл имеет размер в 3 инта, а мой массив в 4 инта. В итоге readFile возвращал пустой массив.

Вот какое решение данной проблемы мне предложил чатГПТ:

Если ваш файл меньше размера массива, то читать его можно следующим образом:

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

2. Затем вы можете скопировать содержимое временного буфера в ваш массив чисел.

Например, если ваш массив чисел имеет тип long long (64 бита), то вы можете выполнить следующий код:

```
#include <fstream>
#include <iostream>

int main()
{
const std::string filename = "file.bin";
const size_t array_size = 64;
long long array[array_size] = {};

std::ifstream file(filename, std::ios::binary);
if (file.good())
{
// Определить размер файла
file.seekg(0, std::ios::end);
const size_t file_size = static_cast<size_t>(file.tellg());
file.seekg(0, std::ios::beg);

// Выделить временный буфер для чтения файла
char buffer = new char[file_size];
file.read(buffer, file_size);

// Скопировать данные из временного буфера в массив чисел
const size_t elements_to_copy = std::min(file_size, array_size
sizeof(long long));
std::memcpy(array, buffer, elements_to_copy);

delete[] buffer;
}
else
{
std::cerr << "Failed to read file " << filename << std::endl;
}

// Вывести содержимое массива чисел для проверки
for (size_t i = 0; i < array_size; ++i)
{
std::cout << array << std::endl;
}

return 0;
}
```

Этот код считывает содержимое файла "file.bin" во временный буфер, затем копирует данные из временного буфера в массив чисел, используя функцию memcpy(). В конце программа выводит содержимое массива на экран.

Обратите внимание, что функция memcpy() копирует данные в байтах, поэтому мы умножаем размер массива на sizeof(long long), чтобы скопировать нужное количество байтов из временного буфера. Если размер файла меньше, чем размер массива, то скопируется только нужное количество байтов.
1497 2678696
>>75840
Была такая хуйня, что допустим файл имеет размер в 3 инта, а мой массив в 4 инта. В итоге readFile возвращал пустой массив.

Вот какое решение данной проблемы мне предложил чатГПТ:

Если ваш файл меньше размера массива, то читать его можно следующим образом:

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

2. Затем вы можете скопировать содержимое временного буфера в ваш массив чисел.

Например, если ваш массив чисел имеет тип long long (64 бита), то вы можете выполнить следующий код:

```
#include <fstream>
#include <iostream>

int main()
{
const std::string filename = "file.bin";
const size_t array_size = 64;
long long array[array_size] = {};

std::ifstream file(filename, std::ios::binary);
if (file.good())
{
// Определить размер файла
file.seekg(0, std::ios::end);
const size_t file_size = static_cast<size_t>(file.tellg());
file.seekg(0, std::ios::beg);

// Выделить временный буфер для чтения файла
char buffer = new char[file_size];
file.read(buffer, file_size);

// Скопировать данные из временного буфера в массив чисел
const size_t elements_to_copy = std::min(file_size, array_size
sizeof(long long));
std::memcpy(array, buffer, elements_to_copy);

delete[] buffer;
}
else
{
std::cerr << "Failed to read file " << filename << std::endl;
}

// Вывести содержимое массива чисел для проверки
for (size_t i = 0; i < array_size; ++i)
{
std::cout << array << std::endl;
}

return 0;
}
```

Этот код считывает содержимое файла "file.bin" во временный буфер, затем копирует данные из временного буфера в массив чисел, используя функцию memcpy(). В конце программа выводит содержимое массива на экран.

Обратите внимание, что функция memcpy() копирует данные в байтах, поэтому мы умножаем размер массива на sizeof(long long), чтобы скопировать нужное количество байтов из временного буфера. Если размер файла меньше, чем размер массива, то скопируется только нужное количество байтов.
книги 1498 2678734
Народ, тред не читал, но в шапке нету. Посоветуйте для вкатуна в программирование. Начал читать какое-то старье Липмана, где не поддерживаются какие-то пространства имен. Есть годный свежак?
Хочу переделать под себя проект c++
1499 2678809
>>78734
Боюсь тебе не стоит вкатываться, раз ты шапку осилить не смог.
первая ссылка в шапке
1500 2678910
>>78809
Я думал на гитхабе код выкладывают, а там еще и такое. Большое спасибо.
image16 Кб, 800x600
1501 2679052
Посоны, как называется алгоритм(вроде даже есть в std), когда у тебя есть джва массива, и ты перемещаешь во второй массив только те элементы, которые соответствуют предикату, а первый массив "гравитационно падает"?
1502 2679057
>>79052
Не оч понял, но мб remove_copy_if?
1503 2679060
>>79057

>remove_copy_if


Не, не то.
Короче проходимся по каждому элементу arr1, если predicate возвращает true, то перемещаем его в arr2. На месте где был этот элемент в arr1 будет пропуск. После того как прошлись по массиву arr1, все эти пропуски нужно убрать, просто перемещая "гравитационно"(хз как по другому назвать) элементы сверху вниз.
1505 2679077
>>79062
Блжад, это с 11 стандарта было и я этого не знал, ну что за биздедз. Есть какое-нибудь удобное овервью стандартов часика на четыре на каждый?
1506 2679177
А эти вот всякие гитхаб копайлоты и прочая ебанистика - они же платные? Нет бесплатной хуйни гигов на писят которую себе на комп ставишь и она локально высирает тебе шиткод?
1507 2679200
>>79077
Да это ненужное же. Этот стл полюзуют только в туториалах, в проде все для себя свое пишут.
1508 2679201
>>79177
Копилот по умолчанию гтвно потому как рпботает удаленно.
1509 2679612
>>79177
Poe .com
1510 2680123
Есть какой-нибудь адекватный гайд как работают std::streambuf-ы и как писать наследуемые классы?
1511 2680134
https://www.libtorrent.org/
Хуйня ебаная. Дропаю. Не смог собрать. Мб я тупенький. Найду что то другое
1512 2680140
>>80134
Почему нельзя просто добавить эту хуйню хоть в conan, хоть в vcpkg.
1513 2680160
>>80140
Делал по этой инструкции https://libtorrent.org/building.html
Проделал эти шаги (пик 1,2)
Команда была такая : BOOST_ROOT="" cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=20 -DCMAKE_CXX_COMPILER=clang++-15 -DCMAKE_CC_COMPILER=clang-15 -G Ninja ..
Сборка закончилась словами Creating library symlink libtorrent-rasterbar.so.2.0 libtorrent-rasterbar.so

В Cmake прописал
INCLUDE_DIRECTORIES(/home/username/programming/libs/libtorrent/include/)
add_library(libtorrent SHARED IMPORTED)
set_property(TARGET libtorrent PROPERTY
IMPORTED_LOCATION "/home/username/programming/libs/libtorrent/build/libtorrent-rasterbar.so.2.0.8")
Проект не собирается с ошибками undefined reference to ...
1514 2680196
ЕБАТЬ. Я СОБРАЛ. ВСе
изображение.png109 Кб, 1359x318
1515 2680199
А это мне типо в каждый файл запихать надо что ли? Ебать
1516 2680201
Только Clion не видит ничего и ругается, хотя собирает
1517 2680384
>>80199
В симейке пропиши
1518 2680389
>>26726 (OP)
Какие можете посоветовать хорошие книги по современным плюсам? Последние три почти четыре года работал на полузагнившем госпредприятии, где писали на диком гибриде С и древних плюсов и о вещах типа STL, auto или буста даже не слышали. Теперь я снова на рынке труда и осознаю, что мои знания и опыт в общем-то и нахуй не нужны никому, ибо устарели. Что читать, чтобы идти в ногу со временем?
1519 2680396
>>80389
Майерс, Саттер, Александреску + несколько докладов с cppCon посмотреть от ГЛЫБ и ГИГАНТОВ айтишечки.
1520 2680495
>>80396

>Александреску


И что же читать у сего титана? Блевотину 15-летней давности про шаблоны?

мимо баттхертнуты от этого пидараса
1521 2680497
>>80495
Принципиально не читаешь книги, написанные до твоего рождения?
1522 2680503
1523 2680519
>>80495

>аряряяяяя шаблны сложнаааа мам скожи че они шаблоны пишууут((((((


Иди на пуфоне кодь, плебс.
1524 2680799
>>80519
Шизоид, напихивающий шаблоны из-за болезней головы, а не для решения конкретных задач, ты?
1525 2680815
>>80799

>мам ну скажи им че ани сложна кодют хачу штоб проста была!!!


В веб срыгнись, скриптомакака.
1526 2680861
>>80815
латентный функциональщик спокнись
сколько полиморфных лямбд сегодня написал?
1527 2680939
>>80861

>слооожнааа нипаняяятнааа пусть пишут прощииии мам скажи им!!1


Угомонись уже, скрипторебенок, что ты разнылся? Джуном даже не берут?
1528 2680943
>>80939
а сам-то что на двачах делаешь посреди рабочего дня? или дрочишь пока твои метапирамиды третий час конпелируются?
image.png100 Кб, 200x256
1529 2680967
>>80943
Да. За меня код пишет компилятор, пока ты изливаешь свои неосиляторские бугурты, скриптодикарь.
image.png17 Кб, 493x147
1530 2680982
А почему сначала rows а затем columns?
ровс - ряды. колумнс - колонки.

В первую очередь появляется массив 1 потом массив 2?
т.е. в моём случае
= {}
= {{'1'}}
= {{'1','0'...}
= {{...}{...}}

А то я чё-т запутався.
1531 2681005
>>80982
Поместим по байту в каждую клетку доски 100х100 (международные шашки).
одномерный стобайтный массив это int8_t value[columns]
так как принято смежные байты читать слева направо
двумерный 100х100 это int8_t value[rows][columns]
так как
typedef int8_t row[columns];
typedef row board[rows];
1532 2681009
>>80982
Как повернешь так и будет, главное чтоб никто не путался.

>А то я чё-т запутався.


Ох, щи-
Контейнер первого порядка у тебя пишется в строку, контейнер в котором он лежит выводишь на каждой новой строке, ряд за рядом, и номер элемента в нем - номер ряда содержащего контейнер первого порядка.
1533 2681012
>>81005
суть в том что квадратные скобки это оператор индексации, а никак не умножения структуры данных

char value[rows][columns]
первый раз индексируешь value -- получаешь row
второй -- char
1534 2681108
Я не очень хорошо понимаю, что дает создание объекта класса через new и зачем оно нужно. new возвращает ссылку на объект,но зачем она нам нужна? Чем вариант обычного создания MyClass Obj хуже?
1535 2681109
>>81108

>new возвращает ссылку на объект


нет, возвращает поинтер на объект

> Чем вариант обычного создания MyClass Obj хуже?


тем что оно в конце скоупа умрёт
1536 2681110
>>81109

>нет, возвращает поинтер на объект


Черт,это я тут описку сделал,честно-честно. Конечно же поинтер,а не ссылку

Спасибо за пояснение.
1537 2681114
>>81109
Можно какой-нибудь пример ,в котором нам нужен объект,который не должен уничтожаться после выхода из скоупа?
1538 2681120
>>81109
Тебя спросили чем оно хуже, а не чем оно лучше.

>>81114
Можно.
1539 2681153
>>81109

>тем что оно в конце скоупа умрёт



Так это наоборот заебись. А если ты забудешь сделать delete для new объекта(что немаловероятно), то потом заебешься искать где у тебя утечка.
1540 2681208
>>81153
Ну без указателей ты больше хелрувордов писать не будешь, и даже если ты нахерачишь ретернов ьебе это не поможет.
1541 2681230
>>81005
Пон. Всё, я просто тупанул жёстко. Спасибо
1542 2681263
1543 2681265
>>80519
>>80815
Шаблоны - это недоразумение, вызванное тем, что consteval пилили 10 лет да и то только со второй попытки после constexpr.
1544 2681267
>>81114
Любая функция типа createWindow() createWidget() и так далее результат которых ты будешь передавать в другие функции типа renderMahWindow(window)
1545 2681297
>>81265
Как consteval заменит шаблоны? Как по-твоему должны работать контейнеры без шаблонов? И что с тобой не так?
1546 2681311
>>81297
да как в любом современном языке, например Zig.

Что нибудь типа
auto get(auto t) {
if(consteval isFloat(t)) { return 1.0; }
else if(consteval isInt(t)) { return 2; }
}
конечно еще лет 9 придется подождать нормальной рефлексии...
image.png268 Кб, 960x511
1547 2681330
1548 2681333
>>81208
Чего блять? Причем тут указатели и ретерны?
Я пишу что если ты забудешь удалить new объект из скоупа(а это частая ошибка) - то это хуево, даже в книгах пишут что всегда оптимальнее юзать Obj obj; без явного указания создания объекта.
1549 2681340
>>81153
Для этого есть смартпоинтеры.
>>81108
Удачи создавать все объекты на стеке, ограниченном одним мегабайтом. Даже пару картинок в память не загрузишь.
1550 2681341
>>81333
Такое ощущение, что ты вообще на плюсах никогда не писал.
1551 2681401
>>81297
Так же как в правславном си, через макросы.
на кторых плюсы и написаны
image.png164 Кб, 363x537
1552 2681424
Как этот пиздец осилить? Я уже со второй главы поплыл. Блять вот так всегда нахуй, не понимаю и дропаю, наверное мне дано и я просто тупой(
1553 2681499
>>81311

> > Как consteval заменит шаблоны?


> да как в любом современном языке


> Что нибудь типа


> auto get(auto t) {


> if(consteval isFloat(t)) { return 1.0; }


> else if(consteval isInt(t)) { return 2; }


> }


Ну да, все же знают, что ничего сложнее хеловорлд и физзбазза нормальный программист не пишет, это несовременно.
1554 2681502
>>81340

> Удачи создавать все объекты на стеке, ограниченном одним мегабайтом. Даже пару картинок в память не загрузишь.


Он может возразить, что для этих целей нужно просто использовать библиотеку, который предоставит обёртку под это. Какой-нибудь PngImage, который в стеке займёт байтов 40, например, а в кучу полезет сам, чтобы тебе не пришлось. Так же и динамический массив используют в обёртке std::vector. И получается, что new нечасто приходится использовать, если ты программируешь на высоком уровне. А уже на "среднем" (даже не на низком) уровне, когда тебе нужен собственный контейнер или пресловутый PngImage, выгружающий картинку в память, тут без new никак. От себя добавлю, что QT, например, из-за своей изъёбистости, может просто принудить тебя создавать новые объекты через new, когда окажется, что контейнеры не способны хранить QObject.
1555 2681573
>>81341
Конечно не писал. И авторы книг, которые рекомендуют использовать new минимально и 10 раз подумать об этом тоже не писали. Зато нонейм с двачей писал

>>81340
Да, смартпоинтеры как 1 из вариантов хороши.
image.png1 Кб, 187x25
1556 2681602
это для удобства так делают?
объявлено как
#define JS_PUBLIC_API
#define ..
.....
1557 2681755
>>81330
Че за isFloat. Они обычно все через шаблоны пишутся, а не перегрузки
1558 2681759
Господа, в чем разница между Visual Studio Community, Pro и Enterprise? Насколько сильно Community урезан?
1559 2681771
>>81602
Это может быть нужно для генерации кода или документации сторонней утилитой. То есть в с++ ничего не происходит, но в какой нибудь либе в экспорте помечены доступными только они.
1560 2681786
>>81759
Комунити полноценный уже давно, лет пять наверное.
Про и ынтерпразь отличаются подключенными тим-хуйнями и интеграциями с мелкософтовыми сервисами, ничего из того что тебе как одиночке когда бы то ни было могло бы пригодиться за редкими исключениями.
1561 2681787
>>81786
>>81759
А, и еще аддоны вроде к коммунити нельзя было прикручивать, так что хуй тебе а не решарпер какой-нибудь, вот что может быть важно. Может можно уже, но решарпер платный (был когда в последний раз смотрел)
1562 2681940
>>81755
у того полуебка спроси
заодно поинтересуйся знает ли он значение ключевого слова consteval
хотя по его посту и так все ясно
1563 2681957
>>81602
#ifdef ZDELOTb_DLL
#define JS_PUBLIC_API __dll_export
#else
#define JS_PUBLIC_API
1564 2682319
>>81787

>А, и еще аддоны вроде к коммунити нельзя было прикручивать


У меня на комунити стоит 1 простенький плагин.
А, и PVS Studio тоже как плагин подрубается.

>>81759

>Насколько сильно Community урезан?


Из того, с чем я сталкивался в 2019 версии: 1) в режиме отладки нельзя шагать назад; 2) недоступны фичи по метрикам кода, в частности нельзя узнать сколько строчек кода ты наговнокодил.
1565 2682322
>>82319
Еще вспомнил. Нельзя сменить встроенный браузер. Там гвоздями прибит IE, который больше не работает.
1566 2682889
>>81759
на рабочем ноуте стоит Профессионал честно купленная, на пеке домашней коммунити - а мой взгляд разницы вообще никакой нету.

>>81787
Нельзя аддоны было ставить на Express, Экспресс уже давно мертв.
1567 2683762
Гайз, изучаю щас ооп по Head First Design Patterns и задаюсь вопросом:
А как собсно говнокодить БЕЗ raw указателей? Шейред птр превращает нейминг это учитывая что я всюду тайпдефаю в залупу.
Ссылки не везде прокатывают.
Есть ещё какие нибудь варианты?
1568 2683765
Создан итератор, почему надо писать
cout << "\nThe item name ’" << myIterator << "’ has ";
cout << (
myIterator).size() << " letters in it.\n";

(*myIterator) в скобках? Что будет, если я напишу не в скобках?

Типа myIterator - это объект и я показываю имя объекта. А во втором случае я обращаюсь к дереференсу(eh?) и считаю его сайз, но зачем там скобки? Почему я не могу без скобок написать дереференс?
Хотя не, дереференс это же просто цифра... нихуя не понял...
1569 2683773
>>83765
Аааа... Понял.
Дереференсет - имеется ввиду из референса передаёт вэлью. А если сайз вызвать обычному, без круглых скобок, то он выдаст сайз элемента?

Хотя нахуя там скобки я всё равно не понял...
1570 2683775
>>83765
Я смешарик в итераторах, но
it.size() - вызов метода у итератора
(*it).size() - вызов метода у объекта, кмк
1571 2683779
>>83775
Понял. Звучит логично. Пойду гуглить, спасибо.
1572 2683782
>>83779
нихуя не нагугли. Ну и хуй с ним.
>>83775
В первом случае же - вызов метода и итератора - вот как я выше написал, он выведет size самого итератора? Т.е. он всегда будет равен количеству символов в номере итератора?
1573 2683786
>>83782
Ну у меня ругается на ноу мембер сайз ин истрим итератор, что как бы намекает
1574 2683788
>>83786
Для меня это как пук в воду. Интересно, но не понятно. Т.е. функция сайз не работает с итераторами?
1575 2683794
>>83788
Какая функция size()?
Такого метода у итераторов(я конкретно про istream_iterator) нет.
Ты про sizeof?
1576 2683802
>>83794

>Такого метода у итераторов(я конкретно про istream_iterator) нет.


всё, пон, спс.

А почему у *it.size() такой функции нет, почему её не сделали? Зачем эти злоебучие скобки? Я просто не очень понимаю, нахуя они нужны, если можно было бы просто функцию size() для .it сделать.

Может просто правило какое-то есть или ещё что...
1577 2683805
Не, я типа понял, что так надо писать, а не иначе, но зачем для обращения к объекту надо скобки ставить. Или так во всех дефолтных библиотеках или как это называется с++?
>>83802
1578 2683811
>>83802
У * приоритет ниже, чем у вызова функции.
1579 2683851
А, во, мне далее в книге пояснили, что можно ещё так:
myIterator->size()
Как я понял исходя из этого >>83811 это уровень вложенности или что-то типа того?
1580 2683853
>>83851
Думаю что
->
Просто возвращает (*it)
1581 2683858
Только я не очень понимаю, как это читается. Вот в случае со struct - я понял.
struct MyStruct {
int member1;
double member2;
};
MyStruct *myStructPtr = new MyStruct();
myStructPtr->member1 = 42;

А вот в случае с гумозным it->size() - не очень. Тут наверное надо глубоко залазить в дебри кода и понимать, как оно работает, чтоб воспринимать это на 'человеческом языке'.
Т.е. даже если так подумать, итератор это контейнер, который лежит где-то и имеет вэлью. Т.е. мы из этого контейнера перемещаемся к вэлью на уровень ниже?
>>83851
1582 2683860
>>83858
Хотя стоп. Это же одно и то же...
1583 2683871
>>83853
для указателя ptr->x это (⚹ptr).x
для инстанса класса, допустим, итератора:
iter->x это (iter::operator ->())->x
1584 2683872
Какие +- у статической и динамической линковки?
1585 2683875
>>83871
(iter.operator ->()) я имел в виду, ну это понятно
для стлевских итераторов возвращает iterator::pointer_type
если написать operator -> возвращающим объект, скажем, shared_ptr, то и для него будет вызван operator ->, пока компилятор не доберется до указателя настоящего
изображение.png45 Кб, 675x424
1586 2683876
Че думаете насчет такого кода?
1587 2683877
>>83765
Гугли приоритеты операторов
1588 2683878
>>83876
не скомпилируется
в main() все четко
1589 2683879
>>83878
Сухяли не скомпилируется?
изображение.png58 Кб, 616x460
1590 2683881
ладно, давайте для душних скрин лучше сделаю
1591 2683884
>>83879
а что, компилируется? круто
просто непонятно, что делает код полезного, и у меня включились игры разума
1592 2683885
>>83881
может, ты s очищать хотел?
1593 2683886
>>83885
Не. Все на скрине правильно
1594 2683887
>>83765
У оператора выбора члена приоритет выше, чем у оператора разыменования. Поэтому ★iterator.size() равносильно ★(iterator.size()), а тебе нужно именно (★iterator).size(). Хотя для итераторов, как и для указателей, работает стрелочка: iterator->size().
1595 2683889
>>83886
это ты играешь в аллокаторы?
1596 2683890
>>83889
проебал каламбур

>играть в пул-аллокаторы

image.png4 Кб, 432x37
1597 2683921
>>83875
сложна...
А поясните вот эту приколюху.
Мы создаём строку софар(слово выбранное выше, '-') - типа, чё это за хуйня в скобках? Я могу СТРОКАМ передавать ПАРАМЕТРЫ? О_О Как это вообще работает? Я либо чё-т забыл, либо мне это не объяснили по книге.
Или я что-то не так понял?..
1598 2683925
>>83921
А. Всё. Я понял. Бот пояснил. Короче стрингу с названием можно передать 1. длину. 2. символы. Забыл, видимо.
image.png29 Кб, 748x137
1599 2684041
Чё я не так делаю? Пытаюсь каким-либо образом введенное слово перевести в апперкейс. (Это вообще адекватный способ?)

И заранее спрошу(я ещё до этого не дошёл): можно же код выше вынести в отдельную функцию, чтобы постоянно её не писать каждый раз после cin >> guess
Прим.:
cin >> guess
upperFunction(param1); // (param1 = guess)
Функция, которая в свою очередь повторяет код с пика. Как в таком случае добавить параметр в функцию, чтоб я мог ввести guess в качестве param1 (предполагаю, что int upperFunction(param1) и далее его в коде функции использовать) и что писать в return(явно не ноль, а как-то выводить конечный результат).

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

Спасибо. Прочитаю уже завтра
1600 2684045
>>84041
char - зарезервировано под тип данных.
Назови c
Два: убери конст. Ты же меняешь ее.
1601 2684047
>>84041
Вот раз ты не понимаешь что пишешь const auto &, то не используй пока это.
Сделай через обычный цикл.
lina-tv.png326 Кб, 512x672
1602 2684053
Какой язык программирования лучше всего подходит для написания производительных веб-серверов? Конечно, C++!
Мы спросили уважаемого Вонни, члена ISO C++ Committee:
-- Чем вы обрабатываете HTTP-запросы?
-- С помощью Boost.Beast
Мы спросили сеньора Потчка:
-- Как вы роутите разные пути и методы запросов?
-- С помощью <variant> и std::visit. Парсинг пути -- в зависимости от проекта, Boost.Spirit либо руками.
И мы спросили миддла Болка:
-- Вы нам не пиздите?
-- Код я еще не написал, но выглядит разумно.

https://lina-tv.ru/
1603 2684189
>>84047
Да я, вроде, почитал объяснения, не не до конца понял, как оно работает.
1604 2684339
>>84189
Напиши просто через обычный цикл, все станет понятно.
А потом исследуй, как можно это упростить.
image.png9 Кб, 365x58
1605 2684449
>>84339
Ну обычный цикл не сложно написать...
image.png65 Кб, 757x396
1606 2684466
Не могу только нагуглить, как вывести в ретурн именно g. У меня он её подчеркивает. Только что спросил у бота - он показал пикрелейтед 2, т.е. тоже самое.
IDE жалуется на конверсию из стринга в инт. Я так полагаю, в ретурн можно передавать только цифровые значения. Получается надо как-то конверить строку в инт?
image.png15 Кб, 624x287
1607 2684467
>>84466

>пикрелейтед 2


отвалился.
1608 2684470
>>84467
>>84466
бляяяя, я тупой. отбой.
1609 2684478
>>84466

>When a variable is passed by reference, changes made to it inside the function are reflected in the original variable. This is in contrast to passing by value, where a copy of the variable is created and changes made inside the function do not affect the original variable.


Т.е. когда мы используем референс, мы работаем напрямую с вэлью оригинальным. Таким образом & создаёт временный референс для каждой буквы в оригинальном guess
А в случае, когда мы этого не делаем, то вэлью менется только внутри функции.
Правильно понял? Т.е. буквально мы ссылаемся на внешний вэлью(вне функции)?
1610 2684510
Почему лучше писать в конструкторе передачу по значению, а потом мувать, чем писать константную ссылку, а потом копировать?
1611 2684572
>>84510
Очевидно что тебе не приходится копировать объект при "муве".
Бля если ты тот же анон, что выше ковыряет язык - забудь про этот аспект языка, он тебе пока нахуй не нужен и только сломает моск.
1612 2684576
>>84510
Потому что приссылуе тебе придется функцию перегружать два раза, для лвэлью ссылки, и для рвэлью ссылки
Ну а если по значению брать, то там всего на один мув конструктор больше, а он должен быть дешёвым

на самом деле про перегрузку два раза не совсем правда, можно всякими приколами это обойти, но код такие финты только загромоздят
1613 2684578
>>84576
А можно специально ради этого сделать шаблонную функцию, чтобы perfect forwarding заработал?
1614 2684579
И почему тут нет костыля как в perfect return? Или есть
1615 2684582
>>84578
Можно, но сам понимаешь что запарно, собственно я под приколом это и имел ввиду
что то вроде подобного
func(auto&& arg) requres decltype(arg) == my_type {}
псевдокод
1616 2684586
>>75538

> Что делать компилятору в твоем цикле?


Не выполнять следующие за циклом операторы.
1617 2684588
>>84586
компилятор никаких операторов не выполняет
компилятор компилирует твой код в ассемблер, как ты видишь код с бесконечным пустым циклом в ассемблерном эквиваленте?
1618 2684589
>>84588
Jmp на самого себя
изображение.png260 Кб, 567x368
1619 2684639
>>84589
если Ты Сын Божий, бросься вниз Jmp на самого себя, ибо написано: Ангелам Своим заповедает о Тебе, и на руках понесут Тебя, да не преткнёшься о камень ногою Твоею
1620 2684648
>>84576
А когда нам может быть проблематично отсутствие перегрузки для rvalue? Разве не всегда эту ссылочность можно убрать?
изображение.png5 Кб, 741x95
1621 2684702
Сколько копирований в таком коде?
1622 2684717
Все, я все понял с конструкторами
1623 2684738
Хочу написать класс, который будет заниматься хранением файлов. То есть дает возможность писать в файл, читать. Но это все должно быть буфферезированно. То есть хочу, чтобы он выделил себе в оперативке память, сначала туда хитрым образом писал, а потом, когда она кончится, сбрасывал все на диск. Для этого у меня есть абстрактный класс block у которого два наследника. Для памяти и для диска. Потом мне надо будет понимать где лежит блок. В памяти или оперативке. Как это лучше делать? динамик кастом или override функции?
1624 2684742
Понимаю, что не туда спрашиваю, куда нужно, но всё же.
Всем привет, я долбоёб!
Имеется два проекта на плюсах, один представляет из себя либу, которую постоянно пишу, а второй - основной проект, в котором либу использую. Пока что они у меня лежат в соседних папках, по необходимости пушатся в гит. При этом использую cmake + git submodules. Т.е. либа прописана в основном приложении как сабмодуль (соответственно, либа сразу в двух местах на диске - по соседству с основным приложением и внутри него же, но как сабмодуль). Подход походу дурацкий, потому что я заебался обновлять сабмодуль с либой руками. Не понимаю, как правильно реализовать подключение зависимости, которая разрабатыватся параллельно с основным кодом? Гит сабтри решит проблему? Может, сделать ход конём и поместить либу внутрь основного проекта, при этом прописать папку либы в гитигнор? Но как тогда в гите зависимость прописать? Уууу сука, уже третий день жопа горит от своей тупости и не знания методик.
1625 2684743
>>84738
Или проще вообще nmap сделать и пусть ОС ебется как хочет?
1626 2684785
>>84742
>>84742

>по соседству с основным приложением


нахуя?
1627 2684791
>>84785

>нахуя?


Ну либа отдельно, приложение, использующее её - отдельно, в чём проблема? Либа достаточно большая, заслуживает отдельного репозитория.
1628 2684792
>>84742
Что мешает ссобирать либу как шаред и просто лигковать к основному проекту?
Я так делаю уже оооочень давно для этапа оазработки, разумеется просто все что можно выносишь в отдельные шаред либы и конкретно текущий модуль легко править.
1629 2684797
>>84792
Желание предоставлять в каждом коммите рабочую сборку, а для этого мне надо же каким-то образом предоставлять зависимости вместе с основным проектом, делаю это сабмодулем. В пакетник какой-то засовывать пока не хочу, средствами смейка решать типа fetchcontent - тоже хуйня какая-то. Ну и сабмодуль позволяет собирать одной кнопкой всё, без сборки либы + сборки проекта в два этапа. Одно только плохо - обновлять руками сабмодуль приходится, поэтому стало интересно, какие здоровые подходы есть для подобной нонстоп разработки
1630 2684814
>>84791
так зачем тебе вообще вторая копия, если можно сделать cd в субмодуль во втором терминале?
1631 2684823
>>84814

>так зачем тебе вообще вторая копия


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

>если можно сделать cd в субмодуль во втором терминале


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

Мотивация такая: у проекта есть зависимость от либы. Необходимо эту зависимость автоматом подтягивать к пользователям. Каким инструментом можно это сделать? Я пока решаю это так, что внутри основного проекта есть папка с зависимостями, где сабмодули и лежат, в т.ч. сабмодуль с либой.
1632 2684834
>>84823
так у тебя субмодуль уже гит репозиторий
зачем тебе вторая его копия на том же уровне что проект
1633 2684935
>>84478
Бамп. Я всё правильно понял?

А вообще понимания таких сложных вещей - со временем лучше становится? Или это всё чисто дрочь и запоминание и понимание терминологии?
1634 2684942
И ещё такой вопрос: учить лучше на английском, русском или на обоих языках? Просто вот я понимаю, что такое member, и перевод слова знаю, но вот что на русском под этим подразумевается - я понятия не имею. Ток гугл ответил - члены хе-хе, а я автоматом в голове как участники воспринимал и не очень звучало
>>84935
1635 2685052
1636 2685063
>>84588
Имелось ввиду игнорировать операторы, которые идут после бесконечного цикла. Компилятор имеет право так сделать, и это действительно уб.
1637 2685256
>>84942
Большая часть этих слов имеет русский перевод. Читать надо уметь на обоих языках, при наличии оригинала - в оригинале.

Твой капитан
1638 2685562
сап наносеки
как понять ебанные массивы?
понимаю практически все ооп,функции и т.д.
но написания кода с помощью массива и цикла даются невероятно тяжело.
даже вот сегодня час потратил на задание по сумму всех элементов массива и получилось, слава богу
может мне неправильно о них рассказали и т.д.
есть какие-то источники по этой теме, который раскрывает полностью массивы
с меня нихуя
спасибо
1639 2685733
>>85562

>невероятно тяжело


Когда мамка даёт пронумерованный список продуктов и отправляет в магазин, тоже зависаешь?
1640 2685763
>>85562
Пальчики загибай когда массив индексируешь.
1641 2685807
>>85562
Что за задание?
1642 2685959
>>85256
Я спрашиваю нужно ли знать перевод слов на русский, если понимаешь на английском, потому что в программирование совсем не прямой перевод слова, а адаптация под русскоязычные понятия.
1643 2686071
>>85959
Я бы сказал, что если тебе встречается понятие в процессе разработки, ты должен уметь его назвать на хотя бы одном языке, то есть треугольник: 0) мир идей 1) русский 2) ангельский
ну и в процессе левелапов у тебя все больше нейронных связей
1644 2686478
аноны есть еще какие-то сайты с задачками?
кроме leetcode
1645 2686523
>>86478
Кодварс.
1646 2686849
Есть либа которая очень просто устанавливается на linux, но сама она кроссплатформенная. Что легче - установить ее на винду или собрать с линукса на винду?
1647 2686864
>>86478
acmp.ru
1648 2686875
Кто нибудь работал с vlclib? Задача. У меня есть файл битый в многих местах (известно какие участки доступны, а какие нет). И надо уметь воспроизводить файл через vlc работая с битыми участками. То есть как то понимать какой участкок нужен и пропускать его. Я поигрался, vlc умеет воспроизводить файлы, если кусок просто пропущен, но на куске падает.
09-36-53.png141 Кб, 1581x893
1649 2687064
1650 2687075
>>87064
Ещё мой дед смеялся над этим мемом.
image.png166 Кб, 757x540
1651 2687691
const не мувается (╯‵□′)╯︵┻━┻
1652 2687702
Вопрос от вкатуна:

А мув вобще бывает дорогой? Почему бы мне везде где только можно принимать по значению, а не писать две перегрузки функции
Ну вызовется на 1 мув конструктор\оператор= больше, ну и похуй, это же дешево должно быть
Может плюсы это даже соптимизировать смогут?
1653 2687739
>>87702
Так можно, если тебе норм, что объект, который ты передаёшь, перестанет существовать сразу после вызова функции. А это далеко не всегда норм.
1654 2688704
Хочу изучить как второй язык С++. Ваши мысли ?
1655 2688787
>>88704

Для чего?
1656 2688982
>>88787
Да.
1657 2689045
>>88982

не нужен
1658 2689159
>>87691
template<class T>
T&& move_sukablyat(T const& t) { return move(const_cast<T&>(t)); }
1659 2689203
>>89159
- возвращаешь провисающий референс
- будешь мувать просто все константное, даже если это не рвэлью
1660 2689391
>>89203
То есть мне не показалось, что в таком коде ссылка сдохла?
я смешарик в мув семантике
1661 2689418
Что делать с путями? Кроссплатформенный проект, симейк, кьюти. Хочу чтобы при первом запуске создавался бинарный файл со структурой с настройками, но нужно чтобы он создавался всегда в одном и том же месте, в папке билда, независимо от того откуда вызван бинарник
Как мне к этому подходить? Симейком прокидывать как-то байнари директори основного симейклиста в код?
1662 2689506
Доброго вечера. Тут есть люди занимающиеся машобом? Часто в требованиях вижу помимо питона просят знания C++. В чём разница между этими языками в этой области?
1663 2689510
>>89506
На питоне быстрее напишешь, красивее визуализируешь в нотбуке
На плюсах быстрее, ну и соответственно все кишочки питоновских либ написаны на плюсах

Ну и вообще где важна скорость там скорее всего плюсы
А где надо наиболее быстро принести заказчику вэлью - питон
1664 2689541
>>89418
Кладу бинарник в каталог, куда пользователь без прав админа/суперюзера не может ничего записывать, и запускаю под этим пользователем. Твои действия?
1665 2689606
>>89541
из-за таких мудаков теперь файлы лежат в "C:/Users/Pidor/AppData/LocalLow/Govno_inc/zalupa/Profiles/User/UserProfiles/saves/cache/data/data/data/config.ini"
"Documents/hui/pizda/345fc02b08734efff/ne_vlezai_ubyot/"
"D:/Games/C++"
но сука не в папке с программой
1666 2689645
>>89418
Ге пойму в чем проблнма. Симейк же может с относительнымии путями работать.
1667 2689648
>>89506

>Часто в требованиях вижу помимо питона просят знания C++. В чём разница между этими языками в этой области?


Потому что питон используется как язык "клей" для склеивания библиотек на си/цпп. Ну знаешь там байты переложить, текстом пукнуть в консольку и т.д. А вся вычислительная часть и числодробилки пишутся как раз на си/цпп.
1668 2689675
>>87691
А как иначе?
Перемещение - это передача владения ресурсом, т. е. состояние перемещаемого объекта необходимо изменяется.

>>89159
Такой конст-каст UB.
Объект не перестает быть константой. Вообще, касты никогда не изменяют объект, касты всегда возвращают вновь созданный объект (или ссылку).

>>89391
std::move() ничего никуда не перемещает.
Она просто преобразует тип в &&-ссылку и все. А уже на основании этого типа по общим правилам разрешения перегрузки выбирается соответствующий конструктор или оператор присваивания.
1669 2689711
>>89541
Выдаю ошибку что файл с настройками не может быть создан, предлагаю выбрать другой путь
>>89645
Ну симейк то да, но мне надо как-то в плюсовый код подать путь этот из него и там все пути писать относительно этого поданного
1670 2689716
>>89675

>А как иначе?


С мувом никак
Но очевидно нужно придумать новый кейворд const_move() который бы говорил что замувленный конст больше не будет сущетсвовать и перемещает его с помощью нового конст мув коснструктора, который будет на метамагии запрещать менять состояние обьекто муваемого

всё для того чтобы просто скопировать конст вэлью
1671 2689735
>>89675
Если мы возвращаем && на объект созданный внутри функции это будет повисшая ссылка? Я вот это спрашивал.
1672 2689791
>>89711
О х лол ты что совсем нюфаг? Симейк так же позволяет задавать любой дефайн, те ты можешь легко передать в код любое строку/число.
1673 2689819
>>89711

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


При каждом запуске надо заново выбирать? Или путь сохраняется в каком-то другом месте?
1674 2689829
>>89735
Ну я понял как, выглядит просто непонятно, как именно правильно принято работать с этими путями
>>89791
Пиздец реально, хоть где-то в программе должен быть вычисленный на компиляции путь, по которому можно что-то записывать
1675 2689986
>>89735
В том куске кода не создается объект, там создается новая ссылка.

>Если мы возвращаем && на объект созданный внутри функции это будет повисшая ссылка?


Если & ссылка, то будет висячая.
Если && ссылка, то по идее должно сработать перемещение. Но так делать все равно не надо, потому что RVO.
1676 2690171
Подскажите пожалуйста, что ещё можно писать на с++ кроме desktop'a ?
1677 2690179
>>90171
Все для микроконтроллеров.
Но там от плюсов будут только С.
1678 2690255
>>90171
Матрицу, серверы, хрень всякую суперкомпьютерную.
1679 2690256
>>89819
Вы же под виндовсом, так юзайте свой реестр
1680 2690291
>>90255
>>90179
А под андроид ?
1681 2690297
>>90171
На си и плюсах можно писать все
1682 2690300
>>90256
В оригинальном посте чказано, что проект кроссплатформенный.
1683 2690301
>>90297
Нельзя под андроид писать. С костылями только, основа на java/kotlin, а остальное на C++.
1684 2690345
>>90300
как аргумент пусть приниает путь к конфигу
1685 2690361
Да чел с симейком троль или овощ. Там чсе изи делается.
1686 2690384
>>90291
можно и под андройд, гугленул бы хотя бы для начала android c++ прежде чем тупые вопросы задавать
1687 2690394
>>90384
Да, там Qt используют.
1688 2690403
>>90394

JUCE еще есть тоже
1689 2690599
>>89606
На каталог с программой у юзера может не быть прав на запись. Поэтому настройки-конфиги и кладут в его домашний каталог.
1690 2690613
Есть ли смысл учить C++ сегодня или уже маловостребованный язык? Мои знания в чем угодно на уровне привет мир
1691 2690641
>>90613
Да нет
1692 2690653
>>90641
Что именно "да нет". Мол этот язык уже не актуален сегодня/ближайшие годы или это язык будет актуален ещё долго?
1693 2690665
>>90653
Нет да
1694 2690921
>>90653
Что значит актуален?
Востребован? Да
Пишут ли на нём новое? Да
В мете ли он? Нет
Легко ли залететь? Нет
1695 2691129
Хочу воспроизвести аудиофайл. Вот есть для моих целей некие декодеры, которые читают,например mp3, а выдают что то свое. И вот куда пихать их выход?
1696 2691133
>>90613
Нет, если есть выбор.

>уже маловостребованный язык?


Востребованный, но ты озябнешь учить до уровня востребованного специалиста.
1697 2691268
>>91133

>но ты озябнешь учить


А если в геймдев идти? Тоже ёбнешься пока учить всё будет? Или для вката в анрил какой-нибудь всё не так уж и плохо?
1698 2691275
>>91268

>будет


будешь*
1699 2691321
>>91133

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



А если я уже знаю другой язык ? Всё равно, озябну ?
1700 2691366
>>90921

>Что значит актуален?


Значит порешали ли специалист от новичков до гуру всякие чат гпт и прочие нейросети? Появилась ли альтернатива C++ и разрабатывается ли?
1701 2691491
>>91366
Нет и не порешают. Говнокода и Легаси на плюсах столько, что ещё на пару поколений работы хватит. если не введут смертную казнь за использование крестов
А в чем? На плюсах можно делать вообще что угодно. Можно писать круды, можно писать движки для игр, можно писать софт для стиральной машины.
Плюсы универсальный инструмент, проигрывающий более специплизированным. Тебе он нахера нужен?
1702 2691494
>>91491
Что мамка хвасталась что я умный дабы развить свой интеллект, не все же быть великовозрастным долбоебом
1703 2691496
>>91494
Тогда тебе в хаскель/агду.
Заодно матан изучить придется.
1704 2691530
>>91496
Там работы нет
1705 2691532
>>91530
Тебе работать или объемом моска хвастать?
1706 2691552
>>91532
Про работу не я писал, а другой анон. Матан знаю на удивление неплохо
1707 2691595
>>34101
Петушиные языки, в которых есть явные названия для методов и функций (вот, вижу тут есть fn как в петухлине fun) сразу в топку.
1708 2691596
>>91595
А про auto fun() -> int; что скажешь?
1709 2691597
>>91596
Ничего не скажу, так как не знаю, что это такое. Я вообще жабоёб, решил побаловаться педалями вчера, чтобы быть ТруЪ погромистом.
1710 2691602
>>91597
Так вот почему ты такой обиженный
1711 2691603
>>91602
Чего?
1712 2691610
>>91268

>Или для вката в анрил какой-нибудь всё не так уж и плохо?


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

>>91494

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


Кроссворды порешай.
Сложность C++ не имеет ничего общего с челленджем для интеллекта, скорее наоборот насилие над здравым смыслом.

>>91321

>А если я уже знаю другой язык ?


Если ты уже знаешь ООП, алгоритмы, паттерны и умеешь лепить из этого всего программы, то это будет хорошим подспорьем.
1714 2691766
>>91677
А нахуя?
Пацаны сидим здесь!
Тред утонул или удален.
Это копия, сохраненная 23 мая 2023 года.

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

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