М.Двач / Программирование

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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

32 Кб, 600x400
C++ №70 30 апр, 01:21 1181867 В конец треда | Веб

Вместо шапки — https://github.com/sosachbot/cppthreadhat/wiki
Ответы на все вопросы:
- http://en.cppreference.com/w/
- http://www.cplusplus.com/reference/
Прошлый: >>1169708 (OP)

Ответы839038538088643888238892191144

30 апр, 01:31 2 1181872

Как скачать файл одной командой, без winapi и тяжёлых библиотек типа curl, wget. Есть ли специально заточенная под это библиотека?

Ответы81876818798205186777

30 апр, 01:44 3 1181876

>>1181872
Писать самому. Или отправить команду на скачку через system();

30 апр, 01:54 4 1181879

>>1181872
http://cpp-netlib.org/

Ответы81883

30 апр, 02:18 5 1181883

>>1181879
ofs << static_cast<std::string>(body(response)) << std::endl;
Я должен быть сеньором чтоб эту строчку понять? Из примера simple wget

Ответы8189181899

30 апр, 02:43 6 1181891

>>1181883
Даже не старайся.

Ответы81893

30 апр, 02:45 7 1181893

>>1181891
Постараюсь
Я ее впишу, что она делает мне похуй

30 апр, 03:02 8 1181899

>>1181883
В этой строчки ничего сложного нет. Ты видимо C++ мало учил или наверное не понимаешь как устроен http.

Ответы8190081986

30 апр, 03:05 9 1181900

>>1181899
> не понимаешь как устроен http
А то ты RFC вызубрил и сходу можешь назвать ключевые отличия HTTP/1.0 от HTTP/1.1

Ответы81901

30 апр, 03:07 10 1181901

>>1181900
Да.

Ответы81902

30 апр, 03:11 11 1181902

>>1181901
Молодец

30 апр, 12:41 12 1181986

>>1181899
Видимо ты прав
Пойду учить

30 апр, 14:33 13 1182031

Ди наху э

30 апр, 15:11 14 1182051

>>1181872
Это curl то тяжёлый, блеать?
Ну ок, пиши сам. Если линупс - всего то, создаешь клиентский сокет, биндишься к нужному адресу (если адреса нет - то ещё ресолвишь его, коннектишься, составляешь ручками GET запрос, ручками парсишь ответ, сохраняешь данные. Если там https то ты соснул, руками это не написать, а openssl таки тяжёлая.

30 апр, 15:26 15 1182056

Сап. Есть такая строчка в мануале по OpenCV:
CVAPI(IplImage) cvQueryFrame( CvCapture capture );
Таки CVAPI - это просто тип указание? При подстановке в код не конпелируется.

Ответы82142

30 апр, 17:47 16 1182142

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

30 апр, 21:20 17 1182273

FTLK или wxWidgets? Или какая нибудь другая легковесная библеотека для графики? Или сразу нырнуть в бездну шинАпи?
Чего поставить начинающему чтобы оно потом могло пригодиться и не испортило вкуса.
Из задач - тетрисы там всякие графики хуяфики.

Ответы82276823208234582364

30 апр, 21:21 18 1182276

>>1182273
C#

30 апр, 22:19 19 1182320

>>1182273
Qt

30 апр, 23:15 20 1182345

>>1182273
временами по работе приходится GUI на крестах пилить. Я ибав, если честно( особенно, если требуют WinAPI), однако, знаешь, навострился, а так удобнее qt или embarcadero Ничего не видел.

1 мая, 00:11 21 1182364

>>1182273
Если чистый 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

1 мая, 01:38 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;
}

1 мая, 01:38 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;
}

Показать весь текст
Ответы823848258684131

1 мая, 01:46 23 1182384

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

1 мая, 14:26 24 1182571

Зачем нужно xvalue?

1 мая, 14:53 25 1182586

>>1182382
>getFile(std::string url)
Где ссылки блять, питуз?

Ответы82591

1 мая, 14:57 26 1182591

>>1182586
А какая тут разница? Ну вызовется лишний move-конструктор (начиная с C++17 даже он вызываться не будет), делов-то.

1 мая, 16:18 27 1182631

Есть один виндоус сервер на котором должны проводится тесты гуя.
Пока только начал над этим работать, написал простую программку с SetForegroundWindow и SendInput из Windows.h

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

Что делать? Есть ли что-то еще более низкоуровневое для отправки нажатий клавиш в окно? Мышь не нужна.

1 мая, 16:46 28 1182646

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

Ответы8268682911

1 мая, 17:20 29 1182686

>>1182646
Что за процессор?

Ответы82692

1 мая, 17:28 30 1182692

>>1182686

Rocket-chip на архитектуре RISC-V.

2 мая, 01:12 31 1182911

>>1182646
Убедись, что у тебя адреса основной программы не пересекаются с адресами программы из ПЗУ, а потом смело перекатывай ПЗУшку в память и вызывай её по захардкоженным адресам, скастованным в указатель на функцию. Хидер с адресами генерируй автоматически из map-файла, создаваемого линкером при компиляции кода ПЗУшки (зависит от того, какой компилятор используешь). Если в оперативку всё не влезает, то опять бери map-файл и генерируй из него регионы памяти, которые можно подгружать отдельно.

Ответы82971

2 мая, 09:01 32 1182971

>>1182911

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

Ответы83083

2 мая, 13:11 33 1183083

>>1182971
Почему всего проекта-то? Собирай бинарник для ПЗУшки первым, для остальной программы вторым. Хотя если есть возможность объединить код, то всё проще - читай мануал по ld, раздел Memory Layout, и отдельно про раздел SECTIONS. Линкер позволяет рассовать .o-шки по отдельным секциям, а секции - по заданным адресам. Потом просто разрежешь готовый бинарник на части и после загрузки недостающих частей в оперативку он будет работать как единое целое. Это примерно то, что ты имел ввиду когда говорил про оверлей, но оверлей - это такая устаревшая досовская терминология, сейчас это слово означает пересекающиеся адресные пространства.

2 мая, 17:11 34 1183206

Есть программа в 500 строчек на go. Стоит ли её переписывать на c++? Хотелось бы добавить пару функций. А прежний разработчик сдох

Ответы84029

2 мая, 19:55 35 1183264

Почему вы до сих пор не перекатились на Rust? Работу в расчёт не берём.

Ответы83343833458343283433

2 мая, 22:33 36 1183343

>>1183264
Менять одни костыли на другие?

2 мая, 22:35 37 1183345

>>1183264
Зачем нужен раст, когда есть D?

Ответы83370

2 мая, 23:13 38 1183370

>>1183345
Затем, что GC не нужен.

Ответы83454

3 мая, 00:04 39 1183432

>>1183264
Потому-что я работаю на С++
/thread

Ответы83466

3 мая, 00:05 40 1183433

>>1183264
Все более или менее приличные проекты, написанные на нём за 8 лет, влезли в 30 строк википедии. На hh целых 42 вакансии с потолком в 4к в москвабаде. Зачем вкатываться в такое дно?

3 мая, 00:17 41 1183441

Какую вторую книжку читать после страуструпа?

Ответы83460

3 мая, 00:35 42 1183454

>>1183370
Не нужен - не используй, @nogc в помощь

3 мая, 00:45 43 1183460

>>1183441
Липпман, Майерс

Ответы83503

3 мая, 00:50 44 1183466

>>1183432
>/thread
Питух?

Ответы83576

3 мая, 02:47 45 1183503

>>1183460
Сколько часов уйдет на осиливание?

3 мая, 02:57 46 1183504

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

Ответы835668360483798

3 мая, 10:40 47 1183566

>>1183504
Мастера в своём деле, в левой руке "Hello, world!", в правой сортировка пузырьком.

Ответы84056

3 мая, 11:49 48 1183576

>>1183466
да

3 мая, 12:29 49 1183604

>>1183504
Пишу на работе виртуализацию ФС. Серьезно достаточно.

Ответы83853

3 мая, 18:56 50 1183798

>>1183504
На одном языке серьёзных вещей уже давно не делают.

Ответы84154

3 мая, 20:15 51 1183853

>>1183604
какая зп? дс?

Ответы84269

3 мая, 21:10 52 1183903

>>1181867 (OP)
Попробую спросить в вашем треде. Часто ли встречаются лексичекие анализаторы с страшными и нечитаемыми таблицами переходов? Я видел такое только в теории, а на практике пока встречался только с простыми анализаторами на ветвлениях и без таблиц. Зачем тогда вообще рисовать эти автоматы, вычислять, составлять таблицы?

Ответы8392383952

3 мая, 21:37 53 1183923

>>1183903
Извини, что? Лексеры же тридцать лет уже пишут на dsl-ах с регулярками. Бывают парсеры с заданными таблицей автоматами, но только в редких случаях, типа разбора ебанутого синтаксиса Си с кучей исключений. Встречается это почти исключительно в больших проектах, оптимизированных по самое небалуй.

Ответы83935

3 мая, 21:51 54 1183935

>>1183923
Я не разбираюсь и не хочу наговорить лишнего, но мне бы очень хотелось научиться писать парсеры и интерпретаторы/компиляторы. Скачал книжку с драконами на обложке, а там такая адская жесть, что я дропнул в самом начале главы про парсеры. Как раз много рассказывается про конечные автоматы в лексическом анализе, но все это без примеров и нихуя не понятно в итоге. Как вкатиться вообще в это дело? Посоветуй инфы или книжек для простых смертных, будь другом

Ответы839428394784182

3 мая, 22:01 55 1183942

>>1183935
Поиграйся с генераторами парсеров на каком-нибудь динамическом языке: жс, петоне или пыхе. У тех, которые хорошие, есть туториалы чтобы вкатиться, а там экспериментируй и смотри на результаты. Гугли их по запросу "имяязыка parser generator". На жс, например. есть pegjs.org с коротким туториалом. Но если начнешь лепить конпелятор в бинарники, Книга дракона вообще самая годная для начинающих. Хотя можешь сделать просто транслятор из исходника в исходник, это гораздо проще, достаточно просто в несколько проходов пройтись прямо по созданному парсер-генератором дереву и выдать эквивалентный код на другом языке.

Ответы84034

3 мая, 22:09 56 1183947

>>1183935
Свой компилятор собрался писать? Для этого тебе нужен IQ 150+

Ответы84034

3 мая, 22:16 57 1183952

>>1183903
Хуй знает, мы на работке для парсеров-шмарсеров ragel используем. Разве что ебучий минус - хз как к этой хуйне подсветку синтаксиса написать чтобы в ide красной хуйней не заебывало.

Ответы84034

4 мая, 00:27 58 1184029

>>1183206
bump
вот сам файл если кому то не лень будет чекнуть https://github.com/superhacker777/hikka/blob/master/src/hikka.go

Ответы84032

4 мая, 00:37 59 1184032

>>1184029
Помнится первая версия этой проги была как раз на с++ написано.
Yoba кажется называлась, лол.

Ответы84038

4 мая, 00:38 60 1184034

>>1183942
Спасибо. Я тут нашел цикл простеньких статей для ньюфагов, попробую начать с них. А книга с драконами все равно очень сложная, хоть ее все и советуют для новичков.
>>1183947
Нет, просто хочется разобраться в их устройстве и не чувстовать себя инвалидом в мире программирования.
>>1183952
А ты понимаешь принцип работы этой программы?

Ответы84035

4 мая, 00:40 61 1184035

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

4 мая, 00:48 62 1184038

>>1184032
Что-то не гуглится, можешь более точно вспомнить?

Ответы8403984136

4 мая, 00:50 63 1184039

>>1184038
https://lenta.ru/articles/2016/05/12/haclercamera/

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

4 мая, 02:25 64 1184056

>>1183566
Посмеялся, спасибо, крестовой анон.

4 мая, 11:19 65 1184131

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

4 мая, 11:19 65 1184131

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

Показать весь текст
Ответы84193

4 мая, 11:41 66 1184136

>>1184038
https://github.com/superhacker777/ivms-bf
В том же репозитории вот это есть с пометкой
>UPD: Currently abandoned, rewritten in Go

Ответы84181

4 мая, 12:56 67 1184154

>>1183798
Ну , как сказать, я вот не считаю всякие кути шляпы отдельным языком от плюсов, а они позволяют написать ВСЁ.

Ответы84220

4 мая, 14:39 68 1184181

>>1184136
Так хуле мне делать, на каком языке форк делать?

Ответы84186

4 мая, 14:40 69 1184182

>>1183935
Начни с написания простого форта на асме, дальше оно само пойдет.

4 мая, 15:06 70 1184186

>>1184181
Блять, ты не можешь добавить функционал в c++ версию или что?

4 мая, 15:23 71 1184193

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

4 мая, 16:13 72 1184220

>>1184154
Если тебе захочется нормальную графику или вычисления на gpu, то придётся осваивать шейдерные языки. Тот же кути в качестве одного из инструментов даёт тебе QML.
А в целом экономически неоправданно всё на c++ писать. Ту же автоматизацию сборки и тестирования проекта намного быстрее и проще написать на python (считай дешевле и надёжнее).

Ответы84248

4 мая, 18:05 73 1184248

>>1184220
>то придётся осваивать шейдерные языки
Шейдеры и opencl - это сишка, куда - С++.

Ответы84273

4 мая, 19:09 74 1184269

>>1183853
270к чистыми, ДС

4 мая, 19:47 75 1184273

>>1184248
Наркоман штоле? Шейдерные языки GLSL, HLSL это никакая не сишка и уж тем более не C++. Синтаксис похож, но этим всё и ограничивается (указателей нет, ссылок нет, встроенные типы матриц и векторов, swizzle оператор, динамического выделения памяти напрямую нет, нет рекурсии и ещё сотни отличий).
OpenCL C тоже основан на сишке и тоже её стандарт переопределяет.
Заимствование синтаксиса не делает Java наследником C++.

Ответы84342

4 мая, 20:43 76 1184289

Хочу подзаработать на удалёнке, тыщ 30, нужны для апгрейда ноута.
Скилы:
Англицкий:
письменный - ок
на слух - более менее
говорение - летмиспикфроммайхарт

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

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

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

Ответы8429084293

4 мая, 20:45 77 1184290

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

Ответы84291

4 мая, 20:48 78 1184291

>>1184290
UPD
inb4: дворник, фронтенд

4 мая, 20:54 79 1184293

>>1184289
Есть у меня подозрение, что у тебя всё перечисленное со словарём, а не только питон. Ищи колым для студентов в дно треде.

Ответы84301

4 мая, 21:07 80 1184301

>>1184293
Проходи мимо.

4 мая, 21:53 81 1184322

В чем разница на уровне инструкций? Что оптимальнее использовать?

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

std::uint8_t func(int a) {
return a > 0;
}

Ответы843248458384595

4 мая, 22:05 82 1184324

>>1184322
Ни в чем. https://godbolt.org/g/Bm4LVR
Как по мне, так первый вариант более читабелен.

4 мая, 23:00 83 1184342

>>1184273
https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/html/vkspec.html#VK_KHR_variable_pointers
https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#c-cplusplus-language-support
https://www.khronos.org/registry/OpenCL/specs/opencl-2.1-openclc++.pdf

Ответы84369

5 мая, 00:05 84 1184369

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

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)

Ответы8437784392

5 мая, 00:19 85 1184377

>>1184369
>Что сказать то хотел?
Что в шейдерах почти полноценный С++ с указателями и темплейтами.
>не поддерживает такие важные средства
На самом деле указатели на функции там есть, только адово тормозят.
А так естественно, что многие возможности не поддерживаются - архитектура у железа другая.

5 мая, 00:47 86 1184392

>>1184369
Я особо не интересовался OpenCL, я думал это просто API для параллельных вычисленей на видеокарте в языке C/C++. А это получается вообще другой язык? Для него нужен специальный компилятор?

Ответы84405

5 мая, 00:59 87 1184397

Учу кресты по Страуструпу и что-то я нихуя не понял: у него есть целый параграф, посвященный концептам в шаблонах, но какой бы я компилятор не взял (gcc, msvc, clang), все меня послали нахуй. Хотя Страуструп пишет, что концепты есть с С++14. Получается он наебал или что?

Ответы84406

5 мая, 01:23 88 1184405

>>1184392
>А это получается вообще другой язык?
Только для ядра, которое выполняется на видяхе, сам API - сишный. В старых версиях у шейдоров - сиподобный язык, начиная с 2.1 - урезанный С++14. У нвидии на CUDA с самого начала C++.
>Для него нужен специальный компилятор?
Да, но можно просто текстовую строку с шейдером передавать API.
Можешь сам посмотреть (это не OpenCL, а пиксельные шейдеры для WebGL, но суть похожая.): https://www.shadertoy.com/

5 мая, 01:25 89 1184406

>>1184397
Это экспериментальная фича еще, надо флаг компилятору передать, у GCC -fconcepts, clang вроде не поддерживает еще.

Ответы84407

5 мая, 01:37 90 1184407

>>1184406
Все равно хуита: https://godbolt.org/g/nCnMUV

Ответы84412

5 мая, 02:00 91 1184412

>>1184407
У них по -foncepts старая версия концептов, не та, которая в стандарт войдет, да и та неполная. Так что тебе придется самому нужную ветку GCC собирать.

5 мая, 15:43 92 1184583

>>1184322
Такие функции лучше через макрос делать или inline.

Ответы845908475784803

31 Кб, 520x390
5 мая, 16:11 93 1184590

>>1184583

5 мая, 16:35 94 1184595

>>1184322
Лучше не заморачиваться такой хуйней, premature optimisation и вся хуйня.

5 мая, 21:09 95 1184757

>>1184583
В современом C++ забудь макросы, используй их только в крайних случаях. И для таких простых функций, как выше, не надо писать inline. Компилятор сам инлайнит функции где возможно.

Ответы8487685076

5 мая, 22:02 96 1184803

>>1184583
и constexpr

6 мая, 01:16 97 1184876

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

Ответы8493885016

6 мая, 07:54 98 1184938

>>1184876
А посоветуй литературы где подобную информацию можно почитать? Я имею ввиду про работу компилятора. Я просто читал книгу ещё 99 года и там уже писалось что все эти онлайн устаревшие.

Ответы8494385058

6 мая, 08:22 99 1184943

>>1184938
Инлайн
фикс

6 мая, 12:26 100 1185016

>>1184876
-O3 -fno-inline-functions
шах и мат, атеисты!

452 Кб, 789x445
6 мая, 13:29 101 1185058

>>1184938
Есть такая книжка, но она 2004 года

6 мая, 14:04 102 1185076

>>1184757
> не надо писать inline. Компилятор сам инлайнит функции где возможно.
Где-то читал, что какой-то конпилятор если видит слишком много инлайнов (вроде как оценивается не общее количество, а относительно количество функций или что-то подобное), то он считает программиста идиотом и вручную написанные инлайны полностью игнорирует (что стандартом не запрещено, лол). Заставить инлайнить в таком случае можно либо написав перед функцией template <>, либо нестандартными атрибутами (которыми все кому прям сильно надо инлайнить и пользуются).

Ответы850848521685381

6 мая, 14:13 103 1185084

>>1185076
Вроде как единственная 100% гарантия заинлайнить и сделать именно точно как тебе надо - ебнуть асмовставочку.

Ответы85381

6 мая, 17:32 104 1185216

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

Ответы85233

6 мая, 17:44 105 1185233

>>1185216
По стандарту слово INLINE для функции дает возможность забить хуй на ODR, не более

6 мая, 21:22 106 1185380

>>1181867 (OP)
Если нужно передавать в функцию или конструктор список чисел определенного типа (int, uint32_t), каким типом данных представить этот список для удобства и производительности? std::tuple?

Ответы85406854078541085457

6 мая, 21:22 107 1185381

>>1185076
>>1185084
Есть еще такая хуйня
#define __forceinline inline __attribute__((always_inline))

6 мая, 22:10 108 1185406

>>1185380
Чем тебе не нравится список из стд?

6 мая, 22:10 109 1185407

>>1185380
Чем тебе не нравится список из стд?

6 мая, 22:13 110 1185410

>>1185380
>список
Связанный список или массив?

6 мая, 23:33 111 1185457

>>1185380
http://en.cppreference.com/w/cpp/utility/initializer_list

7 мая, 01:25 112 1185497

ребзя пару слов, почему -32767 должно возвращатся?

if(GetAsyncKeyState(klavisha)==-32767)
file(klavisha,"text.txt");

Ответы85500

7 мая, 01:28 113 1185500

>>1185497
Мамкин кулхацкер, открой для себя raw input.

7 мая, 02:13 114 1185505

Объясните есть ли смысл расставлять мьютексы для класса, в котором с одним инстансом работает несколько потоков.

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

std::uint64_t counter;

};

если два потока выполняют routine();, правда что может произойти креш при одновременной записи в counter?

Ответы855108553385741

7 мая, 02:44 115 1185510

>>1185505
Здесь нужен std atomic

Ответы85741

7 мая, 07:34 116 1185533

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

Ответы85741

7 мая, 17:40 117 1185741

>>1185505
>креш
Нет. Если все указатели валидные, чему крэшиться? Но в общем случае у тебя будет обычный race condition, и получится каша, а не данные.
Конкретно в этом случае всё будет норм на x64, так как обновление машинного слова - атомарная операция. На этой фишке основана такая штука, как RCU. Но с этим нужно быть очень аккуратно, так как зависит от конкретного проца, поэтому всё равно следуй советам >>1185510 и >>1185533.

7 мая, 19:26 118 1185777

А чем отлиается атомик от мутекса?

Ответы85866858738604586497

7 мая, 21:23 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 а именно чинить

Ответы85889

7 мая, 22:08 120 1185866

>>1185777
Всем, блять. Суть мьютекса - блокировка. Мьютекс - это считай толчок, срать там может только один человек, а остальные будут ждать пока он освободится, или обосрутся по таймауту.

Ответы85908

7 мая, 22:15 121 1185873

>>1185777
Почитай Таненбаума.

7 мая, 22:55 122 1185889

>>1185847
Проверяй пути к инклюдам

Ответы85893

7 мая, 23:00 123 1185893

>>1185889
Это в целом понял уже. Я сейчас на этапе - "Как пофиксить QTDIR?"
Т.е. насколько я понял проблема в том, что установка второй QT, для x86 где-то распидорасила заданый ранее QTDIR, который указывается в настройках MVS как $(QTDIR)\include\ итд. Но где и как мне прописать теперь QTDIR?
Пробовал через дополнительные параметры системы->переменные среды, но
1. Там её вообще не было
2. После того как я её задал там - ничего не произошло (Возможно нужна перезагрузка?)

7 мая, 23:08 124 1185900

Анончики. Я заебался уже с этими стримами. Мне нужно-то всего лишь получить данные по сети и обработать их. Но я столкнулся с проблемой. Как вообще можно управлять данными stringstream? Как получить количество байт в нем, а не до первого нуля до считать? Со всеми этими вопросами я решил просто отойти от стримов и использовать строки. Но штука, которая считывает данные, работает только со стримами. Я попробовал создавать для неё стрим и в rdbuf подменять буфер данными из строки, но это не работает в msvc по какой-то причине. Слышал есть ещё strstream, который, вроде, для этого и предназначен, но стандарт говорит, что он устарел.
Внимание вопрос: как лучше всего навешать istream интерфейс на std::string?

Ответы85961

7 мая, 23:36 125 1185908

>>1185866
Ну извините за такой тупой вопрос, я думал это и атомик делает? Я никогда мултитредингом не занимался. А в чем тогда смысл атомика?

Ответы8591285914

7 мая, 23:43 126 1185912

>>1185908
Атомик, внезапно, делает операции атомарными. Другими словами, треды не будут видеть "промежуточного" состояния при изменении атомика. То есть в атомиках нет семантики владения каким-то ресурсом в отличии от мьютекса. Вот как атомик реализован (через мьютекс, или архитектура проца такая, что можно лок-фри сделать) - зависит от конкретной реализации.

7 мая, 23:46 127 1185914

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

8 мая, 01:09 128 1185949

74 Кб, 1262x7321 Кб, 171x28

Суп. Предпринимаю уже вторую попытку вкатиться в Qt. И уже во второй раз я даже не могу написать не строчки кода. Пикрил ебанина один в один была у меня уже на двух разных компах с двумя разными операционными системамисперма и дрисня. В тот раз я пропердолился с этим немало времени, накатывал блядь всякие разные левые компилы, нихуя не работало. Спрашивал где-то здесь, в /pr, но никто нихуя не знал, говорили что мол все должно из коробки работать и это не нормально. Я уж подумал это у меня в системе что-то поломалось, блядь, раз так, и забил. Но теперь на новой чистенькой ОС и даже на другой пеке та же хуйня. Анон, юзавший сабж, отозвись, прошу.
Линк, по которому качал: https://www.qt.io/download (опен сорс версия).
Путь к кьюту без пробелов, пикрил.

Ответы859528595386036

8 мая, 01:13 129 1185952

>>1185949
Просто береш и ставиш линупс.

8 мая, 01:13 130 1185953

>>1185949
Нажми на Примеры.
Открой пример.
Скомпилируй.
Что происходит?

52 Кб, 1262x732
8 мая, 01:18 131 1185956

8 мая, 01:49 132 1185961

>>1185900
Тебе данные в каком виде нужны? Инфа или набор битов/байтов? Если 2, то считай как массив unsigned char

Ответы86095

127 Кб, 1883x661
8 мая, 10:16 133 1186036

>>1185949
У тебя комплекты походу не установлены, открой настройки->cборка и запуск->комплекты. Должны быть хоть какие то комплекты))

Ответы86486

8 мая, 10:37 134 1186045

>>1185777
Атомик — это маленький атом.

8 мая, 12:31 135 1186095

>>1185961
Проблема в том, что я активно использую библиотеку сериализации Cereal, которая понимает только потоки данных. Так-то они у меня уже в форме массива char-ов, за это и отвечает string, но теперь нужно как-то на этот массив навешать интерфейс потока, что бы его можно было считать. Думаю сейчас просто свой класс-наследник от istream сделать, вдруг получится

Ответы86123

8 мая, 13:31 136 1186123

>>1186095
https://stackoverflow.com/a/43148806

8 мая, 13:43 137 1186129

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

Ответы8613286134

8 мая, 13:45 138 1186132

>>1186129
?

8 мая, 13:48 139 1186134

>>1186129
Лол, Ява это игрушка по сравнению с си. вкатывайся самый начальный уровень от стрроуструпа, надеюсь хоть что-то поймёшь

Ответы86248

8 мая, 17:41 140 1186245

Реквестирую годный 16-битный компилятор для С/C++.

Ответы8644690490

8 мая, 17:42 141 1186248

>>1186134
>Ява это игрушка по сравнению с си
Нет, если бы это был яваскрипт, то да. А вот ява еще ему поможет.

Ответы86255

8 мая, 17:50 142 1186255

>>1186248
Чем поможет? Без GC он только и будет что наступать на грабли. Особенно учитывая, что в Си нет умных указателей, которые хоть как-то облегчают работу с памятью.

Ответы86256

8 мая, 17:52 143 1186256

>>1186255
Хотя ты прав. Мне потребовалось целых 2 месяца, чтобы умело извращаться с указателями.

8 мая, 17:53 144 1186257

Посоны, что писать: загрузчик или программу защиты приложений от пиратства?

Ответы8625886265

8 мая, 17:55 145 1186258

>>1186257
Пиши ИИ, а он пусть потом пишет всё что нужно.

Ответы86260

8 мая, 17:55 146 1186260

>>1186258
Я похож на бородатого машинлёрнигопидораса? Нет, я лучше байты посчитаю.

8 мая, 18:03 147 1186265

>>1186257
Загрузчик чего, оси? Там же всё стандартно делается.

Ответы86266

8 мая, 18:04 148 1186266

>>1186265
Ну я со своими прибабахами хочу сделать. Имел с этим опыт? Посоветуешь лит-ры?

Ответы86320

8 мая, 19:08 149 1186320

>>1186266
Курс осей N лет назад и wiki.osdev.org, так что сейчас уже ничего не помню.

Ответы86342

8 мая, 19:32 150 1186342

>>1186320
Спасибо. Чисто на асме или на слиянии асмы и си делал?

57 Кб, 574x255
8 мая, 20:15 151 1186369

как это кушать?

8 мая, 21:09 152 1186446

>>1186245
Turbo C

72 Кб, 1103x586
8 мая, 21:57 153 1186486

>>1186036

Ответы8650186502

8 мая, 22:19 154 1186497

>>1185777
race condition в твоей ситуации может быть из за того, что ++ для некоторого типа данных делается в несколько команд на ассемблере. потому один поток может сделать одну команду и внезапно быть прерванным другим потоком, который тоже начнет что-то делать и т.д..
так вот - мутекс - это как замок. у тебя переменная лежит в ящике стола запертом на замок и ключ только один. соответственно переменную меняет только тот, у кого ключ.
взял ключ - открыл ящик - поменял - закрыл - ключ положил и теперь другой поток его может брать.
а атомик - это когда ++ кодируется в ассемблер так, что его нельзя прервать. родные виндовые функции это Interlocked*

Ответы86503

8 мая, 22:31 155 1186501

>>1186486
При установке надо было включить установку mingw. В режиме обслуживания и сейчас это можешь сделать.

Ответы86537

52 Кб, 1203x751
8 мая, 22:32 156 1186502

>>1186486
Ты походу установил только QtCreator. Это только IDE, скачай сам фреймворк. Должно быть что-то типа такого, как на пике.

Ответы8650486537

8 мая, 22:33 157 1186503

>>1186497
Не отличаешь race condition от data race? В ньюфаг-тред.

8 мая, 22:33 158 1186504

>>1186502
Sources нинужны, если ты только не собираешься ручками компилировать сам qt.

Ответы86507

8 мая, 22:35 159 1186507

>>1186504
Ну да, из всех галок можно оставить только одну: MSVC или MinGW. Остальное для начала не нужно.

8 мая, 23:49 160 1186537

>>1186501
>>1186502
Уже нагуглил. Сейчас качаю. Посмотрю, что из этого выйдет.
4гб на скорости ~200 кб/с. Филсгудман, блядь.

Ответы86572

9 мая, 01:15 161 1186572

>>1186537
Всем отписавшимся анончикам нефти, заработало.

9 мая, 02:52 162 1186613

Шарпоблядок на связи, портирую одну хуйню с этих ваших крестов и есть квик вопрос о порядке математических действий:

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

Спасиба

Ответы86616

9 мая, 04:02 163 1186616

>>1186613
Так же как и в шарпе слева направо -> (xy)/z.
https://msdn.microsoft.com/en-us/library/126fe14k.aspx
https://msdn.microsoft.com/en-us/library/2bxt6kc4.aspx

9 мая, 11:56 164 1186709

Крестогоспода, здравствуйте. Осматривал вакансии, много где пишут про работу с Linux. До этого нажимал всё строго под Виндой в Вижуал Студии. Есть ли смысл накатывать линукс для дальнейшего успешного движения?

Ответы86729

9 мая, 12:33 165 1186729

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

Ответы8673186743

9 мая, 12:35 166 1186731

>>1186729
Так уже полез. И там примерно на собеседованиях так и есть. Лол.

В духе: ну вы знаете, нам нужен человек, который кроме крестов может в кьют, сети, базы данных, строительство звездолетов, а еще бы неплохо написать под них драйвера

Ответы86734

9 мая, 12:42 167 1186734

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

Ответы86736

9 мая, 12:44 168 1186736

>>1186734
Я как-то капитально взялся, так что один хуй буду пробовать вкатиться хоть куда-то

9 мая, 12:57 169 1186743

>>1186729
Интересно, есть ли вообще кулстори людей, которые вкатились в плюсы с джуна?

Ответы8674586746

9 мая, 12:59 170 1186745

>>1186743
а нормальные люди вкатываются в кресты уже с других языков?

Ответы86750

9 мая, 12:59 171 1186746

>>1186743
Ну я наверное как раз в последний вагон уходящего поезда запрыгнул.

9 мая, 13:01 172 1186749

так, пацаны, а что вот должен уметь джун?

если я осилю кроме крестов, еще кьют, ебучие сети, и базы данных, это я уже джун или еще нет?

Ответы86755

9 мая, 13:04 173 1186750

>>1186745
Да хуй знает, я сам студиозус с амбициями "войти в ойти с плюсов". Судя по всему будет тяжело.

9 мая, 13:07 174 1186755

>>1186749
В том то и прикол что джун должен уметь все. Но хотеть мало денех.

Ответы8675786759

9 мая, 13:08 175 1186757

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

Ответы86764

9 мая, 13:09 176 1186759

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

Ответы86762

9 мая, 13:13 177 1186762

>>1186759
И как, напросил? Джуна хотят за 40-45к.

9 мая, 13:14 178 1186764

>>1186757
Нет. Даже если проекты будут охуенными - я тебя уверяю, никто в твой гит смотреть и близко не будет, нахуй это нужно. Сам подумой - там в день несколько человек собеседовать, что у каждого смотреть?

Ответы86771

9 мая, 13:25 179 1186771

>>1186764
но как же тогда вкатирововаться?

Ответы8677586778

9 мая, 13:26 180 1186775

>>1186771
Никак.

9 мая, 13:28 181 1186777

>>1181872
UrlDownloadToFile
используется всякой шаболдой в верусах, возможен детект аверами
(подобные вопросы лучше задавать в топике системного программирования / реверс-инжиниринга и асм)

Ответы86824

9 мая, 13:28 182 1186778

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

Ответы86896

33 Кб, 341x500
9 мая, 13:45 183 1186794

Стоит ли начать изучение c++ с пикрелейтед? Книга Страуструпа не сильно зашла, так как он заставил скачать библиотеку со своего сайта и которая ни как не принималась Visual Studio 2016. Поэтому ищу другой самоучитель.

Ответы86798

9 мая, 13:48 184 1186798

>>1186794
Начинать изучение c++ вообще не стоит. Язык пиздецки сложный и кривая сложности растёт со временем по экспоненте, а работу на крестах ты все равно не найдешь и с каждым днём найти её будет все сложнее.

Ответы86810868158681686838

9 мая, 13:58 185 1186810

>>1186798

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

Ответы8681386816

9 мая, 14:00 186 1186813

>>1186810
Госпараша за копейки не считается. Там и дельфи ещё есть наверное.

Ответы86819

9 мая, 14:00 187 1186815

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

Ответы86822

9 мая, 14:01 188 1186816

>>1186798
>>1186810

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

9 мая, 14:04 189 1186819

>>1186813

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

9 мая, 14:05 190 1186822

>>1186815
> > Язык пиздецки сложный
> Сам язык не сложный.
Ну да, действительно. А полтора косаря страниц только текущего стандарта (выйдет ++20 за два косаря перевалит) это так, хуйня
>Никто ж не заставляет писать код с кучей шаблонных шаблонов.
Заставляет. Посмотри на блядский буст.
>Основная сложность - это инструменыт для работы с C++. Отсутствие нормального менеджера зависимостей
Он невозможен потому что эта параша до сих пор работает на препроцессоре, модульности нет
> и мегаубогие инструменты для автоматизации конпеляции (чего только распиаренный cmake стоит) делают своё дело.
Я на работке для себя использую qbs. Так то проекты в boost build захуячены, но IDE jam-хуйню не скормишь, а в виме пердолиться не хочется.

Ответы86830

9 мая, 14:07 191 1186824

>>1186777
Эта хуйня работает максимум в 4 потоках, а мне надо намного больше

Ответы86829

9 мая, 14:08 192 1186827

Ах да. Ещё пиздец в том, что кресты как бе надмножество сишки - и в то же время - нихуя.

9 мая, 14:09 193 1186829

>>1186824
Ну нахуярь руками get реквесты на сокетах, блять.

9 мая, 14:10 194 1186830

>>1186822
> Ну да, действительно. А полтора косаря страниц только текущего стандарта (выйдет ++20 за два косаря перевалит) это так, хуйня
Никто не заставляет читать всю спецификацию. У спецификации JS тоже около тысячи страниц. Это делает язык мегасложным?
> Заставляет. Посмотри на блядский буст.
Основная сложность в написании подобных библиотек. При использовании тебе чаще всего ничего кроме как вставить с угловые скобки имя типа и не потребуется.
> Он невозможен потому что эта параша до сих пор работает на препроцессоре, модульности нет
Сильное заявление.

Ответы86835

9 мая, 14:12 195 1186835

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

Ответы86837

9 мая, 14:14 196 1186837

>>1186835
Это да. Впрочем обе твои претензии будут исправлены в C++20 (непонятные ошибки - концептами, модульность - модулями).

Ответы86841

9 мая, 14:17 197 1186838

>>1186798
да не сложный он нифига. просто изучать надо постепенно.
если начинаешь с нуля - бери какого нить кернигана и ричи и учи то, что там есть.
простые типы, указатели, (ссылки тоже добавь до кучи), битовые операции, функции. ВСЁ. в этом куске самое сложно - указатели на функции. уж очень мудреный синтаксис. но их обычно наизусть никто не знает.
выучил этот кусок, со всем разобрался? иди дальше.
классы (БЕЗ ШАБЛОНОВ!). уровни доступа, статические члены, наследование, множественное наследование, виртуальное, указатели на функции-члены класса. тут тоже ничего сложного нет, вполне себе небольшой кусок знания.
дальше шаблоны смотри уже.. даже перед шаблонами или чуть попозже, когда будешь знать что-то типа template <typename T> class C { public: T myvar; } и как использовать STL контейнеры - тебя уже джуном везде возьмут как нефик делать. а то и мидлом.

Ответы8684086856

9 мая, 14:19 198 1186840

>>1186838
Ты ему советуешь изучать Си, а не С++. В своих проектах я указателями почти не пользуюсь, везде стоят unique_ptr или shared_ptr, а указатели используются только для взаимодействия с Сишными библиотеками.

Ответы8684486851

9 мая, 14:19 199 1186841

>>1186837
Я про концепты с модулями кажется ещё в ++11 слышал, а воз и ныне там. А какой-то хотя б минимальной рефлексии и близко нет. К примеру - нужен тебе final switch, чтобы покрыть весь enum или не компилировать - а хуй тебе. И костыли-костылики (протобуф вроде генерит Value_MAX и VALUE_MIN). Сука блять.

Ответы86843

9 мая, 14:20 200 1186843

>>1186841
> А какой-то хотя б минимальной рефлексии и близко нет.
Рефлексии и в С++20 скорее всего не будет.

9 мая, 14:21 201 1186844

>>1186840
Самое смешное это потом пробрасывать shared_ptr на unique_ptr на какую то хуйню потому что видите ли Handler в io_service::post должен быть CopyConstructable...

Ответы86845

9 мая, 14:23 202 1186845

>>1186844
А ну да, ещё взаимодействовать с C++98 библиотекми или библиотеками, которые написаны на Си с классами. Впрочем, я их стараюсь по возможности избегать.

Ответы86850

9 мая, 14:27 203 1186850

>>1186845
Ах да, а ещё по стопицот видов строк, массивов и умных указателей, у каждой библиотеки свой блять. И крестопараша которая в стандарте не умеет в юникод - точнее там кажись since c++17 deprecated. Необходимость в блядском icu, ебаный wchar/wstring который в линупсе 4 байта а в шинде - 2. Блядская хуйня уровня "ну ета - в крестах sizeof(void*) не существует а в сишке gcc ета 1" и тупорвлвми мудаками которые написали такого говна в хедерах ядра, так что под шлангом ты в крестах ты хуй че скомпилишь, а в gcc только с fpermissive.

Ответы8685986862

9 мая, 14:27 204 1186851

>>1186840
но ты же знаешь, что такое ptr вообще? для чего нужны эти unique и shared? вот чтобы с ними работать не как обезьяна с гранатой, а осознанно, и надо понимать что такое обычные указатели.

Ответы86855

9 мая, 14:28 205 1186855

>>1186851
Они тоже костыль блядский. Чего стоит только ебаная параша с enable_shared_from_this

9 мая, 14:30 206 1186856

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

Ответы8686086869

9 мая, 14:37 207 1186859

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

[1]: https://doc.rust-lang.org/std/option/enum.Option.html#method.map

9 мая, 14:38 208 1186860

>>1186856
Так и должно быть.

Ответы86863

9 мая, 14:39 209 1186862

>>1186850
Макак, иди порвись где-нибудь в PHP-треде.

9 мая, 14:41 210 1186863

>>1186860
И что же делать, изучать конкретные библиотеки? Начинать бездумно изучать буст в надежде, что это понадобится? Или начать делать собственный проект? Все таки какой-никакой опыт, и изучать то в чем будут трудности?

Ответы86865

9 мая, 14:42 211 1186865

>>1186863
Изучай js или пиздон. Не трать зря время.

Ответы86896

9 мая, 14:45 212 1186869

>>1186856
если под винду хочешь работать - напиши пару программок типа калькулятора с mfc или qt (mfc я бы посоветовал - оно к нативным функциям ближе) чтобы разобраться как виндовая гуя работает, почитай чуток теории про коллекции stl - оценки скорости работы, как внутри устроены и т.д. и иди по собесам.
под винду на джуна возьмут стопудово.

Ответы86871

9 мая, 14:46 213 1186871

>>1186869
> mfc я бы посоветовал
Это чтобы он 100% отказался от идеи писать что-либо на плюсах? Умно.

Ответы87171

9 мая, 15:16 214 1186896

>>1186865
Двачую этого. Я учил кресты в вузе. Тогда мы сделали с другом небольшую двумерную игрушку больше мне этот язык ни разу не понадобился. В крестах столько говна, что >>1186778 больше прав чем не прав.

Ответы86909

9 мая, 15:27 215 1186909

>>1186896
Кресты могли бы быть спасены если бы популярная ОС имела апи и сисколы на крестах. Но так сложилось что и винапи - сишное, и линупс трольвардс - пердун и неосилятор, и так и повелось. А на крестах ядро емнип только у гаечки-беоси, но не срослось, отличная ОС была в своё время, но убита менеджментом и негрософтом. Было бы ядро на крестах и апи - были бы и библиотеки, и не было бы того говна что сейчас.

Ответы8696386972

9 мая, 16:58 216 1186963

>>1186909
Прими брому.

9 мая, 17:03 217 1186972

>>1186909
Гугл Хром и WebKit на плюсах написаны.

Ответы87164

9 мая, 21:14 218 1187164

>>1186972
Firefox и Gecko тоже.

Ответы87167

9 мая, 21:17 219 1187167

>>1187164
Firefox уже частично на расте (как минимум CSS-парсер).

Ответы87169

9 мая, 21:18 220 1187169

>>1187167
ты нихуя не понял.

9 мая, 21:22 221 1187171

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

9 мая, 21:46 222 1187192

Бля, а в неплохое время живем, аноны

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

Чота я даже как-то влюбился обратно в С++

Ответы87229

9 мая, 22:20 223 1187229

>>1187192
Охуенно наверное писать на реинкарнации pl/1.
Однажды все рухнет окончательно под весом томов стандарта и костылей.

Ответы8724587256

9 мая, 22:38 224 1187245

>>1187229
Жопоголик, попей брому.

9 мая, 22:52 225 1187256

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

Ответы87260

9 мая, 22:54 226 1187260

>>1187256
Рушатся. Все эти жабы, питоны, раби и жабаскрипты с го вылезли не на ровном месте - они отожрали долю именно у крестов. Теперь пизда последнему оплоту - даже десктопный софт все больше пишут не на крестах а уебищном электроне.

Ответы8726487271

9 мая, 22:58 227 1187264

>>1187260
С каких пор жабаскрипт с пайтоном отожрали свою долю у крестов? Кресты никогда не были ни сценарным ни веб-языком. Про твой электрон никогда не слышали писаки большинства настольного софта (который пишется таки-на плюсах) имхо.

Ответы87273

9 мая, 23:01 228 1187271

>>1187260
ну да, пусть отожрали

я и говорю кресты стали таки нишевым языком и это хорошо. графика, финансы, медицина, по тихой embedded подтягивают.

9 мая, 23:01 229 1187273

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

Ответы87277872998731488636

9 мая, 23:09 230 1187277

>>1187273
>Electron

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

Весь мир борется с электроно-залупой. Даже сами майки которые этот вс код и создали

Ответы87281

9 мая, 23:13 231 1187281

>>1187277
Как борется? Я пока что вижу как то что писалось на крестах теперь пишут на электроне - но не вижу обратного, чтобы веб парашу типичную переписывали на крестах.
Когда то кресты и в мабилках были, емнип под симбианом проги на крестах были а он был лидером рынка. Пидорнули-с, жаба правит бал.

Ответы87284

9 мая, 23:15 232 1187284

>>1187281
webassembly жи лол

автокад вот выпустил вебверсию, тот же с++ только в броузере, а это покруче текстового редактора будет. вполне возможно кресты веба порцию заберут себе в ближайшем будушем

9 мая, 23:29 233 1187299

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

Ответы88636

9 мая, 23:58 234 1187314

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

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

«Десктопные» приложения Slack, Mattermost, текстовый редактор Atom, который раньше не умел открывать файлы с размером более 2 МБ, а сейчас открывает мегабайтный файл несколько секунд — просто какой-то мусор, непонятно, кто в здравом уме будет пользоваться такими программами, пока есть альтернативы в виде нормальных десктопных приложений.

Ответы87320

10 мая, 00:04 235 1187320

>>1187314
А я о чем блять. И при всем при этом люди пользуются этой парашей, а не десктоп-прогами. Взлетают всякие говно-хромоси где кроме браузера нет нихрена. А люди смотрят кинчики в веб-интерфейсе вместо того чтобы качать файлики в поррент-клиенте на крестах, слушают музычку вбыдлятне вместо того чтобы делать это в плеере на крестах, пишут мыльца в веб-интерфейсе гмыла и яндекса вместо того чтобы делать это в прогах мейл-клиентах на крестах... Вылезли всякие saas-параши, теперь и фотошопы и прочая хуйня в браузере.
А лет 10 назад все было кардинально не так. Кресты пиздец как сдали позиции.

Ответы87348

10 мая, 00:31 236 1187348

>>1187320
Сдали позиции не кресты, а настольный софт. Попробуй-ка поиграй в ААА в вебе, поработай с мультимедиа в вебе, обработай пресловутую бигдату в вебе. Нихуя. Все с крестами нормально, просто половину всякого барахла которое на них писали, утащили в веб и придумали на это новые языки с нескучными обоями.

Ответы87362

10 мая, 01:00 237 1187362

>>1187348
>Попробуй-ка поиграй в ААА в вебе
Давно придумали. От стриминга игор с сервака до "прошёл на ютубе" и твичей.
>просто половину всякого барахла которое на них писали, утащили в веб и придумали на это новые языки с нескучными обоями.
Вот именно. А утащили в веб это по некоторым причинам - из-за крестов и того что на жс макакить проще чем ебаться с шаблончиками, и потому что зонды в анус проще пихать со слежкой.

Ответы8737587532

10 мая, 01:25 238 1187375

>>1187362
Процент плюсов упал из-за низкого порога вхождения в скриптовые языки, хипстеры и быдло вкатываются пачками, но проблема в том что без плюсов вся скриптопараша просто умрет. Скриптопараша держится на фундаменте из плюсов и си, и без этого фундамента ей конец. Как ты сделаешь гуй на питоне если прекратится разработка qt/gtk+? Что станет с js если хром и вэбкит исчезнут?

Ответы87417

10 мая, 03:36 239 1187417

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

Ответы87506

10 мая, 11:04 240 1187506

>>1187417

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

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

10 мая, 12:05 241 1187532

>>1187362
>Давно придумали. От стриминга игор с сервака до "прошёл на ютубе" и твичей.
Что ты несешь? Поиграй != посмотри.

>А утащили в веб это по некоторым причинам - из-за крестов...
Бритва Оккама отсекает твои охуительные догадки, основанные на неприязни к крестам. Я к ним тоже отношусь настороженно, но мне кажется что в веб всё перешло потому что появился собственно веб (быстрый безлимит, продвинутые сайты уеб2.0, вагон памяти на современных машинках и т.д.).

Ответы87536

10 мая, 12:09 242 1187536

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

Ответы87926

10 мая, 21:09 243 1187926

>>1187536
G E F O R C E N O W

11 мая, 10:10 244 1188127

Плюсач, я писал лабу с деревьями и программа иногда крашится, а иногда не крашится с сегфолтом. Деструктор для узла дерева выглядит так:

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

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

Ответы8813188211882188822088268

11 мая, 10:25 245 1188131

>>1188127
nullptr в конструкторе присваиваешь? И при удалении ветви?

Ответы88306

11 мая, 12:53 246 1188211

>>1188127
>if (left) delete left;
>if (right) delete right;
:facepalm:

Ответы88218

11 мая, 13:19 247 1188218

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

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

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

Ответы88259882668830288306

11 мая, 13:26 248 1188220

>>1188127
>иногда крашится, а иногда не крашится с сегфолтом
enjoy your C++-говно

11 мая, 13:32 249 1188225

Кстати, есть крестьяне-задроты с глазами горящими в треде? На днях в Bountysource выложили работу аж за 50 ебаных косарей грина, интегрировать webrtc с остатками сетевого стека firefox-a. Если сейчас сесть и неделю не спать, можно таки успеть :)

11 мая, 15:20 250 1188259

>>1188218
Дело не в умных указателях.

Ответы88263

11 мая, 15:25 251 1188263

>>1188259
Лучше после делита явно присваивал этому указателю нуллптр, а ещё проверь места где ты ходишь по дереву, сегфолт вылетает в момент когда ты идёшь в память, которую твоему процессу не выделила ОС, скорее всего ты либо пытаешься считать не свои данные, либо вообще с нуллптра считываешь.

Ответы88306

11 мая, 15:28 252 1188266

>>1188218
>Хех, лаба же, препод может не знать про умные указатели :3
Я про то, что на nullptr при удалении проверять не надо. Бох с ними, с умными указателями.

Ответы88272

11 мая, 15:30 253 1188268

>>1188127
Алсо, undefined behavior, как он есть.

11 мая, 15:36 254 1188272

>>1188266
Ты прав, мне явно не хватает опыта крестьянской жизни :(

11 мая, 16:59 255 1188302

>>1188218
>Русте
Был бы не мёртв ещё

Ответы88328

11 мая, 17:10 256 1188306

>>1188131
>>1188263
>>1188218
Там как-то интересно получается, что сегфолт вызывает, видимо, строка if(left).

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

У меня даже значения никакого нет

Ответы8833088453

11 мая, 18:06 257 1188328

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

Вообще, ковбойская суть плюсов - не самое в них неприятное. Куда больше меня отвращает от них стремительное устаревание кода, когда то, что писалось под стандарт 2003 сейчас превратилось в технический долг, который нужно изолировать от нового кода. Это не говоря уже о проходящей моде на Буст и извращения дизайна им. Александреску.

Ответы8851888568

11 мая, 18:12 258 1188330

>>1188306
Это не код, это твои маняфантазии. Код подавай или седлай отладчик и хауау.

11 мая, 21:50 259 1188453

>>1188306
Вряд ли строка с условие порождает сегфолт.

11 мая, 23:37 260 1188518

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

12 мая, 02:24 261 1188568

>>1188328
Замена крестам - не сраный раст, а няшная дишечка.

12 мая, 11:49 262 1188636

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

>>1187299
С чего ты взял что Дельфи взлетел? Последний раз я на нем писал лет 10 назад и тогда он уже был на закате.

Ответы8863988645

12 мая, 11:51 263 1188639

>>1188636
Java и C# тоже появились не на ровном месте и долю отожрали именно у крестов.

12 мая, 12:10 264 1188643

>>1181867 (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* и рисковать сделать учечку памяти.

Ответы8864888681

12 мая, 12:14 265 1188645

>>1188636
Когда на джаве и сишарпе во времена настольного софта (в нулевые) кто-то его писал? Шарпа тогда не было, а кресты доминировали ВЕЗДЕ на пару с дельфи, это сейчас они в описанных тобой нишах правят бал.

12 мая, 12:22 266 1188648

>>1188643
Если тебе нужнен динамичный массив, то std::vector<unsigned char>, если статичный то std::array<unsigned char>

12 мая, 14:23 267 1188681

>>1188643
std::basic_string<char> и std::string это одно и тоже

12 мая, 15:46 268 1188713

Аноны, почти нюфаг просит помощи. Разбираюсь с OpenGL, написал небольшую хуйню, всё работает на моей машине. Exeшник собранный в режиме debug весит 50кб и на другой машине требует VCRUNTIME140D.dll, ucrtbased.dll и glut32.dll, первые две это, полагаю, из Microsoft Visual C++ Redistributable, третья это сам OpenGL. Если собираю через Release, то exe весит 12кб и на другой машине требует только glut32.dll.
Собственно вопрос: где можно почитать как оно всю эту хуйню собирает?

Ответы887298873588746

12 мая, 16:23 269 1188729

>>1188713
Забыл уточнить, делаю всё в Visual Studio 2017.

12 мая, 16:35 270 1188735

>>1188713
Гугли "динамическая/статическая линковка". Видимо ты в релизной версии включил статическую линковку.

12 мая, 16:51 271 1188746

>>1188713
С д на конце это дебажные длл которые у обычных пользователей не стоят.

12 мая, 20:09 272 1188823

>>1181867 (OP)
Как написать обобщенный код, который бы сериализовал целочисленные типы вроде int32_t, uint64_t, int в массив байт?

Ответы88840

12 мая, 21:07 273 1188840

>>1188823
А в чем проблема? Всего то 2 параметра - тип(или размер в байтах, внутри трейтов натолкаешь что целочисленный) да порядок байт.

13 мая, 00:53 274 1188921

>>1181867 (OP)
Анон, как в моей функции сериализации выбрать порядок байт?
https://ideone.com/kPqKg4

Ответы8892288923

13 мая, 00:59 275 1188922

>>1188921
Чем тебе не угодили htonl/ntohl?

13 мая, 01:00 276 1188923

>>1188921
>https://ideone.com/kPqKg4
Выбором направления при перезаписи числа в std::array, очевидно же.

14 мая, 19:47 277 1189806

В одном файле имеется глобальная константа, хочу "передать" её в другой файл, для этого использую ключевое слово extern.
Константа объявлена как extern const int имя = 3.
В другом файле написано extern const int имя.
Казалось бы все работает, в файле, куда передаётся эта константа я могу создать статический массив размера [имяконстанты], всё компилится, но при этом я не могу создать объект типа std::array<int,имяконстанты>, что с ним не так?
Ошибка: "expression must have a constant value"

Ответы898088991390151

14 мая, 19:49 278 1189808

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

Ответы89913

14 мая, 22:24 279 1189913

>>1189808
>>1189806
Сделай какой-нибудь хедер misc.h или common.h в котором буду нужные тебе константы и которые могут понадобиться в разных местах программы.

Ответы89989

15 мая, 00:07 280 1189989

>>1189913
Я в итоге просто и объявил её в хедере, просто хотел изменятьизменять до времени компиляции переменную из сурс файла, а буду изменять из хедера.

15 мая, 10:25 281 1190102

Помогите с синтаксисом.
Ввод на стандартный поток какой-то последовательности. Последовательность завершается признаком конца ввода.
Что это за признак? ctrl+d? Если да, то это много проблем порождает.
Я питался писать по всякому, и
while (cin >> a)
и
while (!cin.eof())
Оба эти варианта не принимаются авто системой - ошибка ввода. При этом во втором случае, еще и последний символ считывается два раза.

Ответы901039011990581

15 мая, 10:30 282 1190103

>>1190102
Ввод, вроде бы, просто представляет собой
cin >> a
мимо

Ответы90104

15 мая, 10:37 283 1190104

>>1190103
Последовательность. Мне нужно считать последовательность неизвестной длины, концом которой является признак конца ввода. Я спрашиваю как это сделать.

15 мая, 10:53 284 1190119

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

Ответы90122

15 мая, 10:57 285 1190122

>>1190119
Понятия не имею, что вижу, то и говорю.
На стандартном потоке ввода вводится последовательность целых чисел. Последовательность завершается признаокм конца ввода. Сделайте там какое-то действие с последовательностью.
Компилятор gnu c++
В интернете вычитал, что признак конца ввода - ctrl+d или z но у меня во втором варианте, к примеру, программа просто останавливается.

Ответы9012790139

12 Кб, 471x163
15 мая, 11:05 286 1190127

>>1190122
Как вводятся числа не сказано? Например через пробел или через строку.
Странное задание, какое-то неконкретное.
Могу предложить такое решение, чтобы закончить ввод нужно ввести Ctrl+Z.

Ответы9012990139

15 мая, 11:07 287 1190129

>>1190127
Вводятся через стандартный поток ввода. Нет ни пробелов, ни строк, просто числа идут на стандартный поток ввода.

15 мая, 11:18 288 1190139

>>1190122
Я не понимаю, что тебе не нравится. Ctrl-Z - признак конца ввода. Грубо говоря твоя последовательность выглядит вот так
1 2 43 67 8 43 89 34 ^Z
В цикле while(cin >> a) ты делаешь все необходимые действия со своей последовательностью. Как только встречается конец ввода, программа выводит результат и останавливается.

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

Ответы9014090143

15 мая, 11:20 289 1190140

>>1190139
>Я не понимаю, что тебе не нравится
Как ловить то конец ввода? Ну допустим пробел. А как мне его ловить, если я считываю в интовую переменную?

Ответы90308

10 Кб, 493x160
15 мая, 11:23 290 1190143

>>1190139
В первом случае i будет равно 4.
Алсо не понял почему она завалится. Ничего не падает вроде.

Ответы9014490308

15 мая, 11:25 291 1190144

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

Ответы9014590146

15 мая, 11:26 292 1190145

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

Ответы90147

15 мая, 11:27 293 1190146

>>1190144
Они же слева направо вычисляются.

15 мая, 11:27 294 1190147

>>1190145
мимо автор исходного вопроса.

15 мая, 11:29 295 1190151

>>1189806
https://stackoverflow.com/questions/1433204/how-do-i-use-extern-to-share-variables-between-source-files

Ответы90152

15 мая, 11:29 296 1190152

>>1190151
Уже разобрался, спасибо.

15 мая, 14:46 297 1190308

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

>>1190143
Ну не валится конечно, я неправильно выразился. Просто результат будет неправильным если встречается 0. А если использовать вместо '\0' EOF (выше кто то советовал), то результат будет неправильным если встретится -1.

Ответы9031690318

15 мая, 15:07 298 1190316

>>1190308
Ну это да, я просто не видел, что кто-то EOF советовал.
Теперь понял.

15 мая, 15:08 299 1190318

>>1190308
На самом деле довольно странно выглядит "пользователь введёт ctrl+z", скорее всего в задании есть какой-то символ который будет играть роль конца строки.

Ответы90327

15 мая, 15:23 300 1190327

>>1190318
>>1190318
Да похуй на самом деле что он там введет, главное чтоб это было не целое число. cin здесь ожидает int и как только он натолкнется на первый !int цикл закончится. Так что можно вводить хоть
1 2 3 54 -100 x
хоть
1 2 3 54 -100х или 1 2 3 4 5;
результат один хер будет правильным.

Ответы90328

15 мая, 15:25 301 1190328

>>1190327
Ну это понятно, там ведь результат оператора >> же неявно кастуется к булу через проверку флага потока?

Ответы90338

15 мая, 15:39 302 1190338

>>1190328
Если я правильно понял, то вот ответ на твой вопрос https://stackoverflow.com/questions/38978266/how-can-stdcin-return-a-bool-and-itself-at-the-same-time

15 мая, 15:51 303 1190343

Тупые вопросы от вкатывальщика к практикующим крестовикам:
1) Как часто используете в проектах ебанутую идиому SFINAE, сколько бы ни читал никак не могу въехать
2) В каких случаях пишете кастомный аллокатор?
И самый тупой вопрос: никак не могу перейти от написания элементарных заданий из учебника к чему-то более серьезному, проект в голове вроде бы родился, но вот с архитектурой проблемы, как вы проектируете?

Ответы90352903539035890731

15 мая, 15:55 304 1190352

>>1190343
Я использовал на работе 1 раз по приколу. Просто кусок сделал люто-шаблонным. А так - ты врятли это где-то увидишь в коде.

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

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

15 мая, 15:57 305 1190353

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

15 мая, 15:59 306 1190358

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

Например, думал себе сделать что-то вроде таск треккера в котором был бы функционал парсинга исходников на предмет TODO/FIXME и прочих комментариев
Сначала тупо решил парсить комменты и смотреть что там в них. Плохой был вариант т.к. много лишней работы.
Потом конечно допёр что мне не нужны все комментарии.

15 мая, 18:44 307 1190490

>>1186245
DJGPP

15 мая, 20:35 308 1190581

>>1190102
ctrl-z попробуй

16 мая, 00:41 309 1190731

>>1190343
1) Часто. Мета-программирование очень популярно в финтехе, ибо оптимизации.
2) Редко. Это сложнее SFINAE и редко нужно.
3) сам хуй научишься. Пробуй, но лучше поработать с кем-то, кто тебя будет носом тыкать. Постепенно наберёшься от него.

16 мая, 18:00 310 1191075

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

Ответы9108096136

16 мая, 18:08 311 1191080

>>1191075
Драйверов для чего? А то это такое широкое понятие, что "драйвер" может быть и прикладным ПО.

Ответы91103

16 мая, 18:36 312 1191103

>>1191080
Драйвер протокола под винду для отправки/приёма сетевых пакетов.

Ответы91132

16 мая, 19:29 313 1191132

>>1191103
https://docs.microsoft.com/en-us/windows-hardware/drivers/gettingstarted/writing-your-first-driver

Ответы91142

16 мая, 19:41 314 1191142

>>1191132
Спасибо.

16 мая, 19:51 315 1191144

>>1181867 (OP)
Я тоже драйвероеб. У меня стоит VS2017 и WDK для Win7 в директории C:\WinDDK. Я создал пустой солюшен WDM и написал main.cpp с подключением ntddk.h и точкой входа. Ничего не компилируется. Что надо прописать в настройках проекта кроме инклудов?

Ответы91147

16 мая, 19:52 316 1191147

>>1191144
Ну хоть ошибку конпеляции покажи.

Ответы91153

16 мая, 20:03 317 1191153

>>1191147
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" является недопустимым.

73 Кб, 1920x1440
17 мая, 16:40 318 1191580

Привет.
Читал пример объявления класса Х (с полем m), встретил такой конструктор:
X(int i =0) :m{i} { }
Поясните, пожалуйста:
1) зачем =0
2) что такое :m{i}

Ответы9158691837

17 мая, 16:55 319 1191586

>>1191580
nvm, ответ был через пару параграфов :\

Ответы91707

17 мая, 19:11 320 1191707

>>1191586
Еще и вот так далают :m(i)

17 мая, 22:00 321 1191837

>>1191580
=0 - значение по умолчанию.
{} - 99% на то что долбоеб какой-то узнал про них и прям решил резко их везде юзать.
а так обычно () круглые скобки используют для инициализации.

8 Кб, 661x340
17 мая, 22:06 322 1191842

Ананасы, в чём я не прав? С хуев он тип вывести не может?

Ответы92479

17 мая, 22:10 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кб и увидил, сколько оно работает.

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

Ответы9184591966

17 мая, 22:11 324 1191845

>>1191844
>увидил
Короче, помогите тупому пожалуйста.

17 мая, 23:57 325 1191966

>>1191844
>Как это можно ускорить?
Вроде в плюсах была какая-то залупа по превращению конкретного регекспа в компайл-тайм код. Не помню как называлась.
>Помогите, тапками не кидайтесь, я новенький в этом деле.
Есть ли задачи? Не проще ли как диды if( str[2]=='.' ) return str.substr(1,2 и т.д. и т.п?
Тем более что разных пар dd.mm всего 356, засунь в хешмапу, хуле ты.

Ответы9198091983

18 мая, 00:26 326 1191980

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

Ответы92058

18 мая, 00:29 327 1191983

>>1191966
> Вроде в плюсах была какая-то залупа по превращению конкретного регекспа в компайл-тайм код. Не помню как называлась.
Ragel? Там не совсем регексп, там пиздец генератор...
Есть boost xpressive, но там в рантайме. Ну а в компайлтайме шаблоном вроде регекспы в дишечке задаются.

18 мая, 08:47 328 1192058

>>1191980
Вот оно:
http://re2c.org/

18 мая, 10:02 329 1192075

Господа программисты, как перевести массив int в массив char?
Например, у меня есть {231, 5, 78, 45, 89, 9, 0, 12}
Надо получить "2315784589012"
Да, я совсем нуб, в гугле не нашел.

Ответы920839212292210

5 Кб, 350x170
18 мая, 10:27 330 1192083

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

Ответы9208792122

18 мая, 10:33 331 1192087

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

Ответы92122

18 мая, 12:22 332 1192122

>>1192087
Ты ебобо? Как ему поможет union?
>>1192075
Именно в массив (в сишном) или строку/вектор? Ты в тот тред зашел? Потому что в первом случае >>1192083. А если имеется в виду сишный массив и работать надо сишными методами (бывают такие ебанутые преподы, если это задание), то там придется чутка поебаться.

Ответы92125

18 мая, 12:25 333 1192125

>>1192122
Не так прочитал.
А как он собрался блять конвертить то что в большем типе? Там известно что числа в интах будут влезать в байт?

Ответы9212792128

18 мая, 12:34 334 1192127

>>1192125
Нахуя МНЕ конвертировать? to_string - стандартная функция, которая делает всю работу за меня.
Если бы пришлось самому этим заниматься, я бы брал каждое число из массива, получал его цифры остатком от деления на 10, переводил бы их в char(прибавляя значение нуля из ascii таблицы - 48) и записывал в массив char'ов. Наверное, to_string как-то так и делает для одного конкретного числа.

18 мая, 12:35 335 1192128

>>1192125
у него есть массив {231, 5, 78, 45, 89, 9, 0, 12}
ему нужен массив {'2', '3', '5', '7', '8', '4', '5', '8', '9', '9', '0', '1', '2'}

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

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

Ответы9218492923

18 мая, 15:18 336 1192184

>>1192128
> Тут нихуя непонятна постановка задачи.
Двачую, пусть анон постарается получше объяснить, что ему нужно.

Ответы92923

11 Кб, 690x472
18 мая, 16:20 337 1192210

>>1192075
Зацени мой велосипед.

Ответы9221292219

18 мая, 16:24 338 1192212

>>1192210
Потенциально может упасть, если массива чаров не хватит.

Ответы92217

18 мая, 16:32 339 1192217

>>1192212
Да это почти сишный код. А в сишечке потенциально что угодно может упасть. Можно конечно колхозить через realloc'и, но, во-первых, это медленно, а во-вторых область знаний анона-вопросителя вряд ли простирается до этого момента, если он задает такие вопросы.

18 мая, 16:36 340 1192219

>>1192210
В общем это не критично, но все таки доебусь со скуки. Нахуя писать auto если тип входных данных известен и нахуя использовать магическое 48 вместо очевидного '0'?

Ответы9222392228

26 Кб, 375x633
18 мая, 16:46 341 1192223

>>1192219
У него же шаблонный код, поэтому он просто пишет auto вместо чего-то подобного.

Ответы922249222792278

18 мая, 16:47 342 1192224

>>1192223
А насчёт магического 48 согласен, лучше писать просто '0'.

Ответы9222792250

18 мая, 16:52 343 1192227

>>1192223
>>1192224
Хотя частично с тобой согласен, если ему это нужно только для конкретного случая, то можно было даже шаблон не делать.

18 мая, 16:53 344 1192228

>>1192219
>Нахуя писать auto если тип входных данных известен
Патамушта это модерн C++.
>нахуя использовать магическое 48 вместо очевидного '0'
Да какая разница, 48 это ASCII код цифры 0. И char по сути 8-битный integer, вот и сделал все в интегерах.

Ответы92233

18 мая, 16:54 345 1192229

А во что обходится использование auto в плане скорости компиляции? Скажем, если юные адепты c++11 засрали им весь код?

Ответы9225392504

18 мая, 16:56 346 1192233

>>1192228
>Патамушта это модерн C++.
Вообщет патамушта там тип не известен до инстанцирования шаблона.

18 мая, 17:39 347 1192250

>>1192224
А еще можно было вконце стринга вместо c[pos] = 0 написать c[pos] = '\0' , это то же самое. Эти одиночные кавычки же тупо алиас для интегера, можно даже макро назвать. В конце концов компилятор их в интегер превращает. Я тут старался велосипед свой писал, а вы как изверги до мелочей докапываетесь!

18 мая, 17:43 348 1192253

>>1192229
Лол, спешите видеть! Вместо исправления говнозовисимостей и перекомпиляции сотни файлов при изменении одной строчки спешит заклеймить auto. Старпер ас ис, используй мост деб

Ответы9225992260

18 мая, 17:50 349 1192259

>>1192253
Ты на вопрос то ответь. Насколько труднозатратно для компилятора выводить тип?

18 мая, 17:50 350 1192260

>>1192253
Что такое мост?

Ответы92399

18 мая, 18:13 351 1192278

>>1192223
Тьфу блядь действительно шаблон

18 мая, 21:42 352 1192399

>>1192260
Шаблон проектирования мост, он же pimpl. Разделение объявления и реализации

Ответы92426

18 мая, 22:36 353 1192426

>>1192399
Ну так это обычные вещи, известные до появления auto засирателей (разделение реализации и объявления, минимальность по включению, указатели вместо объектов, etc...). Как auto то использовать, чтобы не тормозить сборку? int i = 0; auto j = i + 1; норм или не норм?

Ответы92468

19 мая, 00:10 354 1192468

>>1192426
В твоём случае никак не повлияет.

Ответы92480

19 мая, 00:48 355 1192479

>>1191842
remove_pointer_t как вложенный относительно самого шаблона тип не является контекстом вывода.

Тут подробнее:
http://open-std.org/JTC1/SC22/WG21/docs/papers/2016/p0293r0.pdf

19 мая, 00:48 356 1192480

>>1192468
а в каком повлияет?

Ответы9248892499

19 мая, 01:10 357 1192485

Как нормально сделать switch со string

Ответы92487

19 мая, 01:11 358 1192487

>>1192485
Никак. Он для этого не предназначен.

Ответы92503

19 мая, 01:13 359 1192488

>>1192480
Вообще не встречал упоминаний о том что авто замедляет сборку.

19 мая, 02:29 360 1192499

>>1192480
Вообще если логически подумать, то компилятор в любом случае проверяет соответствие типов слева и справа от знака равенства. Так что навряд ли замедляет. Просто вместо сравнения делается подстановка в зависимости от выражения справа. Поэтому не должно влиять настолько, чтобы это было заметно

19 мая, 02:50 361 1192503

>>1192487
unordered map

Ответы9250592585

19 мая, 02:54 362 1192504

>>1192229
>А во что обходится использование auto в плане скорости компиляции?
Очень сильно зависит от конкретного случая. От нулевого оверхеда, вроде auto i = 1, где тайпчекер и так все будет проверять, до теймплейтной пиздецомы вроде эйгена, где на каждом auto будет накапливаться expression template, и в результате тайпчекеру придется ресолвить стоэтажное выражение, где вполне вероятна экспоненциальная сложность от каждого предыдущего auto. В обычных случаях, если не злоупотреблять, больше на читаемость влияет.

19 мая, 02:56 363 1192505

>>1192503
Не совсем подходит. Если ему нужен именно аналог switch, это значит что все строки известны заранее, а простой unordered map как минимум добавит рантайм оверхеад не просчитывание хэша строк. Лучше всего в данном случае взять какую-нибудь библиотеку с compile-time высчитыванием хэша, к тому же если все строки заранее известны можно сделать идеальное хеширование (т.е. хеши разных строк совпадать не будут), а значит сами строки в бинарнике даже хранить не надо будет.

Ответы9250792617

19 мая, 03:07 364 1192507

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

Ответы92513

19 мая, 03:49 365 1192513

>>1192507
Самое сложное тут будет написать функцию хэширования, а с C++17 сам АПИ будет выглядеть довольно красиво, как-то так:
https://pastebin.com/CKjAx9G5

Ответы92619

19 мая, 10:51 366 1192585

>>1192503
Я бы тебя к хуям уволил за мап ради свитча.

Ответы93041

19 мая, 12:48 367 1192617

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

Ответы92620

19 мая, 12:52 368 1192619

>>1192513
Что плюсик делает перед лямбдой?

Ответы92620

19 мая, 12:54 369 1192620

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

Ответы926289263792670

19 мая, 13:03 370 1192628

>>1192620
>превращает её в указатель на функцию.
Нихуясе. А где об этом почитать можно?

Ответы92637

19 мая, 13:17 371 1192637

>>1192620
> например сам хеш будет занимать 48 бит, а оставшиеся 16 бит будут занимать счётчик, увеличивающийся на 1 в случае коллизии
Хотя вру. Придётся делать минимум две таблицы. В первой теблице будут счётчики коллизий (или псевдо-значения, например отрицательные числа будут хешами второй таблицы, а положительные - счётчиками коллизий), а во второй нормальный хеш-мап. Считываем хеш с начальным значением равным нулю, если счётчик коллизий равен нулю, то сразу считываем значение со второй таблицы, если нет, то считаем хэш ещё раз на этот раз с новым начальным значением и затем берём значение со второй таблицы.
>>1192628
> А где об этом почитать можно?
А что читать-то? Очередная неочевидная перегрузка оператора. Ещё можно использовать static_cast, но плюсик занимает меньше места и скобки нинужны. https://ideone.com/WGl8nF

19 мая, 14:05 372 1192670

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

Ответы92672

19 мая, 14:08 373 1192672

>>1192670
> по которой потом производится сравнение строк.
Я выше обисал алгоритм идеального хеширования. Там строки хранить не нужно.

Ответы92677

19 мая, 14:16 374 1192677

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

Ответы92678

19 мая, 14:18 375 1192678

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

Ответы92682

19 мая, 14:27 376 1192682

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

Ответы92684

19 мая, 14:34 377 1192684

>>1192682
> Строка, с которой они будут матчится-то неизвестна.
Хотя да, если сами строки будут генерироваться непонятно откуда, то может произойти бида.

19 мая, 15:04 378 1192699

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

Ответы927139344397079

19 мая, 15:32 379 1192713

>>1192699
А что делать-то будешь хоть?
Вдруг там у тебя будут какие-то йоба-ограничения на стандарт и на функционал?

Ответы92721

19 мая, 15:36 380 1192717

test

19 мая, 15:41 381 1192721

>>1192713
Насколько понял юнит тесты писать.Если я правильно понимаю, что такое юниттесты

Ответы92722

19 мая, 15:44 382 1192722

>>1192721
Странно тогда, что с++, а не питон какой-нибудь.

Ответы9272692731

19 мая, 15:51 383 1192726

>>1192722
Да я сам охуел, я бы лучше на питоне, на нём гораздо больше писал.

19 мая, 15:56 384 1192731

>>1192722
Как ты собрался тестировать крестовый код на питоне блжад?

Ответы9273392737

19 мая, 15:58 385 1192733

>>1192731
Так что, может что-то повторить стоит я даже не знаю, я последний раз на С++11 писал, а тут уже 17. Боюсь обосраться.

Ответы9278293101

19 мая, 16:00 386 1192737

>>1192731
Или норм, объяснят, а там по ходу втянусь, разберусь? Никто же не выгонит меня в первую неделю? Или могут?

Ответы92782

19 мая, 17:51 387 1192782

>>1192737
>>1192733
Почитай книжки какие-нибудь про с++ уже после 11 стандарта.
Естественно от тебя в первый день не будут требовать йоба магию на шаблонах.
Но, например, разобраться в стандартной библиотеке. Какие там есть контейнеры, функции какие и тд.
К примеру
http://goalkicker.com/CPlusPlusBook/CPlusPlusNotesForProfessionals.pdf

Ответы928059289592900

52 Кб, 814x507
19 мая, 18:32 388 1192805

>>1192782
>http://goalkicker.com/CPlusPlusBook/CPlusPlusNotesForProfessionals.pdf
Охуенная книга!

Ответы92945

19 мая, 20:38 389 1192895

>>1192782
Благодарю.

19 мая, 20:43 390 1192900

>>1192782
>http://goalkicker.com/CPlusPlusBook/CPlusPlusNotesForProfessionals.pdf
>может что-то повторить стоит
Анон, спасибо, это то, что нужно.

19 мая, 21:38 391 1192923

>>1192128
>>1192184
Короче, вся суть в том, что мне надо зарандомить число на 128 битов в char. И я думал использовать стандартный rand().

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

Пишу на С++, но использую чужой код, написанный на C.

Ответы9292493095

19 мая, 21:39 392 1192924

>>1192923
фикс: unsigned char в char

Ответы92926

19 мая, 21:41 393 1192926

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

19 мая, 22:20 394 1192945

>>1192805
Не понял инклюдов. Ошибка отображения?

20 мая, 04:10 395 1193041

>>1192585
Хуево быть тобой, фантазер-увольнятель

20 мая, 11:13 396 1193095

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

20 мая, 11:37 397 1193101

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

20 мая, 17:28 398 1193443

>>1192699
Охуеть. Я студиозус в ДС1 пилю свою хуйню на гитхабе целыми днями (пизжу, но таки-пилю, пусть не целыми днями) и на работу никуда не берут, а тут тип устроился на кресты, на которых он один только труп страуса и дрочил на предмет заданий. Охуеть.

Ответы9345693460

20 мая, 17:46 399 1193456

>>1193443
Потому что надо ходить и устраиваться а не сидеть на жопе. Гит это хорошо, но его одного мало.
Сам скоро пойду устраиваться в филиал одной большой американской компании
2-курс

Ответы9356796374

20 мая, 17:51 400 1193460

>>1193443
Тренируйся проходить собеседования (продавать себя). А гитхаб можешь смело в помойку выкинуть. В начале карьеры работодатели смотрят в основном на потенциал кандидатов.

Ответы93570

20 мая, 18:01 401 1193467

Какие библиотеки подойдут для геймдева? Не хочу быть юнити-дебилом.
Из очевидных вариантов SDL/SFML + OpenGL, что ещё сюда присобачить?

Ответы934699352393576

20 мая, 18:02 402 1193469

>>1193467
Библиотеку с физикой какой-нибудь.

Ответы93472

20 мая, 18:03 403 1193472

>>1193469
Ну, я хочу некоторую долю велосипедства сохранить, поэтому кое-какой физон сам напишу

20 мая, 19:07 404 1193523

>>1193467
glm - математика
sdl_image/gli/stb_image - загрузка текстур
Ну а дальше в меру своих навыков можешь реализовывать функционал который нужен

20 мая, 19:23 405 1193532

Можно ли за лето выучить C++ для узкой задачи - программирования avr микроконтроллера? Все нужные библиотеки на C++ для подключаемых к микроконтроллеру устройств есть. Мне нужно лишь всё связать воедино и написать логику обработки информации. Навскидку сколько часов в день нужно будет тратить на обучение?

Ответы9353793574

20 мая, 19:29 406 1193537

>>1193532
А зачем там C++ учить? Всё равно большая часть стандартной библиотеки там не доступна. Лучше учи Си (ну можешь прочитать ещё про классы) и не выёбывайся.

Ответы93543

20 мая, 19:38 407 1193543

>>1193537
Так язык программирования avr - урезанный C++. И библиотеки с расширением .cpp.
Я не выёбываюсь. Просто не очень разбираюсь.

20 мая, 20:02 408 1193567

>>1193456
А мне тупо не отвечают когда я отправляю письмо в контору.
Пили кулстори про свою подготовку.

Ответы93573

20 мая, 20:03 409 1193570

>>1193460
Попахивает хуитой. Работодатель будет кормить меня в обмен на код. Ему что, похуй как я пишу этот код и он будет проверять мой потенциал задачками на собесах? Если у меня есть потенциал, то я раскрываю его в решении боевых задач, я так думаю.

20 мая, 20:04 410 1193573

>>1193567
Да просто отослал резюме.
Компания занимается в основном сетевыми адаптерами и написанием дров под них.
В итоге на след. день перезвонили, вот 22 числа пойду на собеседование.

Ответы93578

20 мая, 20:05 411 1193574

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

Ответы9357793579

20 мая, 20:06 412 1193576

>>1193467
>что ещё сюда присобачить?
API блендера, чтобы экспортить модельки.

20 мая, 20:09 413 1193577

>>1193574
На форте. Там можно даже ООП сделать.

20 мая, 20:11 414 1193578

>>1193573
Красава.

Ответы93581

20 мая, 20:13 415 1193579

>>1193574
>Лучше сразу на асме кодить.
Библиотеки самому написать с нуля тоже? Я не такой программист. Ассемблер слишком слоен для меня.

20 мая, 20:15 416 1193581

>>1193578
Ага только надо успеть почитать насчёт этих протоколов, NDIS, и остальную хуету вроде WDF и WFP

Ответы93587

20 мая, 20:17 417 1193587

>>1193581
Мне кажется что с таким подходом тебя пошлют на хуй. "Почитать насчет этих протоколов и остальную хуету", лол. Тебе работать с этой хуетой. Главное чтобы собеседовать было некому.

Ответы935889358996374

20 мая, 20:19 418 1193588

>>1193587
Посмотрим, хех.
Всё равно у меня опыта в этой сфере нет, о чём я писал в резюме, но всё равно позвонили же.

20 мая, 20:19 419 1193589

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

Ответы93635

20 мая, 20:37 420 1193605

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

Ответы93609

20 мая, 20:39 421 1193609

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

>Нельзя ли вставить файл в проект и выполнить его перед остальными файлами, при этом не вызывая функции из него?
Что сделать? Выполнение программы в плюсах начинается и заканчивается в main. А чтобы пользоваться твоими файлами, тебе надо подключить хэдэры в main, или один хэдэр, а он пускай другие подключает.

Ответы93613

20 мая, 20:50 422 1193613

>>1193609
Кажется, задаю тупые вопросы.
У меня два .срp файла, в одном пишу функции, в другом сперва объявляю их, потом вызываю. Функций мало, поэтому в .h файл ничего выносить не стал. Две функции main не сделать, так?

Ответы9361995569

20 мая, 21:04 423 1193619

>>1193613
Ты можешь хоть все функции в одном файле писать. При запуске с++ кода операционная система вызывает функцию main. Соответственно, если у тебя туева хуча функции написано вне мейна, а в мейне ты их не вызываешь, то вызываться они не будут вовсе.
Надеюсь ты это имел в виду.

Ответы9362093628

20 мая, 21:07 424 1193620

>>1193619
Под вне мейна я подразумеваю всякие обычные функции, которые находятся в области видимости файла/класса, а не какие-нибудь лямбда-выражения, функторы, который можно прямо внутри функции объявлять.

20 мая, 21:18 425 1193628

>>1193619
У меня один файл рисует фрейм и обрабатывает действия, в функцию это не вынести, а майна в привычном понимании там нет, только эвенты и их код.

Ответы93633

20 мая, 21:23 426 1193633

>>1193628
> майна в привычном понимании там нет, только эвенты и их код.
Event loop в любом случае находится в мейне, так что не надо тут врать нам.

20 мая, 21:27 427 1193635

>>1193589
Ни хуя себе. Вакансия "Программист C++, опыт работы 1-3 года", ты приходишь весь такой адекватный, тебе дают работу. Так?

Ответы9363696374

20 мая, 21:31 428 1193636

>>1193635
Если у тебя нет опыта, но ты идёшь на объявление, где опыт 1-3 года, то ты где-то ошибся.

Ответы93639

20 мая, 21:43 429 1193639

>>1193636
На C++ нет никаких вакансий без опыта.
Я листаю hh по Москве, и единственная вакансия джуна, которую я пока что увидел - это Коломна, непонятно как попавшая в выдачу.

Ответы936419364296374

20 мая, 21:44 430 1193641

>>1193639
Забыл добавить, переключаюсь в "Опыт работы -> Без опыта" - заебись, первые двадцать вакансий "Опыт работы с X от 2 лет, опыт работы 3-6 лет, Senior Software Blahblahblah".

Ответы96374

20 мая, 21:44 431 1193642

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

Ответы93646

20 мая, 21:47 432 1193646

>>1193642
Хотелось бы пруфы трёх вакансий в Москве без опыта.

Ответы9365096374

20 мая, 21:52 433 1193650

>>1193646
https://hh.ru/search/vacancy?from=cluster_experience&area=1&enable_snippets=true&customDomain=1&experience=noExperience&text=разработчик+c++&clusters=true&search_field=name

Ответы9365293653

20 мая, 21:56 434 1193652

>>1193650
Я попросил пруфы трёх вакансий в Москве без опыта
, а не ссылку на выдачу, про которую я сказал пять минут назад. Твоя (а по факту моя) ссылка ведет на "Опыт не менее двух лет; опыт CUDA" и прочую парашу.

Ответы9365496374

20 мая, 21:56 435 1193653

>>1193650
>Написание программ для управления процессом фото съёмки с применением промышленных камер.
>Под руководством ведущих разработчиков - работа над проектами, связанными с банковским оборудованием.
>Ускорение и оптимизация алгоритмов, написанных на С/С++ или Matlab (эффективная реализация на GPU с использованием CUDA или OpenCL).
>Опыт разработки на CUDA. Знание С++11 (особенно concurrency). Уверенное программирование на С++, STL (опыт не менее 2-х лет).
Это не вакансии для новичков, это фирмы без денег.

20 мая, 21:57 436 1193654

>>1193652
>Опыт не менее двух лет
>Отличное знание С++, STL (опыт не менее 2-х лет)
>Требуемый опыт работы: не требуется
Это опыт программирования, а не опыт работы.

Ответы93657

20 мая, 22:00 437 1193657

>>1193654
Ты пытаешься троллить? В этой же вакансии на которую ты ссылаешься, по тексту далее:
https://hh.ru/vacancy/25606305?query=разработчик c++
"пыт написания программ для управления процессом съёмки с использованием промышленных камер (например, камеры Basler, Автоматическое управление экспозицией, Exposure control, Gain)."
Тут явно речь не об "опыте программирования", блядь. Угу, студиозусы через одного по приколу пишут софт для камер Basler и т.д.

Ответы9365996374

20 мая, 22:01 438 1193659

>>1193657
Почему это? Нет, не троллю. Это твоя дипломная могла быть, например.

Ответы93662

20 мая, 22:03 439 1193662

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

Ответы9366496374

20 мая, 22:06 440 1193664

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

Ответы9366593786

20 мая, 22:10 441 1193665

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

Ответы93668937079404896374

20 мая, 22:13 442 1193668

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

Ответы9370796374

20 мая, 23:05 443 1193707

>>1193668
>>1193665
Ладно, сдаюсь, ты меня подловил.

Ответы96374

21 мая, 01:45 444 1193786

>>1193664
https://career.ru/vacancy/23914795?query=разработчик c++ вот это вакансия без опыта (вернее на нее похожа).

Хуета про камеры - это типичный ооо вектор (особенно строчка про исторический центр Москвы порадовала - вектор векторный)

21 мая, 14:15 445 1194020

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

Ответы9405496374

21 мая, 14:45 446 1194048

>>1193665
Без опыта наверно только по знакомству сможешь устроиться на такую работу.

Ответы96374

21 мая, 15:01 447 1194054

>>1194020

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

https://habr.com/post/343778/

21 мая, 20:52 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* не ебу что это вообще такое

Ответы9427894395

21 мая, 20:53 449 1194278

>>1194277
блядь почему код так криво вставился

Ответы94280

21 мая, 20:55 450 1194280

>>1194278
Потому что надо было вставить ссылку на код, а не сам код.

Ответы94290

21 мая, 21:09 451 1194290

>>1194280
в первый раз на доске, мискузи

Ответы94293

21 мая, 21:19 452 1194293

>>1194290
Хули шапку прикрепленного треда не прочитал?

Ответы94298

21 мая, 21:27 453 1194298

>>1194293
многабукафф

21 мая, 23:07 454 1194395

>>1194277
Гугли dirent.h, там попроще работа с файлами - когда-то правил простую прогу для вывода списка файлов в папке, разобрался быстро
Можешь кинуть сюда свою почту, но не обещаю, что откопаю файл с кодом

Ответы94401

21 мая, 23:22 455 1194401

>>1194395
> Гугли dirent.h, там попроще работа с файлами
Зачем что-то гуглить, если давно есть стандарт для работы с файлами? Пусть изучает std::filesystem и не ебёт мозг. Полностью поддерживается в VS 2017 15.7 - последней (на данный момент) стабильной версии вижуал студии.

Ответы9441594425

21 мая, 23:38 456 1194415

>>1194401
Да, ты прав
Я-то ему сишную библиотеку посоветовал, а про плюсовый filesystem не знал сам

21 мая, 23:50 457 1194425

>>1194401
>давно есть стандарт для работы с файлами
Так давно, что пиздец.
Сколько лет он есть? 30? 40? 50?

Ответы94428

21 мая, 23:54 458 1194428

>>1194425
Год уже есть. Если бы это был жаваскрипт, то уже успело бы смениться двадцать фреймворком и три принципиально новых подходов к программированию.

Ответы94435

22 мая, 00:08 459 1194435

>>1194428
>Год уже есть.
https://www.iso.org/standard/68564.html ISO/IEC 14882:2017
Publication date : 2017-12

22 мая, 09:58 460 1194542

Аноны, как проходят собеседования? У меня пиздец, почти паника, иду первый раз.
Что обычно спрашивают на что обращают внимание.

Ответы9464796136

22 мая, 13:10 461 1194647

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

Ответы9465894665

22 мая, 13:20 462 1194658

>>1194647
Хорошо, попробую, спасибо за совет.

22 мая, 13:25 463 1194665

>>1194647
>Я не программист
Что ты тут вообще делаешь?

Ответы94674

22 мая, 13:32 464 1194674

>>1194665
Собираюсь остановиться программистом конечно же.

Ответы94676

22 мая, 13:32 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;
};

А?

Ответы9468794937

22 мая, 13:33 466 1194676

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

22 мая, 13:45 467 1194687

>>1194675
Что зачем?

Ответы94689

22 мая, 13:47 468 1194689

>>1194687
UCLASS()
GENERATED_BODY()

Ответы94694

22 мая, 13:48 469 1194694

>>1194689
Макросы

22 мая, 19:04 470 1194937

>>1194675
>Пацаны, расскажите, если ваш байтострел такой охуенный, то зачем
Макросы? Это часть охуенного языка. В чём проблема?

47 Кб, 600x400
22 мая, 23:07 471 1195085

Антоша, подкинь статью про наследование классов. Чтобы понятно было разжёвано. Я прост запутался у Липмана как то хуёво расписано, да и заебал он уже своей хуйнёй про ебучий ,блядь книжный магазин, со скидками. Пиздец ну зачем такую сука скучную хуйню выбирать для примеров. ISBN на хуй.
Приват там всякий протектед и ебля с друзьями.
Асло, не сумел на скомпилить некоторые либы на минГВ, прост компиляция обрывалась с ошибками и хуй его знает в чём дело. В итоге поставил пингвина порядком подизъёбся с ним недели две, но вся хуйня успешно работает. Насколько полезен вреден/линукс для изучения крестов и Си? Не впустую ли я трачу время читая мануалы?

Ответы9513595136

23 мая, 00:26 472 1195135

>>1195085
Ты впустую тратишь время изучая кресты

Ответы95136

23 мая, 00:33 473 1195136

>>1195085
Пердачую этого >>1195135
Причины аж две - во-первых перейди на язык с ООП, реализованным без киллер-фич вроде дружественных функций и множественного наследования, а во-вторых ты серьезно не осилил всю эту хуйню про ООП? Ну Лафоре штоле прочитай, у него есть книга про ООП. Хотя я когда на втором курсе шараги добрался до нее, мне было очевидно 90% хуйни что там написана, и 80% я умел написать руками сразу и набело.

Ответы95153

23 мая, 01:55 474 1195153

>>1195136 Липман прост материал подаёт оче последовательно и ни разу не использовал хоть какой нибудь графики для облегчения понимания. Я реально просто запутался, возвращаться к книге после перерыва сложно, там все примеры взаимосвязаны. И в довесок перевод не очень, функции класса вместо методов и прочие неприятные мелочи. Порой такая тавтология получается.

А чоу, френды и множественное наследования разве только на крестах есть? За наводку на Лафоре спасибо.

23 мая, 11:20 475 1195257

Какая IDE имеет функцию форматирования кода? Лень самому следить за единством оформления кода.

Ответы95267953149532295544

23 мая, 11:31 476 1195267

>>1195257
Попробуй cline

23 мая, 12:39 477 1195314

>>1195257
Visual Studio (2017) Ctrl + K, Ctrl + D

23 мая, 12:48 478 1195322

>>1195257
NetBeans.

23 мая, 16:58 479 1195544

>>1195257
Наверное любая, потому что этим занимается не ide а посторонние инструменты - astyle, ckang formatter и так далее. К креатору точно подключаются

23 мая, 17:20 480 1195569

>>1193613
Представь, идёшь ты по дороге, а впереди развилка с надписями. Направо - Москва, Налево - Москва. Тебе это введёт в заблуждение? Так вот, компилятор тоже охуеет.

23 мая, 19:26 481 1195656

Надо за неделю написать курсач. Задание -
"Разработка информационно-поисковой системы «Деканат»
Для хранения информации использовать файл. Функционал программы:
1) добавление информации;
2) удаление информации;
3) редактирование информации;
4) поиск информации по заданным критериям."
При написании использовать классы и другую ООП хуйню.
Какие книжечки/статьи/сайтики покурить?

Ответы95661956649569695697957599578795915

23 мая, 19:33 482 1195661

>>1195656
LibXML кури.
По поводу классов — быстрее всего Трей Нэш, учебник по C# 2010 года.

Ответы95670

23 мая, 19:35 483 1195664

>>1195656
>за неделю написать
>C++
Ебу дал?

Ответы95665

23 мая, 19:37 484 1195665

>>1195664
Ну а хули делать

23 мая, 19:41 485 1195670

>>1195661
Разреши вопрос, зачем читать книжечку по C#, если мне нужны плюсы?

Ответы95684

23 мая, 19:51 486 1195684

>>1195670
Разрешил.

Ответы95689

23 мая, 19:55 487 1195689

>>1195684
А ответишь?

Ответы95695

23 мая, 20:02 488 1195695

>>1195689
И ещё как!
Ты же спрашивал книгу по классам и ООП, а не по языку программирования. По языку — это нужен Стенли Липпман, но вот у него-то как раз совсем и не разобрано ООП, не хватило места, наверное. Тысяча страниц...

23 мая, 20:06 489 1195696

>>1195656
> Функционал программы
А каким образом идут запросы-то? CLI? Или какой-нибудь rest-api?

Ответы95699

23 мая, 20:09 490 1195697

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

Ответы95700

23 мая, 20:10 491 1195699

>>1195696
Не ебу, что это

Ответы95702

23 мая, 20:11 492 1195700

>>1195697
Что за четырехслойная архитектура? Где почитать?

Ответы95704

23 мая, 20:12 493 1195702

>>1195699
CLI - консолька. rest - web-сервис (хотя можно сделать и на websocket если нужен пирформанс и получение событий от сервера без геморроя).

Ответы95705

23 мая, 20:12 494 1195704

>>1195700
https://habr.com/post/271157/

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

Ответы95706

23 мая, 20:15 495 1195705

>>1195702
Короче, насколько я понял, поху как это реализовано будет.

23 мая, 20:19 496 1195706

>>1195704
Да ему это нахуй не нужно. Пусть создаст простые классы для хранения инфы (надеюсь хоть типы хранимых данных ему известны). Сделает реализацию сериализации/десериализации. В файл будут записываться классы.

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

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

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

Ответы95712

23 мая, 20:26 497 1195712

>>1195706
Шот сложно пизда.
Нахуя я на программиста поступал?

Ответы95720

23 мая, 20:39 498 1195720

>>1195712
Ну, вариант с 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.

Ответы95727

23 мая, 20:46 499 1195727

>>1195720
Нихуя не стало понятнее, но все равно спасибо.
В пизду, перепоступать буду нахуй

23 мая, 21:47 500 1195759

>>1195656
> Надо за неделю написать курсач. Задание -
> "Разработка информационно-поисковой системы «Деканат»
> Для хранения информации использовать файл. Функционал программы:
> 1) добавление информации;
> 2) удаление информации;
> 3) редактирование информации;
> 4) поиск информации по заданным критериям."
Блокнот что ли?

23 мая, 22:21 501 1195787

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

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

Не благодари.
2)

24 мая, 00:37 502 1195915

>>1195656
Пиши.

24 мая, 16:44 503 1196136

>>1191075
>>1194542
Меня взяли, держу в курсе.

24 мая, 19:18 504 1196214

Итак, я веб-макака, перекатился в этот ваш ДС2. Полгода тут работаю в модном/молодежном стартапе, по вечерам пишу хелоуворды на плюсах. Стартап мой вот вот испустит последний вздох, и надо бы уже искать что то новое, но сука, никто не хочет даже приглашать меня на собеседования. Что делать анонимас? Может попробовать поучавствовать в каком нибудь опесорсном гвонище, или попробовать наговнокодить что нибудь большое в качестве пет проекта. Думаю пару месяцев текущий работодатель еще протянет. Мне 29, нет вышки и разговорного английского, при этом хочу прогроммировать всякие сложные штуки типа распознования ихображений и нейронных сетей, что предпринять в такой ситуации?

Ответы962159625696318

24 мая, 19:19 505 1196215

>>1196214
И да, при этом на отклики по пхп/пайтон-макакингу сыпятся тонны приглашений, а на крестах хуй кто почесался. Хули то так сложно блять сюда вкатится?

Ответы96374

24 мая, 20:38 506 1196256

>>1196214
> что предпринять в такой ситуации
Учиться этим вещам и делать полезные йобы.

24 мая, 21:46 507 1196318

>>1196214
А зачем оно тебе надо? Вакансий меньше, чем на вёб-макакинг. Зарплаты такие же или меньше. Если ты к 30 годам не смог в английский и образование, то видимо ты не очень умный и "сложные штуки" не для тебя.

25 мая, 00:08 508 1196374

>>1193456
>>1196215
>>1194048
>>1193707

Вот мои посты:
>>1193587
>>1193635
>>1193639
>>1193641
>>1193646
>>1193652
>>1193657
>>1193662
>>1193665
>>1193668
>>1194020

Короче, вы поняли какой. И я устроился плюсоводом, лол. В понедельник на работу.

Ответы9637997079

25 мая, 00:26 509 1196379

>>1196374
Надеюсь ты не к нам устроился, лол.

Ответы96390

25 мая, 00:51 510 1196390

>>1196379
К вам.

25 мая, 13:52 511 1196653

> О: Связанные с софтом вопросы обсуждаются в /s/. Исключение - IDE и прочие инструменты программирования, которые можно обсудить в тредах соответствующих языков.
Ладно, спрошу тут. Перекатился на линух, какой ИДЕ лучше будет? Под виндой юзал Dev C++, вот мне бы такое же, простое и с функционалом. Гуглил, да. Но мне интересен живой опыт, а не описания.

Ответы9675797007

25 мая, 16:57 512 1196757

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

Ответы97007

Перекат 25 мая, 17:58 513 1196792

https://2ch.hk/pr/res/1196791.html (М)
https://2ch.hk/pr/res/1196791.html (М)
https://2ch.hk/pr/res/1196791.html (М)
https://2ch.hk/pr/res/1196791.html (М)

26 мая, 05:47 514 1197007

>>1196653
>>1196757
Говноедов полон тред. Текстовый редактор блять, линукс нахуй. Дали им вижуал студию, не хочу вижуал студию, хочу говно жрать. И это программисты, тьфу блять

Ответы9701298254

26 мая, 06:09 515 1197012

>>1197007
А нахуй нужна IDE в плюсах? Всё равно при использовании шаблонов большая часть фич IDE не работает.

Ответы97105

26 мая, 10:55 516 1197079

>>1196374
> я устроился плюсоводом, лол. В понедельник на работу.
Ну видишь, а ты переживал.
>>1192699-кун
Ебать я охуел съёмную хату искать, везде наёбсики.

26 мая, 11:49 517 1197105

>>1197012
в laba1.cpp да, не нужна. В продакшене нужна.

28 мая, 12:41 518 1198228

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

28 мая, 13:41 519 1198254

>>1197007
Толсто.

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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки

/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.gq, m2ch.cf, m2ch.fapp.in, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion