Двач.hk не отвечает.
Вы видите копию треда, сохраненную 18 ноября 2019 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
# OP 2 1503423
Проплаченный.
sage 3 1503424
>>03420 (OP)
Вонюче пукнул SEGFAULТ в тредик.
4 1503430
Сипипи ван лав
Плюсач, кроме самого языка который хуй выучишь от корки до корки, ну да ладно что необходимо знать, чтобы приняли на работу разрабом? Джуном пока офк (учусь пока в институте). Нужно обязательно знать буст? Слышал, что в индустрии кресты без буста не юзают почти, хз правда ли
С точным направлением пока не определился, но подумываю о сетевом направлении (распределенные системы, разработка протоколов, прокси и т.п.)
5 1503434
>>03430

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


o_О
какие запросы у студентика!
6 1503477
>>03434
Вчера студентик собирался писать низкоуровневый сниффер с перехватом и модификацией пакетов. Мне бы такие амбиции.
7 1503483
>>03430

>Сипипи ван лав


Скоро передумаешь.

>Слышал, что в индустрии кресты без буста не юзают почти, хз правда ли


Да нет, почти у всех свои велосипеды (по крайней мере в больших компаниях), лол. Разве что говеный asio почему-то популярен и всякие костыли для старых плюсов вроде плейсхолдеров.

>Нужно обязательно знать буст?


В вакансиях смотри, у всех своё легасиговно, это же не джава где есть спринг и всё.
8 1503489
>>03483

> Скоро передумаешь.


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

> Почему говеный?

9 1503490
>>03483

>Разве что говеный asio


Почему говеный?
10 1503494
>>03489

>говно какое-то из-под коня


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

>Почему говеный?


Потому что а) его апи неудобное и переусложнённое говно; б) сосёт хуй по производительности у всего, чего можно.
11 1503501
>>03494
А сам на чем пишешь? Просто есть тенденция доебываться до всех языков, но на практике в итоге самые обсераемые языки и юзают. Тот же пример джавы и макакаскрипта, лол.

>Потому что а) его апи неудобное и переусложнённое говно; б) сосёт хуй по производительности у всего, чего можно.


А какой сетевой API тогда юзать на плюсах? Qt Network? Poco? Я удивлен, кстати, почему Qt менее популярен, чем буст. Как по мне, фреймворк пиздец какой сильный, и документирован гораздо лучше буста хотя мб я просто нихуя не понимаю и вообще долбоеб
12 1503503
>>03501
Собстно главная проблема qt в том, что это фреймворк. А буст - лишь набор библиотек. Если тебе нужна только сеть - то тащить QT это пиздец.
13 1503505
>>03503
Ну, там гуи еще прикрутить... Для одного проекта, другой будет в терминале.
14 1503506
>>03505
Если у тебя гуи уже есть на кутях - то как раз, тогда буст смысла нет юзать.
15 1503507
>>03506
Привязывать функциональность к гую моветон.
Самый главный вопрос в том а нахуя тебе вообще сеть и с++. Для задач с++ как правило синхронного апи достаточно.
мимо
16 1503510
>>03507
Один из проектов - простой мессенджер с прикрученной OpenSSL либой, чтобы совсем уже ламерским не был. Не хотелось бы его писать без гуи, хз.
Есть еще другой проект, его буду делать без гуи
17 1503514
>>03501

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


Я же говорю — попишешь на них пару лет и тоже будешь считать говном, очевидно что я на них пишу. Но по фатку — они ебать говно. Просто все умудряются делать альтернативы еще хуже, лол.

>Как по мне, фреймворк пиздец какой сильный


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

>А какой сетевой API тогда юзать на плюсах?


https://github.com/microsoft/cpprestsdk
https://github.com/facebook/wangle
Да хоть свою обвязку над какой нибудь libuv напиши, даже это лучше будет.
Screenshot20191024-005148Samsung Internet.jpg133 Кб, 720x1480
18 1503518
>>03514
Кек
19 1503521
>>03514
Потрясно. В моих краях много вакансий на плюсы, но яхз что учить чтобы быть хоть минимально востребованным джуном. В описаниях вакансий расплывчато мямлят, часто требования к скиллам в мультитрединге, но больше никаких подробностей.
20 1503522
>>03518
Это нормальная ситуация в мастере, для того релизы и лежат отдельно.
21 1503525
>>03521

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


Если это ебеня — то можешь смело C++Builder 98 учить, лол.
Если это мааасква или просто предприятия делают что-то про графику/какие нибудь вычисления хуйнии — то там нужно знать что нибудь про математику и иметь какую-то базу в плюсах.

Короче, пока не сходишь на собеседование — не узнаешь. Первые пару раз энивэй обосрёшься.
22 1503528
https://github.com/REhints/HexRaysCodeXplorer

У меня на 7.0 и 7.2 иде не хочет работать. У кого также?
23 1503530
>>03525
Я не живу в стране СНГ. Здесь плюсы и для блокчейнов юзают, например. Ну и для автономных машин, всякого йоба-имбэддэда, распределенных систем и т.п.
24 1503533
>>03503
Ниасилил кастомную сборку Qt?
25 1503536
>>03533
Я вообще не очень люблю qt, потому-что это диалект, и, когда пердолил их, использовал verdigris. Но это была хорошая попытка самоутвердиться на дваче.
26 1503539
>>03536
Какой диалект? Это просто набор классов. Вот буст - это больше похоже на диалект, особенно древний код, пестрящий макросами из буста.
27 1503540
>>03539
Соберешь qt без moc?
28 1503541
>>03540
*проект на qt
29 1503543
>>03530
Это всё даже в снг есть, но тебе уже писали, что в эти области без опыта не попасть, про то и речь. Если ты конечно не заканчиваешь какой нибудь вузик лиги плюща. Разве что в йоба эмбеддед уровня магнитол на Qt, лол.

Алсо, буста в этих областях точно нигде нет. Правда, для типичной работёнки, куда возьмут без опыта скорее всего будет нужен, так что придётся пострадать.
30 1503544
>>03540
Если рефлексия не нужна, в чем проблема
31 1503545
>>03533
Кастомная сборка настолько панацея без кучи зависимостей каждой библиотеки от кучи других, что уже не первый год почему-то мутят Qt lite.
32 1503547
>>03544
а сигналы как сгенерируешь?
33 1503548
>>03547
>>03540
Для QtNetwork это нахуй не нужно
image.jpg23 Кб, 500x283
34 1503611
Аноны, помогите. В первый раз создал репозиторий на гитхабе, чтобы загрузить свой проект, но в итоге криво сделал и решил удалить репозиторий, как вернулся увидел, что пропал Main.cpp. Репозитория уже нет, программы для восстановления удалённых файлов не помогли. Что делать? У меня есть exe разных версий + ilk + pdb, sln. Осталась папка .git. Я могу как-то восстановить свой cpp?
35 1503716
>>03611
Пофиксил через откат по хешу комита
36 1503780
>>03430
Надо знать как работать с гитом, основные приемы, по крайней мере. Структуры данных/ алгоритмы пусть на самом простом уровне.(в идеале написать свой вектор, стек, очередь, чтобы знать что там и куда) Но это в принципе для любого языка нужно, разумеется.

>>03501
Ну так напиши на WinSock (сокетам беркли если красноглазый) и все.
Там не особо много придется мучиться.
37 1503781
>>03780
Вендоблядок, тебя стало слишком много
38 1503783
>>03781
Это вас стало слишком мало.
39 1503788
>>03781
Сейчас бы гореть с того, что линуксоидов любя зовут красногоазыми, мде.
Я точно не тот кто то местный на кого ты подумал, но вообще да, я на венде работаю, потому что не было причин перекатываться на Линукс, давайте не устраивать тут подобные срачи.
40 1503802
Что я делаю не так?
{&i-numbers.begin(),&b-numbers.begin()}
Надо вывести позиции элементов i и b в векторе.
Сами элементы получаются вот так
for(const int& i:numbers)
for(const int& b:numbers)
41 1503807
>>03514

> А еще он под лгпл растпространяется, и это рак.


Чаю, только гпл3
42 1503808
>>03788

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


Ну и молчи в тряпочку, ущербный, этот тред дети читают
43 1503810
>>03780

>вектор, стек, очередь


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

> сокетам беркли если красноглазый


Выходит громоздко и некроссплатформенно (только если не выдумывать костыли), да и гуй хочу к нему прикрутить, чтобы норм смотрелось.
44 1503815
>>03810

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


С софтом посерьезнее ты станешь оверквалифаед для джуна и попадешь в неприятную ситуацию, когда ты на 50% мидл, а на 50% криворукий хуй, не могущий тикет в трекере заполнить.
Не откладывай поиск работы, после устройства ты откроешь много нового, например то, что велосипедостроение библиотек на графах не является чем-то хорошим и продвинутым.
45 1503818
>>03802
В прочем написали {&i-&numbers[0],&b-&numbers[0]} и всё заработало. Странно, учитывая что &numbers[0] и umbers.begin() должно быть одним и тем же по сути, или я не прав?
46 1503820
>>03802
Блядь, напиши через итераторы и std::distance, зачем это говно костылировать?
sage 47 1503822
>>03815
Ощущение что джуны это люди которые знают что такое С++ и иногда им пользуются, почему такие низкие требования? От джунов вообще ничего не ждут чтоль?
48 1503825
>>03820
Я уже накостылил. По мне так вышло вполне симпатично
std::pair<std::size_t, std::size_t> two_sum(const std::vector<int>& numbers, int target) {
for(const int& i:numbers)
for(const int& b:numbers)
if(&i < &b && i+b==target)
return {&i-&numbers[0],&b-&numbers[0]};
}
49 1503834
>>03825
А теперь замени вектор на какой-нибудь другой контейнер, который не хранит данные последовательно или хранит данные разного размера.
И вообще, арифметика указателей - это плохо
50 1503841
>>03822
С чего ты взял, что они низкие? Если я буду брать джуна, мне будет намного интереснее, как он работает с существующими либами (насколько быстро может выбрать нужную, въехать), чем то, может ли он написать 1000 имплементацию алгоритма из учебника Кормена. Лично я нашел первую работу, показав 1 коммит строчек на 100 в не очень популярный опенсорсный компилятор.
А за 10 лет коммерческой разработки с графами я не работал вообще ни разу.
Естественно с подобными скиллами ты работу найдешь, но на самом деле ты слишком жестко к себе относишься.
51 1503849
>>03815

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


Я это прекрасно понимаю и именно по этой причине я хочу написать софтину с испольхованием Qt или Boost, это даст мне гораздо больше, чем писать имплементации структур данных
52 1503852
>>03841
И какие самые такие важные и часто используемые библиотеки какие ты бы спросил?
53 1503854
Ку, плюсач.
Что в крестах нужно знать наизусть? Чтобы от зубов отскакивало, без гуглежа. Весь STL? Какие-то критически важные фичи из 11/17 стандартов?
54 1503855
>>03854
Подводные камни
55 1503857
Какова рационализация использования такого финта ушами:

//Код
switch(0) {default: {
//Код
}}
//Код
56 1503862
>>03849
1) Составляешь список возможных библиотек
2) Смотришь по какой больше всех вопросов на стековерфлоу
3) Юзаешь её!
57 1503866
>>03857
Получишь больше денег (если ты индус с построчной оплатой).
58 1503893
Сап плюсач
Я иду на конфу с первого пикрила >>03420 (OP)
59 1503895
60 1503901
std::remove_copy(text.begin(),text.end(),std::back_inserter(t),[](char c){return c!='-' && c!='_';});
Выдает километровую ошибку. text, t - строки
2019-10-24-172635946x363scrot.png66 Кб, 946x363
61 1503911
>>03893
Блядь, вопрос-то не написал

А вопрос вот какой:
У меня есть указатель на байты и количество байтов
Как мне с такими нехитрыми входными данными преобразовать байты в cpp-шные классы?
Допустим, вот что есть на входе:
02 05 01 00 03 31 32 33 04 01 00 DE AD BE EF

По порядку:
02 - количество пакетов
05 - тип первого пакета(сообщение из чата например)
01 00 - id отправителя строки
03 - длина строки
31 32 33 - сама строка(123)
04 - тип второго пакета(какие-нибудь координаты)
01 00 - id того, кому принадлежат координаты
DE AD - координата X
BE EF - координата Y

В коде у меня есть типы message_chat_t и message_coords_t

Как создавать объекты, имея эти данные, чтобы сохранялась масштабируемость? Подозреваю что нужна какая-то фабрика, может быть даже абстрактная.

Сейчас я делаю это вот таким монстром, выглядит отвратительно. Хочу как-нибудь через шаблоны. Подскажите, в общем.
sage 62 1503923
>>03901
ты хотел remove_copy_if очевидно
63 1503933
>>03923
Да, я уже понял. Почти 40 минут ебался. Хоспаде, что мешало это говно перегрузить. И как же хочется нормальные сообщения об ошибках.
64 1503936
>>03933

> что мешало это говно перегрузить.


Так не принято
65 1503970
Кто нибудь писал короутины? Имплементация должна вся лежать в хидере или можно в cpp писать?
5e1138e6df26.jpg106 Кб, 900x755
66 1503977
>>03420 (OP)
Вкотился пролез через ub
68 1503980
>>03978
Поясните для ньфага в двух словах, что там происходит
69 1503981
>>03980
Волшебство
70 1503983
>>03980
Шизик доказывает, что неведомая хуйня это нормально
71 1503986

> В глобальном неймспейсе (но не в глобальной области видимости


Что это значит?
sage 72 1503996
>>03911

>чтобы сохранялась масштабируемость


Если бинарное представление определяешь ты, то можно библиотеки де/сериализации, типа протобуфа. Хотя если вариантов данных мало можно и самому набайтоебить.
73 1504002
>>03996
А без протобуфа никак?
74 1504005
>>04002
Лучше без этой параши. Это блядь худшая библиотека в мире, еще и с кучей бинарно несовместимого говна
75 1504007
>>04005
Ну вот я и интересуюсь, как мне это сделать. Это же весьма распространённая задача, я уверен.
76 1504012
>>03911
Это бинарный парсер. Если писать с нуля, набор функций
int read_int(stream) {...}
float read_float(stream){...}
vector<int> read_int_array(stream) {
int length = read_int();
for (length) {
yoba.push_back(read_int());
}
}
Дальше пишешь функцию read_class, который распарсит поток и создаст класс.

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

std::istream& operator >>(std::istream &is, vector<paket>& pakety)
{
int kolvo_paketov;
is >> kolvo_paketov;
while (is-- > 0) {
paket novy_paket;
is >> novy_paket;
pakety.push_back(novy_paket);
}
return is;
}

std::istream& operator >>(std::istream &is, paket& pakety) {
int tip_paketa;
is >> tip_paketa;
//вместо свитча можно использовать всякую виртуальную поебень, но зачем
switch (tip_paketa) {
case 01: //парсим первый тип, и так далее
}
}

А так есть хуйни типа протобуфа, которые по декларативному описанию сгенерят подобный код. Но сам протобуф не рекомендую. Вроде у фейсбука было че получше.
76 1504012
>>03911
Это бинарный парсер. Если писать с нуля, набор функций
int read_int(stream) {...}
float read_float(stream){...}
vector<int> read_int_array(stream) {
int length = read_int();
for (length) {
yoba.push_back(read_int());
}
}
Дальше пишешь функцию read_class, который распарсит поток и создаст класс.

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

std::istream& operator >>(std::istream &is, vector<paket>& pakety)
{
int kolvo_paketov;
is >> kolvo_paketov;
while (is-- > 0) {
paket novy_paket;
is >> novy_paket;
pakety.push_back(novy_paket);
}
return is;
}

std::istream& operator >>(std::istream &is, paket& pakety) {
int tip_paketa;
is >> tip_paketa;
//вместо свитча можно использовать всякую виртуальную поебень, но зачем
switch (tip_paketa) {
case 01: //парсим первый тип, и так далее
}
}

А так есть хуйни типа протобуфа, которые по декларативному описанию сгенерят подобный код. Но сам протобуф не рекомендую. Вроде у фейсбука было че получше.
1504488399982.PNG5 Кб, 502x161
77 1504015
Пытаюсь отправить указатель в сигнале. Раньше вроде бы получалось, но сейчас программа почему то крашится. Крашится именно на моменте эмитирования сигнала.
Эмит прописан так:
emit pointAdded((Point*)scene->items().first());
Что я делаю не так?
Попробовал через точку останова влезть внутрь метода Qt и внутри пройтись, получил сообщение об ошибке, на пикче.
78 1504022
>>04012
Парсер у меня уже есть. Вот с таким интерфейсом(пик1). Проблема начинается на сопоставлении айдишника и cpp-шного типа.

> switch (tip_paketa) {


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

Из говна и палок я уже всё сделал. Работает это всё на пик2. Сами макросы вот тут >>03911
Я хочу без макросов.
79 1504024
>>04015
Используй буст. Нахуй тебе Qt?
sage 80 1504028
>>04015
А мы типа телепаты и знаем что у тебя в контейнере и на что законекчен сигнал.
81 1504029
>>04028
Контейнер - это контейнер items из QGraphicsScene. В нем находятся QGraphicItem-ы. Point - это наследник класса QGraphicItem.

> на что законекчен сигнал


А слот же тут не важен, т.к. ошибка вылезает еще до отправки сигнала.
82 1504031
>>04024
Что за буст? Боюсь, мне придется тратить кучу времени, чтобы его изучить, вместо того, чтобы заниматься делом.
83 1504032
>>04031
Ловите ньюфага!

Буст - это dev ветка либы stl, грубо говоря.
84 1504034
>>04022

>Неудобно, т.к. при добавлении нового пакета хуй пойми куда надо залезать и править этот код


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

Ну а так если, допустим, у тебя есть интерфейс IMessage и куча потомков от него, то достаточно создать
std::map<int, std::function<IPacket()>> вместо свича. Если ты не любишь интерфейсы, можно использовать std::variant с той же целью.

Далее остается наполнить мапу функцией типа register_message(int, std::function<IPacket()>).
Желательно правда заменить ридера на ридера/райтера, но это уже такое.
85 1504042
>>03970
Компилятор не компилирует заголовки, конечно можно
86 1504044
>>04015
Дружочек, как можно скорее осваивай дебаггер, ставь бряк и иди по строчкам
87 1504051
>>04044
Чел, дебаггер не помог никак. Все, что он выдал - это сообщение на пикче выше.
Но я уже разобрался в проблеме. Оказалось, что это все таки на стадии коннекта со слотом, хотя я думал, что на стадии эмитирования сигнала.
Спс.
88 1504053
>>03911

>Подозреваю что нужна какая-то фабрика, может быть даже абстрактная.


Ну да, она получает на вход тип пакета и выдает подфабрику/стратегию для этого пакета, которая считывает сколько ей надо данных и строит объекты или чего там тебе надо делает.
38141843.jpg141 Кб, 1080x1080
89 1504054
Зашёл посмотреть, как выглядит с++ в 2019, а тут такое
>>04012

>pakety.push_back(novy_paket);

90 1504056
>>04022
Ты про шаблоны не слышал? Говорят крутая вещь.
91 1504058
>>04034
Может вместо лямбд лучше хранить интерфейсы?
92 1504059
>>04056
Слышал, но не знаю как их тут применить
93 1504062
>>04054
Мне больше нравится

> while (is-- > 0) {

94 1504066
>>04058
Вместо лямбд можно хранить абстрактные фабрики, прости господи
95 1504071
>>03978
Багоры говнокомпиляторов. У MSVC бояр такой хуйни нет.
96 1504074
97 1504098
>>03911
если бинарный протокол нормально спроектирован, то его пакеты должны ложится на пожатые структурки вооб ще то
далается это специально для того чтобы ничего не надо было парсить или там считывать, а сразу накладывать структурки на кусок памяти в котором лежит собственно этот байтовый массив (в независимости от того прилетел ли он по сети, или взят с дисковой подсистемы)

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

если проще, в терминологии "мы вам перезвоним треда" ты обычный жулик
98 1504109
>>04098

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


BIG ENDIAN
@
LITTLE ENDIAN
sage 99 1504128
>>04098
Ага, а потом надо оказывается передавать строки переменной длины, в пакетах есть необязательные параметры, нужна обратная совместимость, и ты в жопе.
100 1504131
>>04109
это не такая проблема как ты себе представляешь
сетевой порядок байтов в правильных протоколах всегда big endian
они все тагже считываются
а если есть необходимость (для платформы с little endian), что прямо в числе уже свопаются через специальные функциий типа из posix - htonl(), тем более эти функции используют зачастую специальные инструкции процессора (на x86-64) они есть
101 1504135
>>04131
Правильные сетевые протоколы являются текстовыми, тупая ты мелкобуква
102 1504142
>>04051
Значит ты не так им пользовался. Опиши свои действия
103 1504144
>>04128
еще и сажу влепил, ай лолд
ты накладываешь структурки на постоянные части пакета только
а переменные части пакета (типа строки) представляются как все те же указатели на начало переменной части и их длина
а вообще пакет у тебя будет представлен структурой, которая состоит из указателей на структуры постоянной части, указателей на переменные части пакета, пустых указателей на необязательные параметры если их нет и все такое...

я повторяюсь, этим ты достигаешь того, что по сути, НЕ парсишь свои бинарные данные
а нахуя их туда сюда по памяти гонять, они и так уже у тебя лежат, в том же замаппеном файле, если это разбор файла бинарного формата на диске..
104 1504146
>>04135
иногда, мой дорогой, скорость таки важна
даже в 2к19
105 1504148
бля, да просто откройте реализацию tcp/ip стека в том же freebsd..
106 1504151
>>04148
При чем тут протоколы прикладного уровня?
107 1504158
>>04151

> TCP/IP


> прикладной уровень


Ясно.
108 1504166
>>04158
У >>04022 прикладной уровень, аутист ты ебаный
109 1504168
>>04151
при том что они бинарные
110 1504174
int x {}; <- что за хуйня и кто так декларирует переменные в плюсах и с каких пор?
111 1504178
>>04174
о, недавно с криосна?
112 1504191
>>04178
Да, меня учили старому стандарту языка, сейчас самостоятельно вернулся к плюсам и вижу эту хуйню. Вас ис дас? Типа обнуляет, вместо того, чтобы хранить мусор в неинициализированной переменной? Но мой g++ и так автоматически помещает 0 в неинициализированную переменную, а не мусор, как это было ранее или в си. В чем прикол тогда?
113 1504194
>>04191

>мой g++ и так автоматически помещает 0 в неинициализированную переменную


Дед, ты че буянишь, опять нахуярился?
114 1504196
>>04191

>g++ и так автоматически помещает 0 в неинициализированную переменную


В дебаге
115 1504198
>>04191
И эти скобки в языке уже лет 15, тебя вообще говну трилобитов видимо учили
116 1504202
Насколько важен Гитхаб при устройстве на работу крестовиком? Стоит сделать там парочку небольших проектов?
117 1504225
>>04144
Такой оверинжиниринг до добра не доведёт. Объекты и так весьма быстро парсятся, без таких велосипедов которые больше отнимут чем дадут.

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


чего бля
118 1504230
>>04225
хех
очевидно же что если это бинарный протокол, то работать с ним нужно максимально быстро
а это значит не гонять данные туда-сюда по памяти..
так чтож это не какой ни оверинжиниринг
119 1504231
Начиная с С++17, принято инициализировать константы сочетанием inline constexpr (да, я знаю, что констэкспр юзается тогда, когда константа инициализируется литералом, а не переменной), до этого это было просто constexpr. В чем прикол?
120 1504235
>>04231
Теперь линкер не будет выёбываться на копии этой константы в нескольких TU
121 1504236
>>04230
Flatbuffers vs protobuf. Protobuf круче, если что. Учитывая, что все нормальные люди будут данные сжимать, как ебанного шакала (а затем и шифровать), то твой лохопердолинг для экономии тактов проца нахуй не нужен. Ты походу забыл, что узкое место ващет I/O, а не проц.
122 1504240
>>03911
С какими же уебанами приходилось работать, когда писал на плюсах. Вот такое говно пишет каждый второй. Натурально, в каждом коммерческом проекте свой вариант сериализации, часто даже не один. У вас в жопе чешется не взять эталонный protobuf, а написать свой, родной сериализатор? А потом уволиться и заставить страдать следующего бедолагу, который прийдет это говно саппортить.
123 1504246
>>04230
Я использую бинарный протокол лишь для того, чтобы уменьшить размер пакета. Быстродействие меня устраивает, байты читаются и так весьма быстро.
124 1504247
>>04236
Есть ненормальные, которым latency важнее чем throughput при потоке в пару гбит/сек

мимосижурядомсhftшниками
125 1504248
>>04240
Ну, просто это первое, что приходит на ум. Сделаю через std::map<int, builder> - станет заебись же. А протобуф говорят лютейшая ебанина.
126 1504249
>>04240
если у тебя есть яйца, выкидиваешь предыдущий код на помоечку, пишешь свой
127 1504253
>>04248
Неквалифицированные уебаны тебе это говорят. protobuf - прекрасный, качественный, быстрый инструмент. Все его используют, потому что он просто охуенно сбалансированный и идеально подходит под прикладные задачи.

>>04247
Ну разве что. Хотя вопрос открытый - что лучше: в два раза быстрее передать и в два раза медленнее декодировать или наоборот. Хоть у тебя там и несколько гигабит канал связи, а ram в приличных современных серверах 40+ Гигабит/с. Чего уж говорить про кеши проца.
128 1504263
>>04253
протобуфы в оригинальном гугловском варианте - полное говно. А вот Capn Proto, и прочие вариации - уже сильно лучше
129 1504269
>>04253
А можно читать протобуф в браузерном джсе?
130 1504278
>>04263
Обоснуй, маня.

>>04269
Конечно епта, там полноценный grpc есть
131 1504280
Как это работает https://ideone.com/Qv7ywL
Sheldon, Leonard, Penny, Rajesh and Howard are in the queue for a "Double Cola" drink vending machine; there are no other people in the queue. The first one in the queue (Sheldon) buys a can, drinks it and doubles! The resulting two Sheldons go to the end of the queue. Then the next in the queue (Leonard) buys a can, drinks it and gets to the end of the queue as two Leonards, and so on.
Write a program that will return the name of the person who will drink the n-th cola.
132 1504325
>>04042
Ага, а то насколько я знаю он по разному код генерит если сразу видит возвращаемые значения для некоторых методов.
133 1504341
Шаблоны генерит компилятор, или препроцессор?
134 1504347
>>04341
conpelyator
135 1504351
>>04280
Пересмотри сериал, там это объясняется
136 1504374
int est_probitie { yoba_func() };
int est_probitie = yoba_func();

В 2к19 какой вариант считается не говнокодом?
137 1504376
>>04374
bool est_probitie = yoba_func();
138 1504378
>>04374
auto est_probitie = yoba_func();
139 1504380
>>03978
Буду на собеседованиях спрашивать, как работает этот код и почему, когда нужно будет продавить челика с зп.
140 1504381
>>04378
Больной ублюдок.
141 1504456
>>04191
Вместо:
MyStruct st = { 0 };
Можно:
MyStruct st{};

Сахарок короче.
142 1504459
>>04380
Говорю, что это говнокод и пояснять тут нечего. Твои действия?
143 1504462
>>04380
Да я тебя сам продавлю и займу твое место с такими говнопримерами. Хотел альфача - получай.
144 1504474
>>04191

>В чем прикол тогда?


std::vector v1(10,2); // содержит [2,2,2,2,2,2,2,2,2,2]
std::vector v2{10,2}; // содержит [10,2]
145 1504480
>>04474
suuuka bljad ruki bi pootrival
c++initforest.gif8 Мб, 400x170
146 1504481
>>04174
>>04191
Это Uniform initialization.

>>04456

>Сахарок короче.


Нет.

>>04480
Хотели починить инициализацию, а в итоге недочинили. Тащемто такое поведение только у объектов принимающих std::initializer_list , а он обычно только у всяких контейнеров.
147 1504484
>>04481
Что нет? Да.
148 1504486
>>04484
Пидора ответ.
149 1504488
>>04484

>Что нет? Да.


Зависит от имеющихся конструкторов.
150 1504490
В любой статье о C++ на хабре минимум треть обсуждения будет посвящена Rust. Это о чем-нибудь да говорит.

Алсо, пикрелейтед можно ставить в шапку следующего треда
151 1504494
>>04490
лобби ржавых хуесосов
152 1504495
>>04494
Но ведь всё верно слева написано.
153 1504501
>>04490

> В любой статье о C++ на хабре минимум треть обсуждения будет посвящена Rust



Пидорасы везде вопят о том, как они долбятся в жопу, и как это здорово и прогрессивно. Это не значит, что долбиться в жопу - норма.
154 1504504
>>04501
Как и не следует то, что это не норма, из того, что норма не следует из приведенного тобой утверждения.
155 1504505
Почему раст говно и у него нет шансов вытеснить кресты в своей области?
kek.png152 Кб, 1586x1096
156 1504508
>>04490
и сразу нахуй
157 1504521
Плохой ли тон использовать auto? Я стараюсь использовать его везде, где это возможно, в основном чтобы не писать std::shared_ptr<huynya_name> x = std::make_shared<...

Но в последнее время я начал применять его и для обычных типов вроде int. Подскажите мне правильный путь.
158 1504531
>>04521
odnajdi napisheh auto t = 4, kogda tebe nujna double peremennaya, i sosnesh
159 1504547
>>04505
возможно мой пост останется не понят, но попробую объяснить:
дело не в самом расте
а дело в разработчиках мозиллы
они, в свое время сделали первый браузер (нетскейп навигатор), который по сути занимал весь рынок браузеров, а количество пользователей интернета тогда росло сумашедшими темпами
что они сделали? решили заморозить кодовую базу, не выпускать новые версии браузера, а переписать код браузера целиком, потому что он им, видители не нравился, ну и переписали за пару лет, сделали файрфокс
ну и что получилось? пока они переписывали все с нуля, они проебали рынок, по итогу, весь рынок захватил ie в 90е, те не было даже и конкурентной борьбы
об этом еще спольски писал в своих статьях как о примере настоящего коммерческого идиотизма
но, дзен заключается в том, что люди не учатся даже на собственных ошибках
и уже в нулевые, разрабы файрфокса решили наступать на те же грабли еще раз, но уже в большем маштабе: а именно не просто переписать еще разок кодовую базу файрфокс, но сделать новый язык и уже на нем заново все переписать
последствия этого мы уже видим: хром отжал и те проценты что были у файрфокса раньше по сути делит рынок с браузерами от майрософт, а файрфокс где то в жопе сейчас по количеству пользователей, держась лишь на фанатах и ретроградах
вообще, историю с разработчиками файрфокса следует рассматривать в экономических учебниках, как кейс о том как просирать бизнес
160 1504554
>>04521
Я его использую когда переменная нужна в контексте какого-нибудь API, особенно если инициализируется она через этот же интерфейс, т.к. в этих ситуациях мне 100% похуй какой там хитровыебанный тип оно хочет. Ну и в шаблонной дрисне тоже, ясное дело.
161 1504556
>>04521

>Но в последнее время я начал применять его и для обычных типов вроде int


Насосёшся же ты.
162 1504570
>>04521
auto i = 5ull;
Если используешь суффиксы, то пожалуйста. А вообще не стоит.
163 1504590
>>04521
Если тип длиннее 4 букв то пишу auto
164 1504595
>>04590
uint32_t?
165 1504608
Котаны, какой самый не заебистый способ объявить константы в хедере, чтобы не ебаться с этими вашими экстернами в константах?

#pragma once
namespace yoba {
inline constexpr int var {1337};
} // yoba.h

Покатит? И в дальнейшем в .cpp файлах с включенным хэдэром yoba.h обращаться вот так: yoba::var
166 1504614
167 1504637
>>04521
У меня наверное не самое популярное мнение: если auto может повредить твоему коду - у тебя говнокод.
168 1504640
Имеют ли крупные конторы во владении копию стандарта c++ в печатном виде?
169 1504643
>>04547
Раст в отличие от нетскейпа не проёбан же. У него есть огромное преимущество - уёбищность с++. Это дырявое поделие стоило пристрелить ещё 20 лет назад
170 1504652
171 1504655
>>04640
а зачем?
имхо, уж если и фирма хочет чтобы у ее сотрудников был доступ к бумажным книгам, пусть купит майерса последнюю книгу и "шаблоны" вандервуда второе издание
вот это действительно полезные книжки по крестам
images.jpeg13 Кб, 225x225
172 1504663
>>04608
#define
173 1504674
>>04590
Обосрался.
174 1504676
>>04490
1) Видишь упоминание монад - перед тобой ебанутый борщеед. Лапша из колбэков не является хорошим решением никогда, а ничем другим монадический код не является
2) Только вот раст от легаси-проектов на С++ не спасает, а наоборот. Теперь ты не только мучаешься со сборкой легаси, но еще и мучаешься с кривым растовским FFI. Короче тупо выкинь старый код и наслаждайся сборкой
3) Когда его сделают для С++, где останется раст?
4) Используй компилятор с таким же ллвм бэкендом, как и у раста
5) При этом отсутствующие нахуй темплейты. А значит, если ты хочешь простой обобщенный код - ебись с системой типов, как будто у тебя хаскель.

А язык, который старше С++11, не продакшен-реди, да. И пока он станет продакшен-реди, в слоупочный комитет запилит в С++ все, чего там не хватало, чтобы закопать раст
175 1504678
>>04608
Пиздец, мне этот код чем то джава/донет парашу напоминает. Как мужик дефайни ебт.
marginalnii-genii.orig.jpg182 Кб, 1440x1080
176 1504682
>>04676

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


Маня, ну расскажи. Как по-твоему в с++ запилят проверку заимствований без убийства всей крестовой системы памяти
177 1504684
>>04676
Да это и ослу понятно, можно было не расписывать для этих дуриков. С++ - unbeatable programming language.
178 1504687
>>04678

> дефайни


Дедушка, си тред два блока вниз
179 1504688
>>04678
ты чё, пёс, ты чё? вот запилят в с++42 вменяемые модули, полетишь вместе с препроцессором на помойку
180 1504692
>>04682

>Как по-твоему в с++ запилят проверку заимствований


Не нужно
181 1504699
>>04682
си с классами достаточно для любой программы
182 1504701
>>04490

>хабр

183 1504702
>>04490

>хабр


Ну ты ещё Пикабу приплел бы сюда.
184 1504703
posoni, a est phd po plusam?
185 1504705
186 1504713
>>04676

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


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


Че еще спизданешь, неуч? Сразу видно неборщехлеба, судорожно выбирающего свой любимый ООП паттерн из GoF.

> Только вот раст от легаси-проектов на С++ не спасает, а наоборот. Теперь ты не только мучаешься со сборкой легаси, но еще и мучаешься с кривым растовским FFI. Короче тупо выкинь старый код и наслаждайся сборкой


В расте есть то, чего так сильно не хватает сообществу плюсанов - культура разработки и чувство прекрасного. Где FFI неудобный - напишут нормальный фасад к C/C++ либам и будут радоваться жизни дальше.

> Когда его сделают для С++, где останется раст?


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


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

>>04682
В clang-е уже пилят lifetime analysis. В течении года завезут. Пока будет опциональным в виде навешивания аттрибутов на функции.
Думаю в C++23 или в C++-26 это попадет в стандарт и у плюсанов появится свой родной borrow checker, который, как известно, не нужен, а надо ПРОСТО хорошо знать плюсы и уметь правильно писать код.

>>04701
>>04702
Щас бы двачерам вякать на хабр.
187 1504725
>>04682

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


это какая то хуйня, связанная с владением ресурсов и с правильной передачей владения
это что ли?
умные указатели, не?
188 1504728
>>04682
хех, в 98м стандарте по итогу самый православный способ хранить константы был трюк со статической переменной в классе..
189 1504730
>>04725
move semantics жи
190 1504733
>>04713

>прекрасный код


Ты на него дрочить собрался, что ли?
Из-за вот такой хуйни я жалею, что появилось что-то, кроме ассемблера и сишечки. Щас бы сидели как 80-ых и пердели в мейнфрейм под хруст магнитной ленты, программируя на бумажке.
Ебаные срачи про архитектуру, про фп vs императивка, про гейтса, про небо.
И никакой четкой аргументации с метриками или хоть чем-то, что доказывает, что вот ТАК быстрее, а так НЕТ.
Про уДоБнЕе и "у вас архитектура языка говно!!!" это вообще рот ебал. Унифицировать и гомогенезировать од паттернами можно только запил крудов.
191 1504740
>>04730
Заимствования это же маняврирование когда оказывается что на одном move semantics жить нельзя. Как одно может проверять другое?
192 1504743
>>04733

>И никакой четкой аргументации с метриками или хоть чем-то, что доказывает, что вот ТАК быстрее, а так НЕТ.


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

В FP как минимум такой хуйни нет. Есть substitution computational model - которая по сути сводит весь код без эффектов к обычной школьной алгебре и до 10 всеми применяемых паттернов у которых по факту нет альтернатив. В какой проект не прийдешь - там всегда будут одни и те же архитектурные приемы: ленивость, комбинаторы, монады, аппликативы и функторы. Ты ПРОСТО берешь и делаешь работу.
193 1504748
>>04743
бля
fp-шизик в треде
все по укрытиям, срочно надеваем на головы шапочки из фольги!
194 1504753
>>04713

>Сразу видно неборщехлеба, судорожно выбирающего свой любимый ООП паттерн из GoF.


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

>В расте есть то, чего так сильно не хватает сообществу плюсанов - культура разработки и чувство прекрасного.


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

>сектант


Сказал хуй, который пришел в крестотред доказывать нужность раста
195 1504757
>>04748
Уебак, ты вместо смехуечков бы взял и нормально ответил.
196 1504758
>>04757
конепции fp плохо ложатся на семантическую модель с++
197 1504759
>>04733

>в 2к19 кукарекать про скорость


Есть ДВЕ метрики по которым выбирается язык:
Средняя частота ошибок для продуктов с высокой ценой пиздеца в продакшене и среднее время запила новых фич для всего остального.
Другие языки (да, кресты тоже) нужны исключительно из-за легаси-говна.
198 1504763
>>04759

>Есть ДВЕ метрики по которым выбирается язык:


В глазах неадекватного школьника черно-белым миром - возможно. Потому что школьники тупые и принять сложность окружающего мира не могут.
199 1504767
>>04763
По существу есть что ответить?
200 1504770
>>04767
Ты спизданул - ты и доказывай. Почему именно две? Почему скорость не важна? Как ты пришел к таким глубокомысленным выводам?
201 1504773
>>04713

>уже пилят


Круто, чо. Но до 23го года всё может поменяться кардинально
202 1504774
>>04770
Двачую этого.

>>04759

> Есть ДВЕ метрики по которым выбирается язык:


Ты скозал? Пидор-студентик, ты?
203 1504777
Там в студию годнотабу завезли:
https://devblogs.microsoft.com/cppblog/addresssanitizer-asan-for-windows-with-msvc/
204 1504792
>>04770
Скорость неважна потому что купить час работы хардвари в тысячи раз дешевле чем купить час времени разработки. Поэтому вторая метрика применима в большинстве ситуаций. Применимость первой мной уже описана. К выводам я пришёл продаваясь кодопроизводящим конторам.
>>04774
Нет, я разгребатель крестописанины из 90х. Но пидор, да.
205 1504794
>>04753

>баттхертит от вангвания


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


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

>Сказал хуй, который пришел в крестотред доказывать нужность раста


Не хуй, а уважаемый дядя-плюсовик, который пилил первые плюсотреды еще в 2014-2015. Так что да, у меня есть полное право называть тебя сектантом, сектант.

>Тогда почему эти люди создали такой хуевый язык


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

>>04777
И 10 лет не прошло. Наконец-то win-говноеды начнут использовать современные промышленные практики разработки на C++
206 1504796
>>04792

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


Ну то есть ты описываешь вебоговно, в котором С++ никогда и не был популярен.
207 1504809
>>04796
>>04792
Вы уж определитесь, вы про memory footprint, latency или throughput, а то от вашего школолоспора попахивает.
Если throughput, то на какой-нибудь jvm можно написать сопоставимо с C++. А мест, где надо memory footprint или latency - не так уж много.
208 1504812
>>04794

>Не хуй, а уважаемый дядя-плюсовик, который пилил первые плюсотреды еще в 2014-2015.


В 2011 я ковырял компилятор раста с целью изучения llvm. Пройдет 3 года, и на дваче появится школьник, перекатывающий плюсотреды. Пройдет еще какое-то количество времени, и школьник станет фп-шизиком, уверенным, что вокруг все идиоты, один он умный. Иди нахуй, дядя-плюсовик.
209 1504814
>>04794

>пилил первые плюсотреды еще в 2014-2015


Чего добился? Хотя-бы 300к зарплаты есть?
210 1504817
>>04809

>Если throughput, то на какой-нибудь jvm можно написать сопоставимо с C++.


На jvm легко баззвордами ссать в уши своему энтерпрайз-начальству.
211 1504819
>>04794

> И 10 лет не прошло. Наконец-то win-говноеды начнут использовать современные промышленные практики разработки на C++


Линуксочмоня, у вас такого нет и никогда не будет. Иди в виме по памяти говнокод пиши, порождая кучу багов.
212 1504822
>>04794

> Не хуй, а уважаемый дядя-плюсовик, который пилил первые плюсотреды еще в 2014-2015


Сука, заорал с этого успешного плюсовика. Нвидия-кун, сеньор-цпп-тян, ла-кун и прочие олды треда обмякли при виде этого БОЯРИНА!
213 1504824
>>04812
Ну нихуя ж себе, вот это достижения! Целый llvm изучал в 2011.
Я в 2011 году писал промышленный парсер-синтезатор-анализатор vhdl/verilog и че теперь?

>Чего добился? Хотя-бы 300к зарплаты есть?


Именно столько и есть. Теперь завидую тому пидору из nvidia, который 350к зашибает Ну че там, поковырял bazel, пес?

>>04822
ОЛДЫ ТРЕДА!!111 орнул с тебя
214 1504826
>>04824

> который 350к зашибает


Это только зарплата, тут акции подросли, с акций еще ~90, суммарно ~440.

Но вообще комично, что ты ЛЛВМ изучал в 2011, а я в 2014 только плюсы учить начал, и где ты, а где я.

Собстно, нвидия-кун
215 1504830
>>04826
Где ты, где, понтуешься зарплатой в каждом треде, в жопе ты в общем.
216 1504833
>>04822

> сеньор-цпп-тян


Можно контакты? Готов стать ее собачкой
217 1504835
>>04826
Ты попал в хорошую, богатую компанию - молодец, никто этого не отрицает. Но о твоем скилле это говорит опосредственно, потому что в процессе найма есть много вещей, которые от тебя не зависят.

Рядом с тобой наверняка сидят типы того же грейда и зп, но с опытом 10+ лет. Тоже комично, что они в два раза больше работают, а добились того же? Короче, мде
218 1504838
>>04835

>Рядом с тобой наверняка сидят типы того же грейда и зп, но с опытом 10+ лет. Тоже комично, что они в два раза больше работают, а добились того же? Короче, мде


Ну, мне кажется да, это достаточно забавно.

>>04830
Хорошо, я больше не буду. или все таки буду.
219 1504842
>>04838

>Ну, мне кажется да, это достаточно забавно.


А мне кажется, что ты не понимаешь, что в твоей профессии есть некоторый потолок знаний и зарплат, за который, будучи обычным плюсовиком, выйти нельзя. Твои коллеги тоже могли за 5 лет дойти до такой же зп, что и ты. С чего ты решил, что через 5 лет на той же позиции ты будешь получать больше? Я тебе больше скажу, ты уже достиг потолка зп для данной позиции во всем мире. Даже если ты переедешь в SF, по чистым деньгам для тебя ничего не поменяется.

Что, все плюсовики во всем мире с опытом >5 лет - хуже тебя, потому что ты с 5 годами опыта начал зарабатывать как они?
220 1504845
Кем нужно стать, чтобы получать лям в месяц, в какой либо стране, после вычета налогов?
221 1504847
>>04842

>Даже если ты переедешь в SF, по чистым деньгам для тебя ничего не поменяется


В SF у сеньеров в гугле компенсация больше 300к долларов в год. Даже если около половины отдавать на налоги (сомнительно) это около миллиона на руки в месяц.
222 1504848
>>04845
Бизнесменом. Либо топ манагером каким
жаль, что шутки про картофельную страну уже не актуальны
223 1504849
>>04847

>около миллиона


Рублей. Против его 400к.
224 1504851
>>04847

>компенсация


Какое пидорское слово
225 1504853
>>04851
Говорить зарплата не совсем корректно, так как учитываются премии и акции.
226 1504854
>>04824

>Я в 2011 году писал промышленный парсер-синтезатор-анализатор vhdl/verilog и че теперь?


Хуй в очо. Аргументы ad дядюм в жопу себе засунь. Монадический код - костыли и говнище, когда от бедности нет вменяемой альтернативы. Чтобы понять, что такое вменяемая альтернатива, можно сравнить код на Go и код для ноды. Или квиксорт на С++ и на хаскеле с использованием ST. Монады всегда говно, говно во всем. Не понимают это только ФП-шизики типа тебя.
И у ФП-шизиков с растом возникает конвергенция: ФП-шизики тянут язык в сторону ФП-параши, а сам раст и не против.

>Именно столько и есть. Теперь завидую тому пидору из nvidia, который 350к зашибает


Я зашибаю больше этого пидора, например. Просто я не пидор и мне неинтересно, когда меня обсуждают.
227 1504855
>>04854
Сколько получаешь?
228 1504859
>>04842

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


Вполне можно. Можно и пицот получать, живя в Москве. Можно и 700 (привет, Хуавей). Потолок где-то в районе ебейшего принципал инженера, но там уже столько денег, что можно дальше и не расти.

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


Я этого не говорил. Но тут вспоминается кулстори с моей прошлой работы, когда ко мне подошел зам начальника отдела разработки с опытом 15 лет, и спросил, что такое std::move у меня в коде.

>>04847

>В SF у сеньеров в гугле компенсация больше 300к долларов в год. Даже если около половины отдавать на налоги (сомнительно) это около миллиона на руки в месяц.


Не забывай про то, что там безумная недвижимость, и очень дорогие услуги. Так что, равнять СФ и Москву по абсолютным значениям ЗП - глупо.

Ну и да, 300к для SF это мало, в том же FB можно 400-500 иметь.
229 1504861
>>04854
Не мог бы ты пояснить нубу, что такое монады? Мне даже википедия не помогла, тупо не понимаю и всё
230 1504866
>>04826
Чет я не понял. Как ты за 4 года сеньором то стал? Вундеркинд что ли?
231 1504869
>>04859

>Можно и 700 (привет, Хуавей)


А что, там реально столько платят? А-то ходят слухи, что в филиале в нашем мухосранске мидлам платят около 200, что для нашего городка как-то дохуя.
232 1504870
>>04845
Нужно вычитать не только налоги, но и расходы на жизнь.
Вариантов несколько:
- R&D. Топовые спецы по ML вполне получают под лям в ДС
- Свой бизнес. Будешь забирать себе всю добавочную стоимость
- Блогер, актер, коррупционер
- HFT
- Можно накопить 100 лямов и вложить в акции. При доходности 12% годовых будешь получать как раз лям в месяц.

>>04847
С 300к после налогов останется 15к в месяц. После затрат на квартиру и жизнь останется 7-9к в месяц, что как бэ не потрясающие деньги. Вон у какого-то типа из netflix брали интервью. Чуви занимается chrome web tools и попал на топ вилки по этому направлению. Он сказал, что в netflix стало хоть что-то оставаться после расходов, а пока он работал в гугле, вообще в ноль уходил.
233 1504873
>>04866
Каким сеньором, у нас столько джуны на стажировке получают.

шучу офкос
234 1504875
Какие блять 500 тыс в год в гугле? Вы ебанулись? Нет таких зарплат, даже в Microsoft йоба разработчики ядра столько не зарабатывают. А может как раз они столько и зарабатывают.
235 1504876
>>04870

>Топовые спецы по ML вполне получают под лям в ДС


Не
236 1504878
>>04869
Там платят дохуя из-за хуевых параноидальных условий работы
237 1504879
>>04866
за 3, но у меня до программирования был хороший технический бэкграунд. Перекатился из смежной области.

>>04869
Говорят, что да. Сам я ходил на собес Писал в прошлом треде, дали 260 до налогов, рофл. Видать, там лидам+ хорошо платят.

>>04875
Майкрософт никогда не платил. И находится он далеко не в долине, а в Сиэтле, где жизнь дешевле.
238 1504880
>>04870
Какая-то жиденькая аргументация от студентоты. Хуйни понаписал короче. Мл под лям, лол блять просто, сейчас все математики страны посмеялись хором.
239 1504883
>>04861
Сам нагуглил https://habr.com/ru/post/445800/

Весь тред пиздаболов короче. Пол мильена они получают, ага.
image.png17 Кб, 764x78
240 1504885
>>04879
Судя по-всему начал с этого года. Они на топ-1 ведь вышли, обоссав гуглы и амазоны и вообще всех сразу. В 500 в гугле не верю, даже в 300 не верю.
241 1504890
>>04885
https://www.levels.fyi

Вот более-менее честные зарплаты.
Алсо - еще есть teamblind.com - там тоже их пишут.
242 1504896
>>04859

>вполне можно. Можно и пицот получать, живя в Москве. Можно и 700 (привет, Хуавей). Потолок где-то в районе ебейшего принципал инженера, но там уже столько денег, что можно дальше и не расти.


Хуй с пальцем сравниваешь. Этих вакансий по пальцах двух рук пересчитать можно и там надо быть куда круче, чем стандартный плюсовик в nvidia вроде тебя. Круто, если ты туда доберешься, вполне искренне желаю тебе в этом успехов, но когда доберешься, тогда и поговорим. Попасть на зп 350к+ за пять лет - это, конечно, слегка необычно, но только слегка. На вундеркинда ты пока не тянешь.

>Я этого не говорил


Именно это ты и говорил, просто другими словами.

>>Сам я ходил на собес Писал в прошлом треде, дали 260 до налогов


Ну собственно ты сам подтвердил, что далеко не все околотоп компании оценивают тебя в 440к. Значит есть фактор удачи или совпадения твоих узких скиллов с конкретной потребностью работодателя в момент найма. Хотя судя по тому, что ты CI/CD настраиваешь, то скорее удача.

>>04869
700к платят там единицам. Мой бывший коллега туда ушел сеньером-плюсовиком на зп 280к. Это в ДС. Еще надо учитывать, что там офис-стойло с дешевыми перегородками и бывают случаи, когда китайцы-менеджеры смотрят на работников как на людей низшего сорта (это, правда, слышал давно и через третьи руки).

>>04880
В mail.ru есть датасаентисты, которые зашибают 600к+. Уверен, что в yandex research есть ребята, которые зашибают еще больше. Я очень сомневаюсь, что какой-нибудь Райгородский или Воронцов (они вроде не в отделе ресерча работают, но все же) зашибают меньше 700к. Хотя, возможно, у них вся зп - это сток и тогда разговор именно о зп у нас не получится.
243 1504897
>>04878
Поподробнее?
244 1504904
>>04890
Мне аж хуево стало, реально платят столько? Пора продумывать план по релокации.
245 1504911
>>04896

> Хуй с пальцем сравниваешь. Этих вакансий по пальцах двух рук пересчитать можно и там надо быть куда круче, чем стандартный плюсовик в nvidia вроде тебя. Круто, если ты туда доберешься, вполне искренне желаю тебе в этом успехов, но когда доберешься, тогда и поговорим. Попасть на зп 350к+ за пять лет - это, конечно, слегка необычно, но только слегка. На вундеркинда ты пока не тянешь.



В следующем году на ревью должен 500к тотал-компа перешагнуть, и получить лычку Senior II (оно же +грейд). Босс слезно обещал хотя знаем мы эти обещания. Я, собстно, про себя и говорил, упоминая ебейшего принципал инженера. Это вполне реально, работая в одном месте долгое время, если контора большая.

> Ну собственно ты сам подтвердил, что далеко не все околотоп компании оценивают тебя в 440к.


Безусловно. Мейл.ру меня скорее всего вообще оценит в 150к. А какой-нить новгородский яндекс в 90к и карточку на обед. Однако нвидия оценивает меня выше, и этого мне достаточно.

>Хотя судя по тому, что ты CI/CD настраиваешь, то скорее удача.


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

>>04904
Вычитай налоги, помни про конскую аренду. И да, зарплату ты получаешь, а вот всякие акции должны еще завеститься. Т.е. этот доход далеко не сразу.
246 1504913

>Райгородский или Воронцов


Это уже не /pr/, а реальная наука с математикой и статьями. Такие люди код не пишут. Хотя я не знаю, с чего ты взял про

>600к+


Ибо такие люди сидят и очень медленно генерируют идеи. Они столько прибыли не приносят.
247 1504915
>>04870

>ложить в акции. При доходности 12% годовых


блядь, какой же ты фантазер
248 1504920
>>04913
Да сказочник он. Ни в каких мейлру столько не платят. Усманову на кокс денег не хватит с такими расходами.
249 1504923
имхо, тред выходит в несколько опасную тему, а именно: меряние хуями, а именно размером своей зарплаты
так можно только разругаться друг с другом и все
250 1504924
>>04923
Ты абсолютно прав
251 1504927
>>04794
алсо, раст не хуевый
раст не нужный тупа
держится на самоподдуве кодеров из мозилы
и, кстати именно благодаря тому что умные дураки из мозиллы решили второй раз переписать свой браузер, щас они занимают меньше 10ти процентов рынка, лол
252 1504929
>>04913

>Это уже не /pr/, а реальная наука с математикой и статьями. Такие люди код не пишут


Я же написал, что это r&d. Что тебя смущает?

>>04920
Лично получал оффер на 250к в мейле. Бывший коллега сейчас в одноклассниках работает за 240к. Не знаю, с чего ты вдруг решил, что в мейле мало платят
253 1504945
>>04923
но хороше же померялись?
254 1504946
>>04945
Ага. Один чел получает больше всех остальных итт вместе взятых.
255 1504955
>>04896

>700к платят там единицам


В 2019 даже реакт-макака как я делает изи 700к, ремотно естественно, не знаю в чем у вас сложности

мимо реакт-макака
256 1504976
здесь есть хоть у кого-нибудь зп меньше 200?
судя по этому треду: нет
257 1504977
>>04976
Конечно есть, у меня 0, например.
258 1504978
>>04976
у всех остальных, кроме 3.5 пиздунов?
259 1504979
>>04976
Есть, я удаленщик на PL/SQL, получаю меньше:(
260 1504981
>>04978
50к, полтора года опыта, мухосрань 1кк
261 1504990
BOOL a = fun(x);
BOOL b - fun(x);
if ( (a + b) > 1 )

Это преобразование можно считать безопасным?
262 1504991
>>04990

>BOOL b - fun(x);


*BOOL b = fun(x);
263 1504994
>>04979

>удаленщик на PL/SQL


зато ты уникальная скотина, прямо белый амурский тигр :P
264 1504995
>>04994
Ну, нас таких в конторе человек 10-12, условно уникальные.
Прикольно, конечно(особенно когда видишь результат работы), но как-то всё равно тянет в свободное время пытаться учить плюсы. Даже в паре случаев смог для работы написать утилиты на них, охуенная практика.
265 1505009
>>04927
Почему ненужный? Он безопаснее и проще крестов, а по перформансу такой же. Пройдет лет 5-7 и кресты канут в лету, так как ёбщество поймет, что здоровенный дедуля-франкенштейн, источник кучи багов, нахуй ненужОн
266 1505015
>>05009
Кресты переживут тебя и твоих внуков.
267 1505036
std::accumulate(te.begin(),te.end(),0.0)/te.size()
Как настроить округление, вместо 50.199999 выдает 50.2
Oksana Chan 268 1505041
>>05036
А если написать 0.0000000 вместо 0.0?
269 1505048
>>04990
Пиздец. Оператор && ещё не проходили?
270 1505065
Использование статических членов в функциях плохой тон?
271 1505067
>>05065
Нет.
272 1505071
>>05036
Ты хоть приложи числа, которые в сумме дают 50.199999, а не 50.2.
Или попробуй float, может, будет другой ответ не факт, что будет, это только предположение.
273 1505072
>>05067
А как же правило что функция при одних и оех же входных данных должна возвращать одно и тоже значение?
sage 274 1505078
>>04196
В релизе тоже, но использование неинициализированной переменной всё равно ub, было и будет.
275 1505082
>>05048
Это для примера, у меня там 4 булла и нужно вернуть фолс, если хотя бы 2 из них true.
276 1505085
>>05082
Ну так ты не делай bool b = fun(x), делай int n = 0; n += fun1(x) ? 1 : 0; n += fun2(x) ? 1 : 0;
277 1505106
>>05072
Зачем тебе тогда static?
Обычно пишут что-то вроде
[code]
MyCls const & GetDefault() const
{
static const MyCls def;
return def;
}
[/code]
Если тебе хочется перед первокурсницами изъебнуться, то есть ещё миллион других способов, от статика отъебись
278 1505108
>>05085
Мне тогда придется преобразовывать то, что функция возвращает + проебать на инт в 4 раза больше памяти.
279 1505109
>>05108
ТРИ СУКА БАЙТА ПРОЕБАТЬ
НУ ТЫ КОНЕЧНО МОЧИШЬ)))
280 1505111
>>05109
Байт там, байт тут, в итоге уже проебал гигабайт
281 1505112
>>05108
Ну а если серьёзно, пиши
int s = 0;
if(f())
++s;
и т.д.
Компилятор умнее тебя
282 1505117
>>04976
Есть, получаю 30к, пытаюсь понять, где я свернул не туда
283 1505118
>>05112
Не, вру, пиши как анон выше советовал. Точно такой же ассемблер получается, что и у тебя
284 1505120
Аноны, годятся ли кресты для разработки прошивок? Если да, то как? Вряд ли есть фреймворк под эту тему)0
285 1505123
>>05120
Прошивок чего именно?
годятся
286 1505135
>>05117

>где я свернул не туда


вкатился в с++
287 1505151
Почему на codewars доля решивших задачу на крестах не превышает 1/20?
288 1505152
>>05117
портишь статистику
тут выше по треду получают 250, 430, 600, 700, .. один даже за миллион если в рублях пересчитать
а ты тут влез со своими 450 баксами..
289 1505172
>>05151
Потому что там задротские задачи для которых нужно знать матан.
290 1505174
>>05120
Сейчас вся DIY разработка SOC идёт на PHP5
15598936079170.jpg11 Кб, 230x215
291 1505181
109610900.jpg72 Кб, 900x528
292 1505192
>>05181
В с++ это нормально. Локальные переменные выделяются на стеке в порядке объявления. А борроу чекера тонет!
293 1505216
Ананасы, boost::ui кто-то юзал? Если да, то как оно? Покамест не особо хочется прыгать по фреймворкам/либам, так как всю мякотку пишу на бусте и не хочется заводить зоопарк, да и в индустрии гораздо больше распространен буст, нежели тот же Qt, поэтому гораздо выгоднее учить буст
294 1505223
>>1503199

>многопоточку спрашиваем


memory model и всякие false sharing или про ссаные rwlock и condvar из stdlib?
295 1505225
Как правильно завершать приложение, чтобы иконка из трея сразу удалилась, а не только при наведении мышкой? Пробовал вот так, но не помогает.
case WM_DESTROY:
{
Shell_NotifyIcon(NIM_DELETE, &nid);
DestroyIcon(hIcon);
PostQuitMessage(EXIT_SUCCESS);
}
return 0;
296 1505226
>>05225
Пиздец, дружище, в 2k19 писать на WINAPI - это диагноз
297 1505228
>>05226
Не хочу с собой тоскать многомегабайтные гробы, которые тратят в 100 раз больше ресурсов, чем нужно.
Oksana Chan 298 1505229
>>05226
Почему?
299 1505232
>>05181
Мейерс сказал, что volatile для пидоров.
300 1505243
>>05181
Не понял. А в чем буругрт?
301 1505254
>>05181
угу, и что? Специально залазишь в UB и плохой тут С++?
wtf.png16 Кб, 693x396
302 1505255
Объясните что это за такая дичь?
Oksana Chan 303 1505257
>>05255
Там же объяснение есть.
304 1505258
>>05255
4["abcdef"] == 'e'
305 1505260
>>05254

>Специально залазишь в UB


Не специально. С++ виноват, он дырявый

мимо
306 1505265
>>05255
Квадратные скобки -- синтаксический сахар, маскирующий выражение (a + b). Необходимо только, чтобы одно слагаемое было указателем, а второе числом, иначе выражение не имеет смысла. В твоем примере a -- указатель на начало массива, поэтому (1 + 3)[a] == ((1 + 3) + a) == *(a + (1 + 3)) == a[1 + 3]
307 1505268
>>05265
Бля, самого ведь раздражает, когда люди про разметку забывают

>Квадратные скобки -- синтаксический сахар, маскирующий выражение #(a + b). Необходимо только, чтобы одно слагаемое было указателем, а второе числом, иначе выражение не имеет смысла. В твоем примере a -- указатель на начало массива, поэтому (1 + 3)[a] == #((1 + 3) + a) == #(a + (1 + 3)) == a[1 + 3]

308 1505274
>>05268
>>05265
Спс, принято.
309 1505275
>>05255
Что за сайт?
310 1505276
>>05260
Когда ты пихаешь хуй в трансформаторную будку - виновата, вестимо, будка?
1230220-690x690.jpg58 Кб, 690x690
311 1505278
>>05276
На каждой трансформаторной будке есть пикрил. Если нет, то да - будка виновата
312 1505279
>>05278
в любой книге по крестам тоже есть предупреждения про UB, однако ты их проигнорировал
313 1505281
Ананасы, если я выучу SFML и буду пилить разные хуйни с графикой, кому это нахуй будет нужно? Куда берут на работу с такими знаниями? В общем и в целом, не только в срашке
314 1505282
>>05279
Т.е. в той области, которую можно автоматизировать, крестовики полагаются на человеческий фактор. Всё ясно, тред можно закрывать нахуй
315 1505283
>>05279
Я их не обязан знать. В компьютерных программах есть такая вещь, как защита от дурака. Если её нет - это плохая программа
316 1505284
>>05281
это отличное хобби.
317 1505285
>>05283

> Я их не обязан знать


Так пиздуй из профессии, умник.
sage 318 1505286
>>05265

>Квадратные скобки -- синтаксический сахар, маскирующий выражение (a + b).


Но ведь я могу раздельно определить сложение, скобки и звезду для класса, и они никак не будут с собой связаны...
319 1505287
>>05285
Тебя забыл спросить
320 1505289
>>05283
Конечно обязан.
321 1505292
А что такое UB?
323 1505295
>>05292
Особенность с++
324 1505298
>>05287
Ну, когда выгонят с собеседования ссаными тряпками - поймешь, что забыл спросить.
image.png74 Кб, 385x183
325 1505303
>>05294

>The order that function parameters are evaluated is unspecified behavior. (This won't make your program crash, explode, or order pizza... unlike undefined behavior.)


>unspecified behavior


Чо бля?
326 1505307
>>05298
Ты фанатик, гонишь меня из профессии хотя я просто указал на брешь в инструменте. Если бы ты работал дорожником, то кидал бы асфальт лопатой, а утрамбовывал ногами
327 1505313
Что происходит с программой после компиляции? Как всё это превращается в нолики и единички? Вот например цикл for, все его итерации будут записаны в виде последовательности нулей/единиц в экзешнике, или он будет как то в процессе выполняться?
328 1505315
>>05307
Где там брешь?
329 1505337
>>05313
Про JMP* инструкции процессоров слышал?
330 1505339
>>05313
Компилятор парсит твой говнокод, идет целая куча йоба-анализов, если после них нет ошибок, то идет конвертация кода в ассемблерный листинг. Сборщик, ассемблер (не путать с ассемблИ), читает опкоды всех инструкций, превращая их из шестнадцатиричных значений в двоичные. На выходе получается object file, линкер потом связывает этот файл с shared libraries и на выходе получается бинарник с нулями и единицами, который процессор готов исполнять.
sage 331 1505342
>>05303
Вот так это сеньор-помидор обьяснил на пальцах

>Важно понимать, что unspecified и undefined различны, что implementation-defined это когда то ли true то ли false (и задокано), unspecified это когда то ли true, то ли false (и может быть не задокано и в худшем случае таки undefined), а undefined это когда bool не true, не false, а его чтение может отправлять команду форматирования жесткого диска

332 1505343
>>05313
А насчет циклов: в языке ассемблера есть инструкции вроде jmp, loop, которые реализуют циклы. Вместо переменных - регистры, которые по сути являются контейнерами по 8, 16, 32, 64 бит (есть еще конкатенация регистров для операций умножения, но это уже из другой оперы) для нулей и единиц, пермутации которых образуют самые разные числа.
333 1505364
>>05313
А вообще шел бы ты читать dragon book, sicp и прочую классику.
334 1505416
>>05181
Веб-макака начинает понимать как работает выделение памяти?
335 1505420
>>05281
Пацаны, объясните зачем SFML и SDL, если есть OpenGL?
336 1505421
>>05243
>>05416
Довены так и не поняли, что это должно быть ошибкой компиляции.
337 1505424
>>05292
Это то, что нормальные люди никогда не видели, но от чего у манек-неосиляторов оче сильно полыхает.
338 1505428
>>05421
Иди репорти тогда, умник. Посмеемся всем тредом над тобой.
339 1505429
>>05421
Довен пока здесь ты, объясняй чему это ошибка компиляции, если ты подряд выделил инты, указав volatile, что они могут измениться вне обозримого для компилятора кода, затем взял указатель первого инта и с помощью арифметики указателей поменял значение в 4-м по счёту инте?
340 1505433
>>05420
Вроде же Sdl более высокоуровневый, чем OpenGL.
341 1505434
>>05420
И то и то, в первую очередь, мини-фреймворки для абстракции создания окна, оконных эвентов, клавомыши и прочее. Если ты хочешь и там и там нарисовать что-то сложнее квадрата\жпега - все равно придется использовать OpenGL в контексте созданного окна.

>>05429
Он дурачок, который ниразу не трогал системное апи, в котором бывают структуры типа:

struct yobastring
{
int length;
char[1] buf;
}
342 1505435
>>05434
char buf[1];
конечно же,
343 1505436
>>05192
Чем тут борроу-чекер поможет, если все захуярилось через копирование, а не через move.
344 1505444
>>05435
В struct такое можно сделать?
Вроде union все в одном месте хранит.
345 1505448
>>05444
Так это 2 разные переменные в структуре. Первая - размер буфера, вторая - первый элемент. В винапи есть вообще адовый ад, где 2 строки в одной такой структуре. Т.е. у тебя размер первой строки, размер второй строки (начинающейся после первой) - и первый элемент
346 1505459
>>05339
Ещё вроде loader перед самим выполнением, ну или же dynamic linker для .dll или .so

>читает опкоды всех инструкций, превращая их из шестнадцатиричных значений в двоичные


Эмм, какая-то тавтология вышла. Может, ты имел в виду, трансляцию из асм листингов в объект код (бинарный код)?

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


Можно подробнее расписать - в более-менее йоба компиляторах на этом этапе ещё идёт intermediate representation, этот IR оптимизируется таргет-независимо, потом таргет-зависимо.
Ещё в самом начале препроцессор, кстати.
Линкер может тоже что-то оптимизировать и выкидывать.
347 1505479
>>05434
Судя по тому, что ты сравниваешь local vars memory layout с object memory layout, то дурачек здесь только ты

>>05429
Во-первых, даже несмотря на volatile, никем и ничем не гарантируется, что локальные переменные будут лежать подряд или в том порядке, в котором их объявили.
Во-вторых, в нормальном прикладном коде арифметика указателей используется в исключительных случаях. Это просто не нужно, потому что ты работаешь с сущностями предметной области и они не должны зависеть от memory layout. По-хорошему такие операции надо обрамлять чем-то вроде unsafe {}, как в других языках.

Когда я писал про ошибку компиляции - это в смысле она там должна быть концептуально. По стандарту ошибки там нет и вообще это UB
348 1505484
>>05479
ну и да, вижуал студия выводит все нули, если что.
349 1505495
Сап крестач
Как мне передать указатель на функцию в метод register_client_message?

Сам метод пик1
Передаю на пик2
Определение методов на пик3

На пик2 выдаёт ошибку:

> error: no matching member function for call to 'register_client_message'


> note: candidate function template not viable: no overload of 'on_message' matching 'const std::function<void (std::shared_ptr<network::connection_t> &, const std::shared_ptr<chat_global_t>)>' for 1st argument



Хотя на пик3 видно, что эта перегрузка есть.
350 1505500
>>05495
std function написал, а до std bind не додумался?
351 1505503
>>05500
А что лучше использовать? Bind я часто видел в легаси-коде, во те времена ещё не было лямбд.
352 1505504
>>05503
Ай, бля, объебался. Вроде понял, что ты имеешь ввиду. Сейчас попробую.
353 1505506
>>05484
Ну так стек растет не в сторону увеличения адресов, хули. (&a0)[3] вообще за пределы стекфрейма выйдет

https://godbolt.org/z/nPySa0
354 1505513
>>05495
Ну и вообще скажите, как вы сами реализовали бы такую схему.
У меня есть массив сообщений(login_t, chat_t, delta_state_t, etc), но все они хранятся под типом message_t. Нужно вызвать для каждого из них свой обработчик on_message.
355 1505525
>>05513
полиморфизм?
356 1505527
>>05525
Ну и как мне кастовать из базового типа в дочерний? Без switch-case разумеется.
357 1505528
>>05504
Можешь и в лямбду обернуть, но лично я, если параметры "длинные", пишу bind - так короче выходит
358 1505529
>>05527
Визитор епта
359 1505533
>>05527
Ну либо цепочка if dynamic_cast else..., либо храни variant и делай std::visit
ну или заведи enum с типами сообщений и в наследниках метод, возвращающий "тип", а потом switch, да
360 1505534
>>05533

> без swich-case


> предлагает if-else и switch-case


Oh you

За std::visit спасибо, сейчас почитаю
361 1505538
>>05533
Ох уж этот pattern matching из говна и палок. Не надоело говно жрать? В расте есть pm, между прочим.
362 1505540
>>05538
Ну и уёбывай отсюда нахуй жрать говно в раст, пидор блядь.
363 1505547
>>05495
У тебя монитор не треснул от таких длинный строк?
364 1505552
>>05547
Я рефакторю, разнося работающий код по неймспейсам. Раньше он не был таким длинным. Зато, когда закончу - работать с ним станет удобнее, я надеюсь.
365 1505557
>>05552
Нужно банально бить длинные объявления функций хотя бы по запятым у параметров.
Плюс делать typedef'ы для умных указателей.
Я тебя на 3-м пике 2 аргумента, а на 2-м 1. Я не понимаю, что ты хочешь и почему ты считаешь, что это должно работать.
366 1505564
>>05557
На 2 пике 1 аргумент, потому что метод register_client_message принимает 1 аргумент.
367 1505572
>>05528
Ага, блять, а как дело дойдёт до взятия адреса перегрузки - что будешь делать?
368 1505584
Вот воспроизвел без вытекающих из глаз строк https://ideone.com/nlOI2J
Вот очевидное решение https://ideone.com/O8JqvM
Ща подумаю еще
369 1505586
>>05495
Про using/typedef/deduction guide не слышал? Я ахуел этот код глазами штудировать.
smeh2.jpg48 Кб, 600x600
370 1505587
>>05584

> on_message


> on_message2

371 1505593
Короче, видимо тру-C++ стиль это городить switch-case'ы. Через них и сделаю, всем спасибо. Строки укорочу, как закончу с рефакторингом.
372 1505597
Я бы сделал хотя бы так https://ideone.com/O8JqvM
Но вообще там напрашивается виртуальный метод
373 1505598
>>05593
тру - это visitor классический или он же, с помощью std::variant+std::visit
374 1505599
Потому что даункасты это в любом случае антипаттерн
375 1505600
>>05598
При чем тут визитор вообще. Он хочет по численному id генерить класс.
376 1505602
>>05597
Зачем сообщениям метод on_message?
377 1505607
>>05600
он хочет сделать даункаст

>>05599
разработчики компиляторов с тебя лольнули. А все пользователи pattern matching вообще в истерике бьются
378 1505608
>>05607
Ты очень тупой, иди нахуй
379 1505609
>>05599
А ты как бы сделал?
Сообщения приходят в виде байт. Я перевожу байты в C++-ные классы с помощью мапы <int, function<message(vector<char>&)>>на самом деле там интерфейс builder в значении, но не суть
Дальше запихиваю эти сообщения в vector<shared_ptr<message>> и работаю уже с ними. Хули мне остаётся то? И как этого избежать?
380 1505611
>>05608
ору с долбоеба, который не понимает, что без даункастов невозможно обойти AST
381 1505613
>>05611
Орущая мелкобуква, от тебя воняет, отойди
382 1505617
>>05534
А в чём проблема switch?
383 1505618
>>05617
Дублирование кода
384 1505620
>>05609

>Хули мне остаётся то


Заебенить виртуальных методов в message
385 1505621
>>05572

> взятия адреса перегрузки


Чиво блядь? Если ты про bind и перегруженные функции, то тут уж да, оберну в лямбду. На весь проект >1kk LOC при переходе с буста на стд нашлось от силы десяток таких мест
386 1505622
>>05620
И что они будут делать, как будут называться?
387 1505625
>>05618
В каком месте? Если уж не хочешь свитч, тогда запили мапку с обработчиками
388 1505629
>>05625
Вот в этих двух местах
389 1505635
>>05622
Я ебу, это твой код. С абстрактной точки зрения, у тебя есть две задачи. Первая по id конструировать объекты. Это делает мапа из id -> function<message()>, который ты зачем-то обозвал билдером, хотя тебе было достаточно строчки
m_builders[T::id] = []() { return std::make_shared<T>(); };

Вторая - это работа с гетерогенным контейнером типа vector<message>.
У тебя в контейнере лежат черные ящики, о типе которых ты не знаешь. Самый нативный для С++ способ работы с гетерогенными контейнерами - это виртуальные методы. Почему они тебя тут не устраивают, я не знаю. Если не устраивают, можно о std::function подумать. Ну УЖ ТОЧНО тебе не нужно делать m_processors[T::id], потому что это такой кривой способ создать таблицу виртуальных методов, матчащихся почему-то не по самому типу, а по его id.
390 1505642
Т.е. на том этапе, когда тип у тебя создан, он уже знает о своей внутренней структуре. Другие мапы, поомимо m_builders, тебе не нужны. Тебе нужно добираться до обработчиков с помощью системы типов, которая уже знает, какой у тебя тип.
391 1505651
>>05629
Ну и где тут дублирование?
и если знаешь тип сообщения, можешь делать static_cast и ЕБ ТВОЮ МАТЬ ЗАЧЕМ ТЫ shared_ptr'Ы туда-сюда тягаешь?
sage 392 1505658
>>05635

>это виртуальные методы


Это разве не медленная хуйня?
image.png31 Кб, 784x185
393 1505660
>>05635

> m_builders[T::id] = []() { return std::make_shared<T>(); };


Сообщения из святого духа что ли создаются?
Билдер у меня выглядит вот так. Позволяет легко подключить новый протокол.

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


Допустим, я сделаю виртуальный метод callback. В конструктор каждого сообщения буду передавать какой-нибудь messages_receiver_t, у которого в методе callback буду вызывать метод on_message? Я правильно понял?

>>05651
В смысле где? message::in::login_t например. Я пишу его 3 раза, хотя должен писать только 2(в вызове register_client_message и в объявлении on_message)
dynamic_cast уберу, он и правда тут лишний. А с поинтерами что не так? Мне использовать ссылки вместо них?
394 1505667
Ананасы, без рофлов, какая самая лучшая IDE для крестов? Только не говорите, что это тормознутый говновскод на электроне
395 1505669
>>05667
QtCreator
К сожалению, кроме него для C++ нет вообще ни одной приемлемой IDE.
396 1505670
>>05658
+6 тактов на вызов примерно. То есть, ты никогда не заметишь разницы нигде, кроме максимального дрочения чисел

>>05667
Вижуал Студия + решарпер С++
397 1505672
>>05670

>Вижуал Студия + решарпер С++


Давно есть Clion, маня
398 1505674
>>05672
Тот же эклипс, только отремонтированный дошиком студентов из говновуза ИТМО.
399 1505677
>>05672
Eсть конечно. А еще говно в унитазе есть. Только это не меняет того факта, что всей этой залупе до Студии+Решарпера еще несколько лет разработки.
400 1505678
>>05674
по твоей логике решарпер тоже сделан дошиком студентов из говновуза ИТМО. Алсо, как там твоя 32-битная студия поживает?
401 1505679
>>05660
Позволь взглянуть на структуру твоих классов.

> А с поинтерами что не так? Мне использовать ссылки вместо них?


Конечно, если указатель не может быть nullptr. Иначе голый указатель (или то, что core guidelines предлагают вместо него). Если не собираешься становится владельцем - не передавай shared_ptr.
402 1505680
>>05677
Назови мне фичи студии+решарпера (который бля сделан тем же JB), которых нет в clion
403 1505681
>>05678
Студия ещё хуже, к чему ты вообще про неё спросил?
QtCreator пока что лучший
404 1505682
>>05678
Нормально. Если ты пытаешься развести на жор памяти - то иди нахуй, дебаггер x64 и в отдельном процессе, а больше 4гб ide жрать не может.
405 1505684
>>05680
Нормальный дебаггер

/thread
406 1505686
>>05680
Хороший отладчик
407 1505689
>>05674

>дошиком


джетбрайн хорошо платит вообще то
408 1505691
>>05667
Лучшая IDE для крестов называется emacs. Все остальное провоцирует тебя говнокодить
409 1505697
>>05689
копеечные 200к суперсениорам в двух+ языках то?

>>05691
дедуль, плиз
410 1505703
а у тебя что за сообщения то по сети прилетают? это какой то бинарный протокол? а что надо делать с сообщениями, как их обрабатывать то?
какая вообще практическая задача у тебя?
411 1505707
>>05697

>копеечные 200к


ты шутишь что ли? 200к для дс2 - безумные деньги вообще то
столько зарабатывают наверное только сотые центиля..
412 1505708
>>05707
а теперь сравни с 400к+ в нвидии
413 1505748
>>05707
>>05708
ща сравнил офф статистку
к сожалению они не дают децильного распределения разделенного по областям деятельности
но в целом по россии верхняя децильная группа айтишников зарабатывает 267 тысяч рублей
так чтож я был НЕ прав
414 1505749
>>05748

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


по каждой конкретной области в россии, имел в виду
то есть не посмотреть, например, конкретно для питера
только для россии в целом
415 1505751
>>05748
где статистику взял?
416 1505752
>>05748
>>05749
и, причем по этой статистике, виден жуткий несправедливый дисбаланс в оплате айтишников а именно:
верхняя децильная группа зарабатывает 37% всех средств
те 10% забирают себе 37% зарплаты, а остальные 90% - 63%
:D
417 1505754
>>05752
ты бы штаны постирал, несправедливый
418 1505756
>>05751
https://gks.ru/compendium/document/13268
можешь помедитировать на циферки
изображение.png151 Кб, 1366x768
419 1505758
Что ему не нравиться?
420 1505760
>>05754
я в обоссаных щас трусах сижу поддерживаю традиции левого движения
421 1505762
>>05667
Студия.

Ноудискасс.
sage 422 1505763
>>05758
Точку с запятой на прошлой строке поставил? Пиздец как так писать можно вообще, enter нажимай когда перестаешь строку видеть, оно само шифт добавит на нужную длину
423 1505764
>>05681
Я на топовом железе жду зачастую секунд по 10, когда нажимаю F2 при курсоре на переменной (перейти к определению), вот что это за хуйня?
424 1505765
Что за шизик уже второй день жидбрейнс форсит? Сравнивать clion с vs... Вот мудак то! Пиздец просто, слов нет.
425 1505769
>>05763
Точка с запятой стоит. На какой строке у меня проблема с написанием? Где я enter не поставил?
426 1505775
>>05758
Проверяй что все фигурные скобки в файле (и инклудах) правильно спарены
427 1505781
>>05775

>скобки


>в инклудах


Лол. Инклуд с незакрытым неймспейсом это диверсия уровня #define true false а то и выше.
изображение.png116 Кб, 1366x768
428 1505786
ЧО НАХУЭ?
429 1505793
>>05786
QObject.h может быть хочет?
430 1505795
>>05786
C++11 то включил?
431 1505797
>>05793
>>05795
Все решилось перезапуском. Теперь только две предыдущие ошибки остались
изображение.png151 Кб, 1366x768
432 1505800
>>05797
Ошибки из неоткуда появляются. До этого всегда 51 строка работала, а сейчас ошибка выскочила
433 1505803
>>05800
где-то ты опять проебался со скобками
434 1505808
>>05758
Я, конечно, могу быть старым пердуном-консерватором, но с каких пор в плюсах булевые операторы можно писать как and и or вместо православных && и ||?
435 1505810
>>05808
всегда можно было, просто это никто не использовал, кроме странных людей без &| на клавиатуре. Собстно, та же история с триграфами
436 1505812
>>05808
Ага, я бы пиздил за такое.
437 1505813
>>05810
Так а почему тогда ошибка "пропущена ")" перед идентификатором and"?
Ключевое/зарезервированное словое - нихуя не идентификатор.

>>05812
Двачую, это пиздец.
438 1505819
>>05813
Какой же, повторюсь, пиздец - это действительно компилится.
439 1505826
>>05808
Наследие тяжелого сишного прошлого, когда компьютеры были разными и у некоторых могло не быть символов & и |

Еще были триграфы https://www.oreilly.com/library/view/c-in-a/059600298X/ch01s06.html
440 1505829
>>05826
А битовые тогда как?
441 1505836
>>05808

> Я, конечно, могу быть старым пердуном-консерватором, но с каких пор в плюсах булевые операторы можно писать как and и or вместо православных && и ||?


В C++98 уже было. Ты настолько пердун, что кодил на плюсах до 98-го года?
442 1505838
>>05813

>Так а почему тогда ошибка "пропущена ")" перед идентификатором and"?


>Ключевое/зарезервированное словое - нихуя не идентификатор.


Спроси это у тех, кто писал/переводил диагностические ошибки в твоём компиляторе.
443 1505839
>>05765
Выходные - нормальные люди тусят, одни шизики в треде
444 1505840
>>05265

>Квадратные скобки -- синтаксический сахар, маскирующий выражение (a + b).


Начиная с C++17 (или даже 14) между E1[E2] и *((E1) + (E2)) есть некоторая разница.
445 1505845
>>05840
Кокая? Неужели bound check?
446 1505847
>>05845

>Кокая?


Самому посмотреть никак?
y78.jpg137 Кб, 500x429
447 1505851
Сделал небольшое приложение для скриншота рабочего стола на winapi, укажите на ошибки, кому не лень, буду благодарен.
https://github.com/AI-Decay/ScreenDesktop
ньюфаг-студент
448 1505856
>>05851
а че оно может то?
режим выделения мышкой есть?
а скрин текущего активного окна есть?
449 1505857
>>05851
копирование в буфер обмена есть?
скрытие курсора есть?
скрытие оформления окна в режиме снятия скриншота с текущего активного окна есть?
450 1505858
>>05856
>>05857
Есть выбор 1 из 4 форматов, сохранение скринов с актоименованием в отдельную папку, сворачивание в трей, скрин на принтскрин или кнопку в окне, сохранение выбранного формата до след запуска. Больше ничего не умеет.
451 1505859
>>05851
а вообще винда десяточка умеет делать все это
разве что отложенные скриншоты не умеет и запись видеоряда
452 1505860
>>05851
https://ru.wikipedia.org/wiki/Ножницы_(Windows)
https://ru.wikipedia.org/wiki/Снимок_экрана
вот видишь
все уже написано до тебя
программисты не нужны
453 1505862
>>05859

>отложенные скриншоты не умеет


и это умеет
печалька для юных программистов
они ощущают свою ненужность
thewackyweirdnessthatgoesoninsidethenightclubsomewhereinrus[...].png463 Кб, 604x403
454 1505863
>>05839

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

455 1505865
жду
456 1505870
Ку, крестач
Пилю на бустах проект, хочу впоследствие прикрутить к нему гуи (таков проект, только в терминале он будет слегка уебищен), что лучше юзать? Не тащить же весь Qt из-за одного только гуи
457 1505877
>>05870

>что лучше юзать?


electron
458 1505878
>>05870
Почему нет? Не понимаю этого "не тащить же весь qt из-за модульнейм". У тебя ограничение на размер приложения?
459 1505889
Чет я нихуя не понимаю, почему
while(pow(++g,2) < 2500)
std::cout << pow(++g,2) << " " << temp << "\n";
g достигает значения 51? Разве цикл не должен завершиться на 50?
460 1505896
>>05889
Не забывай, что pow работает с числами с плавающей точкой, и pow(50,2) может вернуть что-то вроде 2499.9999666
461 1505897
Спасибо, если заменить на g*g то всё работает. Странно, что в ideone такой проблемы не было.
462 1505898
>>05870
Не хочешь тащить - выбора мало. Чистый windows api или mfc, или дотнетовский windows forms через c++/cli
463 1505923
>>05889
Ты, дегенерат, два раза g увеличиваешь.
464 1505924
>>05669

>тормозящее говно, иногда у qmake отваливается синхронизация с файлами и приходится перезагружать всю IDE


ноудискасс
465 1505926
>>05829
Ну смотри
&& -> &
|| -> |
Тогда
any -> a
or -> o
466 1505928
>>05847
Ты спизданул, ты и пиши
467 1505929
>>05926
Погуглил
bitand, bitor
468 1505932
>>05929
bitor'd
Снимок.PNG50 Кб, 1696x419
469 1505940
Двач образовательный, подскажи плз как сделать каст, что только не пробовал, но компилятор вечно ругается.
470 1505947
>>05940
Мне кажется проблема в том, что ты преобразовываешь перед auto
Снимок.PNG56 Кб, 1736x469
471 1505949
>>05947
Вот так тоже пробовал.
472 1505953
>>05949
Во-первых, почини вывод студии.
Во-вторых, ты мог сам загуглить ошибку C2280, ознакомиться с ее текстом и предположить, что же не так с тем классом, к которому ты пытаешься скастить.
473 1505985
>>05923
Я это сразу как скинул увидел, но проблема была не в этом.
474 1505990
А теперь можно лабы поделать
475 1505994
>>05990
аватарка, че у тебя за лабы с бустом и сфмл?
476 1506003
>>05994
буст для юнит тестов, сфмл для отрисовки фигур. Вместо неё также можно информацию в консоль выводить, но тогда меньше баллов будет
477 1506043
>>06003
тянуть 300+ пакетов буста для буст юниттестов это вин.
478 1506069
>>06003

>буст для юнит тестов


слухи ходят что не самая лучшая либа, что лучше таки гугл моск..
479 1506076
>>06069
Ещё есть слухи, что в 2к20 лучше вообще взять хэдэронли catch2 и не ебать мозг с жирными либами для тестов.
480 1506084
>>06069
наверное, ты имел ввиду гуглтест, который, кстати, полное говно

>>06076
Этого джентельмена двачую
481 1506097
>>05898
кто тебе сказал, что я на винде?с:
482 1506107
>>06097
если что-то очень небольшое - то imgui или nanogui
483 1506108
Указатель на массив и указатель на первый элемент массива это же разные вещи?
484 1506113
>>06108
имя массива == указатель на его нулевой элемент (только если это си-стайл массив, а не std::array, который нужно передавать по ссылке в функции, чтобы изменить напрямую)
485 1506129
>>05764
Поставь на F3
486 1506130
>>06113
Просто есть ведь такая хрень (™p)[3]=&arr, которая почему то не одно и тоже что ™p = arr
487 1506133
>>05924
Так используй CMake, нахуя тебе qmake? Лично я с qmake е работаю и у меня ничего не тормозит в сравнении с другими IDE.
488 1506134
>>06108
Технически на linux, win, mac - одно и то же. Если массив не POD типов выделяется динамически, то у массива есть -1 элемент, в котором лежит кол-во объектов в массиве. Эту инфу потом считывает delete [] для вызова необходимого количества деструкторов. Насколько я помню, это - unspecified behaviour, так что вполне может оказаться, что указатель на массив и указатель на первый объект могут различаться.

Буду рад, если кто-то залезет в говностандарт и чекнет
489 1506136
>>06134

> то у массива есть -1 элемент, в котором лежит кол-во объектов в массиве.


А если массив char? В -1 элемент количество ведь не поместится
490 1506137
>>06134

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


what_the_fuck_am_i_reading.jpeg
491 1506138
>>05851
Все хорошо, только код ты написал на Си, вместо С++. Переделывай.
492 1506140
>>06136
Компилятору похуй, он рассчитывает, что перед началом массива есть ячейка size_t.
493 1506142
Мужики, я походу в шаблонах утонул. Сел порефакторить блять...
494 1506145
>>05765
Зачем форсить объективно лучшее иде?
495 1506147
>>06003

> буст для юнит тестов


Обосрался.
496 1506148
>>06145
Тебе и нетбинс лучшая иде
497 1506151
>>06148

> пук


Какие альтернативы у clion? Студия, которая работает как черепаха, не кроссплатформенна и весит 6 гигов?
498 1506153
>>05765
Маня, не все сидят на винде и даже на винде не все сидят в студии. Я студию не переношу из-за тормозов. Отключаю в ней вообще весь интеллисенс и оставляю ее только для дебагера. Все остальное делаю в clion (а до стабилизации clion - в богомерзком eclipse. Да, даже сраный eclipse cdt был лучше студии+resharper/vassist)
499 1506154
>>06151
Нет, студия - это говно. Я выбираю QtCreator.
500 1506156
А еще clion наше, русское творение. Вы не патриоты?
501 1506157
>>06154
ну и сиди без рефакторинга и с лагающим codecomplete. Алсо, как там, нормальное открытие исходников в отдельном окне уже добавили?
502 1506158
>>06156
Вот поэтому он и говно. JetBrains - отвратительная контора для андроид разработчиков-пидоров.
image.png34 Кб, 476x237
503 1506160
>>06157
Лично у меня рефакторинг работает и codecomplete не лагает.

> открытие исходников в отдельном окне


Я никогда этим не пользовался. А ты можешь сам написать плагин, если тебе это сильно нужно.
504 1506161
>>06158
Что тебе не нравится в clion? Jetbrains один из лучших работодателей в россии, где прогеры решают действительно сложные задачи и получают очень хорошо.
505 1506162
>>06160
размер исходников в студию, пожалуйста
506 1506164
>>06161
За настолько сложные задачи нужно платить больше.
507 1506165
>>06138
Старался использовать С++ как мог, сделал лямбда-функцию и использовал _cast. Разве что malloc на new поменять и умных указателей добавить. Как я ещё могу использовать возможности C++?
508 1506166
>>06151
>>06153
Ты понимаешь, что Clion это вообще не иде, а текстовый редактор со свистоперделками? А студия полноценная иде. Про лаги пиздеж полный, это ваш Clion валится на проектах >20k строк кода.
image.png36 Кб, 469x91
509 1506171
510 1506174
>>06166
Охуенные истории
511 1506176
>>06166
Шизик, свои манякритерии ide оставь при себе. Про "валится на проектах >20k строк кода" - тоже пиздеж полный. Спокойно открываю в нем всякие clang/llvm и прочие шняги на 450+mb только исходников.

>>06171
детский сад. Алсо, ты в мегафоне работаешь? Сколько платят? Себя ненавидишь?
512 1506180
>>06176
В смысле детский сад? 8.8мб чистого кода - это тебе не хуй собачий.
Нет, не в мегафоне. Платят 100к, хотелось бы больше.
513 1506185
>>06176
Мань, начнем с того, что в твоем текстовом редакторе нет нормального отладчика, работа с которым занимает больше времени, чем написание кода. Тестов нормальных тоже нет. На этом можно закончить, это говноподелие от жидбрейнс не подходит для чего-то крупнее хеллоуворлда. Про написание драйверов и прочих низкоуровневых компонентов ос вообще молчу.
514 1506191
>>06180

>8.8мб чистого кода - это тебе не хуй собачий


уговорил. Сколько компилится?

>>06185

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


Интерфейс к отладчику есть, работает стабильно. А вот gdb/llvm работают херово, да. Поэтому я отладчиками практически не пользуюсь. Хватает тестов и санитайзеров

>Тестов нормальных тоже нет


Есть
515 1506195
>>06191

> Сколько компилится?


Минут 5.
517 1506229
Вот тут у кого то 8 мегабайт исходников 5 минут компилиться. Если в эти 8 мб допусать одну строку оно все пересобираться будет?
518 1506242
>>06229
Нет
519 1506244
>>06229
Если в .h, который включается повсеместно, то да. Если в CPP что-то поправил - то только один файл пересоберется. Ну и перелинковать затронутое разумеется.
мимо собираю проект 1,5 часа с распределённой системой сборки
520 1506256
>>06244
А если у меня cpp файл на мегабайт? Почему нельзя компилировать типо построчно где это возможно. Питон же так исполняется
521 1506257
>>06153

> Я студию не переношу из-за тормозов. Отключаю в ней вообще весь интеллисенс и оставляю ее только для дебагера. Все остальное делаю в clion


windbg не пробовал? советую, если что
522 1506258
>>06256
Съебал с треда, пидор.
523 1506260
>>06134

>Если массив не POD типов выделяется динамически, то у массива есть -1 элемент, в котором лежит кол-во объектов в массиве.


не, не у массива..
как правильно хранить (те сколько памяти нужно выделить, а потом удалить) лежит на реализации new[]/delete[], стандарту это без разницы, способ реализации он оставляет за теми кто будет реализовывать стандартну библиотеку..
524 1506264
>>06113

>имя массива == указатель на его нулевой элемент


формально, это не так
формально, в некоторых случаях производится низведение типа
к примеру, при передаче по значению в функцию фактический аргумент типа массив низведется, и формальный аргумент станет типа указатель элемента массива
525 1506266
>>06076

>catch2


спасибо за наводку
526 1506281
сап, анчоусы.
А где-нибудь можно взять core guidlines в pdfочке?
Хочу напечать, чтоб на бумажке читать от экранов уже глаза пиздец как болят, хочу бумажку
527 1506284
>>06258
Почему?
528 1506285
>>06069
>>06084
>>06076

Есть ещё TUT и Qt Test (работал только с последним)
Вообще, есть есть какие-нибудь сравнения? Чем плох буст? Чем плох гугл? Почему Catch2 лучше?

Есть какой-нибудь анон, который в этом говне копался?
529 1506288
>>06284
Потому что cpp на 1 метр - это лютейший пиздец и тем, кто хуярит такие файлы в 99% случаев надо нахуй отрубать руки, чтобы они больше писать ничего не могли
530 1506292
>>06288
То есть при малейшем изменении пересобирается весь файл? Зачем?
531 1506312
>>06257
Ну ты советчик конечно, неосилятор со студией совладать не может, а ты ему дедушку windbg советуешь взять.
532 1506320
>>06312
Что именно нужно осиливать в студии: тормоза или креши? Просто хочу разобраться
533 1506339
>>06285
у google test тесты как тесты. много вариантов запуска у раннера, удобно. В целом похоже на все остальные тестовые фрейворки. boost test по функционалу победнее google test, но жить можно.
534 1506906
>>06320

> Чем плох буст?


Стрельба ядерными боеголовками по воробьям

> Чем плох гугл?


не header-only

> Почему Catch2 лучше?


Header only, и не застрял в С++98, как буст
535 1506908
>>06292
А как ещё? Ты, например, переставил местами поля в структуре. Формально изменения в двух строчках, на практике паддинги и смещения пошли по пизде во всей программе.
536 1506912
>>06292
далеко не весь. У тебя от старой компиляции остаются обьектники, и при изменении и рекомпиляции - старые обьектники частично могут переиспользоваться, компилируя только измененный код
537 1506917
>>06912
разве cpp не целиком компилируется в объектник?
538 1506923
>>06917
да, но если ты изменил 1 функцию, а еще 999 не тронул - то смысл перекомпилировать 999, когда их можно взять из обьектника? Собстно, студия так и делает.

А вот если ты сменил какую-нибудь там структуру, то перекомпилируется все, что ее использует. Но не вообще все.
539 1506984
>>06312
почему дедушку
windbg активно развивают, постоянно выходят новые версии..
посмотри хоть скриншотики..
540 1506986
>>06984
и есть еще типа WinDbg Preview, это новая морда к windbg, которая доступна в магазине windows//
541 1506992
>>05928
Тебя ебёт "кокая", ты и выясняй
542 1507083
>>06147
Чем буст тест плох?
543 1507111
>>06992
Так он и выясняет у тебя
image.png168 Кб, 1452x919
544 1507156
Я закончил с рефакторингом и теперь у меня всё через шаблоны! А я уж было решил что убил проект!

Алсо, рейтаните кусок кода.
545 1507160
>>07156
Уже нашёл баг в перегрузке метода create, не обращайте внимание
546 1507192
Имеется библиотека, написанная на C, мой проект на C++, как мне из С++ работать с этой библиотекой, и как компилить, если либа через gcc компиляю, а сам проект на g++?
547 1507194
>>07192
не библиотека а заголовок
548 1507205
>>07156
Нахуя тебе parameter pack, если ты им не пользуешься?
549 1507217
>>05279
Там стандарт на 1000 страниц с предупреждениями, хочешь сказать, ты его прочитал и всё наизусть знаешь?
550 1507218
>>07156
Сколько ж ты шаблонного говна написал для 3 ссаных сообщений.
551 1507219
>>07217
Да.
552 1507298
шо, опять? бьем до 700 пстов и только тогда перекатываем?
553 1507299
Как поумнеть и написать лабы по С++ ?
изображение.png19 Кб, 1104x646
554 1507301
while (ct++ < 5)
{
cin >> ch;
stackSymbol.push(ch); // помещаем элементы в стек
}
cout << endl;
stackSymbol.printStack(); // печать стека
cout << "\n\nУдалим элемент из стека\n";
stackSymbol.pop();
stackSymbol.printStack(); // печать стека
Stack<char> newStack(stackSymbol);
cout << "\n\nСработал конструктор копирования!\n";
newStack.printStack();
cout << "Второй в очереди элемент: " << newStack.Peek(2) << endl;
return 0;

Посоны а для чего нужен конструктор копирования.
Я лабу списал, но не понимаю как она работает.
:(
(Ну то есть там ещё h и срр файл со стеком)
Но примерно можете сказать для чего он нужен.
А то я довн. Или направьте меня куда нибудь нахуй по адресу.
556 1507309
>>07156
послушай
комбинация std::variant в связке std::visit может использоваться как некий аналог динамического полиморфизма в крестах
но, блядь, зачем
когда у тебя есть проверенный десятилетиями пусть через гомогенные иерархии классов и виртуальные методы
std::variant в первую очередь как замена union, и в том числе для работы с встроенными типами; как один из инструментов type erashure, а не замена наследованию и интерфейсам
557 1507552
>>07309

>динамического полиморфизма


Разве это не статический полиморфизм?

>>07309

>гомогенные иерархии


Чоткие поцаны таких не любят
558 1507748
Что могут спросить на собеседовании при наличии следующей фразы в требованиях

>знаком со средствами обобщенного программирования в С++ (templates);


Впервые такую формулировку вижу. И еще, сколько обычно отвечают на резюме, и отвечают ли на него вообще если ты не проходишь?
559 1508603
я вам покушать принес
https://youtu.be/I0oerm0MYQY
560 1508932
Хочу вкатиться в qt, чтобы сделать сапер. Что почитать?
561 1508982
>>07748
Например написать функцию суммирования принимающую рандомное количество аргументов какого либо типа.
562 1510102
>>08932
сикп
563 1511025
почаны, подскажите как православно возвращать вектор из метода? по значению? или как?
777777.png27 Кб, 870x213
564 1511360
Почему auto выводит точно такой же тип, но студия не ругается?
565 1511414
>>11025
если вектор был создан непосредственно в методе, то его придется возвращать по значению, ибо в конце метода он разрушается и если ты вернешь его по ссылке - ты вернешь участок памяти с мусором вместо вектора. Если вектор был передан в метод, то возвращать его лучше, конечно же, по ссылке.
566 1512499
>>11025
по значению, там будет либо (N)RVO, либо перемещение.
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 18 ноября 2019 года.

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

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