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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
# OP 2 1576740
https://www.meetup.com/ru-RU/Moscow-C-User-Groups/events/267873544/

И сразу бампану митапчиком в Align Technology в ДС
3 1576811
Первый итт
4 1576820
>>76740
В Align Technology годно работать?
5 1576822
Я что даун?
Почему неправильно сравнивает?
image.png12 Кб, 731x38
6 1576824
>>76822
Входные данные
Из этих строк нужно найти самую большую длину
Почему при сравнении -2147483647< a1.length() (4 на первой итерации) результат false, если -2147483647 < 4?
7 1576825
>>76820
Есть пара знакомых оттуда, говорят что вполне неплохо. Я бы сам даже на митапчик сьездил на офис посмотреть, только дико лень пердолить в эти чертановские перди.
8 1576835
>>76825
Добавлю, что знакомого мидлом туда недавно взяли, дали 200к. Не так плохо.
9 1576837
>>76824

>результат false, если -2147483647 < 4?


Енжой йор АНСИГНЕД.
10 1576839
>>76835
О, а давайте за зп потрем. Че там у нас по кресторынку труда в родном отечестве?
11 1576840
>>76839
Лучше нвидии ничего нету, ты же сам знаешь
12 1576841
>>76840
Неужели больше 200к мидл из нвидии имеет?
13 1576844
>>76841
Сениор 300+ имеет изи. Мидлов не хайрили вообще.
14 1576845
>>76837
Лол, не знал, что size_t не может в сравнение с int без явного преобразования, спасибо
15 1576854
Сап, программач, студент 3 курса, нормально понимаю учебную программу, хотелось бы порешать какие-нибудь задачи и получить новые знания в принципе?
Что посоветуете?
Искал книги, большинство - дроч алгоритмов или основы
16 1576861
>>76854
Сделай простую игру, платформер или лабиринт. Потрогаешь сразу много областей, что-то про ui и графику, что-то про многопоточность, про общую архитектуру более-менее громоздкой программы. Если ещё и сетку прикрутишь с компенсацией пинга и чтобы без десинхронов было - это уже вообще круто. Можно простейший интеллект для мобов или компьютерных противников поделать, там все эти алгоритмы на графах на деле могут пригодиться.
17 1576866
>>76861
Хорошо, а как начать?
Может, есть какой-нибудь материал, который расскажет, в какой последовательности все делать и хотя бы примерная реализация?
18 1576897
>>76866
Платформер или лабиринт в окно кстати - плохие жанры. Лучше top-down шутер, наверное.

Ну, смотря что тебе интереснее. Можно вывести квадрат через opengl и прикрутить чтобы по нажатию клавиш он двигался - тут просто рандомный hello world для opengl нужно загуглить, прикрутить туда таймер отсчитывающий время и на него завязать игровую логику, добавить квадрат который будет двигаться вокруг тебя, потом добавить чтобы по нажатию клавиши ты стрелял, и при попадании снаряда по вражескому квадрату у него уменьшалось хп. По крайне мере я так делал и более чем доволен.
При этом каким образом ты организуешь все игровые объекты и игровую логику только от тебя зависит - можно прибить гвоздями кучу костылей, можно сделать громадную полиморфную ооп мусорку где все объекты наследуются друг от друга. А если подразумеваются разные уровни и карты, где можно из одного состояние в другое перескакивать то тут ещё больше вариантов как это переключается, пространство для творчества безграничное.
19 1576903
>>76897
Хорошо, спасибо
20 1576917
>>76903
Сам посмотри только, может быть совет говно полное и тебе не зайдёт, и вообще тебя другие области интересуют, какая-нибудь обработка и анализ тестовой и другой информации.
21 1576918
>>76897

>Платформер или лабиринт в окно кстати - плохие жанры


С чего бы?
22 1576945
>>76918
Уныло, нет никакой сложной иерархии объектов и упирается просто в проверку пересечения линий. Лабиринт это вовсе лишь форма уровня. В top-down шутере можно сделать отряды мобов, состоящие из отдельных юнитов, которые пытаются тебя окружить что уже в бесконечность раз интереснее любого платформера. И top-down шутер можно переделать в стратегию со строительством и сложными иерархиями объектов или в гонки с видом сверху не сильно модифицируя логику пространства. А из платформера ничего особо большего чем платформер не сделаешь.
23 1576947
>>76861
Он не сможет написать игру без знания паттернов.

>>76854
Либу напиши какую-нибудь, логгер например. Свой аллокатор со свистелками и перделками. Вот в таком духе таски выбирай.
24 1577109
>>76945

>А из платформера ничего особо большего чем платформер не сделаешь.


Нелинейный платформер с процедурной генерацией уровней и динамической сложностью врагов, например, мне кажется очень хорошим вариантом, особенно для начала.
25 1577132
>>76947
Ему не нужны паттерны. И паттерны не требуют отдельного изучения - часть из них интуитивно очевидная и он напишет их сам собой, другая часть - костыли, которые нужно чтобы притянуть ооп или ещё что-то туда, где оно не нужно и лишь усложняет код. Вдвойне бесполезная штука, если он пишет код один, а не с кем-то, где нужно понимать друг-друга и говорить на общем языке.
Прочитать книжку про паттерны и взять-опробовать нужные можно за несколько часов.
Ему и не нужно написать игру - ему нужно её пописать, чтобы попробовать что-то новое и научиться чему-то.

>>77109
Я просто хейтер платформеров.
26 1577143
вопрос чиста теоретический. если я в крестах выделяю память под какой нибудь массив примитивного типа через new[], могу ли я, передав указатель и размер массива в шарп например крестовая функция в .dll через pinvoke возвращает структуру с этими данными, в шарпе вызвать через pinvoke VirtualFree на полученный указатель? Или что нибудь наебнется и распидорасится?
27 1577145
>>77143
Оператор new не обязан на каждый твой чих вызывать VirtualAlloc. Он может делать вообще все, что считает нужным, пока это конфермит стандарту. Соответственно - UB
28 1577146
>>77145
понял принял, спасибо
29 1577171
>>77132
Они всем нужны. Кури матчасть.
30 1577216
>>77132
Удваиваю насчет паттернов. Написать какую-нибудь фабрику можно и без знания, что такое фабрика. Ты её в любом случае напишешь, когда тебе надо будет создавать нужный тип монстра в зависимости от того, какая строка написана в конфиге уровня. Ты просто не будешь знать, что она так называется.
31 1577662
Насколько стрёмно делать visitor friend'ом класса, к которому он будет применяться?
sage 32 1577701
>>77216
Конкретно то что ты написал это вообще не про фабрику.
image.png52 Кб, 678x706
33 1577819
Сап, кто может пояснить почему эта хуйня отказывается компилится? Я понимаю, что нельзя underlying_type использовать не на енумы, но там же блять стоит if constexpr, т.е. не емуны туда вообще не могут попасть и компилятор тупо должен пропустить этот кусок кода.
Мне эта хуйня нужна для генерации метаданных, все это будет завернуто в макрос
34 1577854
>>77819
попробуй decay_t перед is_enum_v
35 1577924
>>77854
Не помогает
36 1578088
>>77819

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


[temp.res]/8, 100 раз обсасывали на SO

The program is ill-formed, no diagnostic required, if: no valid specialization can be generated for a template or a substatement of a constexpr if statement within a template and the template is not instantiated
37 1578216
>>77701
Конкретно то, что я написал, это вообще-то про фабрику.
huidgi 38 1578866
/postcount
39 1578869
>>78866
Что, не работает, да?))0))0))
40 1578887
>>78869
Я программист, меня просто так не наебать
41 1578892
>>78887
Я двач, это погромист, меня не обманеш
42 1578954
Сап программач. Насколько норм делать visitor friend'ом класса, к которому этот visitor применяется?
43 1578970
Как сделать так чтобы в переменную char *str ввести несколько слов(последовательность символов вместе с пробелами)? Обычный cin >> считывает только одно слово.
44 1578974
>>78970
Например, getline.
45 1578975
>>1554724
Упоминание эффекта Даннинга-Крюгера выявляет находящихся под ним ещё надёжнее.
А всё потому, что впоследствии оказалось, что сами учёные подошли к исследованиям спустя рукава и впоследствии их исследование было пересмотрено и подвергнуто критике.
https://scholarcommons.usf.edu/numeracy/vol9/iss1/art4/
И это я пихаю каждому, кто в окружающих видит тупых дилетантов, но сам-то, конечно, никакой не тупой и не дилетант. Настолько не тупой, что даже не удосуживается почитать про баззворд, который использует.
46 1578983
В классе есть protected поле
std::vector<double> > content;
и перегрузка оператора []
std::vector<double> & operator (const unsigned long &i) const {
return &(content);
}

В чём ошибка?

Такое мне пишет IDE, но я её непонел
Non-const lvalue reference to type 'std::vector<double>' cannot bind to a temporary of type 'const __gnu_cxx::__alloc_traits<std::allocator<std::vector<double, std::allocator<double> > >, std::vector<double, std::allocator<double> > >::value_type ' (aka 'const std::vector<double, std::allocator<double> > ')
Снимок экрана 2020-01-20 в 21.18.40.png200 Кб, 1226x553
47 1578984
>>78974
вот что компилятор выдает
48 1578986
>>78983
std::vector< std::vector<double> >
49 1578988
>>78974
Насколько я понял ему нужен второй аргумент - кол-во вводимых символов. Но что если я хочу большой текст вставить? Типа 5000 символов. Много ли памяти это будет занимать?
50 1578992
>>78988
5000 байт же.
Есть более удобный вариант:
std::string s;
std::getline(std::cin, s);
51 1578993
>>78992
Ну, точнее не 5000, там не всё так просто. Но не мегабайт уж точно.
52 1579032
>>78984
cin.getline() для char*
53 1579044
>>78983
Ты либо метод делай не const, либо возвращай const &, либо вектор свой делай mutable
54 1579106
>>78954
Не очень. Фактически, с помощью visitor'а ты расширяешь функциональность уже существующей иерархии классов, у которой один из методов принимает аргумент типа visitor. Эта иерархия может быть в какой-нибудь библиотеке, которую ты не можешь изменять, постоянно создавая новые visitor'ы и делая их там френдами
55 1579108
с
56 1579115
>>78954
Делай лучше double dispatch, на cppcon осенью был доклад
57 1579188
Аноны, хелп. Разбираю игрушку на unity dnSpay-ем. Как профиксить данную ошибку (пик1)? Пик 2 соответственно тоже такая же ошибка.
Этот прокрутка по чату на последнее сообщение.
58 1579191
>>79188
Бля, не в тот тред написал. Надо было в С#
59 1579231
В c++ нельзя использовать объект класса с недефолтным конструктором в качестве глобальной переменной другого класса? Как бы я не пытался ее инициализировать, ничего не выходит.
60 1579237
>>79231
MyClass() :
m_var{1, "abc"}
{
}
61 1579267
>>79231

>глобальной


Статической что-ли?
class class1
{
static inline class2{parameters...};
}
62 1579313
>>79267
Имя переменной забыл

>static inline class2 c2{parameters...};

63 1579573
Есть ли для плюсов IDE, которая может организовывать заголовки так же просто, как Eclipse?
64 1579630
>>79573
А как делает эклипс?
65 1579649
>>79237
Бл, спасибо.
66 1579699
Сообщество заблокировано за размещение материалов, оправдывающих совершение суицида.
67 1579723
>>79699
Социальный дарвинизм рулит!
68 1579726
>>79699
таки кто то выстрелил себе в ногу ирл
69 1579790
>>79699

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


Кто-то туда закинул стандарт плюсов?
70 1579814
Двощ, кто-нибудь пользовался такой штукой - onedev.io ?
71 1579986
>>79699
блядь, не то спастил, но суть та же
помогите, пожалуйста, с задачкой по плюсам. буду очень благодарен. Завтра сдавать надо, не понимаю как сделать + не успеваю
Задан массив структур «Покупатель» (фамилия покупателя;
имя; номер карты; наименование товара; стоимость покупки).
Вывести на экран сведения о покупателях и суммарной
стоимости покупок в порядке возрастания суммы.
буду очень признателен, аноны
72 1580109
>>79790
Нет, кто-то написал
delete this;
73 1580165
Короче, платина.
Насколько сильно нужно углубляться в кресты, чтобы смочь в UE4? с детства мечтал делать игори, но сделал только танчики на pygame :(
Я не полный нюфаг, сейчас работают бэкэнд макакой на пистоне. В вебе чувствую себя комфортно, но дико боюсь крестов, потому что есть явные пробелы в CS.
Нужны ли какие входные данные, или тупым не дано? Может SICP какой прочитать еще раз попробовать? Или уже неактуально? Может какие то конкретные области математики подтянуть? Есть тут увлекающиеся этим дерьмом?

В /gd/ не отправляйте плз, там шиз на шизе.
74 1580178
>>80165
Открою тебе тайну - тебе С++ нахуй не нужен. Почти все можно нашлепать на блюпринтах. Современные игры как бы вообще к программированию мало отношения имеют, если делать на готовом движке.

Сам пилил по работе небольшую демку на UE4, обошелся только блюпринтами, все мои сениорские крестоскиллы не пригодились вообще.
75 1580182
>>80165
В УЕче от крестов только название.
Берёш туториал по уечу, делоеш. Гуглишь непонятные слова.
76 1580185
>>79986
Угу, спрашивай сколько угодно такие вопросы, тред же именно для них и предназначен. Удачи тебе разобраться в этом :3
https://ideone.com/g2t3Nd

>Вывести на экран сведения о покупателях и суммарной


стоимости покупок в порядке возрастания суммы.
Может быть в порядке возрастания стоимостей покупки? Не очень понятное условие. Ну, там два варианта, надеюсь тебе нужен второй.
image.png13 Кб, 489x315
77 1580327
Собственно вопрос, что не так?
78 1580334
>>80327
Ты бы хоть написал, что компилятор пишет.
image.png13 Кб, 699x157
79 1580337
>>80334
Это
image.png3 Кб, 380x70
80 1580339
>>80327
И еще вот это
81 1580442
>>80185
спасибо, анончик
а что ты делаешь на 82 строке?
82 1580471
>>80327
Влом проверять, но скорее всего boost::asio::io_context не копируемый. А std::thread копирует аргументы.
83 1580493
Анон, хочу в качестве параметра шаблона передать enum. В зависимости от этого enum будут определены разные типы внутри класса, типа

enum class Type {type1, type2};
template<Type TP>
struct Foo{
using A = TP == type1 ? int : double;
using B = TP == type1 ? Some1 : Some2;
}

Мне кажется, что задачка типовая, но мое решение какое-то сложное и не красивое, предполагает (я еще не сделал) std::conditional.
Как сделать правильно и красиво?
84 1580503
>>80493
ты все правильно делаешь, и std::conditional это верно
85 1580730
>>80442
Записываю в bb соответствие имени-карточки и стоимости покупок - добавляю новое имя или (если такое имя-карточка уже есть) то добавляю к суммарной стоимости покупок стоимость этой.
86 1580809
>>79630
Он может проверять исходник и добавлять заголовки классов и прочего, если нужно, или удаляет их, если они лишние.
87 1580878
>>80809
Добавлять автоматом умеет решарпер под студией, про убирать не уверен, наверное только выделяет что не используется.
88 1580932
class Matrix{
publuc:
friend Matrix loadFromFile (std::fstream &file);
};

Matrix loadFromFile (std::fstream &file){
//...
}

int main{
std::fstream inpBin("inpBin", std::ios::binary);
std::fstream inpTxt("inpTxt");

Matrix bin = loadFromFile(inpBin);
Matrix txt = loadFromFile(inpTxt);
//...
}

error: ‘loadFromFile’ was not declared in this scope
Matrix bin = loadFromFile(inpBin);

Я вообще не подрубаю, в чём проблема, причём он тригеррится только на первом вызове loadFromFile. g++
89 1580939
Сап, программисты. Поясните за физическое представление файла. Если все файлы это последовательность 0 и 1, то я могу создать программу, которая выдает все возможные последовательности, состоящие из 0 и 1 (да, я знаю, что это как с числами Фиббоначи, даже все последовательности из 64 битов будут генерироваться очень долго, но мы идеализируем), то будут ли среди этих файлов существующие? Т.е можно ли перебором сгенерировать песню Фейса, или картину звездная ночь, к примеру?
90 1580948
>>80939
да, но ты скорее сдохнешь, чем что-то получишь
91 1580950
>>80939
Погугли вавилонскую библиотеку, тебе понравится.
92 1580951
>>80939
уже есть такая хуёвина. гугли library of babel
93 1580953
>>80878
В cleanup можно добавить
94 1580954
>>80939
Hyperwebster
95 1580959
>>80948
>>80950
>>80951
>>80953
Спасибо за ответы, не давало покоя эта мысль
Наверное, в результате таких генерации немало криповых файлов может быть создано
96 1580962
>>80959
Людей посмотревших сойдут с ума.
97 1580967
>>80932
Закоментил эту строку - теперь он ругается на следующую.
98 1580986
>>80932

>Matrix::loadFromFile


Если не инлайновая, по идее так надо функции реализовывать.
99 1580994
>>80986
error: no declaration matches ‘Matrix Matrix::loadFromFile(std::fstream&)’

Там friend
100 1581006
>>80932
Долбоёбина, код на pastebin закинь
102 1581058
>>81029

> const unsigned long& n


Чёт обзмеился
103 1581060
>>81058
Расскажи, позмеюсь с тобой
104 1581063
>>81060
Ну, во-первых size_t, во-вторых по значению
sage 105 1581119
>>81058
Двачну, пиздец какой-то. Студенты обезумели.
106 1581133
>>81119

> void stringToVector(std::string line


Да почему, чел очень даже шарит
107 1581135
>>81063
Почему именно size_t и почему именно по значению? Ссылку я использую, чтобы не выделять память под unsigned long при вызове функции, unsigned long чтобы наверняка не выйти за пределы инта, не вижу проблем в этих решениях.
108 1581137
>>81133
А что предлагаешь?
sage 109 1581140
>>81135
Ты дурак, только честно? 1 курс прогуливал? Ссылка бесплатная у тебя? Она тоже память кушает, если что. Зато строку по значению передал, молодец. Садись, два.
110 1581141
>>81135

>чтобы не выделять память под unsigned long при вызове функции


А какой размер у указателя, которым будет представляться ссылка? Какова потеря скорости из-за обращения к памяти (пусть даже к L1) вместо регистра? Ты смотрел как микроопы на порты скедьюлятся?
111 1581148
>>81137
const std::string&
112 1581176
>>81135
https://ru.wikipedia.org/wiki/Соглашение_о_вызове#cdecl
Ссылка - довольно дорогая операция разыменовывания (а ещё она занимает по меньшей мере 8 байт, когда unsigned long всего 4). Передача по значению - у тебя просто через регистр без каких-либо выделений и даже обращений к памяти пробрасывается значение.
113 1581178
Даже в core guidelines пишут, что объекты размером два-три машинных слова проще копировать
114 1581200
>>81178
Все гораздо проще, если объект превышает размер регистра, то он должен передаваться по ссылке.
115 1581201
>>81148
Алсо, в С++ 17 завезли string_view.
116 1581308
>>81200
Ага, в 99 стандарте.
117 1581323
>>81140
>>81141
>>81176
Ясно, спасибо

А что, собственно, по error: ‘loadFromFile’ was not declared in this scope?
118 1581327
>>81323
И нормально, что я пишу const у всех аргументов, которые не будут меняться в теле функции?
119 1581337
>>81327
Хз, мне например глаза режет, когда метод не помещается на экран 120 символов из-за const для примитивных типов.
120 1581382
>>81327
я так делал, потом осознал, насколько же это ебанизм, и перестал
121 1581387
>>81382
Почему? По этой же >>81337 причине?
122 1581395
Лол, да const писать в простом коде это вообще какая-то лажа. Конст, с учётом того, как он работает в js, вообще не нужен.
123 1581398
Или вы не про js? В любом случае, мне сложно припомнить оправданное использование const где бы то ни было. Это слово больше сигнал для разраба, мол, тут у нас хранится какое-то значение, неизменное и пользуемое акросс всего приложения.
124 1581415
>>81387
Много времени на расстановку констов, много времени на поддержку, чтобы теперь везде так было, даже на небе и даже у аллаха.
125 1581435
>>81337
Переносить строки не пробовал?
126 1581453
>>81398

>вы не про js?


Здравствуйте, это С++ тред? А вы знаете, в жс конст не нужен!
127 1581459
>>81453
тредом ошибся, они тут рядом
128 1581531
Перегрузил std::ostream& operator<< (std::ostream& out, Matrix &matrix)

Matrix sample1 (3, 3);
//...
std::cout << sample1;
Работает, а
std::cout << sample1.transpose();
выдаёт ошибку error: no match for ‘operator<<’ (operand types are ‘std::ostream’ {aka ‘std::basic_ostream<char>’} and ‘Matrix’)

Если сделать так
Matrix transposed = sample1.transpose();
std::cout << transposed;
то всё ок

Matrix Matrix::transpose ();

gcc ёбнулся или я?
129 1581536
>>81531
Могу быть не прав год не кодил на плюсах, но у тебя оператор ссылку на матрицу принимает, а ты пытаешься ему саму матрицу скормить, может по этому ругается.
130 1581552
>>81536
У меня появилось предположение, что это потому что объект, возвразённый transpose(), не пожет быть преобразован в ссылку, потому что никуда не сохранён или что-то типа того.
Походу, придётся реал сделать второй аргумент без ссылки
131 1581557
>>81552
Если объект существует и доступен для кода - то у него есть ссылка. Попробуй так &(sample1.transpose()).
132 1581558
>>81557
error: taking address of temporary [-fpermissive]
133 1581561
>>81558

> error: taking address of temporary [-fpermissive]


Ну значит пихай в переменную :)
134 1581565
Просто transpose() возвращает по значению, а не по ссылке. Можешь свою функцию/метрд замутить, которая будет принимать матрицу и возвращать ссылку на результат уже с transpose() если не хочешь захламлять кол объявлениями переменных.
135 1581566
>>81565
функцию/метод
быстрофикс
136 1581638
>>81531
decl_type(sample1.transpose()) что возвращает?
138 1581734
>>81435
Тогда не режет, но глаза в разные стороны косятся.
139 1581746
>>81734
Думаю проблема в количестве параметров, а не конст.
140 1581931
>>81308
Это стандарт ассемблера и он полностью применим к плюсам.
141 1581940
Анон, очень важный вопрос. Хочу в программу добавить векторизируемые участки, и два пути:
1. Использовать openmp, но он не из стандарта нихуя
2. Использовать c++17, но это будет единственная фича 17, сейчас все на 11 и потенциальна миграция библиотеки на хуевый компилятор на Эльбрус.
Как быть, анон? Совершенно не хочется городить чехарду из #ifndef и условной компиляцией
142 1581945
Не понимаю такой момент. Мне приходится часто делать парсинг байт ориентированных массивов. Самый топовый способ на си - описать структурку и прикастовать через void*. Прекрасно и быстро, все довольны.
А в реалиях крестов начинается параша - структуры приходится выравнивать через #pragma pack(push, 1), чтобы в памяти были выровнены по байту, причем что-то стандартное типа alignas(1) работать не будет, так как он только на повышение порядка. Почему так нахуй? Как удобно парсить сериализованное говно? Переписывать оператор << заебисто просто пиздец
143 1581976
>>81940
Руками векторизируй компиляторными интрисиками
144 1581990
>>81945
Пример покажи, у меня таких проблем не возникало.
145 1582023
>>81990
struct P {
uint8_t a;
int32_t b;
};

#pragma pack(push, 1)
struct PA {
uint8_t a;
int32_t b;
};
#pragma pack(pop)

void main(){
sizeof(A); //8 бай
sizeof(PA); // 5 байт

// Всё ради протокола, первый байт имеет значение 3, второй инт - 5
// блин ендиан, забьем на Литл
char buf[5] = {3, 0, 0, 0, 5};
A a = reinterpret_cast<A>(buf); // хуй
PA pa = reinterpret_cast<PA>(buf); // нормас
}
146 1582030
>>81976

> 2к20


> руками

147 1582032
>>82023>>81945

>Прекрасно и быстро, все довольны.


Не понял, первая структура в си вроде бы тоже имеет размер в 8 байт.
Расскажи поподробнее, как это выглядит в си? Я попробовал различным образом "прикастовать через void*", но не нашёл никакого способа, которым си может прикастовать 5 байт структуре размером в 8 байт.
148 1582043
>>81945
Зачем ты на крестах пытаешься повторить си? Очередной борец с ООП?
Мы в таких случаях делаем стандартные структуры (не struct, а в плане организации данных) объектов-значений, которые сами рассчитывают свое положение в массиве, знают кто они, флоат там или битовое поле, пишут/возвращают значения.
Их можно создавать динамически, грузить из конфигурационных файлов, автоматом делать из них модели и интерфейсы.
А твои структуры - не пришей к пизде рукав, автоматизировать работу с ними можно только внешними парсерами, я такое делаю только если надо с сишечкой контактировать.
149 1582044
>>82032
Честно говоря, я не помню, нужно ли писать директиву #pragma pack в Си. В си есть плюс каста только в том, что не нужно писать приведение типов типа reinterp_cast или static_cast<void>
https://ideone.com/o7prBL сишный пример
И вообще, https://habr.com/ru/post/142662/
150 1582045
>>81945

>Как удобно парсить сериализованное говно?


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

>структуры приходится выравнивать через #pragma pack(push, 1), чтобы в памяти были выровнены по байту


Стоп, но в сях же то же самое
152 1582064
>>81945
А, я еще видел код наших железячников-сишников, они тоже распаковывают входные массивы данных тоже каким то подобием объектов из смеси struct ов и указателей, которые создают в динамике.
>>82043 й
153 1582277
>>82044

>нужно ли писать директиву #pragma pack в Си


Ну, она работает - с ней размер 5 байт, без неё размер 8 байт. Никаким других очевидных способов без директив сделать структуру на 5 байт с переменной с 4-байтовым выравниванием я не нашёл.

>reinterp_cast


Можно и в с++ же не писать оставив сишное преобразование.
154 1582323
>>81945

> Как удобно парсить сериализованное говно?


Спец. либами.
155 1582413
Ананасы, есть ли в гцц предупреждение о том, что при наследовании я явно не написал public\private\protected?
156 1582463
>>82413
Я думаю можно самому написать плагин к clang-tidy, если не найдётся.
157 1582475
Нетривиальный вопрос. Начал писать обертки для managed языков над нативными либами. И столкнулся с одной проблемой. Если в винде все с зависимостями решаются установкой необходимой версии Visual C++. То под линухом идет зависимость от libstdc++ и libcxxabi и libc, версий которых сотни. При этом версии совместимости ABI переваливает за два десятка. Хотелось бы решение без sudo apt get install для разработчиков, которые юзают конечную библиотеку. Есть ли вариант хранить все зависисимости в одной директории и грузить их вручную dlopen с относительным путем и флагом RTLD_GLOBAL? Не рушиться ли в этом случае совместимость этих библиотек с версией ядра Linux?
sage 158 1582495
>>82475

> Есть ли вариант хранить все зависисимости в одной директории и грузить их вручную


Так даже на винде делают.
159 1583019
Что думаете за конан? Используете?
160 1583024
>>82475
контейнеризируй енвайромент, будь мужиком.
какие нахуй директории?
госполдь дал вам fedora silverblue, но нет, хотим ебаться
161 1583029
>>83019
Conan для быдла.
Нормальные люди используют vcpkg
162 1583032
>>83029
Так там же версий нет. Небыдлу не нужны версии?
163 1583055
>>83032
Немножко костыльно, но можно.
https://github.com/Microsoft/vcpkg/issues/1681#issuecomment-324160402
А вообще, нехуй использовать древние версии либ.
164 1583057
Подскажите, в плюсах без вышматана никак?
165 1583064
>>83057
как, но они заебистые
166 1583066
Почему Qt designer генерирует код в xml а не как в visual studio в h файл?
167 1583072
>>83066
Чёт я не понял, как ты собрался окно в h файле описывать?
168 1583074
Присутствует ли каким-то образом в крестах realloc, или он просто не нужен? Все же, mremap быстрее, чем копирование пары гигов руками? Потом, при копировании руками на некоторое время будет занято целых четыре гига. Или это лучше спросить в ньюфаг-треде?
169 1583077
>>83072
А то, что uic на выходе даёт .h со всем UI тебя не смущает?
170 1583088
>>83074
У меня получилось что realloc в искусственных тестах равен или быстрее копирования через стандартные new-delete, но ничего лучше, чем вручную использовать realloc и вручную вызывать placement new и подходящие операторы для перемещения я не придумал.

>или он просто не нужен?


С другой стороны программы, где производительность слишком сильно упиралось в копирование через new-delete я пока тоже не встречал.
171 1583089
>>83074
Почему просто в таком случае не использовать std::vector?
172 1583093
>>83088
Вопрос, собственно, откуда взялся. Я затестил realloc из glibc против mremap в хаотическом перерезервировании 10000 указателей на 4 процессах и размерах данных от 4K до 64K, то есть такие размеры, когда realloc не пользуется пулами или самим mmap. Почему-то mmap оказался в 10 раз быстрее.
173 1583097
>>83088
>>83093
То есть, понятно, что копи-он-райт и все такое, все ссылается на одну единственную страницу, но mremap просто перестраивает таблицы страниц силами ядра без копирования всех данных руками. Надо будет тест с реально выделенной памятью сделать.

>Почему просто в таком случае не использовать std::vector?


Вроде, std::vector не использует realloc в каком-либо виде. Если использует, то да, это все решает.
174 1583101
>>83097

>glibc


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

>Если использует


Не использует совершенно точно. Когда ты его вызываешь очередной push_back - он перевыделяет память не для n+1 элемента, а для 1.6n (число 1.6 настраивается, если необходимо), старые n удаляет. Ты это и так понимаешь скорее всего лучше моего, но это считай ещё один дополнительный уровень менеджера памяти, чтобы лишний раз память не теребить; realloc всё ещё лучше, потому что он в отличие от вектора может знать что можно без временного буфера и перемещений расширить 1.6n до 10*n просто поставив метку в менеджере памяти - если менеджер позволяет изменять размеры уже выделенных кусков и за куском есть свободное место.
175 1583102
>>83101
Как это мать его возможно. Спойлер должен был быть до конца сообщения. А вместо звёздочек я поставил <i>*</i>, то есть по идее звёздочки должны быть курсивом, а остальной текст нормальным, если тег <i> экранирует звёздочку.
176 1583295
>>83074
realloc'а не существует. Ты можешь попробовать написать свой аллокатор через placement new там, но в среднем это нахер не сдалось.
177 1583327
Сосоны, поясните почему конструктор строки из const char* быстрее чем из const string&, да еще и почти в три раза?

http://quick-bench.com/G7B2w0xPUWgOVvuzI7unES6cU4w
178 1583342
>>83327
потому-что у тебя одно создание строки и одно удаление в варианте const char*

А в варианте строк - 2 создания и 2 удаления.
179 1583351
>>83342
Схуяле одно, если там цикл. Пишут, оно меряет только код внутри цикла, а там в обоих случаях одно создание.

Можно для чистоты и в первую фукцию запилить:
http://quick-bench.com/05VIGmMjuYgK52bNcYaWfvTDO0g
180 1583458
>>83327
Такая большая разница из-за short string optimization. Если ты посмотришь на ассемблер то с короткой строкой в первом варианте нет вызовов new (тогда как во втором есть). Если использовать более длинную строку то new появляется и в первом вариате. Правда он все равно остается более быстрым (хоть и не настолько). Скорее всего там еще есть какие-то оптимизации связаные с тем что const char* читается со статической памяти а string& с динамической.
181 1584242
Что по стажировками для студентов на лето в Москве?
На хх только яндекс и хуавей отсвечиваются, но там заранее все забито задротами из вшэ и мфти.
Есть какие-нибудь варианты менее известных контор, в которых можно постажироваться?
182 1584280
Поясните, есть структура
struct test {
int a, b, c, d, e;
}
есть массив этих структур. Нужно получить допустим, суммы всех a, сумму всех b, сумму всех c. Как не пилить велосипеды для каждой из таких значений, а написать одну функцию для всего (при этом не меняя структуры и ее полей, желательно, на деле она другая).
183 1584292
>>84280
Пишешь функцию в которой считаешь сумму всего. С чем у тебя проблема?
184 1584301
>>84280
Тебе нужно считать суммы всех b не считая суммы других a/c, или тебе нужно считать суммы для всего?

Если считать нужно часто - возможно есть смысл сделать внешний счётчик вокруг массива (или внутри синглтона), который будет содержать суммы, а при добавлении/удалении структур изменять суммы?
185 1584354
Как передать объект созданного мною класса через сокеты в Qt?
186 1584358
>>84354
- сериализовать
- передать
- десериализовать
187 1584362
>>84358
А можно ссылку на какой-нибудь example?
1580152206196.jpg30 Кб, 399x399
188 1584382
Анончики, помогите с математикой плиз, уже два часа бьюсь над задачей, не могу решить.
В общем есть функция простого градиента, рисующая градиент в круге радиусом R. Цвет N присваивается точке в зависимости от удаленности от центра. Соответственно получается такая формула: N = C - C x d/R, где С - цвет центра, d - расстояние точки до центра.
Теперь я хочу ввести в расчет градиента еще одну переменную, назовем ее интенсивностью цвета I, например.
Должно быть как: при I = 1 весь круг должен закрашиваться равномерно, без градиента, то есть коэффициент d/R = 0 при I = 1.
А при I = 0 круг вообще не должен краситься.
И вот здесь я встрял. Не могу никак модифицировать первоначальную формулу, чтобы условия интенсивности выполнялись. Вроде бы просто, а никак додуматься не могу.
По идее d/R должно умножаться на (1 - I), тогда при I = 1 d/R будет равно 0. Но при I = 0 круг все равно будет краситься. Как правильно?
189 1584390
>>84382
Причем если юзать только интенсивность I или только d/R по отдельности, то все работает супер четко.
То есть N = C x I будет красить полностью при I = 1, и не будет красить при I = 0.
А N = C - C x d/R красит в градиент.
А вот как вместе это соединить, я хз.
190 1584393
>>84382

>математикой


Математика для пидоров
191 1584394
>>84393
Как будто что то плохое.
192 1584402
>>84280
Внутри только простые одинаковые типы?
Если да - то передавай в функцию "индекс аргумента", смещай указатель на структуру и доставай оттуда нужное поле.

То есть для
struct test
{
int x;
int y;
};

test t;
(int)(&t); // поле x
(int)(&t + sizeof(int); // поле y

Мог чутка напутать, но смысл таков.

Если поля разных типов, то придется немного ифов нагородить, но смысл будет тот же.
Надо сейчас попробовать со сложными типами вроде string.
193 1584407
>>84402
http://cpp.sh/5fjgn
В общем, что-то вроде такого.
15713451834630.jpg72 Кб, 727x950
194 1584425
>>84402
>>84407
У вас бугурт UB.

Заюзай указатели на поле. Хоть для чего-то они пригодились.

http://cpp.sh/6wxyd
195 1584427
>>84425
я несколько проебался, можно и без шаблонов:

int sum_member(vector<test> const& v, int test::* p)
196 1584428
>>84301
сначала суммы а, потом суммы б... считать нужно один раз, потом массив меняется.

>>84402
>>84425
спасибо, то что и искал.
197 1584477
Анон, хочу к своей проге написанной на С++ прикрутить скриптовый язык JavaScript (в идеале TypeScript, но JS тоже пойдет), чтобы скрипты писать.

поискал... и не нашел, хотя уже видел полноценный софт с JS скриптами (нет, не с помощью node.js)

Может кто-то видели бинд JS для C++?

Надо полноценный, строго соблюдающий стандарт, а не типа JS (как ChaiScript)
198 1584485
>>84477
есть возможность встроить v8
но это будет то еще развлечение, скорей всего
тот же луа или питон легче встроить
не говоря уж о забытых технологиях наших более продвинутых предков из майкрософт, а именно active scripting на com
199 1584486
>>84485
ах да, есть еще ведь QtScript, как я забыл
просто не использую qt в своих работах
200 1584494
>>84477
Есть в кюте, причем в qml он вообще язык скриптов по умолчанию
201 1584496
>>84280
std::accumulate с лямбдой суммирующей значения полей, за тебя все давно навелосипедили
>>84354
Там вроде это как-то прозрачно делалось сигналами без сериализаций
202 1584541
>>84280
Я имел в виду что то типа
function<int(s)> getter[] = {
[](s str){ return str.a; },
[](s str){ return str.b; },
[](s str){ return str.c; },
[](s str){ return str.d; },
[](s str){ return str.e; }
};
auto sum = [&getter](gsl::span<s> sss, int index){
return accumulate( begin(sss), end(sss), 0,
[&getter, index](int sum , s str){ return sum + getter[index](str); });
};
15714773197190.png133 Кб, 366x303
203 1584590
>>76737 (OP)
Якой иде пользуетесь под линуксом? Эклипс уродливый + ломающийся, CLion проприетарная
204 1584591
>>84590
VIM
Qt Creator
205 1584638
>>84590
vscode + rg; обычно, достаточно
206 1584643
207 1584676
>>84590

>CLion


this
208 1584796
>>84382
N = iC - (|i - 1| * i)C x d/R
209 1585050
>>76737 (OP)

>C++20.png


Лол. Чего они добиваются, чтоб в C++ было вообще ВСЁ, что есть в других языках и даже больше? Нахуй это нужно? Может кто-то знает?
210 1585058
>>85050
Потому что могут. Ну и всего там точно не будет по концептуальным причинам.
sage 211 1585068
>>83327
string_view используй
131.png17 Кб, 631x517
212 1585204
Пытаюсь сделать что-то вроде небольшой игры, застрял на месте с передвижением в воздухе(когда прыгаешь, чтобы можно было в лево\право двигаться),перемещаться сейчас можно только если быстро нажимать на кнопку, но мне нужно чтобы работало при зажатии. Не в воздухе такой проблемы не было.
Игра 2д на direct2d, перемещение на winapi, реализация на пикче.
15523221145930.jpg806 Кб, 1280x720
213 1585217
>>85204
Весь код выложен на гитхабе, могу скинуть, если нужно, там говнокод, я ещё учусь.
Студент-кун
214 1585295
>>85204

>перемещаться сейчас можно только если быстро нажимать на кнопку


По WM_KEYDOWN ставишь speed+=5, по WM_KEYUP ставишь speed-=5, при этом каждый кадр у тебя x+=speed*dt?
Можешь скидывать, я могу попробовать помочь чем смогу.
14555.png32 Кб, 628x539
215 1585297
>>85295

>По WM_KEYDOWN ставишь speed+=5, по WM_KEYUP ставишь speed-=5, при этом каждый кадр у тебя x+=speed*dt?


У прыжка подобная механика, у перемещения просто + константа.
Решил проблему вот таким способом, до этого эти нажатия обрабатывались в WndProc. Почему-то из-за этого и анимации передвижения стали плавнее, я думал WndProc вызывается каждую итерацию.
216 1585306
Ньюфаг в треде!
Подскажите как подружить VS 2019 с русским языком?
#include <locale.h>
и после main()
{

setlocale(LC_ALL,"RUS");
пробовал, как и замена кодировки самого файла.
217 1585312
>>84590
QtCreator
218 1585328
>>85306
Исходники в utf-8, строки wstring
В консоли шрифт с поддержкой юникода
219 1585329
>>85297
Я не шибко разбираюсь, но думаю, что все из-за того, что влево-вправо ты ходишь на константу.
Если сделаешь вектор ускорения, а при нажатии на клавишу движения изменять его координаты, то тогда в прыжке сможешь двигаться.
Только пока не представляю, как закодить. Пока нажата клавиша движения - направляем вектор в эту сторону постепенно, чтобы движение было с ускорением(вспомни, например, того же Соника), как-то так, наверное.

>>85306
Не надо, пожалуйста, учи сразу английский и учись писать вывод и имена переменных/функций на нем же.
бтв проблема не только в проге, а ещё и в кодировке консоли.
Попробуй system("chcp 1251"). Или system("chcp 65001"), если все же не прокатит.
image.png546 Кб, 500x630
220 1585474
>>76737 (OP)
Почему в шапке нет этой книги?
221 1585496
>>85306
Попробуй
setlocale(LC_ALL,"Russian");
sage 222 1585592
>>85474
Потому что С++ ненужен.
223 1585610
>>85328
>>85329
>>85496
Благодарствую.
Помогло system("chcp 1251").
224 1585623
Ананасы, вопрос не совсем по языку.
Вот допустим нужны программе некие конфиги (не те, которые через argc/argv задаются) которые считываются из файла.
Если пользователь программы удалил файл или изменил его (и прочитать файл стало невозможно), то по идее, нужно загрузить дефолтные конфиги.
Стоит ли в коде дублировать их или оставить только конфиг файл?
225 1585664
>>85623
Нахуй пусть идёт такой пользователь, который удаляет или портит конфиг. Ошибку выдавай и закрывай приложение.
В шарпах, например, за неправильно написанный app.config тебя либо компилятор пошлёт, либо в рантайме исключение словишь.
226 1585703
>>85623
Поставляй софт без конфига, сохраняй при изменении. Один хрен у тебя в конструкторе где-то задаются параметры по умолчанию (задаются ведь? или ты любитель уб?)
.png296 Кб, 637x358
227 1585733
>>85703

> Один хрен у тебя в конструкторе где-то задаются параметры по умолчанию (задаются ведь? или ты любитель уб?)


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

> Поставляй софт без конфига, сохраняй при изменении


Он нужен только для чтения при старте программы.

Короче, сейчас посмотрел, подумал, что похер. Даже при отсутствии конфига или его порче, всё будет работать.
Будут использоваться стандартные зашитые значения (как, например, отсутствие текстур на пикрелейтеде).
image.png793 Кб, 750x1000
228 1585742
>>85592
ты че сука пес?
a0195bd09121f9f9b38ed40deeb1c8ff.jpg38 Кб, 602x796
229 1585743
230 1585829
Как называется готовый алгоритм для такой проблемы: есть набор стран на карте, в виде разных многоугольников, нужно составить матрицу смежности. В данный момент мой алгоритм тупо перебирает все страны на соседство для каждой страны, трудно придумать что-то неэффективнее.
232 1585843
>>85829
Как многоугольники заданы?
233 1585846
>>85843
как множество пар точек.
{{1,2},{3,4},{5,6},{7,8}}
234 1585853
>>85829
Я бы попробовал сопоставить к каждрй цифре страну, а потом попарное перебирать соседние вершинв нужной страны и применять and к множествам стран подходящих к этим точкам
235 1585854
>>85846
Из точек получаешь ребра (ребро - две точки). Если страны соседние - у них есть общее ребро. Создаешь список (массив или лучше словарь) всех ребер (проходишь один раз по всем странам). В списке для каждого ребра помечаешь у какой страны оно нашлось (для каждого ребра будет одно или два значения). Потом еще раз проходишь по всем странам, переберешь ребра и выписываешь номера стран-соседей.
236 1585855
>>85854
Двачую
Я выше хуйню предложил
237 1585898
>>85829
>>85854
2d k-d tree
sage 238 1585966
>>85474
Потому что протухшее говно 2000 года.
239 1586055
>>85966
Ага, и K&R тоже протухшее говно, ведь ANSI не нужон, есть C99... Аноний, ты реально шизик, или троллишь? Я хочу сраться только с настоящими шизиками. Книги для вката не должны вдаваться во все актуальные фичи, а должны ускорить дальнейшее освоение обнов в десятки раз. Только такая многоходовОЧКА позволит угнаться за поездом изменчивого мира IT. И книги такого плана в 21-м веке пишут крайне хуево. Это факт. Алсо, годнота по сабжу как правило выходит при жизни и ясном уме создателей, и спустя полвека неизбежно наступает драма поколений, когда ньюфаг никогда не станет рядом с дедами, изучавшими в золотое время. Покормил.
240 1586127
Сап, аноны. Использую Eigen, возник вопрос, есть ли в нем какой-то удобный инструмент типа View, который, по заданному вектору, формирует матрицу?
Есть Eigen::Map со всякими Eigen::Stride, но там, как я понял, можно задать фиксированный шаг.
Мне нужно, например, из матрицы M{6, 6} получить элементы по индексам, типа M( [0 1 4]; [1 2 3] ). В матлабах и питонах такое есть.
241 1586150
Сап, всем. Есть вопрос про динамическую память и нулевой указатель. Я реализовал стек (тип элементов - char) с помощью дин. мас. , используя ООП. Вопрос - имеет ли смысл в конструкторе/деструкторе писать nullptr при инициализации и удалении массива? Важно ли обнулять указатели.

А также в функции Resize (Она нужна для увеличения размера стека)
242 1586161
Можно ли как-нибудь написать парсер уравнений типа "x1^2 + 3 * x2"?
Простой парсер без переменных понимаю как сделать, а с переменными нет
И можно ли получить результат в виде функции?
243 1586164
>>86150
Важно: если у тебя например будет ошибка выделения памяти в конструкторе, то на Пуш программа упадет с сегфолтом, т.к. нет проверки что память выделилась.
244 1586166
>>86150
А после такого ресайза твоя прога будет падать вообще в любом случае, аррай же удален.
245 1586179
>>86161
Я не велосипедил, использовал жс движок в куте для такого.
246 1586188
>>86161
все уже написано
247 1586189
>>86166
Ничего не падает, проверил для 100000 значений. Вызов же:
char Array = resize(const char Array, size_t old_size, size_t new_size);
То есть в него сразу же записывается новый расширенный массив со всеми старыми значениями. Но тогда не понятно нужно ли в resize обнулять Array.
248 1586191
>>86189
*Resize
249 1586194
>>86055
Это действительно древнее говно, сейчас С++ выглядит вообще не так как 20 лет назад, эта книга может быть даже вредной
251 1586196
>>86194
ну ок...
252 1586201
>>85854
Возник вопрос, а правильно ли хранить ребра как set из unordered_set (пар)?
253 1586202
>>86201
Осознал, что лучше map.
image.png776 Кб, 748x782
254 1586312
>>86202
Не важно, осознаешь ли ты осознанное, а важно, осознаешь ли неосознанное.
255 1586319
>>86202
Почему лучше?
256 1586332
>>86319
уже не лучше.

Насосался хуев короче, создал set "ребро" из двух точек, написав хеш-функцию для точки, пытаюсь insert его в set всех ребер, компилятор выдает всякие простыни, что он не умеет сравнивать такое. Проще уже свой set написать, который не выебывается.
257 1586357
>>86189
Да, я не заметил где ты её используешь. Тогда непонятно зачем ты не присваеваешь прямо в ресайзе.
258 1586365
>>86164
Если память не выделилась, будет брошенот исключение
259 1586371
>>86332

>написав хеш-функцию для точки,


Зачем? Кидаешь в std::pair, операции сравнения автоматом генерятся.
260 1586378
>>86365

>брошенот


Ват
261 1586380
>>86378
А все
262 1586404
>>86371
да, так и сделал, чем ебаться с перегрузками.
263 1586578
>>86055
K&R это книга по Си, а не С++. Первый в отличии от второго не изменился за эти годы.
264 1586593
>>86578
Ващет изменился, хотя кресты однозначно стали одновременно более простыми местами, местами бля пиздец нахуй как это вообще работает. За это мы их и любим=)
265 1586616
s
image.png14 Кб, 846x69
266 1586687
Сап, двач, почему этот код, когда я иду по циклу и дохожу x2 до 0, вызывает аварийное завершение?
Если я вызываю не в цикле, а просто подставив значение, то все нормально, проблема в этих циклах, но я не понимаю, в чем может быть проблема
267 1586693
>>86687

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


А то ли значение ты подставляешь? Подставь вот это -2.03e-15 (или что у тебя там получается) и проверь падает ли с ним.
Если к -10 прибавлять по 0.2, то ты получаешь не ровно 0 из-за особенностей плавающей запятой. Стандартная же ошибка, у меня даже собаки во дворе про неё знают.
268 1586698
>>86693
А как это пофиксишь можно?
Объясни, пожалуйста
269 1586702
>>86312
а седьмое положение логико-философского трактата витгенштейна:
О чём невозможно говорить, о том следует молчать.
270 1586704
>>86702
отменяется
del
271 1586707
>>86693
Можно ли как-нибудь отключить мантиссу, чтобы в функцию попадали числа без нее?
272 1586708
>>86698
Пофиксить? В этом нет ошибки. 2e-15 - это ноль. Если у тебя такая функция, которая при 0 выдаёт один результат, а при 2e-15 другой, то проблема скорее в функции.
Если ты напишешь -10+0.2*i, где i целочисленное, то будет лучше, потому что ты складываешь большое число с большим. Наибольшая ошибка, когда ты складываешь числа разные по порядку, что-то вроде 10000+0.01.
Ещё лучше будет, если цикл будет целочисленный (i=-50 .. +50), а x=i/5.0 на каждой итерации, тогда вообще не будет проблем от сложения плавающих запятых.
273 1586709
>>86708
У меня в функции что-то типо парсера, я не учел, что может число может быть передано в таком виде
Может, можно как-нибудь избежать передачу числа с мантиссотой?
Переделывать парсер желания нет
274 1586711
>>86708
Вообщем, разобрался с проблемой, спасибо большое, анонче
275 1586791
>>86707
плакала половина маршрутки.
276 1586794
>>86707
Блядь XD
277 1586808
>>86707
Можно, накидай по-быстрому расширение для gcc.
278 1586847
У меня есть вектор из моих классов, при количестве больше 20 тыщ он перестает выдавать свой size. В чем проблема может быть?
279 1586897
>>86847
А что он выдает? Как ты получаешь size и куда кладешь?
280 1586903
>>86897
Код примерно такой:
vector<Object> MyVector;
for (...<20000)
MyVector.pushback(...)

далее из-за этой строчки segfault:
int MyArray[MyVector.size()];
281 1586907
>>86903

>MyVector.size()


Ничего, что элементы считаются от нуля и последний элемент - MyVector.size()-1 ? Конечно сегфолт.
282 1586912
>>86907

>Ничего, что элементы считаются от нуля и последний элемент - MyVector.size()-1 ? Конечно сегфолт.


почему тогда для 19 тысяч обьектов не сегфолтится?
283 1586921
>>86912
Не вылазит за пределы сегмента стека, который выделен твоей программе. Для объектов разного другого размера крашилось бы при другом количестве.
284 1586958
>>86921
спасибо, все исправил.
285 1586991
Как можно кратко записать:
if (сложное условие A) && (сложное условие B)
if (сложное условие B) && (сложное условие C)
...
if (сложное условие X) && (сложное условие Z)

или так оставить?
286 1586992
>>86903

>int MyArray[MyVector.size()];


Выглядит как место с потенциальным переполнением стека.
287 1587012
>>86991
Обернуть в функции с понятными именами, что ты собственно проверяешь.
Хотя непонятно что у тебя эти ифы делают, возможно можно гораздо элегантнее сделать.
288 1587122
>>87012
квестовые сценарии
289 1587168
>>86991
Выноси свои условия в методы
if (DungeonUnlocked() && PussyDestroyed())
...
290 1587221
>>87122
Yanderedev, ты?
291 1587234
>>87122
Хардкодить квесты стоит только если их очень мало. Я бы вынес логику во внешние скрипты на каком-нибудь луа, или делал их в виде машин состояний грузящихся из простенького дсл.
Если квесты линейные и хочется в коде, то енум со всеми именами квестов, и вектор объектов квестов, в них стадия квеста и вектор пар лямбд условия и действия по нему для каждой стадии. Внешний вектор это список квестов, берется по енуму.
292 1587358
Как стать высокооплачиваемым спецом на крестах? Джависты и питонисты учат фреймворки всякие, а как нам набивать себе цену?
293 1587364
>>87358
Писать на крестах, смотреть конфы, читать книги, ебать байты.
294 1587390
>>87364

>ебать байты


Думаю проблема как раз в том, что в наших вузах постоянно выпускается толпа людей, думающих что программирует на крестах, а в реальности ебущая байты на си с классами. Естественно при таком предложении работодатель давать много не будет. Решение - пропагандировать питон.
295 1587397
>>87364
Какие области, где можно писать на крестах, сейчас прибыльные и без огромного порога вхождения типа машоба? Типа как бэк на джаве пописывать за 200к, только для крестов.
296 1587400
>>87390
Ты так описываешь студентов, будто они все:
1. Идут в вуз с уверенностью, что их там всему научат
2. Уверены, что программирование = плюсы
3. Вообще не мониторят рынок
4. Выпускаются, уверенные, что их всему научили.

А на самом деле:
1. Большинство охуевает от сложности плюсов и забивает на программирование вообще
2. Те, кто не забил, открывают-таки хедхантер и учат жабы, жсы и пхпы.
3. Единицы осиливают плюсы и находят работу.
297 1587402
>>87390
Согласен с тобой частично. Модерновый хороший С++ выучить реально только на собственной шкуре, и то, после пары-тройки лет работы.

>>87397
Прибыльность зависит от конторы, а не от области. Оверолл - финтех всегда платит. Нвидия платит, чем бы ты не занимался. Яндекс вроде как платит в последнее, а требует вообще только алгоритмы.

Но я бы не рекомендовал вкатываться в С++ на данный момент. Веб обезьянничать сильно проще, да и денег выше, рынок поживее.
298 1587404
>>87402
Я уже вкатился, просто недоволен своей зарплатой в сравнении со знакомыми, которые пишут на питоне и жс.
299 1587409
>>87404
Если ты вкатился - тогда смотри на вакансии нвидии, сбербанка (он платит, но специфика), Дойчебанка, ну и хз даже, что еще посоветовать. Жидбрейнс какой-нить хайрить крестовиков на шлион.

И вот задрачивай их требования
300 1587417
>>87400

>1. Большинство охуевает от сложности плюсов и забивает на программирование вообще


на самом деле можно не учить все плюсы, видел код энтерпрайзного матмоделирования, так там будто на чистом си писалось
301 1587427
>>87417
Я вообще читал несколько историй, где на конкретных проектах заранее договариваются, какие фичи плюсов вообще использовать не будут из-за сложности. Вот только в разных проектах такие соглашения разные, и волей-неволей приходится учить всё.
302 1587432
>>87427
единственные ограничения на разных работах, которые я видел - это ограничение по стандарту, и запрет на буст. Все

Нвидияблядь
303 1587442
>>87358
Algorithms and Data Structures.
304 1587448
>>87442
Как это поможет?
Приходишь ты такой и говоришь "я знаю алгоритм Кнута-Морриса-Пратта", и все такие "ебааать, пойдешь к нам на 300к?"
305 1587456
>>87448
Знание этой хуйни поможет стать лучше в плане кодинга, лучшие кодеры получают больше. Вроде очевидная хуйня, не? Кроме ещё более очевидной, что зарплата растет при переходе в другую контору (или на более высокую должность) относительно текущей зарплаты. То есть надо просто устраиваться на более высокооплачиваемую работу и делать это каждый год. Потом можно а америку съебнуть и там повторить. Ну и понятно, что с чего то нужно начать, но я так понял ты уже в пути.

Ну а вообще нехуй меня слушать, я два часа назад решил в кресты вкатиться и пришел за этим сюда. Только откомпилил свой первый хелоу ворлд.
306 1587461
>>87432
Чем буст не угодил? Алсо, че в нвидии происходит, какая работа? Мне пиздец интересна математика, и я хорошо шарю в железе, был бы смысл мне туда идти?
307 1587465
>>87461
Ну ты же знаешь, что шаблоны это тьюринг-полный язык, а значит позволяют добиться сколь угодно долгой компиляции. А теперь вспомним, из чего состоит весь буст.
308 1587472
>>87456
На крестах работу хер поменяешь. Язык один, но предметные области и задачи сильно отличаются между конторами. Это не джава, где можно бегать из одного места в другое каждые полгода, потому что везде нужен спринг и делать надо одно и то же.
309 1587482
>>87465
Вроде как прекомпилед хедеры позволяют сильно ускорить компиляцию. Да и АSIO хорош, я хз как без него с сетью работать
310 1587484
>>87472
Типа, если попал на работу то до смерти никуда не денешься? Чет сомнительно звучит.
311 1587520
>>87484
Область фиг сменишь. Если телеком, например, то придется либо искать следующую работу в телекоме, либо переучиваться и искать младшие позиции. Мобильность ограничена, не получится побегать между работами, набивая себе цену.
312 1587524
>>87461

> Чем буст не угодил?


Есть нюансы в связи с внутренними процессами и сборкой.

> был бы смысл мне туда идти?


Идти точно есть смысл - это лучшее место работы в ДС. А скиллы в железе\математике - зависит от команды. Мне, например, знание ИГРУЛЕК сильно помогает в работе, рофл.

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


Зависит от команды очень сильно.
313 1587580
Кто-нибудь писал нейросети на плюсах? Как это вообще происходит, с помощью каких-то библиотек или все с нуля делается?
314 1587621
Можно ли как-нибудь в Qt проверить, используется ли файл другим процессом/программой/etc?
Пробовал менять имя файла на тоже самое, всегда false выдаёт и это не позволяет детектить
Может, есть ещё какие-нибудь способы?
315 1587791
>>87580
Tensorflow же. Обычно те либы, что есть на питоне, имеют реализацию или очень хорошую основу на крестах. Из-за скорости.
316 1587797
>>87621
Проверить что он есть и попытаться открыть для записи?
317 1587810
>>87390

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


Это, кстати, не такой плохой вариант. Хуже работать с проектом, в котором, например, три разных вида умных указателей (стд, самописный, навелосипженный до С++11, и из сторонней либы) или какая-нибудь ебанистическая шаблонная магия, весь код в хидерах, и на каждый чих требуется полная пересборка минут на пять.
318 1587818
>>87791
Понял, спасибо. Я слышал про питон кстати.
319 1587834
>>87810
Да хуевый это вариант, надо всегда развиваться программистам. Си с классами явно отдает хреновым общим опытом разработки
320 1587878
>>87834

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


Иногда - наоборот. Люди с опытом пишут простой и понятный код без большого количества абстракций.
321 1587884
>>87834
Тут нужен баланс. Си с классами - это не очень хорошо, но и ехал AbstractFactoryProxyBeanFactory - это тоже оверкилл.

Мне в последнее время нравится идея небольших классов без наследований, и дальше - ну, почти процедурный код.
322 1588071
>>87390
Ну почему, чистый код на сишечке очень хорошо читается и аккуратно выглядит. Другое дело, что разбухает он действительно быстро.
323 1588219
Ананасы, можете посоветовать книги по Qt QML Шлее не предлагать или в целом годные книги про построение интерфейсов которые GUI.
В целом мне интересно, как лучше разделять gui и "ядро", чтобы при каких-то пиздецовых операциях гуи не лагало. И как организовывать гуи, чтобы с минимальными трудозатратами адаптировать его к разным устройствам (телефоны, пк)
324 1588254
>>88219
А чего не так со Шлее?
325 1588302
>>88219

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


А никак блядь.
326 1588313
>>88219

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



Веб. Единственный реалистичный вариант.
327 1588447
>>88071
О.о я не предъявлял никаких претензий сишечке.
328 1588460
>>88254
Он уже прочитан. Не понравился. Больше понравился М. Саммерфилд

>>88302
>>88313
Что-то не нравятся мне ваши предложения...
329 1588585
>>88219

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


Самому написать на OpenGL (ES). Это самый портируемый вариант.
330 1588603
>>88460
Да никому веб не нравится. Но в отличие от мобильного Qt, реакта нативе, флаттера и прочих киви, веб хорошо изучен, проверен и все его плюсы и минусы давно известны. Он реально требует минимальных трудозатрат, реально кроссплатформенный и реально везде работает одинаково (не совсем, но уж точно одинаковее, чем тот же "кроссплатформенный" GTK). А всё остальное тупо не исследовано и может таить кучу подводных камней.
331 1588616
>>88460

> Что-то не нравятся мне ваши предложения...


Нехуй экономить на разработчиках. Вот раньше пиздато было, на каждую платформу был свой клиент, не зависящий от других. А теперь пернул под Винду, завоняло под ведром
332 1588766
Ананасы, хочу выкатиться в нейросети, а учить другой язык из-за этого пока не хочу. Если ли на плюсах библиотеки, адаптированные для этого?
333 1588782
Хочу распараллелить код с помощью OpenMP.
Функция полностью состоит из цикла, поэтому я просто пытаюсь воткнуть #pragma omp parallel for schedule(auto) в начало:
https://pastebin.com/gmyf1Y4E
В результате никакого ускорения не получаю, скорость выполнения с каждой новой нитью только падает.
Что делать?
334 1588797
>>88766
Вряд ли взлетит, ты же даже гуглом пользоваться не умеешь.
335 1588884
А тут есть аноны,которые вкатывались в программирование именно с плюсов?
336 1588927
>>88884
Есть, что ты хочешь спросить?
337 1588928
>>88884
Есть, правда теперь я джавист.
338 1588929
339 1588942
>>88927
>>88928
Простой вопрос, с чего начинали и как не теряли мотивацию?
340 1588952
>>88942
Тупо учил, учил и учил. Каждый день открывал литературу, читал до полного понимания, выполнял упражнения и шёл дальше. Почему-то я тогда не заебался. А вот hh.ru мотивацию убил мгновенно.
341 1588953
>>88942
Начинал с того, что было понимание, что надо что-то в жизни менять, потому-что я работал около-админом, и это было днище бесперспективное абсолютно.

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

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

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

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

Сейчас работаю в Нвидии все в треде знают кем и за сколько
342 1588957
>>88953

> понимание, что надо что-то в жизни менять.


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



Вот я пока на этом этапе,лол)
343 1588959
>>88957
Ты вполне можешь повторить мой путь, он реален, как видишь.

Правда, буду честен, второй раз я этот ебучий подвиг под названием "Ебучее задротство 24х7" уже не повторил бы.
344 1589019
http://cppquiz.org/quiz/question/226

схуяле у Y нет дефолтного Y(&&Y)? он же генерится автоматически и явно не удален
15806062437004764642584988326555.jpg123 Кб, 635x355
345 1589021
>>88953
Заебал уже.
346 1589022
>>89019
Потому что дефолт хуйня всё ещё user defined, а значит конпелятор не будет генерировать никаких лишних конструкторов
347 1589023
>>89022
То есть правильный ответ - undefined behavior?
Да не может быть такого чтобы не было четкого ответа какой конструктор будет вызываться - явно дефолтный или просто дефолтный
348 1589024
>>89023
Там же по ссылке есть ответ. Я думал тебя смутило то, что вызвался не мув конструктор Y
349 1589043
>>89019

>он же генерится автоматически


Пока ты не определил хотя бы одного из большой шестерки афаик
350 1589138
>>89024
То и смутило

> but since Y has no move constructor, its copy constructor is called.


Ответ есть в целом, но не на мой вопрос

>>89043
Можно линк на афаик, было бы бесценно
351 1589143
>>89138
Declaring any special member function except a default constructor, even as =default or =delete, will suppress the implicit declaration of a move constructor and move assignment operator. Declaring a move constructor or move assignment operator, even as =default or =delete, will cause an implicitly generated copy constructor or implicitly generated copy assignment operator to be defined as deleted. So as soon as any of the special functions is declared, the others should all be declared to avoid unwanted effects like turning all potential moves into more expensive copies, or making a class move-only.
352 1589384
Привет! Посоветуйте плз алгоритм для хеширования строк небольшой длины, желательно быстрый, на коллизии пох
353 1589409
>>89384
size_t hash(string &s){
return s.size();
}
354 1589411
>>88953
А ты можешь вот конкретно сказать, что ты делаешь на работе? Мне кажется, ньюфагам было бы полезно узнать это. Я вот даже отчасти ссу идти на собеседование хотя уже год дрочу плюсы, потому что не знаю что меня ждет. Как проверить свои знания вообще?
355 1589423
>>89411
Сходи, никто тебя не зачмырит, если не попадёшь на галеру.
356 1589431
>>89423
Галера, кстати, галере рознь. Работал в галере, где было вполне нормальное отношение к сотрудникам, хотя 90% - это были студенты, и платили им 17-20к в серую пиздец конечно, там серая часть тыщь пять была. Но никто никого не чмырил, офис был вполне комфортный, на кухне всегда были халявные печенюхи, фрукты и кофе. Даже короткий "больничный" оплачивали не требуя больничный лист.
Но текучка была пиздецовая, каждый год сменялось около половины, а может даже и больше, сотрудников.
Но качество кода в такой компании было на уровне 0. Поэтому нахуй в такой работать, если хочется опыта. Там его нет. Даже на 11 стандарт они перелазили в 17 году

Нахуй я это рассказал? Не знаю
357 1589441
>>86707
Напиши класс где целая часть и дробная части хранятся отдельно в size_t
358 1589458
>>89431

> Даже на 11 стандарт они перелазили в 17 году


А чего не на 17 сразу? Или хотя бы на 14?
359 1589466
>>89431
Почему присутствует ограничение по стандарту на работах? В чем сложность сразу взять и перейти на новый стандарт? По сути дописывать ничего не нужно, там убрал, тут урезал и все.
360 1589476
>>89466
Тестирование. Обновление библиотек. Рефакторинг того пердолинга, которого за nn лет набралось порядком.
361 1589485
>>89466
хуй знает, но если есть выстреливший продукт с набранной клиентской базы, то я бы кодовую базу вообще ни на новые компиляторы и стандарты не переводил, ни, боже упаси, не занимался бы написанием типа новой охуенной платформы с нуля которая заменит старую
сосредоточился бы на исправлении ошибок и добавлении функционала
но это такие маняфантазии о том если бы у тебя был собственный продукт
362 1589491
>>89466
Хуево когда ты на него перешел, а никто его не знает
А в случае с Java он еще и платный
363 1589499
>>89491
В джаве наоборот: ты либо вынужден постоянно переписывать легаси, либо платить за право использовать старые версии.
364 1589501
>>89499

>платить за право использовать старые версии


Чем и кому платить?
365 1589505
>>89501
Oracle
r
a
c
l
e
366 1589511
>>89505
Что ты несешь, идиотина?
367 1589516
>>89501

> Чем


Деньгами.

> кому


Ораклу.
368 1589517
>>89516
Под старыми версиями имеешь в виду до 8 версии?
369 1589519
>>89517
Да это школьник решил потроллить тупостью
370 1589526
Аноны, посоветуйте IDE новичку, кроме MVS.
371 1589529
>>89526
Советую Code::Blocks
Они часто в вузах стоят.
image.png42 Кб, 641x642
372 1589532
>>89517
Да хуй его знает, я так до конца и не понял. Есть какие-то запланированные сроки окончания поддержки версий жабы, после которых либо обновляешься до новой, либо платишь за старую. Но это только оракле ждк, в других сборках может быть бесплатно, но нет поддержки от оракла.
373 1589538
>>89526
Qt Creator.
374 1589567
>>89411
На всех моих работах было одно и то же.

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

Потом, обычно, дают простенькие баги, это те, которые с наименьшим приоритетом, чтобы ты стабильно научился проходить некие конторские процессы, типа Мердж реквест - Ревью - Прогон CI\CD - Коммит.

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

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

Если сильно хочешь проверить свои знания - пиши на jordanr"J4udessANUSy`:1andexPUNCTUMrCE_u с пруфом того, что это твой пост - я тебя фейкоотсобесю на джуна и скажу, где ты проебываешься.
375 1589622
>>89567
Ты только того анона будешь фейкособесать?
Я сам хочу как-то уровень знаний плюсов узнать, но они у меня только самоприобретенные, работаю не плюсовиком.
376 1589625
>>89458
Там ниасилили бы его, слишком дохера студентов, для которых шаблоны сродни магии, а основной костяк - уже застаревшие типы лет 45-50, которым это нафиг не надо и проще написать 100500 функций, которые будут принимать "бесконечное" количество аргументов, чем заморачиваться с variadic templates. Ну одним словом пиздец, прогресс там остановился в 90х

>>89466
Что-то где-то может неожиданно отвалиться, после этого надо с нуля тестировать всё приложение.
А во вторых, команда должна понимать, что происходит в проекте. У нас там половина не знала, что такое move semantic и с трудом читала код на шаблонах, который ничем особо сложным не выделялся ну студенты далеко не самого тового вуза, работающие за двадцадку, что с них требовать то? Что-то поправить могут, не сломав при этом ничего, и заебись

>>89485
Продукты обычно развиваются. Как развиваются и программисты, которые их пишут. Вечно на С99 никто писать не будет, молодые прогеры, которым нравятся плюсы, туда не пойдут, а старые рано или поздно уйдут например я ушёл как раз из-за отсутствия развития

>сосредоточился бы на исправлении ошибок и добавлении функционала


Так вот с новыми стандартами часть работы можно делать быстрее, чише и безопасней. Стагнация в нашей сфере = смерть
ИМХО
377 1589653
>>89625

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


Те, кто писали приложение изначально по идее более опытные программисты, верно? Но у них все равно остаются ошибки?
378 1589659
>>89622
Есть разница между челиком, который задрачивает и пытается вкатиться и праздным любопытством.
379 1589671
>>89653
Да, там основной костяк состоял да и состоит из двух прогеров, которые там сидят с самого начала основания компании. Ребята норм, но без какого либо желания развиваться дальше. Си с классами их более чем устраивает.
А ошибки есть у всех. А ещё куча ошибок появляется после того, как приложение попадает в реальный мир. Там всегда возникает чувство, что тестеры нихерна не тестировали ну если это не под какое-то определённое устройство делалось, которое у всех одинаковое
380 1589674
>>89671
Ясно. Просто интересно про процесс разработки узнать, просто странно когда исправлять ошибки назначают менее опытных сотрудников. Мне кажется в других сферах обычно наоборот происходит.
381 1589746
>>89671

> Там всегда возникает чувство, что тестеры нихерна не тестировали


Ну а хули, повезло что тестировщики вообще есть, ибо если программисты - это студенты за 20к, то тестировщики скорее всего просто бомжи с улицы.
382 1589783
>>89746
Нет, это студенты, которые тоже учились и учатся на программистов, но не осилили программирование
sage 383 1589932
>>89674

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



Дописывать проект будут мене опытные сотрудники когда синьер уже съебал в галеру пожирнее и чтоб не изговняться продакшеном
384 1589951
>>89659
Принял. Логично, я тоже хочу в плюсы, но пока просто изучаю, а не ищу работу.
Только не принимай пруф из дашчана, там любой пост можно своим пометить.
385 1589977
>>89932
Текучка как в пятерочке везде что ли? И чего с сажей?
386 1589981
>>89932
У нас синьеры работают по двадцать лет над одной хуйней, как раз с момента конца студенчества.
387 1590012
while (msg.message != WM_QUIT)
{
if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
DispatchMessage(&msg);
else
{
//Update
GameController::Update();
}
}
Аноны, есть подобный код, хочу добавить сюда отдельный поток для GameController::Update(), как мне это сделать?
Метод в лоб std::thread DrawThread{GameController::Update} будет же создавать тред каждую итерацию цикла? Я могу как-то создать поток, а потом указать какие функции будут должны в нём выполняться?
388 1590015
>>90012

>как-то создать поток, а потом указать какие функции будут должны в нём выполняться?


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

>создавать тред каждую итерацию цикла?


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

Основная проблема в том, каким образом синхронизировать рендер, ввод с клавиатуры-мышки и физический цикл (цикл игровой механики). Можно хранить копию состояния игры, рисовать эту копию, пока новое физическое состояние обсчитывается в другом потоке. Мьютексы с большим шансом в говно тормозное превратятся, но не обязательно.
Ещё виндоус почти не умеет в таймеры, либо ты физический цикл делаешь с очень большой частотой, либо привязываешь к рендеру и тогда смысл второго потока теряется, либо сам через условные asm("nop;nop;nop;nop;") ждёшь интервал времени, чтобы добиться ровно 100 обновлений (или сколько тебе захочется) игрового мира в секунду. Если попытаешь заслипать поток, то он будет засыпать на сколько ему захочется милисекунд и обновления будут очень неравномерные во времени.
Вообще не знаю как нормальные люди делают - просто описал какая у меня с этим была проблема.
389 1590018
>>90012

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


Какую проблемы ты хочешь решить? При создании ты можешь указать только одну функцию. Но в той функции ты можешь вызывать сколько угодно других. Если тебе именно динамически нужно выполнять функции то обычный подход - сделать очередь в которую будут скидывать потоку задания, а он время от времени просыпаться и выполнять их. Если ничего нет - то засыпать. Ты в такую очередь скидываешь std::bind (или что-то подобное) с нужными для выполнения функциями. Если у тебя постоянный (но динамический) набор функций для выполнения то создаешь просто вектор с такими биндами (или ссылками на функции например) и в треде пробегаешся по нему и засыпаешь на время. Потом повторяешь
390 1590020
>>90015

>Вообще не знаю как нормальные люди делают


Используют готовый движок, хотя бы в виде обертки вокруг директ икса и винапи.
391 1590024
>>90020
Как будто в готов движке оно каким-то магическим образом само-собой работает.
Один хрен в 98% играх ввод с клаво-мышки привязан к рендеру, и в 90% игровая механика прибита гвоздями к рендеру.

Но слипать поток с циклом обновления игры в любом случае не стоит, даже на 60 фпс скорее всего он уснёт больше чем на 16 мс. По крайне мере я никаким образом не смог добиться стабильного интервала между обновлениями, если поток с ними слипается.
392 1590034
>>90024

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


Нет.
393 1590045
>>90012
Зачем там else, типа если кто-то спамит очередь сообщениями, пошел нахуй юзер, не до тебя сейчас?

>Аноны, есть подобный код, хочу добавить сюда отдельный поток для GameController::Update(), как мне это сделать?


Зачем? Пока видюха рендерит, основному потоку все равно нехуй делать. Если же ты хочешь заняться чем-то тяжелым, физикой какой-нибудь, которую на видюху нельзя либо влом, то именно это и нужно пихать в отдельный тред. Не надо наворачивать сложность там, где она не нужна.
394 1590058
>>90034
Ты сказал?
395 1590066
>>90058
Ты первый.
396 1590737
>>76737 (OP)
Что здесь происходит?

strBuilder.Append(word.Substring(0, width - 1) + "-");
word = word.Substring(width - 1);

С++ не знаю. Нужно для конвертации в другой язык.
397 1590753
>>89529
а норм, если последняя версия 30 декабря 2017?
398 1590928
>>89526
Почему ты выбираешь любую IDE кроме самой лучшей существующей IDE?
399 1590936
>>90753
Ночные сборки ставь.
400 1591024
>>90928
А чем тот же code blocks хуже mvs?
401 1591057
>>91024
Ты щас смеешься?
Ни дебаггера, ни компилятора, ни системы сборки, ни статического анализа, ни раннера юниттестов.

Это так, блокнотик с подсветкой. А вижуал студия - полноценный профессиональный инструмент, лол.
402 1591068
>>91057

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


Ты щас смеешься? Ты щас смеешься? Ты щас смеешься? Ты щас смеешься? Ты щас смеешься?

> Это так, блокнотик с подсветкой.


Лол. Лол. Лол. Лол.

пиздец миленниалы пошли
403 1591072
>>91068
Зато я ебал твою мамашу
404 1591079
>>91068
Достойная аргументация, друг.
405 1591088
>>91057

> дебаггер


gdb

> компилятор


Такие же как и везде - gcc и clang

> система сборки


qmake, ninja, make, waf, scons, meson...

> статический анализ


clang analyzer и semmle

> раннер юниттестов


gunit

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


Уж лучше бы профессиональные инструменты из неё упомянул. Их там есть немного.
406 1591089
>>91079
Какую аргументацию предлагаешь привести для школьника (>>91072), который очевидно ни разу не пользовался CB? Хотя может просто ниасилил?
407 1591091
>>91088
И как, весь зоопарк тобой перечисленный относится к Code::blocks, и конкретно, самому определению IDE?
408 1591093
>>91089
Зачем пользоваться (и, о боги) осиливать заведомо инфериорный продукт? Если ты идейный хейтер всего майкрософтовского, то всегда есть CLion. Если у тебя аргумент "ТАРМАЗИТ" - то ты не зарабатываешь деньги программированием, и твое мнение априори не интересно. ЛАБА3 можно писать и в nano
409 1591097
>>91068

>code blocks


Не умеет выводить подсказки (список полей и методов структуры) при использовании auto, decltype и сколько угодно простых шаблонов. Код компилируется, но в редакторе всё красным зачёркнуто-перечёркнуто, никаких полезных предупреждений от среды нельзя получить. В автоматическую установку отступов соответственно не умеет, если там вообще такое есть.
Может быть и пофиксили что-то или это можно настроить, но у меня самые отвратительные впечатления остались (хуже только от визуал студии) - зачем это нужно, если в другой среде это всё без особых проблем работает?
410 1591098
>>91097
в какой?
411 1591105
>>91098
Студия, CLion, qtCreator и даже CodeLite. Может быть ещё какие-то умеют, я не проверял.
412 1591132
>>91093
А действительно, почему CLion тормозит?
413 1591135
>>91132
Он на джаве.
414 1591137
>>91132
На джаве написан.
415 1591138
>>91135
>>91137
Звучит как приговор.
416 1591146
>>91093
Ну а зачем тогда высираться тут, если ниасилил?
>>91091
Тогда и VS не IDE.
417 1591387
>>91146

> Ну а зачем тогда высираться тут, если ниасилил?


Сидит челик, обмазывается говном, и на все вопросы отвечает "АХАХА ТЫ НЕАСИЛИЛ ПРОСТО, НЕАСИЛЯТОР АХАХАХА", и продолжает обмазываться. Это выглядит примерно так.

> Тогда и VS не IDE.


Как раз - фактически это единственная IDE, ставишь только ее, у тебя сразу и редактор, и весь тулчейн, и редактор.
418 1591388
>>91387

>, и редактор.


, и дебаггер, самофикс
420 1591475
>>90737
Перенос строки. Язык может быть любой, хоть шарп хоть жава.
421 1591698
>>91387

> и на все вопросы


Какие вопросы? Там были лишь заведомо ложные утверждения.

> Как раз - фактически это единственная IDE, ставишь только ее, у тебя сразу и редактор, и весь тулчейн, и редактор.


В студии есть рабочие нагрузки, так что можно вполне себе поставить студию без компилятора.
Тащемта CB, насколько я помню, тоже поставляется со всей этой хуетой.
422 1591783
>>91447
>>91475
Спасибо
423 1591890
>>91097
>>91105
Кроме студии с шаблонами везде беда, двачую анона
424 1591891
>>89977
По моим наблюдениям, есть несколько человек, которые десятилетиями сидят и есть остальные, которые каждый год сменяются
425 1591978
>>91890
У меня в свежей студии после шаблонной мангии intelliSense глючит, порой вообще отказывается синтаксис светить. Хз что делать, наверное, буст его перегружает
426 1592038
>>89466
Может быть это неочевидно, но при смене стандарта, есть ломающие изменения, когда программа просто не соберется из-за изменившейся сигнатуры функции в стандартной библиотеке.
Но, кроме этого, меняются некоторые правила, например, вывода типов в шаблонах. Из за чего может поменяться семантика некоторых выражений. То есть, ты или кто то еще пишет строчку, подразумевая одно поведение, а оно с разными флагами отличается. Сам я примеров не приведу, но вот тут - вызовется другая перегрузка функции https://stackoverflow.com/questions/6399615/what-breaking-changes-are-introduced-in-c11
А вот тут содержимое объектов поменялось с уникального на одинаковое для всех https://stackoverflow.com/questions/5759232/stdvector-default-construction-c11-and-breaking-changes/5759296
Вот еще разное поведение constexpr https://stackoverflow.com/questions/23980929/what-changes-introduced-in-c14-can-potentially-break-a-program-written-in-c1
Так что кому то придется каким то образом просмотреть все строчки кода и используемых библиотек (или надеяться что все покрыто тестами)
427 1592091
>>91978
От жидбрейнс плагин установи для студии и попердоль оптимизацию, у меня вроде как перестало лагать, но время загрузки проекта увеличилось.
428 1592093
>>92091
Какого размера солюшн?
у меня на 200 проектов загружается где-то минуту, если почистить кеш, то минуты три
429 1592110
Объясните пожалуйста дураку, как сделать...

У меня есть класс Socket. Я хочу, чтобы когда он принимал соединение, он возвращал шейрд указатель на объект класса Connection, который бы сразу и конструировал из хэндла, полученного функцией WinSock. В свою очередь объект класса Connection содержит в себе Socket. Я пытался сделать через форвард декл., но не выходит. В Socket.cpp заинклюжен Socket.h, а в него Connection.h, что не дает мне заинклюдить Socket.h в Connection.h. Как такое делается?
430 1592116
>>92110
#pragma once?
431 1592119
>>92110
>>92116
А, лол, глаза замылились уже - в Connection.cpp забыл добавить #include "Socket.h"
432 1592123
>>92119
Поставь решарпер++ - он тебе такие вещи сам показываь будет
433 1592125
>>92123
Нвидиа-кун, если это ты, я помню твой гайдлайн <3
В планах, сейчас пока пилю этот чат как тестовое на джуна, и руки не доходят.
434 1592360
>>92110
if(acceptedConnectionHandle=INVALID_SOCKET){...

Мы вам перезвоним
435 1592366
>>92360
Что не так? Задефайнил как -1 на *nix
436 1592371
Поясните, как лучше написать. Есть такой набор строк:
test[1] = function[1,2,3,a,b,c];
...
test[10] = function[4,3,6,e,f,g];
была идея завести отдельную структуру для параметров функции и итерировать по ней.
437 1592408
>>92366
у тебя присваивание вместо проверки на четвертом скрине
438 1592411
>>92408
Упс, спасибо
439 1592414
>>92110
Деструктор нужен, если хранишь unique_ptr и хочешь forward declare.
Деструктор в cpp разумеется.
440 1592430
>>92371
Бред какой-то.
441 1592518
>>92123

>решарпер++


У тебя куча ошибок в слове "вижуал ассист"
442 1592536
>>92518

> вижуал ассист


Хуйня для быдла.
443 1592598
Хочу вкатиться в Embedded на С/С++

Есть опыт работы с Ардуинами также чуток Мплаб (ПИКи) и чуток Андроид. Большой опыт в промышленной автоматике и чуть меньше в электронике.

Посоветуйте как вкатываться, что читать/ учить.
444 1592675
Сап, программисты. Вопрос по QProccess. По нажатию на кнопку, я запускаю скрипт python. Все работает нормально некоторое время, но потом Qt закрывает скрипт, не дождавшись его окончания. Скрипт для дефолтного вывода графика. В чем может быть проблема?
Ошибка QProcess: Destroyed while process ("python3") is still running.
Мой
QProcess
p.start("python3",{"draw3d"});
p.waitForFinished();
445 1592680
>>92675
Лол, я довен
waitForFinished ждет 30 секунд только
waitForFinished(-1) ждет сколько угодно
446 1593102
Есть функция принимающая ссылку на вектор, как рекурсивно вызывать эту функцию? Надо например каждый раз тот же вектор обрезать с краев.
447 1593122
>>93102
Сделать так, чтобы функция принимала итераторы на начало и конец.
448 1593124
>>93122
Функция уже задана, ее не поменять
449 1593133
>>93102

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


Вектор так не умеет, вроде бы. Ты либо делаешь новый вектор (меняешь уже имеющийся) на каждой итерации, либо создаёшь свой тип / передаёшь итераторы.
450 1593155
>>93102
передавай итераторы
451 1593278
>>93133

>Вектор так не умеет, вроде бы.


erase

Но передавать изменяемый вектор по ссылке при рекурсии - сомнительное решение, это будет или куча багов или легко меняется на цикл.
452 1593286
>>93133
pop_back, pop_front.
453 1593596
почему такой код не работает
while(std::getline(input,str))
if(str == "\n") std::cout << "\n"
454 1593602
>>93596
А что он у тебя должен делать, выводить столько символов переводов строки, сколько в введенном тексте? Очень полезно.
std::cin.ignore();
455 1593607
Поясните когда следует добавлять const у метода класса? Допустим я пишу обертку над сишным FILE* да я знаю про fstream. У меня есть функция записи в файл, в которой я передаю указатель по значению в сишный fprintf. Компилятор позволяет мне объявить этот метод константным, сами поля класса при этом не изменятся, но поведение класса изменится. При следующей записи он уже будет писать в файл с другим смещением. Так вот следует ли в такой ситуации оставлять const?
456 1593614
>>93607
ты не меняешь значение FILE* - по-этому можно. ебануто, да
457 1593632
>>93607
const в методах нужен (можно поставить), когда ты не изменяешь не-mutable поля класса, не вызываешь других не-const методов и всё в таком роде.

Константный указатель не есть указатель на константу - если у тебя класс содержит указатели - можешь сколько угодно изменять значения на которые они указывают. FILE - простая структура, указатель на неё ничем не отличается от указателя на число. Ты не сможешь использовать fprintf, только потому что у него в объявлении нет const, но фактически сам указатель ты передаёшь по значению и у функции просто нет возможностей его (указатель) изменить (const в объявлении аргумента функции влияет только на возможности записи в этот аргумент внутри функции и существенный смысл имеет только вместе с ссылками). Ещё ты можешь поставить const_cast<FILE✲>(f1) вместо f1 если понимаешь что ты делаешь и зачем тебе это нужно, и тогда ты сможешь использовать fprintf вместе с const FILE✲.

Ещё по большей части const нужен для людей, просто чтобы не ошибиться лишний раз, компилятору более-менее без разницы и если ты не записываешь значения в переменную он и так может провести оптимизацию во многих случаях.
image.png19 Кб, 363x433
459 1593682
>>93632
Ну вот тут например я по могу использовать fprintf в константном методе, передавая туда неконстантный указатель. Но в то же время я не могу использовать константный указатель т.к. fprintf принимает неконстантный.
460 1593692
>>93682
Если логически это не const, то и не делай const.
461 1593693
>>93682
Ну так прикрути const_cast, если тебе нужен константный - в действительности указатель всё-равно не изменяется.
462 1593694
>>93693
Или не прикручивай, если не нужен. Я бы не стал.
463 1593776
Поясните, есть два цикла выдающих инфу:
AAAAAA
BBBBBBBB
Как попроще получить (без промежуточных хранилищ) из этого
ABABABABABBBBB
464 1593819
Что скажете?

https://youtu.be/Xq3isov6mZ8
465 1593902
>>93819
Есть есть заготовочка, где настроена обёртка вокруг winapi для создания окна, инициализации опенгля и вывода текста, то побью его (за 20 часов кодинга)!
466 1593903
>>93902

>обёртка вокруг winapi для создания окна


Зойчем, когда есть glfw?
467 1593905
>>93819
Но вообще совсем не впечатляет. У него десять текстур, статичные блоки и простой генератор мира. Интерфейса или ещё чего-то нет, показан только режим полёта (прыгать по кубам нельзя). Сделаю за три-пять часов плюс-минус такое. Могу с записью, если ты хочешь поспорить со мной.

>>93903
Не знаю что это.
468 1593935
>>93607
Тоже задумывался над этим вопросом, когда писал свой враппер над FILE. Решил сделать read и write константными, просто потому, что сырой константный FILE тоже можно писать и читать. Получилось прикольно в том плане, что можно передать куда-то const File&, и это будет означать "можешь писать и читать, но не можешь закрыть и переоткрыть".
Хотя потом оказалось, что такой подход плохо расширяется — захочешь вместо File передать другую читалку-писалку, а у неё read и write уже могут быть не константными.
469 1593936
>>93935
бля, парные звездочки после FILE превратились в курсив
470 1593940
Слышали про статью "the camel has two humps"? Что думаете?
471 1593968
>>93607
Константными можно делать методы вроде .size(), .readPos()

Когда ты читаешь из файла, ты меняешь позицию указаетля чтения. Так что хотя технически метод чтения можно сделать константным, логически он меняет объект.
PongIntro.jpg6 Кб, 650x351
472 1593989
Аноны, я тут пытаюсь устроится на работу джуном C++ и мне с ходу выслали тз, сделать игру Pong без движков, + обязательно должен быть режим битвы против бота. К тому же назвали всё это очень простым тз. Я конечно кое-как сделаю скорее всего эту игру, но не слишком ли это большие требования для джуна? Если это простая задача, то что ждет меня дальше.
473 1593992
>>93989
Задача простая, но объемная. Ничего сложного, но придется потратить время, день-два. Хорошее задание, интересное.

В принципе отрисовку можно сделать на GDI в виндоусе, и вообще все сделать тупо на Windows API

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

Постарайся в коде не сделать хуйню вроде текущих ресурсов (будь внимателен к исключениям) или битых ссылок.
474 1593994
>>93992
Я хотел сделать на DirectX(это же нельзя отнести к категории движков?), в любом случае собираюсь делать конечно, даже если не возьмут, получу хоть какой-то опыт.
475 1593995
>>93994
DirectX тоже пойдет, это не движок. Хотя это оверкил, тебе надо нарисовать 2 прямоугольника, линию и кружок. Почитай у Петцольда про GDI, у тебя реально всю отрисовку можно в 10-20 строчек уместить.
476 1593997
>>93989
А можно мне тоже такие тз будут давать? Хорошее задание.
477 1593998
>>93989
Вообще расскажи подробнее, если не сложно. Я просто десять лет кодю, но никогда не работал, потому что хикка социофоб, но нужно как-то устраиваться. Твоё задание кажется очень простым, но когда я попробовал приходить на собеседование, меня спрашивали что я знаю, и я не мог ни про что сказать, что я что-то знаю, потому что в чём угодно есть много вещей и дополнительных функций, которые я не знаю - я честно так и отвечал, что имею какой-то опыт работы с тем-то, с этим, после чего меня благополучно посылали.
478 1593999
>>93998
Я тоже никогда ещё не работал, сейчас на 2 курсе учусь и просто разместил свое резюме и потом уже со мной связались, собеседования ещё не было, оно после выполнения тз.
479 1594021
>>93995
>>93989
Можно взять тот же imgui чисто для рисования, не думаю, что это могут посчитать готовым движком.
480 1594108
>>93989
Без движков? Без б, ебани в консоли ascii графикой.
Я так "жизнь" сделал.
Три совета для скорости печати: собирай в релизе, ставь в консоли курсор на левый верхний угол и печатай каждый раз один раз одно и то же количество символов(они будут перекрывать друг друга, быстрее, чем очищать вывод) и печатай сразу все, что есть для отрисовки, а не построчно.
481 1594115
>>94021
Могут и не посчитать, но сам факт сторонней либы может понизить "рейтинг", если у них несколько кандидатов.
image.png19 Кб, 328x476
482 1594129
Поясните за эту хуйню, почему я могу использовать функцию из неймспейса не указывая этот самый неймспейс просто потому что я в нее посылаю аргумент, тип которого объявляется в этом же неймспейсе? Это типо так и должно быть?
483 1594134
>>93989
Ну загугли, хули ты как маленький. Немного код укрась и готово.
485 1594194
>>94129
В первой строке test-a ты (обосрал себе штаны) объявил новую функцию, а не вызвал существующую из zalupa
486 1594197
>>94194
А хотя нет, это я кал уронил, там же нет ret type
487 1594217
>>93776
бампую вопрос, т.к. до сих пор использую вектор в котором храню значения из первого цикла в нечетных местах, а значения из второго цикла в четных, а потом вывожу это в файл.
488 1594221
>>94217
Чем тебя не устраивает это решение?
489 1594233
>>94168
Нахуя это вообще так сделали? А если у меня в глобальном неймспейсе функция с таким же названием, то какая из них вызовется?
490 1594236
>>94217
Делаешь один цикл, где на каждой итерации записываешь два значения, а когда одно из условий нарушается - выходишь из цикла и добиваешь всё оставшимися A или B в зависимости от нарушенного условия? Удобнее через while.
sage 491 1594308
Хочу стать волшбником, чтобы быдло текло, а тянки боялись. Какие для этого макросы надо знать?
492 1594313
>>94308
BOOST_PP_REPEAT
493 1594381
>>94308

>макросы


Триграфы учи. ??/??/
494 1594382
>>94381

> Триграфы


Депрекейтед.
495 1594384
>>94382
О том и речь.
496 1594387
>>94134

>Немного код украсть и готово.


Пофиксил.
497 1594388
>>94233
Иначе всякие пользовательские операторы + - * и и.д. работать не будут нормально
498 1594393
>>93940
Загуглил, давно читал, да, есть те кто может и кто не может. Не считаю это чем то плохим, я например рисовать не умею, а другие умеют.
Хотя думаю с 2006 прошло много времени и умеет больший процент, тупо потому что больше пользуются электронной техникой.
499 1594400
>>94233
Чтобы не писать всю эту дрисню
std::operator<<(std::cout, "Hello, world").operator<<(std::endl);
500 1594439
>>93905

>Но вообще совсем не впечатляет.


Он первым сделал демонстративный пример на крестах, все норм

>У него десять текстур, статичные блоки и простой генератор мира.


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

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


На что споришь?
501 1594491
>>94387
Шизик воришка, ты? Копирование не воровство, сколько раз тебе говорить.
502 1594496
Не даёт покоя пикча, где типа совершенство использования c++ - использовать си. и линукс блядский на сишке Сука блять, с++ же силен либами и всяким ьаким говном. Я например использую Eigen и не представляю даже, сколько страшной ебли было бы на си. Или я ошибаюсь, и сишка совершенна?
sage 503 1594500
>>94496
покажи пикчу
504 1594501
>>94496
Не слушай сектантов плиз, с++ как раз и полезна тем, что много абстракций добавлено и либ спрограммировано.
505 1594506
>>94496
У С в 2020 году есть 2 юзкейса.
1. Отсуствие компилятора С++ под твою платформу
2. Экспозинг extern C интерфейсов для FFI других языков\компиляторов.

Все, больше нахуй нигде не сдалось, не слушай луддитов.
15723753740901.png61 Кб, 270x186
506 1594507
Сап программач. Какие есть годные книги/сайты для изучения gtk?
507 1594529
>>94506
Иронично, что C++ предназначен быть полезным в куче юзкейсов, когда очевидно, что в еще большей куче он не подходит, то этот ИТТ петуховен так уверен в себе.
508 1594532
>>94501
Жаль что все либы с++ написаны в разном стиле и с разным интерфейсом, считай на 10-ке разных диалектов. Ну и на сях либ то наверное побольше.
509 1594533
>>94529
Назови хоть 1 юзкейс, где С лучше чем С++, за исключением двух, перечисленных мной
510 1594535
>>94529
Вообще нет ни одного кейса где модерн с++ бы не подошел.
511 1594545
>>94533
Жесткое ограничение на размер шеллкода, например.

>>94535
Вообще нет ни одного кейса, где бы Java не подошла.
512 1594553
>>94545

> Жесткое ограничение на размер шеллкода, например.


Ты вполне можешь получить такой же размер, как в си. Минус РТТИ, минус эксепшены - пожалуйста.

Но мы тут, все таки про разработку полноценную, а не упражнения

> Вообще нет ни одного кейса, где бы Java не подошла.


Напишешь мне кернел драйвер виндовый на джаве? Я на С++ пишу вот щас сижу.
513 1594559
>>94553

>Ты вполне можешь получить такой же размер, как в си. Минус РТТИ, минус эксепшены - пожалуйста.


Скажи мне, ты в своем уме? В Си у меня на выбор кучи заменяющих libc библиотек, из которых можно взять только самое нужное, в C++ мне нужно будет тащить весь libc++ без альтернатив, не говоря уже о том, что там все завязано на работу с памятью, а это означает еще библиотеки, заменяющие работу с памятью ОС.

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


Ясно @ понятно. Настоящая разработка ведется исключительно в винде. Спасибо, что пояснил.

> Напишешь мне кернел драйвер виндовый на джаве?


Не вижу никакой причины не захуярить JVM прямо в драйвер.
514 1594561
>>94559

>драйвер


>GC


Проиграно.
515 1594563
>>94561

> Не знает про расширения JVM для риалтайма


> пук

516 1594566
>>94559
у тебя и в С и в С++ можно линковаться только на платформенное АПИ вообще без какого-либо рантайма, если ты не в курсе.

> Ясно @ понятно. Настоящая разработка ведется исключительно в винде. Спасибо, что пояснил.


Не передергивай, любой большой проект на любой ОС.

> Не вижу никакой причины не захуярить JVM прямо в драйвер.


Ну, как захуяришь - свисни.
517 1594574
>>94439
Да не на что.
На репутацию моей критики в том посте. Не получится - тот тип с ютуба молодец, а я хуесос; получится - я молодец, и тот тип тоже молодец, потому что сделал видео и привнёс что-то интересное в этот мир. В конце концов я то уже знаю что нужно сделать, а он может быть тыкался ещё не видя конечного результата.
518 1594578
>>94566

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


И? Нахуя мне C++ без библиотек и исключений?

>Ну, как захуяришь - свисни.


Лол, ты себя илиткой считаешь, чтоле?
Такой-то гонор, и нихуя по существу вопроса, а все заявления основаны на кодинге под одну платформу.
519 1594585
>>94566

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


Попробуй, кстати, написать что-то нетривиальное на том же C без рантайма под ту же винду. Тебя ждет мир удивительных открытий типа необходимости реализовывать свой memset, например.
520 1594601
>>94578

>И? Нахуя мне C++ без библиотек и исключений?


Шаблоны, классы.

>>94585
В настройках компилятора просто ставишь статичную линковку(MT) и и у тебя весь рантайм сам встроится в твое приложение используя исключительно winapi.
521 1594604
>>94578

> И? Нахуя мне C++ без библиотек и исключений?


Хотя-бы ради классов. RAII и инкапсуляция - это такая киллерфича, что на этом можно закончить. В чистом СИ ты в лучшем случае будешь как майкрософт GOTO cleanup делать.

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

> Лол, ты себя илиткой считаешь, чтоле?


Хорошо сманеврировал. Но я еще посмотрел бы на потуги писать на джаве драйвера, особенно с использованием многопоточки. Как бы ты там сочно половил бсодов с IRQL violation'ами.

> Такой-то гонор, и нихуя по существу вопроса, а все заявления основаны на кодинге под одну платформу.


Кто тебе сказал такое? Я писал под линукс на крестах охуевший high performance. 98% кода красиво и абстрагировано, 2% (исполняющиеся 99% времени) выдрочены до замеров промахов кэша процессора. Но да, винду я знаю сильно лучше, этого отрицать смысла нет.

> Попробуй, кстати, написать что-то нетривиальное на том же C без рантайма под ту же винду. Тебя ждет мир удивительных открытий типа необходимости реализовывать свой memset, например.


Да без проблем вообще. В кернеле есть крошечные куски сишного рантайма, анивей, использую кернел апи, а сверху уже нашлепал нормальных абстракций, тот же operator new, например. Обернуть сишное апи - получаем хороший С++.
522 1594608
>>94604

> Обернуть сишное апи - получаем хороший С++.


Перефразирую - обернуть платформенное сишное апи - получаем хороший С++, даже сишные либы не нужны нахер.
523 1594614
>>94601

>Шаблоны, классы.


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

>>>1594585


>В настройках компилятора просто ставишь статичную линковку(MT) и и у тебя весь рантайм сам встроится в твое приложение используя исключительно winapi.


Без рантайма, не статисчная линковка, а без рантайма.

>>94604
RAII без исключений не дает профита.
И да, в C я именно, что делаю goto, а хуле ты хотел-то? Выбора нет.
Ну а инкапсуляция это приятный бонус, решения о выборе языка не принимаются на таком основании.

>Да без проблем вообще. В кернеле есть крошечные куски сишного рантайма


Вся суть, а совсем без рантайма твой любимый VS начнет смачно обсираться и звать маму.
524 1594622
>>94604
Сколько платят за такой скиллсет сейчас?
525 1594628
>>94614

>Макросы


Хуйня, не сравнится с шаблонами

>структуры


Нет RAII

>RAII без исключений не дает профита.


Действительно, вот у меня есть функция которая возвращает какой-нибудь важный ресурс, в си мне придется КАЖДЫЙ раз вручную его освобождать, а в с++ я могу обернуть его в RAII и все.
526 1594630
>>94614

> RAII без исключений не дает профита.


RAII дает профит всегда, потому-что тебе не надо думать об освобождении ресурсов - привет GOTO cleanup. ты можешь думать на более высоком уровне абстракции, там где нужно. И опускаться во врапперах на более низкие. Те же хэндлы и прочие opaque поинтеры.

> Вся суть, а совсем без рантайма твой любимый VS начнет смачно обсираться и звать маму.


Еще раз, для необучаемых - ВС умеет в компиляцию native приложений, когда еще даже Winapi нету, не говоря уж о рантайме, только Native api. В драйверах есть майкрософтовские бастарды, сишного ни рантайма, ни библиотеки нету. Студия отлично справляется.

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

>>94622
Очень сильно зависит от конторы. Кому-то 50к в НИИ, мне 400к+. В касперском можно вроде 200-250 выбить.
527 1594634
>>94630

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


Обсираешься здесь лишь ты, т.к. из-за своего ЧСВ даже не можешь понять, о чем пишешь. При компиляции драйвера VS добавляет свой псевдо-рантайм, без рантайма он не будет находить тривиальные функции во время линковки, которые ему нужны просто так, блеать, из-за того, как компилятор генерирует код.
Вообще, я угараю с твоего ЧСВ, маня, ты думаешь, что один тут драйверы писал? Так-то понятно, что в Рашке среди говна легко чувствовать себя таким царьком, но включи мозг-то.
528 1594639
>>94630

>RAII дает профит всегда, потому-что тебе не надо думать об освобождении ресурсов - привет GOTO cleanup.


А, и еще раз.
goto нужен только в случае обработки ошибок, другими словами — реальный профит от RAII, а не отсутствие необходимости вызвать лишнюю функцию для освобождения ресурсов, начинается с возможности использовать исключения для обработки ошибок.
Про абстракции и врапперы он мне тут рассказывает, лол. Жену поучи щи варить, петуховен.
529 1594641
>>94634

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


Какие блять тривиальные функции? Ты хоть перечисли несколько. Почему я спокойно пишу драйвер и могу юзать хэш карты, вектора и т.д.?
530 1594642
>>94639

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


Ладно, здесь уже можно закончить. Удачи с дипломом.
532 1594652
>>94642
Просто типичнейший рашкопрограммист в вакууме.
ЧСВ, неспособность к коммуникации, неадекватность в общении — все на месте.
533 1594653
>>94652
да, да, считай как хочешь. Я понял, что ты невменяемый, и сраться с тобой смысла 0.
534 1594659
>>94653
Ты понял, что обосрался по всем пунктам, и сейчас у тебя бомбит от осознания собственной профессиональной несостоятельности. Пишешь драйверы и не понимаешь, как генерируется код, лол. В своем узкоспециализированном домене не знать, что VS вставляет вызовы в CRT где попало — это нужно быть типичнейшим кодомакакой, хоть и от C++, лол. Не знать, зачем на самом деле нужен goto в C — аналогично. Ты просто привык понтоваться умными словами перед джунами, но чем-то их подкрепить не в состоянии.
535 1594661
>>94659
продолжай, продолжай. Ну, как минимум курс операционных систем в вузике ты не проспал, но судя по всему, продакшен код еще не писал.
536 1594662
>>94648
И в чем проблема? Реализуешь эти функции сам и все.
537 1594666
>>94661

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


Good, good, let the butthurt flow through you.

>>94662
Для этого надо хотя бы понимать суть проблемы, а не как этот петуховен, код работает и ладно, лол.
538 1594670
>>94666
Ты слишком любишь слово ПЕТУХОВЕН. Под шконарем слушал радио классику? Такой смешной.
539 1594674
>>94670
Туда ли ты зашел, петушок?
Зачем сидишь на двачике, ньюфажик? С коллегами общаться не в состоянии, они неспособны понять твой ОБВМ?
38225a.jpg67 Кб, 500x651
540 1594677
541 1594678
>>94674
С коллегами я на работе общаюсь, а на двачиках\ментачиках\сосачиках\педаликах я уже лет 12 сижу.
Но ты смешно проецируешь.
542 1594680
>>94678
С коллегами я на работе общаюсь, а на двачиках\ментачиках\сосачиках\педаликах я уже лет 12 сижу — раздался пронзительный голос со стороны параши.

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

Петух — не человек, и сегодня ему предстоит очень трудная ночь. У него уже в течение полутора лет каждая ночь была очень трудной, и теперь его анус был разработан настолько, что он без труда мог спрятать в нём банку сгущёнки.
543 1594684
>>94680
Спасибо, насмешил. Клоунада - это твое, в отличии от С++.
544 1594685
>>94684
«В отличие от», безграмотный школотунчик с ЧСВ.
545 1594688
>>94685
Доебы до орфографии! Отлично! Что же еще меня ждет этом восхитительном диалоге?
546 1594689
>>94688

>Доебы до орфографии!


Ты точно туда зашел, петушок?
547 1594694
>>94689
Тюремная тема? Ну, отлично. Я смотрю ты много о петухах и их жизни знаешь. Батя сидел, или сам по малолетке?
548 1594729
>>94496

>сколько страшной ебли было бы на си


Берёшь блас с лапаком и не паришься.
549 1594734
Не забывайте ребятки, что тюремную культуру принесли русские евреи незадолго перед революцией. Если вы куколды и гои, то окей хуле.

>>94574
А вообще хочется разработать такую же игру, примерно. Тут огромный простор для творчества, на самом деле. Вот в мажонг не попадешь, да и они сами на жава пишут. Вот интересно, есть идеи у тебя какие либо?
я думаю в майнкрафте мало экшена и реального выживания, думаю может что-то похожее запилить.
550 1594735
>>94734

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


Именно поэтому пидарашки в любом закрытом коллективе устраивают анальную иерархию, а в израильской армии дедовщина отсутствует, как класс, лол.
551 1594738
>>94735
А ты кто, хохол?
552 1594740
>>94738
Б-г миловал.
553 1594742
>>94734
Зачем вообще с нуля разрабатывать свой движок и потом на нем еще и игру? Есть UE, Unity, не хочу, хочу жрать говно и пилить свой велосипед.
554 1594743
>>94742
Это достаточно неплохой образовательный проект.
555 1594749
>>94648
лол, какие же костыли все-таки
557 1594759
>>94729
А чтобы оно мне само ещё и распараллелило? А вдруг видеокарта будет, и можно будет на ней посчитать?
558 1594774
Через что лучше пердолить Qt, а конкретно QtWidgets, книги или документация с примерами?
И ещё вопросик такой, что обычно означает в вакансиях: «знание Qt (QtWidgets/QtCore)»? Умение применять в реальных проектах?
Безымянный3.png35 Кб, 1729x806
559 1594788
Удалил .cpp файл, программа не определяет функцию, как виртуальную. Что делать?
560 1594794
>>94742
Так весь кайф с нуля.
561 1594803
>>94788
Я дебил, уже понял.
562 1594867
>>94774

> Через что лучше пердолить Qt, а конкретно QtWidgets, книги или документация с примерами?


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

> И ещё вопросик такой, что обычно означает в вакансиях: «знание Qt (QtWidgets/QtCore)»? Умение применять в реальных проектах?


Ты понимаешь, как работает мемори менеджмент в qt, сигналы\слоты, moc, uic, как рисовать гуй, как наследуются\переопределяются методы в qt и так далее.
563 1594868
>>94788
Зачем тебе МАСТЕР КЛАССОВ? Пиши все это руками лол, 3.5 строчки
564 1594870
>>94749
Винда-с.
565 1594881
>>94788
А где почитать вот про эту модульность, где классы в хедерах и отдельных cpp файлах реализуются, как они с главным файлом стыкуются и т.д.? А то я только маленькие делал пока только программы.
566 1594885
>>94881
В любой книге по C/C++, модульность в Си очень примитивная на уровне препроцессора ее нет.
567 1594893
>>81140
блять, а мне 80-летний препод на первом курсе говорил все что можно, даже небо, даже аллаха, по ссылкам передавать, чтобы память экономить, ну охуеть блядь, пойду читать.
Мимодругойанон
568 1594909
>>94885
Похоже, что не в любой, учитывая, что я не знаю как это делать.
569 1594912
>>94893
void foo(std::string name)
{
...
}

void bar()
{
string str;
foo(std::move(str));
}

80-летний дед то про это поди не рассказывал?
570 1594914
>>94788
МАСТЕР КЛАССОВ?

Первый раз такую хуйню вижу.
571 1594916
>>94909
Ну гугли #include, #pragma once, вот это все.
572 1594918
>>94604
Последнее, если надо, если есть задача обоснованная, например, если у тебя железка какая-нить голая без ведра линуксовского, то делаешь и не выебываешься.

Бля, поставят задачу - написать линкер свой на работе - не думаю, что у нас кто-то скажет "ОХУЕТЬ КАК СЛОЖНА, ЭТО МЫ НЕ СМОЖЕМ".
573 1594919
>>94885
Ну расскажи нам, что такое модульность.
574 1594942
>>94919
Модульность это когда ты можешь просто, без задней мысли, импортнуть нужный модуль, очевидно же. Без сайд-эффектов на остальные включаемые модули, с инкапсуляцией объектов в каждом модуле. Как в жабе и Питоне.
575 1594976
>>93989
Дополнили немного тз: разрешено использовать только сдл2.
Я сделал небольшую заготовку и у меня возник вопроса, я сделал управление таким образом(на пикче), но у меня нельзя одновременно двигать обе платформы, только 1, как решить эту проблему?
Screenshot1.png16 Кб, 590x402
576 1594977
>>94976
Отклеилось
577 1594989
>>94977
Ну покежь, что у тебя в enableMoveUp/Down
578 1594994
>>81135
У меня на собедовании как-то кандидат инт по ссылке передавал с таким же объяснением.

Написал "не знает С++" в фидбеке.
Screenshot2.png24 Кб, 740x581
579 1594999
>>94989
Там enableMoveUp() { moveUp = true; }
А вот реализация самих методов
Screenshot3.png25 Кб, 708x542
580 1595002
>>94976
Всё, решил проблему вот таким методом
581 1595005
>>94999

> countUp


> countDown


што
582 1595011
>>95005
Это чтобы платформа двигалась быстро, но плавно
изображение.png14 Кб, 601x451
583 1595021
>>94742
Майнкрафт требует специфичного движка, у тебя куча кубов, которые даже в массиве нельзя хранить по нормальному и нужно в чуть ли не прямо в сжатом виде обрабатывать. Хранить кубы как объекты с разными виртуальными методами для камня и сундука не получится. Помимо этого графон там простой без эффектов, и ещё там нереальное количество специфичной геометрии без lod-ов. Движок почти ничего не даст, а если он делает какую-то дополнительную обработку, пытается геометрию разбить по дереву для оптимизации, то он утонет - по сути ты будешь писать всю механику без движка, а движок использовать лишь на 5% для создания окна, обработки мышки, и вывода меню и других элементов интерфейса. Оверкилл, в общем.

>Unity


>не хочу хочу жрать говно


На ноль поделил, кстати. Посмотри игры на юнити, даже очень простые игры вроде робокрафта лагают как не в себя, хотя выглядят на уровне 2005 года. Ksp и cities:skylines имеют утечки памяти и имеют проблемы с производительностью в очень странных местах (в cities:skylines например фпс увеличивается в два раза при скрытии интерфейса - то есть вывод двух панелек с текстом и цветными кнопками занимает ресурсов больше, чем рендер крупного района города).

>>94734

>есть идеи у тебя какие либо


Нету.
Когда я когда-то очень давно играл в бету 1.5_01, я заблудился в пещерах и 8 часов искал выход переставляя факелы. Потом ещё метки на стенах рисовал (выкладывал из цветной шерсти), чтобы можно было ориентировать в пещерах. Это был самый интересный опыт игры. На что мне ребята сказали, что я глупый и нужно было просто проход наверх прокопать.
Вот мне кажется тут самое интересное что можно сделать - убрать возможность так просто копать унылые блоки, и добавить больше глубины в мир и более сложную организацию пещер. Когда ты заблудился - это перестаёт быть игровой условностью, потому заблудился ты сам, а не персонаж - и никакие "нарисованные" уровни или хорошая экипировка тут не помогут. Вот сделать что-то как на картинке по сложности, только объёмное, чтобы можно было месяц реального времени искать выход, если заблудился и всё развитие и геймплей сделать внутри этих пещер с конечной целью найти выход.
изображение.png14 Кб, 601x451
583 1595021
>>94742
Майнкрафт требует специфичного движка, у тебя куча кубов, которые даже в массиве нельзя хранить по нормальному и нужно в чуть ли не прямо в сжатом виде обрабатывать. Хранить кубы как объекты с разными виртуальными методами для камня и сундука не получится. Помимо этого графон там простой без эффектов, и ещё там нереальное количество специфичной геометрии без lod-ов. Движок почти ничего не даст, а если он делает какую-то дополнительную обработку, пытается геометрию разбить по дереву для оптимизации, то он утонет - по сути ты будешь писать всю механику без движка, а движок использовать лишь на 5% для создания окна, обработки мышки, и вывода меню и других элементов интерфейса. Оверкилл, в общем.

>Unity


>не хочу хочу жрать говно


На ноль поделил, кстати. Посмотри игры на юнити, даже очень простые игры вроде робокрафта лагают как не в себя, хотя выглядят на уровне 2005 года. Ksp и cities:skylines имеют утечки памяти и имеют проблемы с производительностью в очень странных местах (в cities:skylines например фпс увеличивается в два раза при скрытии интерфейса - то есть вывод двух панелек с текстом и цветными кнопками занимает ресурсов больше, чем рендер крупного района города).

>>94734

>есть идеи у тебя какие либо


Нету.
Когда я когда-то очень давно играл в бету 1.5_01, я заблудился в пещерах и 8 часов искал выход переставляя факелы. Потом ещё метки на стенах рисовал (выкладывал из цветной шерсти), чтобы можно было ориентировать в пещерах. Это был самый интересный опыт игры. На что мне ребята сказали, что я глупый и нужно было просто проход наверх прокопать.
Вот мне кажется тут самое интересное что можно сделать - убрать возможность так просто копать унылые блоки, и добавить больше глубины в мир и более сложную организацию пещер. Когда ты заблудился - это перестаёт быть игровой условностью, потому заблудился ты сам, а не персонаж - и никакие "нарисованные" уровни или хорошая экипировка тут не помогут. Вот сделать что-то как на картинке по сложности, только объёмное, чтобы можно было месяц реального времени искать выход, если заблудился и всё развитие и геймплей сделать внутри этих пещер с конечной целью найти выход.
584 1595048
Кто-то рендерил цифры в SDL2? Можете показать как вы это делали?
585 1595074
>>94912
Если строку не хранишь потом, то ты только что пустил жиденького в кодовую базу
586 1595163
>>94912
неа, не рассказывал
587 1595192
>>95074
Почему?
588 1595197
>>95021
Охуенно про майнкрафт расписал, действительно не хватает какого-то приключения, в котором ты не чувствуешь себя всемогущим.
589 1595318
>>94559

> Не вижу никакой причины не захуярить JVM прямо в драйвер.


Бля, какие же сука Васяны в треде сидят, каждый раз ахуеваю.
590 1595332
>>94604
О узнал нвидия-куна. Так ты все таки драйвера пишешь. Так и знал.
591 1595388
>>94742
Движки идут во-первых с оверхедом ненужного тебе, во-вторых нехватающие технологии тебе все равно самому дописывать, в-третьих, они своими интерфейсами навязывают свой стиль кодинга, который может тебе не подходить.
592 1595391
>>94614
В чем проблема использовать RAII без исключений? Условно говоря, в конструкторе проверяешь открылся ли файл, в деструкторе закрываешь.
593 1595399
>>95332
Раньше драйвера писал, сейчас я одновременно на трех проектах, еще четвертый подсунуть хотят, и сбоку тыкают, чтобы ресерчил какую-то неведомую хуйню. Весело, короче.
594 1595400
>>95048
У тебя есть два варианта, первый посмотреть как делается вывод SDL_ttf. Второй - просто рендерить картинки цифр. Вообще говоря, даже не обязательно картинки, их можно рисовать толстыми линиями-прямоугольниками, которыми ты рисуешь платформы.
595 1595420
>>81135
Сейчас компеляторы умные стали, сами оптимизируют многое, поэтому на всяких конференциях советуют почти все передавать и возвращать просто по значению.
596 1595505
>>95318
Васян здесь только ты, типичный пидорахен-вайтишник, не способный создать ничего принципиально нового. А люди, которые не ставят себе искусственные ограничения — делают.
https://dl.acm.org/doi/10.1145/1408654.1408657
597 1595507
>>95391
Использовать можно, где профит?
Без исключений RAII удобен, не более того.
С исключениями он меняет весь стиль программирования.
598 1595508
>>95399
Охренеть, ты и дома до ночи сидишь пишешь/читаешь что-то?
599 1595510
>>95420
Сейчас бы полагаться на оптимизации компилятора в продакшене.
600 1595514
>>95508
я прямо сейчас (в субботу, ага) сижу и тестирую говно, написанное в пятницу, т.к. задачек сильно больше, чем времени.

Ну, из хороших новостей лишь то, что в этом году скорее всего запромоутят до Senior II, ради этого и потею.
601 1595516
>>95514

>в этом году скорее всего запромоутят до Senior II, ради этого и потею


Никогда не понимал такой хуйни.
602 1595517
>>95516
Это буквально ирл левел-ап.
603 1595519
>>95516
В переводе на русский - +70-90 тысяч к зарплате, которая и так охуевшая.
604 1595523
>>95517
>>95519
Ну, лично я левел-ап получал образованием, тянки добился, гранты всякие, проекты известные, устроился на работу, на которую всегда мечтал. Но чисто бабло? Вообще никаких эмоций не вызывает. Если бы меня интересовало бабло, я бы менял компании каждую пару лет, наверное.
605 1595526
>>95523
Я много вещей делаю параллельно. Лучше иметь +бабло, чем не иметь.
606 1595528
>>95526
Ну хуй знает, добиваться лычек в какой-то компании это не самый эффективный метод для зарабатывания бабла, тем более потеть ради этого.
607 1595529
>>95528
Аххха, ну давай, поучи нвидиа-куна эффективно зарабатывать бабло, лол.
608 1595532
>>95528
С моей зарплатой чисто теоретически уже не возможно "сменить контору", прыгнув на более высокий рейт. Единственный вариант - сьебывать в США, чего я пока не хочу.

По-этому расту вертикально и медленно. Но, анивей, чем выше твой грейд - тем интереснее задачи. Чем интереснее задачи - тем больше бизнес-импакт компании, обычно. И так далее.

Короче, меня текущее развитие событий устраивает. Если все пойдет как надо - перешагну 550к в месяц.
609 1595535
>>95505

> В этой статье мы предложили модель безопасного драйвера устройства для ОС Linux


> ОС Linux


Дальше не читал. Можешь не продолжать, у тебя нулевой уровень экспертности.
610 1595538
>>95529
Не проецируй, маня.

>>95532
Ну так ты ограничен таким вертикальным ростом из-за решений, которые принял до того, очевидно же. Я предпочитаю, когда у меня много опций. Если меня прямо сейчас заебет хайтек, то легко съебу на постдок в любую страну, например. Заебет писать под Линукс — буду писать под винду в своей компании или в другой. Заебет программирование — уйду в академию. Мне психологически важно иметь возможность послать все нахуй в любой момент.
611 1595539
>>95535
Можешь не продолжать, у тебя нулевой уровень экспертности — раздался пронзительный голос со стороны параши.

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

Петух — не человек, и сегодня ему предстоит очень трудная ночь. У него уже в течение полутора лет каждая ночь была очень трудной, и теперь его анус был разработан настолько, что он без труда мог спрятать в нём банку сгущёнки.
612 1595540
>>95539
Посоны, ПЕТУХОВЕН вернулся!
613 1595542
>>95535
>>95540
Мне вот интересно, насколько сильным должен быть эффект Даннинга-Крюгера у человека, чтобы считать, что я не видел, что в статье речь идет о Линуксе, а не о винде? Тупое одноклеточное, блеать.
614 1595544
>>95538
Я искренне рад за тебя, что у тебя есть такая свобода. Меня NV полностью устраивает вообще всем, по-этому смысла менять нету.
615 1595546
>>95544
А если уволят тебя?
616 1595550
>>95546
Смысл увольнять достаточно хорошего инженера, по меркам конторы?

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

За 12 лет я уж задрочу литкод достаточно, для оффера из гугла\фейсбука и прочего топа.
617 1595553
>>95550

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


Ты серьезно? Тупо упадет акция, закроют направление / офис в Рашке / еще овер9к вариантов. Компании такого масштаба увольняют людей десятками тысяч, и тогда не до разборок, кто хороший инженер, а кто нет.

Понятно, что не пропадешь, я больше в психологическом плане на такие вещи смотрю, т.к. меня самого увольняли не раз и не два.
618 1595555
>>95553
1 раз было общее снижение зарплаты по всей конторе на год, потом это опционами выдали. Прям сокращений - не было вообще, в Московском офисе.

Ну и да, судя по тому, как яндекс мне письма любви написывает на почту и линкедин нонстопом - точно не пропаду, даже если не захочу 12 лет сычевать дома.
619 1595563
>>95555
Кстати, ты, наверное, разбираешься.
Компания "Код Безопасности", сколько могут платить в такой?
Когда-то очень давно звали туда, а я подумываю о том, чтобы поработать в Рашке, если уж подался назад в хайтек.
Вот на такую позицию, скажем:
https://www.securitycode.ru/company/hr/vedushchiy-programmist-c-c/
620 1595567
>>95563
Вангую ~250 потолок.

Иди лучше к нам - https://hh.ru/vacancy/35113629
Тут реально ~300к на руки, плюс акций пакован.
621 1595573
Анончики, уважаемые. Подскажите пожалуйста Я C++ не изучаю, мне просто надо подкорректировтаь одну прошивку., что значит:

dval &= ((1 << PWRES)-1);
dval >>= PWRES - timer_cfg.duty_resolution;

Допустим, как я понимаю, PWRES = 1024. Могу ли я получить dval = 1024? Суть в том, что при этой конструкции максимальный dval = 1023, а мне надо чтобы был 1024, как это сделать?
622 1595576
>>95567
Выглядит неплохо, спасибо проиграл со start of the art, лол.
Я в этом году точно не уйду со своей РАБотки, разве что мне все руководство разом на голову сядет, потому что жутко интересно пока, и не сгорел еще.
Если хочешь в будущем быть на связи, ну и не терять возможность получить профит с референса кандидата, если у вас такое практикуется, то черкани на m/FIkANUSdel|#ePUNCTUMsCbAu.
Блин, если бы норм ваканси были и в ДС2, а не только в ДС, то я бы даже жену легко уговорил на переезд, наверное.
623 1595582
>>95573
PWRES это число бит.
Скажем PWRES=5.
Первая строчка обнуляет все биты в dval, кроме нижних пяти.
Вторая делит на 2, (PWRES - timer_cfg.duty_resolution) раз.
Насколько я понимаю, PWRES это резолюция чего-то одного, там низкая частота, а у таймера более высокая частота.
Так что, как минимум, PWRES это не 1024, ну а дальше сам выведешь, что надо, думаю.
624 1595585
>>95567

> BS or MS in EE, CE, CS, Systems Engineering


Сразу нахуй.
625 1595587
>>95585
Это не для вас написано, молодой человек.
626 1595590
>>95587
Я и говорю, сразу нахуй.
627 1595666
Как оно там, сидеть и компилировать хуево тучу часов какой-нибудь файрфокс и жарить яйца на процике?
628 1595672
>>95567
Я вот много раз видел эту сеньорскую вакансию на ххру, но ты вроде как-то писал, что и джуна можете взять, я ж верно помню?
629 1595676
>>95672
Джуна прогера - нет.

Джуна паковать игры для Geforce now (какая-то такая хйуня есть вроде) - да, это Junior Gaming Engineer. Но с нее дальше в кодинг перекатиться реально.

>>95576
Будет надо - дай клич в С++ треде, и я появлюсь, кек
630 1595677
>>95676

>Джуна паковать игры для Geforce now (какая-то такая хйуня есть вроде) - да, это Junior Gaming Engineer. Но с нее дальше в кодинг перекатиться реально.


А что для этого требуется, из знаний?
631 1595681
>>95677
https://hh.ru/vacancy/35332731

Оверолл - еще надо уметь в игры, понимать как работает прости господи СТИМ, ИГРЫ В СТИМЕ, ДЕНУВО, АНТИЧИТЫ. Мам, я не в игы играю, я к собесу в нвидию готовлюсь, лул
632 1595683
>>95681
блин вабще кайф, хочу туда
633 1595684
>>95676
И скока там можно ожидать?
634 1595688
>>95684
Вангую что-то в духе 90-120 + 3.5 акции, это реально энтрилевел.
15804114652600.png433 Кб, 700x527
635 1595701
Товарищи крестовики, посоветуйте литературу. Хочу по современному стандарту пройтись, с захватом 20. И что-нибудь не похожее на справочник. Почитал какую-то книгу в духе строгого справочника по языку и нахуй послал этот ад. Даже раст так не выбешивал. Пусть там будет хоть 1к страниц, не вопрос. Главное, чтоб жутко скучно. Хотя бы терпимо.
Александреску может? Или все-таки Страуструп?
636 1595702
>>95688
А в ИБ в Рашке нет норм зарплат?
Кроме дяди Жени если.
637 1595704
>>95576
Двачую.

Может кто-нибудь подкинет контактики годных галерок ДС-2?
638 1595705
>>95701
*не жутко
639 1595708
>>95701
Очевидный Modern Effective C++ же.
640 1595710
>>95702
Я кроме дяди Жени не знаю никого, кто хоть как-то платит и занимается интересными вещами в области ИБ.
641 1595718
https://isbn.directory/book/9780135953396

Не могу понять, книга вышла уже? Если да, то где можно купить?
642 1595721
>>95718
Похоже, что нет.
Если тебе основы только, то 5-го издания в любом случае за глаза хватит.
643 1595741
>>95688
>>95681
Анон, а резюме на английском кидать? Что лучше написать чтоб взяли?)) Могут вабще рассматривть резюме замкадыша? Где жить в москве найду
644 1595757
>>95741
На русском норм.
Что написать, ну кроме дефолтного содержания резюме, что ты ИГРУЛЬКИ любишь, наверное.
Замкадышей рассматривают, и даже если нужно face2face интеврью - оплачивают билеты и гостиницу на денек.
645 1595766
>>95757
А как в Нвидии относятся к Линуксу/Линусу после его знаменитого фак-ю? Поменялось ли что-то в корпоративной культуре в плане открытой документации?
646 1595768
>>95766
Я видел, что парни выкладывают потихоньку документацию к GPU на гитхаб, да и драйвера проприетарные работают. Но какой-то интернал инфы у меня нет абсолютно.
647 1595928
>>95701
Professional C++ programming 4th edition и сверху какого-нибудь джосуттиса
Screenshot4.png4 Кб, 481x103
648 1595944
Есть ли какая-то разница между подобным принятием аргументов, если я потом в списке инициализации сделаю std::move() ?
649 1595949
650 1595951
>>95701
С захватом 20 хз. Вот из последнего:
C++17 - The Complete Guide
C++ 17 STL Cookbook
C++ Templates The Complete Guide
651 1595959
>>95949
Извини, не понял, в каком случае эта идиома? И как вообще лучше делать?
652 1595961
>>95959
Лучше делать так, как надо в контексте твоего кода, о котором ничего не известно.

При помощи copy-and-swap, или unique_ptr&& ты передаешь ВЛАДЕНИЕ обьектом куда-то. Если тебе не надо передавать владение, тогда просто референс передавай (возможно константный).

Если мы говорим о разнице между unique_ptr и unique_ptr&& - то ее тут, фактически нет, потому-что оно не копируемо. Если бы оно было копируемо - там были бы нюансы. В твоем кейсе - разницы фактической нету между unique_ptr&& и unique_ptr как аргументом функции
653 1595963
>>95961

> разницы фактической нету между unique_ptr&& и unique_ptr как аргументом функции


Ну вообще, когда стоит && хуй его знает, что там будет с объектом. Может его переместят, а может и не переместят. Лучше в таких случаях по значению принимать.
654 1595964
>>95963
когда стоит && будет ошибка компиляции, если аргументом выступает не rvalue ссылка (или prvalue, если ты эстет)
655 1595974
>>95964
А ну да, перепутал с universal references
656 1596011
>>95961
Спасибо
657 1596151
Погромист 1 курса на связи, можно ли в таблице ASCII в выбранной кодировке заменить конкретные символы на свои, в идеале загрузить их как массив пикселей?
658 1596155
>>96151
Если речь о работе в текстовом режиме, как олды, то да, а так вопрос лишен смысла.
659 1596161
>>96155
Да, в консольном. Мне надо заметь несколько символов либо на символы из юникода(всю программу переписывать под юникод лень), либо поменять где-то файлы, можно даже через код.
660 1596162
>>96161
заменить*
661 1596190
>>96161

>Да, в консольном.


Я не об этом писал, но зумерам не понять.
662 1596201
>>96161
Кто тебе позволит где-то файлы менять? Ни препод, ни админ на работе не позволит. Нормально делай.
663 1596369
Появился ещё 1 вопрос по SLD, когда я сворачиваю окно начинается утечка памяти, когда разворачиваю обратно, но память стабилизируется и удаляется лишнее. Как это пофиксить?
664 1596727
Как реализованы корутины? Какие системные механизмы используются для их реализации?
665 1597016
>>96727
Загугли, гений.
Снимок.PNG43 Кб, 653x506
666 1597024
Существует простой способ удалять из консоли то, что ты напечатал, а затем выводить снова строкой ниже с сохранением введенных данных и возможностью их редактирования?
667 1597042
>>97024
Простого нет, придётся городить свой ввод через какой-нибудь getch(), и перерисовывать/затирать текущую строку символами \b и пробелами.
668 1597053
>>97042
Ну и хуй с ним значит.
669 1597054
>>97024
Да, ffmpeg же как-то делает.
conio.h и его менее пожилые последователи.
670 1597081
>>97024
Может быть это не то, что ты имеешь в виду, но \r\n означает carriage Return и New line, соответственно, если вывести только \r, то перевода строки не произойдет, а курсор окажется в начале строки, и ты можешь выводить текст поверх старого.
671 1597100
>>97081
Нет, тут ситуация такая: пока пишешь сообщение/команду, может прийти пакет от сервера и записаться посередине ввода.
672 1597239
Здесь задают тупые вопросы? Можно ли создать простенькое интерактивное меню в консоли без чистки всего экрана system("cls") и повторного вывода всего при каждом мелком изменении? Если знаете где об этом подробно написано то скиньте ссылку. Заранее благодарен. Если этот метод будет пригоден для создания змейки, тетриса, понга и шашек то вообще заебись.
673 1597246
>>97239
ncurses/pdcurses
sage 674 1597363
>>97016
Гуглится только абстрактный щиттолк, а лезть в исходники буста мне лень, да и вникать там муторно. А мне нужен лишь список правильных винапи и спецификация.
15723753740901.png61 Кб, 270x186
676 1597423
Сап программач, помогите нубу. Есть два файла: "A.h" и "A.cpp". К ним нужно подключить "B.h". Его нужно к .h или .cpp подключать?
677 1597433
>>97423
Если используется в а.h то туда, если только в срр то туда.
678 1597457
Может кто помочь с написанием мейкфайла? Там вопрос плёвый для знающего, срочно нужно и не получается никак
679 1597458
>>97457
Сгенерируй
680 1597465
>>97457
Где вопрос бля?
Безымянный.png126 Кб, 772x587
681 1597474
>>97458
У меня есть 3 директории: в одной лежат общие файлы из которых я делал .lib в VS, а в двух других Source.cpp с мейнами, пытался изменить мейкфайл с хабра и не вышло, говорит, что нет файлов
682 1597480
>>97474
Бля, там OBJECTS поменял еще на SERVER/CLIENT соответственно
683 1597483
>>97474
Мейк гонял давно, но по идее у тебя префикс только к первому имени приклеивается. И какой смысл зависимости цели servermake от, например, utilities.cpp?
684 1597488
>>97483
По сути все хедеры из папки SockNet в итоге есть в SockNet/SockNet.h, а он уже инклудится в Server/Source.cpp и в Client/Source.cpp
685 1597489
>>97483
А, я тебя понял про первое имя, ща попробую что-то сделать
686 1597492
>>97489
Не собираеца..
687 1597508
Анончик, нужен твой совет. Хочу выкатиться из веба в системщину и прочее байтоебство. Вопрос в том, куда вкатываться. Есть плюсы и есть раст. Работы на первом больше, на втором вообще ничего не видно(по крайней мере в России). Но слышал, что со временем будет, но и набирать они скорее всего будут бывших крестовиков. Даже читал блог, крутого разраба из гугла, где он не советовал писать новый код на плюсах. Поэтому немного в сомнении. Насколько сейчас перспективно вкатываться именно в плюсы?
688 1597516
>>97474
Аноны с линуксом, может кто помочь скомпилить код? У меня по заданию должно собираться на линуксе, я конечно дефайнил всякие вещи для совместимости, но проверить нужно, а виртуалку сейчас накатывать заебусь - очень слабый ноут
689 1597520
>>97516
Ну так накати продсистему linux в windows
690 1597529
>>97474
Говняный какой-то мейкфайл, еще и синтакс уровня говна мамонта.
Не буду помогать тебе.
691 1597534
>>97508

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


Без описания цели разработки, это вообще ни о чем.
Ну а дрочить на лычки в 21-м веке тем более моветон.
Снимок.PNG21 Кб, 626x375
692 1597535
>>97529
Я первый раз вообще такое щупаю.. Подправил, но все равно не работает :(
693 1597540
>>97534

>Без описания цели разработки, это вообще ни о чем.


Как я понял, речь шла вообще о любом новом проекте за парой исключений. Не хочу спорить на эту тему, просто насторожил его пост.
https://cliffle.com/blog/prefer-rust/
сама статья, если интересно
694 1597572
>>97540

>Prefer Rust to C/C++ for new code


>inside the firmware community


Ясно.
Он может нахуй пройти.
Я у себя в компании Rust отсеял уже на уровне хакатона.
То есть мы хотели во время хакатона проверить соответствие Раста на уровне какого-нибудь близкого к железу POC, и уже на этом этапе быстро стало ясно, насколько он неадекватен для таких задач.
Ни библиотек нет, нихуя.
Наху пусть идет этот фанбой.
695 1597604
Помидоры на месте?
Дано:
struct A
{
using MyTypes = std::tuple<int, char>;
}
struct C : A {}

Нужно внутри C определить MyTypes, который был бы конкатенацией двух std::tuple. Если бы у меня был буст и вместо tuple был mpl::list<>, то я бы это через mpl::joint_view написал. А с tuple хз как.
struct C : A
{
using MyTypes = /std::tuple<int, char, long, Person>/;
}

Можно попробовать через tuple_cat, но что-то мне не очень нравится количество decltype и declval.
696 1597607
>>97604

> конкатенацией двух std::tuple


*Того, который в A, и своих каких-то типов.
697 1597623
>>97516
Всё ещё актуально, пожалуйста, кто-нибудь

3 гб оперативки, прямо сейчас убунта повисла на установке в виртуалбоксе сегодня последний день
698 1597626
>>97623
Дебилушка, ты ведь даже код не выложил. Алсо, убунту бы поставил как вторую систему, вышло бы быстрее и производительнее
699 1597630
>>97626
Я не хочу в тред кидать, хочу связаться в телеге или ещё где-то
700 1597644
>>97630
А, ну тогда иди нахуй, сорри
701 1597650
>>97644
За что блять
702 1597656
>>97650
Ну а хули ты всё в последний день делаешь?
Я тебе сразу говорил, сгенерируй. Загугли утилиту вроде vcxproj to makefile или напиши cmakelists.txt и перегони в makefile (хотя тебе походу cmake и нужен, лол)
703 1597660
>>97656
Я делаю это почти неделю уже, сокеты не знал абсолютно. По заданию мейкфайл надо именно написать, а не сгенерировать, и я гуглил, такие есть, но но на старые версии VS
704 1597667
>>97660
Не пиши сложный мейкфайл. Напиши простой, без общих правил и переменных.

all: server client

server: server1.o server2.o
[tab]gcc -o server server1.o server2.o

server1.o: server1.cpp server1.h
[tab]gcc -c -o server1.o server1.cpp

Нутыпонел.
705 1597721
>>81531
cout << static_cast<Matrix>(m. transpose())....
706 1597731
>>76737 (OP)
Анчоус, есть книга С++ для чайников, Стефан Р. Девис 2007 года, нормально, просто в свое время поккупал печатное издание, с тех пор и лежит
707 1598005
C++20 coroutines чем они отличаются от std::async?
708 1598151
>>98005
std::async - это обертка на тредом, возвращающая фучуру.
Корутины - это вообще абсолютно другое
709 1598254
>>98151

>Корутины - это вообще абсолютно другое


Объясни вкратце.
710 1598261
>>98254
Я сам нихуя не понимаю из всех обьяснений.

Т.е. на уровне "ЭТО ФУНКЦИЯ, КОТОРАЯ ИМЕЕТ СТЕЙТ И МОЖЕТ ВОЗВРАЩАТЬ НЕСКОЛЬКО РАЗ" - я понимаю. Уебищные примеры с питоном и его генераторами - я понимаю.

Он когда начинается co_await - все, выносите меня ногами вперед. Но да, я еще сильно не раскуривал эту тему, а надо...
711 1598290
Аноны, как реализован substr?
Я вот тут делал и ничего умнее не придумал как выделить строку и просто перекопировать элементы. Может есть способы как весь участок памяти скопировать?
712 1598291
>>98290
memcpy?
713 1598292
>>98261
У Таненбаума в "архитектуре компьютера" очень компактное и доступное объяснение с картинками для даунов, только там корутины называются сопрограммами.
714 1598295
>>98291
Спасибо, почитаю
715 1598296
>>98292
Я перефразирую свой высер. Я понимаю, что такое "просто корутина, yield, и тд". Я не понимаю, как к этому относится co_await, и где там какая-то волшебная кооперативная многозадачность.

Надо на C++ Russia сходить, там Гор Нишанов заяснит.
716 1598306
>>98291
как такое вообще реализуют? Такое копирование прям на уровне ядра сделано и нельзя реализовать самому?
717 1598332
>>98261
Насколько я понял корутины асинхроны, но выполняются на одном треде. И если ты вызываешь внутри корутины другую корутину, то тебе нужно использовать co_await, чтобы подождать пока она вернет что-нибудь.
718 1598352
>>98332
Я вызываю функцию внутри другой функции, и жду пока функция вернет чето. Чем это отличается от co_await? И причем, блядь, тут корутины, учитывая что это лишь функция со стейтом.

>>98306
Копирование элементов - это стандартный процессорный mov(и его деривативы, типа movq) - фактически. Положил кусочек строки в регистр из памяти. Потом из этого регистра положил в другой кусочек памяти.

В случае строк - ты можешь копировать от 1 байта за такт до 64 (при каком-нибудь адовом AVX512.
719 1598360
>>98352
Регистр? Я думаю что контролер умеет копировать данные без этого.
Операция явно распространенная и засирать кэш и занимать регистры нет практической надобности
721 1598367
>>98360
http://www.club155.ru/x86cmd/MOVSB хотя не, можно еще так
722 1598368
>>98361
Так себе пруф. В ПК куча устройств вроде дисков которые работают в режиме DMA.
723 1598369
>>98368
DMA - это совсем другое, тут срач про копирование строк в памяти
724 1598373
>>98369
Тут нет никакого срача. Я это как пример необязательности PIO для манипуляций в ОЗУ.
725 1598376
>>97604
Бамп
727 1598428
Анонче, тут немного упоротый вопрос.
Кто-нибудь курил Android NDK?
Нужно по работе пилить приложение для ведра, а, значит, осваивать котлин.
Но уже есть знания плюсов, получится ли полностью на этом NDK бахнуть приложение или там урезанный функционал плюсов и/или старый стандарт?
Где-то я нашел инфу, что на c++ можно только требующие скорости места писать, хотя Android Studio предлагает сделать проект только на них.
728 1598431
>>98426
Элегантно. Я продумывал способ со сверткой, т.е. поэлементно цеплять к новому tuple типы, что больше времени потребовало бы.
729 1598456
>>98428
У меня коллега запилил как-то на кюте блютус пульт управления под андроид, может там это проще:
https://doc.qt.io/qt-5/android.html
730 1598521
>>98369
Смотри что нашел

>Как вы правильно указали, DMA_MEMCPY следует использовать для выполнения копирования RAM-to-RAM. Это описано в Documentation/dmaengine/provider.txt . Вот только соответствующий отрывок, пожалуйста, смотрите весь файл для получения более подробной информации:



https://codengineering.ru/q/kak-perenesti-dannye-cherez-dma-iz-operativnoy-pamyati-v-operativnuyu-pamyat-58776/
731 1598556
>>98426
Спасибо, нвидия-кун.
732 1598584
>>98556
эх, скинул вам свою потешную резюмешку, думаю не возьмут, лол. На хедхантере написано что менеджер чекает только 36% резюме. Чому так?
image.png192 Кб, 421x583
733 1598612
Нормальные люди так делают?
736 1598618
>>98612
std chrono
boost posix_time
QDateTime

Но ты умнее всех.
737 1599121
>>98612
Нормальные люди на английском комментарии пишут
738 1599175
>>98612

> ПрДатаРожд



1C-бабуин не палится
739 1599424
>>98352
Корутина - это функция, которую можно ставить на паузу. Ко- в том плане, что две таких корутины могут работать одновременно. Одна поработала, недоделала, вторая поработала, недоделала, вернулась в первую, первая доделала, вернулась во вторую, доделала.
740 1599509
Перекат моча удалила что ли?
741 1599565
>>98428
Заипешься отлаживать.
742 1599589
>>99509 Бамплимит в тематике 1000 постов.
743 1599597
>>99121
То есть когда одни русские люди пишут комментарии для других русских людей в проекте, который уж точно никогда не покинет рашку, на ломаном и одним им понятном английском - это нормально?
744 1599601
>>99509
Нет, он какой-то левый номер указал просто.
>>1598511 (OP)
Тред утонул или удален.
Это копия, сохраненная 5 апреля 2020 года.

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

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