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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
2 1181872
Как скачать файл одной командой, без winapi и тяжёлых библиотек типа curl, wget. Есть ли специально заточенная под это библиотека?
3 1181876
>>81872
Писать самому. Или отправить команду на скачку через system();
5 1181883
>>81879
ofs << static_cast<std::string>(body(response)) << std::endl;
Я должен быть сеньором чтоб эту строчку понять? Из примера simple wget
6 1181891
>>81883
Даже не старайся.
7 1181893
>>81891
Постараюсь
Я ее впишу, что она делает мне похуй
8 1181899
>>81883
В этой строчки ничего сложного нет. Ты видимо C++ мало учил или наверное не понимаешь как устроен http.
9 1181900
>>81899

> не понимаешь как устроен http


А то ты RFC вызубрил и сходу можешь назвать ключевые отличия HTTP/1.0 от HTTP/1.1
10 1181901
>>81900
Да.
11 1181902
>>81901
Молодец
12 1181986
>>81899
Видимо ты прав
Пойду учить
13 1182031
Ди наху э
14 1182051
>>81872
Это curl то тяжёлый, блеать?
Ну ок, пиши сам. Если линупс - всего то, создаешь клиентский сокет, биндишься к нужному адресу (если адреса нет - то ещё ресолвишь его, коннектишься, составляешь ручками GET запрос, ручками парсишь ответ, сохраняешь данные. Если там https то ты соснул, руками это не написать, а openssl таки тяжёлая.
15 1182056
Сап. Есть такая строчка в мануале по OpenCV:
CVAPI(IplImage) cvQueryFrame( CvCapture capture );
Таки CVAPI - это просто тип указание? При подстановке в код не конпелируется.
16 1182142
>>82056
Это скорее всего какой-нибудь макрос, который подставляет всякие атрибуты и прочее.
17 1182273
FTLK или wxWidgets? Или какая нибудь другая легковесная библеотека для графики? Или сразу нырнуть в бездну шинАпи?
Чего поставить начинающему чтобы оно потом могло пригодиться и не испортило вкуса.
Из задач - тетрисы там всякие графики хуяфики.
18 1182276
19 1182320
20 1182345
>>82273
временами по работе приходится GUI на крестах пилить. Я ибав, если честно( особенно, если требуют WinAPI), однако, знаешь, навострился, а так удобнее qt или embarcadero Ничего не видел.
21 1182364
>>82273
Если чистый WinAPI, тогда бери GDI+, с ним можешь рисовать линии, прямоугольники, круглешки. И классы для загрузок картинок разных форматов там тоже есть. Короче все что нужно для мини игры типа тетриса.
https://msdn.microsoft.com/en-us/library/windows/desktop/ms533797(v=vs.85).aspx
https://msdn.microsoft.com/en-us/library/windows/desktop/ms533802(v=vs.85).aspx
22 1182382
Почему нихуя не выдаёт, после того как вынес в функцию

#include "stdafx.h"
#include <iostream>
#include "string"
#define CURL_STATICLIB
#include "curl/curl.h"

#ifdef _DEBUG
#pragma comment (lib, "curl/libcurl_a_debug.lib")
#else
#pragma comment (lib, "curl/libcurl_a.lib")
#endif

static int writer(char data, size_t size, size_t nmemb, std::string writerData)
{
if (writerData == NULL)
return 0;

writerData->append(data, sizenmemb);

return size
nmemb;
}

std::string getFile(std::string url)
{
std::string content;
curl_global_init(CURL_GLOBAL_ALL);
CURL *curl = nullptr;
curl = curl_easy_init();
if (curl)
{
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &content);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writer);
CURLcode code = curl_easy_perform(curl);
curl_easy_cleanup(curl);
}
curl_global_cleanup();
return content;
}

int main()
{
std::cout << getFile("https://curl.haxx.se/libcurl/c/htmltitle.html");
std::cin.get();
return 0;
}
22 1182382
Почему нихуя не выдаёт, после того как вынес в функцию

#include "stdafx.h"
#include <iostream>
#include "string"
#define CURL_STATICLIB
#include "curl/curl.h"

#ifdef _DEBUG
#pragma comment (lib, "curl/libcurl_a_debug.lib")
#else
#pragma comment (lib, "curl/libcurl_a.lib")
#endif

static int writer(char data, size_t size, size_t nmemb, std::string writerData)
{
if (writerData == NULL)
return 0;

writerData->append(data, sizenmemb);

return size
nmemb;
}

std::string getFile(std::string url)
{
std::string content;
curl_global_init(CURL_GLOBAL_ALL);
CURL *curl = nullptr;
curl = curl_easy_init();
if (curl)
{
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &content);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writer);
CURLcode code = curl_easy_perform(curl);
curl_easy_cleanup(curl);
}
curl_global_cleanup();
return content;
}

int main()
{
std::cout << getFile("https://curl.haxx.se/libcurl/c/htmltitle.html");
std::cin.get();
return 0;
}
23 1182384
>>82382
Доебал со своими вопросами уже, неосилятор, может перекатишься на другой язык?
24 1182571
Зачем нужно xvalue?
25 1182586
>>82382

>getFile(std::string url)


Где ссылки блять, питуз?
26 1182591
>>82586
А какая тут разница? Ну вызовется лишний move-конструктор (начиная с C++17 даже он вызываться не будет), делов-то.
27 1182631
Есть один виндоус сервер на котором должны проводится тесты гуя.
Пока только начал над этим работать, написал простую программку с SetForegroundWindow и SendInput из Windows.h

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

Что делать? Есть ли что-то еще более низкоуровневое для отправки нажатий клавиш в окно? Мышь не нужна.
28 1182646
Есть платка с процессором и ОЗУ. К ней подключено внешнее ПЗУ. ОС нет. Программа переписывает какой-то программный модуль/блок из МПЗУ и запускает его.
Вопрос: как это все организовать? Проект на плюсах.
Я порылся в документации на линковщик, обнаружил ключевое слово overlay, с помощью которого можно обозначить секции, которые будут запускаться с одного и того же адреса, но по результате сборки будут лежать в другом месте.
А как, например, указать входную точку каждого такого оверлея? В моем понимании один оверлей - это несколько функций плюс какие-то данные.
29 1182686
>>82646
Что за процессор?
30 1182692
>>82686

Rocket-chip на архитектуре RISC-V.
31 1182911
>>82646
Убедись, что у тебя адреса основной программы не пересекаются с адресами программы из ПЗУ, а потом смело перекатывай ПЗУшку в память и вызывай её по захардкоженным адресам, скастованным в указатель на функцию. Хидер с адресами генерируй автоматически из map-файла, создаваемого линкером при компиляции кода ПЗУшки (зависит от того, какой компилятор используешь). Если в оперативку всё не влезает, то опять бери map-файл и генерируй из него регионы памяти, которые можно подгружать отдельно.
32 1182971
>>82911

Я использую gcc.
Как мне спарсить нужные адреса из map-файла в хидер? Получается, я могу сгенерить этот хидер только после сборки всего проекта, а тогда как его использовать?
33 1183083
>>82971
Почему всего проекта-то? Собирай бинарник для ПЗУшки первым, для остальной программы вторым. Хотя если есть возможность объединить код, то всё проще - читай мануал по ld, раздел Memory Layout, и отдельно про раздел SECTIONS. Линкер позволяет рассовать .o-шки по отдельным секциям, а секции - по заданным адресам. Потом просто разрежешь готовый бинарник на части и после загрузки недостающих частей в оперативку он будет работать как единое целое. Это примерно то, что ты имел ввиду когда говорил про оверлей, но оверлей - это такая устаревшая досовская терминология, сейчас это слово означает пересекающиеся адресные пространства.
34 1183206
Есть программа в 500 строчек на go. Стоит ли её переписывать на c++? Хотелось бы добавить пару функций. А прежний разработчик сдох
35 1183264
Почему вы до сих пор не перекатились на Rust? Работу в расчёт не берём.
36 1183343
>>83264
Менять одни костыли на другие?
37 1183345
>>83264
Зачем нужен раст, когда есть D?
38 1183370
>>83345
Затем, что GC не нужен.
39 1183432
>>83264
Потому-что я работаю на С++
/thread
40 1183433
>>83264
Все более или менее приличные проекты, написанные на нём за 8 лет, влезли в 30 строк википедии. На hh целых 42 вакансии с потолком в 4к в москвабаде. Зачем вкатываться в такое дно?
41 1183441
Какую вторую книжку читать после страуструпа?
42 1183454
>>83370
Не нужен - не используй, @nogc в помощь
43 1183460
>>83441
Липпман, Майерс
44 1183466
>>83432

>/thread


Питух?
45 1183503
>>83460
Сколько часов уйдет на осиливание?
46 1183504
И вообще, я тут постоянно замечаю, что тут сидят прям закоренелые эксперты, вы серьезные вещи можете сделать на этом языке, и не только?
47 1183566
>>83504
Мастера в своём деле, в левой руке "Hello, world!", в правой сортировка пузырьком.
48 1183576
49 1183604
>>83504
Пишу на работе виртуализацию ФС. Серьезно достаточно.
50 1183798
>>83504
На одном языке серьёзных вещей уже давно не делают.
51 1183853
>>83604
какая зп? дс?
52 1183903
>>81867 (OP)
Попробую спросить в вашем треде. Часто ли встречаются лексичекие анализаторы с страшными и нечитаемыми таблицами переходов? Я видел такое только в теории, а на практике пока встречался только с простыми анализаторами на ветвлениях и без таблиц. Зачем тогда вообще рисовать эти автоматы, вычислять, составлять таблицы?
53 1183923
>>83903
Извини, что? Лексеры же тридцать лет уже пишут на dsl-ах с регулярками. Бывают парсеры с заданными таблицей автоматами, но только в редких случаях, типа разбора ебанутого синтаксиса Си с кучей исключений. Встречается это почти исключительно в больших проектах, оптимизированных по самое небалуй.
54 1183935
>>83923
Я не разбираюсь и не хочу наговорить лишнего, но мне бы очень хотелось научиться писать парсеры и интерпретаторы/компиляторы. Скачал книжку с драконами на обложке, а там такая адская жесть, что я дропнул в самом начале главы про парсеры. Как раз много рассказывается про конечные автоматы в лексическом анализе, но все это без примеров и нихуя не понятно в итоге. Как вкатиться вообще в это дело? Посоветуй инфы или книжек для простых смертных, будь другом
55 1183942
>>83935
Поиграйся с генераторами парсеров на каком-нибудь динамическом языке: жс, петоне или пыхе. У тех, которые хорошие, есть туториалы чтобы вкатиться, а там экспериментируй и смотри на результаты. Гугли их по запросу "имяязыка parser generator". На жс, например. есть pegjs.org с коротким туториалом. Но если начнешь лепить конпелятор в бинарники, Книга дракона вообще самая годная для начинающих. Хотя можешь сделать просто транслятор из исходника в исходник, это гораздо проще, достаточно просто в несколько проходов пройтись прямо по созданному парсер-генератором дереву и выдать эквивалентный код на другом языке.
56 1183947
>>83935
Свой компилятор собрался писать? Для этого тебе нужен IQ 150+
57 1183952
>>83903
Хуй знает, мы на работке для парсеров-шмарсеров ragel используем. Разве что ебучий минус - хз как к этой хуйне подсветку синтаксиса написать чтобы в ide красной хуйней не заебывало.
58 1184029
>>83206
bump
вот сам файл если кому то не лень будет чекнуть https://github.com/superhacker777/hikka/blob/master/src/hikka.go
59 1184032
>>84029
Помнится первая версия этой проги была как раз на с++ написано.
Yoba кажется называлась, лол.
60 1184034
>>83942
Спасибо. Я тут нашел цикл простеньких статей для ньюфагов, попробую начать с них. А книга с драконами все равно очень сложная, хоть ее все и советуют для новичков.
>>83947
Нет, просто хочется разобраться в их устройстве и не чувстовать себя инвалидом в мире программирования.
>>83952
А ты понимаешь принцип работы этой программы?
61 1184035
>>84034
Какой? Ты компилятор столе хочешь написать, лол? Я тоже свой писать собирался, да дропнул - так и лежит эта платка отладочная, пылью покрывается.
62 1184038
>>84032
Что-то не гуглится, можешь более точно вспомнить?
63 1184039
>>84038
https://lenta.ru/articles/2016/05/12/haclercamera/

Довольно скоро народ понял, что подбирать пароль вручную сложно и непродуктивно. Так на свет появилась первая версия брутфорса для взлома паролей — «Йоба».
64 1184056
>>83566
Посмеялся, спасибо, крестовой анон.
65 1184131
>>82382

>std::string url


Недавно реверсил одну программу, которую переписывал, судя по всему, шарпист. И он наделал подобных конструкций в каждой функции. Из-за этого перед вызовом любой функции с таким аргументом вызывался конструктор и создавалась новая строка, а перед выходом из функции удалялась. Если не править прототип функции, то в ней получалось по 6 х кол-во строк аргументов, а использовался только первый параметр. И приходилось в каждую интересующую меня функцию добавлять прототип вместо формального void'а. А также, разработчик не придумал ничего лучше, чем добавить строки открытым текстом типа "SecretString1" для генерации ключа, видимо, он надеялся, что никто не поймёт их предназначение (или не найдёт в откомпилированной программе). Версия для маков содержала отладочные символы (не знаком с маком, это поведение компилятора по умолчанию или их нельзя удалить?) со всеми названиями функций. Жаль, что в его голову не пришла светлая идея распространять pdb файлы для Windows-версии. И ещё он забыл удалить отладочный запрос (и все юнит-тесты, которые, вроде бы, невозможно запустить, потому что не было перекрёстных ссылок на функцию), который содержал кучу параметров запроса, имя и пароль тестового пользователя, который мне не удалось по каким-то причинам использовать, но стали понятны некоторые механизмы работы программы без её запуска (самостоятельная регистрация не возможна, а работу программы проверить хотелось). А другой человек в официальном (вроде бы) ролике спалили свой пароль, который можно было увидеть при покадровом просмотре, ведь тот же разработчик сделал мегаудобную вещь, как показ введённого символа примерно одну секунду перед тем, как он превратится в звёздочку. А это, в свою очередь, мне очень помогло понять механизм генерации ключа и даже написать брутфорсер на OpenCL. К сожалению, кто-то подсказал разработчику (сам он вряд ли додумался) использовать большое число раундов для генерации ключа, поэтому брутфорсер оказался практически бесполезным, разве только для паролей до 7 символов. Также разработчик использовал захардкоженый абсолютный путь к файлам программы без возможности его изменения (а если ОС на другом диске или диска C нет). И да, думаешь, что это мелкая никому не известная программа? А вот и нет, без преувеличения, миллионы пользователей, несколько стран, программа платная, аналогов нет, а без неё низзя, обязаловка. И это не в России.
Не делай больше так.
65 1184131
>>82382

>std::string url


Недавно реверсил одну программу, которую переписывал, судя по всему, шарпист. И он наделал подобных конструкций в каждой функции. Из-за этого перед вызовом любой функции с таким аргументом вызывался конструктор и создавалась новая строка, а перед выходом из функции удалялась. Если не править прототип функции, то в ней получалось по 6 х кол-во строк аргументов, а использовался только первый параметр. И приходилось в каждую интересующую меня функцию добавлять прототип вместо формального void'а. А также, разработчик не придумал ничего лучше, чем добавить строки открытым текстом типа "SecretString1" для генерации ключа, видимо, он надеялся, что никто не поймёт их предназначение (или не найдёт в откомпилированной программе). Версия для маков содержала отладочные символы (не знаком с маком, это поведение компилятора по умолчанию или их нельзя удалить?) со всеми названиями функций. Жаль, что в его голову не пришла светлая идея распространять pdb файлы для Windows-версии. И ещё он забыл удалить отладочный запрос (и все юнит-тесты, которые, вроде бы, невозможно запустить, потому что не было перекрёстных ссылок на функцию), который содержал кучу параметров запроса, имя и пароль тестового пользователя, который мне не удалось по каким-то причинам использовать, но стали понятны некоторые механизмы работы программы без её запуска (самостоятельная регистрация не возможна, а работу программы проверить хотелось). А другой человек в официальном (вроде бы) ролике спалили свой пароль, который можно было увидеть при покадровом просмотре, ведь тот же разработчик сделал мегаудобную вещь, как показ введённого символа примерно одну секунду перед тем, как он превратится в звёздочку. А это, в свою очередь, мне очень помогло понять механизм генерации ключа и даже написать брутфорсер на OpenCL. К сожалению, кто-то подсказал разработчику (сам он вряд ли додумался) использовать большое число раундов для генерации ключа, поэтому брутфорсер оказался практически бесполезным, разве только для паролей до 7 символов. Также разработчик использовал захардкоженый абсолютный путь к файлам программы без возможности его изменения (а если ОС на другом диске или диска C нет). И да, думаешь, что это мелкая никому не известная программа? А вот и нет, без преувеличения, миллионы пользователей, несколько стран, программа платная, аналогов нет, а без неё низзя, обязаловка. И это не в России.
Не делай больше так.
66 1184136
>>84038
https://github.com/superhacker777/ivms-bf
В том же репозитории вот это есть с пометкой

>UPD: Currently abandoned, rewritten in Go

67 1184154
>>83798
Ну , как сказать, я вот не считаю всякие кути шляпы отдельным языком от плюсов, а они позволяют написать ВСЁ.
68 1184181
>>84136
Так хуле мне делать, на каком языке форк делать?
69 1184182
>>83935
Начни с написания простого форта на асме, дальше оно само пойдет.
70 1184186
>>84181
Блять, ты не можешь добавить функционал в c++ версию или что?
71 1184193
>>84131
Ну достаточно поставить ссылку? Возможно константную, не знаю нужна там работа непосредственно с этой строкой.
72 1184220
>>84154
Если тебе захочется нормальную графику или вычисления на gpu, то придётся осваивать шейдерные языки. Тот же кути в качестве одного из инструментов даёт тебе QML.
А в целом экономически неоправданно всё на c++ писать. Ту же автоматизацию сборки и тестирования проекта намного быстрее и проще написать на python (считай дешевле и надёжнее).
73 1184248
>>84220

>то придётся осваивать шейдерные языки


Шейдеры и opencl - это сишка, куда - С++.
74 1184269
>>83853
270к чистыми, ДС
75 1184273
>>84248
Наркоман штоле? Шейдерные языки GLSL, HLSL это никакая не сишка и уж тем более не C++. Синтаксис похож, но этим всё и ограничивается (указателей нет, ссылок нет, встроенные типы матриц и векторов, swizzle оператор, динамического выделения памяти напрямую нет, нет рекурсии и ещё сотни отличий).
OpenCL C тоже основан на сишке и тоже её стандарт переопределяет.
Заимствование синтаксиса не делает Java наследником C++.
76 1184289
Хочу подзаработать на удалёнке, тыщ 30, нужны для апгрейда ноута.
Скилы:
Англицкий:
письменный - ок
на слух - более менее
говорение - летмиспикфроммайхарт

Основные скиллы:
-программирование ARM контроллеров
-прикладное на С/С++ под Windows/Linux
-тулчейны для контроля версий сборки и тестов

Дополнительные скиллы:
-Python со словарём.

Как я вижу для удалёнки нужна экспертиза в конкретной предметной области, например Linux Kernel.
Пацаны, в какую область можно вкатиться, что разово, за пару выходных поднять немного денег?
77 1184290
>>84289

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


Дворником.
78 1184291
>>84290
UPD
inb4: дворник, фронтенд
79 1184293
>>84289
Есть у меня подозрение, что у тебя всё перечисленное со словарём, а не только питон. Ищи колым для студентов в дно треде.
80 1184301
>>84293
Проходи мимо.
81 1184322
В чем разница на уровне инструкций? Что оптимальнее использовать?

bool func(int a) {
return a > 0;
}

std::uint8_t func(int a) {
return a > 0;
}
82 1184324
>>84322
Ни в чем. https://godbolt.org/g/Bm4LVR
Как по мне, так первый вариант более читабелен.
84 1184369
>>84342
Что сказать то хотел?

vulkan это очередное api для загрузки на видяху тех же шейдеров, написанных на glsl или hlsl (отличие от opengl в том, что он использует шейдерные программы в виде "байт кода" spir-v).

OpenCL C++ по документации не поддерживает такие важные средства C++, как:
1.8 Restrictions
- recursive function calls (section 5.2.2, item 9)
- new and delete operators (sections 5.3.4, 5.3.5)
- function pointers (sections 8.3.5, 8.5.3)
- virtual functions and abstract classes(sections 10.3, 10.4)
- exception handling (section 15)
85 1184377
>>84369

>Что сказать то хотел?


Что в шейдерах почти полноценный С++ с указателями и темплейтами.

>не поддерживает такие важные средства


На самом деле указатели на функции там есть, только адово тормозят.
А так естественно, что многие возможности не поддерживаются - архитектура у железа другая.
86 1184392
>>84369
Я особо не интересовался OpenCL, я думал это просто API для параллельных вычисленей на видеокарте в языке C/C++. А это получается вообще другой язык? Для него нужен специальный компилятор?
87 1184397
Учу кресты по Страуструпу и что-то я нихуя не понял: у него есть целый параграф, посвященный концептам в шаблонах, но какой бы я компилятор не взял (gcc, msvc, clang), все меня послали нахуй. Хотя Страуструп пишет, что концепты есть с С++14. Получается он наебал или что?
88 1184405
>>84392

>А это получается вообще другой язык?


Только для ядра, которое выполняется на видяхе, сам API - сишный. В старых версиях у шейдоров - сиподобный язык, начиная с 2.1 - урезанный С++14. У нвидии на CUDA с самого начала C++.

>Для него нужен специальный компилятор?


Да, но можно просто текстовую строку с шейдером передавать API.
Можешь сам посмотреть (это не OpenCL, а пиксельные шейдеры для WebGL, но суть похожая.): https://www.shadertoy.com/
89 1184406
>>84397
Это экспериментальная фича еще, надо флаг компилятору передать, у GCC -fconcepts, clang вроде не поддерживает еще.
90 1184407
>>84406
Все равно хуита: https://godbolt.org/g/nCnMUV
91 1184412
>>84407
У них по -foncepts старая версия концептов, не та, которая в стандарт войдет, да и та неполная. Так что тебе придется самому нужную ветку GCC собирать.
92 1184583
>>84322
Такие функции лучше через макрос делать или inline.
94 1184595
>>84322
Лучше не заморачиваться такой хуйней, premature optimisation и вся хуйня.
95 1184757
>>84583
В современом C++ забудь макросы, используй их только в крайних случаях. И для таких простых функций, как выше, не надо писать inline. Компилятор сам инлайнит функции где возможно.
96 1184803
>>84583
и constexpr
97 1184876
>>84757

>Компилятор сам инлайнит функции где возможно.


Только когда с -O3 компилишь.
98 1184938
>>84876
А посоветуй литературы где подобную информацию можно почитать? Я имею ввиду про работу компилятора. Я просто читал книгу ещё 99 года и там уже писалось что все эти онлайн устаревшие.
99 1184943
>>84938
Инлайн
фикс
100 1185016
>>84876
-O3 -fno-inline-functions
шах и мат, атеисты!
 .png452 Кб, 789x445
101 1185058
>>84938
Есть такая книжка, но она 2004 года
102 1185076
>>84757

> не надо писать inline. Компилятор сам инлайнит функции где возможно.


Где-то читал, что какой-то конпилятор если видит слишком много инлайнов (вроде как оценивается не общее количество, а относительно количество функций или что-то подобное), то он считает программиста идиотом и вручную написанные инлайны полностью игнорирует (что стандартом не запрещено, лол). Заставить инлайнить в таком случае можно либо написав перед функцией template <>, либо нестандартными атрибутами (которыми все кому прям сильно надо инлайнить и пользуются).
103 1185084
>>85076
Вроде как единственная 100% гарантия заинлайнить и сделать именно точно как тебе надо - ебнуть асмовставочку.
104 1185216
>>85076
А если инлайн в заголовке, компилятор все равно создает отдельную функцию в программе?
105 1185233
>>85216
По стандарту слово INLINE для функции дает возможность забить хуй на ODR, не более
106 1185380
>>81867 (OP)
Если нужно передавать в функцию или конструктор список чисел определенного типа (int, uint32_t), каким типом данных представить этот список для удобства и производительности? std::tuple?
107 1185381
>>85076
>>85084
Есть еще такая хуйня
#define __forceinline inline __attribute__((always_inline))
108 1185406
>>85380
Чем тебе не нравится список из стд?
109 1185407
>>85380
Чем тебе не нравится список из стд?
110 1185410
>>85380

>список


Связанный список или массив?
112 1185497
ребзя пару слов, почему -32767 должно возвращатся?

if(GetAsyncKeyState(klavisha)==-32767)
file(klavisha,"text.txt");
113 1185500
>>85497
Мамкин кулхацкер, открой для себя raw input.
114 1185505
Объясните есть ли смысл расставлять мьютексы для класса, в котором с одним инстансом работает несколько потоков.

class A {
public:
void routine()
while ( true ) {
if ( _bs_ ) {
counter++;
}
}
}

std::uint64_t counter;

};

если два потока выполняют routine();, правда что может произойти креш при одновременной записи в counter?
115 1185510
>>85505
Здесь нужен std atomic
116 1185533
>>85505
Ну это просто критическая секция, потенциально ты можешь просрать данныетак и будет. Если будешь без синхронизации использовать свою функцию.
117 1185741
>>85505

>креш


Нет. Если все указатели валидные, чему крэшиться? Но в общем случае у тебя будет обычный race condition, и получится каша, а не данные.
Конкретно в этом случае всё будет норм на x64, так как обновление машинного слова - атомарная операция. На этой фишке основана такая штука, как RCU. Но с этим нужно быть очень аккуратно, так как зависит от конкретного проца, поэтому всё равно следуй советам >>85510 и >>85533.
118 1185777
А чем отлиается атомик от мутекса?
119 1185847
Пилил програмку с использованием QT в MVS 2015
Закончил делать x64 версию, решил скомпилировать и x86. Оригинальная QT поддерживала только x64, пришлось скачать ещё дистр для x86 и развернуть его. В настройках плагина для MVS прописал путь к x86 версии QT. Проект пересобрался и начал сыпать ошибки вида
UAC.cpp
1>...\qtguiapplication4\qtguiapplication4\UAC.h(3): fatal error C1083: Не удается открыть файл включение: QWidget: No such file or directory

Вернул всё обратно. Теперь проект и x64 пишет то же самое.
Есть идеи как чинить? Не переносить всё в QT Creator а именно чинить
120 1185866
>>85777
Всем, блять. Суть мьютекса - блокировка. Мьютекс - это считай толчок, срать там может только один человек, а остальные будут ждать пока он освободится, или обосрутся по таймауту.
121 1185873
>>85777
Почитай Таненбаума.
122 1185889
>>85847
Проверяй пути к инклюдам
123 1185893
>>85889
Это в целом понял уже. Я сейчас на этапе - "Как пофиксить QTDIR?"
Т.е. насколько я понял проблема в том, что установка второй QT, для x86 где-то распидорасила заданый ранее QTDIR, который указывается в настройках MVS как $(QTDIR)\include\ итд. Но где и как мне прописать теперь QTDIR?
Пробовал через дополнительные параметры системы->переменные среды, но
1. Там её вообще не было
2. После того как я её задал там - ничего не произошло (Возможно нужна перезагрузка?)
124 1185900
Анончики. Я заебался уже с этими стримами. Мне нужно-то всего лишь получить данные по сети и обработать их. Но я столкнулся с проблемой. Как вообще можно управлять данными stringstream? Как получить количество байт в нем, а не до первого нуля до считать? Со всеми этими вопросами я решил просто отойти от стримов и использовать строки. Но штука, которая считывает данные, работает только со стримами. Я попробовал создавать для неё стрим и в rdbuf подменять буфер данными из строки, но это не работает в msvc по какой-то причине. Слышал есть ещё strstream, который, вроде, для этого и предназначен, но стандарт говорит, что он устарел.
Внимание вопрос: как лучше всего навешать istream интерфейс на std::string?
125 1185908
>>85866
Ну извините за такой тупой вопрос, я думал это и атомик делает? Я никогда мултитредингом не занимался. А в чем тогда смысл атомика?
126 1185912
>>85908
Атомик, внезапно, делает операции атомарными. Другими словами, треды не будут видеть "промежуточного" состояния при изменении атомика. То есть в атомиках нет семантики владения каким-то ресурсом в отличии от мьютекса. Вот как атомик реализован (через мьютекс, или архитектура проца такая, что можно лок-фри сделать) - зависит от конкретной реализации.
127 1185914
>>85908
Атомик может быть на инструкциях проца быстро сделан, а мьютекс скорее всего будет ебошить сискол. Атомик нужен тупо на одну переменную потому что даже в сраном инкременте i++ может гонка возникнуть.
128 1185949
Суп. Предпринимаю уже вторую попытку вкатиться в Qt. И уже во второй раз я даже не могу написать не строчки кода. Пикрил ебанина один в один была у меня уже на двух разных компах с двумя разными операционными системамисперма и дрисня. В тот раз я пропердолился с этим немало времени, накатывал блядь всякие разные левые компилы, нихуя не работало. Спрашивал где-то здесь, в /pr, но никто нихуя не знал, говорили что мол все должно из коробки работать и это не нормально. Я уж подумал это у меня в системе что-то поломалось, блядь, раз так, и забил. Но теперь на новой чистенькой ОС и даже на другой пеке та же хуйня. Анон, юзавший сабж, отозвись, прошу.
Линк, по которому качал: https://www.qt.io/download (опен сорс версия).
Путь к кьюту без пробелов, пикрил.
129 1185952
>>85949
Просто береш и ставиш линупс.
130 1185953
>>85949
Нажми на Примеры.
Открой пример.
Скомпилируй.
Что происходит?
image.png52 Кб, 1262x732
131 1185956
132 1185961
>>85900
Тебе данные в каком виде нужны? Инфа или набор битов/байтов? Если 2, то считай как массив unsigned char
Снимок экрана 2018-05-08 в 12.12.39.png127 Кб, 1883x661
133 1186036
>>85949
У тебя комплекты походу не установлены, открой настройки->cборка и запуск->комплекты. Должны быть хоть какие то комплекты))
134 1186045
>>85777
Атомик — это маленький атом.
135 1186095
>>85961
Проблема в том, что я активно использую библиотеку сериализации Cereal, которая понимает только потоки данных. Так-то они у меня уже в форме массива char-ов, за это и отвечает string, но теперь нужно как-то на этот массив навешать интерфейс потока, что бы его можно было считать. Думаю сейчас просто свой класс-наследник от istream сделать, вдруг получится
137 1186129
Пагни, гайд из шапки подходит, если я опытная жава-макак, а плюсы решил изучить для общего развития.
138 1186132
139 1186134
>>86129
Лол, Ява это игрушка по сравнению с си. вкатывайся самый начальный уровень от стрроуструпа, надеюсь хоть что-то поймёшь
140 1186245
Реквестирую годный 16-битный компилятор для С/C++.
141 1186248
>>86134

>Ява это игрушка по сравнению с си


Нет, если бы это был яваскрипт, то да. А вот ява еще ему поможет.
142 1186255
>>86248
Чем поможет? Без GC он только и будет что наступать на грабли. Особенно учитывая, что в Си нет умных указателей, которые хоть как-то облегчают работу с памятью.
143 1186256
>>86255
Хотя ты прав. Мне потребовалось целых 2 месяца, чтобы умело извращаться с указателями.
144 1186257
Посоны, что писать: загрузчик или программу защиты приложений от пиратства?
145 1186258
>>86257
Пиши ИИ, а он пусть потом пишет всё что нужно.
146 1186260
>>86258
Я похож на бородатого машинлёрнигопидораса? Нет, я лучше байты посчитаю.
147 1186265
>>86257
Загрузчик чего, оси? Там же всё стандартно делается.
148 1186266
>>86265
Ну я со своими прибабахами хочу сделать. Имел с этим опыт? Посоветуешь лит-ры?
149 1186320
>>86266
Курс осей N лет назад и wiki.osdev.org, так что сейчас уже ничего не помню.
150 1186342
>>86320
Спасибо. Чисто на асме или на слиянии асмы и си делал?
Безымянный.jpg57 Кб, 574x255
151 1186369
как это кушать?
152 1186446
>>86245
Turbo C
154 1186497
>>85777
race condition в твоей ситуации может быть из за того, что ++ для некоторого типа данных делается в несколько команд на ассемблере. потому один поток может сделать одну команду и внезапно быть прерванным другим потоком, который тоже начнет что-то делать и т.д..
так вот - мутекс - это как замок. у тебя переменная лежит в ящике стола запертом на замок и ключ только один. соответственно переменную меняет только тот, у кого ключ.
взял ключ - открыл ящик - поменял - закрыл - ключ положил и теперь другой поток его может брать.
а атомик - это когда ++ кодируется в ассемблер так, что его нельзя прервать. родные виндовые функции это Interlocked*
155 1186501
>>86486
При установке надо было включить установку mingw. В режиме обслуживания и сейчас это можешь сделать.
1.png52 Кб, 1203x751
156 1186502
>>86486
Ты походу установил только QtCreator. Это только IDE, скачай сам фреймворк. Должно быть что-то типа такого, как на пике.
157 1186503
>>86497
Не отличаешь race condition от data race? В ньюфаг-тред.
158 1186504
>>86502
Sources нинужны, если ты только не собираешься ручками компилировать сам qt.
159 1186507
>>86504
Ну да, из всех галок можно оставить только одну: MSVC или MinGW. Остальное для начала не нужно.
160 1186537
>>86501
>>86502
Уже нагуглил. Сейчас качаю. Посмотрю, что из этого выйдет.
4гб на скорости ~200 кб/с. Филсгудман, блядь.
161 1186572
>>86537
Всем отписавшимся анончикам нефти, заработало.
162 1186613
Шарпоблядок на связи, портирую одну хуйню с этих ваших крестов и есть квик вопрос о порядке математических действий:

х y / z будет (xy)/z или x * (y/z) ?

Спасиба
163 1186616
164 1186709
Крестогоспода, здравствуйте. Осматривал вакансии, много где пишут про работу с Linux. До этого нажимал всё строго под Виндой в Вижуал Студии. Есть ли смысл накатывать линукс для дальнейшего успешного движения?
165 1186729
>>86709
Не лезь в кресты. Джунских вакансий на крестах практически нет, все ищут уже бородатого задрота с килотоннами опыта.
166 1186731
>>86729
Так уже полез. И там примерно на собеседованиях так и есть. Лол.

В духе: ну вы знаете, нам нужен человек, который кроме крестов может в кьют, сети, базы данных, строительство звездолетов, а еще бы неплохо написать под них драйвера
167 1186734
>>86731
Отож. Лезь лучше в петушиный жс, как ни прискорбно - это говно повсюду, и наверное в будущем и питухон с рубями сожрет.
168 1186736
>>86734
Я как-то капитально взялся, так что один хуй буду пробовать вкатиться хоть куда-то
169 1186743
>>86729
Интересно, есть ли вообще кулстори людей, которые вкатились в плюсы с джуна?
170 1186745
>>86743
а нормальные люди вкатываются в кресты уже с других языков?
171 1186746
>>86743
Ну я наверное как раз в последний вагон уходящего поезда запрыгнул.
172 1186749
так, пацаны, а что вот должен уметь джун?

если я осилю кроме крестов, еще кьют, ебучие сети, и базы данных, это я уже джун или еще нет?
173 1186750
>>86745
Да хуй знает, я сам студиозус с амбициями "войти в ойти с плюсов". Судя по всему будет тяжело.
174 1186755
>>86749
В том то и прикол что джун должен уметь все. Но хотеть мало денех.
175 1186757
>>86755
так. а если мне по ходу ебашить проектики в няшный гит по мере осиления стека технологий, и все это четенько пояснять в резюме?
прокатит?
176 1186759
>>86755
алсо, просил чуть больше скромной тысячи долларов.
177 1186762
>>86759
И как, напросил? Джуна хотят за 40-45к.
178 1186764
>>86757
Нет. Даже если проекты будут охуенными - я тебя уверяю, никто в твой гит смотреть и близко не будет, нахуй это нужно. Сам подумой - там в день несколько человек собеседовать, что у каждого смотреть?
179 1186771
>>86764
но как же тогда вкатирововаться?
180 1186775
>>86771
Никак.
181 1186777
>>81872
UrlDownloadToFile
используется всякой шаболдой в верусах, возможен детект аверами
(подобные вопросы лучше задавать в топике системного программирования / реверс-инжиниринга и асм)
182 1186778
>>86771
В кресты никак, без шансов. Вкатывайся в жс, питон или ещё какую нить хуйню.
Да и писал бы ты на крестах - напротив искал бы как выкатываться тому до это пиздец, язык-червь, язык-пидор, язык-страус, язык-труп.
1012024090.jpg33 Кб, 341x500
183 1186794
Стоит ли начать изучение c++ с пикрелейтед? Книга Страуструпа не сильно зашла, так как он заставил скачать библиотеку со своего сайта и которая ни как не принималась Visual Studio 2016. Поэтому ищу другой самоучитель.
184 1186798
>>86794
Начинать изучение c++ вообще не стоит. Язык пиздецки сложный и кривая сложности растёт со временем по экспоненте, а работу на крестах ты все равно не найдешь и с каждым днём найти её будет все сложнее.
185 1186810
>>86798

Не соглашусь, у меня на работе автоматизацию и цеховые программы пишут на c++.
186 1186813
>>86810
Госпараша за копейки не считается. Там и дельфи ещё есть наверное.
187 1186815
>>86798

> Язык пиздецки сложный


Сам язык не сложный. Никто ж не заставляет писать код с кучей шаблонных шаблонов. Основная сложность - это инструменыт для работы с C++. Отсутствие нормального менеджера зависимостей и мегаубогие инструменты для автоматизации конпеляции (чего только распиаренный cmake стоит) делают своё дело.
188 1186816
>>86798
>>86810

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

Отнюдь, у них самые большие зарплаты, хоть и госы, да.
190 1186822
>>86815

> > Язык пиздецки сложный


> Сам язык не сложный.


Ну да, действительно. А полтора косаря страниц только текущего стандарта (выйдет ++20 за два косаря перевалит) это так, хуйня

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


Заставляет. Посмотри на блядский буст.

>Основная сложность - это инструменыт для работы с C++. Отсутствие нормального менеджера зависимостей


Он невозможен потому что эта параша до сих пор работает на препроцессоре, модульности нет

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


Я на работке для себя использую qbs. Так то проекты в boost build захуячены, но IDE jam-хуйню не скормишь, а в виме пердолиться не хочется.
191 1186824
>>86777
Эта хуйня работает максимум в 4 потоках, а мне надо намного больше
192 1186827
Ах да. Ещё пиздец в том, что кресты как бе надмножество сишки - и в то же время - нихуя.
193 1186829
>>86824
Ну нахуярь руками get реквесты на сокетах, блять.
194 1186830
>>86822

> Ну да, действительно. А полтора косаря страниц только текущего стандарта (выйдет ++20 за два косаря перевалит) это так, хуйня


Никто не заставляет читать всю спецификацию. У спецификации JS тоже около тысячи страниц. Это делает язык мегасложным?

> Заставляет. Посмотри на блядский буст.


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

> Он невозможен потому что эта параша до сих пор работает на препроцессоре, модульности нет


Сильное заявление.
195 1186835
>>86830

> Основная сложность в написании подобных библиотек.


Основная сложность потом читать километровые выхлопы шаблонного говна в ошибках компилятора и гадать че этой суке не нравится.
196 1186837
>>86835
Это да. Впрочем обе твои претензии будут исправлены в C++20 (непонятные ошибки - концептами, модульность - модулями).
197 1186838
>>86798
да не сложный он нифига. просто изучать надо постепенно.
если начинаешь с нуля - бери какого нить кернигана и ричи и учи то, что там есть.
простые типы, указатели, (ссылки тоже добавь до кучи), битовые операции, функции. ВСЁ. в этом куске самое сложно - указатели на функции. уж очень мудреный синтаксис. но их обычно наизусть никто не знает.
выучил этот кусок, со всем разобрался? иди дальше.
классы (БЕЗ ШАБЛОНОВ!). уровни доступа, статические члены, наследование, множественное наследование, виртуальное, указатели на функции-члены класса. тут тоже ничего сложного нет, вполне себе небольшой кусок знания.
дальше шаблоны смотри уже.. даже перед шаблонами или чуть попозже, когда будешь знать что-то типа template <typename T> class C { public: T myvar; } и как использовать STL контейнеры - тебя уже джуном везде возьмут как нефик делать. а то и мидлом.
198 1186840
>>86838
Ты ему советуешь изучать Си, а не С++. В своих проектах я указателями почти не пользуюсь, везде стоят unique_ptr или shared_ptr, а указатели используются только для взаимодействия с Сишными библиотеками.
199 1186841
>>86837
Я про концепты с модулями кажется ещё в ++11 слышал, а воз и ныне там. А какой-то хотя б минимальной рефлексии и близко нет. К примеру - нужен тебе final switch, чтобы покрыть весь enum или не компилировать - а хуй тебе. И костыли-костылики (протобуф вроде генерит Value_MAX и VALUE_MIN). Сука блять.
200 1186843
>>86841

> А какой-то хотя б минимальной рефлексии и близко нет.


Рефлексии и в С++20 скорее всего не будет.
201 1186844
>>86840
Самое смешное это потом пробрасывать shared_ptr на unique_ptr на какую то хуйню потому что видите ли Handler в io_service::post должен быть CopyConstructable...
202 1186845
>>86844
А ну да, ещё взаимодействовать с C++98 библиотекми или библиотеками, которые написаны на Си с классами. Впрочем, я их стараюсь по возможности избегать.
203 1186850
>>86845
Ах да, а ещё по стопицот видов строк, массивов и умных указателей, у каждой библиотеки свой блять. И крестопараша которая в стандарте не умеет в юникод - точнее там кажись since c++17 deprecated. Необходимость в блядском icu, ебаный wchar/wstring который в линупсе 4 байта а в шинде - 2. Блядская хуйня уровня "ну ета - в крестах sizeof(void*) не существует а в сишке gcc ета 1" и тупорвлвми мудаками которые написали такого говна в хедерах ядра, так что под шлангом ты в крестах ты хуй че скомпилишь, а в gcc только с fpermissive.
204 1186851
>>86840
но ты же знаешь, что такое ptr вообще? для чего нужны эти unique и shared? вот чтобы с ними работать не как обезьяна с гранатой, а осознанно, и надо понимать что такое обычные указатели.
205 1186855
>>86851
Они тоже костыль блядский. Чего стоит только ебаная параша с enable_shared_from_this
206 1186856
>>86838
Я заканчиваю второй курс, и все что ты написал я знаючасть рассказали на лекциях/практике, большую часть прочитал и понял самостоятельно и то мне кажется, что я вообще нихуя не знаю и дно ебаное.
207 1186859
>>86850

> Ах да, а ещё по стопицот видов строк


Это да, почему-то за столько-то лет сущзествования языка о поддержке юникода никто не задумался. Впрочем надежда есть. Вон недавно std::optional добавили (впрочем он там достаточно неполноценный: без метода map [1], которым я пользуюсь чаще всего, лол)

> умных указателей


Это я полагаю из до C++11 эры.

[1]: https://doc.rust-lang.org/std/option/enum.Option.html#method.map
208 1186860
>>86856
Так и должно быть.
209 1186862
>>86850
Макак, иди порвись где-нибудь в PHP-треде.
210 1186863
>>86860
И что же делать, изучать конкретные библиотеки? Начинать бездумно изучать буст в надежде, что это понадобится? Или начать делать собственный проект? Все таки какой-никакой опыт, и изучать то в чем будут трудности?
211 1186865
>>86863
Изучай js или пиздон. Не трать зря время.
212 1186869
>>86856
если под винду хочешь работать - напиши пару программок типа калькулятора с mfc или qt (mfc я бы посоветовал - оно к нативным функциям ближе) чтобы разобраться как виндовая гуя работает, почитай чуток теории про коллекции stl - оценки скорости работы, как внутри устроены и т.д. и иди по собесам.
под винду на джуна возьмут стопудово.
213 1186871
>>86869

> mfc я бы посоветовал


Это чтобы он 100% отказался от идеи писать что-либо на плюсах? Умно.
214 1186896
>>86865
Двачую этого. Я учил кресты в вузе. Тогда мы сделали с другом небольшую двумерную игрушку больше мне этот язык ни разу не понадобился. В крестах столько говна, что >>86778 больше прав чем не прав.
215 1186909
>>86896
Кресты могли бы быть спасены если бы популярная ОС имела апи и сисколы на крестах. Но так сложилось что и винапи - сишное, и линупс трольвардс - пердун и неосилятор, и так и повелось. А на крестах ядро емнип только у гаечки-беоси, но не срослось, отличная ОС была в своё время, но убита менеджментом и негрософтом. Было бы ядро на крестах и апи - были бы и библиотеки, и не было бы того говна что сейчас.
216 1186963
>>86909
Прими брому.
217 1186972
>>86909
Гугл Хром и WebKit на плюсах написаны.
218 1187164
>>86972
Firefox и Gecko тоже.
219 1187167
>>87164
Firefox уже частично на расте (как минимум CSS-парсер).
220 1187169
>>87167
ты нихуя не понял.
221 1187171
>>86871

>чтобы разобраться как виндовая гуя работает


>под винду на джуна возьмут


Ты пост-то его прочитай как следует. Он имеет ввиду околосистемное программирование под винду, отсюда и мфц.
222 1187192
Бля, а в неплохое время живем, аноны

3-4 четыре годных компилятора, все рвутся вперед, стандарты принимаются, ниша оформилась, от макак мы отличаемся, вась вкатывальщиков я в глаза не видел

Чота я даже как-то влюбился обратно в С++
223 1187229
>>87192
Охуенно наверное писать на реинкарнации pl/1.
Однажды все рухнет окончательно под весом томов стандарта и костылей.
224 1187245
>>87229
Жопоголик, попей брому.
225 1187256
>>87229
Все другие промышленные языки как-то не рушатся, значит норм. Хотя жабка наверное исключение, там все говно в библиотеках, а не в стандарте языка.
226 1187260
>>87256
Рушатся. Все эти жабы, питоны, раби и жабаскрипты с го вылезли не на ровном месте - они отожрали долю именно у крестов. Теперь пизда последнему оплоту - даже десктопный софт все больше пишут не на крестах а уебищном электроне.
227 1187264
>>87260
С каких пор жабаскрипт с пайтоном отожрали свою долю у крестов? Кресты никогда не были ни сценарным ни веб-языком. Про твой электрон никогда не слышали писаки большинства настольного софта (который пишется таки-на плюсах) имхо.
228 1187271
>>87260
ну да, пусть отожрали

я и говорю кресты стали таки нишевым языком и это хорошо. графика, финансы, медицина, по тихой embedded подтягивают.
229 1187273
>>87264
Атом, vs code, шкайп и дискорд - да дохуя чего десктопного пишется на электроне. А раньше это были кресты only. И это только начало. Сперва пидорнули дельфи - теперь пидорнут и кресты.
230 1187277
>>87273

>Electron



kek
Эту хуету в серьез никто не воспринимает, любая программа на этом говне кроме VS Code лагает пиздец как. Ты дебил?

Весь мир борется с электроно-залупой. Даже сами майки которые этот вс код и создали
231 1187281
>>87277
Как борется? Я пока что вижу как то что писалось на крестах теперь пишут на электроне - но не вижу обратного, чтобы веб парашу типичную переписывали на крестах.
Когда то кресты и в мабилках были, емнип под симбианом проги на крестах были а он был лидером рынка. Пидорнули-с, жаба правит бал.
232 1187284
>>87281
webassembly жи лол

автокад вот выпустил вебверсию, тот же с++ только в броузере, а это покруче текстового редактора будет. вполне возможно кресты веба порцию заберут себе в ближайшем будушем
233 1187299
>>87273
Дельфи взлетели, на них что-то писали (в т.ч. гуи скайпа под винду), затем плюсы опять взяли свое. Мне кажется это всё хуйня и электрон это просто новомодная тема, которая скоро заглохнет. Осло, не слышал что скайп переписали на электрон. Меньшей хуетой он от этого не стал, лучше бы откатили в 2012.
234 1187314
>>87273

> Атом, vs code, шкайп и дискорд - да дохуя чего десктопного пишется на электроне. А раньше это были кресты only. И это только начало. Сперва пидорнули дельфи - теперь пидорнут и кресты.


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

Вот, скажем, открываете вы документ в Google Docs. Открываете страницу, начинаете набирать, и понимаете, что полностью страница еще не загрузилась, и джаваскрипт не успел перевести фокус на поле ввода. Первые три набранные буквы пропали.
Это просто первая мелочь, пришедшая мне в голову, но она для меня столько значит, что сразу ставит крест на Google Docs.
Или, например, нажимаете во многих веб-приложениях правую кнопку мыши на каком-нибудь объекте, ожидая, что вы получите меню объекта, и видите там «назад», «вперед», «сохранить страницу», и так далее. Понимаю, что нажатие правой кнопки мыши можно перехватывать, как это делает тот же Google Docs, но когда ты такое видишь в, казалось бы, десктопном приложении (написанном на node.js, который тащит с собой chrome.exe и ffmpeg.dll, и простейшее приложение занимает больше 50 мегабайт в архиве), то это просто неприемлемо.

«Десктопные» приложения Slack, Mattermost, текстовый редактор Atom, который раньше не умел открывать файлы с размером более 2 МБ, а сейчас открывает мегабайтный файл несколько секунд — просто какой-то мусор, непонятно, кто в здравом уме будет пользоваться такими программами, пока есть альтернативы в виде нормальных десктопных приложений.
235 1187320
>>87314
А я о чем блять. И при всем при этом люди пользуются этой парашей, а не десктоп-прогами. Взлетают всякие говно-хромоси где кроме браузера нет нихрена. А люди смотрят кинчики в веб-интерфейсе вместо того чтобы качать файлики в поррент-клиенте на крестах, слушают музычку вбыдлятне вместо того чтобы делать это в плеере на крестах, пишут мыльца в веб-интерфейсе гмыла и яндекса вместо того чтобы делать это в прогах мейл-клиентах на крестах... Вылезли всякие saas-параши, теперь и фотошопы и прочая хуйня в браузере.
А лет 10 назад все было кардинально не так. Кресты пиздец как сдали позиции.
236 1187348
>>87320
Сдали позиции не кресты, а настольный софт. Попробуй-ка поиграй в ААА в вебе, поработай с мультимедиа в вебе, обработай пресловутую бигдату в вебе. Нихуя. Все с крестами нормально, просто половину всякого барахла которое на них писали, утащили в веб и придумали на это новые языки с нескучными обоями.
237 1187362
>>87348

>Попробуй-ка поиграй в ААА в вебе


Давно придумали. От стриминга игор с сервака до "прошёл на ютубе" и твичей.

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


Вот именно. А утащили в веб это по некоторым причинам - из-за крестов и того что на жс макакить проще чем ебаться с шаблончиками, и потому что зонды в анус проще пихать со слежкой.
238 1187375
>>87362
Процент плюсов упал из-за низкого порога вхождения в скриптовые языки, хипстеры и быдло вкатываются пачками, но проблема в том что без плюсов вся скриптопараша просто умрет. Скриптопараша держится на фундаменте из плюсов и си, и без этого фундамента ей конец. Как ты сделаешь гуй на питоне если прекратится разработка qt/gtk+? Что станет с js если хром и вэбкит исчезнут?
239 1187417
>>87375
Си - да, а вот кресты не держит ничего. Си то останется навечно как минимум из-за того что на нем все системные апи, и нет никаких сраных манглингов, имена функций экспортируются как есть.
240 1187506
>>87417

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



ИРЛ практически все бэкендики-рантаймчики-игродвижочки пишутся как раз на плюсях/си-с-классами потому что reinterpret_cast и прочие ништяки.
241 1187532
>>87362

>Давно придумали. От стриминга игор с сервака до "прошёл на ютубе" и твичей.


Что ты несешь? Поиграй != посмотри.

>А утащили в веб это по некоторым причинам - из-за крестов...


Бритва Оккама отсекает твои охуительные догадки, основанные на неприязни к крестам. Я к ним тоже отношусь настороженно, но мне кажется что в веб всё перешло потому что появился собственно веб (быстрый безлимит, продвинутые сайты уеб2.0, вагон памяти на современных машинках и т.д.).
242 1187536
>>87532
Ну стриминг игр это тоже "поиграй", но он всё равно несёт хуйню, потому что там очень нескоро будет аналогичный уровень, ибо оверхеда овердохуя, никому нахуй не нужно ещё болше задержки в инпуте.
243 1187926
>>87536
G E F O R C E N O W
244 1188127
Плюсач, я писал лабу с деревьями и программа иногда крашится, а иногда не крашится с сегфолтом. Деструктор для узла дерева выглядит так:

if (left) delete left;
if (right) delete right;

В своей программе я создаю один указатель на узел, типа это корень. Но я не написал деструктор, потому что если я явно удаляю верхний узел, то крашиться начинает всегда. Как это можно починить?
245 1188131
>>88127
nullptr в конструкторе присваиваешь? И при удалении ветви?
246 1188211
>>88127

>if (left) delete left;


>if (right) delete right;


:facepalm:
247 1188218
>>88127
Без всего кода это ни о чём. Действительно попробуй вначале выставить указатели в ноль (хотя я на 99% уверен, что под те ебанутые случаи, когда это не делается за тебя, твой код не подпадает). А так - гоняй код под отладчиком и не еби мозг себе и мне.

On a side note, а вот в Русте нужно быть сеньором, чтобы крашить программы как джун на крестах =)

>>88211
Хех, лаба же, препод может не знать про умные указатели :3
248 1188220
>>88127

>иногда крашится, а иногда не крашится с сегфолтом


enjoy your C++-говно
249 1188225
Кстати, есть крестьяне-задроты с глазами горящими в треде? На днях в Bountysource выложили работу аж за 50 ебаных косарей грина, интегрировать webrtc с остатками сетевого стека firefox-a. Если сейчас сесть и неделю не спать, можно таки успеть :)
250 1188259
>>88218
Дело не в умных указателях.
251 1188263
>>88259
Лучше после делита явно присваивал этому указателю нуллптр, а ещё проверь места где ты ходишь по дереву, сегфолт вылетает в момент когда ты идёшь в память, которую твоему процессу не выделила ОС, скорее всего ты либо пытаешься считать не свои данные, либо вообще с нуллптра считываешь.
252 1188266
>>88218

>Хех, лаба же, препод может не знать про умные указатели :3


Я про то, что на nullptr при удалении проверять не надо. Бох с ними, с умными указателями.
253 1188268
>>88127
Алсо, undefined behavior, как он есть.
254 1188272
>>88266
Ты прав, мне явно не хватает опыта крестьянской жизни :(
255 1188302
>>88218

>Русте


Был бы не мёртв ещё
256 1188306
>>88131
>>88263
>>88218
Там как-то интересно получается, что сегфолт вызывает, видимо, строка if(left).

class Node
{
\tNode left;
\tNode
right;
\tint value
}

У меня даже значения никакого нет
257 1188328
>>88302
Ну по твоим меркам, наверное, всё мертво, что ниже Руби по популярности. Карьерные перспективы меня не особо волнуют, я хочу вкатиться в продакт-разработку и ебашить в одно рыло софт, который иначе пишет отдел из десятка весляров и погонщика. Если наработаю навыки и нахуярю библиотек, то вполне смогу этого добиться.

Вообще, ковбойская суть плюсов - не самое в них неприятное. Куда больше меня отвращает от них стремительное устаревание кода, когда то, что писалось под стандарт 2003 сейчас превратилось в технический долг, который нужно изолировать от нового кода. Это не говоря уже о проходящей моде на Буст и извращения дизайна им. Александреску.
258 1188330
>>88306
Это не код, это твои маняфантазии. Код подавай или седлай отладчик и хауау.
259 1188453
>>88306
Вряд ли строка с условие порождает сегфолт.
260 1188518
>>88328
Стремительное? Код на плюсах просто охуительно живуч не в тему. По-моему это нормально что портянки стандарта пятнадцатилетней давности сегодня устарели, вся писечка лишь в том что тебе надо их поддерживать, в какой-нибудь другой среде (соответственно с другим языком, не плюсами) ты бы уже по десять раз переписал их набело с ног до головы и всё было бы ок.
261 1188568
>>88328
Замена крестам - не сраный раст, а няшная дишечка.
262 1188636
>>87273

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


А Java и C# забыл? По-моему на них гораздо больше писали десктопных приложений чем на C++. Кресты доминировали всегда там где производительность критична, например браузеры, графические-, видео-, 3д-редакторы, игровые движки, драйвера.

>>87299
С чего ты взял что Дельфи взлетел? Последний раз я на нем писал лет 10 назад и тогда он уже был на закате.
263 1188639
>>88636
Java и C# тоже появились не на ровном месте и долю отожрали именно у крестов.
264 1188643
>>81867 (OP)
Хочу переписать этот код с Go на C++/Boost

package main

import "time"
import "strconv"
import "bytes"
import "crypto/sha256"

type Block struct {
Timestamp int64
Data []byte
PrevBlockHash []byte
Hash []byte
}

Возникли вопросы насчет выбора типов данных. Timestamp из структуры Block можно оставить таким же uint64_t.

Data, PrevBlockHash и Hash здесь массивы произвольной длины, кроме хэшей, которые представлены 32-байтными массивами байт. Чем можно заменить эти массивы байт в C++? Использовать std::string? std::basic_string<char>? Я ведь не буду использовать const char* и рисковать сделать учечку памяти.
265 1188645
>>88636
Когда на джаве и сишарпе во времена настольного софта (в нулевые) кто-то его писал? Шарпа тогда не было, а кресты доминировали ВЕЗДЕ на пару с дельфи, это сейчас они в описанных тобой нишах правят бал.
266 1188648
>>88643
Если тебе нужнен динамичный массив, то std::vector<unsigned char>, если статичный то std::array<unsigned char>
267 1188681
>>88643
std::basic_string<char> и std::string это одно и тоже
268 1188713
Аноны, почти нюфаг просит помощи. Разбираюсь с OpenGL, написал небольшую хуйню, всё работает на моей машине. Exeшник собранный в режиме debug весит 50кб и на другой машине требует VCRUNTIME140D.dll, ucrtbased.dll и glut32.dll, первые две это, полагаю, из Microsoft Visual C++ Redistributable, третья это сам OpenGL. Если собираю через Release, то exe весит 12кб и на другой машине требует только glut32.dll.
Собственно вопрос: где можно почитать как оно всю эту хуйню собирает?
269 1188729
>>88713
Забыл уточнить, делаю всё в Visual Studio 2017.
270 1188735
>>88713
Гугли "динамическая/статическая линковка". Видимо ты в релизной версии включил статическую линковку.
271 1188746
>>88713
С д на конце это дебажные длл которые у обычных пользователей не стоят.
272 1188823
>>81867 (OP)
Как написать обобщенный код, который бы сериализовал целочисленные типы вроде int32_t, uint64_t, int в массив байт?
273 1188840
>>88823
А в чем проблема? Всего то 2 параметра - тип(или размер в байтах, внутри трейтов натолкаешь что целочисленный) да порядок байт.
274 1188921
>>81867 (OP)
Анон, как в моей функции сериализации выбрать порядок байт?
https://ideone.com/kPqKg4
275 1188922
>>88921
Чем тебе не угодили htonl/ntohl?
276 1188923
>>88921

>https://ideone.com/kPqKg4


Выбором направления при перезаписи числа в std::array, очевидно же.
277 1189806
В одном файле имеется глобальная константа, хочу "передать" её в другой файл, для этого использую ключевое слово extern.
Константа объявлена как extern const int имя = 3.
В другом файле написано extern const int имя.
Казалось бы все работает, в файле, куда передаётся эта константа я могу создать статический массив размера [имяконстанты], всё компилится, но при этом я не могу создать объект типа std::array<int,имяконстанты>, что с ним не так?
Ошибка: "expression must have a constant value"
278 1189808
>>89806
Вообще я там не создаю array, а передаю его параметром в метод класса, но создать тоже не получается, также ошибка.
Вдруг это поможет.
279 1189913
>>89808
>>89806
Сделай какой-нибудь хедер misc.h или common.h в котором буду нужные тебе константы и которые могут понадобиться в разных местах программы.
280 1189989
>>89913
Я в итоге просто и объявил её в хедере, просто хотел изменятьизменять до времени компиляции переменную из сурс файла, а буду изменять из хедера.
281 1190102
Помогите с синтаксисом.
Ввод на стандартный поток какой-то последовательности. Последовательность завершается признаком конца ввода.
Что это за признак? ctrl+d? Если да, то это много проблем порождает.
Я питался писать по всякому, и
while (cin >> a)
и
while (!cin.eof())
Оба эти варианта не принимаются авто системой - ошибка ввода. При этом во втором случае, еще и последний символ считывается два раза.
282 1190103
>>90102
Ввод, вроде бы, просто представляет собой
cin >> a
мимо
283 1190104
>>90103
Последовательность. Мне нужно считать последовательность неизвестной длины, концом которой является признак конца ввода. Я спрашиваю как это сделать.
284 1190119
>>90102
Что ты хочешь сделать? Что ты подразумеваешь под последовательностью? Какой именно признак конца ввода? Если вводить через cin >>, то по дефолту признак конца ввода это пробел или собственно конец ввода.
Если ты вводишь строку можно использовать getline, у него признаком конца ввода является только нажатие на энтер.
285 1190122
>>90119
Понятия не имею, что вижу, то и говорю.
На стандартном потоке ввода вводится последовательность целых чисел. Последовательность завершается признаокм конца ввода. Сделайте там какое-то действие с последовательностью.
Компилятор gnu c++
В интернете вычитал, что признак конца ввода - ctrl+d или z но у меня во втором варианте, к примеру, программа просто останавливается.
image.png12 Кб, 471x163
286 1190127
>>90122
Как вводятся числа не сказано? Например через пробел или через строку.
Странное задание, какое-то неконкретное.
Могу предложить такое решение, чтобы закончить ввод нужно ввести Ctrl+Z.
287 1190129
>>90127
Вводятся через стандартный поток ввода. Нет ни пробелов, ни строк, просто числа идут на стандартный поток ввода.
288 1190139
>>90122
Я не понимаю, что тебе не нравится. Ctrl-Z - признак конца ввода. Грубо говоря твоя последовательность выглядит вот так
1 2 43 67 8 43 89 34 ^Z
В цикле while(cin >> a) ты делаешь все необходимые действия со своей последовательностью. Как только встречается конец ввода, программа выводит результат и останавливается.

>>90127
Сам найдешь ошибку? Чему будет равно i если я введу строку
1 34 67 43 0 76 123 87 ^Z?
EOF кстати тоже использовать нельзя. Программа завалится вот на этой строке
1 2 3 -1 54 32
289 1190140
>>90139

>Я не понимаю, что тебе не нравится


Как ловить то конец ввода? Ну допустим пробел. А как мне его ловить, если я считываю в интовую переменную?
image.png10 Кб, 493x160
290 1190143
>>90139
В первом случае i будет равно 4.
Алсо не понял почему она завалится. Ничего не падает вроде.
291 1190144
>>90143
Бля, а ты вообще имеешь право так быдлокодить? Есть гарантия что логические выражения будут справа налево вычисляться?
292 1190145
>>90144

>Есть гарантия что логические выражения будут справа налево вычисляться?


Насколько я помню, да, слево направо, лениво
293 1190146
>>90144
Они же слева направо вычисляются.
294 1190147
>>90145
мимо автор исходного вопроса.
296 1190152
>>90151
Уже разобрался, спасибо.
297 1190308
>>90140

>>Я не понимаю, что тебе не нравится


>Как ловить то конец ввода? Ну допустим пробел.


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

>>90143
Ну не валится конечно, я неправильно выразился. Просто результат будет неправильным если встречается 0. А если использовать вместо '\0' EOF (выше кто то советовал), то результат будет неправильным если встретится -1.
298 1190316
>>90308
Ну это да, я просто не видел, что кто-то EOF советовал.
Теперь понял.
299 1190318
>>90308
На самом деле довольно странно выглядит "пользователь введёт ctrl+z", скорее всего в задании есть какой-то символ который будет играть роль конца строки.
300 1190327
>>90318
>>90318
Да похуй на самом деле что он там введет, главное чтоб это было не целое число. cin здесь ожидает int и как только он натолкнется на первый !int цикл закончится. Так что можно вводить хоть
1 2 3 54 -100 x
хоть
1 2 3 54 -100х или 1 2 3 4 5;
результат один хер будет правильным.
301 1190328
>>90327
Ну это понятно, там ведь результат оператора >> же неявно кастуется к булу через проверку флага потока?
302 1190338
>>90328
Если я правильно понял, то вот ответ на твой вопрос https://stackoverflow.com/questions/38978266/how-can-stdcin-return-a-bool-and-itself-at-the-same-time
303 1190343
Тупые вопросы от вкатывальщика к практикующим крестовикам:
1) Как часто используете в проектах ебанутую идиому SFINAE, сколько бы ни читал никак не могу въехать
2) В каких случаях пишете кастомный аллокатор?
И самый тупой вопрос: никак не могу перейти от написания элементарных заданий из учебника к чему-то более серьезному, проект в голове вроде бы родился, но вот с архитектурой проблемы, как вы проектируете?
304 1190352
>>90343
Я использовал на работе 1 раз по приколу. Просто кусок сделал люто-шаблонным. А так - ты врятли это где-то увидишь в коде.

2. В качестве саморазвития онли. Все, что нужно, уже есть в бусте.

3.Долбись головой об стену, и старайся писать серьезное, как можешь. Это нарабатывается только опытом
305 1190353
>>90343

> 1) Как часто используете в проектах ебанутую идиому SFINAE, сколько бы ни читал никак не могу въехать


Начиная с C++17 заметно меньше, ибо теперь множество кода можно написать с if constexpr. SFINAE использую в основном только для compile-time определения особенностей типа (где стандартные утилиты из type_traits не помогают) и подобного, чтобы потом написать что-то вроде if constexpr(is_yoba_type<T>), где is_yoba_type - SFINAE-функция для проверки типа.
306 1190358
>>90343

> но вот с архитектурой проблемы, как вы проектируете?


Читать книжки по этой теме, посты в блогах/форумах, читать чужой код в похожих проектах (в которых есть похожий функционал)
Ну и самое важное: уметь формулировать задачу конкретно, а не слишком абстрактно

Например, думал себе сделать что-то вроде таск треккера в котором был бы функционал парсинга исходников на предмет TODO/FIXME и прочих комментариев
Сначала тупо решил парсить комменты и смотреть что там в них. Плохой был вариант т.к. много лишней работы.
Потом конечно допёр что мне не нужны все комментарии.
307 1190490
>>86245
DJGPP
308 1190581
>>90102
ctrl-z попробуй
309 1190731
>>90343
1) Часто. Мета-программирование очень популярно в финтехе, ибо оптимизации.
2) Редко. Это сложнее SFINAE и редко нужно.
3) сам хуй научишься. Пробуй, но лучше поработать с кем-то, кто тебя будет носом тыкать. Постепенно наберёшься от него.
310 1191075
На следующей неделе иду на собеседование, меня назначили в команду разработки драйверов, посоветуйте, пожалуйста, что можно почитать, а то я только прикладной софт и писал.
311 1191080
>>91075
Драйверов для чего? А то это такое широкое понятие, что "драйвер" может быть и прикладным ПО.
312 1191103
>>91080
Драйвер протокола под винду для отправки/приёма сетевых пакетов.
314 1191142
>>91132
Спасибо.
315 1191144
>>81867 (OP)
Я тоже драйвероеб. У меня стоит VS2017 и WDK для Win7 в директории C:\WinDDK. Я создал пустой солюшен WDM и написал main.cpp с подключением ntddk.h и точкой входа. Ничего не компилируется. Что надо прописать в настройках проекта кроме инклудов?
316 1191147
>>91144
Ну хоть ошибку конпеляции покажи.
317 1191153
>>91147
Building 'Driver' with toolset 'WindowsKernelModeDriver10.0' and the 'Desktop' target platform.
1>C:\Program Files (x86)\Windows Kits\10\build\WindowsDriver.common.targets(482,5): error MSB6004: Указанное расположение исполняемого файла задачи "C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x86\stampinf.exe" является недопустимым.
qstnmrk.jpg73 Кб, 1920x1440
318 1191580
Привет.
Читал пример объявления класса Х (с полем m), встретил такой конструктор:
X(int i =0) :m{i} { }
Поясните, пожалуйста:
1) зачем =0
2) что такое :m{i}
319 1191586
>>91580
nvm, ответ был через пару параграфов :\
320 1191707
>>91586
Еще и вот так далают :m(i)
321 1191837
>>91580
=0 - значение по умолчанию.
{} - 99% на то что долбоеб какой-то узнал про них и прям решил резко их везде юзать.
а так обычно () круглые скобки используют для инициализации.
2018-05-1802-06-16.png8 Кб, 661x340
322 1191842
Ананасы, в чём я не прав? С хуев он тип вывести не может?
323 1191844
Короче, посоны, ЕОР.
(?:31\.(?:0?[13578]|1[02])\.\d{4})|(?:30\.(?:0?[13456789]|1[012])\.\d{4})|(?:[0-2][0-9]\.(?:0?[1-9]|1[012])\.\d{4})
Это дата в формате dd.mm.yyyy(без проверки на високосные года). Хуле оно так медленно работает? Например, взял я текстовый файл(скопировал статью по истории с вики с датами), весом 120кб, оно там что-то ебошит 4 секунды примерно, и это без всяких проверок!

С другой стороны, нашел на стековерфлоу вот такое выражение примерно для той же задачи:
^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$
Оно работает быстро.

Еще ранее сегодня я ебанулся и написал такое:
((?:(?:(?:(?:\n|\s|^)0?\d)|(?:[12]\d)|(3[01]))[.\-\s](?:(?:0?[13578])|(?:10)|(?:12)|(?:jan)|(?:mar)|(?:may)|(?:jul)|(?:aug)|(?:oct)|(?:dec)|(?:january)|(?:march)|(?:july)|(?:august)|(?:october)|(?:december)|(?:январь)|(?:января)|(?:март)|(?:марта)|(?:май)|(?:мая)|(?:июль)|(?:июля)|(:?август)|(?:августа)|(?:октябрь)|(?:октября)|(?:декабрь)|(?:декабря))[.\-\s]\d{4})|(?:(?:(?:(?:\n|\s|^)0?\d)|(?:[12]\d))[.\-\s]0?2[.\-\s](?:(?:(?:[02468][048]00)|(?:[13579][26]00))|(?:(?:\d{2}[2468][048])|(?:\d{2}0[48])|(?:\d{2}[13579][26])))|(?:(?:(?:(?:\n|\s|^)+0?\d)|(?:1\d)|(?:2[0-8]))[.\-\s]0?2[.\-\s]\d{4}))|(?:(?:(?:(?:\n|\s|^)0?\d)|(?:[12]\d)|(?:30))[.\-\s](?:(?:0?[469])|(?:11))[.\-\s]\d{4}))
Правда, эту хуйню я не закончил(не добавил все месяцы),т.к. протестил на том самом файле весом 120кб и увидил, сколько оно работает.

Помогите, тапками не кидайтесь, я новенький в этом деле. Что я делаю не так(например, в самом верхнем выражении)? Как это можно ускорить?
324 1191845
>>91844

>увидил


Короче, помогите тупому пожалуйста.
325 1191966
>>91844

>Как это можно ускорить?


Вроде в плюсах была какая-то залупа по превращению конкретного регекспа в компайл-тайм код. Не помню как называлась.

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


Есть ли задачи? Не проще ли как диды if( str[2]=='.' ) return str.substr(1,2 и т.д. и т.п?
Тем более что разных пар dd.mm всего 356, засунь в хешмапу, хуле ты.
326 1191980
>>91966

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


Не слышал о таком, спасибо, погуглю.

>Не проще ли как диды


Проще, но так не интересно.
327 1191983
>>91966

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


Ragel? Там не совсем регексп, там пиздец генератор...
Есть boost xpressive, но там в рантайме. Ну а в компайлтайме шаблоном вроде регекспы в дишечке задаются.
328 1192058
329 1192075
Господа программисты, как перевести массив int в массив char?
Например, у меня есть {231, 5, 78, 45, 89, 9, 0, 12}
Надо получить "2315784589012"
Да, я совсем нуб, в гугле не нашел.
111.png5 Кб, 350x170
330 1192083
>>92075
Можно так.
Если нужны именно массивы, можно потом из строки каждый символ добавить в массив(и в начале вместо вектора тоже взять массив).
331 1192087
>>92083

> Можно так.


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


Зачем? Просто union
332 1192122
>>92087
Ты ебобо? Как ему поможет union?
>>92075
Именно в массив (в сишном) или строку/вектор? Ты в тот тред зашел? Потому что в первом случае >>92083. А если имеется в виду сишный массив и работать надо сишными методами (бывают такие ебанутые преподы, если это задание), то там придется чутка поебаться.
333 1192125
>>92122
Не так прочитал.
А как он собрался блять конвертить то что в большем типе? Там известно что числа в интах будут влезать в байт?
334 1192127
>>92125
Нахуя МНЕ конвертировать? to_string - стандартная функция, которая делает всю работу за меня.
Если бы пришлось самому этим заниматься, я бы брал каждое число из массива, получал его цифры остатком от деления на 10, переводил бы их в char(прибавляя значение нуля из ascii таблицы - 48) и записывал в массив char'ов. Наверное, to_string как-то так и делает для одного конкретного числа.
335 1192128
>>92125
у него есть массив {231, 5, 78, 45, 89, 9, 0, 12}
ему нужен массив {'2', '3', '5', '7', '8', '4', '5', '8', '9', '9', '0', '1', '2'}

Со строкой выше анон предложил вариант со строками. В пур сишке это бы делалось так. Объявлялся массив чаров. Последовательно берется каждый инт, объявляется для него промежуточный массив, инт конвертится в массив чаров (деление с остатком, потом + '0', потом это записывается в промежуточный массив, потом этот массив реверсится и копируется в результирующий массив - есть и другие варианты с рекурсией, например или itoa(int), короче каждый изобретает свой велосипед на то она и сишка) и так до победного.

Тут нихуя непонятна постановка задачи.
336 1192184
>>92128

> Тут нихуя непонятна постановка задачи.


Двачую, пусть анон постарается получше объяснить, что ему нужно.
tostring.png11 Кб, 690x472
337 1192210
>>92075
Зацени мой велосипед.
338 1192212
>>92210
Потенциально может упасть, если массива чаров не хватит.
339 1192217
>>92212
Да это почти сишный код. А в сишечке потенциально что угодно может упасть. Можно конечно колхозить через realloc'и, но, во-первых, это медленно, а во-вторых область знаний анона-вопросителя вряд ли простирается до этого момента, если он задает такие вопросы.
340 1192219
>>92210
В общем это не критично, но все таки доебусь со скуки. Нахуя писать auto если тип входных данных известен и нахуя использовать магическое 48 вместо очевидного '0'?
image.png26 Кб, 375x633
341 1192223
>>92219
У него же шаблонный код, поэтому он просто пишет auto вместо чего-то подобного.
342 1192224
>>92223
А насчёт магического 48 согласен, лучше писать просто '0'.
343 1192227
>>92223
>>92224
Хотя частично с тобой согласен, если ему это нужно только для конкретного случая, то можно было даже шаблон не делать.
344 1192228
>>92219

>Нахуя писать auto если тип входных данных известен


Патамушта это модерн C++.

>нахуя использовать магическое 48 вместо очевидного '0'


Да какая разница, 48 это ASCII код цифры 0. И char по сути 8-битный integer, вот и сделал все в интегерах.
345 1192229
А во что обходится использование auto в плане скорости компиляции? Скажем, если юные адепты c++11 засрали им весь код?
346 1192233
>>92228

>Патамушта это модерн C++.


Вообщет патамушта там тип не известен до инстанцирования шаблона.
347 1192250
>>92224
А еще можно было вконце стринга вместо c[pos] = 0 написать c[pos] = '\0' , это то же самое. Эти одиночные кавычки же тупо алиас для интегера, можно даже макро назвать. В конце концов компилятор их в интегер превращает. Я тут старался велосипед свой писал, а вы как изверги до мелочей докапываетесь!
348 1192253
>>92229
Лол, спешите видеть! Вместо исправления говнозовисимостей и перекомпиляции сотни файлов при изменении одной строчки спешит заклеймить auto. Старпер ас ис, используй мост деб
349 1192259
>>92253
Ты на вопрос то ответь. Насколько труднозатратно для компилятора выводить тип?
350 1192260
>>92253
Что такое мост?
351 1192278
>>92223
Тьфу блядь действительно шаблон
352 1192399
>>92260
Шаблон проектирования мост, он же pimpl. Разделение объявления и реализации
353 1192426
>>92399
Ну так это обычные вещи, известные до появления auto засирателей (разделение реализации и объявления, минимальность по включению, указатели вместо объектов, etc...). Как auto то использовать, чтобы не тормозить сборку? int i = 0; auto j = i + 1; норм или не норм?
354 1192468
>>92426
В твоём случае никак не повлияет.
355 1192479
>>91842
remove_pointer_t как вложенный относительно самого шаблона тип не является контекстом вывода.

Тут подробнее:
http://open-std.org/JTC1/SC22/WG21/docs/papers/2016/p0293r0.pdf
356 1192480
>>92468
а в каком повлияет?
357 1192485
Как нормально сделать switch со string
358 1192487
>>92485
Никак. Он для этого не предназначен.
359 1192488
>>92480
Вообще не встречал упоминаний о том что авто замедляет сборку.
360 1192499
>>92480
Вообще если логически подумать, то компилятор в любом случае проверяет соответствие типов слева и справа от знака равенства. Так что навряд ли замедляет. Просто вместо сравнения делается подстановка в зависимости от выражения справа. Поэтому не должно влиять настолько, чтобы это было заметно
361 1192503
>>92487
unordered map
362 1192504
>>92229

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


Очень сильно зависит от конкретного случая. От нулевого оверхеда, вроде auto i = 1, где тайпчекер и так все будет проверять, до теймплейтной пиздецомы вроде эйгена, где на каждом auto будет накапливаться expression template, и в результате тайпчекеру придется ресолвить стоэтажное выражение, где вполне вероятна экспоненциальная сложность от каждого предыдущего auto. В обычных случаях, если не злоупотреблять, больше на читаемость влияет.
363 1192505
>>92503
Не совсем подходит. Если ему нужен именно аналог switch, это значит что все строки известны заранее, а простой unordered map как минимум добавит рантайм оверхеад не просчитывание хэша строк. Лучше всего в данном случае взять какую-нибудь библиотеку с compile-time высчитыванием хэша, к тому же если все строки заранее известны можно сделать идеальное хеширование (т.е. хеши разных строк совпадать не будут), а значит сами строки в бинарнике даже хранить не надо будет.
364 1192507
>>92505
не надо ебать голову и изобретать велосипед там, где можно справиться простыми вещами, которые тяжелее по времени исполнения (в пикосекундах), но в разы сложнее при написании (в часах, а иногда сутках)
365 1192513
>>92507
Самое сложное тут будет написать функцию хэширования, а с C++17 сам АПИ будет выглядеть довольно красиво, как-то так:
https://pastebin.com/CKjAx9G5
366 1192585
>>92503
Я бы тебя к хуям уволил за мап ради свитча.
367 1192617
>>92505
Нахуя хэш-то? В свитче обычно меньше десяти значений, проще и быстрее тупо сравнить в цикле.
368 1192619
>>92513
Что плюсик делает перед лямбдой?
369 1192620
>>92617

> Нахуя хэш-то?


Чтобы не хранить сами строки в бинарнике, очевидно же. Опять таки можно сделать идеальный хеш (например сам хеш будет занимать 48 бит, а оставшиеся 16 бит будут занимать счётчик, увеличивающийся на 1 в случае коллизии), а значит сравнение строк вообще никогда не понадобится.
>>92619
Если лямбда не захватывает значений, то превращает её в указатель на функцию.
370 1192628
>>92620

>превращает её в указатель на функцию.


Нихуясе. А где об этом почитать можно?
371 1192637
>>92620

> например сам хеш будет занимать 48 бит, а оставшиеся 16 бит будут занимать счётчик, увеличивающийся на 1 в случае коллизии


Хотя вру. Придётся делать минимум две таблицы. В первой теблице будут счётчики коллизий (или псевдо-значения, например отрицательные числа будут хешами второй таблицы, а положительные - счётчиками коллизий), а во второй нормальный хеш-мап. Считываем хеш с начальным значением равным нулю, если счётчик коллизий равен нулю, то сразу считываем значение со второй таблицы, если нет, то считаем хэш ещё раз на этот раз с новым начальным значением и затем берём значение со второй таблицы.
>>92628

> А где об этом почитать можно?


А что читать-то? Очередная неочевидная перегрузка оператора. Ещё можно использовать static_cast, но плюсик занимает меньше места и скобки нинужны. https://ideone.com/WGl8nF
372 1192670
>>92620

>Чтобы не хранить сами строки в бинарнике


Тебе все равно придется их там хранить - хэш-таблица хранит значения ключей, по хэшу ищется нужная запись в таблице, по которой потом производится сравнение строк. Так что строки в бинарнике по-любому останутся.
373 1192672
>>92670

> по которой потом производится сравнение строк.


Я выше обисал алгоритм идеального хеширования. Там строки хранить не нужно.
374 1192677
>>92672

>идеального хеширования


Чтобы коллизии считать, тебе все равно исходная строка нужна. Для строк, генерируемых в рантайме такое работать не будет. К тому же идеальный хэш возможен только для строк ограниченной длины. То есть у тебя в программе будет потенциальный баг, когда заматчится неправильное значение. Привет тому, кто это дебажить будет.
375 1192678
>>92677

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


Нут так речь идёт о свитче, а значит все строки заранее известны. Все коллизии можно пересчитать ещё при конпеляции и хранить таблицу коллизий вместо самих строк. Идеальное хеширование по-определению будет работать, только если заранее известны все входные данные.
376 1192682
>>92678

>Нут так речь идёт о свитче, а значит все строки заранее известны


Строка, с которой они будут матчится-то неизвестна. Если она задана на этапе компиляции - вопросов нет, но если генерируется в рантайме, твой свитч превращается в тыкву.
377 1192684
>>92682

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


Хотя да, если сами строки будут генерироваться непонятно откуда, то может произойти бида.
378 1192699
Почаны, взяли джуном на крестах на испытательный срок, но я давно кресты не трогал, а когда трогал кроме заданий из страуструпа ничего не делал, хотя все их прорешал, сейчас есть пару недель пока переезд вот это всё что можно повторить, чтобы совсем не обосраться?
379 1192713
>>92699
А что делать-то будешь хоть?
Вдруг там у тебя будут какие-то йоба-ограничения на стандарт и на функционал?
380 1192717
test
381 1192721
>>92713
Насколько понял юнит тесты писать.Если я правильно понимаю, что такое юниттесты
382 1192722
>>92721
Странно тогда, что с++, а не питон какой-нибудь.
383 1192726
>>92722
Да я сам охуел, я бы лучше на питоне, на нём гораздо больше писал.
384 1192731
>>92722
Как ты собрался тестировать крестовый код на питоне блжад?
385 1192733
>>92731
Так что, может что-то повторить стоит я даже не знаю, я последний раз на С++11 писал, а тут уже 17. Боюсь обосраться.
386 1192737
>>92731
Или норм, объяснят, а там по ходу втянусь, разберусь? Никто же не выгонит меня в первую неделю? Или могут?
387 1192782
>>92737
>>92733
Почитай книжки какие-нибудь про с++ уже после 11 стандарта.
Естественно от тебя в первый день не будут требовать йоба магию на шаблонах.
Но, например, разобраться в стандартной библиотеке. Какие там есть контейнеры, функции какие и тд.
К примеру
http://goalkicker.com/CPlusPlusBook/CPlusPlusNotesForProfessionals.pdf
389 1192895
>>92782
Благодарю.
390 1192900
>>92782

>http://goalkicker.com/CPlusPlusBook/CPlusPlusNotesForProfessionals.pdf


>может что-то повторить стоит


Анон, спасибо, это то, что нужно.
391 1192923
>>92128
>>92184
Короче, вся суть в том, что мне надо зарандомить число на 128 битов в char. И я думал использовать стандартный rand().

И еще очень тупой вопрос - можно ли преобразовать unsigned char
в char*, чтобы все осталось ОК и без лишней возни?

Пишу на С++, но использую чужой код, написанный на C.
392 1192924
>>92923
фикс: unsigned char в char
393 1192926
>>92924
звездочки полетели, короче там везде массивы
394 1192945
>>92805
Не понял инклюдов. Ошибка отображения?
395 1193041
>>92585
Хуево быть тобой, фантазер-увольнятель
396 1193095
>>92923
Если значение больше 175, то нет.
Вообще рекомендую посмотреть, как считает ли твой компилятор тип char - знаковым или беззнаковым, т.е стандарт этого не оговаривает
397 1193101
>>92733
узнай на чем тесты пишут. буст там, что-то еще.. узнай специфику проекта - что он делает глобально, разберись.
сам цпп в тестах тупой как пробка обычно.
398 1193443
>>92699
Охуеть. Я студиозус в ДС1 пилю свою хуйню на гитхабе целыми днями (пизжу, но таки-пилю, пусть не целыми днями) и на работу никуда не берут, а тут тип устроился на кресты, на которых он один только труп страуса и дрочил на предмет заданий. Охуеть.
399 1193456
>>93443
Потому что надо ходить и устраиваться а не сидеть на жопе. Гит это хорошо, но его одного мало.
Сам скоро пойду устраиваться в филиал одной большой американской компании
2-курс
400 1193460
>>93443
Тренируйся проходить собеседования (продавать себя). А гитхаб можешь смело в помойку выкинуть. В начале карьеры работодатели смотрят в основном на потенциал кандидатов.
401 1193467
Какие библиотеки подойдут для геймдева? Не хочу быть юнити-дебилом.
Из очевидных вариантов SDL/SFML + OpenGL, что ещё сюда присобачить?
402 1193469
>>93467
Библиотеку с физикой какой-нибудь.
403 1193472
>>93469
Ну, я хочу некоторую долю велосипедства сохранить, поэтому кое-какой физон сам напишу
404 1193523
>>93467
glm - математика
sdl_image/gli/stb_image - загрузка текстур
Ну а дальше в меру своих навыков можешь реализовывать функционал который нужен
405 1193532
Можно ли за лето выучить C++ для узкой задачи - программирования avr микроконтроллера? Все нужные библиотеки на C++ для подключаемых к микроконтроллеру устройств есть. Мне нужно лишь всё связать воедино и написать логику обработки информации. Навскидку сколько часов в день нужно будет тратить на обучение?
406 1193537
>>93532
А зачем там C++ учить? Всё равно большая часть стандартной библиотеки там не доступна. Лучше учи Си (ну можешь прочитать ещё про классы) и не выёбывайся.
407 1193543
>>93537
Так язык программирования avr - урезанный C++. И библиотеки с расширением .cpp.
Я не выёбываюсь. Просто не очень разбираюсь.
408 1193567
>>93456
А мне тупо не отвечают когда я отправляю письмо в контору.
Пили кулстори про свою подготовку.
409 1193570
>>93460
Попахивает хуитой. Работодатель будет кормить меня в обмен на код. Ему что, похуй как я пишу этот код и он будет проверять мой потенциал задачками на собесах? Если у меня есть потенциал, то я раскрываю его в решении боевых задач, я так думаю.
410 1193573
>>93567
Да просто отослал резюме.
Компания занимается в основном сетевыми адаптерами и написанием дров под них.
В итоге на след. день перезвонили, вот 22 числа пойду на собеседование.
411 1193574
>>93532

>программирования avr микроконтроллера


Для восьмибиток кресты излишни. Там и сишка-то жирновата. Лучше сразу на асме кодить.
412 1193576
>>93467

>что ещё сюда присобачить?


API блендера, чтобы экспортить модельки.
413 1193577
>>93574
На форте. Там можно даже ООП сделать.
414 1193578
>>93573
Красава.
415 1193579
>>93574

>Лучше сразу на асме кодить.


Библиотеки самому написать с нуля тоже? Я не такой программист. Ассемблер слишком слоен для меня.
416 1193581
>>93578
Ага только надо успеть почитать насчёт этих протоколов, NDIS, и остальную хуету вроде WDF и WFP
417 1193587
>>93581
Мне кажется что с таким подходом тебя пошлют на хуй. "Почитать насчет этих протоколов и остальную хуету", лол. Тебе работать с этой хуетой. Главное чтобы собеседовать было некому.
418 1193588
>>93587
Посмотрим, хех.
Всё равно у меня опыта в этой сфере нет, о чём я писал в резюме, но всё равно позвонили же.
419 1193589
>>93587

>с таким подходом


Всё знать невозможно, тем более джуну, важно обучаемость показать и адекватность.
420 1193605
Если в моей программе больше одного файла, то в одном только функции (добавочный файл), а в другом main(главный файл), где я эти функции использую? Нельзя ли вставить файл в проект и выполнить его перед остальными файлами, при этом не вызывая функции из него?
421 1193609
>>93605

>Если в моей программе больше одного файла, то в одном только функции (добавочный файл), а в другом main(главный файл), где я эти функции использую?


У тебя два файла: один с объявлениями функций, полей, вложенных классов, перечислений и прочей хуйни - так называемый заголовочный файл, или header (.h), а второй с реализацией всей этой хуйни.

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


Что сделать? Выполнение программы в плюсах начинается и заканчивается в main. А чтобы пользоваться твоими файлами, тебе надо подключить хэдэры в main, или один хэдэр, а он пускай другие подключает.
422 1193613
>>93609
Кажется, задаю тупые вопросы.
У меня два .срp файла, в одном пишу функции, в другом сперва объявляю их, потом вызываю. Функций мало, поэтому в .h файл ничего выносить не стал. Две функции main не сделать, так?
423 1193619
>>93613
Ты можешь хоть все функции в одном файле писать. При запуске с++ кода операционная система вызывает функцию main. Соответственно, если у тебя туева хуча функции написано вне мейна, а в мейне ты их не вызываешь, то вызываться они не будут вовсе.
Надеюсь ты это имел в виду.
424 1193620
>>93619
Под вне мейна я подразумеваю всякие обычные функции, которые находятся в области видимости файла/класса, а не какие-нибудь лямбда-выражения, функторы, который можно прямо внутри функции объявлять.
425 1193628
>>93619
У меня один файл рисует фрейм и обрабатывает действия, в функцию это не вынести, а майна в привычном понимании там нет, только эвенты и их код.
426 1193633
>>93628

> майна в привычном понимании там нет, только эвенты и их код.


Event loop в любом случае находится в мейне, так что не надо тут врать нам.
427 1193635
>>93589
Ни хуя себе. Вакансия "Программист C++, опыт работы 1-3 года", ты приходишь весь такой адекватный, тебе дают работу. Так?
428 1193636
>>93635
Если у тебя нет опыта, но ты идёшь на объявление, где опыт 1-3 года, то ты где-то ошибся.
429 1193639
>>93636
На C++ нет никаких вакансий без опыта.
Я листаю hh по Москве, и единственная вакансия джуна, которую я пока что увидел - это Коломна, непонятно как попавшая в выдачу.
430 1193641
>>93639
Забыл добавить, переключаюсь в "Опыт работы -> Без опыта" - заебись, первые двадцать вакансий "Опыт работы с X от 2 лет, опыт работы 3-6 лет, Senior Software Blahblahblah".
431 1193642
>>93639

>На C++ нет никаких вакансий без опыта.


Есть.
432 1193646
>>93642
Хотелось бы пруфы трёх вакансий в Москве без опыта.
434 1193652
>>93650
Я попросил пруфы трёх вакансий в Москве без опыта
, а не ссылку на выдачу, про которую я сказал пять минут назад. Твоя (а по факту моя) ссылка ведет на "Опыт не менее двух лет; опыт CUDA" и прочую парашу.
435 1193653
>>93650

>Написание программ для управления процессом фото съёмки с применением промышленных камер.


>Под руководством ведущих разработчиков - работа над проектами, связанными с банковским оборудованием.


>Ускорение и оптимизация алгоритмов, написанных на С/С++ или Matlab (эффективная реализация на GPU с использованием CUDA или OpenCL).


>Опыт разработки на CUDA. Знание С++11 (особенно concurrency). Уверенное программирование на С++, STL (опыт не менее 2-х лет).


Это не вакансии для новичков, это фирмы без денег.
436 1193654
>>93652

>Опыт не менее двух лет


>Отличное знание С++, STL (опыт не менее 2-х лет)


>Требуемый опыт работы: не требуется


Это опыт программирования, а не опыт работы.
437 1193657
>>93654
Ты пытаешься троллить? В этой же вакансии на которую ты ссылаешься, по тексту далее:
https://hh.ru/vacancy/25606305?query=разработчик c++
"пыт написания программ для управления процессом съёмки с использованием промышленных камер (например, камеры Basler, Автоматическое управление экспозицией, Exposure control, Gain)."
Тут явно речь не об "опыте программирования", блядь. Угу, студиозусы через одного по приколу пишут софт для камер Basler и т.д.
438 1193659
>>93657
Почему это? Нет, не троллю. Это твоя дипломная могла быть, например.
439 1193662
>>93659
Угу, я покупаю весь необходимый обвес, год пишу эту дипломную, затем захожу на Hh - вакансия закрыта. Доброе утро.
Не пизди, что не троллишь. Требования, описанные в вакансии, неприменимы к студенту. Тут же фактически требуется знать относительно узкую предметную область. То есть пришел на работу и сразу хуяришь набело нужный софт для конкретных каких-то камер. Джуна они ищут, прости господи.
440 1193664
>>93662
Ты какой-то дурак, ты хочешь, чтобы тебя взяли работать, платили тебе деньги и при этом ты нихуя не умел.
441 1193665
>>93664

>Всё знать невозможно, тем более джуну, важно обучаемость показать и адекватность.


Это твои слова или тот анон куда-то съебал, и ты решил поотвечать за него? Ты (вы) уж определись (-тесь), надо ли задрачивать гитхаб или ходить по собеседованиям (ну я пока что делаю и то и другое), знать предметную область или чисто плюсы с stl. Я студент, блядь, я не могу по выпуску из своей шараги знать технологию производства говяжьих анусов, но я могу ей научиться. Кто может меня взять на работу без опыта, чтобы я (без шуток) вникал в эту самую область и пилил свой говнокод?
442 1193668
>>93665
Я это к тому, что "обучаемость и одыкватность" разбиваются об:

>Опыт написания программ для управления процессом съёмки с использованием промышленных камер (например, камеры Basler, Автоматическое управление экспозицией, Exposure control, Gain).

443 1193707
>>93668
>>93665
Ладно, сдаюсь, ты меня подловил.
444 1193786
>>93664
https://career.ru/vacancy/23914795?query=разработчик c++ вот это вакансия без опыта (вернее на нее похожа).

Хуета про камеры - это типичный ооо вектор (особенно строчка про исторический центр Москвы порадовала - вектор векторный)
445 1194020
Сап. Вот есть игра Connect-4 на MVC. К основному классу игры со всей логикой я подключаю классы ViewConsole и PlayerConsole - это кагбэ вид и контроллер. ViewConsole отображает игровое поле в stdout консольки (стоит subsystem:console), PlayerConsole читает ходы из stdin той же консольки, я ввожу их с клавиатуры последовательно за обоих игроков. В конечном итоге я хочу дописать класс ViewQtWindow, чтобы играть не из консоли а из окошка. Только я одного не учел - PlayerConsole по-прежнему читает из stdin, а не из кьютовых формочек. Да и с консолью непонятно, линкер же заточен на одну subsystem, чтобы оставить классы прежними, придется проверять, где игра до того как включается вид - в консоли или окошке, и если окошке, то пердолиться со включением консоли, а если в консоли - то с включением окошка.
Короче, пора перепиливать всё нахуй не под MVC, а под M(VC), чтобы класс игрока включал в себя и ввод и вывод? Или есть еще надежда на спасение и я не настолько объебался в проектировании?
446 1194048
>>93665
Без опыта наверно только по знакомству сможешь устроиться на такую работу.
447 1194054
>>94020

Пиздец, ты ж не этерпрайзный опердень пишешь.

https://habr.com/post/343778/
448 1194277
Есть код, который вывод список файлов и директорий в текущей папке

int main() {
setlocale(LC_ALL, "rus");
WIN32_FIND_DATA f;
HANDLE hf;
hf = FindFirstFile("./", &f);
if (hf != INVALID_HANDLE_VALUE) {
do {
puts(f.cFileName);
} while (FindNextFile(hf, &f) != 0);
FindClose(hf);
}
Что сделать чтобы он этот список ещё и в файл сохранял?
Пробовал обычным дедовским способом file<<f.cFilename дак он мне туда вместо списка выводит
targetver.h* не ебу что это вообще такое
449 1194278
>>94277
блядь почему код так криво вставился
450 1194280
>>94278
Потому что надо было вставить ссылку на код, а не сам код.
451 1194290
>>94280
в первый раз на доске, мискузи
452 1194293
>>94290
Хули шапку прикрепленного треда не прочитал?
453 1194298
>>94293
многабукафф
454 1194395
>>94277
Гугли dirent.h, там попроще работа с файлами - когда-то правил простую прогу для вывода списка файлов в папке, разобрался быстро
Можешь кинуть сюда свою почту, но не обещаю, что откопаю файл с кодом
455 1194401
>>94395

> Гугли dirent.h, там попроще работа с файлами


Зачем что-то гуглить, если давно есть стандарт для работы с файлами? Пусть изучает std::filesystem и не ебёт мозг. Полностью поддерживается в VS 2017 15.7 - последней (на данный момент) стабильной версии вижуал студии.
456 1194415
>>94401
Да, ты прав
Я-то ему сишную библиотеку посоветовал, а про плюсовый filesystem не знал сам
457 1194425
>>94401

>давно есть стандарт для работы с файлами


Так давно, что пиздец.
Сколько лет он есть? 30? 40? 50?
458 1194428
>>94425
Год уже есть. Если бы это был жаваскрипт, то уже успело бы смениться двадцать фреймворком и три принципиально новых подходов к программированию.
459 1194435
>>94428

>Год уже есть.


https://www.iso.org/standard/68564.html ISO/IEC 14882:2017
Publication date : 2017-12
460 1194542
Аноны, как проходят собеседования? У меня пиздец, почти паника, иду первый раз.
Что обычно спрашивают на что обращают внимание.
461 1194647
>>94542
Я не программист, но некоторые моменты скажу. Скорее всего там будет такой человек, который будет анализировать твоё поведение в обществе и коллективе. Не рассказывай ничего такого, что может тебя показать необщительным и зажатым человеком.
462 1194658
>>94647
Хорошо, попробую, спасибо за совет.
463 1194665
>>94647

>Я не программист


Что ты тут вообще делаешь?
464 1194674
>>94665
Собираюсь остановиться программистом конечно же.
465 1194675
Пацаны, расскажите, если ваш байтострел такой охуенный, то зачем

UCLASS()
class AMyActor : public AActor
{
GENERATED_BODY()

public:
// Sets default values for this actor's properties
AMyActor();

// Called every frame
virtual void Tick( float DeltaSeconds ) override;

protected:
// Called when the game starts or when spawned
virtual void BeginPlay() override;
};

А?
466 1194676
>>94674

>остановиться

467 1194687
>>94675
Что зачем?
468 1194689
>>94687
UCLASS()
GENERATED_BODY()
469 1194694
>>94689
Макросы
470 1194937
>>94675

>Пацаны, расскажите, если ваш байтострел такой охуенный, то зачем


Макросы? Это часть охуенного языка. В чём проблема?
13824386516068.jpg47 Кб, 600x400
471 1195085
Антоша, подкинь статью про наследование классов. Чтобы понятно было разжёвано. Я прост запутался у Липмана как то хуёво расписано, да и заебал он уже своей хуйнёй про ебучий ,блядь книжный магазин, со скидками. Пиздец ну зачем такую сука скучную хуйню выбирать для примеров. ISBN на хуй.
Приват там всякий протектед и ебля с друзьями.
Асло, не сумел на скомпилить некоторые либы на минГВ, прост компиляция обрывалась с ошибками и хуй его знает в чём дело. В итоге поставил пингвина порядком подизъёбся с ним недели две, но вся хуйня успешно работает. Насколько полезен вреден/линукс для изучения крестов и Си? Не впустую ли я трачу время читая мануалы?
472 1195135
>>95085
Ты впустую тратишь время изучая кресты
473 1195136
>>95085
Пердачую этого >>95135
Причины аж две - во-первых перейди на язык с ООП, реализованным без киллер-фич вроде дружественных функций и множественного наследования, а во-вторых ты серьезно не осилил всю эту хуйню про ООП? Ну Лафоре штоле прочитай, у него есть книга про ООП. Хотя я когда на втором курсе шараги добрался до нее, мне было очевидно 90% хуйни что там написана, и 80% я умел написать руками сразу и набело.
474 1195153
>>95136 Липман прост материал подаёт оче последовательно и ни разу не использовал хоть какой нибудь графики для облегчения понимания. Я реально просто запутался, возвращаться к книге после перерыва сложно, там все примеры взаимосвязаны. И в довесок перевод не очень, функции класса вместо методов и прочие неприятные мелочи. Порой такая тавтология получается.

А чоу, френды и множественное наследования разве только на крестах есть? За наводку на Лафоре спасибо.
475 1195257
Какая IDE имеет функцию форматирования кода? Лень самому следить за единством оформления кода.
476 1195267
>>95257
Попробуй cline
477 1195314
>>95257
Visual Studio (2017) Ctrl + K, Ctrl + D
478 1195322
>>95257
NetBeans.
479 1195544
>>95257
Наверное любая, потому что этим занимается не ide а посторонние инструменты - astyle, ckang formatter и так далее. К креатору точно подключаются
480 1195569
>>93613
Представь, идёшь ты по дороге, а впереди развилка с надписями. Направо - Москва, Налево - Москва. Тебе это введёт в заблуждение? Так вот, компилятор тоже охуеет.
481 1195656
Надо за неделю написать курсач. Задание -
"Разработка информационно-поисковой системы «Деканат»
Для хранения информации использовать файл. Функционал программы:
1) добавление информации;
2) удаление информации;
3) редактирование информации;
4) поиск информации по заданным критериям."
При написании использовать классы и другую ООП хуйню.
Какие книжечки/статьи/сайтики покурить?
482 1195661
>>95656
LibXML кури.
По поводу классов — быстрее всего Трей Нэш, учебник по C# 2010 года.
483 1195664
>>95656

>за неделю написать


>C++


Ебу дал?
484 1195665
>>95664
Ну а хули делать
485 1195670
>>95661
Разреши вопрос, зачем читать книжечку по C#, если мне нужны плюсы?
486 1195684
>>95670
Разрешил.
487 1195689
>>95684
А ответишь?
488 1195695
>>95689
И ещё как!
Ты же спрашивал книгу по классам и ООП, а не по языку программирования. По языку — это нужен Стенли Липпман, но вот у него-то как раз совсем и не разобрано ООП, не хватило места, наверное. Тысяча страниц...
489 1195696
>>95656

> Функционал программы


А каким образом идут запросы-то? CLI? Или какой-нибудь rest-api?
490 1195697
>>95656
Тут нужна четырехслойная архитектура бизнес-приложения (уровень бизнеса, сценариев, интерфейсов и инфраструктуры). Описываешь сущности на уровне бизнеса, описываешь сценарии работы пользователя с сущностями на уровне сценариев, интерфейсы вызывают активность в твоем приложении, а в инфраструктуре хоронишь всякий убогий вырвиглазный низкоуровневый пиздец.
491 1195699
>>95696
Не ебу, что это
492 1195700
>>95697
Что за четырехслойная архитектура? Где почитать?
493 1195702
>>95699
CLI - консолька. rest - web-сервис (хотя можно сделать и на websocket если нужен пирформанс и получение событий от сервера без геморроя).
494 1195704
>>95700
https://habr.com/post/271157/

Это надо долго и внимательно раскуривать, разрабатывая свою архитектуру.
495 1195705
>>95702
Короче, насколько я понял, поху как это реализовано будет.
496 1195706
>>95704
Да ему это нахуй не нужно. Пусть создаст простые классы для хранения инфы (надеюсь хоть типы хранимых данных ему известны). Сделает реализацию сериализации/десериализации. В файл будут записываться классы.

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

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

Если типы данных неизвестны и могут меняться при работе программы, то только могу предложить сделать недо-документоориентированную БД, а данные хранить и получать от пользователя в виде JSON.
497 1195712
>>95706
Шот сложно пизда.
Нахуя я на программиста поступал?
498 1195720
>>95712
Ну, вариант с JSON не такой уж и сложный. Благо библиотек (в том числе header-only) дохуя. Можно сделать няшный CLI, вроде

create 15:{"name": "Хуй Петрович", "age": 43}
remove "@id"=15
remove "age" = 43
update 15:{"dick_size": 12}
delete "@id"=15

get "@id"=15

Для create или update синтаксис будет такой

(create|update) ID:JSON

обе функции возвращают id объекта или ошибку, если используется поле с именем "@id" (в нём программа хранить id и его использовать нельзя) или в случае create если объект с id уже существует.

remove, delete, get имеют схожий синтаксис. Можешь использовать элементарные логические операции + несколько встроенных функций. Например

get contains("name", "иван") && "age" > 34

возвратить все объекты имя которых содержит "иван" и возраст больше 34.
499 1195727
>>95720
Нихуя не стало понятнее, но все равно спасибо.
В пизду, перепоступать буду нахуй
500 1195759
>>95656

> Надо за неделю написать курсач. Задание -


> "Разработка информационно-поисковой системы «Деканат»


> Для хранения информации использовать файл. Функционал программы:


> 1) добавление информации;


> 2) удаление информации;


> 3) редактирование информации;


> 4) поиск информации по заданным критериям."


Блокнот что ли?
501 1195787
>>95656
Структуры, сортировка структур, хранение структур в списке, удаление из списка, поиск в списке по критериям, всё это обёрнутое в классы. Эта ебанина на любом С-языке пишется за час под пиво. Не слушай всех этих мудил которые пишут тебе хуйню и записывай подводящие задачи.
Решаешь эти задачи и приступаешь сразу к написанию своего курсачеговнокода, никакие статьи с книгами тебе не понадобятся.

Итак, задачи:
1) Объявить структуру с парой строк и парой чисел, спросить у пользователя число структур, создать массив структур заданной длины, заполнить его вводом с клавиатуры. Далее спросить у пользователя строку и пройтись по заполненному массиву. Если такая строка найдется в поле одной из структур (скажем поле string name), то вывести номер этой структуры и все ее поля.
2) Всё то же самое, только не массив структур, а список. Пользователь нон-стоп вводит поля структур (заполняет структуру-буфер, которую ты каждую итерацию присоединяешь к имеющемуся списку), а когда он вводит что-то вроде "$exit" - ты переходишь к поиску по строке, как в предыдущем задании.
3) Всё то же самое, только кроме вывода на экран найденной структуры ты ее удаляешь. Из списка.
4) Всё то же самое, только поиск по строке, вывод на экран и удаление - функции.
5) Всё то же самое, только деканат и список - классы, а вся хуйня которую они делают - методы, чтобы можно было сделать так:
db.fill();
db.removeByCriteria(db.findByCriteria());
и в этих двух строках в main умещался весь ход работы.

Не благодари.
2)
502 1195915
>>95656
Пиши.
503 1196136
>>91075
>>94542
Меня взяли, держу в курсе.
504 1196214
Итак, я веб-макака, перекатился в этот ваш ДС2. Полгода тут работаю в модном/молодежном стартапе, по вечерам пишу хелоуворды на плюсах. Стартап мой вот вот испустит последний вздох, и надо бы уже искать что то новое, но сука, никто не хочет даже приглашать меня на собеседования. Что делать анонимас? Может попробовать поучавствовать в каком нибудь опесорсном гвонище, или попробовать наговнокодить что нибудь большое в качестве пет проекта. Думаю пару месяцев текущий работодатель еще протянет. Мне 29, нет вышки и разговорного английского, при этом хочу прогроммировать всякие сложные штуки типа распознования ихображений и нейронных сетей, что предпринять в такой ситуации?
505 1196215
>>96214
И да, при этом на отклики по пхп/пайтон-макакингу сыпятся тонны приглашений, а на крестах хуй кто почесался. Хули то так сложно блять сюда вкатится?
506 1196256
>>96214

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


Учиться этим вещам и делать полезные йобы.
507 1196318
>>96214
А зачем оно тебе надо? Вакансий меньше, чем на вёб-макакинг. Зарплаты такие же или меньше. Если ты к 30 годам не смог в английский и образование, то видимо ты не очень умный и "сложные штуки" не для тебя.
508 1196374
>>93456
>>96215
>>94048
>>93707

Вот мои посты:
>>93587
>>93635
>>93639
>>93641
>>93646
>>93652
>>93657
>>93662
>>93665
>>93668
>>94020

Короче, вы поняли какой. И я устроился плюсоводом, лол. В понедельник на работу.
509 1196379
>>96374
Надеюсь ты не к нам устроился, лол.
510 1196390
>>96379
К вам.
511 1196653

> О: Связанные с софтом вопросы обсуждаются в /s/. Исключение - IDE и прочие инструменты программирования, которые можно обсудить в тредах соответствующих языков.


Ладно, спрошу тут. Перекатился на линух, какой ИДЕ лучше будет? Под виндой юзал Dev C++, вот мне бы такое же, простое и с функционалом. Гуглил, да. Но мне интересен живой опыт, а не описания.
512 1196757
>>96653
Никакой, берешь любой текстовый редактор, прикручиваешь к нему плагин+подсветку на основе элементов установленного компилятора, и работаешь.
514 1197007
>>96653
>>96757
Говноедов полон тред. Текстовый редактор блять, линукс нахуй. Дали им вижуал студию, не хочу вижуал студию, хочу говно жрать. И это программисты, тьфу блять
515 1197012
>>97007
А нахуй нужна IDE в плюсах? Всё равно при использовании шаблонов большая часть фич IDE не работает.
516 1197079
>>96374

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


Ну видишь, а ты переживал.
>>92699-кун
Ебать я охуел съёмную хату искать, везде наёбсики.
517 1197105
>>97012
в laba1.cpp да, не нужна. В продакшене нужна.
518 1198228
Есть файл с псевдографикой, хочу написаиь конвертер в эксель. Так как там всякие ебучие таблички, т просто так не сохраняется. Есть готовые или интересные решения на плюсах?
519 1198254
>>97007
Толсто.
Тред утонул или удален.
Это копия, сохраненная 25 июля 2018 года.

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

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