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

02/12/16 - Конкурс визуальных новелл доски /ruvn/
15/11/16 - **НОВЫЙ ФУНКЦИОНАЛ** - Стикеры
09/10/16 - Открыта доска /int/ - International, давайте расскажем о ней!



Новые доски: /2d/ - Аниме/Беседка • /wwe/ - WorldWide Wrestling Universe • /ch/ - Чатики и конфочки • /int/ - International • /ruvn/ - Российские визуальные новеллы • /math/ - Математика • Создай свою

[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 632 | 57 | 189
Назад Вниз Каталог Обновить

C++ #48 Аноним 05/03/17 Вск 17:43:12  947007  
143101523617395[...].jpg (68Кб, 600x410)
Шапка: https://github.com/sosachbot/cppthreadhat/wiki
Утонувший: >>931827 (OP)

Ищите тред по слову "кресты".
Аноним 05/03/17 Вск 18:30:49  947028
Повторюсь

Здрасте всем. Че интересного можно на qt написать, подкинете идей оригинальных?
Аноним 05/03/17 Вск 18:51:17  947033
>>947028
Вкотился
аустический гуй
Аноним 05/03/17 Вск 19:10:58  947048
>>947028
Скачай Battle.net аппликуху от близзарда и попробуй повторить
Аноним 05/03/17 Вск 19:18:15  947052
>>947048
хуя ты выдал)
Аноним 05/03/17 Вск 19:20:11  947053
>>947052
))))))))))
Аноним 05/03/17 Вск 19:49:41  947072
Какие годные видосы с CPPкон-ов и прочих митенгов посоветуете?
Аноним 05/03/17 Вск 20:03:10  947086
>>947072
Там дохуя всякого интересного. Например, https://www.youtube.com/watch?v=WDIkqP4JbkE
Аноним 05/03/17 Вск 20:04:33  947087
>>947028

Если ты математег, то сделай рисовалку графиков функций или алгоритм отрисовки графов.

Если ты не только математег, то сделай что-то для сферы, которая тебя интересует.

Если ты только "кодить" умеешь, то сделай компилятор.
Аноним 05/03/17 Вск 20:09:04  947091
>>947087
> рисовалку графиков функций
Нахуя?

> сделай компилятор
Нахуя?
Аноним 05/03/17 Вск 20:20:51  947104
>>947091
тогда пили игрушку
Аноним 05/03/17 Вск 20:27:20  947114
Как сконпелировать под винду, если у меня ubuntu и g++?
Аноним 05/03/17 Вск 20:30:37  947117
>>947114
http://packages.ubuntu.com/search?keywords=mingw-w64
Аноним 05/03/17 Вск 20:31:07  947118
>>947117
понял
Аноним 05/03/17 Вск 20:35:40  947121
>>947114
тевстиравыть как будишь?
Аноним 05/03/17 Вск 20:52:29  947125
>>947121
Да мне для laba1
Аноним 05/03/17 Вск 20:59:34  947133
>>947086
Спасибо, посмотрю завтра на работе. Если еще че подкинешь - буду благодарен.
Аноним 05/03/17 Вск 22:25:50  947204
>>947091

>>839257 (OP)
Аноним 06/03/17 Пнд 06:18:04  947389
У кого остались пики из летних шапок тренда?
Аноним 06/03/17 Пнд 07:30:07  947396
>>947007 (OP)
C++17 REMOVED:
register, keyword reserved for future use
bool b; ++b;
trigraphs
if you still need them, they are now part of your source file encoding, not part of language
ios aliases
auto_ptr, old <functional> stuff, random_shuffle
allocators in std::function
Аноним 06/03/17 Пнд 09:54:37  947451
>>947204
Там большая часть для php макак
Аноним 06/03/17 Пнд 12:06:52  947524
>>947396
>register, keyword reserved for future use

bombeet

>bool b; ++b;

Ибо нехуй, b|=1 лутше.


Аноним 06/03/17 Пнд 12:48:42  947547
>>947524

То есть не b|=1, а b||=1
Аноним 06/03/17 Пнд 13:16:49  947561
>>947547
> b||=1
Чем лучше b = true?
Аноним 06/03/17 Пнд 13:38:28  947572
Максимально прошаренные в С++ тут есть?

Кто-нибудь здесь разрабатывал хайлоад приложение или владеет навыками для разработки на этом фреймворке?
http://cppcms.com/wikipp/en/page/main
Аноним 06/03/17 Пнд 15:37:25  947657
>>947561

Именно это - ничем, но переменные були надо ОРать, а не складывать.

Аноним 06/03/17 Пнд 15:38:12  947658
>>947572
да
Аноним 06/03/17 Пнд 19:12:59  947810
Screenshot1.png (5Кб, 691x69)
Screenshot2.png (5Кб, 853x136)
кнопелятопроблемы ИТТ

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

Де мой ебаный кнопелятор?!
Аноним 06/03/17 Пнд 19:19:46  947815
Зачем вы используете плюсцы, когда обычная си лучше? Да и вообще название плохое у си плюс плюс. Надо было хотя бы назвать си минус плюс. А лучше чтобы не было похоже на си, теперь когда я пытаюсь найти что-то по си находится по си++. И даже -c++ не помогает это исключение слова в гугле
Аноним 06/03/17 Пнд 19:21:17  947816
>>947815
Слишком толсто. Тебе делать нечего? Иди вон - в доцку поиграй, читы для коэсика напиши. Чё ты, а?
Аноним 06/03/17 Пнд 19:36:21  947824
Моя уходить обратно в c#
Спасибо всем, кто помог с крестами
Аноним 06/03/17 Пнд 20:25:37  947860
>>947824
Удачи
Аноним 06/03/17 Пнд 20:46:55  947885
>>947860
Спасибо!
Аноним 06/03/17 Пнд 21:05:24  947906
int i, &ri = i;
i = 5; ri = 10;
std::cout << i << " " << ri << std::endl;


Я чёт не понял, а чому оно выводит 10 10?

То есть, если мы задаём значение ссылки, то и значение объекта, на который мы ссылаемся тоже будет иметь это значение, даже если мы его отдельно задаём?
Аноним 06/03/17 Пнд 21:17:37  947921
>>947906
Ты дальше 5 страниц любой книги открывал?
ri это, фактически, алиас для i. Меняешь одно, меняется второе. Меняешь второе - меняется первое.
Аноним 06/03/17 Пнд 21:35:48  947952
>>947921
>Ты дальше 5 страниц любой книги открывал?

Уже на 87 :3
Аноним 07/03/17 Втр 12:56:54  948369
>>947906
В этом и суть ссылок. Ссылки - более сейфовые и удобные указатели.
Если бы ты хотел, чтобы было две отдельных переменных, нужно было их и создавать, а не ссылку делать.
Аноним 07/03/17 Втр 13:23:30  948389
Плюсач, у меня тут в Qt нужно передавать между формами виджетами ебаную кучу переменных. Костыли типа static class подчеркиваются в QtCreator как неправильные, а проинициализировать static переменные негде. Как мне их передавать, не в сигналах же?
Аноним 07/03/17 Втр 13:41:47  948403
>>948389
Причем тут static вообще? Либо сделай конструктор, который будет инициализировать, либо публичный метод у виджета и вызови его перед show();
Аноним 07/03/17 Втр 13:46:58  948407
>>948403
> void widget->setData(int i1, int i2, int i3, int i4, int i5, int i6, int i7, int i8, int i9, int i10, unt i11, int i12, int i13, int i14, int i15, int i16, int i17, int i18, int i19, double i20);
Хуита какая-то.
Аноним 07/03/17 Втр 13:55:53  948412
>>948407
Что за данные-то?
Аноним 07/03/17 Втр 13:59:45  948414
>>948412
Данные для лабораторной по алгоритмам
Аноним 07/03/17 Втр 14:07:42  948417
>>948414
В класс закинь и передавай. И что за static class? В плюсах такого вроде нет.
Аноним 07/03/17 Втр 14:58:33  948441
>>947824
Очередной неосилятор?
Аноним 07/03/17 Втр 17:57:32  948529
>>948407
>венгерская нотация
>2017
Аноним 07/03/17 Втр 19:02:22  948625
>>948417
>что за static class
Наверно из c#. Типа класс состоящий полностью из статических полей и методов.
Аноним 07/03/17 Втр 20:42:04  948728
>>947086
Бля, когда-то пытался осилить, но он какой-то долгий и нудный
Мне выступления этого мужика нравятся, его рили интересно смотреть
https://www.youtube.com/watch?v=FnGCDLhaxKU&t=5649s&list=LLVWpQXxsK6jOFPVbmvUvbSQ&index=7
Аноним 07/03/17 Втр 20:46:36  948731
>>947091
> сделай компилятор
>Нахуя?

Чтобы разобраться как он работает и показать, что можешь, очевидно
Аноним 07/03/17 Втр 21:03:17  948736
>>947028
RS232 терминал с отображением байтов как в HEX-редакторе. Как ни странно, таких почти нет. Более-менее удобный терминал это http://hawkit.ru/progs/wterm/wterm.html
HTerm все же хуже.
Аноним 07/03/17 Втр 21:28:29  948748
>>948736
>com-порт

Их ещё используют?
Аноним 07/03/17 Втр 21:57:18  948762
>>948748
Лично писал коммуникацию между ком портами для левого говножелеза. До сих пор это стандарт во многих промышленных девайсах. Например, если взять специальные платформы для сетевых девайсов, на базе которых можно сделать, допустим, промышленный роутер - там везде есть дырки под COM порт
Гой 07/03/17 Втр 22:50:18  948794
В нулевом ничего нет. Что почитать на русском языке про базы данных. Какой язык структурированных запросов лучше и отрытее?
Аноним 07/03/17 Втр 23:05:15  948802
>>948794
Алан Бьюли, «Изучаем SQL».
Аноним 08/03/17 Срд 02:25:09  948904
>>947810

Компилятор в студии и в WDDK, лол. Не нравится - ставь кит для мингв.

Аноним 08/03/17 Срд 03:04:37  948912
>>948904
Просто что меня больше всего удивило: до этого я устанавливал креатор на другом ноутбуке. Сделал вполне стандартную установку, галочки не трогал. Но до этого возился с кнопелятором от мингв для коделайт. Но вроде поудалял всё.

Хочешь сказать - в этом дело? Или стоит переустановить креатор?
Аноним 08/03/17 Срд 03:23:56  948916
>>948912

Я хочу сказать, что в КуТэ для МСВЦ нет компилятора.
Аноним 08/03/17 Срд 03:32:10  948917
>>948916
Всё, понял. Благодарю
Аноним 08/03/17 Срд 04:22:15  948930
У меня ж стояла визуалстудия, только я её удалил. Пхд остались куски кнопелятора и кути не захотел ставить свой.

Хорошо, что есть апдейт компонентов
Аноним 08/03/17 Срд 06:21:09  948949
Здаров программисты. Наткнулся на такой вопрос на стеке http://stackoverflow.com/questions/17032267/c11-range-based-for-loop-efficiency-const-auto-i-versus-auto-i
Поясните плз, Я так и не понял что выгоднее использовать в его случае!
>for(auto i : vec)
Или
>for(const auto &i : vec)

>>947086
В этом видео к примеру юзают второй вариант, на 2:16.Ведь, большие дядьки хуйни писать не будут
провёл мини тест, и на моей пеке они работают вроде одинаково быстро... Или дело не в скорости, а в памяти?
плз проясните ситуацию
Аноним 08/03/17 Срд 07:35:19  948956
>>948949
спецификатор auto не выводит ссылочный тип, то есть, допустим, у тебя есть
std::vectir<W> a;
auto b = a;

Здесь произойдет копирование переменной a в переменную b (без учета оптимизаций компилятора, конечно же), если ты сделаешь так:
auto &c = a;

Переменная c будет просто указывать на a, то есть являться lvalue-ссылкой.
Если ты применяешь определение
auto &&d = a;

d в зависимости от последующего поведения a будет являться либо rvalue либо lvalue ссылкой.

Касательно твоего примера, если ты применяешь первый способ, тогда каждый элемент из vec ты копируешь перед использованием, что может быть накладно, если же ты применяешь auto & - объявление lvalue ссылки, тогда переменная i будет УКАЗЫВАТЬ на итерируемый элемент из vec. Если ты желаешь делать ее еще и неизменной, тогда дописываешь const.
Аноним 08/03/17 Срд 07:41:46  948958
>>948956
>первый способ - тогда каждый элемент из vec ты копируешь перед использованием, что может быть накладно
>если же ты применяешь auto & - объявление lvalue ссылки, тогда переменная i будет УКАЗЫВАТЬ на итерируемый элемент из vec.
Что лучше будет оптимальней выбрать, в плане скорости\памяти? Копирование в переменную или просто получать значение через указатель?

>что может быть накладно
Почему?
Аноним 08/03/17 Срд 07:43:57  948959
>>948958
>because a copy is cheaper than aliasing.
То есть лучше выбирать
for(auto i : vec)
??
Аноним 08/03/17 Срд 07:45:08  948960
>>948958
Смотря о чем идет речь. Если у тебя, к примеру, используется вектор int'ов или float'ов или других встроенных типов, тогда разницы особой не будет. Если ты перебираешь вектор структур данных или классы, то, лучше использовать ссылочный тип. А вообще, в свое время, Скотт Мейерс рассосал эту тему порядком и, если не ошибаюсь, советовал по-чаще применять auto&&, поскольку, тут уже компилятор решит, что будет быстрее.
Аноним 08/03/17 Срд 07:48:57  948961
spasibo35.gif (137Кб, 346x332)
>>948960
> Скотт Мейерс рассосал эту тему
Эсли бы ты подогнал годный линк, былобы ахуенно
Аноним 08/03/17 Срд 08:02:43  948962
>>948961
Короче, книга называется "Эффективный и современный C++", конкретно по c++11 и c++14, так вот, у меня выводи типов для auto на 31 странице открыт, но, конечно же, лучше начать читать с самого начала, поскольку там идет вывод типов для шаблонов и прочего, а это немаловажно при подступлении к auto.
Аноним 08/03/17 Срд 09:21:26  948977
>>948731
> Чтобы разобраться как он работает
А что тут непонятного?
Аноним 08/03/17 Срд 09:22:07  948978
>>948748
Ахуеть как часто
Аноним 08/03/17 Срд 10:09:59  948989
>>948762
Скорее всего под 485, но UART, как промышленный стандарт передачи сообщений до сих пор широко используется.
Аноним 08/03/17 Срд 11:22:54  949027
14889611022600.jpg (192Кб, 702x702)
Снимок.JPG (161Кб, 1336x736)
Анон, подскажи как работать с данными, тип которых не определён заранее.
Пишу игрушечную базу данных на C++Qt (правда всякие йоба-средства Qt использовать не хотелось бы).
Таблица хранится в файле, в начале файла храниться схема отношения (шапка таблицы с именами и типами полей) и дальше лежат записи.
Так вот, как с записями работу организовывать? Писать отдельные классы для обработки полей разных типов, с общим родительским абстрактным классом?
Аноним 08/03/17 Срд 12:06:09  949057
>>949027

База данных может знать о содержимом, о типе данных (и тогда она сможет индексировать и сортировать) а может и не знать.

Если ты хочешь, чтобы база данных знала о содержимом, у тебя есть какая-то конкретная задача. Изложи её.
Аноним 08/03/17 Срд 12:19:12  949065
hellsingcatboyb[...].jpg (53Кб, 400x590)
>>949057
"Create, read, update and delete."
Например тот же поиск, примерно соответствует операции выборки. (Выбрать из таблицы записи с определёнными значениями полей. И эти значения естественно не в байтовом "хранимом" формате задаются.)
Аноним 08/03/17 Срд 12:28:30  949073
>>949027
У тебя QVariant есть, который может хранить различные типы данных, для которых объявлены или допустимы копирующие присваивания.
Касательно базы данных, что именно ты хочешь? Из любого запроса результатом ты получаешь множество записей, которые перебираешь по-очереди и элементы этих записей как раз и представляются QVariant.
Аноним 08/03/17 Срд 12:42:34  949088
>>949065

То есть: у твоих записей есть некоторое множество текстовых (и численных?) полей.

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

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

Мапы эти должны где-то храниться, иначе процедура может искать слишком медленно.
Аноним 08/03/17 Срд 13:48:09  949129
Привет
Аноним 08/03/17 Срд 14:01:20  949144
>>949129
привет
Аноним 08/03/17 Срд 14:04:23  949146
>>948977
Типо ты без написания своего компилятора знаешь, как работает лексер, как идет парсинг в АСТ дерево, как проходит семантический и синтаксический анализ, как работают оптимизации в фронт-енд части, как происходит трансляция и генерация машинных инструкций вместе с их оптимизациями(распределение регистров и тд)?
Аноним 08/03/17 Срд 14:40:35  949187
>>949129
Привет. Как дела?
Аноним 08/03/17 Срд 14:49:22  949191
>>949146
Я вот ниче из этого не знаю. Есть годная литература или ссылки где почитать для нюфагов?
Аноним 08/03/17 Срд 14:51:03  949194
>>949191
Красная книга драгона
Аноним 08/03/17 Срд 14:53:03  949195
>>949187
Отлично. А у тебя?
Аноним 08/03/17 Срд 14:55:32  949198
>>949194
Спасибо, ознакомлюсь.
Аноним 08/03/17 Срд 16:15:30  949253
посоны, есть какие-то либы, чтобы сделать вебмку из собственных музыки и картинок на крестах? мувимейкер не советовать
Гой 08/03/17 Срд 16:26:31  949265
>>948802
так значит MySQL ? Просто раньше думал он майкрософтовский...
Аноним 08/03/17 Срд 16:49:52  949277
>>949253
ffmpeg
Аноним 08/03/17 Срд 16:54:08  949279
>>949253

Чтобы сделать видос тебе нужно:
- либа для видеокодека
- либа для контейнера
- либа для аудиокодека
- либы для декодирования всего этого

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

Есть ли что-то проще - не знаю.
Аноним 08/03/17 Срд 16:55:45  949280
>>949253

Ну и конечно https://github.com/FFmpeg/FFmpeg
Аноним 08/03/17 Срд 16:58:00  949283
Ананасы, можно ли как-нибудь отключить автоматическую перерисовку у QGraphicsView и перерисовывать его вручную, когда мне надо?
Аноним 08/03/17 Срд 17:18:57  949303
>>949253
как вы думаете если этого мудака запереть в комнате с компом на котором установлена вижуал студия + давать ему все доступные спеки по запросу (но не код)
через сколько лет он напишет .exe способный конвертнуть .webm из .jpg + .mp3?
думаю это будет как в "олдбое" только тот кулаками об стенку стучал, а тут будет стучать по клаве
Аноним 08/03/17 Срд 17:21:34  949304
>>949303
Думаю, месяц-два. Это не так сложно, если под рукой есть любая литература + стековерфлоу(ну и дохуище свободного времени)
Аноним 08/03/17 Срд 17:24:50  949307
>>949303
>(но не код)
>>посоны, есть какие-то либы

>>949283

1 минута во встроенной документации: ViewportUpdateMode
Аноним 08/03/17 Срд 17:25:17  949308
>>949283
да
Аноним 08/03/17 Срд 17:27:29  949309
>>949283

Олсо, зачем тебе перерисовывать его вручную? Тебе придётся следить за тем, как другие окна перекрывают твой виджет, разве нет?
Аноним 08/03/17 Срд 18:00:40  949318
>>949303
ну хорошо, какие команды мне гуглить, чтобы писать такой конвертер на чистом С++?
Аноним 08/03/17 Срд 18:02:55  949319
>>949318

Чьлюы писать на чистом C++ теюе нужны стандарт языка и стандарты всех технологий, которые ты будешь использовать: mp3, MP4, Matroska, H264 и так далее.
Аноним 08/03/17 Срд 18:09:48  949321
Ребята, посоветуйте актуальную литературу по opengl или видеоуроки. Как вообще сами это учили?
Аноним 08/03/17 Срд 18:17:32  949329
>>949321
Хочешь скооперируемся. Сам пытаюсь что-то написать на этом, но пока что дальше мануалов и хеллоуворда не дошел.
Аноним 08/03/17 Срд 18:22:01  949337
>>949329
Я и до хеллоуворда не дошел, только вот источники знаний искать начал.
Аноним 08/03/17 Срд 18:24:27  949339
>>949307
> 1 минута во встроенной документации: ViewportUpdateMode
Спасибо
Аноним 08/03/17 Срд 18:32:01  949344
>>949321
С новыми шейдерами даже хуелоу ворлд хуй осилишь. Делай сначала свой опенгл, на хабре есть серия охуенных статей, заодно поймешь как это работает.
Аноним 08/03/17 Срд 19:24:34  949378
>>949337
https://2ch.pm/gd/res/195365.html
Вот тут все, что надо есть. Если хочешь начать с хардкора, то можешь скачать книжку OpenGL Superbible или OpenGL Programming Guide. Вот тут да, пиздец, материал подан для тех, кто уже, видимо, пользовался этой технологией. Есть книжка по-проще и ее вполне достаточно для каких-то не самых навороченных игрух или движков, показывают как рендерить полигоны, потом модели освещения, простые тени (без антиалиасинга, естественно и динамического затенения), называется OpenGL ES 3.0 Cookbook. В целом, все, что там описано, применимо и для десктопного OpenGL, но вот второй в плане возможностей по-шире (в сравнении ES 3.0 и GL 4.5).
Все нормальные драйвера (за исключением AMD, которые не смогли обеспечить нормальную поддержку 4.5 для карт 6000 и ниже серии), уже давно поддерживают стандарт 4.5, так что, наверно, лучше пользоваться самыми свежими ништяками, а не барахтаться в куче легаси.
Аноним 08/03/17 Срд 19:42:38  949390
Читаю Страуструпа, он рекомендует визуал студио, посоветуйте какого года? 2015 год встраивает свой код, а 2017 экспресс можно с майков скачать, но у меня тут есть вопросы, оно того стоит? там большой выбор флагов в бесплатной!!! зачем нужна тогда платная? что бы не звисала? кстати, 2017 зависает или что? дайте совет,
Аноним 08/03/17 Срд 19:51:25  949399
> 2015 год встраивает свой код
> 2017 экспресс можно с майков скачать, но у меня тут есть вопросы, оно того стоит? там большой выбор флагов в бесплатной!!! зачем нужна тогда платная?
Тебе не похуй ли?
Аноним 08/03/17 Срд 20:04:20  949410
нет, не похуй
Аноним 08/03/17 Срд 22:39:59  949558
>>949390
>2015 год встраивает свой код

Поясните.
Аноним 08/03/17 Срд 22:44:39  949565
>>949390
Друг.
Хочешь писать на крестах - сразу же Linux и GCC.
На других платформах на крестах уже ничего давно не пишут толком.

Студия по остаточному принципу кресты поддераживает. С ней ты просто заебешься потом работу профильную искать.
Аноним 08/03/17 Срд 22:45:48  949568
>>949565
Стауструп советует студию, на линуксе какую иде?
Аноним 08/03/17 Срд 22:54:40  949578
>>949568
Не знаю что советую Страуструп, мне как-то пофиг, что он советует.
Я Qt Creator и Code Blocks использую.
Аноним 08/03/17 Срд 23:15:42  949601
>>949565
Весь ААА геймдев - студия & винда. Пердолики с ГЦЦ да, нужны, но на деле - учиться лучше в студии. Она в разы дружелюбнее, чем любое красноглазие, топовый дебаггер, да и вообще мимими.
Аноним 08/03/17 Срд 23:52:59  949634
>>949601
КРоме ВСЕГО ГЕЙМДЕВА, еще что под виндой?
Аноним 08/03/17 Срд 23:53:57  949637
>>949568
Нахуя тебе иде? Консоль+гдб-волгринд+плагины для твоего редактора(nano, vim, emacs, sublime)
Аноним 08/03/17 Срд 23:54:20  949638
>>949378
От души спасибос
Аноним 09/03/17 Чтв 00:09:48  949647
>>949253
FFMPEG уже советовали, из вариантов попроще - gstreamer.

>>949303
Недели две-три по 8 часов в день, если знает основы сей/плюсов.
Аноним 09/03/17 Чтв 00:15:15  949653
>>949634
Весь клиентский софт для редактирования/создания контента, банковский низкоуровневый клиентский софт, все медийные клиенты, включая теперь и vr, почти все утилиты.

На никсах - я в рот ебал писать что-то кросс-дистрибутивное (=популярное) на плюсах, нужен отдельный человек чтобы этот зоопарк поддерживать.
Аноним 09/03/17 Чтв 12:40:50  949881
>>949653
80% вакансий С++ требуют знания линукса и gnu toolchain, так что изучая только виндузный С++ рискуешь соснуть.
Аноним 09/03/17 Чтв 19:00:06  950029
Няши, я просто в печали. Неужели под кресты нет парсера HTML? Написал прогу на пиздоне, скачивает все страницы одного сайта, и вытаскивает с каждой нужную инфу (находится в div с уникальным классом). Но пиздон работает оче медленно, прямо ужас. Сейчас переписываю на qt, потому что легче, но отсутствие просто вымораживает. Я уже и сам пытался писать, но чего-то сложно. Неужели никто не написал до меня?
Аноним 09/03/17 Чтв 19:12:36  950034
>>950029
"Загружаешь страницу, вытаскиваешь QWebElement" не походит?
Аноним 09/03/17 Чтв 21:09:33  950095
какие у полноценной студии есть полезные аддоны, что стоит из-за них вместо экспресс пользоваться коммьюнити версией.
Аноним 09/03/17 Чтв 22:12:03  950159
>>950095
Resharper C++
Аноним 10/03/17 Птн 00:21:07  950248
Untitled.png (13Кб, 825x245)
Такая проблема, нужно сбилдить буст под vc8, на компе установлена помимо vc8 еще и vc14, при запуске консиольки vc8 компилятор говорит, что его версия - 14.
Из PATH все упоминания vc14 удалил, комп перезуагружал - все то же самое.
Есть ли решение этой проблемы, кроме как удаление vc14 и последующая (как правило) переустановка vc8 ?
Аноним 10/03/17 Птн 00:49:15  950273
>>950248
таки всё верно, у vs2005 (vc8) с++ конпелятор 14 версии. а у vs14 - 20 или даже 21
Аноним 10/03/17 Птн 03:59:43  950327
>>950248
ЕМНИП, в каждой из студий в папке VC должен быть батник vcvarsall, который устанавливает системные переменные.
Ну а дальше, я думаю, ты поймешь.
Аноним 10/03/17 Птн 08:18:32  950367
Кто-нибудь пользовался визуализаторами изображений для деббагера в Visual Studio? Сейчас погуглил -- там довольно много всяких разных. Какой самый лучший?
Аноним 10/03/17 Птн 12:50:22  950475
>>950273
>>950327
С компилятором все было в порядке, версия дейтсвительно соответсвует, проблема была в том, что либы буста генерировались в виде vc140.lib, а нужен был vc80. Впрочем, удалив 15ю все решилось.
Аноним 10/03/17 Птн 12:57:40  950481
Снимок.JPG (21Кб, 416x166)
Вопрос скорее общий, по булевой алгебре, но спрошу тут.
Нужно проверить что из первых трёх "битовых флагов" с пика выставлен только один.
Сам придумал только
!( (A && B) || (A && C) || (B && C) )
где
A = flag & INT36
B = flag & REAL
C = flag & STRING

Можно это как-то упростить?
Аноним 10/03/17 Птн 13:16:49  950501
>>950481

Можно как-то так:

notzero(A)+notzero(B)+notzero(C)==1

Можешь маленькую функцию написать, которая возвращает 1 в ответ на ненулевое значение.

inline int notzero(int q){return q?1:0;}

В операторах && и || сделать проще не получится.
Аноним 10/03/17 Птн 14:21:56  950539
Снимок.JPG (56Кб, 728x269)
Что я делаю не так?
Аноним 10/03/17 Птн 15:34:29  950598
>>950539

Type - это что?
Аноним 10/03/17 Птн 16:42:22  950649
>>950481
bool isA = (value & ~A) == 0;
bool isB = (value & ~B) == 0;
bool isC = (value & ~C) == 0;

bool valid = isA || isB | isC;
Аноним 10/03/17 Птн 16:42:44  950650
>>950649
>> || isC
>> fix
Аноним 10/03/17 Птн 16:43:03  950651
>>950481
return (flag & (flag-1) == 0) && (flag != 0);
Аноним 10/03/17 Птн 16:52:03  950656
>>950649
еще проще:
value = value & (A | B | C);
bool valid = !(value ^ A) || !(value ^ B) || !(value ^ C);
Аноним 10/03/17 Птн 17:08:49  950666
>>950656
->
>>950651
самый простой и быстрый вариант.
Аноним 10/03/17 Птн 19:29:51  950785
51873165p0.png (300Кб, 521x704)
Снимок.JPG (130Кб, 868x727)
Бля, помогите лог ошибок прочитать, я не могу понять откуда она идёт.
Скорее всего с конструкторами обосрался, т.к. пытался не вводить конструкторы без аргументов.

Например есть два класса и один содержит другой:
class Fuck {
  QVector<Shit> shit;
  Fuck( QVector<int> inits );
}
class Shit {
  Shit( QVector<int> inits );
}

Когда Fuck-мемберу QVector<Shit> понадобиться конструктор Shit и обойдётся ли он без пустого конструктора Shit()?
Будет ли правильной такой конструктор Fuck:
Fuck::Fuck( QVector<int> ) {
  for(int i = 0; i < inits.size(); i++)
}
Аноним 10/03/17 Птн 19:31:49  950789
29009551KVKILIWQ.jpg (11Кб, 320x180)
>>950785
>Fuck::Fuck( QVector<int> ) {
> for(int i = 0; i < inits.size(); i++)
>    shit.append(Shit(inits));
>}
Фикс, не дописал.
Аноним 10/03/17 Птн 19:40:17  950798
>>950789
>shit.append(Shit(inits
Макаба почему-то убирает [i'], лол.
мимокрок 10/03/17 Птн 20:25:09  950821
>>950785
>Скорее всего с конструкторами обосрался, т.к. пытался не вводить конструкторы без аргументов.

Как только ты пишешь один конструктор, дефолтный конструктор скрывается.

Field::Field()=default; - и у тебя снова будет дефолтный (нужен С++11+).
Аноним 10/03/17 Птн 20:32:37  950825
1294260419775.jpg (45Кб, 168x182)
>>950821
Бля, так я не хочу вводить дефолтный конструктор, у меня часть полей - const, они должны быть определены при создании.
Аноним 10/03/17 Птн 20:44:47  950835
>>950825
Ввел тебе сваива пайтона в ухо, ббгге.
Аноним 10/03/17 Птн 20:49:57  950841
>>950825
>Бля, так я не хочу вводить дефолтный конструктор,

А зачем ты его используешь тогда, лол?
Аноним 10/03/17 Птн 20:56:45  950850
1306003891549.jpg (51Кб, 572x546)
Снимок.JPG (103Кб, 1030x601)
>>950789
Поправил и поверил этот пример - действительно не работает.
Зато работает если QVector заменить на QList.
В принципе предсказуемо, но я надеялся что QVector не пытается выделить память под элементы когда он пустой.
>>950841
Так я не использую, QVector<T> использует даже если элементов в нём ещё нет.
Аноним 10/03/17 Птн 21:15:42  950858
>>950034
Вполне возможно, что и пойдёт, но на офф сайте документации очень мало, а книги по qt про это тоже не пишут. Не знаешь, где найти статьи/книги/гуиды по вебэлементу?
Аноним 10/03/17 Птн 21:20:17  950863
1293381399188.jpg (44Кб, 451x440)
>>950850
Но если поле Shit.x сделать const то уже не компилируется, т.е. QList зачем-то нужен уже Shit& Shit::operator=(const Shit&) (которого нет из-за константного поля).
Причём если использовать QVector, при наличии const поля и добавить конструктор Shit() : x(0) {} то всё прекрасно работает.
Хуле QVector и QList там внутри делают, блять?
Аноним 10/03/17 Птн 21:21:09  950865
>>950850
>Так я не использую, QVector<T> использует даже если элементов в нём ещё нет.

Он его не использует (т.е. он бы не запускал его, если бы его не было). Просто объект, который в QVector, должен обладать дефолтным конструктором. Ты не можешь расширить QList, но ты можешь расширить QVector, и для расширения нужен дефолтный.
Аноним 10/03/17 Птн 21:28:05  950868
>>950863

И вообще, вот тебе исходники, сам смотри.

https://github.com/qt/qtbase/tree/49dc9aa409d727824f26b246054a22b5a7dd5980/src/corelib/tools
Аноним 10/03/17 Птн 21:45:17  950877
>>950863
> Shit& Shit::operator=(const Shit&)

Наверняка нужен для присвоения QList.

Скорее всего у тебя будут те же проблемы с std::vector (там есть resize) и std::list.
Аноним 10/03/17 Птн 21:59:29  950890
Нет ли уже крякнутой 2017 студии?
Аноним 10/03/17 Птн 22:08:11  950897
>>950890
Чем тебя коммунити не устраивает?
Аноним 10/03/17 Птн 22:08:43  950898
Ну и сюда вкину. Суть проблемы такова:

Есть потребность в работе с post get запросами и прочей еболой в протоколе https. Пробовал сначала просто скачать файл через Qt QNetworkAccessManager—он меня нахуй посылает, мол
QSslSocket: cannot resolve TLSv1_1_client_method
QSslSocket: cannot resolve TLSv1_2_client_method
QSslSocket: cannot resolve TLSv1_1_server_method
QSslSocket: cannot resolve TLSv1_2_server_method

Ну я гуглил, гуглил, пацаны сказали, устанавливай OpenSSL, вот тебе уже собранный. Установил—всё равно ругается.

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

Сильно только не бейте, с сетями вообще ни разу не работал, да и вообще неделю назад хеллоу ворлд написал.
Аноним 10/03/17 Птн 22:20:01  950901
>>950898
Вангую что ты не линковал библиотеку при компиляции.
Аноним 10/03/17 Птн 22:33:59  950918
>>950897
А вы всегда отвечаете вопросом на вопрос?
Аноним 10/03/17 Птн 22:48:57  950926
>>950901
Возможно. В любом случае, вопрос
> каким способом в какой IDE, или с помощью какой библиотеки, курл там или сипипинетлиб лучше всего реализовывать работу с сайтами?
не снят. С чем меньше всего ебаться придется? Алсо, реквестирую годные статейки желательно на русском, но там как пойдет на тему взаимодействия с сайтами.
Аноним 10/03/17 Птн 23:03:03  950934
>>950918
А почему вы таки спрашиваете?
Аноним 10/03/17 Птн 23:05:29  950935
>>950926
Тебя ждет очень большая ебля. Взаимодействие с сайтами - большая дыра в крестах, и qt исправляет проблему лишь немного. А вообще - на
"QSslSocket: cannot resolve ..." можешь забить, всё и без этого работает, брат жив.
Аноним 10/03/17 Птн 23:12:05  950940
>>950935
> всё и без этого работает,
Ну хуй знает, у меня ответ не пришел.
Аноним 10/03/17 Птн 23:21:51  950943
>>950935
> Взаимодействие с сайтами - большая дыра в крестах
А где всё заебись?
Аноним 10/03/17 Птн 23:29:06  950945
Screen Shot 201[...].png (262Кб, 1938x904)
>>950940
А, извиняюсь, у меня несколько другая ошибка вечно выскакивает. При этом запрос идёт.
>>950943
В пиздоне заебись, но он медленный шо пиздец. Зато в нем есть и отличная работа с html, и человеческие запросы. Разве что система сокетов в QT лучше зделана.
Аноним 10/03/17 Птн 23:46:04  950949
>>950943
Относительно, в D. Там есть dlang-requests немного смахивающий на питоновский requests.

Впрочем для cpp гуглится гитхаб проекта cpr, кто-нибудь пробовал?
Аноним 10/03/17 Птн 23:48:17  950950
>>950945
> система сокетов в QT лучше сделана.
То есть даже не стоит лезть в курл, а чинить кьют, я понял, спасибо.
Просто целый день убил на гуглеж всяких разных способов, нашел даже такое https://kaimi.io/2012/01/http-https-cpp-classes/
Аноним 11/03/17 Суб 00:09:25  950952
>>950945
>В пиздоне заебись
Можно же склеить кусок кода питона с реквестами с остальным кодом, написанным на плюсах, верно? Или так ещё хуже будет?
Аноним 11/03/17 Суб 00:31:48  950958
>>950952
Можно вызывать код на пиздоне из крестов? Но опять же, это снизит возможности переноса, так как это потребует наличия питона на целевой машине. Но идея не плоха кстати.
Аноним 11/03/17 Суб 00:51:17  950962
>>950958
Питон можно скомпелять.
Аноним 11/03/17 Суб 01:21:40  950974
>>950962
Лол, действительно. Интересно, питон можно включить в бинарник?
Костыли-костылики. Но попробую. Если получится, и на скорости не скажется (а оно не скажется, благо парсинг в питоне быстр), то вообще пушка, такое-то прогрессивное программирование на крестах.
Аноним 11/03/17 Суб 01:42:27  950979
>>950974
Не знаю как пистон, но вышеупомянутый d можно попробовать слинковать - https://dlang.org/spec/cpp_interface.html
Аноним 11/03/17 Суб 01:43:40  950981
>>950945
Что ты там с этими сайтами делаешь, что тебе медленно? Тебе нужно не питон из С++ вызывать, а наоборот. Переписать на С++ медленный код и все.
Аноним 11/03/17 Суб 01:48:44  950982
>>950981
> Что ты там с этими сайтами делаешь, что тебе медленно?
Ну, например мне надо проверять большие объёмы текста на наличие слов из массива. Таких ключевых слов может быть 200 и 300. Каждый текст - около 30 слов. И таких текстов может быть сотни штук. И они обновляются раз в 10 минут.
Пиздон просто тихо умирает.
> Тебе нужно не питон из С++ вызывать, а наоборот.
Пиздос. То есть PyQt работает так? Всё не слава богу.
>>950979
Это опять в D встраивается C++ а не наоборот. А мне в QT надо встроить маленький кусок.

Аноним 11/03/17 Суб 01:54:13  950984
>>950898
>QSslSocket: cannot resolve TLSv1_2_server_method
У меня такая фигня была на винде, где нет openSSL.
Решилось установкой openssl 0.98 (1.+ верссии не работали!), dllки кинул в /system32.
Под RPI и на ебунте всё из коробки заебись было.
Аноним 11/03/17 Суб 02:31:32  950991
>>950982
У тебя проблема скорее с алгоритмом, если у тебя там o(n*m), то неудивительно, что умирает. А по факту производительность у тебя скорее упрется в скорость интернета, чем в скорость поиска.
Но если прямо вот тебе нужен этот самый С++, то качаешь и парсишь все на питоном, скармливая С++ только нужное. Но скорее всего на питоне уже давно есть такой код.
Аноним 11/03/17 Суб 02:38:26  950992
>>950991
На питоне у меня уже и так всё написано, да. А вот как его к крестам теперь подключить - не понятно.
> У тебя проблема скорее с алгоритмом
Ну, у меня нет идей его изменения.
Смотри, я скачиваю большое количество маленьких статей. Мне нужно узнать, содержится ли в каждой статье хоть одно слово из списка. В списке куча ключевых слов, а с учетом особенностей русского языка - еще и куча форм этих слов. А каждые 20-30 минут еще и новые докачиваются.
Вот так и получается что питон умирает.
Аноним 11/03/17 Суб 02:49:45  950995
>>950992
Индексируй. Возьми статью, удали из нее все знаки препинания и приведи к lowercase, а затем отсортируй. Далее поиск у тебя будет уже не o(nm), где n - число слов в статье и m - число ключевых слов, а o(log(n)m).
Но по факту тебе нужно взять какой-нибудь уже написанный движок типа apache solr, или что там есть у питона свое.
Аноним 11/03/17 Суб 03:15:51  951001
>>950995
Ого, даже такое имеется. Чтож, спасибо, попрою в сторону уже написанных движков. Как это вообще верно называется? Парсер текста?
Аноним 11/03/17 Суб 04:39:56  951015
obezumel.PNG (100Кб, 1442x591)
Майкрософт обезумел. Сумеешь ли ты совладать с ним?
Аноним 11/03/17 Суб 04:42:13  951016
>>951001
text search engine
Аноним 11/03/17 Суб 05:04:27  951019
Как же бесит эта хуета с установками студии. В 90-е годы установка компиляторов проходила в 2 минуты. Сейчас эта тягомотина может занять сутки. Просто пиздец.

Ставил сейчас 2015 студию апдейт 2. С галкой C++. Эта дура не поставила компиляторы. Узнал об этом только, когда CMake не смог их найти. Стал проверять -- и правда нигде нет.

Ща буду переустанавливать. Почему они не могут научить своих индусов, чтобы инсталяторы просто копировали файлы, а делали миллион каких-то непонятных операций с системой, с реестром, с сетью, с аллахом? Пиздос.
Аноним 11/03/17 Суб 05:07:04  951020
acc.PNG (10Кб, 454x640)
Нажал удалить. Оно снова делает что-то непонятное. Аквайринг и апплайнинг нахуй.
Аноним 11/03/17 Суб 07:52:57  951035
Походу нельзя поставить 2015 студию, если ты поставил 2017 RC студию. Ведь дауничи в майкрософте назвали 2017 RC, как 2015.10928xyu4o92u.beta.alpha.omega и инсталятор думает, что компиляторы C++ уже установлены и их не надо снова ставить. Как так можно писать программы в 2017 году? Я охуеваю.
Аноним 11/03/17 Суб 08:04:59  951036
whereis.PNG (6Кб, 521x114)
Все что нужно знать о качестве продуктов мелкомягких. Установило 8 Гб всякого дерьма. Но компилятор не поставило. Осталось только угадать какая правильная последовательность деинсталяции студий. Чтобы не пришлось переустанавливать шиндовс, чтобы оно наконец-то заработало.
Аноним 11/03/17 Суб 09:19:43  951041
>>950982
> а не наоборот
По ссылке в том числе наоборот
Аноним 11/03/17 Суб 09:24:09  951042
>>951015
> Создать проект
> C++
> Докачать компиляторы, библиотеки, sdk для winXP
И что?
Аноним 11/03/17 Суб 09:29:40  951044
А можно ли дебажить dll, которая скомпилирована в 2010 студии находясь в 2015, чтобы еще были брекпоинты в исходном коде, которые я поставлю в 2015?

Или такой вариант: можно ли использовать 2015 студию только в качестве IDE, а компиляторы и линковщики использовать от 2010?
Аноним 11/03/17 Суб 10:26:53  951051
Что ж, разобрался в итоге с питоном и крестами:
Есть два стула. Писать скрипт и вызывать его, но большая ебля с конвертацией объектов, QString сначала в стринг а потом в питоний стринг придётся.
Либо же нашел вот такое, https://github.com/kayhayen/Nuitka
позволяет компилировать скрипты в сишный бинарник. Как его вызывать и передавать объекты пока не понял.
Аноним 11/03/17 Суб 10:40:10  951056
333.png (23Кб, 833x789)
Что-то пошло не так со строкой. на массиве charov алгоритм сработал как надо. Подскажете?
Аноним 11/03/17 Суб 11:13:29  951068
>>951056
length - функция, а не поле
Аноним 11/03/17 Суб 11:20:42  951070
>>951015

Ты хоть раз инсталятор открывал? "typical" - это кнопка в инсталяторе, можешь выбрать вообще всё.
Аноним 11/03/17 Суб 11:23:38  951071
>>951044

Скорее всего ответы "да" и "да".
Аноним 11/03/17 Суб 11:29:41  951074
>>951044
Не боишься написать в 15 студии код, который компилятор 10й не проглотит?
Аноним 11/03/17 Суб 11:33:11  951075
>>950898

http://doc.qt.io/qt-5/opensslsupport.html

Нужен опенссл для твоей битности и твоего компилятора.
Аноним 11/03/17 Суб 11:45:22  951078
>>951075
qDebug()<<QSslSocket::supportsSsl();
Возвращает тру.
Аноним 11/03/17 Суб 11:48:15  951079
>>951078
А, это вообще не та хуйня, сори. Просто глазом зацепился, думал, что это говно говорит о том, включена ли поддержка SSL.
Аноним 11/03/17 Суб 12:41:00  951095
Кароче, пасаны, можно ли как-нибудь обратиться к классу или переменной через другую переменную, т.е. написать имя этого класса в зависимости. Через дефайн может. Например, есть у нас 1 кнопка и 100 форм, в которые записывается результат нажатия кнопки. И вот, чтобы не писать в case 100 строк, нужно что-то вроде Form%i=GetResult().... Т.е. в зависимости от счётчика выбирается соответствующая форма. Надеюсь, понятно.
Аноним 11/03/17 Суб 14:27:30  951189
>>951095
Запихай в один массив указатели на них, хули тут думать.
Аноним 11/03/17 Суб 14:31:08  951195
>>951189
Ладно, так и сделаю. Просто может, какая-то фича есть, а я и не знаю о ней...
Аноним 11/03/17 Суб 15:13:07  951216
>>951095
Кури паттерны всякие, судя по всему тебе подходит цепочка обязанностей, но я могу и ошибаться
Аноним 11/03/17 Суб 15:26:51  951223
Untitled.png (7Кб, 808x182)
Untitled2.png (13Кб, 919x507)
Не могу разобратсья с тем, как работает юникод. По идее же, точно также как и обычные строки - число на 4 байта, тоже есть номер. Но на деле ничего не работает, значения не совпадают с теми, что дают таблицы в интернете, ЧЯДНТ?
Аноним 11/03/17 Суб 15:40:55  951229
>>951223
cout выводит обычные символы, и возможно, utf-8. Для wchar нужен wcout и нужно еще локаль настроить.
Аноним 11/03/17 Суб 15:46:59  951233
воткаяд.webm (10668Кб, 281x360, 00:09:07)
Я догуглился.
http://www.jecgonline.com/article/S0022-0736(09)00536-6/abstract
Не меньше минуты тупил в текст, пока до меня не дошло что это не тот Qt.
Аноним 11/03/17 Суб 15:51:24  951234
Где можно скачать книгу "Как перестать говнокодить"?
Аноним 11/03/17 Суб 15:54:17  951235
>>951234
uml.org.cn/c++/pdf/DesignPatterns.pdf
Аноним 11/03/17 Суб 16:11:09  951242
Untitled.png (16Кб, 884x424)
>>951229
Со строчками и их принципом разобрался, не понимаю как их выводить в wcout, если wcout сталкивается с неаскии символом, начиная с этого символа весь вывод пустотой заменяет, но винапи прекрасно все понимает. Проблема исключительно с wcout. Какую локаль настроить?
Аноним 11/03/17 Суб 16:15:20  951243
>>951242
Похоже что у тебя шиндовская командная строка не пропускает японскую кодировку. Попробуй код запустить на юниксе какой-нибудь, там с юникодом все в порядке, тут например http://cpp.sh/
Аноним 11/03/17 Суб 16:19:27  951246
>>951243
Да, не пропускает, даже пытался кандзи пихать в нее.
Конечно, это замечательно, что на никсе все будет работать, но меня интересует винда.
Аноним 11/03/17 Суб 16:24:02  951254
>>951246
Попробуй тогда подключить clocale и установить std::setlocale(LC_ALL, "en_US.UTF-8");
Аноним 11/03/17 Суб 16:28:12  951258
Untitled.png (13Кб, 678x385)
>>951254
Сэйм
Аноним 11/03/17 Суб 16:29:41  951259
>>951258
Тогда так "ja_JP.UTF-8"
Аноним 11/03/17 Суб 16:32:41  951262
Untitled.png (16Кб, 815x475)
Сэйм. Там же 2^16 символов, какая разница какая имеено, прикол в том, что у меня даже en_US не прокает.
Аноним 11/03/17 Суб 16:33:14  951264
2323523435.png (91Кб, 640x480)
Няши, где можно найти гуиды по OpenGl для qt? Особенно интересует 2д. Всё, что нашел - это чисто код на офф сайте, без пояснений. На ютубе только 2011 год, для qt 4. С тех пор всё поменялось.
Аноним 11/03/17 Суб 16:33:34  951265
>>951242
> Какую локаль
Попробуй td::setlocale(LC_ALL, "ja_JP");
Или попробуй перед выводом строки конвертнуть ее в utf-8
Или поищи какой-то винапи вызов
Если тебе не нужно изменять строки то лучше в utf-8 работать
Аноним 11/03/17 Суб 16:33:52  951267
>>951262
Тогда так делай std::wcout.imbue(std::locale("ja_jp.utf-8")); вместо setlocate
Аноним 11/03/17 Суб 16:45:31  951280
Untitled.png (42Кб, 1277x521)
>>951267
Сэйм.
>>951265
Да хотелось бы изменять.
>>951264
В Qt своя механика реализации всего этого, свои подклассы для рисовки и прочего, я бы советовал учить все с нуля и работать напрямую с либами OpenGL.
От себя могу посоветовать типулю, который делает достаточно неплохие видосы по этому поводу https://www.youtube.com/channel/UCeQhZOvNKSBRU0Mdg7V44wA (я так понимаю тебе с нуля).
И книжку (Ginsburg D., Purnomo B. - OpenGL ES 3.0 Programming Guide - 2014), говорили что полезная, я не по графике выступаю, поэтому скачал и забил.
Аноним 11/03/17 Суб 16:51:19  951286
>>951280
Бля заебал со своим шиндоус говном, иди на яве короче пиши
Аноним 11/03/17 Суб 16:55:13  951289
>>951280
Спасибо. А если писать на чистом OpenGL то кроссплатформенность останется? И на сколько вообще сложно изучать это? Мне много не надо, чисто 2д и спрайты, как во втором варкафте. QT знаю хорошо, написано много программ, но в граффику вкатываюсь впервые.
Аноним 11/03/17 Суб 17:01:12  951302
>>951286
Сам на яве, блядь, пиши, дай мне консольный юникод оутпут. Я ебал все сорцы портировать в qt. Мне даже винапишный подойдет, главное, чтобы работал.

>>951289
OpenGL - либы, ты можешь их на много языков натянуть, хоть на ту же обоссную джаву, можешь сразу на андроед деплоить. Да, все кроссплатформенное, но это не значит, что любой код, написанный с помощью этих либ будет одинаково четко работать на разных девайсах, к примеру, то же разрешение экрана, сенсорное управление и прочее.
Qt это как детский вариант плюсов, все просто и почти так же быстро, он удобен, но немного отупляет.
И да, тебе придется им за лицензию отсыпать, если игру не только для своей мамы пишешь.
Аноним 11/03/17 Суб 17:03:05  951309
>>951242

В каком-то из тредов писал уже. >>931827 (OP)
Аноним 11/03/17 Суб 17:03:31  951312
>>951302
Тебе уже дали, сам виноват что на поделие от m$совта запускаешь, твоя головная боль
Аноним 11/03/17 Суб 17:04:07  951315
>>951302
> можешь сразу на андроед
Не нужно, только пека и юниксы.
> Qt это как детский вариант плюсов
И не поспоришь. Но, нормального гуя для приложений я кроме как qt не нашел, а тем более кроссплатформенного.
Чтож, спасибо, буду пытаться вкатываться, надеюсь opengl нормально работает с qt.
Аноним 11/03/17 Суб 17:04:23  951318
>>951309

>>943403
Аноним 11/03/17 Суб 17:07:14  951319
>>951309
Опача, вот за это спс.
Аноним 11/03/17 Суб 17:15:08  951325
>>951315
Неее, старик, с такими познаниями я тебе настоятельно советую посмотреть те видосы, читать книжки про опенгл и так далее, поверь, ты еще 300 раз пересмотришь свои взгляды на геймдев.
Для начала я бы тебе посоветовал узнать ответ на парочку вопросов
1 чем оконное гуи отличается от рисования квадратиков и как бы отличалась прога, если бы синюю рамку и кнопочки ты нарисовал через DrawRect какой-нибудь графлибы
2 в чем разница directx от opengl на винде, это ж либы, значит либы тоже дергают какие-то функции, вот в чем разница между функциями которые они дергают
как узнаешь ответы на эти вопросы, все станет яснее
Аноним 11/03/17 Суб 17:21:35  951332
>>951325
Ну, что пересмотрю это не сомневаюсь, несколько лет назад в начале изучения крестов пытался вкотиться в гл, охуел от сотен функций.
А ответы на вопросы я и так (я думаю) знаю:
1 - qt всё рисует сам, все элементы уже готовы их надо просто поставить, а в огл всё рисовать надо самому. Поэтому я буду использовать qt только для логики, просто консольное приложение с огл.
2 - Ну, по идее, и тот и тот дергает низкоуровневые драйвера. Только директх для винды, а в огл есть разная реализация в зависимости от платформы
Аноним 11/03/17 Суб 17:26:15  951337
>>951332
Я имел ввиду именно низкоуровневые вопросы, именно как кто дергает "низкоуровневые драйвера". Вот разберись с этим, много нового узнаешь, я съебал.
Аноним 11/03/17 Суб 18:13:20  951368
>>951332
Наследуешься от QOpenGLWidget и рисуешь в методе void QOpenGLWidget::paintGL().
В этом методе получаешь контекст рендергина при помощи одноименной функции context() и затем дескриптор для работы с OpenGL функциями в зависимости от всратости желаемого OpenGL - functions() или extraFunctions().
Ну и соответственно добавишь таймер на отрисовку контента.
Аноним 11/03/17 Суб 18:33:55  951391
>>951235
Годнота, ушёл обмазываться
Аноним 11/03/17 Суб 18:52:42  951410
Здорово пупсеки

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

Вопрос: почему этот объект должен иметь статическое время жизни?
Аноним 11/03/17 Суб 19:20:39  951432
>>951410

Похоже на домашку.
Аноним 11/03/17 Суб 19:21:05  951433
>>951410

Ответ: не должен.
Аноним 11/03/17 Суб 22:07:37  951542
>>951432

Липман советовал именно так, ему я больше немного верю

Аноним 11/03/17 Суб 22:08:58  951544
>>951432
А твоя рожа на какашку

АХАХАХАХАХА
Аноним 11/03/17 Суб 23:11:52  951590
>>951542

Что там тебе ещё Липман нашептал? Запретил использовать unique_ptr?
Аноним 12/03/17 Вск 01:44:18  951659
>>951433
Пруф
Аноним 12/03/17 Вск 01:44:54  951660
>>951410
А головой подумать?
Аноним 12/03/17 Вск 05:50:35  951724
>>947658
нет
Аноним 12/03/17 Вск 06:26:54  951726
>>951036

Если руки из жопы растут, что тут ещё можно сказать?
Аноним 12/03/17 Вск 07:16:58  951731
>>951036
Попробуй поставить GCC, начиная с Windows 7 он поддерживается (пункт "Подсистема Linux" в виндовых компонентах).
Аноним 12/03/17 Вск 09:09:27  951746
>>951659

Стандарт открой и почитай.
Аноним 12/03/17 Вск 13:54:58  951868
Пробовал кто-нибудь модули на вижле? Можно пользоваться?
Аноним 12/03/17 Вск 13:58:10  951870
А можно ли реюзать поток std::thread?

Например я хочу, просто создать поток. А потом по очереди скормить ему несколько функций или одну функцию с разными переменными. Или это так не работает?
Аноним 12/03/17 Вск 14:05:02  951872
>>951870
Нельзя. Скормить функцию ты можешь через конструктор -> по одному объекту на функцию выходит.
Аноним 12/03/17 Вск 14:17:20  951884
>>951870
Что именно тебе нужно, чтобы поток делал. Объясни вразумительнее.
Аноним 12/03/17 Вск 14:26:20  951898
>>951884
Дергал данны из массива, обрабатывал их, писал результат в другой масив.
Аноним 12/03/17 Вск 14:34:46  951903
>>951870
Тебе нужно, чтобы функции последовательно или параллельно выполнялись?
В любом случае ты можешь создать функцию, которая будет плодить эти потоки, и вызывать её в отдельном потоке или просто так.
Если нужно последовательное выполнение, ты создаешь поток; ждёшь, пока он выполнится (join); повторяешь.
Если нужно параллельное выполнение, то придётся или хранить массив потоков и каждый ждать. Если вдруг ждать не нужно, то можно плодить потоки, как для последовательного случая, но при этом говорить, что тебе всё равно, когда закончится поток (detach).
При использовании потоков обязательно вызывать join или detach, иначе твоя прога рискует улететь по std::terminate.

Вся информация взята из гугла.
Аноним 12/03/17 Вск 14:35:16  951904
>>951870
Просто так нельзя. То что ты хочешь делают через пул потоков (thread pool). Стандартной реализации нет, нужно или самому делать или тащить откуда-то. В бусте, например, вроде как есть.
Аноним 12/03/17 Вск 14:39:39  951907
>>951898
Что за данные? Это большая структура, или диапазон данных этого самого массива, или что?
Сделай пул потоков.
Аноним 12/03/17 Вск 14:49:20  951912
>>951870
Также можно использовать std::async. В MSVC в реализации используется пул потоков.
Аноним 12/03/17 Вск 16:01:16  951967
>>951912
Лол. Я другой анон, но пришёл сюда с вопросом по std::async.
Just in time.
Вопрос следующий.
Есть некоторые данные, прилетающие через udp.
Данные из пакета мне надо скармливать функции и работать дальше. Что там делает дальше функция - не важно. Возвращаемое в основное тело программы значение - неважно. Единственный момент - количество прилетаемых данных разное, поэтому, теоретически, в некоторый момент вызов функции может идти в тот момент, пока она ещё работает с предыдущим набором данных.

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

Т.е. из main() я вызываю "fastParse(recvData);"
В fastParse() у меня есть вывод в консоль для отсмотра поступления данных в принципе:
printf("%s\n", recvData);
while (true) {
b++;
printf("%i\n",b);
}

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

Если я делаю через
std::async(fastParse, recvData);
то я вообще не вижу никакого отклика от функции. Что не так.
В примерах (типа http://www.cplusplus.com/reference/future/async/ ) есть ожидание данных через std::future, но мне эти данные, по большому счёту, получать не надо, поэтому в future необходимости нет.

Или async не создаёт и не распараллеливает дополнительные экземпляры функции, поэтому мне надо смотреть нечто другое (потоки?)?
Что я делаю не так?
Аноним 12/03/17 Вск 16:31:11  951980
>>951967
> поэтому в future необходимости нет
Если я правильно понял то в этом твоя проблема. В future необходимости нет, но async его возращает, и так как это временный объект то future сразу же удаляется, тоесть вызывается его деструктор. А особенность деструктора future в том что он блочит тред в котором вызвался пока не будет завершен связаный с ним async. Тоесть вызов std::async(fastParse, recvData); фактически синхронный так как деструктор future блочит тред пока не выполнится async, а он у тебя бесконечный. Потопробуй сохранять куда-то future, при чем так чтобы он не удалялся до самого завершения async.
Аноним 12/03/17 Вск 16:32:11  951981
Пссс, аноны, а можно как-то в массив запихнуть слова, а потом вытаскивать их из него?
Аноним 12/03/17 Вск 16:34:42  951982
>>951967
Попробуй запускать так:
std::async(std::launch::async, fastParse, recvData)
Аноним 12/03/17 Вск 16:35:29  951984
>>951981
http://ru.cppreference.com/w/cpp/container
Аноним 12/03/17 Вск 16:35:55  951985
>>951981
Да.
Аноним 12/03/17 Вск 16:52:59  951994
>>951984
Контейнеры, хуё-моё, тааак падажжи. Можешь пример кода дать?
Аноним 12/03/17 Вск 16:53:29  951995
>>951985
И по какому принципу? Пример кода плез.
С меня как обычно нихуя
Аноним 12/03/17 Вск 16:57:35  951996
>>951995
https://ideone.com/ZM5lLC
Аноним 12/03/17 Вск 17:11:28  952005
>>951982
Не, ведёт себя внешне так же как без async.
>>951980
Да, подозреваю, что у меня без future (в случае с launch всё равно подразумевается) происходит блокировка и async не такой уж и асинхронный в этот момент в том смысле, в каком я это понимаю.

Всё-таки накидал пока через std::thread с детачем. Выглядит гораздо ближе к тому, что я хочу видеть (с передачей аргуметов косяк - сам вызов происходит, но передаются пустые значения; но это уже разгребу - проблемой не выглядит).
А сохранять future - я боюсь, что это повлияет на производительность. Или нет, если возвращается, например, NULL? С этой позиции, как я понимаю, детачнутый поток освободит ресурсы сразу по завершению? Понятное дело, что в моём примере этого никогда не произойдёт из-за while(true)?
Аноним 12/03/17 Вск 17:15:27  952009
>>951980
>>951982
И да. Забыл. Спасибо.
Аноним 12/03/17 Вск 17:18:02  952010
думаю.jpg (23Кб, 318x319)
>>951996
Ну, в своём первоначальном вопросе я имел в виду кое-что другое: имеется массив со словами. И при каком-нибудь условии, вытаскивается какое-то конкретное слово, а не все.
Аноним 12/03/17 Вск 17:20:01  952012
>>952010
Это в каком таком случае?
Аноним 12/03/17 Вск 17:23:41  952013
>>952010
https://ideone.com/ZM5lLC
Аноним 12/03/17 Вск 17:28:07  952015
>>952012
Ну, например, объявляем переменную
int x = 1 + rand() % 30;
Она будет в диапазоне от 1 до 30. И при определённом значении переменной будет выводиться нужное слово из массива.
Я знаю, что можно сделать просто через switch, но будет много говнокода. А так хочется узнать, как это будет выглядеть при работе с массивом.
Аноним 12/03/17 Вск 17:29:34  952018
>>952013
Спасибо
Аноним 12/03/17 Вск 17:29:55  952019
>>952010
Так тебе же всё равно надо или позицию этого слова знать, или перебирать все элементы.
Во втором случае http://ru.cppreference.com/w/cpp/container верно, остаётся только выбрать самый оптимальный вариант перебора для конкретного случая.
http://www.cplusplus.com/reference/array/array/
В разделе member functions есть примеры к каждой конкретной функции.
Глянул быстро, на cppreference тоже есть. Правда я им не пользуюсь, не знаю, насколько много. на сиплюсплюс - точно много. Только, кажется, там русского нет (тут мне пофиг).
Аноним 12/03/17 Вск 17:30:45  952020
>>952005
На производительность не повлияет, future же конструируется в любом случае. Это если бы был вариант асинка без возрата - он был бы эффективнее. А так ты теряешь только десяток байт на хранение future. И то не факт - под временный объект где-то выделяется память, если на стеке вызывающей функции, то так так ты вызываешь из мейна, то тратить память для хранения future придется в любом случае. Но для твоего варианта тред лучше. Профит асинка только в надежде что его реализация использует пул потоков, а так как у тебя бесконечная задача то в пуле нет смысла.
Аноним 12/03/17 Вск 17:36:26  952025
>>952020
Спасибо ещё раз.
Аноним 12/03/17 Вск 17:44:10  952027
Untitled.png (45Кб, 1183x820)
Как в QAbstractItemListModel добавить несколько полей сверху? Нужно просто текст-число, все уже перепробовал.
Аноним 12/03/17 Вск 17:45:27  952028
>>952027
Сформулируй задачу нормально. Это не тред про Qt.
Аноним 12/03/17 Вск 17:47:51  952029
>>952028
Задача про формирование интерфейса Qt, в том то и дело.
Аноним 12/03/17 Вск 17:53:27  952032
>>952029
Нарисуй хотя бы, что ты хочешь получить.
Аноним 12/03/17 Вск 17:56:58  952034
Untitled.png (18Кб, 1491x642)
>>952032
Аноним 12/03/17 Вск 18:00:06  952037
>>952034
Ну полистай это.
http://easy-qt.blogspot.com.by/2012/02/qabstractlistmodel.html
Аноним 12/03/17 Вск 18:02:45  952039
>>952027
Используй сигналы beginInsertRows и endInsertRows. Первый вызываешь перед добавлением элементов при этом передаешь ему два индекса - места, куда ты будешь запихивать свои элементы, второй вызываешь при окончании добавления.
Аноним 12/03/17 Вск 18:46:35  952066
>>952027
CLion?
Аноним 12/03/17 Вск 18:56:24  952072
>>947007 (OP)
Как потребовать от шаблона быть InputIterator-ом?
В псевдокоде это выглядело бы что-то вроде "template<InputIterator<T>>".
На С# было бы что-то вроде "Method<IEnumerable<T>>".
Аноним 12/03/17 Вск 19:11:05  952089
>>952072
От шаблона чего, если функции, то можешь SFINAE применить. Или, например:

template<typename T>
void some_func(InputIterator<T> &iterator);
Аноним 12/03/17 Вск 19:20:21  952099
>>952089
http://ideone.com/hvVLaw
Вот тут посмотри, все просто, в принципе
Аноним 12/03/17 Вск 19:21:24  952101
>>951870
Я использовал continuous таски из TBB они не блокируют текщий тред. Единственное важное условие результат вычислений должен быть соответственно синхронизироваться с помощью атомиков, либо мьютексов.
Аноним 12/03/17 Вск 19:37:10  952106
>>952037
Неа, ничерта не работает, список как был таким, так и остался, перерыл хуеву кучу материала.
Возможно я не ту модель наследую, может QAbstractListModel не позволяет сделать несколько колонок, разделенных табуляцией?
Посмотрел в примерах, там такого разделения как я хочу нет.

>>952039
Понятия не имею как сигналы могут помочь, если у меня сам объект неправильно устроен.
Аноним 12/03/17 Вск 20:09:37  952124
>>952106
Ну-ка кинь скрин того, что получилось.
Аноним 12/03/17 Вск 20:12:40  952126
>>952124
Да нихуя не получилось, пытался запилить QAbstractItemModel там примеры хуй пойми что, ничего не понятно, ни как заполнять, ни про индексы, все данные идут из дефолтных функций клюта, на хуя я вертел такое гуи. Сделаю через QlistView, похуй, не будет колонок.
Аноним 12/03/17 Вск 20:16:54  952129
>>951870 >>951898 кун
Всем спасибо. Сделал втупую: внутри потока в считываются и записываются данные.
Сначала джоинил его в деструкторе класа, но вектор резукльтатов вечно был пуст. Перенес джоин сразу после потока и все стало. Где можно подробно почитать чому так?
Аноним 12/03/17 Вск 20:17:20  952130
>>952106
Может тебе QAbstractTableModel?
Аноним 12/03/17 Вск 20:32:18  952145
>>952130
Думаю да, подошел бы, но после нескольих часов дроча их документации я уже не настроен на новые технологии.
Аноним 12/03/17 Вск 20:36:49  952147
>>952145
Осиль же.
Аноним 12/03/17 Вск 21:08:36  952168
Untitled.png (14Кб, 306x506)
>>952147
Да нет, концептуально все же QAbstractListModel подошел
Аноним 12/03/17 Вск 21:41:12  952180
>>952168
Так ты осилил? Тогда молодец.
Аноним 12/03/17 Вск 22:17:17  952203
Чот в ideone код не вставляется
Аноним 12/03/17 Вск 22:18:10  952204
Поэтому вот, я запилил

//Бредогенератор

#include <iostream>

using namespace std;

int main()
{
setlocale(LC_ALL, "Russian");
setlocale(LC_ALL, "ru_RU.UTF-8");
setlocale(LC_ALL, "");
unsigned rand_value = 11;
srand(rand_value); //рандомизация генератора случайных чисел
int a;
int x;
start:
x = 1 + rand() % 30;
switch (x) {
case 1:
cout << "Неизвестный ";
break;
case 2:
cout << "Президент Гондураса ";
break;
case 3:
cout << "Пенсионер ";
break;
case 4:
cout << "Милиционер ";
break;
case 5:
cout << "Пингвин-убийца ";
break;
case 6:
cout << "Моряк-гомосексуалист ";
break;
case 7:
cout << "Анатолий Вассерман ";
break;
case 8:
cout << "Евгений Петросян ";
break;
case 9:
cout << "Известный писатель ";
break;
case 10:
cout << "Одноногий человек ";
break;
case 11:
cout << "Артемий Лебедев ";
break;
case 12:
cout << "89-летний зоофил ";
break;
case 13:
cout << "Афроамериканец ";
break;
case 14:
cout << "Владимир Путин ";
break;
case 15:
cout << "Владелец известной компании ";
break;
case 16:
cout << "Пьяный лётчик ";
break;
case 17:
cout << "Билл Гейтс ";
break;
case 18:
cout << "Стив Джобс ";
break;
case 19:
cout << "Китайский рабочий ";
break;
case 20:
cout << "Сисадмин ";
break;
case 21:
cout << "Строитель ";
break;
case 22:
cout << "Министр обороны ";
break;
case 23:
cout << "Чак Норрис ";
break;
case 24:
cout << "Алкоголик ";
break;
case 25:
cout << "Наркоман ";
break;
case 26:
cout << "Знаменитый блоггер ";
break;
case 27:
cout << "Маньяк ";
break;
case 28:
cout << "Кондуктор ";
break;
case 29:
cout << "Водитель маршрутки ";
break;
case 30:
cout << "Хакер ";
break;
}

x = 1 + rand() % 26;
switch (x) {
case 1:
cout << "убил ";
break;
case 2:
cout << "зарезал ";
break;
case 3:
cout << "изнасиловал ";
break;
case 4:
cout << "застрелил ";
break;
case 5:
cout << "родил ";
break;
case 6:
cout << "послал на хуй ";
break;
case 7:
cout << "повесил на столбе ";
break;
case 8:
cout << "превратился в ";
break;
case 9:
cout << "убил и съел ";
break;
case 10:
cout << "подал в суд на ";
break;
case 11:
cout << "съел ";
break;
case 12:
cout << "предал анафеме ";
break;
case 13:
cout << "снялся в порнофильме про ";
break;
case 14:
cout << "купил себе ";
break;
case 15:
cout << "обоссал ";
break;
case 16:
cout << "выкакал ";
break;
case 17:
cout << "покусал ";
break;
case 18:
cout << "забил ногами ";
break;
case 19:
cout << "разбил голову об ";
break;
case 20:
cout << "выкинул из окна ";
break;
case 21:
cout << "утопил в унитазе ";
break;
case 22:
cout << "бросил под поезд ";
break;
case 23:
cout << "снял на видео ";
break;
case 24:
cout << "влюбился в ";
break;
case 25:
cout << "сбил на автомобиле ";
break;
case 26:
cout << "переехал ";
break;
}

x = 1 + rand() % 26;
switch (x) {
case 1:
cout << "старушку ";
break;
case 2:
cout << "НЛО ";
break;
case 3:
cout << "жену ";
break;
case 4:
cout << "депутата ";
break;
case 5:
cout << "пенсионера ";
break;
case 6:
cout << "резиновую уточку ";
break;
case 7:
cout << "мухомор ";
break;
case 8:
cout << "человека-паука ";
break;
case 9:
cout << "себя ";
break;
case 10:
cout << "Новодворскую ";
break;
case 11:
cout << "Тимошенко ";
break;
case 12:
cout << "ребёнка ";
break;
case 13:
cout << "президента ";
break;
case 14:
cout << "школьника ";
break;
case 15:
cout << "8-летнюю девочку ";
break;
case 16:
cout << "друга ";
break;
case 17:
cout << "батон колбасы ";
break;
case 18:
cout << "собаку ";
break;
case 19:
cout << "кошку ";
break;
case 20:
cout << "хомячка ";
break;
case 21:
cout << "клизму ";
break;
case 22:
cout << "новенький iPhone ";
break;
case 23:
cout << "эльфа ";
break;
case 24:
cout << "таракана ";
break;
case 25:
cout << "компьютерную мышь ";
break;
case 26:
cout << "бутылку водки";
break;
}

x = 1 + rand() % 18;
switch (x) {
case 1:
cout << "на почве ";
break;
case 2:
cout << "из-за ";
break;
case 3:
cout << "в бытовом споре по поводу ";
break;
case 4:
cout << "в борьбе за независимость ";
break;
case 5:
cout << "в результате воздействия ";
break;
case 6:
cout << "под действием ";
break;
case 7:
cout << "в состоянии ";
break;
case 8:
cout << "под видом ";
break;
case 9:
cout << "на виду у любителей ";
break;
case 10:
cout << "из-за недостатка ";
break;
case 11:
cout << "в отместку за расстрел ";
break;
case 12:
cout << "от переизбытка ";
break;
case 13:
cout << "устав от ";
break;
case 14:
cout << "опасаясь ";
break;
case 15:
cout << "угнав вагон ";
break;
case 16:
cout << "доказывая вред ";
break;
case 17:
cout << "при поддержке ";
break;
case 18:
cout << "с помощью ";
break;
}

x = 1 + rand() % 34;
switch (x) {
case 1:
cout << "перхоти";
break;
case 2:
cout << "Америки";
break;
case 3:
cout << "гнилых пельменей";
break;
case 4:
cout << "интернетов";
break;
case 5:
cout << "растишки";
break;
case 6:
cout << "наркотиков";
break;
case 7:
cout << "алкоголя";
break;
case 8:
cout << "инопланетных излучений";
break;
case 9:
cout << "лесных эльфов";
break;
case 10:
cout << "педофилов";
break;
case 11:
cout << "ФСБ";
break;
case 12:
cout << "импотенции";
break;
case 13:
cout << "секса";
break;
case 14:
cout << "котлет";
break;
case 15:
cout << "комаров";
break;
case 16:
cout << "черепашек-ниндзя";
break;
case 17:
cout << "живого журнала";
break;
case 18:
cout << "порнографии";
break;
case 19:
cout << "денег";
break;
case 20:
cout << "негров";
break;
case 21:
cout << "местного детского сада";
break;
case 22:
cout << "анального секса";
break;
case 23:
cout << "соседнего макдональдса";
break;
case 24:
cout << "всего";
break;
case 25:
cout << "ништяков";
break;
case 26:
cout << "своего интернет-провайдера";
break;
case 27:
cout << "аниме";
break;
case 28:
cout << "онлайн игр";
break;
case 29:
cout << "онанизма";
break;
case 30:
cout << "операционной системы Linux";
break;
case 31:
cout << "ночного клуба";
break;
case 32:
cout << "толкиенистов";
break;
case 33:
cout << "шаурмы";
break;
case 34:
cout << "хакеров";
break;
}

cout << "." << endl;

cout << "Хотите ещё? Если да, то введите 1. Для выхода из программы введите любое другое число." << endl;
error:
cin >> a;
switch (a) {
case 1:
goto start;
default:
exit;
}
system("pause");
return 0;
}
Аноним 12/03/17 Вск 22:18:37  952205
>>952204
Блядь, табуляция
Аноним 12/03/17 Вск 22:19:03  952206
>>947007 (OP)
Тупой вопрос, но все же.
Если я создам вектор массивов, когда будет вызван деструктор вектора, он корректно освободит память или как? Т.е. вызовет delete[] для своих членов. В свою очередь если он корректно освобождает память, то как он это делает? Допустим я пишу свои контейнер, как мне реализовать такой умный деструктор?
Аноним 12/03/17 Вск 22:26:21  952210
>>952206
А если я создам вектор указателей на void, как он их будет освобождать? Никак? Или как-то?
Допустим я под voidPtr храню массив хуйпоймичего, логично, что вектор не знает, как освободить память, допустим я сам удалю содержимое, но у вектора останется указатель и если он такие вызовет delete или delete[] то это приведет к хуете. Как в таком случае корректно работать с вектором?
Аноним 12/03/17 Вск 22:50:21  952224
>>952206
Массив - по сути просто указатель на первый элемент массива (вернее, на нулевой)
Указатель - просто число
Соответственно, никаких деструкторов вызвано не будет, потому что у чисел их нет
Аноним 12/03/17 Вск 22:50:56  952225
>>952210

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

Запихнуть массивы в вектор ты не можешь, зато можешь сделать вложенные векторы.

Если нет информации о типе объекта, разобрать его ты не сможешь.
Аноним 12/03/17 Вск 22:58:32  952230
Есть какие годные материалы о том, как с++ тестировать?
Аноним 12/03/17 Вск 23:49:00  952254
Допустим, у меня есть шаблонный класс Array без конструктора по умолчанию, а только с конструктором с одним аргументом. Можно ли создать Array из Array'ев?

Типо такого: Array< Array<int>(10) > a(10); // попытка создать массив размера 10x10
Аноним 12/03/17 Вск 23:54:20  952260
>>952027
Там стандартные заголовки же есть
http://doc.qt.io/qt-4.8/qstandarditemmodel.html#setHorizontalHeaderLabels
Аноним 12/03/17 Вск 23:59:53  952264
>>952254
Или единственный варик - это создавать массив указателей и в цикле их заполнять?
Аноним 13/03/17 Пнд 00:05:42  952267
>>952264
for (int i = 0; i < a4.size(); ++i)
{
a4 = new Array<int>(10, 3);
}

Такой варик норм, но тогда не работает индексация массива с []: вместо a4[j] приходится писать (*a4)[j]
Можно как-то задавать поведение для массива в зависимости от типа? Я имею ввиду, в случае с типом Т для индексации использовать один метод, а для указателя на этот тип - другой?
Аноним 13/03/17 Пнд 00:44:13  952281
>>952267
Займись чем-нибудь полезным и не пиши никогда своих контейнеров пока у тебя не будет хотя бы пары лет опыта.
Аноним 13/03/17 Пнд 01:02:25  952290
>>952281
Спасибо за ответ, последую твоему совету
иди нахуй, уебок. Нехуй сказать, а все равно надо же что-то спиздануть. Откуда вы блять беретесь
Аноним 13/03/17 Пнд 01:37:46  952304
>>952254

То, что у него нет конструктора по-умолчанию - лично твои проблемы, классу Array, как таковому, вообще ничего не нужно.

Многомерность можешь сделать через переменное количество аргументов и через рекурсивный вызов конструктора.
Аноним 13/03/17 Пнд 01:38:58  952305
>>952254

А ещё многомерность можно сделать через алокацию ОДНОГО блока памяти и через перегруженый оператор [], который вычисляет оффсет, без рекурсии.
Аноним 13/03/17 Пнд 02:30:09  952321
>>952305
>через перегруженый оператор []
Как его перегрузить, если он принимает один аргумент - int(или size_t)? Ну точнее, перегрузить можно, но тогда это будет не канонический вызов a

>То, что у него нет конструктора по-умолчанию - лично твои проблемы
Я в курсе

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

Аноним 13/03/17 Пнд 04:13:06  952339
>>952204
Локаль для cout и устанавливается через imbue.
Ебанутые свитчи вместо того, чтобы использовать массив строк.
Ебанутые константы.
GOTO вместо использования while / do-while
Аноним 13/03/17 Пнд 09:11:49  952457
boost-original.png (293Кб, 531x403)
Привет, я хотел бы поинтересоваться
Используете ли вы Boost? Если да, то какие фичи\библиотеки? Какие, на ваш взгляд, самые полезные\популярные?
ВОООТ.. Я сам бы хотел в него вкатиться со всей силы...

>В ШАПКЕ ->
>Дэвид Вандевурд и Николаи Джоссатис Шаблоны C++. Справочник разработчика 2003 После прочтения этой книги тебя не приведут в ужас даже исходники boost::MPL
Кто читал, так ли это? Стоит ли читать эту книгу for learning boost?
Заранее спасибо
Аноним 13/03/17 Пнд 09:29:40  952470
>>952321
>Как его перегрузить, если он принимает один аргумент - int(или size_t)?

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

>Нихуя не понял. Дай ссылку на реализацию похожего(ну или объясни поподробнее)

Я тоже нихуя не понял. Собственно, если ты правильно напишешь класс, то

Array< Array<int>(10) > a(10);

и есть рекурсия, о которой я думал, и я не вижу препятсивй для этого.

>Можно ли создать Array из Array'ев?

Да.
Аноним 13/03/17 Пнд 09:32:16  952472
>>952254
>Array< Array<int>(10) > a(10);
БЛЁ, есть же Matrix<>
Аноним 13/03/17 Пнд 09:55:40  952481
>>952210
> Как в таком случае корректно работать с вектором
Смарт поинтеры.
Аноним 13/03/17 Пнд 10:29:16  952498
>>952470
>и есть рекурсия, о которой я думал, и я не вижу препятсивй для этого.
Когда я передаю в качестве аргумента шаблону хуйню типо Array<int>(10), компилятор выдает ошибку о том, что это нихера не тип, а объект класса: template argument for template type parameter must be a type

>БЛЁ, есть же Matrix<>
Я в курсе, это мой пердолинг
Аноним 13/03/17 Пнд 13:36:17  952712
>>952498
>Когда я передаю в качестве аргумента шаблону хуйню типо Array<int>(10), компилятор выдает ошибку о том, что это нихера не тип, а объект класса: template argument for template type parameter must be a type

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

У тебя есть два варианта объявления массива:
- ты задаёшь размерность массива с помощью вложенных аргументов, а потом методом (который будет рекурсивно ресайзить подмассивы) ресайзишь его.
- ты задаёшь размерность массива аргументом темплейта, а размеры - туплой.

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

В первом случае ты сможешь использовать подмассивы независимо, во втором случае тебе нужен плоский массив с соответствующим образом перегруженным оператором [], и разделить его на подмассивы будет посложнее.
Аноним 13/03/17 Пнд 14:30:49  952777
Про туплу я зря сказал, это не совсем то. Чтобы проверять соответствие списка размеров размерности нужен набор чисел заданной длины вида huynya<int,3>(3,4,5), но для этого нужно сделать так, чтобы конструктор хуйни принимал нужное число аргументов.

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

http://stackoverflow.com/questions/9100680/member-function-template-with-the-number-of-parameters-depending-on-an-integral
Аноним 13/03/17 Пнд 14:31:26  952778
>>952457
Буст офигенен как либа. Использовал в laba1 для длинной арифметике.
Аноним 13/03/17 Пнд 16:44:10  952867
Проблема с винапи.
Есть один экзешник (exe1), который запускает другой экзешник(exe2), второй выполняется действия(копирует файлы).
Проблема в том что ехе1 и ехе2 находятся в разных директориях, и когда ехе2 спрашивает свой путь через GetModuleFileName() ему выдает путь ехе1.
Вероятно, в CreateProcess нужно добавить какие либо данные в STARTUPINFO, к примеру, но ничего похожего на это я не нашел..

https://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v=vs.85).aspx
https://msdn.microsoft.com/en-us/library/windows/desktop/ms686331(v=vs.85).aspx
Аноним 13/03/17 Пнд 16:48:20  952871
>>952867
Лол, третий с конца параметр в CreateProcess, в глаза ебусь.
Аноним 13/03/17 Пнд 21:23:03  953016
>>952339
Можно кукарекнуть, что это мой говнокод, который хотя бы работает?
Про массивы я как раз спрашивал и уже даже понял, как это реализовать. Насчёт локали и констант не понял. Поясни подробней, что не так.
Аноним 13/03/17 Пнд 21:38:16  953028
Снимок.PNG (61Кб, 1190x673)
Мучачос, кто сталкивался с пикрелейтед? Что делать, чтоб исправить? VS 2015
Аноним 13/03/17 Пнд 23:20:08  953124
14894302964230.png (61Кб, 1190x673)
>>953028
Ну неужели нельзя сделать нормальный интерфейс . Макось уже успела поменять кучу хуйни, а тут этот кривой неудобный дизайн из года в год тянут.
Аноним 13/03/17 Пнд 23:22:50  953128
>>953124
Что не так с интерфейсом?
Аноним 14/03/17 Втр 01:24:48  953198
>>953124

В случае с треугольниками там все нормально - их центры, которыми они закреплены, выровнены.

Надпись "сортировка по" выровнена по середине относительно выпадающего списка, тоже норм.

Аноним 14/03/17 Втр 01:39:55  953204
qtconfiguration.PNG (63Кб, 927x582)
>Захотел такой написать проект на Qt
>Нашел такой на сайте файлик qt-opensource-windows-x86-msvc2015-5.8.0.exe , 1 Гб весит ну да ладно
>Оп, Qt да вместе с тулчейном студии. Два в одном, хорошо придумано
>Ставишь такой Qt, заходишь в настройки - а там пикрилейтед. Компилятора нету, ничего нету.

Это теперь отдельно качать студию?
Можно подключить утилиты Mingw, но ничего хорошего не будет.
Аноним 14/03/17 Втр 04:48:24  953290
>>953204
Если нужно только Qt, то MinGW за глаза хватит. Если нужно GCC по-свежее, пусть MSYS ищет или Cygwin
Аноним 14/03/17 Втр 11:12:21  953407
>>953204

Qt принципиально не может распространять тулчейн студии. MSVC в названии означает совместимость бинарных библиотек с MSVC. С MingW они несовместимы.

Тулчейн (или только компилятор) есть в SDK и WDDK, емнип.

>>953290

Cygwin не подойдёт без костылирования, инфа сотка. MSYS нафиг не нужен.

https://sourceforge.net/projects/mingw-w64/files/mingw-w64/
Аноним 14/03/17 Втр 11:45:01  953438
>>953204
Ну выбери сам сисрут, хули.
Аноним 14/03/17 Втр 11:54:58  953448
>>953438

Нахрен?
Аноним 14/03/17 Втр 12:07:06  953454
mingwinstallopt[...].PNG (19Кб, 531x385)
Не обновлял MinGW с 2013 года, стоял 4.8.1, решил обновиться. Утилита из существующей установки новых версий не увидела. Пришлось взять последний установщик с сайта.

Что за смысл опций он предлагает, а именно threads и exceptions?
По первой прочитал:
http://stackoverflow.com/questions/17242516/mingw-w64-threads-posix-vs-win32
Разница как бы есть, но ее как бы нету, да?
Аноним 14/03/17 Втр 12:17:35  953463
>>953454
>Разница как бы есть, но ее как бы нету, да?

Разница в том, что программа, у которой куча тредов, будет работать быстрее с Win32-тредами, но не будет полной поддержки C++11.

>и exceptions?

https://wiki.qt.io/MinGW-64-bit#Exception_handling:_SJLJ.2C_DWARF.2C_and_SEH

Различные модели несовместимы.
Аноним 14/03/17 Втр 12:31:43  953470
>>953448
А я понял тебя. Ты захотел поставить Qt с либами студийными прямо из коробки. Но так как VS и Qt под разными лицензиями, Qt не может раздавать VS либы. Качай отдельно или ставь студию.

Нахуя они тебе вообще MSVC, если у тебя нет студии и ты не собираешься с ней интегрироваться? Для таких как ты есть большая кнопка download и там есть mingw.
Аноним 14/03/17 Втр 12:52:32  953478
Возник такой вопрос, для которого у меня есть пара решений, но я в них не уверен.

Задача: Массив, в котором каждый элемент содержит данные уникального типа (т.е. первый элемент может содержать пару int'ов, второй int, bool и string и т.д.). Каждый элемент будет структурой/классом и в нем будут идентификаторы типа элемента, указывающие на то какой именно это элемент, так что при считывании я буду точно знать какие данные он должен содержать.

1-ый вариант решения: создать класс, который будет включать в себя все-все-все типы данных, используемых в его элементах и затем при добавлении в/считывании из массива просто записывать/считывать лишь нужные данные в/из каждого элемента. Очевидный минус - каждый элемент будет избыточен процентов на 95.

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

Возможно есть какие-то более изящные методы.
Аноним 14/03/17 Втр 13:10:42  953483
>>953478
То есть теоретически каждый элемент массива может содержать неограниченное количество базовых типов?
Или всё таки есть ограничение на количество?
Аноним 14/03/17 Втр 13:17:56  953486
>>953483
В любом случае лучше всего первый вариант с union.
http://en.cppreference.com/w/cpp/language/union
Если тебе нужно чтобы была возможность в массиве хранить бесконечное количество и сочетание разных типов - то делай union-структуру, а в массиве храни массивы этой структуры.
Аноним 14/03/17 Втр 13:21:53  953490
Бля забыл что еще есть std::variant и QVariant, окторые могут решить проблему.
Аноним 14/03/17 Втр 15:04:39  953558
>>953483
нет, количество переменных в каждом типе элемента вполне определенное для каждого типа, само разнообразие типов тоже ограничено, порядка 30 штук.
Все они в случайном порядке встречаются в массиве.
>>953486
да, спасибо, похоже это то что нужно.

struct S
{
int type;
union
{
myStruct1 a;
myStruct2 b;
myStruct3 c;
.....
};
};
Аноним 14/03/17 Втр 16:12:22  953608
>>953490
std::variant же не поддерживает хранение любых типов, то есть нельзя заслать неспециализированный шаблон в какую-либо функцию. Это по сути типобезопасный union.
В QVariant можно запихать любое говно, которое ты ранее продекларировал с Q_DECLARE_METATYPE. Только и этот костылек мне не нравится. Наверно, еще немало времени пройдет, пока появится полиморфная обертка над std::variant для хранения любых типов.
Аноним 14/03/17 Втр 16:21:32  953615
>>953608
Хм, тут то я проебался. Давно новости не читал. Для таких целей ввели std::any.
Аноним 14/03/17 Втр 16:29:21  953618
>>953478
какую практическую задачу пытаешься решить?
Аноним 14/03/17 Втр 16:30:07  953619
>>953558
>само разнообразие типов тоже ограничено, порядка 30 штук.
Ну сделай 30 классов, наследующихся от одного базового и пихай их в массив указателей на базовый.
Аноним 14/03/17 Втр 16:42:22  953641
>>953619
Не нужно так делать.
Аноним 14/03/17 Втр 16:55:52  953651
>>953618
У меня есть некие события, каждое из которых описывается рядом переменных.
Типов событий ограниченное количество, примерно 30. Каждый из типов описывается своим набором переменных базового типа.

Массив - это совокупность случайного набора этих событий.

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

В принципе union, вроде бы, уже решил эту задачу. Для каждого типа событий я создал структуру с набором присущих ему переменных, затем создал еще одну структуру, единичного события (singleEvent), куда вписал enum, который определяет тип события и union, с переменными типов структур различных событий.

В основном классе создал массив из SingleEvent.

Теперь, проходя по этому массиву я считываю тип события и через switch раскидываю это по соответствующим полочкам.
Аноним 14/03/17 Втр 17:18:58  953686
>>953651
Можешь использовать паттерн visitor, тогда твое событие будет само вывзывать необходимые методы посетителя. Только вот с твоими 30 классами это будет полный пиздец, на каждое событие по методу.
Кстати, а ты не думал, что их можно каким-то образом объединить (то есть подобное к подобному и так далее), потому что 30 разных событий, как по мне, это уж слишком дохуя, причем они все имеют только одного родителя.
Хотя в SDL гоняют union'ы для хранения событий и вполне себе ничего живут.
Аноним 14/03/17 Втр 17:22:49  953691
Покидейте годных гайдов под boost spirit
Аноним 14/03/17 Втр 17:33:16  953718
>>953651
Уж не движок ты делаешь игровой?
Аноним 14/03/17 Втр 17:40:04  953732
>>953470

Верно написал. Я не ОП, но я хотел сказать, что в Windows Sysroot не нужен. ЕМНИП, он нужен для кросс-компиляции в POSIX-системах (Cygwin, например, но совместимость Qt с Cygwin не поддерживается).
Аноним 14/03/17 Втр 17:49:41  953740
>>953651
Если ты хочешь именно хранить данные в массиве (а не ссылки на них) то через юнион единственный вариант - нужно чтобы объекты разных ивентов были одинакового размера. А вообще чтобы небыло "считываю тип события и через switch раскидываю" придумали полиморфизм.
Аноним 14/03/17 Втр 18:15:05  953757
>>953718
нет, но применять собираюсь это в игре на UE4

>>953740
Кстати да, про полиморфизм все время забываю.
Насчет одинакового размера, из того что я прочитал юнион переменная просто занимает размер максимального элемента, что для массива должно быть приемлемо, или это не так? Во всяком случае компилятор по этому поводу ошибок не выдал.
Аноним 14/03/17 Втр 18:20:44  953760
>>953740
Чем плох старый добрый switch?
Аноним 14/03/17 Втр 18:21:17  953761
>>953686
про объединение думал, конечно, но там сложновато с подобием, плюс при дальнейшем написании кода это точно будет путать, поэтому от этой идеи решил отказаться.

По поводу визитора, нагуглил, надо почитать может быть получится извлечь профит.
Аноним 14/03/17 Втр 18:23:11  953763
>>953760
в моем случае в свиче все равно будут функции, каждой из которых передается свой тип события. Поэтому проще сделать полиморфную функцию и вообще обойтись без свича.
Аноним 14/03/17 Втр 18:41:30  953772
Привет
Аноним 14/03/17 Втр 20:21:43  953827
NeoTheOne.jpg (420Кб, 1024x1024)
>>951410
Сейчас дочитываю C++ Templates - The Complete Guide и смотрю на такие вопросы как на пустое место.
Аноним 14/03/17 Втр 20:45:58  953842
>>953827
И че? Нахуя это еботня кому-то нужна. Ты бы еще стандарт полностью прочитал
Аноним 14/03/17 Втр 22:12:26  953928
В прилоге некоторое количество разнородных функций, которые для удобства и упрощения я размазал по десятку .cpp
В .h описал все функции, заинклюдил во всех связанных .cpp. Вроде работает всё, но:
1) я правильно внутри h описал функции? Вид:
void sendsignal(int signal);
std::string sendmessage(std::string message);
Или без описания можно/нужно?
2) взаимосвязано с №1. Я сделал инклюд в .h
#include <string>
Это нормально? И можно ли в h разом описать все инклюды, общие для всех .cpp?
Я предполагаю 1-2 хидера по 15-25 описанных функций (т.е. 15-20 строк) в одном.
Т.е. идея свести все функции для удобства отслеживания.
В гугловыдаче один чувак топит за отсутствие инклюдов в хидерах, другой в 10 пунктов топит за использование хидеров при повторении инфы.
Аноним 14/03/17 Втр 22:17:02  953937
>>953928
>(т.е. 15-25 строк)
пофиксил
>>953928
>другой в 10 пунктов топит за использование хидеров при повторении инфы
Уточнение: в смысле один и тот же набор инклюдов - повторение, по логике.
Аноним 14/03/17 Втр 22:24:41  953944
>>953937
Там нужно макросы добавлять всякие, чтобы везде инклюды кидать.
На вижле #pragma once, в остальных компиляторах другие, но это всё гуглится.
Аноним 14/03/17 Втр 22:24:46  953945
Как сделать специализации чтобы работало?

class Yoba
{

template<typename T>
T test() { return T(); }

template<>
int test() { return 1; }

};

template class не подходит, один объект должен выдавать разные типы
Аноним 14/03/17 Втр 22:25:55  953946
>>953945
Раскрой вопрос, пока не понятно. Желательно на примере, ещё лучше если это какой-то код, как ты себе это представляешь.
Аноним 14/03/17 Втр 23:11:06  953980
>>953945
template<>
int test<int>(){ return 1; };

А вообще, можно без тимплитов оверлоады сделать:
int test() { return 1; };
Аноним 15/03/17 Срд 00:56:46  954034
>>953980
Хотя нет, я протрезвел и понял, что написал хуйню. Оверлоад ты не сделаешь. Но и специализация у тебя будет хуевая, т.к. тимплитный аргумент руками писать будет надо
Аноним 15/03/17 Срд 01:30:30  954038
>>953945
ideone.com/rFmjbP
Аноним 15/03/17 Срд 03:40:54  954088
А что C++ настолько ущербен, что без костылей даже не может сказать "Hello, World!"?
Аноним 15/03/17 Срд 04:51:47  954109
>>954088
не может, не может, иди в тред web-элиты, господин_две_строчки_на_метод
Аноним 15/03/17 Срд 05:58:34  954121
>>954109
Ну и как это, каждый день ощущать себя ущербным?
Аноним 15/03/17 Срд 07:31:13  954130
>>953946
Я сам запутался, пытаюсь эффективно создавать переменные для интерпретатора скриптов (значения передаются сторонним С функциям типа set_as_int и я не могу их шаблонизировать), пока получается так:

Scalar var = script.newScalar<const char ж>("value")
Scalar var = script.newScalar<int>(14)
Array var = script.newArray({ script.newScalar<const char ж>("a"), script.newScalar<const char ж>("b") })
Array var = script.newArray<std::string>({ "a", "b", "c" })
Hash var = script.newHash({ { "a", script.newScalar<int>(1) }, { "b", script.newScalar<int>(2) } })
Hash var = script.newHash<int>({ { "a", 1 }, { "b", 2 }, { "c", 3 } })

Лучше же никак не сделать?
Аноним 15/03/17 Срд 09:11:43  954149
>>952457
<boost/filesystem.hpp> - говорит за себя
<boost/lexical_cast.hpp> - строки в числа и обратно
<boost/format.hpp> - запихиваем что угодно в строку
<boost/current_function.hpp> - портабельный способ определить позицию в коде (для дебага)
До с++11 были ещё треды и ряд других вещей которые засунули из буста в стандарт
Аноним 15/03/17 Срд 09:58:58  954164
>>954130
Что за шрифт и схема в редакторе?
Аноним 15/03/17 Срд 10:45:16  954176
>>954164
Anonymous Pro с обосравшимся хинтингом в qt-креаторе с вручную настроенными цветами
Аноним 15/03/17 Срд 13:15:07  954302
Inked143555LI.jpg (1545Кб, 738x283)
>>947007 (OP)
Сап ананасы, вкатился нуфаг. Дали задание:найти количество отрицательных элементов массива и вставить найденное кол-во перед первым в массиве отрицательным числом. Я написал какую-то поеботу, которая ищет сами элементы, но не могу додуматься, как вывести их кол-во. Прошу подсказки, пик прилагаю.
Аноним 15/03/17 Срд 13:22:38  954307
>>954302
C-тред в другой стороне.
Аноним 15/03/17 Срд 15:20:15  954383
>>947810
А вывод кирилицей на КьюТихе починили?
Аноним 15/03/17 Срд 15:41:12  954401
Блядь, ананасы. На дворе 2017 год. Какого хуя студия не умеет создавать файлы в юникоде?
Аноним 15/03/17 Срд 15:55:31  954411
>>954401
нахуй тебе файл в юникоде?
Аноним 15/03/17 Срд 16:13:02  954419
>>954411
Нахуй что-то не в юникоде в 2017?
Аноним 15/03/17 Срд 16:17:19  954425
multi.PNG (1Кб, 523x22)
>>954401
>студия не умеет
)
Аноним 15/03/17 Срд 16:21:36  954427
Сап, крестоносцы. Подскажите литературу или туторы, или хоть что-то, что помогло бы разобраться как с изображениями работать? Уровня для студентоты.. Как их в памяти хранить и всё такое.
Аноним 15/03/17 Срд 16:26:23  954432
2017-03-1520-22[...].png (45Кб, 1439x821)
2017-03-1520-22[...].png (35Кб, 1439x818)
>>954425
Ну ахуеть, да? В 17 то году самое то обмазываться windows 1251
Да, студия на русском, да, я говноед
Аноним 15/03/17 Срд 16:29:56  954436
>>954432
Уже существующий файл нужно же конвертнуть в UTF-8, то гжде стрелочка меняет только отображение, а не содержимое файла.
>>954427
Если для студеноты то можешь http://cimg.eu/reference/group__cimg__tutorial.html посмотреть. А так-то нужно под задачу подбирать вариант. Пожет сразу в OpenGL пердолиться, может какое-то SFML или еще чего откопать.
Аноним 15/03/17 Срд 16:33:58  954439
>>954436
Хм, если уж совсем грубо говоря, то мне нужно запилить через классы сравнение двух изображенийи более., просто не сильно представляю себе как эти изображения мацать и сохранять.
Студетота. Спасибо за тутор.
Аноним 15/03/17 Срд 16:34:57  954441
>>954436
> Уже существующий файл нужно же конвертнуть в UTF-8, то гжде стрелочка меняет только отображение, а не содержимое файла.
Я в курсе, как руками конвертить. Вопрос в том, какого хуя студия сама не создаёт его с юникодовской кодировкой?
Аноним 15/03/17 Срд 16:35:37  954443
>>954439
Возьми любую либу для работы с изображениями. Или тебе прям все-все надо самому написать?
Аноним 15/03/17 Срд 16:36:22  954445
>>954443
Именно самому.
Аноним 15/03/17 Срд 17:08:07  954470
>>954432
Ёбаная параша
Аноним 15/03/17 Срд 17:40:00  954491
Sup, аноны подскажите как тому кто учил pure C вкатиться в кресты. Просто когда я начинаю читать любой учебник первые много страниц все понятно и очень скучно, но там если пропустить рандомное число страниц становится нихуя не понятно.
Аноним 15/03/17 Срд 17:44:19  954496
>>954491
Эккеля почитай. Там вроде как раз для таких написано.
Аноним 15/03/17 Срд 19:07:46  954567
>>954491
Посмотри на C++ Tour Страуструпа
Аноним 15/03/17 Срд 19:10:13  954570
>>954491
Нихуя не понятно начинается обычно с ООП. Вот в этом месте тебе нужно забыть как это процедурно программировать, и начинать думать вв рамках ООП.
Аноним 15/03/17 Срд 20:02:49  954606
что не так с этим кодом?
http://ideone.com/ZTggVd
Аноним 15/03/17 Срд 20:23:31  954642
>>954606
1) Ускорил на десять процентов, добавив пробел: http://ideone.com/bj8N8a (просто перекомпилировалось).
2) http://ideone.com/mqCLqO - удалил код второй функции, лол. Код первой функции замедлился.

Запусти на локальной машине, никаких гарантий производительности Ideone не даёт.
Аноним 15/03/17 Срд 20:38:58  954663
Libre Office, написан на C++, но лагает просто жутко даже на крутом компе. Особенно Draw.

А вы, плюсисты, тем временем Java ругаете за тормознутость.

Я сомневаюсь, что разработчики LO уступают вам в мастерстве, скорее наоборот.
Они точно не ламеры и лучше вас среднестатистически.

И выходит, что C++ не так уж и хорош, как его хвалят.
Аноним 15/03/17 Срд 21:03:32  954676
>>954642
Первый вызов без анролла работает быстрее (Больше инструкций-больше кэш миссов?) Это я к тому что Loop Unrolling не обязательно будет отимизировать цикл по скорости.
Аноним 15/03/17 Срд 21:41:12  954690
>>954663
0/10, try harder
Аноним 15/03/17 Срд 21:54:03  954692
>>954676

Прочти то, что я написал: я никак не изменил код первой функции в 2) и при этом она работает хуже.

Олсо, учти векторизацию.
Аноним 15/03/17 Срд 22:08:36  954699
>>954491
все очень просто
там где раньше делал макросами - теперь делаешь типобезопасно на шаблонах
плюс шаблоны позволяют делать статический полиморфизм
там где раньше для реализации динамического полиморфизма ручками писал реализации vtable теперь пользуешься встроенными виртуальными функциями
ссылки используешь везде где нужно передавать что-то без копирования, раньше для этого указатели нужны были
указатели остаются нужны для реализации механик косвенного обращения
для реализации adhoc полиморфизма есть перегрузка
ну и прочее в том же духе
те на крестах по сути уже встроено для тебя куча механизмов что раньше приходилось либо писать ручками (тот же полиморфизм через vtable), либо делать это ослабляя типизацию (через макросы или void*)
Аноним 15/03/17 Срд 22:14:46  954705
>>954149
><boost/format.hpp>
есть мнение что fmt поприятней будет..
Аноним 15/03/17 Срд 22:59:27  954731
>>954692
>>954642
>Ускорил на десять процентов
>замедлился
Абсолютные значения не имеют значения (каламбур лол), у нас же не процессор реального времени и тайминги могут скакать в пределах +/-.
А вообще, ладно, проехали, я взбугуртил из-за того что был сегодня на собеседовании и там спросили как можно оптимизировать по скорости код на примере. Я упомянул simd и распараллеливание на потоки. Когда он начал говорить про анролл цикла(че-то там про уменьшение количества сравнений, без явных simd, видимо), я сказал, что это не даст гарантированного прироста еще и замедлить может при определенных условиях, все зависит от архитектуры процессора.
Аноним 16/03/17 Чтв 03:01:52  954834
>>954731

Те же строки можно сравнивать с помощью uint64_t (если есть) - типа, СИМД ручками.

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

Но в данном примере всё зависит от флагов компиляции. Этот пример очень простой, и GCC наверняка векторизовал его с помощью SIMD.
Аноним 16/03/17 Чтв 07:15:39  954853
>>954663
> написан на C++, но лагает просто жутко даже на крутом компе
Duke Nukem 3D был написан в 1995 году. Выдавал 120 кадров в секунду на 486 кудахтере с 8MB оперативной памяти. Единственная причина почему у нас нет шутеров с 1200 фпс в 2017 году -- это то, что программистов перестали учить ассемблеру. Software is not a platform. Hardware is a platform.

https://www.youtube.com/watch?v=CezOHqlXAFY
Аноним 16/03/17 Чтв 07:24:18  954855
>>954853
А может потому что никому нахуй не уперлось 1200 фпс в шутерах?
Аноним 16/03/17 Чтв 10:33:03  954899
Писал долгое время на Java, но теперь понадобилось писать на С++, до этого писал на нем в вузе.
Скажите, в Windows нативно как-то организована сборка мусора, чтобы автоматически освобождались из памяти объекты, на которые нету больше ссылок, или тут нужно самому их освобождать?
Например:
void OtherClass::callThisManyTimes() {
//создаю такой объект
MyClass *myClassInstance = new MyClass();
myClassInstance->doSomething();
//...
//тут нужно вызывать delete(myClassInstance), или в ОС есть подсчет ссылок ?
}

Помню в вузе с этим были проблемы, такая ситуация вызывала исключительные ситуации в неожиданных моментах
Аноним 16/03/17 Чтв 10:45:24  954905
В самом с++ сборка не предусмотрена, но есть разные умные указатели, которые вызывают деструктор, если на владеющий объект ничего не ссылается. А так память, сжираемая процессом, никуда не уйдет, но когда процесс завершится, то ОС сама освободит всю виртуальную память, связанную с процессом
Аноним 16/03/17 Чтв 10:50:32  954906
А вот для этих "умных указателей" правильно вызвать деструктор вручную?
Аноним 16/03/17 Чтв 11:33:02  954924
>>954906
Для указателя ничего вызывать не надо, ты же не на куче его создаешь, а на стеке(в джаве все объекты в куче, если что)
Аноним 16/03/17 Чтв 13:55:08  954976
Дратути, в винде для ожидания объектов ядра, в моем случае потока, можно юзать WaitForSingle/MultipleObject, однако работать необходимо с std::thread. Собственно вопрос: есть ли в стандартной библиотеке подобный механизм ожидания с таймаутами без использования дополнительных мьютексов и кондишн вариеблов? Или для подобных целей нужно юзать std::async и чекать std::future? Чесно сказать, мне кажется что мультипоточность в стандартной либе какая-то неполноценная, например, в винде есть события, а в либе что? непонятная хуйня на мьютексах, ну что за говно?
Аноним 16/03/17 Чтв 15:19:27  955022
>>954906

Деструктор указателя или объекта, на который они указывают? Если ты создал указатель не на стеке (т.е. объявив объект) - надо. Вызывать деструктор объекта в обход указателя не следует.
Аноним 16/03/17 Чтв 15:20:00  955024
>>955022
>на стеке (т.е. объявив объект)

Не на стеке - это new или placement new.
Аноним 16/03/17 Чтв 15:33:57  955030
>>954976
зачем тебе стандартную библиотеку юзать, если ты кодишь для винды?
Аноним 16/03/17 Чтв 18:14:32  955094
>>954302
объяви вне цикла новую переменную, типа int, не забудь ей сразу присвоить ноль, затем в цикле, каждый раз как будешь натыкаться на отрицательный элемент, прибавляй к ней единицу, при выходе из цикла получишь свое количество. Надо сказать, к программированию это мало отношения имеет, тут скорее логику подключить надо было.
Аноним 16/03/17 Чтв 18:25:43  955104
>>954899
Ну в c++ нету сборщика мусора. Советую не полениться и осилить таки std::unique_ptr и std::shared_ptr. Также неплохо бы осилить ссылки, l-value и r-value. После этого можно будет более менее с такими вопросами разбираться.
Аноним 16/03/17 Чтв 18:27:59  955106
>>954976
Можно пример синхронизации с другого языка, который тебя бы устроил?
Ну и стандартные мьютексы не подходят? (с++11)
http://en.cppreference.com/w/cpp/thread/mutex
Аноним 16/03/17 Чтв 18:49:00  955119
Без имени-1.png (9Кб, 703x199)
Не знаю, где спросить. Спрошу тут. Я студент и в институте сидел на делфи, который почему-то был мыльным. Пришло время перекатываться на вижуал студио, но мыло осталось. А я думал не будет его. Как с ним бороться? Откуда оно? Вот, на скриншоте видно, как разрешение в программе проёбано. Изображения тоже не пиксель в пиксель отображаются, а с мыльцой.
Аноним 16/03/17 Чтв 19:09:14  955128
>>955119
У тебя Win10 и ты менял масштабирование интерфейса, я так понимаю?
Если за, тогда выкачай Windows 10 DPI fix или как его там, вроде так называется. Мыло сразу убирает
Аноним 16/03/17 Чтв 19:16:04  955129
>>955094
Спасибо, уже додумал до этого и сдал прогу.
Аноним 16/03/17 Чтв 19:18:33  955130
>>954976
Насколько тебе важна производительность? Сколько я книг не читаю, но многие пишут, что ежели ты собрался что-то стоящее написать, не стоит заострять раньше времени внимание на обоссаных API, которые, во-первых непортируемы, а во-вторых настолько расщеплены (то есть реализуют малый набор операций, и лежат в одной куче, грубо говоря), что их все в идеале, да и даже не в идеале, заебешься просто изучать.
Если бы ты антивирусы писал, драйвера, системные сервисы или какую подобную поеботу, тогда да.

Что мешает тебе передать выполнение другому потоку, то есть std::this_thread::yield() и std::chrono для замеров интервалов времени? Что ты реализуешь? Реактор, проактор?
Аноним 16/03/17 Чтв 19:29:39  955142
>>955128
Похоже на правду, хотя масштабирование не менял. Если сбилдить, то в свойствах эту парашу можно отключить.
Спасибо.
Аноним 16/03/17 Чтв 19:58:13  955178
С fps тенденция чётко видна.
Чтобы не перегревалась видеокарта, в новых играх приходится ставить 60 кадров. Причём, это игровая видеокарта, а не среднечёк.
Раньше можно было выжить сотни fps, тот же Дюк, потом возьмём для примера Cube 2, где fps упал в разы, но оставался внушительным, а сегодня эта цифра упала ещё в 3 раза.

Через 10 лет, для красивой современной графики придётся покупать супердорогую для рашкинского среднекласса видеокарту.
За те же бабки будут идти "машины" Российского производства.

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

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

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

Вероятно, что-то в этой сфере в скором времени изменится, скорее всего появятся новые ниши. Но конкуренция по истине огромна.
Аноним 16/03/17 Чтв 20:08:28  955197
>>955178
школотрон-аналитег, спешите видеть
Аноним 16/03/17 Чтв 20:11:07  955202
>>955197
Сейчас школотроны умнее пердунов-альтфаков, так что завали ебало, хейтерский выродок.
Аноним 16/03/17 Чтв 20:16:27  955211
>>952010
*std::find(std::begin(arr), std::end(arr), query);
Где query - искомый элемент
Аноним 16/03/17 Чтв 20:20:27  955214
>>955202
>умнее
это твоя мамка тебе сказала, аналитег?
Аноним 16/03/17 Чтв 20:21:31  955215
>>955202
>по истине
>КУДАХ БАБАХ КУКАРЕКУ
Уроки-то сделал?
Аноним 16/03/17 Чтв 20:54:27  955252
>>955178
>Чтобы не перегревалась видеокарта, в новых играх приходится ставить 60 кадров.

Бред какой-то.
Аноним 16/03/17 Чтв 21:39:43  955282
>>955252
Значит, на полохой гарфике играешь. Или игры говяные.
Аноним 16/03/17 Чтв 22:12:23  955309
>>955282

Furmark - достаточно говяная игра для HD6970? TDP больше 200 Ватт.
Аноним 16/03/17 Чтв 22:55:44  955352
>>955030
>>955130
Просто разбираюсь с многопоточностью. Собственно чтобы код был портируемым и спросил.
По сути, один поток должен крутиться в цикле и периодически проверять (ожидать где-то пол секунды примерно) готовность другого потока который висит на блокирующем вызове.
Понятно, что реализаций подобного множество, мне было интересно, нет ли в стандарте сахарку для такого).
А вот по поводу yield можно подробнее, а то я понял, что он всего лишь вытесняет текущий поток.
Аноним 16/03/17 Чтв 23:02:05  955356
>>955106
Я только плюсы и знаю, лол. Мьютексы подходят, просто рассматриваю различные варианты.
Аноним 16/03/17 Чтв 23:51:41  955414
>>955129
малаца, заходи еще.
Аноним 17/03/17 Птн 03:06:20  955500
>>955309
Запусти современные игры не не неси чушь.
Аноним 17/03/17 Птн 03:32:43  955509
Двач, можешь подсказать что-нибудь про то как связывать многофайловые программы с несколькими классами? У меня большая с этим проблема, я не знаю где правильно создавать экземпляры классов, как делать чтобы они имели доступ друг к другу, как всё это дело наследовать и т.д. Просто у меня всё путается, переплетается и выдаёт различные ошибки, не могу нормально спроектировать код. Где получить эти знания я тоже не знаю, т.к. в книгах такое не рассказывают.
Аноним 17/03/17 Птн 03:51:57  955518
>>955500

Самонадеянная макака ты, ни одна современная игра не разогревает чип сильнее, чем Фурмарк.
Аноним 17/03/17 Птн 04:40:53  955526
116885533-sramo[...].png (137Кб, 500x439)
>>955509
>Где получить эти знания я тоже не знаю, т.к. в книгах такое не рассказывают.
Вон из профессии.
Аноним 17/03/17 Птн 04:42:06  955528
>>955526
Вон из треда школьник
Аноним 17/03/17 Птн 06:10:58  955532
>>955509
Тебе нужно искать книги по архитектуре программного обеспечения, а не по языку программирования. Сначала посмотри Gang of Four Design Patterns.
Аноним 17/03/17 Птн 11:04:36  955641
>>955509
Ну сделай сначала блок схему архитектуры, если не можешь сообразить сразу в коде.
https://en.wikipedia.org/wiki/Class_diagram
В общем случае тут и посоветовать нечего, скорее всего ты просто выбрал не ту профессию, если у тебя не получается проектировать в голове даже простые вещи.
Архитектура от задачи зависит. Хотел тебе написать о разделении клиентского и backend-кода, но это тоже не всегда нужно.
>>955532
У этого студента проблемы с несколькими классами в разных файлах, а ты ему паттерны советуешь, лол. Вещь хорошая, но ему вообще не поможет, если у него не получается три класса связать без ошибок.
Аноним 17/03/17 Птн 17:35:17  955836
>>955641
По сути, там наглядно показывается связь компонентов друг с другом. А ежели вопрошающий не знает, как связать два класса, то ему и UML не поможет. Нужно хотя бы синтаксис понимать, хотя бы минимум.
Аноним 17/03/17 Птн 18:12:49  955866
>>955509
чел, не тупи, пиши все в одном .cpp файле
на более-менее норм компе можно спокойно работать в любой ide с файлом в несколько сотен тысяч строк без тормозов и с незаметной глазу временем компиляции
Аноним 17/03/17 Птн 19:39:43  955914
14517746877680.gif (686Кб, 500x555)
Можно в Qt перловскими регулярками QRegularExpression напрямую, без ебли с циклом получить все подстроки заматченые одной группой? Т.е.
QRegularExpression(R"(((?<one>\w+)=(?<two>\d+)\s+)+")
в "foo=12 bar=42"
заматчит только последние вхождения
<one> bar
<two> 42
Аноним 17/03/17 Птн 20:57:43  955957
поясните за Borland C++
мой препод совковых времен с пеной у рта доказывает, что это потрясающая IDE
но у меня чет есть подозрения
Аноним 17/03/17 Птн 21:11:43  955967
>>955957
>это потрясающая IDE
Для 1998 года была неплохая IDE. Так что препод прав. Спроси его только, что он делал последние 20 лет.
Аноним 17/03/17 Птн 21:15:46  955971
>>955967
он 15 лет назад вышел на пенсию
и с тех пор преподаёт
Аноним 17/03/17 Птн 21:18:11  955972
>>955971
Покажи ему Visual Studio 2017 и CLion 2016. Пусть посмотрит на чудеса современности лол.
Аноним 17/03/17 Птн 21:29:10  955985
Работает ли next_permutation, если у меня в перестановке есть одинаковые элементы? (то есть она не совсем перестановка).
Аноним 17/03/17 Птн 21:39:12  955992
>>955914
Это не работает?
http://doc.qt.io/qt-5/qregularexpression.html#globalMatch
Аноним 17/03/17 Птн 21:42:11  955995
>>955985
Ответ в самом конце:
http://en.cppreference.com/w/cpp/algorithm/next_permutation
Аноним 17/03/17 Птн 21:51:29  955999
>>955995
О, класс. Спасибо.
А то я тут почитал http://www.cplusplus.com/reference/algorithm/next_permutation/
Меня смутило: "A permutation is each one of the N! possible arrangements the elements can take".
Аноним 17/03/17 Птн 21:52:41  956001
1291583635047.jpg (17Кб, 276x300)
>>955992
Не совсем то что я хотел, но сойдёт.
Аноним 17/03/17 Птн 21:54:58  956008
Можно ли сконпелировать под винду с андроида?
Аноним 17/03/17 Птн 23:28:14  956066
>>956008
Думаю, что пока никто не реализовал.
Задача без задач. Зачем тебе это?
Аноним 17/03/17 Птн 23:49:31  956074
>>956066
Да у меня трустори. Делал я, значит, laba1 на C++, конпелировал у себя дома на g++ с ubuntu. Я специально ухудшал свой код, в результате он стал менее читаемым и безопасным, зато конпелировался даже на c++98 (тестил на cpp.sh) и препод не доёбывался (он любит максимально старомодный код). Думал, что никаких проблем не будет, но на компах в классе была visual studio, да и ещё 2010, где мой код, конечно же не работал. У одногруппников на 2015/2017 студиях код тоже не работал. Как я понял, дело в Visual C++, которая имеет некоторые отличия. Вот я и поинтересовался, можно ли как-то воспользоваться g++ на ведроиде с целью конпеляции на wndws.
Пока что остановился на установке ОС на USB, т.к. у меня даже с C# была проблемы из-за устаревшего софта.
Аноним 17/03/17 Птн 23:59:11  956078
>>956074
Так тебе на ведре или на убунте нужно компилить? Если убунта, то вот какой-то способ.
http://stackoverflow.com/questions/2033997/how-to-compile-for-windows-on-linux-with-gcc-g
Аноним 18/03/17 Суб 06:50:47  956154
screen.png (16Кб, 644x193)
Почему говорит
warning: return from incompatible pointer type
return huita;
100 лет на си не писал
Аноним 18/03/17 Суб 08:30:47  956160
> char a[] = "слово";
> char b[] = "aword";
> std::cout << sizeof(a) << "\t" << sizeof(b) << std::endl;

Не могу понять, вроде оба массива являются char, но для русского массива выделяется в 2 раза больше памяти, не подскажет кто почему?
Аноним 18/03/17 Суб 08:50:35  956164
>>956160
Потому что кириллический символ занимает 2 байта и не помещается в один char. Можешь использовать 2-байтовые чары:
wchar_t a[] = L"слово";
std::wcout << a;
но там какая-то возня с локалью ещё нужна
Аноним 18/03/17 Суб 11:19:54  956239
>>956001
А Шрёдингер разве тоже пидором был?
Аноним 18/03/17 Суб 11:27:18  956242
>>956164
Ууу, си-плюсы-джава шизофрения.

Хорошо, что мы этого говна в Питоне не знаем.
Аноним 18/03/17 Суб 12:01:22  956257
>>955999

Отправь багрепорт.
Аноним 18/03/17 Суб 12:07:54  956260
>>956160
>Не могу понять, вроде оба массива являются char, но для русского массива выделяется в 2 раза больше памяти, не подскажет кто почему?

Потому что в твоём компиляторе используется UTF-8. Сделай текстовый файл в UTF-8 в Notepad++ - увидишь то же самое.

Чтобы узнать число букв нужно использовать другие функции.
Аноним 18/03/17 Суб 12:11:32  956262
Например, а имеет следующий тип:
const unsigned int const a = &c;
Можно ли весь тип переменной а(const unsigned int const
) вывести в консоль?
Аноним 18/03/17 Суб 12:13:37  956263
>>956262
boost вроде умеет через type_info работать
Аноним 18/03/17 Суб 14:45:51  956331
Пишу один проект, получаю такую ошибку:
>could not convert 'nullptr' from 'std::nullptr_t' to 'QModbusDataUnit'
>return nullptr;

Код выглядит так:
QModbusDataUnit::RegisterType regType = QModbusDataUnit::HoldingRegisters;
bool ok = true;
int startAddress = this->ui->lineEditRegAddr->text().toInt(&ok, 0);
if (ok == false) {
return nullptr;
}
Аноним 18/03/17 Суб 14:49:12  956334
>>956331
Почему nullptr несовместим с экземпляром класса?
Аноним 18/03/17 Суб 15:23:06  956356
Ананасы, как можно привести shared_ptr<Foo> к shared_ptr<Bar> при условии, что Bar наследуется от Foo?

Я кроме как получить сырой указатель и кастануть его dynamic_cast`ом ничего не придумал

http://pastebin.com/DR6kPzQH
Аноним 18/03/17 Суб 15:44:08  956371
>>956356
Пньятненько, надо было не думать, а погуглить
Аноним 18/03/17 Суб 16:06:45  956387
>>956331
Вот это накрутили в С++.
http://stackoverflow.com/questions/3030829/c-is-it-possible-to-set-an-object-to-null
Оказывается, экземпляр класса - это не указатель в памяти, как объясняли в вузе. Переделал тип возвращаемой переменной в подпрограме на указатель с экземпляра, а дальше - разименовываю его, проставив звездочку
Аноним 18/03/17 Суб 17:06:46  956411
>>956387
Ты бы блять хотя бы объявление функции показал. Откуда мне знать, что она возвращает?
Аноним 18/03/17 Суб 20:25:41  956495
>>955972
>Visual Studio 2017
Есть смысл с 15 перекатываться?
Аноним 18/03/17 Суб 20:49:51  956505
>>956495
Если ты не CUDF-ёб, то, думаю, можно. В c++17 нормальные такие плюхи завезли.
Аноним 18/03/17 Суб 20:50:10  956508
>>956505
>> CUDA
fix
Аноним 18/03/17 Суб 22:08:18  956564
>>956505
> В c++17 нормальные такие плюхи завезли
Например?
мимо clion-оёб
Аноним 18/03/17 Суб 22:59:57  956587
Screenshot from[...].png (12Кб, 238x313)
Есть способ кастовать типы без использования указателей и ссылок?
Аноним 19/03/17 Вск 00:25:23  956635
>>956587
нет, будет слайсинг
Аноним 19/03/17 Вск 00:56:57  956640
Челы, я студентота еще. Просвятите на сколько много алгоритмов нужно знать на джуна и какие?
Аноним 19/03/17 Вск 01:04:32  956641
>>956640
Есть много алгоритмов, но TOP PRO CODERS наиболее часто пользуются таким:
StackOverflow-Google-Yandex Driven Development
Аноним 19/03/17 Вск 01:18:27  956645
вс1.jpg (463Кб, 1270x1333)
вс2.jpg (287Кб, 1254x1046)
Извините, конечно, но что мне нужно из этого устанавливать?

Решил второй раз попробовать вкатиться, в прошлой версии такого не было
Аноним 19/03/17 Вск 01:24:18  956650
>>956645
Мб не будешь вкатываться?)
Аноним 19/03/17 Вск 01:30:21  956654
>>956650
Ну че ты начинаешь
Аноним 19/03/17 Вск 01:40:26  956661
Допустим у меня есть куча неповторяющихся байтовых строк (с повторяющимися символами) разной и мне нужно их так записать так, чтобы потом можно было однозначно восстановить. Первая идея - использовать битовую маску:
Строки abcd,efg,hjklm
записываем abcdefghjklm и маску 11110001111
Так вот, вопрос: можно ли это сделать как-то компактнее? Понятно, что строчку можно сжать всякими хаффманами и lz, но меня сейчас больше интересует собственно оптимизация хранения инфы для восстановления списка строк.
Аноним 19/03/17 Вск 01:49:19  956662
>>956640
Ну сортировку там какую-нибудь, поиск в глубину-ширину. Если хочешь выебнуться, то можешь разобраться с ахо-корасиком, красно-черными деревьями и разными дейкстрами-хуекстрами, но энивей это юзлесс говно тебе никогда не пригодится.
Аноним 19/03/17 Вск 01:50:19  956663
>>956645
Мы то откуда знаем что тебе нужно? Ставь вон инструменты C++ для iOS. Точно нужно!
Аноним 19/03/17 Вск 01:58:18  956669
>>956663
Для начала изучения пограмирования по книжке же
Аноним 19/03/17 Вск 02:15:14  956680
>>956669
Install Gentoo Install MinGW.

>Разработка приложений Windows
>Разработка классических приложений

Аноним 19/03/17 Вск 02:21:34  956686
>>956645
Блин, оно же еще и платное.
Что будет после истечения пробной лицензии?
Аноним 19/03/17 Вск 04:06:18  956717
>>956686

Нужно будет ЗАРЕГИСТРИРОВАТЬСЯ.
Аноним 19/03/17 Вск 04:40:32  956720
Без имени.png (95Кб, 1200x1200)
Двач, можешь подсказать дауну?
Я создаю "class 1" объект которого создаётся в main.cpp, потом у меня есть другой класс "class 2", объект которого я создаю в первом классе. В первом классе я спокойно могу использовать поля и методы второго класса, но как сделать чтобы второй класс мог использовать первый класс? Я не знаю как это сделать т.к. объект первого класса у меня создаётся в main.cpp... Я вам даже схему нарисовал.
Аноним 19/03/17 Вск 04:44:55  956721
>>956720
Передавай указатель на экземпляр первого класса при инициализации экземпляра второго.
Аноним 19/03/17 Вск 04:48:07  956722
>>956721
Так у меня экемпляр второго класса инициализируется в первом классе, как и куда мне передавать указатель? Там нет обратной связи, у меня классы в разных файлах.
Аноним 19/03/17 Вск 05:53:59  956730
>>956564
Посмотри здесь:
http://stackoverflow.com/questions/38060436/what-are-the-new-features-in-c17

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

template<typename T>
auto fn(const T &x) {
  if constexpr (std::is_same<T, short>::value) {
    return x;
  } else {
    return static_cast<int>(x);
  }
}

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

>> Template deduction of constructors
Вот это однозначно заебатая вещь, только в объявлениях она не будет работать, как я понимаю. То есть, раньше, чтобы сделать std::map причем с ебанутым маппингом, нужно было делать так, например:
std::map<std::string, std::shared_ptr<std::pair<int, myType>>> map;

Сейчас можно просто при создании std::map нахуячить туда значений и вот эту всю синаксическую парашу можно не писать, то есть:
std::map {
  std::pair(firstString, sharedPtr),
};

>> Structured binding declarations
Тоже интересная вещь, сделанная по подобию Python, то есть, преобразует std::pair и std::tuple в наборы значений, не нужно делать pair.first, pair.second, std::get<0>(tuple) ... Что тоже очень хорошо

>> std::string_view
>> Removal of trigraphs
>> Allow typename (as an alternative to class) in a template template parameter
>> non-const .data() for string.
>> non-member std::size, std::empty, std::data like std::begin/end
Неужели блять?!

Аноним 19/03/17 Вск 08:42:13  956751
>>956722

class B {

B(A& a) {
this->a = a
}
}

class A {
B b;
A() {
};
void init_B () {
b(this)
}
}
Аноним 19/03/17 Вск 09:31:27  956759
>>956587
"кастовать типы" можно, если реализовать соответствующий converting constructor. Если ты про полиморфизм то его нельзя.
Аноним 19/03/17 Вск 11:23:17  956784
Ньюфажа тут. Что учить дальше? Знаю ООП, темплейты, перегрузку операторов. Где вся суперсложность крестов? Что учить дальше? STL? Boots? Или уже можно въезжать в рисование окошек и пытаться работать макакой?
Аноним 19/03/17 Вск 11:31:27  956785
>>956784
Таки прямо SFINAE знаешь? А паттерны уже знаешь?
Аноним 19/03/17 Вск 11:58:01  956800
>>956785
Спасибо, анон. Буду учить. А потом что?
Аноним 19/03/17 Вск 12:40:56  956817
>>956800
А потом уже куда потянет. Можешь базы данных задрачивать, можешь графику, можешь системное программирование, машинное обучение и еще кучу разных направлений. Я, например, сейчас решил разбираться в вопросах архитектуры, книг много, например Software Architecture in Practise, Pattern-Oriented Software Architecture (она в 5 томах), и еще какие-то есть, я уже забыл, вот эти самые запоминающиеся, как по мне. Ну можешь еще почитать Совершенный код - тоже никому не мешало еще.
Аноним 19/03/17 Вск 15:37:28  956929
Есть два файла: 1.txt и 2.txt
Как мне проверить каждую строку первого файла с каждой стройок второго файла Строка 1 файла один со строкой 1 2 3 4 5 6....n до конца файла 2. Потом строка 2 файла 1 со строкой 1 2 3 4 5 6....n до конца файла 2?


Я нашелнабросал такое - но такой алгоритм проверяет первую строку одного файла с первой строкой другого, вторую строку со второй и тд.

Если есть исходник такой хуйни - буду рад. В гугле - хуйня подобная моей.
http://pastebin.com/bvDd1LLV
Аноним 19/03/17 Вск 15:51:19  956940
>>956929
Ты охуел что-ли код с Цэ в этот тред писать?!
Аноним 19/03/17 Вск 15:52:32  956943
Есть хуити типа
struct Hui
{
Type type;
union
{
int ival;
float fval;
};
};
где Type - enum co значениями INT и FLOAT

Можно ли как-нибудь сделать функцию, которая бы возвращала ival, когда type == INT и float, когда type == FLOAT?

или я даун и так делать не надо (но тогда как лучше это провернуть?)
Аноним 19/03/17 Вск 15:58:51  956948
>>956943
Хотя, блядь, это же будет известно только во время выполнения, а следовательно хуй компилятор такое провернёт
Аноним 19/03/17 Вск 17:38:32  956987
>>956940
Это же C++
Аноним 19/03/17 Вск 17:44:02  956988
>>956987
Си чистый. Впрочем, никого это не должно удивлять. В универах так и учат.
Аноним 19/03/17 Вск 17:45:44  956990
>>956943
У К А З А Т Е Л Ь Н А В О И Д
Нассы на лицо человеку, который это с тебя требует.
Аноним 19/03/17 Вск 17:53:51  956993
>>956929
Ну вот, например.
http://www.cplusplus.com/forum/general/94032/
Аноним 19/03/17 Вск 18:09:56  956997
>>956943
Можно такую хуйню с полиморфизмом провернуть: делаешь базовый абстрактный класс с единственным методом getType(), и делаешь enum, элементы которого возвращаются этим методом. Потом каждый примитив оборачиваешь в наследников этого класса и передаешь дальше куда тебе надо. Для выбора стратегии просто пишешь свитч с getType и усе. Это самый тупой способ, можно нормально с помощью какого-нибудь паттерна заебошить(по типу стратегии)
Единственный минус такого подхода - для каждого примитива надо писать обертку(хотя можно и на шаблонах сделать) и передавать все объекты по ссылке(по значению получится срезка)
Аноним 19/03/17 Вск 18:11:15  956998
>>956943
Алсо, если ты используешь только примитивы разных размеров, то можно выбирать действие в зависимости от sizeof примитива.
Аноним 19/03/17 Вск 19:31:22  957025
Есть задача скомпилировать исходный код, написанный на С++. Разработчик советует использовать MSVC 2015 CE под винду. В исходниках есть несколько файлов *.cpp. Что нужно сделать, чтобы это всё скомпилировать в одно консольное приложение? С плюсами и вижуал студио никогда дела не имел. Вообще никогда не имел дело с компилированием чего либо. Туплю второй вечер.
Аноним 19/03/17 Вск 20:04:10  957039
>>956929
>Как мне проверить каждую строку первого файла с каждой стройок второго файла

Уебал бы.
Аноним 19/03/17 Вск 20:07:50  957040
>>956948

Вот именно. Можно сделать функцию, которая будет возвращать тебе дабл, например - в него помещаются оба типа без потерь, если он шире обоих.
Аноним 19/03/17 Вск 20:32:56  957044
>>957025

Потыкай кнопку "Файл -> Новый проект -> Проект из существующего кода" (или как оно там по-русски).
Аноним 19/03/17 Вск 21:03:44  957073
>>956943
Чем any не угодил?
Аноним 19/03/17 Вск 23:34:43  957162
Мне нужно огородить внутренности работы объекта, поэтому я объявляю нужные классы в классах. Вложенных классов много, поэтому определения методов в .cpp-файле получаются длинные. ЧЯДНТ? Не нужно объявлять классы в классах? Но как тогда защитить работу суперкласса?
Аноним 20/03/17 Пнд 00:10:05  957198
>>957162
https://habrahabr.ru/post/118010/
Аноним 20/03/17 Пнд 13:53:35  957480
CRCROUTINE.PNG (23Кб, 661x412)
blob (33Кб, 661x412)
blob (59Кб, 815x588)
Пытаюсь собрать некий дедовский код (пикрилейтед).
Получаю:
ошибка: cast from 'uint8_t {aka unsigned char}' to 'uint8_t {aka unsigned char}' loses precision [-fpermissive]
crc_hi = crc_lo ^ (uint8_t)(&auchCRCHi); // calculate the CRC

На stackoverflow советуют в таких случаях навешивать приведение типов ( http://stackoverflow.com/questions/21574449/why-is-cast-from-x-to-y-loses-precision-a-hard-error-and-what-is-suitable ) но куда его тут вешать, вроде бы типы всех операндов явно соблюдены?
Пишу на QT, Win32. Возможно, деды писали этот код для С.
Аноним 20/03/17 Пнд 13:54:47  957481
blob (5Кб, 641x43)
>>957480
Спасибо, Абу!
Аноним 20/03/17 Пнд 16:30:14  957576
>>957480
Диды это под дос писали?
Аноним 20/03/17 Пнд 17:34:09  957608
>>957480
Начнем с того, что ты - пиздоглазое мудило!

&auchCRCH\[i\] - это адрес i-того элемента в массиве auchCRCH.

На кой хуй ты его приводишь к типу uint8_t?

мимо-школьник-кун
Аноним 20/03/17 Пнд 17:38:56  957612
>>957198

Спасибо за ссылку, навела на идею: классы включаю через указатели, а сами вложенные классы определяю в .cpp-файле без вложений.

>>957481

На уой ляд там взятие указателя? Зачем адрес для подсчёта CRC?

Вангую, что этот код никогда не работал.
Аноним 20/03/17 Пнд 17:53:52  957624
>>957612
Ну тогда я повелся на толстоту.
Аноним 20/03/17 Пнд 17:58:51  957629
>>957624
Код взял отсюда:
http://we.easyelectronics.ru/khomin/modbus-rtu-dlya-chaynikov.html

Похоже, его писали под контроллер с достаточным объемом ОЗУ.
Аноним 20/03/17 Пнд 18:08:15  957640
>>957629
Это объясняет, почему там указатель кастится в 8-битный инт. Если ты под винду хочешь это скомпилить, то поменяй uint8 на что-нибудь побольше, а то у тебя оно банально не влезает.
Аноним 20/03/17 Пнд 19:00:03  957676
>>957629
В первом же комментарии к высеру:
>Данный код на работоспобность не проверял, набросал за 20 минут )
Есть проверенный проект, осторожно! Присутствует быдлокод и нет комментариев ))

А ты и вправду зеленый, раз постишь нерабочий код на с99 в крестотред.
Аноним 20/03/17 Пнд 19:02:45  957679
>>957629
Вот пост с рабочим кодом.
http://we.easyelectronics.ru/khomin/modbus-rtu-dlya-chaynikov.html#comment118068
Проект там под АВР, указатели и инты там 16разрядов.
Аноним 20/03/17 Пнд 19:33:58  957702
>>957608
> Начнем с того, что ты - пиздоглазое мудило!
>
> &auchCRCH\[i\] - это адрес i-того элемента в массиве auchCRCH.
>
> На кой хуй ты его приводишь к типу uint8_t?
>
> мимо-школьник-кун

В голосину блядь
Аноним 20/03/17 Пнд 21:35:46  957820
О чём вы говорите? Чувак использует адрес элемента таблицы вместо элемента таблицы для расчёта CRC, это клиника. Оно даже работать будет - будет выдавать одни и те же хэши для одних и тех же данных и другой хэш для других данных - и даже будет работать в нескольких версиях подряд одинаково, так как константный массив будет с большой вероятностью храниться по одному адресу даже после незначительных изменений.

Вот только распределение там будет другое (скорее всего уёбищное) и для общения по протоколам с использованием CRC это говнище использовать нельзя.
Аноним 20/03/17 Пнд 21:37:55  957823
>>957820

http://we.easyelectronics.ru/khomin/modbus-rtu-dlya-chaynikov.html#comment174196

Вот и разъяснение подъехало. Чтобы это заработало в обычной программе без разделения на флэш/нефлэш нужно писать

auchCRCHi
вместо
(uint8_t)pgm_read_byte(&auchCRCHi)
хуй 20/03/17 Пнд 22:49:17  957884
Привет
Аноним 20/03/17 Пнд 23:49:33  957921
Сап, крестовый. Помоги, есть такая хуйня :
Как прикрутить QT к Xcode? А то уж больно мне не нравится QtCreator
Аноним 21/03/17 Втр 10:39:33  958088
Screenshot from[...].png (36Кб, 814x130)
В общем, чтобы вызывать С++ коллбеки из скриптов, мне нужно как-то связать объект-обёртку вокруг интерпетатора и сам интерпретатор (который написан на С и подключается как shared библиотека). Не нашёл другого способа, кроме как кастовать this в unsigned long long и хранить число в переменной. Вызывом С++ функций будет заниматься другая shared библиотека, которую подключит интерпретатор и сможет использовать. Допустим в ней будет такой код:

// Подключаем общий yoba.h, упрощённо:
class Yoba {};
потом вместо
Yoba ptr = new Yoba;
получается так
Yoba ptr = reinterpret_cast<Yoba>(18446744072632792624);

18446744072632792624 - адрес объекта того же класса, который создан в той же программе, но в другой shared библиотеке.

Будет ли это работать например с виндовыми .dll?
Правильный ли тип для указателя? У меня выбор из long long, unsigned long long и строки. Компилятор - GCC, должно работать на любой ОС, у меня на 32-битном линуксе вроде работает
Аноним 21/03/17 Втр 12:12:26  958140
>>958088
а почему просто void * не вернуть в таком случае?
Аноним 21/03/17 Втр 15:27:13  958226
>>958140
Попробую где-нибудь спрятать void*, но тип это только малая часть проблемы.
Суть в том, что у меня есть интерпретатор и с ним можно делать что угодно: эвалить строки, запускать файлы, либо делать всё напрямую через API без расходов на парсинг текста. Но никакой обратной связи нет, о своей С++ обёртке он ничего не знает, сунуть коллбек некуда. Единственный способ задействовать С++ код - подключить разделяемую библиотеку как модуль. И я задумал сделать небольшой модуль, который бы взаимодействовал с С++ кодом который уже в памяти. Получается примерно такая схема:

С++ (yoba.so):
link libperl.so
perl.eval(" YobaModule::call('funcname') ");

C (libperl.so):
link yoba-module.so
yoba_module_call_function(this_cpp_interpreter_ptr, "funcname")

C++ (yoba-module.so):
link yoba.so
this_cpp_interpreter_ptr->getCallback("funcname")();

С++ (yoba.so):
...возвращаемся сюда

И ещё вопрос - если все эти либы оптимизированы компилятором, будет ли значительный оверхед из-за таких кросс вызовов, от чего это зависит?
Аноним 21/03/17 Втр 16:44:37  958281
>>958226
http://stackoverflow.com/questions/9456635/effect-of-dll-to-execution-speed

Вот здесь пишут, что оверхед небольшой, но, я, в принципе, тоже так считаю. Если ты делаешь подключение библиотеки как плагина, то потребуется время на загрузку либы и разбор таблицы символов в писках экспортируемых функций. А так, во время работы это не чувствуется (сам плагинами трюками пользуюсь уже давно и все заебись пока что)
Аноним 21/03/17 Втр 19:56:10  958448
>>957921

1) Скачиваешь Qt для MinGW - внутри динамический Qt, MinGW и Qt Creator. Ставишь.
2) Указываешь в Xcode путь к MinGW (сам гугли).
3) Смотришь в документации, как пользоваться Qt через qmake и moc (емнип, moc вызывается qmake-ом). Воспроизводишь эту последовательность через настройки сборки в Xcode.

Готово!
Аноним 21/03/17 Втр 20:06:26  958462
>>957921

Ой, забыл.

4) Добавляешь пути к либам и инклудам Qt (и MinGW, если Xcode не допедрит сам).
Аноним 21/03/17 Втр 20:07:42  958463
>>958088
>Правильный ли тип для указателя?

Нет. Правильный - unitptr_t.
Аноним 22/03/17 Срд 00:07:44  958626
>>958463

То есть, uintptr_t
Аноним 22/03/17 Срд 01:54:14  958713
Сап, двачеры. Начал изучать плюсы, но понял, что одним чтением книжек делу не поможешь, инфа тупо не держится в голове. Нужно кодить. А чтобы кодить - нужно как-то этому учиться. Где можно взять исходники небольших проектов, в которых был бы хороший код, чтобы по нему учиться понимания работы с языком? Все, что встречал - либо огромные проекты, в которых хрен разберешься с моим то опытом, либо откровенный говнокод.
Аноним 22/03/17 Срд 06:24:29  958775
>>956661
Бамп
Аноним 22/03/17 Срд 09:52:02  958828
>>958713
Боюсь что так тоже не выйдет.
Ты хочешь от чтения книг, в которых тебе объясняют каждую строчку по целой странице, а то и больше, перейти к чтению кода, в котором, если повезет, на половину строчек будут небольшие комментарии.
Почему сам не попробуешь написать что-то. Придумай себе задачу, сделать простенькое приложение и начни пилить, пользуясь гуглом и прочими форумами, АИБами.
Аноним 22/03/17 Срд 12:35:53  958911
>>956661
>Так вот, вопрос: можно ли это сделать как-то компактнее?

Пиздец. Вариантов ажно три:
- пиши нулевой байт в конце строки
- пиши байт длины строки в начале строки. Если нужно хранить длинные строки и хочется больше места, можешь писать блоками по 255 символов: если длина строки 255, то после блока пишешь байт 0 - типа, строка закончилась, а во время чтения проверяешь байт, следующий за блоком - если 0, то строка кончилась и нужно начинать следующую
- operator<< и operator>> блядь. Эти бро запишут всю твою структуру строк вместе с их числом и коректно прочитают.

Писать битовые маски - уродский вариант.
Аноним 22/03/17 Срд 13:29:52  958931
>>958462
Спасибо. А плагинов для дизайна форм в XCode нет? Или можно импортировать ui-файлы из QtCreator?
Аноним 22/03/17 Срд 14:22:05  958959
>>958931

Никогда не использовал Xcode, плагины можешь сам поискать, .ui-файлы наверняка специфичны для Qt.
Аноним 22/03/17 Срд 14:29:32  958966
>>956661
Байтовые строки - что это еще за зверь такой?
Если хранишь именно текстовые строки - просто раздели строки с помощью "\n", в с++ есть методы чтения строчек из текстового файла.
Если хранишь бинарные данные произвольной длинны - то самый простой варик - это писать в файл byte или int с размером строки, а следом - сами байты строки, потом опять размер строки и байты и тд.
Но в таком случае у тебя будут проблемы с произвольным доступом к строкам - ты не сможешь найти строчку с индексом i, не пройдясь по всему файлу.

Если похуй и загружаешь всё целиком - можешь так и оставить, если нужен произвольный доступ - то пишешь в начало файла индекс-данные, например так (псевдокод):
int count; //количество строк.
[
{
int id; //номер строчки
int64 offset; //offset начала строки
int size; //длина строки в байтах
}
]

После этого ты можешь читать только индекс, а потом скипать файл до нужного offset.
Аноним 22/03/17 Срд 14:37:08  958976
>>951262
а ты уверен, что в этом консольном шрифте есть японские символы? менять пробовал?
Аноним 22/03/17 Срд 17:18:21  959057
Сап, плюсаны. Поясните за goto, почему это табу?
Аноним 22/03/17 Срд 17:30:11  959063
>>959057
Потому что ебланы не умеют пользоваться goto и засрут им весь код.

Если хочешь сделать что-то типа goto end, лучше сделай так

do {
  stmt_1;
  if (expr) {
    break;
  }

  stmt_2;
} while (false);

end_stmt;

Или можешь использовать идиому Guard
Аноним 22/03/17 Срд 18:30:56  959114
>>959057
Это табу для новичков. Для сильных разрабов это еще один инструмент, который имеет свои применения. А дебил его просто повсюду будет пихать и дебажить потом до тепловой смерти вселенной
Аноним 22/03/17 Срд 20:02:49  959183
Аноны, поясните причины срача по поводу табов и пробелов. Какая, нахуй, разница?
Аноним 22/03/17 Срд 20:38:29  959216
>>959057

Потому что иногда код надо поддерживать и иногда он сложный. Найти ошибку в коде с goto может быть очень сложно.

>>959183
Синдром утёнка либо поддержка однообразия в коде. Первое - диагноз, второе - в какой-то мере важно и нужно.
Аноним 22/03/17 Срд 20:45:35  959221
>>959183
Всё просто - табы в разных редакторах по-разному отображается.
Аноним 22/03/17 Срд 23:45:23  959350
Аноны, совет надо.
Нужен контейнер под набор данных.
Набор содержит, положим, 6 полей(?), 10000 единиц хранения, например:
1) int 2) int 3) int 4) string 5) string 6) string.
По отдельности одинаковые 1, и 2, и 3 могут встречаться во всём наборе не по разу, но вот совокупность 1 и 2 даёт уникальный поднабор данных (например 10 единиц хранения), а совокупности 2 и 3, или 1 и 2 дают уникальную единицу хранения.
То есть, эдакий составной ключ. Обращаться я хочу как к уникальной какой-то единице, так и к поднабору (те самые 10 единиц из 10000).
Менять уникальные единицы не планирую. Т.е. только вставить, прочитать, удалить.
Вот каким это контейнером (контейнером же?) это лучше реализовать, не перебирать же все значения.
Из идей у меня
std::unordered_multiset<int, int, int, std:string, std:string, std:string>globMultiset;
Предполагал, что получится фигня, фигня и получается.
Или мне что-то со struct надо придумать?

Фактическая идея - таблица с составными ключами по типу как у БД.
Аноним 23/03/17 Чтв 00:37:50  959365
Аноны, объясните, что такого плохого в передаче временного объекта в качестве аргумента по non-const ссылке, что это запрещено стандартом?

И что делать с неиспользуемыми output-параметрами функций из сторонних библиотек и legacy-кода? Код типа:
int unused_param = 0;
do_a_barrel_roll(foo, bar, unused_param);
выглядит топорно, есть ли какие-то изящные решения? Wrapper-ы под каждую такую функцию писать, что ли?
Аноним 23/03/17 Чтв 09:00:49  959443
>>959365
Это наверное следствие из того что на временные объекты нельзя объявлять не конст ссылки, так как объект может быть уничтожен в любой момент и такая ссылка не имеет смысла. А при объявлении константной ссылки время жизни временного объекта продлевается до времени жизни ссылки.
Аноним 23/03/17 Чтв 13:49:59  959540
Может всё-таки есть потайной способ сделать
A x1 = B()
B x2 = dynamic_cast<B>(x1)
чтобы не возиться с кучей? Я не могу размещать все объекты в куче, потому что придётся реализовывать сборщик мусора

На ум приходит
shared_ptr<A> x1(new B)
shared_ptr<B> x2 = dynamic_pointer_cast<B>(x1);
но невозможно же по всему коду такие конструкции писать, можно как-то упростить через перегрузку оператора= или вроде того?

Конструкция на картинке компилится, но x2 считается чистым объектом A, виртуальные методы не работают
Аноним 23/03/17 Чтв 14:09:34  959544
>>957921
Чем тебе QtCreator не угодил? Это единственная кросс-платформенная и полноценная альтернатива студии, я его давно использую без всякого Qt, а для разработки на Qt это очевидно лучший инструмент. Система сборки - CMake (стандартная QMake слишком примитивная). Можно подключить плагины вроде обычных вкладок и разные анализаторы кода на лету.
Аноним 23/03/17 Чтв 14:39:58  959555
>>959544
> Это единственная кросс-платформенная и полноценная альтернатива студии
Полнейшая кросс-платформенная альтернатива студии - clion. По сравнению с ним QtCreator и рядом не стоял
Хотя в целом он неплох
Аноним 23/03/17 Чтв 15:56:22  959588
>>959555
>JetBrains
Если уж использовать графические приложения на джаве, то и писать лучше на ней, чтобы не расставаться со сборщиком мусора в анусе и занимать всю доступную память, Eclipse/NetBeans туда же.

Кстати есть ещё навороченный KDevelop, но он тащит с собой KDE либы на 300 мб и соответственно отрисовывается на них, выглядит абсолютно чужеродным вне KDE окружения. Зато подсвечивает и выводит подробный тултип чуть ли не на каждый символ в коде, раскрывает макросы, автодополнение на том же уровне. Использует файлы CMake как проект и лучше всех работает с ними. Должен хорошо работать с Qt, так как сам по сути на нём написан.
Аноним 23/03/17 Чтв 18:17:43  959666
>>959540
что ты сделать то хочешь?
Аноним 23/03/17 Чтв 19:27:11  959702
Screenshot from[...].png (148Кб, 833x519)
>>959666
Наследовать Scalar и Array от одного класса Variable и возвращать Variable из функций. Почему полиморфизм на стеке невозможен?
Аноним 23/03/17 Чтв 19:41:42  959704
>>959540
>shared_ptr<B> x2 = dynamic_pointer_cast<B>(x1);

Что ты делаешь, блядь.

shared_ptr<B> x2 = x1;
B &x3 = x1;
Слабо штоле?

>A x1 = B()
>B x2 = dynamic_cast<B>(x1)

Боже....

B &x2 = B();
A &x3 = B();

Виртуальные деструкторы не забудь только.
Аноним 23/03/17 Чтв 20:45:11  959719
>>959704
B &x2 = B();
И куда ссылка указывать должна?
Аноним 23/03/17 Чтв 21:01:24  959720
>>959704
Собственно весь твой код не компилится. Либо ты наркоман, либо пишешь на С++22.
Аноним 23/03/17 Чтв 21:13:55  959729
Как отключить код дисассемблера в qt creator в режиме дебага?
Аноним 23/03/17 Чтв 21:14:28  959730
>>959729
Двачую этого, пиздец как бесит
Аноним 23/03/17 Чтв 21:18:05  959732
>>959730
Я уже всё перерыл в интернете и ничего не нашёл на этот счёт, а то что нашёл не помогло. Сам gdb показывает C++ код, но вот ёбаный qt creator показывает его дизассемблированным.
Аноним 23/03/17 Чтв 21:28:59  959740
>>959729
Так же, как включить табы.
Аноним 23/03/17 Чтв 22:15:49  959765
>>959729
Ты точно в Debug конпилируешь? Убедись что в выхлопе конпеляции есть флаг -g для GCC. Ассемблер он отображает когда эксешник/либа собрана без debug-символов и с оптимизацией. Никогда такой проблемы не было, собственно именно в креаторе я в своё время познакомился с GDB, стало круто сегфолты искать.
Аноним 23/03/17 Чтв 22:27:51  959768
>>959765
В режиме Debug компилирую. Где смотреть выхлоп компиляции?
Аноним 23/03/17 Чтв 22:38:30  959772
>>959768
Compile Output, должен быть флаг -g и не должно быть -О2
Можешь ещё написать QMAKE_CXX или просто CXX (не помню) = g++ -g чтобы наверняка
Аноним 23/03/17 Чтв 22:44:09  959776
>>959772
Всё нормально с флагами компиляции, и в QMAKE_CXXFLAGS я их тоже дописал чтобы наверняка, всё равно не помогает.

> g++ -c -pipe -g -O0 -g -Wall -W -D_REENTRANT -fPIC -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I../../untitled -I. -isystem /usr/include/qt -isystem /usr/include/qt/QtWidgets -isystem /usr/include/qt/QtGui -isystem /usr/include/qt/QtCore -I. -isystem /usr/include/libdrm -I/usr/lib/qt/mkspecs/linux-g++ -o main.o ../main.cpp
> g++ -o untitled main.o -lQt5Widgets -lQt5Gui -lQt5Core -lGL -lpthread
Аноним 23/03/17 Чтв 22:58:14  959790
>>959776
То есть gdb untitled у тебя в штатном режиме работает? Тогда не представляю в чём проблема, если он отображает ассемблер, значит видит GDB, а если видит, то должен отображать то же самое.
Я бы ещё удалил .pro.user и открыл проект заново для переконфигурации, проверил и поменял какие-нибудь параметры
Аноним 23/03/17 Чтв 23:03:53  959799
>>959790
Да я уже всё перепробовал, я сегодня весь день на это потратил.
Аноним 23/03/17 Чтв 23:59:22  959836
>>959719

Так, падажжи. Тогда B &&x2 = B(); - ссылка на rvalue.

>>959720
Телепаты в отпуске, УМВР.

http://ideone.com/V8dwB1
Аноним 24/03/17 Птн 00:11:51  959838
>>959729

Только что запустил - УМВР. КОгда дебужил релизный код - видел ассемблер, и когда ты будешь в функции без символьной инфы попадать, тоже будет ассемблер.
Аноним 24/03/17 Птн 00:36:28  959844
Что делать если в исключение нужно много данных засунуть? Писать throw exception(arg1, arg2, arg3, arg4, arg5, arg5) или

Exception e;
e.arg1=...
e.arg2=...
...
throw e;

никогда не встречал вторую конструкцию.
Аноним 24/03/17 Птн 00:42:59  959847
pic.png (10Кб, 484x158)
>>959732
А сюда жмакал?
Аноним 24/03/17 Птн 00:56:26  959849
>>959847
Да, я куда только уже не жмакал.
Аноним 24/03/17 Птн 09:12:10  959935
>>959844
struct ZALUPA {
....T1 a1;
....T2 a2;
}

try {
....throw Zalupa{ 1,2 };
} catch(const Zalupa& z) {
....// do something
}
Аноним 24/03/17 Птн 20:12:23  960277
Аноны, что такое предкомплированный заголовок в вижуалке и нахуй он нужен? Почему ничего подобного нет в gcc/clang по крайней мере я не нашёл?
Аноним 24/03/17 Птн 20:33:34  960289
>>960277
Не нужно, если у тебя нет буста едущем на бусте
Аноним 24/03/17 Птн 21:13:15  960317
А есть здесь ещё кто с проблемой Qt creator когда он показывает только код дизассемблера? Можете сказать свою систему и версию Qt?
Аноним 24/03/17 Птн 21:14:56  960319
Screenshot from[...].png (87Кб, 939x584)
>>958226
Наконец-то осилил вызов С++ функций из скрипта. Создаём для скрипта функцию, например YobaPerl::test, она вызывает С++ функцию из небольшой либы-моста, та в свою очередь достаёт из таблицы символов интерпретатора указатель на С++ обёртку вокруг него и делает с ним что угодно. Достать из стека интерпретатора аргументы функции и засунуть обратно результаты не проблема.
Эффективности должно быть достаточно для использования в игровом движке например, по-моему до меня с Perl никто такого не делал.

Пример:
// C++
perl.set_callback("func_name", [](Array args) -> Array { ... });
// Perl
@results = YobaPerl::call("func_name", ...)

И всё работает максимально быстро, проблема только с поиском коллбека по имени, но по-другому похоже не сделать никак
Аноним 24/03/17 Птн 21:54:30  960347
А возможно создать вектор, единственным элементом которого будет массив байт?
Аноним 24/03/17 Птн 21:57:18  960348
>>960319
Я тебя боюсь.
Аноним 24/03/17 Птн 22:03:32  960356
>>960347
std::vector<std::array<T, N>>
да, но зачем?
Аноним 24/03/17 Птн 22:14:41  960362
>>960356
Ответ http запроса должен помещаться в массив байт, который является единственным элементом вектора. Задание такое)
Аноним 24/03/17 Птн 23:04:50  960378
>>960362
Мне кажется, ты всё слишком буквально воспринимаешь.
Аноним 25/03/17 Суб 00:14:35  960413
>>960277
Если у тебя дохуя хидеров, которые нужны_везде, то ты делаешь предкомпилированый заголовочный файл и включаешь его везде. Компилятор вместо того чтобы парсить этот хидер берёт предкомпилированный бинарь и читает его. Что существенно быстрее.

Короче - для говнокодеров, которые не умеют форвард декларации и приватную имплементацию. Пидрильный код, пропагандируемый мелкомягкими.

И да, в шланге и гцц оно есть. гугли gcc/clang pch
Аноним 25/03/17 Суб 00:26:42  960419
>>959702
Потому что полиморфизм предполагает разные объекты, т.е. разные размеры. А не стеке не может лежать что-то неопределённого в момент компиляции размера.
Это же ж очевидно.
Аноним 25/03/17 Суб 00:55:54  960428
Чому в хеадерах нельзя прописывать имплементацию?
Аноним 25/03/17 Суб 01:37:17  960435
>>960428

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

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

см. >>960413
Аноним 25/03/17 Суб 02:36:36  960441
Теперь поясните как сделать unordered_map<string, function> с разными функциями, опять невозможно?
Аноним 25/03/17 Суб 08:54:47  960503
>>960441
Никак. Энджой ойр СТАТИЧЕСКАЯ ТИПИЗАЦИЯ. Если ты современный объектно-ориентированный парень то можешь почитать про ШАБЛОН ПРОЕКТИРОВАНИЯ КОМАНДА.
Аноним 25/03/17 Суб 11:31:02  960541
14886232305580.jpg (1412Кб, 1600x2397)
Есть такой CMakeLists.txt. Его написал я в отдельное директории проекта библиотеки чтобы скомпилировать имеющиеся в проекте штатные Сишные биндинги от питона к С++ коду проекта. (Чтобы потом использовать эту библиотеку из более нрмальных языков.)

[code]
cmake_minimum_required(VERSION 2.8)

project(CCoda)

set(CMAKE_BUILD_TYPE Release)

file(GLOB python_binding_src "../src/nlp-stack//PythonExtension.cpp")
file(GLOB python_binding_h "../src/nlp-stack/
/PythonExtension.h")

file(GLOB_RECURSE all_h "../src/nlp-stack//.h")

add_library(ccoda SHARED ${all_h} ${python_binding_h} ${python_binding_src})
[/code]

Почему-то эта cmake-параша не видет .h файлы, жалуясь после cmake . && make:

[code]
$ make
-- Configuring done
-- Generating done
-- Build files have been written to: /home/xxx/Fitness_Bot/Coda/c_interface
Scanning dependencies of target ccoda
[ 20%] Building CXX object CMakeFiles/ccoda.dir/home/xxx/Fitness_Bot/Coda/src/nlp-stack/Dictionary/PythonExtension.cpp.o
In file included from /home/xxx/Fitness_Bot/Coda/src/nlp-stack/Dictionary/PythonExtension.cpp:1:0:
/home/xxx/Fitness_Bot/Coda/src/nlp-stack/Dictionary/PythonExtension.h:3:33: fatal error: DictionaryInterface.h: Нет такого файла или каталога
#include "DictionaryInterface.h"
^
compilation terminated.
CMakeFiles/ccoda.dir/build.make:62: ошибка выполнения рецепта для цели «CMakeFiles/ccoda.dir/home/xxx/Fitness_Bot/Coda/src/nlp-stack/Dictionary/PythonExtension.cpp.o»
make[2]: [CMakeFiles/ccoda.dir/home/xxx/Fitness_Bot/Coda/src/nlp-stack/Dictionary/PythonExtension.cpp.o] Ошибка 1
CMakeFiles/Makefile2:67: ошибка выполнения рецепта для цели «CMakeFiles/ccoda.dir/all»
make[1]:
[CMakeFiles/ccoda.dir/all] Ошибка 2
Makefile:83: ошибка выполнения рецепта для цели «all»
make: * [all] Ошибка 2
[/code]

Хотя в переменных этот файл есть, и grep говорит что он там:
[code]
$ grep -r DictionaryInterface.h .
./CMakeFiles/ccoda.dir/CXX.includecache:DictionaryInterface.h
./CMakeFiles/ccoda.dir/CXX.includecache:/home/xxx/Fitness_Bot/Coda/src/nlp-stack/Dictionary/DictionaryInterface.h
[/code]

Помогите побороть эту залупу!
Аноним 25/03/17 Суб 11:33:09  960543
>>960541
макаба сожрала что-то, возможно. Вот код

http://pastebin.com/v2ZW2edn
Аноним 25/03/17 Суб 13:06:50  960574
Doxygen кто-нибудь использует в qtcreator? Или любой другой способ создания тултипа из коммента около класса/функции
Аноним 25/03/17 Суб 13:21:23  960576
Привет посоны, написал лучший код в своей жизни.
http://pastebin.com/XBg4RiE0 - рейт

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

Работает на g++ 5.4 и студии 2015
Аноним 25/03/17 Суб 13:33:17  960584
>>960441
http://www.cplusplus.com/reference/functional/function/

Ты про этот function? Что значит "разные функции"?
Аноним 25/03/17 Суб 13:43:22  960589
>>960584
Ну просто разные. Открываешь любой заголовочный файл и вырываешь оттуда любые функции.
>>960441
Самое лучшее, что можно сделать без существенных усилий:
http://stackoverflow.com/a/19473438/6889930

Для этого нужно, чтобы у функций одинаковая структура была. Может кому-нибудь и такой вариант пригодится.
Аноним 25/03/17 Суб 13:43:26  960590
>>960541
разобрался, отбой

пиздец С++ для отбитых уёбков
Аноним 25/03/17 Суб 13:45:19  960594
>>960589
std::tuple из пар строка-функция и обход ее.
Аноним 25/03/17 Суб 13:46:14  960595
>>960594
Ну-ка, налабай. Не вижу причин, почему это должно рабоать.
Аноним 25/03/17 Суб 13:46:50  960596
>>960595
Посмотри сюда >>960576
Аноним 25/03/17 Суб 13:49:45  960599
>>960596
Сможешь что-то, кроме void, вернуть?
Аноним 25/03/17 Суб 13:50:56  960601
>>960596
смогу, еще 1 тимплитный параметр и вперед. Но мне это не нужно было.
Аноним 25/03/17 Суб 13:51:53  960602
>>960601
Ну вот конвертер под каждый тип аргумента - это уже перебор. Скорее всего, этот код без задач.
Аноним 25/03/17 Суб 13:54:54  960604
>>960602
а как ты предлагаешь строки из ввода конвертировать в нужные аргументы для функции? Тебе все равно придется это делать.
Аноним 25/03/17 Суб 14:08:06  960616
>>960604
А, я вижу. Я просто смотрел на код из контекста прошлой задачи с мапом. У тебя тут целый скриптовый движок.
Ты сможешь переделать это всё под ту задачу? Просто хранить разные функции в мапе? То есть просто нужно, чтобы я по имени функции мог получить указатель на эту функцию или экземпляр function.
Аноним 25/03/17 Суб 14:10:12  960619
>>960616
У меня разные типы хранятся. В варианте мапе - кроме полиморфизма и ручного реинтерпрет-кастинга мне ничего в голову не приходит.
Аноним 25/03/17 Суб 14:13:17  960622
>>960619
Впрочем, это тоже задача без задач. Хз, как потом эти функции вызывать. Тоже придётся не одну сотню строк написать. Пока не завезут reflection, проще про это забыть.
Аноним 25/03/17 Суб 14:17:48  960629
>>960589
Да я надумал просто сделать
unordered_map<string, function<A(B)> a
unordered_map<string, function<B(C)> b
и не возиться с этим
Аноним 25/03/17 Суб 14:58:36  960663
>>960629
В c++17 variant завезли, можешь уже попробовать, в принципе. Только нужно будет задать типы используемых функций сначала.
Аноним 25/03/17 Суб 15:11:47  960673
Screenshot from[...].png (73Кб, 979x659)
>>960574
Пока копался, нашёл doxywizard - божественная штука, через десятки опций конфига может сгенерировать HTML документацию с навигацией из любого набора файлов с даже не документированным кодом, в общем всё очень просто. Поддержка формата qthelp встроена в doxygen, осталось разобраться как в креатор её запихнуть.
Аноним 25/03/17 Суб 16:07:34  960700
>>960576

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

>>960589
>Ну просто разные. Открываешь любой заголовочный файл и вырываешь оттуда любые функции.

Что ты собираешься делать с этими разными функциями? Если ты кастуешь их не в тот тип, который им принадлежит, ты получаешь UB. Тебе нужен UB?

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

>>960589
>Самое лучшее, что можно сделать без существенных усилий:

Это и есть существенные усилия. Ты нагромоздил гору темплейтов ради статической проверки существования конвертеров для всех fn::функций. Можно было бы сделать всё то же самое без темплейтов.

Аноним 25/03/17 Суб 16:59:40  960758
>>960700
>Это и есть существенные усилия. Ты нагромоздил гору темплейтов ради статической проверки существования конвертеров для всех fn::функций. Можно было бы сделать всё то же самое без темплейтов.

Я не тот анон. В той ссылке что-то уровня map<string, function <void()> >, 10 строк кода.

>Что ты собираешься делать с этими разными функциями? Если ты кастуешь их не в тот тип, который им принадлежит, ты получаешь UB. Тебе нужен UB?

Ничего. Я пытался найти решение этой задачи для другого анона just for lulz. Но потом понял, что ничего не могу в итоге с этим мапом делать.
Аноним 25/03/17 Суб 17:02:01  960762
>>960700
А я тот анон
>Если не считать того, что ты пытаешься обойти одно из главных достоинств плюсов - очень интересно. Интересно, зачем это вообще может понадобиться.
Как раз, я пользуюсь информациями о типах,
и красиво их конверчу. Практического смысла, кроме как "Смотрите как я могу", тут правда нет, но тем не менее, имхо, я сделал охуенно.
Аноним 26/03/17 Вск 10:51:50  961145
0.jpg (10Кб, 502x50)
1.jpg (15Кб, 589x106)
Ребята, скорее всего говнокодю, но где ошибка?
Аноним 26/03/17 Вск 12:20:45  961198
>>961145
открыть ман и посмотреть, что последний аргумент является int'ом, а не указателем не позволяет религия?
Аноним 26/03/17 Вск 13:52:45  961238
>>961198
Так в том то и дело, никаких указателей на int нет, мильен раз уже проверял
Аноним 26/03/17 Вск 13:54:53  961243
>>961198
Ой, прошу прощения, поторопился с ответом, уже понял)
Аноним 26/03/17 Вск 14:01:53  961251
>>961198
Хотя все равно не работает, теперь пишет наоборот invalid conversion from 'int' to 'int*'
Аноним 26/03/17 Вск 14:05:50  961257
>>961251
ты ебанько чтоли?
Убери "&" от последнего аргумента
Аноним 26/03/17 Вск 14:20:53  961281
>>961257
ебанько ты, я умею читать, а ты похоже нет, убрал, ошибка была invalid conversation from 'int' to 'int'
А теперь ошибка invalid conversation from 'int' to 'int
'
Аноним 26/03/17 Вск 14:22:27  961285
>>961257
короче наоборот from 'int' to 'int*', я хз че в предыдущем комменте звездочки убрались
Аноним 26/03/17 Вск 19:16:00  961418
>>959183
> Какая, нахуй, разница?
Табы для отступов, пробелы для форматирования. Всё просто.
Аноним 26/03/17 Вск 21:51:42  961498
Попросили сделать C api в нашей крестовой поделке. Что будет с вызывающей нас по этому апи программой если мы выкинем исключение?
Аноним 26/03/17 Вск 21:56:56  961501
>>961498
Возьми и проверь.

Вообще должно быть похуй через какой API ты дошёл до места, которое выбросило исключение.
Аноним 27/03/17 Пнд 00:11:08  961588
>>961501
Упадёт, т.к. исключение не будет перехвачено.
Аноним 27/03/17 Пнд 07:33:42  961664
Что делать при циклических зависимостях?
Аноним 27/03/17 Пнд 07:51:34  961665
>>961664
forward declaration. И всегда стараться инклюдить хедеры своего проекта только в ccp файлах. Иногда может не помочь - тогда ты соснул и нужно что-то менять. Например если ты допустил такую вещь как:

class A {
B b
}:

class B {
A a;
}
Аноним 27/03/17 Пнд 08:01:10  961668
>>961665
А есть ли какие-нибудь ещё варианты помимо уродливого forward declaration? Может быть паттерны какие или ещё что? У меня почти то-же самое что ты привёл в примере, причём с подобным я сталкиваюсь уже не впервые... Что можно у меня поменять я не знаю т.к. я относительно недавно в программировании...
Аноним 27/03/17 Пнд 09:19:14  961680
>>961668
Enjoy пердольные кресты. По идее - если у тебя циклические зависимости - то ты что-то делаешь не так

Аноним 27/03/17 Пнд 09:27:41  961681
>>961680
Ну я пытаюсь разделить свою gui программу на классы, в главном классе что является главным окном я создаю экземпляры моих классов с другими окнами, которым через конструктор я передаю указатель на главное окно. По идее я могу не разделять программу на классы и всё делать в одном, но исходный код с несколькими тысячами строк кода как мне кажется будет не очень хорошей идеей. Может кто что подсказать по этому поводу?
Аноним 27/03/17 Пнд 09:32:13  961684
>>961681
гугли идиому pImpl
Аноним 27/03/17 Пнд 09:36:26  961688
>>961588
так перехвати
Аноним 27/03/17 Пнд 15:36:20  961814
>>961588
try {
  // вот тут въебал код, который бросит хуй знает что надеюсь, это будет не указатель
} catch (...) { // вот это означает, что будет перехвачено ЛЮБОЕ исключение, не перехваченное ранее
  aa_blya_pizdos_flag = true;
}
Аноним 27/03/17 Пнд 16:06:09  961840
Перекат https://2ch.hk/pr/res/961839.html
Аноним 27/03/17 Пнд 18:31:03  961971
>>959350
http://stackoverflow.com/questions/17016175/c-unordered-map-using-a-custom-class-type-as-the-key
Аноним 28/03/17 Втр 21:08:08  962615
>>961840
Нормальную ссылку давай, заебал, я на pm сижу >>961839 (OP)
Аноним 29/03/17 Срд 19:59:20  963224
Как узнать, что программа win32 запущена через дебаггер не в IDE, а в софте типа ollydbg?
Аноним 04/04/17 Втр 13:03:05  966594
>>952457
Отличная либа для кроссплатформенной разработки.
ASIO - сеть, сокеты, вроде в файлы можно записывать.
filesystem - работа с путями
property_tree - парсинг XML, INI, JSON.
Аноним 04/04/17 Втр 21:39:41  966908
>>963224
https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms680345(v=vs.85).aspx
Аноним 22/04/17 Суб 12:09:04  977651
>>961971
Хм, не один я костылю, значит, с хэшами.

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 632 | 57 | 189
Назад Вверх Каталог Обновить

Топ тредов
Избранное