Программирование


Ответить в тред Ответить в тред

<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
453 40 142

C++ №82 /cpp/ Аноним 05/02/19 Втр 19:45:01 13424421
.png (33Кб, 225x225)
225x225
Аноним 05/02/19 Втр 20:01:22 13424542
Работающие аноны, а какой продукт вы разрабатываете на плюсах, какой у вас стек?
Аноним 05/02/19 Втр 20:48:33 13424783
>>1342454
Около-виртуализацию пишем самопальную, Виндовс 10\2016, Вижуал студия самая последняя, Виндовс драйвер кит, решарпер\всякие разные ништяки по желанию. С++17 разрешен и активно используется.

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

05/02/19 Втр 21:06:54 13424824
SAGE

Тред уже был, хоть и кривой >>1339902 (OP) .
Хватит плодить сучности.
Аноним 06/02/19 Срд 07:00:33 13426415
>>1342482
>Тред уже был, хоть и кривой
Дебил, тот тред создан задолго до бамплимита и ссылку на него как на перекат вбросили по-приколу.
Аноним 06/02/19 Срд 19:31:41 13429756
Посоны, у меня при дебаге выбивает исключение RPC Server is unavaible. Что делать? Пробовал гуглить, включать службу в брандмауэре Windows, но что то не помогло нихуя.
Код должен открывать файл и читать оттуда.
Аноним 06/02/19 Срд 20:33:32 13429977
1549474398544.mp4 (3846Кб, 1280x720, 00:00:30)
1280x720
Аноним 06/02/19 Срд 20:39:15 13430068
изображение.png (250Кб, 1026x113)
1026x113
Пиздец просто. Сап, студент на связи. Преподы нам вообще нихуя не обьяснили, а из статеек в инете я нихуя понять не смог. Ну вот обьявил массив этих ебучих указателей, записал туда ссылки вроде как на строки, но блядь по делу-то там оказываются только первые элементы строк. Обьясните как это сделать умоляю, я уже два часа ебусь и никак не понимаю принцип работы этой хуйни
Аноним 06/02/19 Срд 20:53:27 13430229
Аноним 06/02/19 Срд 20:55:40 134302310
>>1343022
Мне это надо реализовать через указатели на строки блядь, нахуй мне эта функция? Лишь бы сказать чего
Аноним 06/02/19 Срд 21:05:56 134303311
>>1343023
когда ты не очень умный
Аноним 06/02/19 Срд 21:08:38 134303512
>>1343033
Ну так обьясни мне дебилу тогда
Аноним 06/02/19 Срд 21:35:08 134305013
Ладно, сформулирую вопрос иначе. Как мне получить указатель на, скажем, вторую строку массива, ибо когда я делаю так как я это понимаю, я получаю указатель на первый элемент строки.
Аноним 06/02/19 Срд 21:43:49 134305314
>>1343050
char a[N][M] это сишный массив из N строк, максимального размера M.

a[0] - первая строка
a[1] - вторая строка
Сравнение - strcmp(a[0], a[1]).

В чем твоя проблема?
Аноним 06/02/19 Срд 21:47:19 134305515
>>1343053
Мне УКАЗАТЕЛЯМИ, УКАЗАТЕЛЯМИ НАХУЙ нужно это делать, а не готовой функцией, ну еб твою мать
Про то, по какому принципу сравнивается целиком вся строка, я даже спрашивать не хочу
Аноним 06/02/19 Срд 21:54:48 134305816
>>1343055
>УКАЗАТЕЛЯМИ
Заебал, код покажи че ты там сделал. Телепаты в отпуске.
Аноним 06/02/19 Срд 21:54:55 134305917
ТАК СТОП. ЕСЛИ Я ПРАВИЛЬНО ПОНЯЛ, ТО УКАЗАТЕЛЕМ НА СТРОКУ КАК БЫ ЯВЛЯЕТСЯ a[0]? Т.е. это и есть указатель? И мне нужно ебаться с этими непонятными звездочками? Я уже окончательно запутался
Аноним 06/02/19 Срд 21:55:25 134306018
Аноним 06/02/19 Срд 21:57:32 134306319
>>1343059
ну это твоя главная проблема, додик. Ты вообще не знаешь С. Иди почитай, что такое указатели, что такое сишные строки.
Аноним 06/02/19 Срд 22:00:20 134306820
Аноним 06/02/19 Срд 22:02:41 134307221
>>1343006
Похоже, что в задаче строками называют не C-строки, a row двумерного массива. Тип элемента не обязан быть char.

>сортировку ... по ... последнего столбца массива
Чтобы эта хуйня имела смысол, необходимо чтобы каждая строчка имела одинаковую длину.
Аноним 06/02/19 Срд 22:24:11 134308222
siEOrHxJgsU.jpg (43Кб, 569x569)
569x569
>>1343006
>Поступил в вуз на ит
>Надеется, что люди с зп 10к знают программирование и продолжают работать учителями
Аноним 06/02/19 Срд 22:41:00 134309723
>>1343068
Благодаря тебе разобрался, спасибо, анончик, добра
Аноним 06/02/19 Срд 23:58:07 134312724
Помогите, как в интовый массив вместо нуля добавить пробел
for (int i = 0; i < arraySize; i++) {
for (int j = 0; j < arraySize; j++)
{
if (elements[j]==0)
{ elements[j]=(char)" ";
}
cout << " " << elements[j];
}
cout << endl << endl;
}

не работает, стринг не шарю
Аноним 07/02/19 Чтв 00:06:03 134312825
>>1343127
"abc" - указатель на строку. Ты должен добавить символ-пробел, а не строку, первый символ которой пробел, а символ обозначается одинарными кавычками.
Аноним 07/02/19 Чтв 00:11:42 134312926
>>1343128
сложно для чела который указатели понял на уровне int *hi=&a;
Аноним 07/02/19 Чтв 00:16:20 134313027
Аноним 07/02/19 Чтв 00:18:44 134313228
>>1343130
на двач так скопировалось, это не кейс
даже если правильно писать пробел заменяется на интовый номер таблицы аскри
Аноним 07/02/19 Чтв 00:20:17 134313329
>>1343132
Ааа, ИНТОВЫЙ массив. Никак. Он на то и интовый, что в нем числа, а не символы
Аноним 07/02/19 Чтв 00:38:30 134313930
>>1343127
Можешь попробовать сохранить код пробела и потом постоянно преобразовывать его в чар или перегрузить оператор индексации массива, чтобы там меняло код на символ.
Аноним 07/02/19 Чтв 11:47:32 134325831
image.png (6Кб, 200x147)
200x147
Вопрос про Qt и Excel. Нашел стопицот примеров кода с открытием книги с диска, но ни одного примера к подключением к УЖЕ ОТКРЫТОМУ документу.

я об этом:
XL = new QAxObject("Excel.Application", this);
Аноним 07/02/19 Чтв 12:01:25 134326432
image.png (32Кб, 603x325)
603x325
>>1343258
А, всё, нагуглил наконец решение.
Аноним 07/02/19 Чтв 16:42:19 134345633
1549546933920.jpg (84Кб, 706x926)
706x926
Есть у класса поле с массивом указателей (указателем на указатель), вроде перегрузил индекс для класса, чтоб возвращал указатель, но приравнивание для него не работает т. к. не lvalue.
Мб я как даун перегрузил? Ну естественно да.
Аноним 07/02/19 Чтв 16:44:48 134345734
Аноним 07/02/19 Чтв 16:47:15 134345835
>>1343457
Нормальный хуй. Чаю тебе анон. Как же мне не по глазам было..
Аноним 07/02/19 Чтв 20:48:33 134358336
Сап, нашёл книгу Qt 5.10. Профессиональное программирование на C++, у меня знания уровня основных понятий, ну тоесть функции, структуры, до ооп на плюсах дошёл, и на жабу перешёл так как EPAM через пол года на треннинги пытаться. Так вот, эта книга с моими знаниями будет слишком непонятной, или можно читать?
Аноним 07/02/19 Чтв 22:11:21 134365237
>>1343583
Если планируешь на жаве, то кют будет бесполезен. Это по сути фреймворк уровня дотнета, построенный на расширении крестов, с метапрограммированием, рефлексией и системой общения объектов, не свойственной стандартному ооп. Плюс новый реактивно-декларативный интерфейс.
Аноним 07/02/19 Чтв 22:36:57 134367138
>>1343652
я понимаю, но некст 2 семестра qt на плюсах, поэтому хочу не хочу, прийдётся освоить, книгу с моими знаниями стоит читать, или что то ещё подучить?
Аноним 07/02/19 Чтв 23:45:43 134369739
>>1343583
И что, норм книга? Смотрел отрывки в гугле, показалось, что те же самые экзамплы с сайта куть.
Аноним 07/02/19 Чтв 23:51:12 134370040
image.png (159Кб, 1920x1080)
1920x1080
>>1343697
я не ебу, посмотрел шо кьют 16 гб весит в лучшем случае, скину с 100 мбит интернета в общаге, с понедельника начну читать, если смогу себе позволить сразу её, а пока шо узнал что такое классы и что их в идее надо по разным вкладкам ебашить, КАКАЯ ТО НЕАДЕКВАТНАЯ ХУЙНЯ.
Аноним 07/02/19 Чтв 23:54:38 134370141
Аноним 07/02/19 Чтв 23:58:17 134370342
image.png (1042Кб, 1920x1080)
1920x1080
>>1343701
хз, галочки по книге поставил, ставил на 3D, 90гб было
Аноним 07/02/19 Чтв 23:59:03 134370543
>>1343583
то всё таки стоит читать, по ходу можно выучить всё недостающее, или стоит что то отдельно до чтения знать?
Аноним 08/02/19 Птн 09:05:31 134378744
>>1343705
Пиздец ты деловой.
Возьми да попробуй почитать неделю-две. Ты что, блядь, 300 кк/наносек зарабатываешь, что так свое время ценишь?
Аноним 08/02/19 Птн 09:07:39 134378845
>>1343671
Читай, никаких запредельных фич языка там в основе не требуется. Я его вообще по хелпу в основном изучал, он там хороший и с примерами, кроме может только последних тестовых дополнений.
Аноним 08/02/19 Птн 13:29:28 134389346
Блиц-опрос.
Прата и Липпман?
Аноним 08/02/19 Птн 13:33:33 134389647
Есть ли вообще какие-то применения таким вещам как "Указатели" или "ссылки". Не понимаю, зачем вообще они нужны, если можно использовать обычные переменные, к чему всё усложнять?
Аноним 08/02/19 Птн 13:51:33 134390448
>>1343893
Создай опрос на стравполле
Аноним 08/02/19 Птн 14:05:11 134390949
>>1343896
прочитай чуть дальше свою первую книгу по языку.
Аноним 08/02/19 Птн 15:12:25 134398350
Аноним 08/02/19 Птн 15:12:32 134398451
>>1343893
Прата проще, показывает как можно писать нехитрые программки на c++. Это скорее книга для полного снуля, чтоб вкатиться в для первого знакомства с программированием. Сам язык описывается довольно поверхностно. Простые внятные задачки + есть ответы на контрольные вопросы (но не решения задач).

Липпман сложнее. Упор делается именно на описание языка и STL, а не на программирование как таковое. Задачки часто абстрактного характера и завязаны на ранее написанные классы, почти всегда с невнятной логикой.

Перевод у обеих книжек ужасный + сделан с первых выпусков, до исправления оригинальных опечаток во всяком случае это касается тех экземпляров, что можно скочать бесплатно без смс.
Аноним 08/02/19 Птн 15:13:23 134398652
Аноним 08/02/19 Птн 16:53:41 134406153
Посоветуйте литературу для изучения low-level системного программирования на С++/C. С меня фотки арбузов.
Аноним 08/02/19 Птн 16:57:27 134406554
>>1344061
Лоу-левел системное программирование к языку мало отношения имеет.

Ебашишь либо какой-нить референс красноглазого апи, либо богоподобный МСДН. И все.
Аноним 08/02/19 Птн 17:26:30 134408955
>>1344065
Но вот ебашишь ты МСДН, что дальше то делать, куда применять, кроме как школоВИРУСЫ делать.
Аноним 08/02/19 Птн 17:38:06 134410256
>>1344089
что тебе надо, то и делай?
Я выучил системное программирование на уберхардкорном уровне когда меня взяли работать системным программистом. Без этого - хуй бы что получилось имхо
Аноним 08/02/19 Птн 18:55:04 134415157
>>1344102
А вот, что от тебя требовали на этой работе на приеме, какие навыки, какой стэк(LIFO)? Вообще, в основном под какую платформу системные программисты более востребованы, или требуется иметь познания и на шиндовс и на юникс?
Аноним 08/02/19 Птн 18:56:40 134415258
Подскажите, пожалуйста, библиотеки для работы с графикой без всяких окон и множества ненужных сущностей на линукс
Аноним 08/02/19 Птн 18:56:51 134415359
>>1344151
Оверолл больше нужны красноглазые полудурки, мне же повезло найти нормальную работу с нормальной ОС. Требовали очень сильный С++, ну и если есть кернел-опыт то сразу 10 из 10 (мне повезло, писал драйвер на удаленке очень убогий).
Аноним 08/02/19 Птн 19:45:47 134417360
>>1344153
Что посоветуешь из literature для написания дров и вообще понимания системы и кернел-еблей?
Аноним 08/02/19 Птн 20:27:16 134419361
>>1343139
а если в массиве изначально были элементы, которые совпадают с кодом пробела? Тогда при выводе они будут заменяться на пробел
Аноним 08/02/19 Птн 21:00:59 134420962
>>1343139
>перегрузить оператор индексации массива, чтобы там меняло код на символ.
Какой же ты говноед
Аноним 08/02/19 Птн 21:01:51 134421263
>>1343127
Мне кажется, если ты объяснишь, что, а не как, пытаешься сделать, советы будут гораздо лучше.
Аноним 08/02/19 Птн 21:04:58 134421664
>>1344209
Хуйня, я как-то реализовал интереса ради индексацию массивов а-ля паскаль [x, y], благо кресты даже такие извращения позволяют.
Кро
Аноним 08/02/19 Птн 21:20:40 134422465
На чем можно максимально быстро и просто (в стиле "Си с классами") сделать оконное приложение для Винды? Логика программы на Си есть, надо к ней интерфейс сделать. Желательно с поддержкой от XP и до бесконечности.
Аноним 08/02/19 Птн 21:28:02 134422966
>>1344224
Qt уж только, если С++. Или wxWidgets, но я за них не шарю.
А вообще...:
-Java Swing
-C# (WinFoms, WPF)
-Tk (python и прочее)
-С (gtk)

Это не ты в ситреде спрашивал аналогичный вопрос?
Вообще, если нужна поддержка ХР можешь на винапи насвинячить.
Аноним 08/02/19 Птн 21:36:09 134424067
>>1344224
QT, там и примеров дохуя, выбираешь один из видов проектов и появляется окно готовое, все бля
Аноним 08/02/19 Птн 21:37:52 134424368
Аноны, начинаю вкатываться, объясните ньюфагу, если у нас два объекта класса А и у обоих есть методы foo(), адреса этих методов будут одинаковыми?
Аноним 08/02/19 Птн 21:40:32 134424569
>>1344224
>. Желательно с поддержкой от XP и до бесконечности
Qt, самая поздняя 5.6.3 (официально 5.6.1) , дальше не поддерживает ХР
Аноним 08/02/19 Птн 21:44:22 134424970
>>1344243
конкретно как получить адресс метода класса?
Аноним 08/02/19 Птн 21:56:29 134425871
>>1344209
Перегружаю все операторы в том числе и new с (), твои контрагрументы? А вообще мой вариант с перегрузкой оператора индексации охуенен.
Аноним 08/02/19 Птн 23:12:13 134430672
>>1343006
Строка это массив символов. То есть массив char. Ссылка на строку то есть на массив символов указывает на первый элемент этого массива, то есть на первый символ этого массива.
Аноним 08/02/19 Птн 23:16:44 134430873
>>1343703
Двачую. Я вообще ахуел с этой параши. Лучше буду на винапи формочки клепать чем обмазываться 100гб-фреймворком.
Аноним 09/02/19 Суб 00:14:05 134432374
>>1344224
WPF с C#. Либо делаешь обёртки над внешним интерфейсом в C++/CLI и используешь их прямо в шарповом коде, либо оборачиваешь внешний интерфейс в extern "C" и используешь P/Invoke из шарпов.
Аноним 09/02/19 Суб 00:33:20 134432975
>>1344216
Расскажи как ты это сделал (если x и y - инты)?
Перегружать оператор индексации можно только с одним аргументом, а оператор запятой только для классов.
Аноним 09/02/19 Суб 00:52:02 134433376
>>1344323
Можно подробней о 2 методе?

мимо
Аноним 09/02/19 Суб 10:10:58 134439277
>>1344329
>если x и y - инты
Инты, но давали в конце класс. Выглядело коряво, да.
Аноним 09/02/19 Суб 10:32:51 134439678
>>1344333
P/Invoke позволяет вызвать обычные сишные методы из обычной динамической библиотеки. Скажем, у тебя есть метод double foo(char , int) в bar.dll, который ты хочешь вызвать из кода в шарпах (ну или любого языка на CLR). Для этого нужно просто написать https://pastebin.com/EwEJvFYD . Сам не пробовал, но говорят, что работает даже под Xamarin.
Шарпы позволяют довольно хорошо интеропиться с этим делом, есть плюшки типа автоматических конвертеров (string в char
, если стоит в атрибуте CharSet.Ansi или wchar*, если CharSet.Unicode), точное указание того, как передавать структуры с помощью MarshalAs (можно даже указатели на функции/делегаты возвращать и передавать) и прочее. Там много подводных камней, правда, которые я так на ходу не вспомню (некоторые передаваемые объекты нужно удерживать с помощью GC.KeepAlive, передача COM объектов как-то странно устроена и другое).
Аноним 09/02/19 Суб 10:34:06 134439779
>>1344396
>метод double foo(char звёздочка, int)
>string в char звёздочка
Быстрофикс
Аноним 09/02/19 Суб 11:26:05 134441080
>>1344224
RAD Studio C++ Builder
Остальных петухов не слушай, с вышеуказанным ничто не сравнится и близко как по удобству разработки, так и по скорости готового приложения. Билдер делает нативные GUI приложения винды и нативный же бинарный исполняемый код.
Аноним 09/02/19 Суб 11:58:58 134442081
Аноны,вкатился на двачи спустя 2 года вылезаторства.
С СИРИОЗНОЙ проблемой,собсно сабж - есть файл.тхт,в нём строки формата первая строка-"2ch_uje_neTOT Вот так вот " вторая строки- "SPASIBO_ABU axaxa kek lol" собственно вопрос как считать только 1 слово из строки(т.е. 2ch_uje_neTOT,SPASIBO_ABU) и перейти ко второй строке,желательно используя string а не char ?getline считывает всю строку,а >> все слова из строки и не переносится в низ после первого
Аноним 09/02/19 Суб 12:04:40 134442182
>>1344420
Дочитываешь до _ и всё, в чём проблема?
Аноним 09/02/19 Суб 12:07:39 134442383
>>1344421
how to? fin1 >> Text;
считало слово вместе с пробелом
Аноним 09/02/19 Суб 12:15:07 134442684
>>1344420
Читаешь строку, потом ее парсишь
Аноним 09/02/19 Суб 13:19:23 134445885
>>1344420
ifstream infile("файл.txt");
string line;
while (getline(infile, line))
{
string word = line.substr(0,line.find_first_of(" "));
//
}
Аноним 09/02/19 Суб 13:32:39 134446086
>>1344458
вернее там еще единичку отнять
Аноним 09/02/19 Суб 14:03:41 134447487
Мужики, может кто-то объяснить, что делает программистт с++ в условной конторе 5 дней в неделю? я типа понимаю айтишники там принтеры чинят и по тикетам работают, но программисты то что делают там, если контора обычная, а не по разработке ПО?
типа как они на хлеб зарабатывают если не фрилансят а сидят вв конторах обычных

языки с++ с# mysql
Аноним 09/02/19 Суб 14:18:34 134447988
>>1344474
Где ты такое вообще видел?
Аноним 09/02/19 Суб 14:21:45 134448289
>>1342454
Серверную часть для видео/аудио вещаний. Конкретно сейчас работаю над SFU. Стек: C++17, немного легаси из Boost и C++14.
Dev окружение: ArchLinux, Emacs
Аноним 09/02/19 Суб 14:39:43 134449590
>>1344306
Спасибо конечно большое, но мне уже обьяснили, что препод обозвал строкой не строку, а row двумерного массива
Аноним 09/02/19 Суб 16:03:30 134455191
r8u-v85pXGM.jpg (112Кб, 566x1000)
566x1000
Мне 15 учу плюсы и решаю всякие задачки, но никогда не делал ничего серьезного или хоть сколько полезного, такого что бы не так - написал удалил - а Шоб друзьям не стыдно было показать)))) Дайте совет, плез, что написать или к чему стремиться.
Аноним 09/02/19 Суб 16:13:48 134456292
>>1344258
>Перегружаю все операторы в том числе и new с ()
Зачем?
Аноним 09/02/19 Суб 16:16:01 134456793
>>1344551
Напиши Ахо-Корасик
Аноним 09/02/19 Суб 16:32:27 134458594
>>1344551
>15 лет
>к чему стремиться
поступить в вуз
трахнуть машку с параллели ))
Аноним 09/02/19 Суб 16:34:45 134458795
>>1344562
>ы в том числе и new с ()
>Зачем?
потому что может! очевидно же
Аноним 09/02/19 Суб 17:35:30 134463096
>>1344551
Сам когда-то давно ради фана сделал: визуализатор множества Мандельброта. В принципе ничего очень сложного в этом нет, зато красивая картинка и навыки создания интерфейсов
Продвинутая версия: многопоточность. Чуть более продвинутая: оптимизировать на SSE
Аноним 09/02/19 Суб 17:41:43 134463397
-kVaxeOWFoQ.jpg (18Кб, 300x172)
300x172
>>1344567
Спасибо. Это то что надо. Чет мне кажется что с этим придется нормально так повозиться.
Аноним 09/02/19 Суб 17:44:09 134463598
>>1344630
Спасибо большое. Займусь как нибудь.
Аноним 09/02/19 Суб 17:51:37 134464299
>>1344562
Чтобы уменьшить и оптимизировать код, это очень часто юзают
Аноним 09/02/19 Суб 20:38:29 1344742100
>>1344396
Два чаю, анон. То что нужно было.
Аноним 10/02/19 Вск 12:36:18 1344997101
какой стиль лучше

if (b) {
// код
}
return;

или
if (!b)
return;
// код
return;
Аноним 10/02/19 Вск 14:36:49 1345059102
Котоны, мне нравится Си++, но не нравится СТЛ изза уёбищности интерфейса и тормозной конпелляции.
Как думаете, написать свой СТЛ полностью с нуля сложно вообще?
Аноним 10/02/19 Вск 14:40:23 1345062103
>>1344551
Напиши двухсвязный список с использованием SSE2/AVX или чего-то подобного. Сравни скорость работы с традиционной реализацией и сообщи результаты.
Аноним 10/02/19 Вск 14:45:15 1345064104
Аноним 10/02/19 Вск 15:27:08 1345094105
WINAPI ВОПРОС
Надо ли CloseHandle процесс, если он уже завершился?
Аноним 10/02/19 Вск 15:45:41 1345117106
>>1345059
Ну, если ты правда его напишешь - то получишь +много к скиллу. Но, с вероятностью в 99.9% ты даже простецкий вектор напишешь вкривь и вкось и забьешь.
Аноним 10/02/19 Вск 16:04:19 1345128107
>>1345117
>>1345059
Я делал подобное, только для сишки. (Да, я ебанутый)
Аноним 10/02/19 Вск 16:17:24 1345139108
Аноним 10/02/19 Вск 16:20:33 1345141109
>>1345117
>>1345128
Согласен что вектор будет коварнее списков, но попроще чем дерево или хэш таблица.
Окей, если всё-таки получится, вдобавок к скилу прибавку бабла можно получить, как думаете?

Аноним 10/02/19 Вск 16:29:37 1345145110
>>1345141
Все зависит от твоего умения себя подать.

Вектор коварнее списков? Это же просто динамический манямасив, это проще чем списки даже.
Аноним 10/02/19 Вск 16:33:17 1345147111
Я определил алиас битсета, чтобы вмещалось ровно столько битов, сколько содержится в объекте. Выглядит примерно так:

template <typename T>
using Bits = std::bitset<sizeof(T) * 8>;

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

Например писать не Bits<int>(12345), а Bits(12345)?
Аноним 10/02/19 Вск 16:36:43 1345153112
Аноним 10/02/19 Вск 16:37:19 1345155113
>>1345153
сука звездочки проебались надо размер указателя помножить на индекс
Аноним 10/02/19 Вск 16:37:26 1345156114
_beginthreadex зачем нужен? Ведь есть CreateThread!!!(восклицание)
Аноним 10/02/19 Вск 16:41:01 1345159115
Аноним 10/02/19 Вск 16:57:04 1345173116
>>1345141
Какое бабло лол. СТЛ признан сообществом и долгое время используется, никто не будет отказываться от него в пользу твоей библиотеки, потому-что его писали люди с опытом программирования больше твоего срока жизни. Если ты ничего революционного не напишешь, а просто копию кривую СТЛ то можешь себе оставить ее. Но твои проекты станут непереносимыми, а читать их другим людям без знания твоей библиотеки будет невозможно. Но как выше анон сказал - скилл подтянешь
Аноним 10/02/19 Вск 17:01:02 1345177117
>>1345145
Нужно знать, как аллоцировать память, чтобы вставка была О(1).
Аноним 10/02/19 Вск 17:08:48 1345184118
>>1345177
Как аллоцировать память, чтобы вставка была O(1)? Через указатель на конце массива?
Аноним 10/02/19 Вск 17:55:13 1345208119
>>1345184
>Как аллоцировать память, чтобы вставка была O(1)?
помогает короткая, но искренняя молитва перед самим актом аллокации!
Аноним 10/02/19 Вск 18:12:10 1345218120
>>1345184
Нет, ну допустим вектор это динамический массив. Вот выделил ты вначале памяти на 100 элементов и твой пушбек представляет из себя вставку на позицию после последнего. Когда массив закончится, как ты сделаешь очередную вставку?
Аноним 10/02/19 Вск 18:14:14 1345219121
>>1345208
если бы так решались все проблемы :(
Аноним 10/02/19 Вск 18:16:55 1345221122
>>1345218
Аллокация в k раз больше памяти, перемещение содержимого вектора. В целом, очень даже О(1). Реаллокаций будет log(k)(N) штук, то есть мало.
Аноним 10/02/19 Вск 18:19:42 1345224123
>>1345221
Не рекомендую перемещение, если мув-конструктор кидает эксцепшон.
Аноним 10/02/19 Вск 18:35:48 1345236124
>>1345156
CreateThread это WINAPI
_beginthread - это похоже на обертку некоей стандартной библиотеки для С от микрософта.

>>1345141
Прибавка бабла тут только косвенная от получаемых скиллов.

>>1345147
Абсолютно точно, можно сделать helper функцию, которая будет из аргумента за тебя выводить тип для битсета и конструировать его, аля auto zalupa = make_bit_set(1488).

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

>>1345224
мув конструктор для всех твоих кастомных типов должен быть noexcept, иначе ломается много гарантий для стандартной библиотеки.
Аноним 10/02/19 Вск 18:46:59 1345247125
компильнуть одним файлом без хуйни Аноним 10/02/19 Вск 22:27:41 1345356126
здорова
я когда в пайтоне пайинсталлером собираю свою сранину в экзему, то могу указать --onefile чтобы не было всякой требухи дополнительной.

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

как вообще внутрь exe поместить нужные либы, ну или хотя бы от ошибок избавиться подобных, мол "crt хуйни нет на компе"?
Аноним 10/02/19 Вск 22:38:52 1345365127
>>1345356
Разве компайлеры по-умолчанию не собирают все в один экзешник?
Аноним 10/02/19 Вск 22:41:05 1345366128
>>1345365
собираю в g++ он потом mingw.dll требует. собираю в "высрал студио" -- требует crt_что-то.dll, при сборке сраного хеловорлда
Аноним 10/02/19 Вск 22:47:48 1345369129
>>1345366
Со студией специальный дебажный CRT поставляется. В релизной версии используется обычный.
Аноним 10/02/19 Вск 23:00:10 1345376130
>>1345224
Если перемещение бросает, то это какое-то ебанутое перемещение, по-моему.
Аноним 10/02/19 Вск 23:06:21 1345381131
>>1345356
https://helloacm.com/how-to-static-link-vc-runtime-in-visual-c/

В случае студии, в других вариантах гугли "Статическая линковка рантайма" или чето в таком духе

>>1345365
В этом была изначальная идея библиотек - переиспользовать их в разном софте, идея на бумаге была неплохая, в реале увы, не сложилось даже у красноглазой питухос
Аноним 10/02/19 Вск 23:14:25 1345388132
Аноним 11/02/19 Пнд 01:05:33 1345418133
>>1345388
>отлично, спасибо!
Если соберешься Qt статически собирать, сразу купи антипригарный коврик под жопу.
Аноним 11/02/19 Пнд 10:35:59 1345513134
image.png (39Кб, 409x523)
409x523
image.png (62Кб, 516x738)
516x738
>>1343700
Ну хуй знает, мне этого за глаза хватает. Но я 3д не делаю, конечно.
Приложение в итоге с DLL весит около 20мегабайт.
Аноним 11/02/19 Пнд 11:46:48 1345541135
image.png (16Кб, 401x215)
401x215
Анон, ну ты мне скажи, ну че это за хуйня-то такая? Как же он не определён, когда вон он определён.
Аноним 11/02/19 Пнд 12:47:42 1345578136
>>1345541
А второй параметр в шаблоне где?
Аноним 11/02/19 Пнд 12:48:53 1345580137
>>1345578
Есть дефолтный, не увидел.
Аноним 11/02/19 Пнд 12:53:38 1345585138
>>1345580
>>1345541
using huypizda = RB_TREE<T, COMP>;
вот так проканало кароч ¯\_("3)_/¯
Аноним 11/02/19 Пнд 16:36:47 1345692139
>>1345541
Чё за говно пропускает такое? Любимая спермохлёбами вижуал студия?
Аноним 11/02/19 Пнд 17:25:15 1345721140
>>1345692
какое такое? поясни свою мысль
Аноним 11/02/19 Пнд 17:31:25 1345731141
>>1345692
gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10)
отлично пропускает, только >>1345585 вот этот вариант
Аноним 11/02/19 Пнд 18:42:34 1345817142
DC7Ct8xWAAIOp2K.jpg (185Кб, 1200x797)
1200x797
size_t и std::size_t

В чем разница-то? Можно их считать всегда взаимозаменяемыми?
Аноним 11/02/19 Пнд 19:59:57 1345884143
>>1345817
Формально для size_t нужен сишный хедер <stddef.h>, а для std::size_t <cstddef>, но у меня все эти типы без хедеров нормально подхватываются и я использую вариант без std, так как так удобнее.
Аноним 11/02/19 Пнд 20:18:26 1345906144
>>1345884
А если я везде использовал просто size_t, но в каком-то месте оно попало под using namespace std, ничего криминального не произойдет? Они всегда эквивалентны в рамках одной платформы?
Аноним 11/02/19 Пнд 20:21:58 1345908145
>>1345906
Как видишь, фактически это один и тот же хедер, поэтому они дефайнятся одинаково.
Аноним 11/02/19 Пнд 20:29:34 1345916146
>>1345721
template<typename T>
using IDENTIFIER<T> = бла-бла-бла;

это синтаксически некорректно, в alias-declaration может быть только идентификатор, угловые скобки после него недопустимы. https://timsong-cpp.github.io/cppwp/n4659/dcl.dcl#nt:alias-declaration
Но почему-то на пике в >>1345541 написано только, что "идентификатор не определён", а сам кривой шаблонный alias-declaration не подчёркнут.
Аноним 11/02/19 Пнд 20:30:49 1345917147
>>1345906
Заюзай костыль с си, создай прешку в старом стиле только для объекта, попавшего в юн, или как выше сказали вызови сишный хедер. Ещё вариант спиздить функцию из сишного хедера и под другим названием переписать в хедере, превращая с помощью стракта или прешки в сайзт, но это костыль уровня обхода студенческого антиплагиата
Аноним 11/02/19 Пнд 20:35:02 1345919148
>>1345817
>size_t и std::size_t
>
>В чем разница-то? Можно их считать всегда взаимозаменяемыми?
Стандарт говорит так: если какая-то хрень "из C" (точнее, из C++-ного хедера, представляющего C-хедер) доступна без `std::`, то эта хрень должна быть полностью эквивалентна хрени с `std::`.
Но стандарт не обязывает, чтобы хрень без `std::` вообще была.
Аноним 11/02/19 Пнд 20:44:24 1345933149
>>1345919
Ага, вот где собака зарыта

>>1345917
Простите за дибильный вопрос, но что такое прешка?
Аноним 11/02/19 Пнд 20:51:05 1345937150
>>1345933
Не нужно знать. Древние программисты таким образом добавляли в программы защиту от тупости своей/железа
Аноним 12/02/19 Втр 02:33:05 1346132151
>>1345933
Прешка — прекомпилятор, препроцессор. Такая штука которая перед компиляцией или объектизацией собирает весь текст всеех файлов в твоих прогах и начинает переводить его в язык более понятный компилятору, но в отличии от компилятора не будет пытаться исполнить хуйнюя если не знает что она значит и обрабатывает макросы, собирает функции из библиотек. Например можешь функцию в хедере создать и вызвать ее указателем из него, и при компиляции препроцессор заберёт эту функцию из хедера, не смотря на то что в программе она не объявлена. Если юзаешь стандартные библиотеки, с помощью прешки можешь переделать свой код в си99 формат, короче важая вещь, чем бы ты на сипипи не занимался, ознакомься
Аноним 12/02/19 Втр 02:53:41 1346140152
>>1346132
Кстати, вот касательно этого.
Есть же в 17 стандарте свёртка, которая умеет выполнять нужную команду над переданными через запятую аргументами, а не над initializer_list.
И, чисто в теории, можно же собрать строку с именами аргументов, которую потом пихнуть в макрос, вызывающий эту свертку. Насколько это пиздец?
Не то чтобы я прям могу придумать, как это применять, но, например, в pl/sql такое используется часто - собирается динамически строка с запросом/анонимным блоком и отдаётся на выполнение серверу. Интересно, реализуемо ли это в плюсах и вообще может ли быть смысл?
Хотя можно не ебать мозг и работать с initializer_list, конечно.
Аноним 12/02/19 Втр 03:00:06 1346141153
>>1346140
>Есть же в 17 стандарте свёртка, которая умеет выполнять нужную команду над переданными через запятую аргументами
Троеточие вроде еще в C++11 добавили.
>можно же собрать строку с именами аргументов, которую потом пихнуть в макрос, вызывающий эту свертку.
А смысл? Это же во время компиляции все выполняется, со статическими строками. То есть без разницы со строками ты работаешь, или прямо с аргументами. Строки только добавляют лишний гемморой.
Аноним 12/02/19 Втр 03:23:44 1346142154
>>1346140
Не очень понял что ты имеешь в виду, но судя по всему это возможно реализовать ещё чуть ли не в 89-ом стандарте си через стракты, значит и стд плюса для этого будет достаточно. Эскперементируй, что не получится — приноси код.
Аноним 12/02/19 Втр 08:46:12 1346192155
>>1346141
Я просто встретил троеточие со сверткой непосредственно у Галовица в C++17 STL, вот и проверил, что только в этом стандарте появилось.

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

>>1346142
Хотел метапрограммирование через жопу - формировать код во время выполнения программы и исполнять его в той же проге, но без шаблонной магии. Не ради профита, а понять, можно ли так.
Но за наводку спасибо, покурю сегодня.
Аноним 12/02/19 Втр 14:18:08 1346306156
>>1346132
>Прешка — прекомпилятор, препроцессор
За много лет ни разу не слышал такого сокращения
Мимопроходил
Аноним 12/02/19 Втр 18:56:46 1346430157
>>1344410
>RAD Studio C++ Builder
ЭТО ЖЕ БЫВШИЙ BORLAND ПУСТИЛ СКУПУЮ СЛЕЗУ
Аноним 12/02/19 Втр 19:42:25 1346455158
>>1346430
А борланд это турбо, я ваще нем си изучал...
Аноним 12/02/19 Втр 20:06:50 1346463159
image.png (7Кб, 732x54)
732x54
image.png (7Кб, 816x103)
816x103
Сап, плюсаны! Как сделать в QT так, чтобы при открытии окна сохранения через getSaveFileName(прикреплейтед1) в окне можно было выбрать конкретное расширение, а не как на пик2?
Аноним 12/02/19 Втр 20:11:41 1346465160
>>1344410
С подключением сторонних .lib все так же пердолиться нужно?
Аноним 12/02/19 Втр 20:17:58 1346468161
image.png (5Кб, 242x108)
242x108
>>1346463
Я зделол, но расширение не добавляется к файлу, как пофиксить?
Аноним 13/02/19 Срд 00:44:49 1346586162
>>1346192
>формировать код во время выполнения программы
А вот хуй, это тебе не пхп.

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

Алсо, есть интерпретаторы (!) для С, которые позволяют говнокодить на нем в лучших традиция джаваскрипта. Насчет интерпретаторов Спп: не уверен, что нашелся поехавший, реализовавший эту идею. Но если они существуют, я хочу это чудо увидеть.
Аноним 13/02/19 Срд 09:33:21 1346678163
>>1346468
Можно наследоваться от QFileDialog, и написать обработчик сигнала filterSelected, который вызывается каждый раз, когда юзер выбирает элемент комбобокса. Запоминать тип, выбранный в комбобоксе, затем при закрытии диалога вручную дописывать его к имени файла.
Вероятно, существуют более красивые решения.
Аноним 13/02/19 Срд 10:10:55 1346687164
>>1346192
ты всегда можешь затянуть интерпретатор LUA или Питона в свой код
Аноним 13/02/19 Срд 10:49:51 1346715165
Сап, анон. Брату в шарагу нужно написать на плюсах программу сортировки пузырьком одномерного массива, который вводится с клавиатуры и имеет 5 элементов. Сам я веб-макака и с плюсами не знаком, можешь накидать код, пожалуйста? Делов на 2 минуты, а я благодарен тебе буду очень.
Аноним 13/02/19 Срд 10:54:07 1346718166
Аноним 13/02/19 Срд 10:57:41 1346726167
271640151015616[...].jpg (170Кб, 2048x1365)
2048x1365
>>1346718
За 5к я тебе хело ворлд на хтмле напишу, хочешь?
Аноним 13/02/19 Срд 11:02:07 1346731168
>>1346726
Манька, если нет денег, делай сам
Аноним 13/02/19 Срд 11:04:57 1346734169
>>1346726
Только учти, что во всех без исключениях браузерах он должен выглядеть абсолютно одинаково.
Аноним 13/02/19 Срд 11:09:32 1346735170
>>1346465
Вроде да. Недостаток, верно.
массивы Аноним 13/02/19 Срд 13:01:42 1346775171
памагити
псевдодвумерный динамический массив с элементами целочисленного типа.
Сначала память отводится под адреса строк, потом в цикле под строки.
Размеры массива вводятся с консоли.
Массив заполняется случайным образом.
После заполнения массива находится та характеристика (max, min), по которой нужно отсортировать строки массива.
Выводится массив в виде матрицы с выводом справа найденной характеристики.
Массив упорядочивается и снова выводится таким же образом.
Переставляются два столбца согласно варианту задания и снова выводится массив.

Строки массива упорядочить по убыванию минимума в строке.
Поменять местами 2 столбца, чтобы минимальный элемент для всей матрицы оказался в нижнем левом углу.
Аноним 13/02/19 Срд 13:44:59 1346812172
>>1346715
Сделаю за 1000 рублей
Аноним 13/02/19 Срд 16:56:11 1346928173
15500616008020.jpg (38Кб, 656x717)
656x717
>>1346726
По традиции.
С вас $180000.
Аноним 13/02/19 Срд 17:04:08 1346932174
Fz-5FyQtzVA.jpg (342Кб, 1280x875)
1280x875
>>1346715
vector<int> g[MAXN]; //массив
bool used[MAXN];
vector<int> ans; //ответ

void dfs (int v) {
used[v] = true;
for (size_t i=0; i<g[v].size(); ++i) {
int to = g[v];
if (!used[to])
dfs (to);
}
ans.push_back (v);
}

void puzyryok_sort() {
for (int i=0; i<n; ++i)
used = false;
ans.clear();
for (int i=0; i<n; ++i)
if (!used)
dfs (i);
reverse (ans.begin(), ans.end());
}
Не благодари
Аноним 13/02/19 Срд 17:51:38 1346963175
Добрый вечер.
Можете вкратце но аргументированно объяснить почему программист на c# или backend зарабатывает в среднем больше, чем на c++?
Спасибо.
Аноним 13/02/19 Срд 18:25:43 1346989176
>>1346963
Зарплата программиста зависит от места работы, а не от технологии.

В среднем вебмакакоконторы богаче, чем НИИ имени подзалупина, которая за 40к в месяц требует 10 лет крестов. Однако это все средняя температура по больнице, которая вообще ничего не показывает.
13/02/19 Срд 18:27:23 1346991177
Аноним 13/02/19 Срд 18:55:41 1347008178
>>1346991
Чтобы всё аутентично было
Аноним 13/02/19 Срд 18:58:20 1347009179
>>1346963
вопрос не в том, а в том что сможешь ли ты открыть, к примеру, александреску "современное проектирование на с++" и понять хотя бы часть написанного, а потом еще понять что за последние 20 лет еще на порядок больше в языке нахуевертили
вопрос не в зарплате, а в уровне твоего сумашествия
Аноним 13/02/19 Срд 19:01:50 1347013180
>>1346963

и вообще это хуевое сравнение, тк ситуация с сишарпом в россии (и на постсовке) еще хуже чем с крестами
Аноним 13/02/19 Срд 19:02:55 1347015181
1974.jpg (28Кб, 713x600)
713x600
>>1346963
Потому что спрос на программистов C# выше, чем на программистов C++. Backend - это вообще не технология, а часть продукта, которая может написана теоретически на любом языке, а практически - С++ для этого не подходит. Короче говоря, потому что С# более отвечает потребностям сегодняшнего дня.
Аноним 13/02/19 Срд 19:05:34 1347016182
>>1345817
Возможно я ошибаюсь, но по моему если ты в самом начале кода, после включения библиотеки напишешь - using namespace std; то std в дальнейшем не надо указывать, но я только вкатываюсь, может херню несу
Аноним 13/02/19 Срд 19:09:00 1347021183
>>1347013
> ситуация с сишарпом в россии
Да кого ебет рашка, я например наугад открыл вакансии в Торонто.
Постсовок блядь.
Аноним 13/02/19 Срд 19:19:27 1347037184
>>1346989
>Зарплата программиста зависит от места работы, а не от технологии.
Пригорает от попугаев, повторяющих фразы, не понимая смысла. А технология и место работы не взаимозависимы?
Мудак блядь.
Аноним 13/02/19 Срд 19:20:12 1347039185
>>1347009
И смысл тогда? Для души?
Аноним 13/02/19 Срд 19:35:23 1347046186
Сегодня я охуел от copy elision. Ебучие плюсы, сколько же в них подводных камней. А как прошёл ваш день?
Аноним 13/02/19 Срд 19:39:27 1347053187
>>1347021
>вакансии в Торонто
хорошо тебе

Аноним 13/02/19 Срд 19:40:15 1347055188
>>1347015
>спрос на программистов C# выше, чем на программистов C++
в россии это не так
Аноним 13/02/19 Срд 19:53:12 1347065189
>>1343006
Ну тип например 5 столбцов, берёшь по строкам проходишься, сравниваешь и меняешь.
int^^ array;// заполненный массив
for(size_t i = 0; i < n; ++i)
{
for(size_t j = i; j< n; ++j)
{
if(array[n] > array[j][n])
swap(array, array[j])
}
}
Аноним 13/02/19 Срд 19:58:56 1347068190
Аноним 13/02/19 Срд 20:02:35 1347071191
>>1347065
>if(array[n] > array[j][n])
>swap(array, array[j])
if(array[n - 1] < array[n - 1][j])
swap(array, array[j])
Аноним 13/02/19 Срд 20:03:55 1347074192
Снимок экрана о[...].png (10Кб, 401x211)
401x211
Снимок экрана о[...].png (4Кб, 126x104)
126x104
Аноним 13/02/19 Срд 20:46:06 1347094193
>>1347053
А что тебе мешает свалить, будучи специалистом по С++?
Аноним 13/02/19 Срд 21:45:53 1347120194
>>1346963
Потомучто карьеристы съебнули из плюсов. Некому больше фуфло зарплаты вверх толкать.
Аноним 13/02/19 Срд 21:57:03 1347131195
>>1346963
В новое охотнее вкладываются, а в хайповую тему особенно. Вот и все.
Это касается любого бизнеса.
В айти просто новое чаще появляется.
Аноним 13/02/19 Срд 22:07:22 1347138196
>>1347037
нет, баба-дауниха, не зависимы. Кто-то ебет говно на С++, писанное дедами, кто-то работает в Нвидии на х5 зарплату от этого. Технологии схожи. А иногда, одинаковы.
Аноним 13/02/19 Срд 22:08:32 1347139197
>>1347015
>а практически - С++ для этого не подходит
Расскажи это яндексу, гуглу, фейсбуку или амазону.
Аноним 13/02/19 Срд 22:11:02 1347142198
Аноним 13/02/19 Срд 22:41:15 1347157199
>>1346963
Просто С++ преподают в вузах вот и выкатываются от туда либо вебмакаки, которые хуже червя-пидора, либо говнокодеры на С++, которые пишут всё в одном файле на стандарте прошлого века, не чистят память и вообще не моются.
Обычный С++ программист зарабатывает больше С# кодера, но и ебется с самим кодом больше.
Аноним 14/02/19 Чтв 00:12:28 1347200200
>>1347157
> которые пишут всё в одном файле на стандарте прошлого века, не чистят память и вообще
Больше легаси, больше багов, больше работы вкатывальщикам с двощей. Охуенно жи.
Аноним 14/02/19 Чтв 00:27:13 1347207201
>>1347139
У них хайлоад, нужна максимальная производительность и отказоусточивость, поэтому все на нативе написано.
Аноним 14/02/19 Чтв 01:43:06 1347221202
Анон, два вопроса. Первый - откдуа взять документацию? С удивлением для себя обнаружил, что её продают через официальные магазины ISO/ANSI. Второй - как получить доступ к микрофону/разъёму-микрофон на звуковой карте?
14/02/19 Чтв 10:37:53 1347350203
>>1347221
cppreference
Апи операционной систем
Аноним 14/02/19 Чтв 13:02:25 1347440204
>>1347221
Возьми самый близкий драфт к нужной тебе версии стандарта.
НАпример, http://wg21.link/std11
Аноним 14/02/19 Чтв 13:57:38 1347460205
Аноним 14/02/19 Чтв 14:28:58 1347468206
>>1346468
>>1346678
Пасаны я деб, все поправил. Забыл точки в фильтре у расширений, теперь все сохраняется как надо
Аноним 14/02/19 Чтв 21:15:46 1347673207
Сап. Какими знаниями нужно обладать чтобы начать изучение qt, я пока что стою на пороге наследования и полиформизма, нужно продвинуться дальше, или по ходу можно будет изучить?
Аноним 14/02/19 Чтв 22:02:55 1347712208
Какие сейчас ЗП в нормальных конторах, которые не пильшики грантов, при 2-3 годах опыта?
Аноним 14/02/19 Чтв 22:08:45 1347715209
>>1347712
штук 100 в милионниках, в ДСах процентов на 30-40 побольше, наверн
Аноним 14/02/19 Чтв 22:34:31 1347741210
>>1342442 (OP)
сап анонам. Учусть в университете. Тут хуй знает как объясняют. Как лучше самому учить. Видео или литература, или что-то еще?
Аноним 15/02/19 Птн 00:14:21 1347777211
>>1347741
Видео, литература, интернет, желание и труд. Только большую часть местных советов не забывай скипать
Аноним 15/02/19 Птн 01:06:34 1347794212
Анон, поясни в чем разница g(a, b) и g(&a, &b). Я понимаю, что в первом случае надо передавать как &a, &b, а во втором как a, b. Но все же какая между этими функциями фундаментальная разница?
Аноним 15/02/19 Птн 01:07:26 1347796213
>>1347794
Самофикс в первом случае g(a, b).
Аноним 15/02/19 Птн 01:54:18 1347804214
>>1347794
Фундаментальная разница в том, что указатели (которые *) могут быть нулевыми и к ним можно применять адресную арифметику, а ссылки (которые &) нулевыми быть не могут, и адресную арифметику к ним применять нельзя.
Хорошим тоном считается использовать только константные ссылки, а если тебе нужно менять значения, то использовать указатели, так программисту понятно, что если он пишет g(&a, &b), то a и b могут поменяться. В случае же неконстантных ссылок у тебя функция g(a,b) может ВНЕЗАПНО поменять a или b, что не очень красиво.
Аноним 15/02/19 Птн 02:01:23 1347807215
>>1347804
Спасибо за разъяснение.
Аноним 15/02/19 Птн 02:03:16 1347809216
Как у вас тут в функциональном стиле писать? Есть ли литература по этому поводу?
Аноним 15/02/19 Птн 02:05:15 1347812217
>>1347809
Ну типа пишешь перед каждой переменной const, дальше само пойдет, особенно когда захочешь написать цикл.
Аноним 15/02/19 Птн 02:32:32 1347821218
>>1347809
Просто прочитай пару книг по С и сам научишься.
Аноним 15/02/19 Птн 04:42:16 1347836219
Правильно ли я понимаю, что начать углубленное изучение ЯПа нужно с заучивания английского языка? На русском очень мало контента, книги переведены женщинами, которые вообще ничего не знают о программировании и допускают кучу смысловых и логических ошибок, статей мало. Особенно интересует системное программирование, ассемблер, прочее байтоебство, хайлоад, производительность итд. Дискасс.
Аноним 15/02/19 Птн 05:28:40 1347842220
>>1347836
>>1347836
че? именно по языку с++ основные книги переведены - старуструп, саттер, джосаттис, александреску, мейерс...
на английском тебе придется читать когда будешь специализироваться в чем-то, да и то не факт
к примеру, если будешь крипту делать, то придется почитывать уже статейки на английском..
а изучать язык можно спокойно по книжкам что переведены
Аноним 15/02/19 Птн 05:30:24 1347844221
>>1347809
изучаешь концепции функционального стиля, смотришь как это можно выразить средствами языка

Аноним 15/02/19 Птн 16:54:52 1348256222
>>1347836
Английский, конечно, нужен, но это не первостепенная задача для тебя.
>>1347821
Там же императивный стиль. Или ты угараешь?
>>1347809
А в чем проблема писать в функциональном стиле, зная саму ФП парадигму? Все возможности (почти) для этого тут есть, особенно, в С++17.
>>1347794
Во втором случае:
1) Нельзя в адресную арифметику и вообще как-то менять ссылку.
2) Не нужно разыменовывать.
3) Не может быть нулевой.
>>1347673
Да начни просто делать и все.
>>1347221
>как получить доступ к микрофону/разъёму-микрофон
Windows API. Или в юниксах надо на /dev/залупа обращаться.
Аноним 15/02/19 Птн 17:19:04 1348280223
>>1344410
>RAD Studio C++ Builder
Почему он не популярен как кутэ? Он долбоеб?
Аноним 15/02/19 Птн 18:05:01 1348314224
изображение.png (16Кб, 531x502)
531x502
А поясните за виртуальный деструктор.
Понятно примерно с чем он борется и как его использовать.

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

Алсо, если посмотреть типичный пример (пикрил), то производный класс никак явно не переопределяет виртуальный деструктор базового. Получается зря старались, зря объявляли его виртуальным? Но вроде нет, не зря, все работает ведь.
Аноним 15/02/19 Птн 18:13:50 1348323225
>>1348280
Популярен где? На линуксе кроме кутэ и нет ничего, он вот и популярен у красноглазиков, а сибилдер под винду, там он не один, вдобавок быдло скатилось на шышарп который проще.
Надеюсь теперь понятно, что долбоеб это ты - хвалишь более убогое.
Аноним 15/02/19 Птн 18:19:24 1348325226
>>1348314
>Ведь виртуальная функция во всех производных классах должна иметь такое же имя, как в базовом
Это особый случай, в конструкторах деструкторах работает стек из функций от базы до конечного потомка. >>1348314
>Алсо, если посмотреть типичный пример (пикрил), то производный класс никак явно не переопределяет виртуальный деструктор базового.
Просто частный случай.
Аноним 15/02/19 Птн 18:56:17 1348348227
>>1348323
>линуксе кроме кутэ и нет ничего
как это? прямо так и нет? а я в чем тогда пишу? в том что НЕ существует?
Аноним 15/02/19 Птн 19:02:13 1348351228
>>1348314
>в производном классе деструктор всегда будет иметь другое имя
и че? смещение в vtable будет одно и тоже
Аноним 15/02/19 Птн 19:15:49 1348359229
>>1347221
>как получить доступ к микрофону/разъёму-микрофон на звуковой карте?
Эн лет назад я обращался через WASAPI, уже и не вспомню как. Наверняка есть портативные библиотеки под всё это дело.
Аноним 15/02/19 Птн 19:17:43 1348363230
>>1348348
Ты бредишь, это всё оптическая иллюзия. На самом деле ты используешь православный ImGui.
Аноним 15/02/19 Птн 20:34:54 1348417231
15232485294780.jpg (37Кб, 362x346)
362x346
Если вызвался конструктор перемещения, то объект гарантировано будет перемещен(всмысле, что конструктор не просто скопирует данные, а именно переместит) ? Я могу это как-то проверить?
Как правильно использовать список инициализации с этим перемещающим конструктором:
Vector(Vector &&tmp) : fuck(tmp.lng), oppai(tmp.angle)
OR
Vector(Vector &&tmp) : fuck(move(tmp.lng)), oppai(move(tmp.angle))
?
Аноним 15/02/19 Птн 22:24:44 1348499232
>>1348314
>Но в производном классе деструктор всегда будет иметь другое имя.
У него вообще есть имя?
Аноним 15/02/19 Птн 23:08:08 1348516233
Screenshot2.png (4Кб, 244x149)
244x149
Как подключить ебучию динамическую библиотеку? Я создал там класс, который разделил на h and cpp. Подключаю в консольном проекте через #include "name.dll", ошибок нет, файл находит. Но в файле, куда подключаю не видит ни моего класса, нихуя не видит вообще.
15/02/19 Птн 23:29:55 1348527234
>>1348516
Надо include-ить header-файл. Добавить библиотеку через GUI студии.
Аноним 15/02/19 Птн 23:34:12 1348528235
>>1348516
Чтобы использовать классы и функции, тебе все равно нужны их объявления, даже если реализация целиком в .dll. Поэтому, во-первых, подключи хедер.h. Во-сторых, вместе с собранной библиотекой идет .lib файл с таким же названием. Он нужен, чтобы временно разрезолвить нереализованные объявления на этапе статической линковки (попробуй сбилдить без него). Чтобы его подключить, пропиши его в target link libraries в настройках проекта (загугли) или используй #pragma comment(lib, "LibVector.lib")
Аноним 15/02/19 Птн 23:57:39 1348543236
Screenshot3.png (2Кб, 148x104)
148x104
>>1348528
Нет, файла с .lib, даже поиском не нашло, библиотека собралась успешно
Аноним 16/02/19 Суб 00:10:13 1348549237
Аноним 16/02/19 Суб 00:31:07 1348552238
>>1348549
Блядь, как много заебов с динамическими библиотеками.
Аноним 16/02/19 Суб 00:31:30 1348553239
Где можно почитать в каких случаях c++ работает быстрее c
Аноним 16/02/19 Суб 00:32:37 1348554240
Аноним 16/02/19 Суб 08:35:55 1348636241
>>1348553
Лучше почитай в каких случаях твой код на С++ будет быстрее чем из коробки на том же С#. С++ сосет без оптимизации, если что.
Аноним 16/02/19 Суб 08:43:21 1348641242
>>1348323
>Надеюсь теперь понятно, что долбоеб это ты - хвалишь более убогое.
Я где-нибудь это хвалил? Зачем ты сразу в обзываки скатываешься, как бука злая.
Имею ввиду, что большинство вакансий (конечно, может я в глаза долблюсь) требуют знания Qt, а не билдера.
Аноним 16/02/19 Суб 09:43:37 1348650243
Аноним 16/02/19 Суб 09:57:10 1348654244
image.png (18Кб, 769x223)
769x223
Аноним 16/02/19 Суб 10:09:05 1348659245
Аноним 16/02/19 Суб 10:51:07 1348665246
Как можно объявить байты?
"12345" - в памяти создается массив из 6 байтов (по одному на цифру + нуль терминатор в конце) и возвращается указатель на этот массив.
Вопрос: Как сделать то же самое, только с цифровыми байтами вместо букв, и чтобы никаких объявлений переменных (как видно в примере выше нет никаких переменных).
Аноним 16/02/19 Суб 11:26:41 1348674247
>>1348553
Используешь не-компайл-тайм фичи? Плюсы будут медленнее (скрытые аллокции и всякая шняга). Используешь компайл-тайм фичи? Компиляция плюсов будет медленнее раз в пять-шесть-сто. Быстрее? Говорят, что в плюсах не нужен указатель на void, потому что есть шаблоны, поэтому компилятор обладает более полной информацией о типах и способен лучше оптимизировать, но матёрые си программисты-оптимизаторы, которым нужен ПЕРФОРМАНС, и так не используют указатель на void.
Таким образом, если тебе нужен ХАРДКОРНЫЙ ПЕРФОРМАНС, то ты будешь использовать плюсы только как си с классами-структурами и неймспейсами. Но процент кода, который требует такого, обычно довольно маленький, поэтому не еби себе мозг и пиши нормально. Большая часть скорости обычно зависит от архитектуры программы, нежели от конкретного языка. Если ты не используешь фичи плюсов не по назначению (например, проходишь циклом по паре тысяч объектов, вызывая у каждого виртуальные методы), то скорость программ будет одинаковая.
Аноним 16/02/19 Суб 11:51:36 1348681248
Аноним 16/02/19 Суб 13:00:32 1348709249
Хули мне с этим делать? Я читаю-читаю, но написать нихуя полезного не могу, т.к. на голых плюсах, я так понял, хуй что реализуешь. Где взять практику? Что писать? Долго ещё теорию гонять, которая без нормальной практики забывается с ахуевшей скоростью?
Аноним 16/02/19 Суб 13:04:27 1348711250
Нормально использовать список инициализации в конструкторе копирования?
Аноним 16/02/19 Суб 13:22:27 1348718251
>>1348709
Десктопный чатик напиши
На клиенте qt на бэке asio.
Как напишешь требуй 80.
Аноним 16/02/19 Суб 13:26:47 1348721252
Прохожу щасс плюсы пол года, а потом джаву, и препод говорит, что после плюсов, джаву месяц будем проходить, типа джаву с бекграундом плюсов легко дается? Это правда или я просто буду хуеевым джаваскриптером?
Аноним 16/02/19 Суб 13:27:22 1348722253
>>1348709
Сделай консольный todo
Аноним 16/02/19 Суб 13:55:09 1348742254
classes.png (5Кб, 276x246)
276x246
Плюсаны, виртуальный деструктор в базовом классе нужен если все мемберы в произвольном классе с автоматическим типом хранения?
Аноним 16/02/19 Суб 14:45:26 1348769255
Аноним 16/02/19 Суб 14:48:32 1348772256
>>1348742
если ты захочешь делать, как ниже, то нужен:
struct Child : Base {};

BasePtr b = new Child{};
delete b;
Аноним 16/02/19 Суб 14:51:46 1348776257
>>1348772
быстрофикс: в смысле его не язык требует, а это считается хорошим тоном, чтобы потом не наебаться
Аноним 16/02/19 Суб 15:29:35 1348794258
>>1348776
Хороший тон это да конечно... Вот стаким кодом https://ideone.com/iDRQAp у меня получилочь воспроизвести утечку с нетривиальным деструктором, но с char[10000] нет. Если без традиций, ритуалов и хорошего тона - нужен или нет?
Аноним 16/02/19 Суб 15:43:21 1348809259
Ананас, расскажи как работают CLI command line interface программы.
Например, с гитом понятно. Запускаешь программу с аргументами и тд.
А как быть которые обрабатывают ввод? Там, грубо говоря, внутри крутится бесконечный цикл и обрабатывает ввод?
Аноним 16/02/19 Суб 15:59:05 1348819260
>>1348325
>Это особый случай
Опять Невидимая Рука Страуструпа что-то дописывает в мой код.

>и че?
Ну у меня когнитивный диссонанс: то ли я неверно понял виртуальные функции, то ли это специфика самого деструктора.

>>1348499
Чому нет? Можно даже явно вызвать.

Аноним 16/02/19 Суб 16:09:58 1348831261
>>1348809
Не бесконечный, а пока в stdin не встретится eof
В кернигане и ричи параграф 1.9 содержит пример
Аноним 16/02/19 Суб 17:12:59 1348885262
>>1348819
>Чому нет? Можно даже явно вызвать.
Это не значит, что у него есть имя.

Про конструкторы явно сказано, что у них нет имени. Про деструкторы не сказано. Вот я и спрашиваю.
Аноним 16/02/19 Суб 17:30:52 1348895263
Аноним 16/02/19 Суб 18:24:26 1348914264
изображение.png (141Кб, 977x516)
977x516
изображение.png (224Кб, 1046x592)
1046x592
изображение.png (97Кб, 1138x582)
1138x582
>>1348885
>>1348895
Не ради того, чтобы спорить, а просто пруфы, что не я это придумал.
Даже Страуструп говорит об имени деструктора.

Аноним 16/02/19 Суб 18:25:58 1348916265
>>1348914
Это неформальное описание.
Аноним 16/02/19 Суб 19:49:37 1348974266
Почему не сделают какую-нибудь надстройку над крестами, чтобы по умолчанию использовала умные указатели, сохранив синтаксис для обратной совместимости с библиотеками. Не прикрутят какой-нибудь универсальный менеджер пакетов. Это же был бы лучший язык эвер.
Аноним 16/02/19 Суб 19:51:24 1348975267
>>1348974
>Почему… Не прикрутят какой-нибудь универсальный менеджер пакетов.
Потому что таких не существует.
Аноним 16/02/19 Суб 19:57:12 1348978268
>>1348975
Да даже если расслабить требования да "хоть какой-нибудь стандартный пакет менеджер", всё равно не смогут сделать. Потому что коммитет не способен его стандартизировать, сделать и потом мейнтейнить. А вот язык от конкретной канторы себе такое позволить может.
Аноним 16/02/19 Суб 20:39:22 1349003269
>>1348974
>Это же был бы лучший язык эвер.
Только для твоих задач. Далеко не всем нужны умные указатели и "универсальный" менеджер пакетов.
Возьми Swift, там и умные указатели и менеджер пакетов, или какой-нибудь язык с GC вроде D или Go.
Аноним 16/02/19 Суб 20:39:48 1349004270
>>1348974
> Не прикрутят какой-нибудь универсальный менеджер пакетов
vcpkg
Аноним 16/02/19 Суб 22:09:32 1349084271
Что значит "функция не генерирует исключения", вот есть у меня функция, которая юзает sin/cos с cmath, в функции нет throw catch. Стоит ли мне объявлять её как noexcept ?
Аноним 17/02/19 Вск 00:37:05 1349171272
>>1344474
Ну что делают.... как всегда, с ноля пилят супер-пупер какую-нибудь систему учета чего-нибудь на предприятии.
Аноним 17/02/19 Вск 02:18:20 1349207273
>>1348742
>мемберы в произвольном классе с автоматическим типом хранения?
У подобъектов такой же storage duration, как у содержащего их объекта. Будет объект с automatic storage duration ("на стеке") — будут его member subobjects с automatic storage duration. Будет создан динамически (dynamic sotrage duration) — такой же storage duration будет у member subobject-ов.

Если ты имел ввиду что создаёшь объекты всегда "на стеке", то ему не особо нужен виртуальный деструктор.
А если ты имел в виду что-то другое, то у тебя в голове каша.
Аноним 17/02/19 Вск 02:19:25 1349208274
>>1348776
>быстрофикс: в смысле его не язык требует, а это считается хорошим тоном
В смысле что язык требует. Без виртуального деструктора в >>1348772 будет неопределённое поведение
Аноним 17/02/19 Вск 03:35:29 1349218275
>>1348654
О, какие флаги нужно хуйнуть компилятору, чтобы он принял не-ASCII в идентификаторах?
Аноним 17/02/19 Вск 04:38:03 1349223276
>>1349084
>Что значит "функция не генерирует исключения"
Это просто еще одна проверка кода компилятором. Ты объявляешь noexcept, и если компилятор видит, что где-то бросается исключение, то он выводит ошибку. Так же как const не гарантирует, что значение нельзя изменить, ведь это всегда можно сделать через void указатель. Просто лишняя возможность проверить, не стреляешь ли ты себе в ногу.
Аноним 17/02/19 Вск 04:40:15 1349224277
>>1349208
>будет неопределённое поведение
Там вполне определенное поведение. Вызовется только деструктор родителя (а деструкторы наследников - нет).
Аноним 17/02/19 Вск 07:28:37 1349254278
>>1348974
>Не прикрутят какой-нибудь универсальный менеджер пакетов.
как это нету?
в линукс системах dpkg, rpm и другие, в bsd-семействе тоже есть системные менеджеры пакетов..


Аноним 17/02/19 Вск 12:01:42 1349354279
>>1349084
Нужно еще проверить на предмет исключений все функции, которые ты вызывал из своей функции (библиотечные можно проверить по справочнику). Если ни одна из них не кидает исключений, значит можешь (но не обязан) объявить свою noexcept.

В некоторых случаях компилятор может применить дополнительные оптимизации, если знает, что функция не кидает исключений.
Стоит или нет?
Смотря как твоя функция будет использоваться. Все подряд объявлять noexcept конечно же излишне.
Стоит, если, например, ты будешь передавать свою функцию как предикат в алгоритмы STL; или если твоя функция может вызываться неявно (твоя функция — конструктор перемещения, например). STL не всегда отдельно обрабатывает noexcept функции.
Аноним 17/02/19 Вск 12:02:42 1349357280
>>1349254
>универсальный
>красноглазое говно
Аноним 17/02/19 Вск 12:16:14 1349371281
6wuOSAZ3wdc.jpg (45Кб, 801x287)
801x287
F8SedATve1k.jpg (330Кб, 842x747)
842x747
Сап двач. Я предлагаю вам хоть чем то занять свою никчёмную жизнь, попробуйте решить эти охуевшие задачи по программированию. Покажите на что вы способны мамкины программисты, отработайте свои 300кк в наносекунду
Аноним 17/02/19 Вск 12:22:32 1349379282
Аноним 17/02/19 Вск 12:25:36 1349386283
>>1349224
>Там вполне определенное поведение.
Тащи пруф.
Аноним 17/02/19 Вск 12:27:10 1349390284
>>1349379
Если только за зимбабвийские доллары
Аноним 17/02/19 Вск 12:35:29 1349404285
core java.gif (149Кб, 849x458)
849x458
>>1349390
Там, в принципе, не такая и сложная задача, так что сделаю рейт поменьше тебе. $3800 USD - и по рукам.
Аноним 17/02/19 Вск 12:59:51 1349437286
>>1349207
Это у тебя в голове каша. Storage duration никак не относится к памяти - стеку или куче. Automatic storage duration - это не на стеке, а то что объект создается в начале скопа и удаляется в конце, без участия юзера. Dynamic sotrage duration - объек создается и удаляется через вызов функций аллокации памяти, т.е. с участием пользователя.
Аноним 17/02/19 Вск 13:36:19 1349489287
>>1349437
"на стеке" взято в кавычки, мамкин разоблачитель.
Аноним 17/02/19 Вск 13:41:53 1349493288
>>1349437
>Automatic storage duration - это не на стеке, а то что объект создается в начале скопа и удаляется в конце
scope это свойство имён https://timsong-cpp.github.io/cppwp/n4659/basic.scope#def:scope
> In general, each particular name is valid only within some possibly discontiguous portion of program text called its scope.

Объект можно создать с помощью placement new внутри массива unsigned char с automatic storage duration, и у этого объекта будет automatic storage duration, а имени не будет и ни о каком скопе смысла говорить вообще нет.
Аноним 17/02/19 Вск 13:44:07 1349494289
>>1349437
>создается в начале скопа и удаляется в конце
{
Class ass; // начало скопа для ass
{
Class ass; // конец скопа внешнего ass. внешний ass удаляется?
}
}
Аноним 17/02/19 Вск 13:54:16 1349504290
>>1349371
Нахуя это нужно? Нигде не пригодится.
Аноним 17/02/19 Вск 14:49:13 1349574291
>>1348742
Виртуальный деструктор нужен для вызова деструктора базового класса при удалении объекта неследованого класса. Что там в наследуемом классе находится неважно (он может быть вообще пустым). Если у тебя в классе имееться кастомный (не по умолчанию) деструктор то ты или объявляешь деструктор виртуальным, или от класса нельзя наследоваться.
Аноним 17/02/19 Вск 15:00:54 1349583292
>>1349386
>Тащи пруф.
Посмотри в стандарте как деструкторы работают, там вполне определенное поведение. В смысле порядок вызова деструкторов в данном случае однозначный. Что конкретно произойдет из-за того, что у потомка деструктор не сработает в стандарте не описано, конечно же.
Аноним 17/02/19 Вск 15:02:21 1349585293
>>1349493
>и у этого объекта будет automatic storage duration
Не будет. Деструктор-то у него не сработает при удалении стек фрейма.
Аноним 17/02/19 Вск 15:04:57 1349589294
>>1349574
>Виртуальный деструктор нужен для вызова деструктора базового класса при удалении объекта неследованого класса.
:facepalm:
> Если у тебя в классе имееться кастомный (не по умолчанию) деструктор то ты или объявляешь деструктор виртуальным, или от класса нельзя наследоваться.
Наследуюсь от контейнеров из stl, у которых нет виртуальных деструкторов. Брат жив.

>>1349583
>Посмотри в стандарте как деструкторы работают, там вполне определенное поведение.
Посмотри в стандарте описание поведения delete.
Там явно сказано, что если ты подсовываешь указатель на T который не указывает на объект типа T, а указывает на объект типа U, и T не является базовым классом U с виртуальным деструктором, то поведение не определено.
Аноним 17/02/19 Вск 15:06:31 1349591295
>>1349585
>Не будет. Деструктор-то у него не сработает при удалении стек фрейма.
Будет. Срабатывание или несрабатывание деструктора при выходе из блока это не тот способ, которым определяется automatic storage duration.
Аноним 17/02/19 Вск 15:07:36 1349594296
>>1349589
>Наследуюсь от контейнеров из stl
Всем как-то похер что ты в своих лабах делаешь.
Аноним 17/02/19 Вск 15:08:30 1349596297
>>1349594
Проект на несколько миллионов строк, несколько тысяч пользователей.
Аноним 17/02/19 Вск 15:17:05 1349603298
>>1349596
Найс лаба. Но согласен полную херню написал про деструктор, что-то воскресенье на меня негативно влияет.
Аноним 17/02/19 Вск 15:22:49 1349609299
>>1349354
По какому справочнику смотреть, бросают ли исключения библиотечные функции? Открыл http://www.cplusplus.com/reference/cmath/cos/, там не написано, бросает ли cos()исключения.
Аноним 17/02/19 Вск 15:30:44 1349611300
Аноним 17/02/19 Вск 15:31:31 1349612301
>>1349594
>>Наследуюсь от контейнеров из stl
дык не рекомендуют так делать, лучше агрегировать
Аноним 17/02/19 Вск 15:44:43 1349621302
>>1349218
У меня сразу работает, lol.
Аноним 17/02/19 Вск 15:45:44 1349622303
Как вывести иероглифы в консоль?
Аноним 17/02/19 Вск 15:51:29 1349625304
>>1349622
Смотря какая консоль, попробуй UTF-8 отправить.
Аноним 17/02/19 Вск 16:20:33 1349640305
Если я использовал конструктор перемещения, для объекта в котором всего 2 переменные. И в итоге у объекта, с которого я перемещал, сохранились значения. Это значит, что я не переместил, а скопировал? Что вообще должно остаться у объекта? Нули или мусор?
Аноним 17/02/19 Вск 16:31:14 1349659306
>>1349640
Зависит от конструктора перемещения. Стандартные просто копируют значения.
Аноним 17/02/19 Вск 16:38:56 1349667307
utf8.png (21Кб, 484x544)
484x544
Аноним 17/02/19 Вск 16:40:26 1349670308
Аноним 17/02/19 Вск 16:46:25 1349675309
>>1349667
Наконец-то до спермоблядков дошло что будущее за UTF-8.
Из 30 лет со дня изобретения UTF-8 не прошло.
Аноним 17/02/19 Вск 20:27:46 1349947310
>>1349640
Конструктор перемещения нужен, если у объекта есть внешние ресурсы (причем с уникальным владением). Типа хуйни, выделенной в куче, или там открытого сокета.
А если все поля класса это простые типы (и массивы из них), то копирование и перемещение делают одно и то же.
Аноним 17/02/19 Вск 20:51:40 1349964311
>>1349675
выбор двухбайтового представления юникода инженерами майкрософт был абсолютно верен, для их ситуации

Аноним 17/02/19 Вск 21:11:22 1349976312
>>1349964
"их ситуация" — это "требуется раз-раз и в продакшен"?
Аноним 17/02/19 Вск 21:20:59 1349983313
>>1349976
нет, из соображений производительности в первую очередь
ведь юникод они в ядро запиливали, надо было чтобы быстро работало
потом удобней с двухбайтовой кодировкой работать самим программистам..
потом им не надо было ни жить ни быть чтобы была обратная совместимость с ascii кодировкjq как в utf8 сделано, так как в ядре уже была поддержка и широких кодировок для азиатских языков и других трюков, те в ядре винды не было такой жесткой привязки к asci как было в некоторых операционках юниксового семейства..

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

на rsdn были длинные обсуждения этого, и почти никто не обсирал выбора инженеров майкрософт
Аноним 17/02/19 Вск 21:23:32 1349985314
>>1349983
>на rsdn были длинные обсуждения этого, и почти никто не обсирал выбора инженеров майкрософт
Ещё бы на сайте чьё название каргокультирует MSDN обсирали Microsoft
Аноним 17/02/19 Вск 22:05:09 1350029315
>>1343703
Ты все версии выбрал, что ли? Всегда было метров семьсот.
Аноним 17/02/19 Вск 23:38:31 1350123316
Анон, поясни можно ли въехать в лямбда-выражения в Си++ без подготовки или надо налегать на лямбда-исчисление Чёрча, теорию категории и т.д.?
Аноним 17/02/19 Вск 23:40:05 1350124317
>>1350123
Гомотопическую теорию типов не забудь выучить.
Аноним 17/02/19 Вск 23:46:22 1350128318
>>1350123
Ты... ты пользовался наследием без глубокого изучения теории типов в System F<: ?! А ну живо иди извиняться лично перед Мартином-Лёфом!
Аноним 18/02/19 Пнд 00:23:24 1350150319
>>1350128
Чем System F<: отличается от System F?
Аноним 18/02/19 Пнд 00:24:39 1350151320
Аноним 18/02/19 Пнд 00:26:33 1350153321
>>1350151
Чего только борщехлёбы не выдумают, лишь бы байты не ебайть.
Аноним 18/02/19 Пнд 00:41:50 1350160322
>>1350123
Да, можно и нужно. Не слушай поехавших.
Аноним 18/02/19 Пнд 01:56:28 1350185323
>>1349964
«Учение Маркса всесильно, потому что оно верно»
Аноним 18/02/19 Пнд 02:04:44 1350188324
>>1350123
Конечно можно, даже необходимо. Обязательно перед эти выучи работу машины Тьюринга, автомата Маркова, машины Поста. Иначе будешь говнокодером
Аноним 18/02/19 Пнд 03:29:43 1350202325
>>1350185
Ты же петухан, который ни одной программы не написал.
Иначе было бы очевидно, что UTF-8 это говно ёбаное, вообще невозможно с ним работать, потому что это не простые строки, а пожатые. Ты буквально не можешь взять какой-то символ из строки так: ch = str[5] - взять пятый символ из строки, потому что там пожато и символы все разной длины, так что нужно ПАРСИТЬ СТРОКУ НАХУЙ. Это всё равно что держать все структуры и прочие буферы в памяти пожатыми в ZIP, и при каждом обращении распаковывать, таская за собой библиотеку зипа. Ты чё, ебанутый, блять? Это не только неудобно, но и производительность по пизде. Это каким же надо быть отбитым говноделом, иди нахуй на питоне говни, пидрила тупорылая.
Аноним 18/02/19 Пнд 05:41:43 1350218326
>>1350123
нужно скорее понимать, что лямбды в с++ скорее синтаксический сахар
нужно понимать, как раньше использовались функциональные объекты, их фишки, как использовались такие оригинальные средства как bind и mem_fun
посредством лямб делать те же задачи стало удобней
но это не лямбды функциональных языков
Аноним 18/02/19 Пнд 05:45:27 1350220327
>>1350218
кстати, функциональные объекты в крестах так и не стали популярными, большинство кода работающего с stl так и работало в структурном стиле с унылым циклом по коллекциям, это конечно печаельно
по видимому из-за того что поддержка вложенных классов в компиляторах медленно появлялась, да и потому что вложенные классы вообще считались экзотической особенностью и не стали по настоящему рабочим инструментом
Аноним 18/02/19 Пнд 07:26:04 1350233328
>>1350202
И сколько байт займёт самый большой символ?
Аноним 18/02/19 Пнд 08:18:47 1350244329
>>1350233
В виндоус для юникода используется 2 байта. Это не совсем верно, потому что бывает символы которые в 2 байта не влезут, но там совсем экзотика - всякие матановые символы.
Аноним 18/02/19 Пнд 08:21:19 1350246330
>>1350220
Потому что несмотря циклы проще, лучше читаются, быстрее компилируются, дают более понятные сообщения об ошибках.

Нет никаких причин извращаться со всякими transform, back_inserter и лямбдами, если можно написать простой цикл.
Аноним 18/02/19 Пнд 08:52:32 1350251331
Аноним 18/02/19 Пнд 09:47:08 1350265332
>>1350246
>Нет никаких причин
причина в увеличении абстракции
разделяется код обхода контейнера и код выполняющий что-то над элементами
это если простыми словами, тк ты похоже low
Аноним 18/02/19 Пнд 11:07:08 1350293333
Up
Аноним 18/02/19 Пнд 11:18:13 1350299334
>>1350265
>увеличении абстракции
Но лямбда же удобнее всего, когда она на месте создается для передачи в алгоритм.
ИМХО это не увеличение абстракции, а магические числа с поведением функции.

я лоу
Аноним 18/02/19 Пнд 11:21:57 1350301335
>>1350265
>причина в увеличении говна
Поэтому и не нужно.
Аноним 18/02/19 Пнд 11:49:17 1350315336
>>1350265
>причина в увеличении абстракции
Не всегда абстракция хорошо. Особенно там, где она не нужна, иначе у тебя будут абстрактные фабрики свободных монадических стеков аппликативов-визитёров, настраиваемых через XML. Пару тредов назад давали ссылку, где хорошо расписал парень всё. http://aras-p.info/blog/2018/12/28/Modern-C-Lamentations/
Аноним 18/02/19 Пнд 12:34:57 1350340337
Аноним 18/02/19 Пнд 12:57:11 1350356338
>>1350202
>Иначе было бы очевидно, что UTF-8 это говно ёбаное
А вот инженерам из Microsoft Console Team очевидно, что за UTF-8 будущее даже во внутреннем представлении. Поэтому они переходят с UCS-2 на UTF-8 внутри.
Правда, приходится использовать под 1 UTF-8 code unit wchar_t, а не обычный char. Слишком много везде wchar_t.
Аноним 18/02/19 Пнд 12:58:07 1350357339
>>1350202
>Ты буквально не можешь взять какой-то символ из строки так: ch = str[5]
Это нигде в реальной жизни не нужно. Только в laba2, где задание звучит как "перевернуть строку".
Аноним 18/02/19 Пнд 13:43:59 1350390340
>>1350357
Когда додич писал только лаба2, и теперь рассуждает о реальной жизни
Аноним 18/02/19 Пнд 13:47:13 1350394341
Аноним 18/02/19 Пнд 13:50:48 1350399342
Аноним 18/02/19 Пнд 14:49:17 1350436343
>>1350356
Выводиться оно может хоть в UTF-8, хоть в анус мамаши, разницы нет, проблема во внутреннем представлении в программе, с которым ты работаешь.
Ну а что они там сейчас думают, мне плевать, как и данному треду, потому что тут C++, а не сисярпы и прочие UWP-скрипты говно-мобилко-веб-платформы, которую они лепят, стараясь убить нормальный десктоп и его приложения, т.е. С++ убить. Современный тренд - уходить с нормальных приложений на тормозные скрипты виртуальных машин, лепить обертки оберток оберток. Даже если в их строках, чтобы тупо напечатать одну букву будет вызов десятка вложенных функций, каждая с циклами по всей строке, им похуй, только рады и скажут "заебись, потому что это говно написали они и без него никто другой ничего не сможет, а значит они - гегемоны абсолютной власти. ПРОФИТ.
Аноним 18/02/19 Пнд 15:30:09 1350457344
>>1350124
Че ты шутишь? Я серьезно спрашиваю. Ты походу типичный ЧСВ-прогер не прогер, а пидор.
>>1350128
Не понял о чем ты.
>>1350160
Спасибо.
>>1350188
Спасибо, если не стебёшься.
>>1350218
Спасибо. Что такое сахар?
Аноним 18/02/19 Пнд 15:50:51 1350468345
Screenshot 2019[...].png (90Кб, 1059x592)
1059x592
Почему этот код мне загагулины пишет в файл ,вместо строки fuck
Аноним 18/02/19 Пнд 16:09:02 1350474346
>>1350436
С++ это хайлоад и системное программирование в основном, десктоп на С++ уже считай мертв. Но я понимаю твой подрыв..
Аноним 18/02/19 Пнд 17:46:19 1350525347
>>1350474
>десктоп на С++ уже считай мертв
Ой вэй, слухи сильно преувеличены.
Просто взял несколько приложений, что у меня на рабочем столе: LightAlloy, Audacity, Sandboxie, MS Office, куча музыкального софта, торенты, браузер. Все писано на плюсах, либо с их участием.
Аноним 18/02/19 Пнд 17:54:06 1350528348
>>1350468
Как setbuf узнает размер буфера который ты ему сунул?
Аноним 18/02/19 Пнд 18:02:15 1350531349
>>1350468
>C-шный массив, вместо array или string
Аноним 18/02/19 Пнд 19:05:38 1350561350
Аноним 18/02/19 Пнд 20:28:40 1350603351
а как найти адрес ссылок в плюсах?
Аноним 18/02/19 Пнд 20:58:58 1350620352
>>1350603
Все ссылки находятся по адресу улица Пушкина, дом Колотушкина
Ссылка не объект, а потому не имеет адреса.
Аноним 18/02/19 Пнд 22:17:58 1350664353
>>1350620
но ведь они хранятся в оперативке под определенным адресом, проблема в том, что обычным способом, адрес указывается на объект в любом случае
Аноним 18/02/19 Пнд 22:19:20 1350666354
>>1350664
По твоему адрес оперативки хранит адрес на другой адрес оперативки?
Аноним 18/02/19 Пнд 22:46:37 1350679355
image.png (32Кб, 494x220)
494x220
Что делает этот код ? Нихуя разобрать не могу.


Аноним 18/02/19 Пнд 22:55:16 1350684356
>>1350679
> 494x220
> Нихуя разобрать не могу
Аноним 18/02/19 Пнд 23:04:34 1350690357
>>1350684
У тебя 16к монитор что-ли? Все видно, не пизди.
Аноним 18/02/19 Пнд 23:11:15 1350691358
>>1350679
Выводит какую-то хуйню, посмотри, что ебучие методы возвращают и узнаешь что.
Аноним 18/02/19 Пнд 23:13:11 1350693359
>>1350691
cout я добавил чтобы посомтреть что там.
Аноним 18/02/19 Пнд 23:35:17 1350698360
Аноним 19/02/19 Втр 04:46:24 1350744361
>>1350698
Ты видимо тоже не понимаешь что она делает.
Аноним 19/02/19 Втр 06:09:31 1350749362
>>1350679
Похоже на высер какого-то декомпилятора. Мне непонятно, например, почему в строчке с return есть +1. Примерно понятно, откуда взялся >>5 - декомпиляторы любят подобный мусор.

Но в целом из названия и кода понятно - метод возвращает соответствующую имени класса virtual table.

По адресу self лежит табличка вида

указатель_на_virtual_table указатель_на_имя_класса
указатель_на_virtual_table указатель_на_имя_класса
указатель_на_virtual_table указатель_на_имя_класса
указатель_на_virtual_table указатель_на_имя_класса

Размер строки таблицы - 0x8. По смещению 0x4 лежит указатель на имя класса, который загружается в test и дальше сравнивается по имени с name. По смещению 0x0 лежит указатель на йобу, в йобе по смещению в 1 байт лежит указатель на virtual table.


Аноним 19/02/19 Втр 06:43:00 1350752363
>>1350029
неа, просто 3д тыкнул, одна версия ~10гб весит, если несколько внутри тыкнуть точек
Аноним 19/02/19 Втр 11:06:19 1350805364
1.png (52Кб, 371x242)
371x242
Нужно ли дрочить С перед тем как садиться за С++?
Аноним 19/02/19 Втр 11:12:11 1350809365
Аноним 19/02/19 Втр 11:13:27 1350810366
Аноним 19/02/19 Втр 11:15:49 1350811367
Аноним 19/02/19 Втр 11:56:40 1350829368
undefined behav[...].png (40Кб, 430x241)
430x241
>>1350805
Половина фич плюсов - попытка исправить недочёты сей. Следующая четверть - попытка исправить недочёты плюсов. Если тебе меньше 19 лет, то я бы начал с си. Иначе - добро пожаловать в волшебный мир "а нахрена это сделано вот так".
Аноним 19/02/19 Втр 11:59:32 1350832369
>>1350829
>"а нахрена это сделано вот так".
Хз, загуглить можно
Аноним 19/02/19 Втр 12:12:39 1350838370
>>1350805
нет, но тебе все равно придется
Аноним 19/02/19 Втр 12:14:26 1350839371
>>1350805
вообще не стоит изучать щас с++ если ты новичек
выбери что-то другое
это не троллинг, это лучший совет который можешь получить
Аноним 19/02/19 Втр 12:53:05 1350857372
>>1350829
Хз, мне наоборот всё логичным кажется, то и дело восхищаюсь инженерным гением разработчиков компилятора.
Аноним 19/02/19 Втр 13:00:02 1350859373
>>1350749
Двачирую, разобрался. Эта функция делает обход таблиц в памяти и ищет подходящую по имени.
Аноним 19/02/19 Втр 13:01:12 1350860374
>>1350218
>ригинальные средства
Попижженые из хаскеля какого.
Аноним 19/02/19 Втр 13:02:01 1350861375
>>1350805
Смотря что ты собрался делать потом на плюсах. Если системное программирование/десктоп, то лучше начать с СИ. Если решил работать на высоком уровне абстракции, то СИ учить не нужно. Накатываешь какой-нибудь QT и рубишься.
Аноним 19/02/19 Втр 15:25:20 1350889376
Можно где-нибудь найти плюсопрограммиста для работы за еду или около того ну там например за $500 в месяц? Мне для прототипа моего персонального проекта нужно часть на плюсах допилить, а у самого времени нет, где искать погромиста?
Аноним 19/02/19 Втр 15:40:57 1350896377
>>1350829
Так я понял, что С++ это С со всякими новыми парадигмами и фичами из коробки. Я же могу просто писать как на ванильной сишке и не использовать привнесенные костыли которые мне не нравятся?
>>1350839
Почему так? Знаю только пиздон, но не могу придумать, что на нем писать кроме скриптиков, а на работки он идет обычно как бонус, а не основное требование.
Веб-языки меня не прельщают, т.к. ненавижу сети вообще и даже на фронтенде я так понимаю мне придется с ними часто париться. Не статические сайтики на бесплатных настроенных хостингах же всю жизнь делать.
>>1350861
Спасибо.
Аноним 19/02/19 Втр 16:25:13 1350907378
>>1350889
Пили телегу, с работы приду напишу.
Аноним 19/02/19 Втр 16:47:15 1350924379
>>1350896
> что С++ это С со всякими новыми парадигмами и фичами из коробки
Это абсолютно другой язык, но практически совместимый с си. Ты вполне можешь писать на си, используя только некие фичи крестов, но зачем?
Аноним 19/02/19 Втр 16:51:46 1350925380
Аноним 19/02/19 Втр 18:36:15 1350957381
Возможно сохранить определённый метод определённого класса для дальнейшего вызова с различными аргументами? Классы разные, но аргументы методов одинаковые.

Кроме сохранения лямбда функции в std::functional ничего в голову не приходит (и такое решение мне не очень нравится по эстетическим соображениям - там наверняка намного больше ресурсов уходит, чем требуется для сохранения двух указателей на класс и метод) - с шаблонами ещё совсем не разобрался, и как это написать мне не понятно - каким-то образом нужно сохранить тип класса, чтобы вызов его метода по указателю скомпилировался и сработал. Может быть там есть какая-то хитрая фича с использование std::invoke или ещё чего-нибудь?
Аноним 19/02/19 Втр 18:48:23 1350960382
>>1350957
>(и такое решение мне не очень нравится по эстетическим соображениям - там наверняка намного больше ресурсов уходит, чем требуется для сохранения двух указателей на класс и метод
Ебанутый, лучше просто сдохни
Аноним 19/02/19 Втр 21:00:10 1351036383
>>1350957
>чем требуется для сохранения двух указателей на класс и метод
Указатели на метод обычно очень нетривиальные (это не обычный указатель), и не факт, что они будут расходовать меньше ресурсов, чем лямбда.
Аноним 19/02/19 Втр 21:11:43 1351040384
>>1351036
Ну это только если с виртуальным наследованием. Там компилятору и правда приходится дрочить вприсядку, чтобы получить правильное смещение.
Аноним 19/02/19 Втр 21:24:52 1351044385
>>1350896
Да, ибо абсолютно ВЕСЬ функционал крестиков реализовываем на сях.
Аноним 19/02/19 Втр 21:29:33 1351047386
Аноны, стоит вкатываться в метапрограммирование и подавать резюме в майрософт, чтобы студию разрабатывать?
Аноним 19/02/19 Втр 22:11:19 1351066387
>>1351047
они не спонсируют визу вроде бы, сам хотел в команду студии податься в свое время.

А вкатиться в метапрограммирование для самого себя очень полезно.
Аноним 19/02/19 Втр 22:11:51 1351067388
>>1351036
>и не факт, что они будут расходовать меньше ресурсов
То есть если переписать все эти методы как статические и явно передавать им указатель на экземпляр (в таком случае тип всех методов (точнее, уже почти просто функций) совпадает), то это будет лучше в плане ресурсов?
Аноним 19/02/19 Втр 22:46:19 1351077389
>>1350857
У меня довольно много претензий к языку, если честно. Первое, что приходит на ум:
>почему std::initializer_list в сочетании с list initialization рушит все оверлоуды?
>такие правила выбора, тебе просто стоит запомнить
>почему при передаче в тред ссылки я должен использовать std::ref?
>такая семантика у ссылок, тебе просто стоит запомнить
>кто в своём уме придумал Most Vexing Parse? Просто потому что кому-то взбрела в голову идея объявления функции внутри функции, не значит, что это надо было делать
>ну, эта грамматика нам от сей досталась, тебе просто стоит запомнить
>std::unordered_map всегда использует open_hashing
>такой вот он STL, тебе просто стоит запомнить
>почему нет аналога defer? Я не хочу плодить классы, если мне что-то нужно всего один раз
>пользуйся RAII и молчи
>почему мой проект собирается два часа?
>потому что надо использовать меньше темплейтов, а темплейты генерят столько кода, потому что мы унаследовали модель компиляции сей
Если напрячься, можно было бы ещё много чего вспомнить. Да, все эти проблемы решаемы. Да, для большинства это не проблемы. Но если бы их не было, мир бы стал чуточку лучше и добрее. И ведь другого "Си, но лучше" на горизонте нет. Jai мог бы стать, но по текущему состоянию он становится таким же кластерфаком, что и плюсы.
Аноним 19/02/19 Втр 22:50:06 1351079390
>>1351066
>они не спонсируют визу вроде бы
Прикинься индусом, тебе H1B с радостью дадут.
Аноним 20/02/19 Срд 00:06:23 1351121391
>>1351077
>Но если бы их не было, мир бы стал чуточку лучше и добрее
Я бы даже согласился на то, чтобы все это осталось.
Но что мешает как-то визуализировать при необходимости, то что фактически происходит "между строк". Те же временные объекты, например.

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

И ладно бы всем похуй было бы на вкатывальщиков. Так ведь нет, книжки пишут, курсы всякие пилят, а такой очевидной вещи за 35 лет никто не сделал.
Аноним 20/02/19 Срд 10:33:02 1351225392
67575675764.PNG (1Кб, 202x53)
202x53
65757657657.PNG (25Кб, 415x146)
415x146
786868.PNG (20Кб, 433x766)
433x766
89797979879.PNG (27Кб, 736x227)
736x227
>>1342442 (OP)
Что за херня? Почему в пайтоне один результат, а в сиплюсах другой?
Аноним 20/02/19 Срд 10:33:43 1351226393
>>1351225
Алсо, пайтоновский вариант ближе к правильному ответу.
Аноним 20/02/19 Срд 10:44:28 1351230394
>>1351225
Похоже, что кресты 1 / 3 ебошут целочисленным делением, т. е. 1 / 3 == 0.
Попробуй записать так: 1.0 / 3
Аноним 20/02/19 Срд 10:49:13 1351231395
453453543545.PNG (25Кб, 522x243)
522x243
>>1351230
Ого, а теперь прям идеально работает.
Аноним 20/02/19 Срд 10:52:21 1351232396
>>1351231
А вообще православнее все цифры записать с точкой.
Цифра без точки считается int, а с точкой - double. Поэтому в твоем выражении будут неявные преобразования int в double.
Если все записать с точками, то преобразований не потребуется.
Аноним 20/02/19 Срд 11:08:33 1351239397
>>1351232
>преобразований не потребуется
Они всё равно будут только при компиляции и будут только там где это требуется
Аноним 20/02/19 Срд 11:21:49 1351248398
>>1351239
Да, точно, константы же
Аноним 20/02/19 Срд 11:23:40 1351251399
Аноним 20/02/19 Срд 14:35:45 1351326400
>>1342442 (OP)
Какая unix система чаще всего используется у разработчиков? Как пример для понимания Bubuntu, CentOS/Fedora.

И что-нибудь кроме g++?
Аноним 20/02/19 Срд 14:40:18 1351329401
>>1351326
>у разработчиков
Ну смотря, что ты себе разработать хочешь
Аноним 20/02/19 Срд 14:46:14 1351332402
>>1351329
Вопрос возник из-за того, что в одной вакансии требуется знание линуха плюс netbeans и я отчаянно пытаюсь узнать, а что вообще используют программисты. Речь как ни странно идёт именно о С++ программировании. Мне нужно это всё опробовать, дабы не сесть в лужу.
Аноним 20/02/19 Срд 14:51:48 1351335403
>>1351332
Ну скажи, что знаком. Припезди, что однажды пиво с Торвальдсом пил
Аноним 20/02/19 Срд 14:55:00 1351337404
>>1351335
Я же эту бабанту или федору ставить буду, потом на это нетбос и г++, надо потренироваться иначе буду красным сидеть и гагатать от происходящего.

Вообще для новичка гит и прочее, то есть портфолио очень важно, да? Программы как оно самое есть если что.

И ещё вопрос. Как оно вообще происходит то, там, на работе программиста на линух? К самому линух отношусь нейтрально из-за большого веса VS 2017.
Аноним 20/02/19 Срд 16:23:44 1351370405
>>1351326
Ubuntu-подобные системы де-факто стандарт для обычного десктопа. Если бы мне пришлось сидеть с красноглазым говном вместо ОС, я бы, наверное, накатил Kubuntu.

>>1351337
С каких пор ВЕС ВИЖУАЛ СТУДИИ это важно? У тебя ССД на 60 гигов? Ну серьезно. Флаеры пораздавай день, купить на 256гб.

И да, нетбинс это просто анальный террор, если пользоваться не-студией, то хотя-бы культикреатор, а не этот жавадерьмо.
Аноним 20/02/19 Срд 16:38:16 1351377406
>>1351370
У меня есть ССД на 256, но время установки огорчает, сильно.

Касаемо нетбоса, я понимаю. И что такое кутьикреатор? А эклипс?

Касаемо бабанты, это хорошо, меньше проблем, наверное.


И ещё вопрос, тут стращают, шо шаблоны это плохо. Так что же это получается, мне придётся писать некоторое количество реализаций классов на нужные мне типы данных и терпеть ради скорости?

И второе. Как раньше народ игры на С писал. Например, дум. Что конкретно? Вот есть кучка монстров, их над создать, причём разных и управлять, и если про управлять это допустим стек, очередь или список самодельные, то как быть с разнми монстрами? Структуры?
Аноним 20/02/19 Срд 17:00:50 1351395407
>>1351377
>И что такое кутьикреатор?
qtCreator. Более-менее компактная и минималистичная ide. Хреново справляется с подсветкой (и автоотступами) всяких новых фич из новых стандартов, в остальном почти золото, по сравнению со всякими студиями или тормозными clion - я по своей воле ни на чём другом писать не стал бы. Попробуй, сам посмотри, оно за десять-пятнадцать минут ставится.

>И второе. Как раньше народ игры на С писал.
А в чём проблема?
>и если про управлять это допустим стек, очередь
Вот тут вообще не понял что ты имеешь ввиду.
Угу, структуры. У тебя есть структура под монстра. Можно несколько разных как разные сущности, если требуется для разных функций. Или можно в структуре хранить указатель на "пользовательские данные", которые требуются для конкретного монстра. В зависимости от типа монстра вызываются разные функции, чтобы они по разному действовали во время игры. Хранить монстров в списке или массиве, как угодно.
Аноним 20/02/19 Срд 17:25:22 1351410408
15340952605190.jpg (54Кб, 960x960)
960x960
Вечер в хату молодые(и не очень) люди! Намедни всучили лютую(для меня дауна) лабу на плюсах, а я не знаю как подступиться к ней даже:

Постановка задачи.

Разработать объектную программу для хранения и обработки данных об участниках групп социальных сетей. Сеть рассматривается как набор групп, где каждая группа имеет уникальное название. В свою очередь, каждая группа рассматривается как набор участников, причем каждый участник имеет уникальное имя и параметр «Статус участника».

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

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

Сначала в консоли, в перспективе еще и ГУЙ запилить, но это все лирика. Как это хоть примерно должно выглядеть?
Аноним 20/02/19 Срд 17:39:17 1351420409
>>1351377
>Как раньше народ игры на С писал
Точно так же, как и сегодня пишут на сях, плюсах, питонах и других языках.

Если сильно упростить, в том же думе каждом кадре тебе нужно сделать:
1) Посмотреть текущее состояние, скажем, клавиатуры
2) Исходя из состояния алавиатуры обновить мир
3) Вывести мир на экран
4) Воспроизвести звуки
5) GOTO 1

Каждый из этих шагов есть отдельная функция, которую тоже можно разбить на подпроблемы. Вот так и пишется. Только в реальны0 приложениях есть куча других вещей типа загрузки-выгрузки ресурсов, обработки сети и тд.
Аноним 20/02/19 Срд 17:41:07 1351421410
>>1351395
Попробую под бабанту, всё таки простота сред на линух манит, недавно прознал про билдер, восставший, задумался, ибо вес 2015 и 2017 просто повергает в шок, 2015 - 35ГБ, а уж сколько 2017 остаётся гадать.


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





Я ту поглядел время появления шаблонов, это начало 90х, так?
Аноним 20/02/19 Срд 17:42:25 1351422411
>>1351377
>установки огорчает
Я не понимаю твоей проблемы. 1 раз поставил, и забыл. Апдейты отнимают по минуте.

> Касаемо нетбоса, я понимаю. И что такое кутьикреатор? А эклипс?
QtCreator - написан на крестах, и не лагает как остальное джавадерьмо. Я бы сказал, что топ2 ИДЕ после божественной студии.

> И ещё вопрос, тут стращают, шо шаблоны это плохо
Шаблоны - это инструмент. Иногда инструмент не подходит под действие, иногда подходит идеально. Знать и уметь в шаблоны надо хоть на каком-то уровне. Я на работе в свое время нахуевертил вариадиков, зато у нас auto buff = serialize(a,b,c,d,e,f, ...) например, вместо хуевой горы говна.

> Как раньше народ игры на С писал.
Народ писал и на ассемблере. Идеи одни и те же, плюс минус, как написал >>1351420 просто кресты выразительнее, нежели си






Аноним 20/02/19 Срд 17:42:45 1351423412
>>1351420
Один сканлайн с бросанием лучей это целая куча функций и структур, забыл ещё про отброс того, шо не видим, по идее кстер должен решать эту проблему.

Считаю это главным гемором.
Аноним 20/02/19 Срд 17:45:35 1351427413
>>1351422
>Я не понимаю твоей проблемы.

Йота, Ростелеком не может провести к вам инет, ведь вы в чёрном списке с 90х годов плюс ВЫ невыгодны для нас, похуй, что рядом с центром ДС2.
А так, убедил, таки попробую его добыть, но пока для меня круче 2010 ВС ничего нет.
Аноним 20/02/19 Срд 17:57:23 1351433414
>>1351420
>10 Посмотреть текущее состояние, скажем, клавиатуры
>20 Исходя из состояния клавиатуры обновить мир
>30 Вывести мир на экран
>40 Воспроизвести звуки
>50 GOTO 10
Поправил зумера.

Аноним 20/02/19 Срд 18:04:15 1351438415
>>1351427
Что-то как-то прям очень тоскливо.
Аноним 20/02/19 Срд 18:21:12 1351448416
>>1351410
>адресного разомкнутого упорядоченного однонаправленного списка с заголовком
Non-intrusive singly linked list что-ли? Ну а так у тебя всё расписано.

Есть связный список групп. Группы можно добавлять в список, удалять из него, изменить название или произвести операцию над участниками этой группы. В каждой группе есть массив участников (не знаю, он должен быть статического размера или динамически расширяемый). Участников можно добавлять, удалять, или изменять имя и статус.

>>1351433
На телефоне был, извиняйте.
...чёрт, на телефоне. Скоро стану как эта вся молодёжь. Надо пить больше Монстра и играть в кваку. clack Да, вот в моё время были игры чтобы погамать, не то что сейчас. sip
Аноним 20/02/19 Срд 18:57:34 1351471417
>>1351448
Ты повторил то, что написано в задании, это никак не помогает(
Я структурно не могу понять что да как. То есть, я создам класс "Участник", "Группа" и "СоцСеть" Потом отдельно нужно навернуть классы "Очередь" и "Список". Очередь будет в private секции Группы, а Список в свою очередь там же у СоцСети или как?
Аноним 20/02/19 Срд 18:57:42 1351472418
Знатоки ООП здесь?
Чем отличается паттерн Facade от Delegation ?
Аноним 20/02/19 Срд 19:23:38 1351490419
>>1351472
цпп != ооп
точнее, иди нахуй отсюда
Аноним 20/02/19 Срд 19:29:37 1351494420
>>1351490
А я кроме цпп знать ничего не желаю, так что ооп == цпп но цпп != ооп тоже верно
Аноним 20/02/19 Срд 19:31:35 1351495421
>>1351370
>У тебя ССД на 60 гигов? Ну серьезно. Флаеры пораздавай день, купить на 256гб.
И сколько дней мне надо флаеры раздавать, чтобы новый ноут взять?
Аноним 20/02/19 Срд 19:46:19 1351503422
>>1351494
К энтерпрайз паттернам это тебе к джавистам надо.
Аноним 20/02/19 Срд 19:54:34 1351509423
>>1351503
Ну я кроме плюсов языками не владею, да и их только учу.
>к джавистам надо.
Для меня это тоже самое, что на монгольском языке ответ искать.

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

Тащить же сам пример из книжки будет слишком громоздко - 9 классов, код с объяснениями занимает около 30 страниц.
Аноним 20/02/19 Срд 21:19:59 1351563424
>>1351495
не надо было хуевый покупать изначально
Аноним 20/02/19 Срд 21:57:48 1351582425
>>1351509
Как показывает моя практика работы С++ макакой (а это уже почти 5 лет), то эти убер-паттерны нигде не используются, тупо за счет того, что они безумно громоздкие, и слишком глобальные. Если ты какая-нибудь джава-энтерпрайз макака - может быть да. Кресты вообще про другое.
Аноним 20/02/19 Срд 22:06:49 1351588426
>>1351472
Если правильно помню, то Фасад - упрощение сложного интерфейса. То есть тебе нужно, скажем, создать объекты A, B, C и вызвать у каждого по десять методов. Вместо этого ты делаешь класс Zayobcer, у которого есть метод makeZayobca(), в котором выполняются все эти действия. То есть это по сути простое применение абстракции, но энтерпрайз в лице банды четырёх сделал, как обычно, всё сложнее, чем оно на самом деле.
Delegation не помню, что бы в GoF был. Судя по гуглу, это, если тебе нужно использовать метод foo класса A, но чуть расширить b lheubv, ты создаёшь класс B и хранишь в нём экземпляр А (например, по имени m_a). Затем B::foo() просто вызывает m_a->foo(). Сейчас такую вещь нахывают принципом composition over inheritance.
Аноним 20/02/19 Срд 22:12:40 1351596427
>>1351472
Facade использует Delegation. По сути одно и тоже, просто разные цели. Цель Delegation - размазать реализацию класса по нескольким с целью сделать возможной модификацию поведения класса (например dependency injection) или преиспользовать код (сделать что-то похожое на миксины). Цель Facade - не светить наружу десятком классов, а выставить только один. Но Facade реализуется с помощью Delegation, тоесть реальной разницы нет.
Аноним 21/02/19 Чтв 00:28:32 1351679428
>>1351563
>не надо было хуевый покупать изначально
Он изначально пиздатый, если винду и студию не ставить.
Аноним 21/02/19 Чтв 00:48:15 1351691429
>>1350957>>1351036
>и не факт, что они будут расходовать меньше ресурсов, чем лямбда.
Угу, ты оказался прав. Лямбды хороши.

Сравнил дома в каком-то искусственном тесте, 6 типов классов, 100к экземпляров каждого типа, 10кк сохранённых пар, 10кк вызовов:
1. std::bind сохранённые в std::function
64 байта на каждую пару, общее время сохранения - 1700 (миллионов тактов), вызовы - 462. Отвратительно.
2. Лямбды с связыванием по ссылке в std::function
32 байт на пару, 758, 427 (выходит лямбды почти не занимают память (std::function уже имеет размер в 32 байта) - видимо как-то хитро сжимаются, сохраняясь по одному разу для каждого из 6 классов, а одно связанное значения сохраняется в std::function (если добавить ещё связанных переменных, то при превышении захвата в 16 байт потребление скачком прыгает до 64 байт на пару) Вот бы где почитать про подобные тонкости реализации...
3. Пары из статического метода в std::function + void указывающий на экземпляр
40 байт, 758, 426
4. Статические методы в обычных указателях на функции + void указывающий на экземпляр(>>1351067)
16 байт, 805, 334

Не представляю почему сохранение в std::function<int(void,int)> быстрее, чем в int ()(void,int) - числа почти не прыгают, из раза в раз получается 805 и 758-759. Если попытаться выровнять структуру до 32 или тех же 40 байт - время сохранения только увеличивается.
Аноним 21/02/19 Чтв 00:50:18 1351693430
Аноны, а нет ли такого сборщика который бы вытаскивал те функции, которые используются в программе ну и функции внутри тех функций и таким образом собирал программу минимизируя вес? В больших библиотеках ведь не 100% кода используется.
мимо-нуфаг
Аноним 21/02/19 Чтв 00:54:58 1351696431
image.png (5Кб, 739x79)
739x79
>>1351693
Флаг -Os не подходит?
Аноним 21/02/19 Чтв 00:56:10 1351698432
>>1351696
Да я названия не знал просто, спасибо
Аноним 21/02/19 Чтв 01:00:34 1351702433
>>1351698
Только оно посредственно работает, у меня почти не поменялся размер в открытом сейчас проекте.
Аноним 21/02/19 Чтв 01:22:16 1351713434
>>1345059
Сложно. Даже обычный std::string имеет хуеву тучу тонкостей которые ты можешь даже не знать, не то что заимплементить. Типа того что при малых длинах строк контент хранится в самой структуре и аллокаций памяти не происходит.
То есть, написать самому можно (и если есть время и упорство - постараться точно стоит), но гарантированно выйдет менее производительный чем стандартный.
Аноним 21/02/19 Чтв 01:25:03 1351714435
>>1345224
Вроде в 17-х крестах noexcept спецификация является частью системы типов, а значит можно в компайл тайме выбирать между перемещением и копированием.
К тому же, std::vector как мне кажется юзает именно перемещение, ведь ты можешь сделать вектор юник поинтеров, например.
21/02/19 Чтв 03:42:47 1351736436
>>1351714
>Вроде в 17-х крестах noexcept спецификация является частью системы типов, а значит можно в компайл тайме выбирать между перемещением и копированием.
"В огороде бузина, а значит в Киеве дядька".
Пиздец, нахуй.
https://en.cppreference.com/w/cpp/utility/move_if_noexcept существует со времён C++11 и никакие части системы типов тут не нужны.
Аноним 21/02/19 Чтв 07:53:53 1351760437
>>1351582
Используются. Другой вопрос можно/нужно ли этого избежать.
Ящитаю так: если есть вероятность что-то встретить в чужом коде, то есть и смысл в этом разобраться.

>>1351588
>Delegation не помню, что бы в GoF был
Да, в ГоФ не описывался. На педивикии есть.

>>1351596
>Facade реализуется с помощью Delegation
Вот это, похоже, и есть мой случай.


Алсо, забавную вещь нагуглил в процессе
https://en.wikipedia.org/wiki/Schizophrenia_(object-oriented_programming)
Аноним 21/02/19 Чтв 08:12:53 1351767438
>>1351760
>встретить в чужом коде
Ты чужого кода не видел и не увидишь до гроба, олимпиадная макака.
Аноним 21/02/19 Чтв 11:22:24 1351804439
>>1351582
>паттерны нигде не используются
Паттерны какбэ не указывают что тебе делать, это про просто список широко распространенных уже используемых техник. Их назвали для более понятного общения программистов друг с другом, а не твоей обязанности их использовать.
Аноним 21/02/19 Чтв 11:31:32 1351808440
>>1351582
>практика работы С++
хуевая у тебя практика, однако
за много лет коммьюнити с++ накопило большую базу знаний о реализации паттернов в языке
они могут реализовываться динамически, в стиле gof и чем то копировать смаллтолк приемы
они могут реализовываться статически, в стиле книги александреску "соверменное проектирование" и дальше то что пошло в буст на основе этого
они могут даже реализовываться в стилях функционального программирования, что одно время было популярно и стало возможным с последними стандартами языка
зачастую перед проектировщиком сейчас не стоит вопрос о придумывании чего-то нового, а вопрос выбора, как будет реализовываться та или иная связка паттернов..
Аноним 21/02/19 Чтв 11:39:15 1351812441
>>1351808
Так и что получается, дрочишь паттерны и можно сразу сеньором помидором устраиваться?
Аноним 21/02/19 Чтв 11:42:02 1351814442
>>1351808
>хуевая у тебя практика, однако
Ну почему сразу хуевая? Просто повезло человеку с местом работы.
Аноним 21/02/19 Чтв 11:43:13 1351815443
>>1351812
если отвечать без ерничанья, то простому то кодеру не надо это зубрить
в том смысле что на это надо нихуево времени потратить
чтобы тот же gof проштудировать надо время
не говоря уж о книжке александреску, до нее надо читать "шаблоны" джосаттиса иначе вообще нихуя не понятна магия будет
ну и само, собой понимать, что все не стоит на месте, и то что там уже понаписано, щас делают немного другими способами, тк новые стандарты языка щас уже, новые семантические и синтаксические конструкции есть
скорее это нужно проектировщикам библиотек, архитекторам.. в общем уровень ведущего кодера и выше..
Аноним 21/02/19 Чтв 15:52:30 1351975444
#define TEXT "This is a text"

const char* giveText()
{
return TEXT;
}

Такое может работать, или будет ошибка?
Аноним 21/02/19 Чтв 15:58:08 1351980445
>>1351975
будет работать, но нахера так сложно?
Аноним 21/02/19 Чтв 16:02:44 1351982446
>>1351980
Чисто теоретически. Интересно, где хранится константа. Не будет ли той же ошибки, что и при возвращении указателя на локальный объект, который удаляется при выходе из скопа
Аноним 21/02/19 Чтв 16:14:51 1351987447
>>1351982
Какая константа, ты о чем?
TEXT при компиляции заменится на "This is a text", вот и все
Аноним 21/02/19 Чтв 16:16:03 1351988448
>>1351982
"This is a text" это статическая сишная строка, которая хранится в образе экзешника. Т.е. у нее есть строго определенное место, и каждый раз ты будешь на нее указатель возвращать.
Аноним 21/02/19 Чтв 16:22:35 1351996449
image.png (4Кб, 402x44)
402x44
>>1351982
>Интересно, где хранится константа.
Ну, так и прогугли - "где хранятся строковые литералы?"
Насколько я помню в какой-то области перед глобальными переменными, что подтверждается значениями указателей. (тут для сравнения указатели на переменные из стека, из кучи и глобальную)
Аноним 21/02/19 Чтв 16:25:28 1351999450
>>1351996
Полагаю, здесь у тебя дата-мегмент.
Это зависит от компайлера, на самом деле. Я не знаком с самыми современными трендами в мемори лейаутах, но главное, что они не хранятся на стеке, что позволяет им быть доступными из любого места в коде.
Аноним 21/02/19 Чтв 17:06:57 1352027451

Есть тут кто? На печально известную бабанту поставил нетбос и благополучно подключил Г++, но вот беда, как это дело собирать, в моём случае есть четыре простеньких файла, вариант на хабре с прописанием всего этого дела в консоли не впечатлил и хотелось БЭ автоматизации. Я скромно догадываюсь, что нужно что-то скачать от ГНУ, чтобы это помогало собирать всю эту кучу и показывать результат.
Аноним 21/02/19 Чтв 17:13:20 1352033452
>>1351996
>>1351996
поведение будет зависеть еще и от ключа компиляторов, которое управляет совместимостью
раньше это не было строковой константой, в него можно было писать
к примеру, в книжке кернигана "программное окружение юникс" только в путь так делают - в нескольких местах в примерах там изменяют строковый литерал
Аноним 21/02/19 Чтв 17:36:21 1352060453
>>1352033
VirtualProtect() - делаешь область доступной на запись и пишешь.
21/02/19 Чтв 17:37:03 1352061454